This week I have been focused on making the performance optimizations from last week actually work in the context of the game! When you fundamentally change how the MAV’s are put together, you run into some strange issues.
Most likely the funniest issue was me not accounting for rotation of the part you attach to the legs. Since I am a causal MAV builder, I slap a cockpit on the legs and call it a day. However, the more advanced builders ran into a funny bug that would flip the whole top of the MAV around! You can see it in action here.
The next biggest issue, was the turrets.
In MAV, turrets are MAVs, but just with some special rules. They have a set of legs [that can’t move] a cockpit, and the same types of weapons as you. Only now, there is a bunch of code expecting them to be cut in half. This was a much trickier problem to solve, as I had to make some design choices on how I wanted to handle the code branching between the turrets and normal MAVs, as I try to minimize the amount of hard forks in the code as much as possible. After some extensive testing, I believe I have found a solution that allows them to still share a code base with a normal MAV, but with a minor number of code forks to handle the none split nature of them.
With these updates, I have also put out some new snapshot builds! What is a snapshot build? It is a quick build designed to address a few specific issues [mostly when dealing with multplayer] that allows people to play the build before it goes live to everyone. This helps me do hot fixes very quickly for a smaller number of players without the risk of sending the build to the entire player base. If this is something you want to participate in, just go here: http://bombdogstudios.com/forums/topic/enabling-snapshot-builds/
Also, with these snapshots I have started hosting ‘Official Bombdog Servers’. These are 4 multiplayer servers setup on a dedicated box. 2 siege and 2 arena games, with and without AI bots. The goal is to always have a server available and I hope these servers help fill in any gaps. The community has been doing a great job of running servers and I am hoping these servers just help provide some extra flavor. Since the servers are fairly powerful, I have set the AI servers to have a reasonable AI count, 6 in arena and 8 in siege.
Also, in the latest snapshot I have adjusted some of the server admin commands. After a relentless assault by SergeDavid, I have changed the admin cmd syntax from ‘cmd/’ to just ‘/’.
I have also added these new commands:
‘/endround’ Instantly ends the round and calculates the winner. Good for siege matches where both teams are stripped or out of ammo but nobody wants to wait out the timer.
‘/switchteam [PlayerName] [TeamNumber]’ Force switches a players team during the team setup phase. Can be used on the AI as well. Usage would look like this: /switchteam RoboMAV-AI0 4.
‘/reboot’ Sometimes the server gets into a state that a hard reset is the best course of action. This command will close down the current server and restart it using the same settings that it originally launched with. Very helpful for people running headless servers on remote machines as well. Works with a machine hosting multiple MAV servers as well.
That is all for this week! I will be hoping on and playing through out the next week as I compile my list for the next big update. I hope to see you in game!