I think I have about three months of work left to do including finishing the game itself, marketing work like making a new trailer, and a final testing run; not too bad considering the long 2½ years it’s taken so far.

Right now I’m making some in-game help, for those people who are going to be playing this having never seen the game before and who really won’t know where to start. It’s a few static screens for the moment. I’m a fan of context-based help that hands out the info when you need it, but that can wait for a future version.

Here’s a help screen with some vehicle design examples, to show how you can spend your scrap in different ways:



Internet play is working though Steam quite nicely now, with anyone being able to create a game and have others see it in the game list. Unfortunately it still seems a little bit hit-and-miss about whether it works perfectly so there’s a bit more work to do there.

Looking through the SVN commit logs for the last fortnight, I also fixed some bugs, improved graphics performance (I did have to remove that nice Sun Rays effect though – it was causing a ridiculous 25-30% performance hit when turned on), Dave knocked out some CPU performance issues for the AI, I made it so the host or the server can kick players, added in-game chat, made dedicated servers better configurable and ready for release, added and updated some default vehicles that come with the game, and added some neat little flags to show what country a server is in. Actually let’s talk about that.

Little Flags

Steam has two major ways to host multiplayer games. There are servers – the older system- which can be browsed in a server list and joined by players. Then there are lobbies, which are similar to servers, but have extra features intended for smart multiplayer matchmaking. Team Fortress 2 for instance has both of these systems available.

For Scraps I basically want servers and a server list, but we use lobbies to do it because (as I know I’ve said previously) they do NAT punch-through and other magic that makes it easier for Random Person X to create a game and have it show up on the public Internet, and the server system doesn’t have those features. Dave has set this up cleverly so we can still get a nice server list out of it anyway.

Unfortunately we can get everything except the ping. That is, the network round trip time. And I don’t know about you but a lot of the time if I’m looking for a server to play on in a game I sort by ping first. It so happens that Steam has that function for servers but not for lobbies – unless you want to actually connect to every one, and that doesn’t sound very scalable.

Luckily there is something usable – lobbies are (ostensibly at least) always returned in order of how far away they are from you, which should give a reasonably good indication of best-to-worst ping. As far as I can tell that’s basically how the normal matchmaking works in other games.

Unfortunately the actual distance data is internal and we can’t get to it, so there’s no fancy number to show in the ping column. Right now I’m just showing a “Distance Rank” instead, which is just an ordered one-to-whatever for distance away. If you choose number 1 then you’re choosing the best one, which is all fine, though the problem I have with that is for all the player knows they could be all super close or all super far away.

However, there is a function to get what country a Steam user is in. So I have the server get what country it’s in, save that value, the server list on the client reads it, and you get this:

With a little flag under Dist. Rank that should give a decent indication of how far away a server might actually be.

NavMesh Sadness

I also thought Unity might have actually fixed the NavMesh crashes I was getting because the Unity 4.6.4 release notes say:

AI: Fixed potential hang when NavMesh connecting wrong side of thin polygons to neighbor tile.

And in some early tests with my stuff it looked like that may actually be the case. Unfortunately it turned out that it just crashes a bit less quickly than before. Unity QA hasn’t actually even confirmed my bug report yet – I wonder if they’ve pretty much abandoned 4.x QA for Unity 5 because usually they’re pretty fast. Unfortunately Unity 5 has some other major issues that make upgrading right now seriously not worth it.