This month brings easier game discovery, better physgun physics, cloud entities, duplicator, and explosions! Big performance boosts, fewer crashes, and some news on exporting games.
We've removed the launch options popup each time you launch s&box, this used to prompt you to play the game, open the editor, or launch in VR mode.
Now it launches directly into the game, with the editor being on a seperate tool app on Steam. Right now this is nothing more than a shortcut, but we'll be able to exclude editor files from normal users in the future. Instead of you launching into VR mode, the game now detects if you have a headset plugged in, then you probably want to play in VR mode.
The iteration gap has been feeling too big, we're shipping a lot of features each week for Sandbox but waiting an entire month for people to play with them feels too long.
We're going to release a feature patch each week now whilst we're in such active development. We think this will still be a good balance between delivering a stable experience and delivering new features.
The games list was getting a bit stagnant, being ordered by popularity. Nothing new was really breaking through, despite there being a lot of cool things being made. So I decided to put the work in this month and make a "shelf" system where we can dynamically edit the shelves, and they can have different styles. Inspired by Netflix.There's a web version here, using the same shelves. This puts us in a pretty good position to change and update this list of games easier in the future.
Props can be set on fire and explode again! This is configured in ModelDoc, and is something I want to add more engine-wide interactions to in the future.
Sandbox Mode has cloud entities now. This is still quite an immature system, but it's working and people are making cool stuff already.I've been really impressed that people have been able to make this stuff so far, without any real documentation.
I fixed up the duplicator to work properly with objects connected by physics joints. While I was there I gave it some extra pazzaz. Now you can hold shift and add extra unconnected objects to the duplication, too.I also made it work properly with ragdolls. Which was more work than it should have been.
Last blog post we talked about our crash rates being horrific, this month we've focused a lot on crashes and have resolved several of our top crashes. Our crash free sessions over the last month has improved by 1.44%.
Our biggest one was texture use after free: we were sending several textures to the renderer that were being deleted before they could be used - this was mainly happening when using RenderAttributes as the only place a Texture existed.
Many Windows 10 LTSC users couldn't launch the game before, this was because of CET compatability added in .NET 9 - this is now resolved and the users can now play the game.
Fixed a crash whilst hotloading after opening and closing Hammer.
Fixed a crash calling tool framework spin too early
Fixed a crash in CreateRenderMessage when using awkward names
Fixed an editor crash if you spent over 60 seconds recompiling assets
Fixed planar reflections causing resourcesystem to get stuck thinking it's rendering, never executing texture streaming and leading to an eventual crash. Finally we've updated our crash reporter Sentry to the latest version and adjusted several options in hopes that it catches more user crashes for us to fix.
Last month, we mentioned that we are unhappy with the editor startup, in particular, the startup time. A big chunk of that was the “did this asset change?” pass using an old & slow CRC32 algorithm. We replaced it with xxHash3 which is over 100x faster than our old CRC32 function.
After updating, the first project load will trigger a full recompile to generate new hashes. After that it will be much quicker to start.
We’ll keep looking into other aspects of improving startup times(like compile times) over the next months.
Sprites now have their own Resources now. This is super useful for 2D games or games with lots of animated sprites. Sprites can have multiple animations, each with their own frame rate, origin, and eventually things like broadcast events and attachments. You can still use Textures/Images without a Resource. Any pre-existing SpriteRenderers and ParticleSpriteRenderers will automatically upgrade to the Embedded format and dragging a new Image into a scene will Embed it for you.We'll continue to build on this to make the 2D workflow better and better :)
Performance has been taking a bit of a hit lately, especially in post-processing effects. We're mature enough in our feature set to focus deeper on optimizations now.
A lot of steps are now decimated and precomputed better, and we’re doing a bunch of things smarter overall.
With these changes:
Screen-Space Reflections are about 4-8x faster
Bloom is about 14x faster
There's still plenty of room for major optimizations on the table for the future, and with Motion Vectors being merged soon it should open the doors to need a lot less brute forcing in effects.
We're internally tracking benchmarks for more things so it's easier to prove gains and identify regressions if they happen.
Did a bunch of fixes around alpha-tested materials - these are things like foliage, chain-link fences, and similar materials.
This sucked forever, now it's great.
They would have sparkly shadows, edges would look overly soft , and just wouldn't look right, no controls to their look for authoring, should be correct anywhere now.
The benefit of using Box3D is that we can get constant updates to it. One of these updates included a "motor" joint, we call it a control joint in our API.
The control joint is designed to control the movement of a body. This improved our physgun to behave more like it does in gmod. Another update included a solution to "ghost collisions" where rolling an object on a mesh collider would sometimes hit internal edges, this is now solved.
We've added support for dragging in components as their interface types this month. We're planning on extending this to GameResources soon.
It means you can code something like this and drag it into a property in the editor:
public sealed class MyDisplay : Component, IDisplay
{
[Property] public string Name { get; set; }
}
...
// In another component, can be dragged in by eligible components
[Property] public IDisplay MyDisplay { get; set; }
Last month we launched our first community cosmetic, the Shark Head by Shadowbrain. That item has now stopped being sold, and we won't sell it again. Half way through the month we started selling the Safety Glasses by GKaf, and those will stop being sold on the 14th of October. Today we've started selling the Propane Helmet by Duck. It'll stop being sold on the 1st November..There are people that like to laugh and point out that we shouldn't be selling cosmetics for a game that isn't released. The thing about that is that monetization is part of making a game. We need to test it and we need to make sure it works. In an ideal world games would be funded with sweet dreams and warm hearts, but that's not the world we live in. We want s&box and its engine to be a feasible, self sustaining system that we can develop and evolve for years to come, and that really only works if it can wash its own face. We're trying to find ways to monetize in ways that sustains us and feeds the community. To find ways to help people use their talents to make a living. That's what Valve did with me and Garry's Mod. That's what I want to spend my time doing.
As we've mentioned previously, we intend to let you export games from S&box and release them on Steam.. without paying any royalties to us or whatever. We think that'd be pretty cool.
Getting the license to allow us to do that has been treading water for a few months, without anything really noticeable happening. Things started moving this month. It's still lawyers talking to lawyers, so it's never going to be fast - but we're seeing progress!
Hopefully, we'll have more to talk about with this soon!
You can now export your Movie Maker projects to video files, perfect for trailers and machinima. Included are some motion smoothing options to simulate various shutter speeds, and a live preview to help you tweak the export settings.
We’ve started to really tie up loose ends this month. It feels like we’re on the final stretch, so a lot of the work has been about closing doors and tightening bolts rather than adding wild new stuff.
At this stage we're going to be very reliant on our community to guide us on where our remaining pain points are. By pushing weekly patches we're hoping to tighten the iteration gap and make this easier.
Thank you to everyone using and testing the engine week after week, creating games, creating tools. We're all excited to give back to the community through the playfund, cosmetics and soon through game exporting.
I am concerned about the monetization primarily because it feels like you are exploiting FOMO through limited time offers. I would love to see monetization that does not exploit this. Logic says this should be less profitable. But then again Valve upended the gaming industry by offering sales in an industry that never did and ended up making ALL the money. So who knows?
Looking forward to updates on the royalty free exports. My workplace uses Unity to build training software and would be interested in a .NET compatible engine like s&box, especially with all the Unity inspirations that are clear in your editor.
Resolving half of all crashes is either phenomenal, or "oops that was an embarrassing typo" type embarrassing. Sounds like you're getting a good system in place to detect and resolve crash bugs.
You should reconsider the way VR mode is launched, or at least add some form of override (such as Steam's launch menu) to force non-VR mode. I don't like it when games autodetect like that. I personally keep my VR headset connected since it's a pain to get around to the back of my PC to unplug and plug its multiple plugs. There is a breakaway connector (which I disconnect instead when needed for this sort of thing) but it's not really designed for use in this way and it's still a pain to fish it out of my rat's nest of cables behind my PC. It would be nice if I could just tell Steam to launch a non-VR override every time and only switch it up if I feel like VR.
I am concerned about the monetization primarily because it feels like you are exploiting FOMO through limited time offers. I would love to see monetization that does not exploit this. Logic says this should be less profitable. But then again Valve upended the gaming industry by offering sales in an industry that never did and ended up making ALL the money. So who knows?
Looking forward to updates on the royalty free exports. My workplace uses Unity to build training software and would be interested in a .NET compatible engine like s&box, especially with all the Unity inspirations that are clear in your editor.
Resolving half of all crashes is either phenomenal, or "oops that was an embarrassing typo" type embarrassing. Sounds like you're getting a good system in place to detect and resolve crash bugs.
You should reconsider the way VR mode is launched, or at least add some form of override (such as Steam's launch menu) to force non-VR mode. I don't like it when games autodetect like that. I personally keep my VR headset connected since it's a pain to get around to the back of my PC to unplug and plug its multiple plugs. There is a breakaway connector (which I disconnect instead when needed for this sort of thing) but it's not really designed for use in this way and it's still a pain to fish it out of my rat's nest of cables behind my PC. It would be nice if I could just tell Steam to launch a non-VR override every time and only switch it up if I feel like VR.
Looking forward to updates on the royalty free exports. My workplace uses Unity to build training software and would be interested in a .NET compatible engine like s&box, especially with all the Unity inspirations that are clear in your editor.
Resolving half of all crashes is either phenomenal, or "oops that was an embarrassing typo" type embarrassing. Sounds like you're getting a good system in place to detect and resolve crash bugs.
You should reconsider the way VR mode is launched, or at least add some form of override (such as Steam's launch menu) to force non-VR mode. I don't like it when games autodetect like that. I personally keep my VR headset connected since it's a pain to get around to the back of my PC to unplug and plug its multiple plugs. There is a breakaway connector (which I disconnect instead when needed for this sort of thing) but it's not really designed for use in this way and it's still a pain to fish it out of my rat's nest of cables behind my PC. It would be nice if I could just tell Steam to launch a non-VR override every time and only switch it up if I feel like VR.
Looking forward to updates on the royalty free exports. My workplace uses Unity to build training software and would be interested in a .NET compatible engine like s&box, especially with all the Unity inspirations that are clear in your editor.
Resolving half of all crashes is either phenomenal, or "oops that was an embarrassing typo" type embarrassing. Sounds like you're getting a good system in place to detect and resolve crash bugs.
You should reconsider the way VR mode is launched, or at least add some form of override (such as Steam's launch menu) to force non-VR mode. I don't like it when games autodetect like that. I personally keep my VR headset connected since it's a pain to get around to the back of my PC to unplug and plug its multiple plugs. There is a breakaway connector (which I disconnect instead when needed for this sort of thing) but it's not really designed for use in this way and it's still a pain to fish it out of my rat's nest of cables behind my PC. It would be nice if I could just tell Steam to launch a non-VR override every time and only switch it up if I feel like VR.