Home Artists Posts Import Register
Join the new SimpleX Chat Group!

Content

Hey, all!


I'm sure you're all curious on what my concrete plans for the near future are, so here's a quick rundown:

The end-goal of the project is to create a fully functional, open-source alternative to the source filmmaker, with various improvements, new features, as well as higher moddability and stability. I've created a survey a while back to gather feedback in regards to working with the source filmmaker, I'll be using the responses from that (as well as general feedback) as a guideline of sorts:  http://www.quiz-maker.com/Q309HO2 

It's going to be a long road to achieve that goal, which is why I'm working towards various short-term goals first. These short-term goals consist mostly of features that would be of immediate use to Filmmakers in the near future, some of which have already been partially implemented:

SFM scene/session import and playback

This is obviously essential for everything else and one of my main priorities (along with Cycles rendering) at the moment. The goal is simply to allow you to import any SFM sessions into Pragma and play them back.
I've already made some good progress, but there's still plenty left to do:

(Please excuse the shoddy lighting, this was just a test for the import-feature.)


The Engine can automatically locate all assets associated with the session (i.e. models, the map, materials, etc.) and port them into the equivalent Pragma formats. Additionally Pragma can automatically convert all traditional assets to PBR-assets, at least as much as is possible without manual input:

Some assets, like source engine particles, aren't supported yet and the PBR implementation, as well as the SFM session importer are only available in the preview-version of Pragma for now, since they're still very much work-in-progress and incomplete. Other SFM features like cameras are also not yet supported.


Rendering with Cycles

Cycles is an open-source raytracing renderer, which is primarily used for raytracing in Blender: https://www.cycles-renderer.org/ 

It can also be used to bake ambient occlusion and lightmaps.

I've integrated Cycles into Pragma, which allows you to take raytraced screenshots of SFM scenes:

As you can see there is still a lot of room for improvement, but I think this is a decent starting point. So far this only works with the CPU-based renderer of Cycles and you can't record videos yet (screenshots only).


VR / 360 Videos

This would allow you to record VR and 360° videos. I've already written an in-engine video recorder, so all that's really missing is an open-source codec for these types of videos (I haven't done any research on that yet, but I'm sure there are some available.).

I'm not sure how much interest there would be for a feature like this, so whether or not I actually implement it depends on how well it does in the upcoming polls.


Realtime VR video playback

Pragma already has VR support, which would make this one fairly trivial to implement. You'd be able to play back SFM scenes with your VR-headset (without interactivity for now).

Again, whether I implement it depends on how much interest there is.


High-quality lightmaps for source engine maps

This one's a tangent since it's only indirectly related to the Filmmaker tools.

I have already implemented lightmap baking using the Cycles renderer, which can produce higher-quality lightmaps than the ones of the original source engine map in most cases.

In theory I can write these new lightmaps back into the original source BSP-file, which would allow you to use the new Cycles-rendered lightmaps in source engine games (e.g. for use in SFM).

In fact, I've already done some preliminary tests which were promising, but there's some hardcoded source engine limits that gave me some trouble. I have an idea on how to potentially get around those limits, but I can't say for sure if it's actually feasible.

There's a decent chance that it might be a waste of time and not work out at all, so this one also depends on whether there's any interest for this at all and it's fairly low priority for now.


Making Pragma open-source

I've been wanting to make Pragma open-source for a while now, but it's a bit more complicated than just flipping a switch. Without going too much into detail, I'd have to do a lot of preparation to make this work, probably about a week's worth of work.

I also don't have the time to write any documentation, but some people might be interested in the source code nonetheless.


Export of models/levels/scenes

The option to export models/levels/SFM scenes out of Pragma, so you can load them up in Blender. I've already done some work on this one, but so far only geometry can be exported (no animations, particles, lights, etc.):


Steam Audio support

Steam Audio is a library for proper spatial audio, developed by Valve. I've already implemented the basics for it a while back, but never got around to finishing it due to various issues and time-constraints:

https://youtu.be/hY2BSht_goI 

I'll probably get back to this one at a later date, since it's not as pressing of an issue for now.


Support for source engine particle effects

Pragma already has a particle system implemented (currently only simulated on the CPU):

https://youtu.be/I8GUlUoDST4 

I can't say how easily translatable source engine particles would be into my own system, so I have no idea how much time this is going to take, but it's obviously essential.



Some of these features are already partially implemented, others I haven't even started working on yet. I'm always open for suggestions, so if you have any other ideas, please let me know! (Preferably on the Discord server, so it can be discussed with other people.)

There will be polls for $5+ Patrons from time to time, which will determine which feature I should prioritize.

$10+ Patrons will also soon get access to the preview-version of Pragma, which includes some features for you to try out before they're complete. Everyone else will get access whenever there's a new stable version.


Thanks for reading, please let me know what your thoughts on this are! :)

Comments

Anonymous

This is already impressive as hell! Finally someone who cares about the Valve abandonware :) Tho, I have to ask, wouldn't it be easier to build a plugin (or basically rebuild SFM) on top of Blender as a plugin? It would have all of the SFM usual interface and such but you wouldn't have to implement so much from the ground up anymore and could use Blenders functions that way. Then again I'm not a programmer so you probably know your stuff far more than some random internet dude does :D

silverlan

Thank you! :) It would be easier, yes, but I would be limited to whatever they've decided to expose in their API. By using my own engine, I'm much more flexible and free to do whatever I want. If I had to start completely from scratch, I probably would do as you suggested, but the engine has already been in development for a few years now and makes (mostly by coincidence) for a perfect framework for a project like this! Most of the heavy lifting is already complete, there's extensive scripting support, support for all kinds of source engine assets, and so much more that's going to be of use! Let's say I'd decide one day to add the option for people to collaborate together on the same project online (which I just might at some point). In Blender this wouldn't be possible, but in Pragma it would! (Sorry for the late response by the way, I'm still getting used to how Patreon works!)