Thoughts on S&box
I’ve had access to Facepunch’s upcoming game-turned-engine S&box for about 2 years now (❤️ trundler), and I’ve been pretty quiet about it. I’ve been trying really hard to learn it, learn what I want to make with it, and adapt with it through the several “pain days” (updates that include massive api changes) it’s gone through. This post is going to be me looking back at the past 2 years I’ve spent with S&box and giving my thoughts on both things I’ve made with it, and the engine itself.
What is S&box?
S&box is a game and development toolkit built on Valve’s Source 2 Engine. The core idea is that S&box will make it quick-and-easy to create your game ideas, and then deploy those games to a pre-existing community (those being the players of s&box). It’s a model very similar to Roblox, but without any monetization options (as of writing). If you’ve ever built for S&box’s predecesor Garry’s Mod, here are a few key differences you can look forward too:
- Games/Addons are written in C# instead of Lua, the UI uses C# or Razor paired with SCSS, and nearly everything is hotloadable!
- S&box has it’s own distribution platform called asset.party where you can upload models, materials, addons, gamemodes, maps, ect directly from S&box. You can specify all the content that your gamemode requires, and the game will automatically download it for you with proper versioning. No more having to rely on a server’s proprietary file host to download content for you.
- asset.party is also integrated into nearly every part of the devkit similarly to the toolbox in Roblox. This makes it super easy to instantly integrate any cloud content into your game without having to leave the IDE.
- S&box will not allow you to mount content from other games. Instead, you can only download content from asset.party. Garry has expressed interest in including all the HL:A assets similarly to how GMod includes all the HL2 assets, but nothing has been done as of yet.
Why do you love it?
I am someone who comes from a world of majorily 2D game development, with very little foray into 3D. Unity, Unreal Engine, and Godot have been excellent in their own ways each time I’ve used them, but each also have their own quirks that turn me away from making 3D games. S&box is the first 3D engine that I’ve been able to sit down and intuitively create with, and I think it’s because I grew up creating Counter-Strike, Garry’s Mod and TF2 maps. Hammer is the only time you ever really interface with the 3D aspects of your game, everything else is done through code, and I find it incredibly intuitive.
I am also someone who has never made online multiplayer games outside of mods such as Garry’s Mod. Without even thinking about Networking most times I’m developing in S&box, I’m surprised to see how much just works out of the box. It’s incredible what Facepunch has done to create a networking system that is both easy to use and incredibly powerful.
S&box includes a modified version of the Source 2 Hammer Editor with tons of quality of life and workflow improvements over Source 1’s Hammer Editor. Hammer 2 should be treated as modelling software similar to Blender (and can even be used as such… I’ve been using it to make most models for my games) and when it comes to maps, you should always build from the inside -> out instead of the outside -> in. I highly recommend watching this series of videos if you’re interested in learning more about Hammer 2.
Here’s a look at it seamlessly loading cloud models from asset.party, allowing you to easily include any cloud content in your map without having to think about it:
If you’re coming from an engine like Unity, something like ModelDoc will definitely scare you at first. But if you’re coming from Source 1, you will appreciate how easy and intuitive everything is comparatively. The idea of ModelDoc existing and requiring you to create vmdls for your models is to both optimize the information for Source 2, and to make it really easy to edit and hotload models on the fly. Once I got into the flow of creating vmdls and all the control you get in ModelDoc I found myself wondering why it can sometimes take up to 2 minutes to make changes to a model in Unity (and most times the changes don’t hotload, you have to re-enter play mode).
Earlier I alluded to Hammer being used as modelling software, and that’s because ModelDoc is perfectly integrated. Selecting a mesh or group of meshes in Hammer will allow you to either export them as a .dmx model or instantly turn them into a vmdl. I personally recommend saving your vmaps as project files, exporting as .dmx, and creating the vmdl from the dmx. This is because converting directly to ModelDoc will delete the meshes in Hammer and replace them with a prop_static that is set to your newly created vmdl. This is great for quickly creating props, but if you want to make changes to the model in Hammer you’ll have to delete the prop_static and re-import the dmx.
It’s kind of hard to justify putting in hours, days, or even weeks of work into something you can’t monetize… And while there are no monetization options as of yet, Garry has said “one of the big failures for me with GMod was not being able to let developers earn from it”, so I think something is on the horizon for S&box 🤞
This is all great… But what have you done..?
I’ve made a few gamemodes and maps that I’ve released and a few that I have not. Of the things I have released, the most popular (and worked on) was Plates of Fate followed by Funkin’ and Rhythm4k. I hope to update Plates and Rhythm4k eventually (or rewrite them entirely) to work on the latest s&box versions, but I’m currently working on a new gamemode that I’m hoping to release soon…
“Home” is the title of the gamemode I’m currently working on which I hope to release in a super-early alpha state really soon! It’s a VRChat-inspired social game where you hangout in a virtual space with your friends, do small activities to earn money, and build a virtual home to host and invite your friends to. If you currently have access to S&box, you can expect to see it on the game list some time this summer :)
S&box is amazing. I’m going to be sticking with it for a long time and I hope you all consider checking out the things I make with it once you get your hands on it.
I’ll also leave you with a list of my favourite games made in S&box that are still up-and-running:
- Pool by Facepunch
- Minigolf by Facepunch
- Boomer by Facepunch
- Sausage Survivors by Facepunch
- Unicycle Frenzy by Facepunch
- Strafe by Facepunch
- Super Tumble by Facepunch
- Team Fortress: Source 2 by Amper Software
- Grubs by Ape Tavern
- GarryWare by I Can’t Believe It’s a Law Firm
- S& Tycoon by Orange Brick Collective
- Terry’s Alright Skater by Three Thieves
- Speed Dial by Eagle One Development Team
- Cat Harvest by Small Fish