s&box
06 October 2017

Dev Blog 5

Our first proper "what we're doing" devblog this week, rather than the single subject blogs we've posted in the past.
Plans
A ton of people are asking for beta keys, when is release, how much will it cost, will it have workshop, what the server browser will look like, so I think I need to clear it up. This is a prototype. We're having fun. 

It might turn into something, we might release it, but at the moment we have no plans. Our immediate plan is to make a multiplayer deathmatch gamemode. Then make it rock solid. Then stand back and critique what we've done, our APIs, our methods. Then fix and polish, then repeat. 

We've gotten a bit distracted from that as of late, chasing flashy things and playing with new toys, and multiplayer is fundementally broken, so I'm hoping we can pull it back together over the next couple of weeks. We plan to do regular rust style devblogs from now on. I'm a big fan of them. They're useful for the team, to be able at the end of a week to look back and see what you've achieved and to get a clearer idea of what you want to do the following week.
Console Changes
I previously mentioned that we had our webcon in game. In the end that didn't turn out well.. so I added an old familar version. I also added autocomplete.
Clarification: We're not dropping webcon - we're just not making it available in game. You can still access webcon outside of the game.
Light Probes
This week I added light probes that can be imported with the map. Light probes are ambient lighting that are sampled by moving objects that don't have baked lighting. Here you can see the ambient samples this map has. To show why this is useful, i removed all dynamic lights but the prop still gets lit by the light probes.
Render Targets
I got render targets working, they work the same as normal textures except you can render onto them. Here I'm drawing a "paint brush" material onto the render target, which allows us to paint stuff. It can also be used to render the scene from a different point on the map I also added a way to render the scene at any size and spit out the pixels, so now we have a high resolution screenshot command.
Coherent Implementation
Up to now our user interface has been using the Unreal Engine 4 plugin shipped with Coherent GT. We've found that this doesn't allow us a lot of control which we'd have by just using the C++ API and exposing Coherent GT to C#, which I've been working on.
Multiplayer Bugs
Our multiplayer had gotten quite buggy. There's a particular ensure that keeps getting triggered clientside. I've wasted way too many hours chasing it around and trying to figure out what's happening. I've come to the conclusion that UE just doesn't like actors being attached to each other, then being deleted or hidden or having their physics activated. It causes a race condition that triggers this ensure. The ensure itself seems like it won't cause any problems if we comment it out. But to do that we have to start editing engine code, which is a rabbit hole.. but maybe inevitable anyway.