Wow, what a crazy week!
First, a bit of marketing 🙂
M.A.V. is now available in 4-packs and you should go buy one now to spread the love around. You could be the Johnny Appleseed of M.A.V., spreading cheer and giant robots to all reaches of the internet. Go buy it now, I will wait.
Back? Ok then:
The multiplayer update has begun! I started the week by spending some time creating a super secret, custom master server just for me so I could run test builds in peace. 🙂 This also cuts down on player confusion when they login and see servers with a version number that is not even released yet.
After hooking up the new master server and putting it in the game I had the faithful moment of clicking ‘join game’ for the first time on the new menu. I was so nervous to find out how badly I had affected multiplayer with all my new changes. I clicked the button and….. Nothing. Apparently, when creating the menu, I had changed so much that I never even bothered making the ‘join game’ buttons do anything at all! And boy did I have a good reason for that. I spent about 5 days total getting the server joining working again. Why so long? let me explain!
The server connection and joining process is actually heavily dependent on the overall gameflow, something that I had drastically changed. Before the server would skip the main menu and instead go to a special ‘server only’ level, do some stuff, then load up the playspace and wait for the players to join. The client would load up the main menu, but would always require you to go through the garage before loading up a special level for looking at the servers and then joining. Well, all of this is now changed! Both the server and the player use the same route of Load Screen -> MainMenu -> Play space, and that required removing unused levels, moving over the special code from those levels, and doing lots of cleanup work. In the end, it’s a much smoother process and opens up a lot of cool things.
One of the things I am most excited about is removing the current server UI and using a new, full UI system. This will be very similar to the game options screen I created and will have all the same pretty controls! No more default Unity3d UI buttons! For a player, it’s even more interesting. By the nature of the gameflow, a player will always be presented with the multiplayer server options, even if they are on their way to play single player. This should help a lot with pick up games in multiplayer a lot!
In addition, I was hosting a 32 player AI battle [with me as well] and did a LOT of performance improvements to help servers cope with large numbers of players. I was able to improve that ‘worst case’ situation from 0.9 FPS [you read that right] to a massive 4 FPS! It doesn’t seem like a lot, but performance is performance. Also, that was in the editor, so a stand alone server would likely have been around 10 FPS. Ideally I would be able to optimize the servers up to a solid 60 FPS, but I feel like 30fps is more reasonable. I am looking at the possibility of creating my own movement physics system as the Unity3d character collier is consistently the biggest performance hog.
Now, with any new feature, there are bugs. Plenty of bugs. But, it was planned for and they are being addressed as they pop up!
That’s all for this week!