June Catchup

We haven't posted in a while so here's a catchup update on what we're doing

Catch Upby garry

[ { "text": [ { "type": "string", "attributes": {}, "string": "Hey guys, how have you been? We haven\u0027t posted a devblog for a while.. and I\u0027m going to blame discord. We talk to the community there. I hate it. You shouldn\u0027t have to lurk in discord to get updates.", "attachment": {} }, { "type": "string", "attributes": { "blockBreak": true }, "string": "\n", "attachment": {} }, { "type": "string", "attributes": { "blockBreak": true }, "string": "\n", "attachment": {} }, { "type": "string", "attributes": {}, "string": "So lets start doing this again. Here\u0027s our current priorities.", "attachment": {} } ], "attributes": [], "htmlAttributes": {} } ]

Documentationby garry

[ { "text": [ { "type": "string", "attributes": {}, "string": "The ", "attachment": {} }, { "type": "string", "attributes": { "href": "https://sbox.game/api" }, "string": "API section was cleaned up", "attachment": {} }, { "type": "string", "attributes": {}, "string": ", to make it easier to discover APIs you don\u0027t know about.", "attachment": {} }, { "type": "string", "attributes": { "blockBreak": true }, "string": "\n", "attachment": {} }, { "type": "string", "attributes": { "blockBreak": true }, "string": "\n", "attachment": {} }, { "type": "string", "attributes": {}, "string": "We\u0027ve got a ", "attachment": {} }, { "type": "string", "attributes": { "href": "https://docs.facepunch.com/s/sbox-dev" }, "string": "Developer Documentation", "attachment": {} }, { "type": "string", "attributes": {}, "string": " site that we\u0027ve been trying our best to keep up to date. Please shout at us if it\u0027s not.", "attachment": {} } ], "attributes": [], "htmlAttributes": {} } ]

Don't Break Gamesby garry

[ { "text": [ { "type": "string", "attributes": {}, "string": "We\u0027ve had instances where we broke shipped games. We shouldn\u0027t ever be doing this now. We should be bending over backwards to avoid it.", "attachment": {} }, { "type": "string", "attributes": { "blockBreak": true }, "string": "\n", "attachment": {} }, { "type": "string", "attributes": { "blockBreak": true }, "string": "\n", "attachment": {} }, { "type": "string", "attributes": { "blockBreak": true }, "string": "\n", "attachment": {} }, { "type": "string", "attributes": {}, "string": "We now have a system as part of our build process, where it checks a list of games, and if they don\u0027t run it won\u0027t let the new build build.", "attachment": {} }, { "type": "string", "attributes": { "blockBreak": true }, "string": "\n", "attachment": {} }, { "type": "string", "attributes": { "blockBreak": true }, "string": "\n", "attachment": {} }, { "type": "string", "attributes": {}, "string": "We also added version upgraders for the component system, so if we change a component, we can add code to take older versions to the new version, which should avoid any issues.", "attachment": {} }, { "type": "string", "attributes": { "blockBreak": true }, "string": "\n", "attachment": {} }, { "type": "string", "attributes": { "blockBreak": true }, "string": "\n", "attachment": {} }, { "type": "string", "attributes": {}, "string": "If we break a game you shipped then please shout at us so we can fix it before people start relying on the new behaviour and we can\u0027t change it back without fixing another game.", "attachment": {} } ], "attributes": [], "htmlAttributes": {} } ]

Clarityby garry

[ { "text": [ { "type": "string", "attributes": {}, "string": "Where possible we\u0027ve been deleting and reducing to create more clarity. We\u0027ve merged this site with asset.party, to become this site. One site instead of two.", "attachment": {} }, { "type": "string", "attributes": { "blockBreak": true }, "string": "\n", "attachment": {} }, { "type": "string", "attributes": { "blockBreak": true }, "string": "\n", "attachment": {} }, { "type": "string", "attributes": {}, "string": "In the editor we previously let you open a bunch of different projects at once. It was confusing and we got ourselves into a mess. You can now only open one project at a time. This is aligns with expectations and simplifies everything massively.", "attachment": {} } ], "attributes": [], "htmlAttributes": {} } ]

Librariesby garry

[ { "text": [ { "type": "string", "attributes": {}, "string": "We added a ", "attachment": {} }, { "type": "string", "attributes": { "href": "https://docs.facepunch.com/s/sbox-dev/doc/libraries-6Y6EtLMvQN" }, "string": "library system", "attachment": {} }, { "type": "string", "attributes": {}, "string": ".\u00A0", "attachment": {} }, { "type": "string", "attributes": { "blockBreak": true }, "string": "\n", "attachment": {} }, { "type": "string", "attributes": { "blockBreak": true }, "string": "\n", "attachment": {} }, { "type": "string", "attributes": {}, "string": "Instead of downloading some compiled assembly from somewhere and not being able to edit it, we opted to download source code into your project folder.\u00A0", "attachment": {} }, { "type": "string", "attributes": { "blockBreak": true }, "string": "\n", "attachment": {} }, { "type": "string", "attributes": { "blockBreak": true }, "string": "\n", "attachment": {} }, { "type": "string", "attributes": {}, "string": "This has a few advantages. Like you can view the code, so you know how to use it. And you can edit the code if it\u0027s not doing what you want. And finally, it\u0027s never going to change without you changing it.", "attachment": {} } ], "attributes": [], "htmlAttributes": {} } ]

Refiningby garry

[ { "text": [ { "type": "string", "attributes": {}, "string": "We\u0027ve been getting better, incrementally, every day. The community is doing a fantastic job at finding and reporting any issues that they find. The editor is getting prettier and more stable every week.", "attachment": {} } ], "attributes": [], "htmlAttributes": {} }, { "text": [ { "type": "attachment", "attributes": {}, "attachment": { "contentType": "image/png", "filename": "https://cdn.sbox.game/upload/b/dcb883bf/96fc/4320/ac1a/814a8cf58c1a.png", "href": "https://cdn.sbox.game/upload/b/dcb883bf/96fc/4320/ac1a/814a8cf58c1a.png", "url": "https://cdn.sbox.game/upload/b/dcb883bf/96fc/4320/ac1a/814a8cf58c1a.png", "caption": null } } ], "attributes": [], "htmlAttributes": {} }, { "text": [ { "type": "string", "attributes": {}, "string": "As well as Libraries, we\u0027ve added a bunch of nice things to the editor. From simple things to multi-select editing, to more complex things, like in-scene map creation.", "attachment": {} }, { "type": "string", "attributes": { "blockBreak": true }, "string": "\n", "attachment": {} }, { "type": "string", "attributes": { "blockBreak": true }, "string": "\n", "attachment": {} }, { "type": "string", "attributes": {}, "string": "We recently improved the editor with the scene tab system and multiple viewports.", "attachment": {} } ], "attributes": [], "htmlAttributes": {} }, { "text": [ { "type": "attachment", "attributes": {}, "attachment": { "contentType": "image/png", "filename": "https://cdn.sbox.game/upload/b/e3fe8327/2ad1/49dc/b713/703622370664.png", "href": "https://cdn.sbox.game/upload/b/e3fe8327/2ad1/49dc/b713/703622370664.png", "url": "https://cdn.sbox.game/upload/b/e3fe8327/2ad1/49dc/b713/703622370664.png", "caption": null } } ], "attributes": [], "htmlAttributes": {} } ]

Audio Mixingby garry

[ { "text": [ { "type": "string", "attributes": {}, "string": "We\u0027ve converted the sound system to an Audio Mixer system. This system lets you play particular sounds through a particular mixer. This mixer can then have its own volume and other processors.", "attachment": {} } ], "attributes": [], "htmlAttributes": {} }, { "text": [ { "type": "attachment", "attributes": {}, "attachment": { "contentType": "image/png", "filename": "https://cdn.sbox.game/upload/b/7f564145/b09b/4056/8785/a7bfa26227f2.png", "href": "https://cdn.sbox.game/upload/b/7f564145/b09b/4056/8785/a7bfa26227f2.png", "url": "https://cdn.sbox.game/upload/b/7f564145/b09b/4056/8785/a7bfa26227f2.png", "caption": null } } ], "attributes": [], "htmlAttributes": {} }, { "text": [ { "type": "string", "attributes": {}, "string": "For example, you could have a mixer called \u0022Weapon\u0022 as a child of the \u0022Game\u0022 mixer. You could decide that all of your weapons are too quiet, so turn up the volume of your Weapon mixer. But then you might want to add some echoey reverb to all the game sounds in your scene, but not affect music or ui sounds, so you can add a processor to the \u0022Game\u0022 mixer.", "attachment": {} }, { "type": "string", "attributes": { "blockBreak": true }, "string": "\n", "attachment": {} }, { "type": "string", "attributes": { "blockBreak": true }, "string": "\n", "attachment": {} }, { "type": "string", "attributes": {}, "string": "This system is still a work in progress, but it\u0027s infinitely more configurable than what we had previously.", "attachment": {} } ], "attributes": [], "htmlAttributes": {} } ]

The Gameby garry

[ { "text": [ { "type": "string", "attributes": {}, "string": "We\u0027ve been looking at the game itself recently, and trying to find ways to keep people online.", "attachment": {} }, { "type": "string", "attributes": { "blockBreak": true }, "string": "\n", "attachment": {} }, { "type": "string", "attributes": { "blockBreak": true }, "string": "\n", "attachment": {} }, { "type": "string", "attributes": {}, "string": "One of the problems is that we\u0027re shoving all of these broken, shitty games in people\u0027s faces. So we\u0027ve added a Featured section, which allows us to hand pick a bunch of games to show people.", "attachment": {} }, { "type": "string", "attributes": { "blockBreak": true }, "string": "\n", "attachment": {} }, { "type": "string", "attributes": { "blockBreak": true }, "string": "\n", "attachment": {} }, { "type": "string", "attributes": {}, "string": "Another problem is that you think people are playing (because of the player count), and you click the game, and they\u0027ve already stopped playing. So now we have a new section on the main game\u0027s screen, called \u0022Active Servers\u0022, which is at most 5 seconds out of date.", "attachment": {} }, { "type": "string", "attributes": { "blockBreak": true }, "string": "\n", "attachment": {} }, { "type": "string", "attributes": { "blockBreak": true }, "string": "\n", "attachment": {} }, { "type": "string", "attributes": {}, "string": "We added a party system to the bottom left of the screen. This allow you to create a small group and drag them with you into and out of games.", "attachment": {} } ], "attributes": [], "htmlAttributes": {} }, { "text": [ { "type": "attachment", "attributes": {}, "attachment": { "contentType": "image/png", "filename": "https://cdn.sbox.game/upload/b/aca4cd8b/640f/4748/b4e5/a4eb1bc3ba36.png", "href": "https://cdn.sbox.game/upload/b/aca4cd8b/640f/4748/b4e5/a4eb1bc3ba36.png", "url": "https://cdn.sbox.game/upload/b/aca4cd8b/640f/4748/b4e5/a4eb1bc3ba36.png", "caption": null } } ], "attributes": [], "htmlAttributes": {} }, { "text": [ { "type": "string", "attributes": {}, "string": "But generally, everyone playing the game right now are using the editor.. so we still have lots of work to do to get people to keep playing. There\u0027s a few things we\u0027re going to be trying over the next few weeks.", "attachment": {} } ], "attributes": [], "htmlAttributes": {} } ]

Performanceby garry

[ { "text": [ { "type": "string", "attributes": {}, "string": "Our performance isn\u0027t terrible. Sometimes it\u0027s actually quite good.", "attachment": {} }, { "type": "string", "attributes": { "blockBreak": true }, "string": "\n", "attachment": {} }, { "type": "string", "attributes": { "blockBreak": true }, "string": "\n", "attachment": {} }, { "type": "string", "attributes": {}, "string": "We\u0027re working on a benchmark system in an attempt to target specific metrics and track how they change over time. We want to make sure that what we do has a positive impact on performance, instead of a negative impact.", "attachment": {} }, { "type": "string", "attributes": { "blockBreak": true }, "string": "\n", "attachment": {} }, { "type": "string", "attributes": { "blockBreak": true }, "string": "\n", "attachment": {} }, { "type": "string", "attributes": {}, "string": "The benchmark system will be used to prove performance issues, and then prove their fixes.", "attachment": {} } ], "attributes": [], "htmlAttributes": {} } ]

Invitesby garry

[ { "text": [ { "type": "string", "attributes": {}, "string": "One of the things we\u0027re going to be doing is getting rid of the invite system. It worked, and it was fun, but it\u0027s too much work.", "attachment": {} }, { "type": "string", "attributes": { "blockBreak": true }, "string": "\n", "attachment": {} }, { "type": "string", "attributes": { "blockBreak": true }, "string": "\n", "attachment": {} }, { "type": "string", "attributes": {}, "string": "It\u0027s time for us to be brave and open up access a bit more. In the new system you will be able to sign into this site and grant access to yourself.", "attachment": {} }, { "type": "string", "attributes": { "blockBreak": true }, "string": "\n", "attachment": {} }, { "type": "string", "attributes": { "blockBreak": true }, "string": "\n", "attachment": {} }, { "type": "string", "attributes": {}, "string": "It\u0027s still a closed preview, because we can revoke access at any time, but it\u0027s an open closed preview.\u00A0", "attachment": {} } ], "attributes": [], "htmlAttributes": {} } ]

Summaryby garry

[ { "text": [ { "type": "string", "attributes": {}, "string": "I\u0027m going to make more of an effort to post these updates more regularly. We\u0027re doing a lot of stuff in the background, enough to fill a devblog every week/month, so there\u0027s no excuse other than laziness.", "attachment": {} } ], "attributes": [], "htmlAttributes": {} } ]