Rethinking

Rethinking

11 days ago

Rethinking

I’ve been rethinking what s&box should look like over the past couple of weeks. The platform is not well liked, it doesn’t have good retention. I’m embarrassed by our reviews, I am ashamed. Listening to all the negative feedback, absorbing, taking it seriously and deciding what we should and shouldn’t be doing. It’s not a big secret that it hasn’t been going well.

Our focus has been on the engine and the development experience. That’s what we love, that’s what turns us on - but we’re not selling an engine, we’re selling a game. So we need to do much much better on the game, we need to shift our focus to what players are experiencing, not developers.

Part of this focus is drawing our attention to the Sandbox Game. Giving it parity with the Garry’s Mod version and surpassing it. Showing everyone what the engine can do, adding more NPCs, adding vehicles, offering a first class multiplayer experience, supporting addons and customization. This is a relatively easy task - but I’ve let everyone down that was expecting that. I accept that, and I’m sorry - we are going to do better.

We’re fully removing the Citizen. We tried to make it work for about a year longer than we should have (see below).

We have been struggling with discovery a lot. Which games to show, which to hide. Then AI came along and made that much much harder, because suddenly it’s very easy to knock out a game. The player is overwhelmed by choice. They’re presented with a few good games surrounded by a ton of shit games. They choose a game, it takes a while to download, and it’s immediately shit. How many times will they try games until they find one they like.

My idea of a Netflix for games doesn’t work. It’s not feasible. It’s not how people discover games. You can’t land people on a menu of 60 games and say have fun. That’s not a good experience. People want to find games through recommendations, through active multiplayer games, through watching streamers, influencers and content creators. We have been coming at it from the wrong direction.

We shouldn’t strive to be a platform with the most games available. We should strive to be a platform with the best, most popular games available. Where good taste and great opinions are valued beyond everything else. This is a very human thing, this isn’t something that can be replaced by AI, ever.

This is why we’re changing the Play Fund to an opinionated approval system instead of something everyone can just enrol themselves in (see below).

We have spent a lot of time making our own backend, our own version of workshop. I’m arriving at the conclusion that this has mostly been a waste of time and resources. It has been fun to make, but we should be shaping everything into fitting into the Steam Workshop as much as possible.

We intend to go free to play towards the end of the year. It’s been pointed out that we are charging for access and also have skins for sale. I don’t think that’s too unusual nowadays, but I can totally understand how combined with everything else that it’s a big turn off. We don’t need the entrance fee, we need players. Our intention always was to go free to play eventually, so fuck it, lets just do it now. Everyone who has paid for the game will automatically get a bunch of exclusive steam inventory items (extra if you bought it at $20 vs $10) that I hope will justify the purchase price.

I love seeing people create things, I love this engine, and I love working on it. The negative reviews hurt me. The disdain for the project hurts me. I don’t like letting people down, especially when they’ve given me money to provide a service. I understand it all and we’re making some big sweeping changes to try to improve things. Please bear with us while we make these changes.

Citizen Is Dead

The citizen is dead. The human is now the default choice everywhere. The model still exists in the game and so games that use it will keep using it, but it's no longer visible in the menu or the avatar editor. We'll be updating our games to use the humans.

I know some of you had grown to like the citizen and we are losing some of our identity, I believe this is a pragmatic and necessary next step. It's not all downside. We now have to maintain just one player model. We don't have to worry about models with four fingers and massive hands. All the weapons can be normal size. We can make normal sized cars.

Human Model Improvements

We have been working together to improve the human models and this week you have the first pass. We have new animations, LODs, better underwear, eye color choice, climbing animations and a much cleaner animgraph. The energy we're putting into improving the human model is just starting. It'll be a continuous effort.

Open Video

Human's Face Lift

I've given the humans a face-lift. My focus going forward will be on improving the look and customizability of the human models. As well as more head options to come. We've improved and added LODs to the humans, as well as some fixes to the body meshes. The eyes are being further developed, a new material and the option to adjust the colour.

We've come a long way from the original heads we added. The aim is to make models that are more like the half-life 2 citizens or Niko Bellic from GTA. Sympathetic, downtrodden - not scary or hyper realistic.

We know many of you will be sad to see the citizen go, and he will be missed internally - but at least you didn't get it permanently tattooed on your body... I'll never live this down.

What an idiot.

Human's Animation

With the desire to use the human model as the default in s&box it was clear the current anim setup & animations themselves needed some love. Everything in the game has used the citizen as the base, so anims were cartoony and stylised...which doesn't fit the human. I also wanted to address the oddness in general locomotion, including crouch walks, specific jump directions and better landing:

I then looked at customiser animations.....these are not all being utilized at the moment but will give more natural motion to this area of the game as well:

Initial work has begun on weapon animations as well, starting with pistol, rifle & shotgun functionality:

Melee has also been looked at, with the crowbar getting the classic gmod pose treatment:

As Garry has mentioned the anim graph will also be cleaned up as a lot of the overcomplication is not being used and is most likely making things more confusing for devs to set up for their own games. If there's anything you'd like to see added while we revamp player movement please let us know.

Playfund Changes

We've flipped the Playfund to a greenlight type system where you have to apply and be accepted to be in it. The previous system was not working, it was encouraging people to make the wrong type of games, it was rewarding people botting. Our new policy isn't set in stone, but generally we want to discourage clickers, idler, slop and UI based games. We want to reward games like the ones we've seen recently in the Game Jam. We want to set the bar a bit higher than it has been set previously. We've removed a bunch of games and maps from the system that we feel don't reach this new bar.

Steam Workshop - Maps

Our first experiment here will be with maps. When publishing now, you'll publish it to the Steam Workshop too. All files will go there. You're still searching via our backend for now, but the plan is to replace that with the workshop too. This means you can subscribe to your favourite maps, they'll download while you're off the game, and you can filter them in the map selector.

To all mappers, please publish your maps to the workshop soon, because when we make the full switch, players will no longer be able to find your maps.

Performance

Performance isn't where any of us want it to be still. We've been improving it, but not fast enough, and I've let other work take priority when it shouldn't have. We've consistently failed to meet a stable frame rate on lower end hardware and even on higher end hardware the frame rates aren't acceptable. I'm sorry about that and it should've been sorted a long time ago.

Our metrics are noisy and don't paint a comprehensive picture for anyone, we'll be improving on these once again to give a better breakdown of how each tier of hardware is reacting, in consistent scenarios that are poorly performing like Sandbox & Construct. I know "we're working on performance" is what everyone always says, but we're working on it, we're making leaps and bounds week on week with a focus on lower end hardware backed by pure hard data. Please bear with us a little longer.

Faster Startup

After reading reviews and issues, I noticed a significant number of people commenting about how much time it takes to launch the platform - so I spent some time improving our startup flow. Our aim here is that there's even less friction from launching the platform to getting into a game. We've greatly sped up our startup process by doing more work in the background - and rather than using fixed delays, we do proper readiness checks for things. We also show a splash screen much sooner in the process, which means that we can give more immediate feedback while the rest of the platform starts. We'll hopefully find more places to speed this up in future - but our current improvement is a measured speedup of about 60% on my machine. This doesn't just apply to the platform, too - similar speedups also apply to our editor for creators and developers.

Player Movement Fixes

The player controller follows sloped ground and brakes along its surface more consistently. This fixes downhill drift and jitter when walking into a wall from a slope. Stepping up from sloped floors has also been corrected (Fixed jitter when running into a wall on a sloped floor)

BrakePower now acts as a friction multiplier, with existing values migrated. CoyoteTime is exposed as a property too: you can choose how long players may jump after leaving the ground, or set it to zero to disable that grace period.

Smaller Downloads

We've seen a lot of reviews and comments saying downloads take forever, and that's fair. I recently moved and I'm stuck on a 20-100 Mbps connection myself, so I get it now. Waiting ten minutes or more to join a game is a terrible experience. So we've been cutting down how much you have to download before you can play a game. Added together, the 50 most played games drop from 46.3 GB to 36.3 GB in total (22% smaller). The 50 most played maps drop from 47.4 GB to 35.6 GB in total (25% smaller). Game Creators just need to recompile their assets and republish to get these savings.

Map & Material File Size

We've been working to reduce the size of all our maps and material sizes. Certain maps can take a few minutes to download all the maps content, we want to reduce it as much as we can while keeping the maps detail. We've done a big pass on materials reducing their resolution, using more shared texture maps and removing any unused or minimal/empty textures. This has already had a big impact on maps like Construct which use a lot of materials, From 6gb > 4.2gb. The other thing we are addressing is reducing the amount of single use materials in our maps, while it does at nice detailing its not noticable. I've managed to half Flatgrass, From 1gb > 500mb. Going forward any of our maps will use a much more limited palette to help with file size.

Improved Network Interpolation

To make other players move smoothly, the game shows them slightly in the past, so it always has the next update ready to blend towards. That delay was bigger than it needed to be, and on a bad connection, late packets made movement stutter. So we reworked how network updates are timed and played back. Updates now go out at the rate set in your project config (30 Hz was really about 20 before), and players move based on when the host sent each update, not when it arrived. The delay now also adjusts to how good your connection is.

  • On a stable connection at 30 Hz, other players are now 71 ms behind instead of 133 ms.
  • On a jittery connection it goes from 160 ms to 127 ms, and movement stays smooth instead of stuttering.

Changelog

🎁 Added

Workshop

  • Workshop maps - publish map files to Steam Workshop, subscribe to maps and browse Subscribed/Downloaded filters while discovery continues through the backend facepunch/sbox PR #6066 by @devultj

Player Controller

Main Menu

Rendering & Shaders

Physics & Resources

Audio

Editor & Automation

🧼 Improved

Characters

Startup & Launcher

Main Menu

Rendering & Shaders

Assets & Downloads

Memory & Performance

Editor

  • Scene baking - simplify manual compilation; saving unchanged scenes preserves the bake and warnings can select/frame empty source meshes facepunch/sbox PR #6040 by @aylaylay

Diagnostics

Networking

  • Update timing - preserve the configured network send schedule, interpolate using sender timestamps and base resend timeouts on measured round-trip time facepunch/sbox@e4377c0 by @lolleko
  • Adaptive interpolation - adjust playback delay to connection timing and smooth interpolation restarts facepunch/sbox@c7333a7 by @lolleko

Workshop

🪛 Fixed

Player Controller

Networking & Main Menu

Editor

Rendering & Animation

Audio

Physics

Assets & Engine

Main Menu

Workshop

  • Map versions - report an incompatible Workshop map version when joining instead of attempting to load mismatched content facepunch/sbox PR #6066 by @devultj
  • Workshop metadata - correct thumbnail handling and remove the automatically added sbox.game link from item descriptions facepunch/sbox PR #6119 by @devultj

🚯 Removed

Editor & Automation

Startup & VR

Characters

Assets & Downloads

  • Unused map data - stop packaging runtime-unused ligh
PatchBot
s&box

PatchBot will keep your Discord channel up-to-date on all the latest s&box patch notes.