Note: This Early Access game is not complete and may or may not change further. If you are not excited to play this game in its current state, then you should wait to see if the game progresses further in development. Learn more
Welcome to this weeks State of the Game. Now stop reading and go get the latest stable build and start playing!
Back? Good! So the new stable build wraps all the features from the snapshots into a bug tested [not bug free!] build that everyone can enjoy while I work on the next set of features. So what does this one have in it? Glad you asked! [Though you already played it so you should know. You did play it, right?]
New Pregame Lobby
The new pregame lobby allows you to switch out builds, switch teams, see the other players builds, and vote on the next level to be played. It was quite the overhaul!
No longer will you get stuck in a loop of playing New Amazon by a troll server, you can now choose your own fate and vote on the next map. There are 3 level options, one picked by the server admin, and 2 random levels. If the server does not have a level list, all 3 choices will be random [but never duplicated]. The level with the most votes wins! In a case of a tie, it's the level that was randomly selected last, or the server admins level, depending on which levels are in the tie.
If you play the game on steam, you will now have the option of connecting your steam account to a Bombdog account. Why would you want to do this? There is some Bombdog account exclusive content, like Alpha member features, or the Alienware cockpit. By connecting your steam account to your Bombdog account, you will be using steam to login to Bombdog account, ensuring you have access to everything, no matter what platform you choose to use. You can even use it to connect to a free Bombdog account! In this case it will not create a new paid account, but when you login from steam it will grant the free account all your normal unlocks and allows you to use any Bombdog exclusive content.
So I wrote, what I think, is a really neat event manager system in preparation for stats and achievements tracking. What better way to test this system than with a custom error tracking system?! The new custom logger replaces the built in Unity error tracking system and does a much better job at filtering worthless messages, reducing writing to disk, and avoiding memory issues that could cause a crash. It also make finding errors SUPER easy for me. I have already discovered 3 new issues that are well hidden and fairly random from user submitted logs and have a great start on getting them fixed!
So that is what is in the current stable build, but guess what! I have already started on the next snapshot! I already have a skeleton of a player profile that gets created/loaded on login and have a fully written, but not yet hooked up, stat tracker and manager system. It's kind of beautiful that I can create these systems in a fully modular way and just hook them up through the event system now. In fact, hooking up the profile system took exactly 1 line of code:
EventManager.Subscribe("Account/Login", new EventManagerEvent(ProfileManager.PlayerLogIn))
Once I get the stats system hooked up and saving data, I will start to manage the global syncing of that data through the Bombdog account. I will have to do some data conversion, as I want a lot of the game profile data to argument the online profile and be reachable through the website as well. There is also the big dark question of what to do about people messing with offline profiles, offline play, playing in one location offline, then playing online in a different location, and then playing online in the original location. All a bit of a nightmare, but I feel the problems are solvable and will provide me with a nice coding challenge. If you see a bunch of dumb questions flooding stachoverflow.com, that would be me!
Also, about the website. There is currently a contract developer working on a new version, but we are having a ..... quality disagreement. Sigh. I am doing my best to get the situation resolved in a mutually beneficial way, but it is highly likely the website will be delayed for quite some time. Originally, it was to be done by the end of January, but that date has long since passed.
Hope to see you next week for another amazing State of the Game!
Welcome to another state of the game! This week, I have been hard at work stabilizing the snapshots and adding small features to help keep all builds more stable going forward.
To start the week off, I went back in 'time' and made changes to the last stable build to include the memory leak fixes in the build and re-released it. This means the last stable build is actually a bit stable now and people can enjoy playing it without crashes!
After that fix, I moved on to the snapshots and released a small update to the snapshots that addressed the main multiplayer Arena issues. These are :
- Infinite time limit in arena matches
- Instance in which an instant defeat would happen on joining a game
- Instance in which no other players would be visible on the server and no damage could be dealt or received
- Made server not cast a vote in the level selection process
This already made the snapshots much more playable, but I wanted to further increase stability. With that, I created a custom event logger system!
So what is a custom event logger?
Well, the current builds use a default log system in unity. This means, when ever there is an error, or log message, unity writes that message to a file. Simple, but effective, right?
Well, it turns out, that is great if you have a simple game. If you have a really complex game, writing all those log messages can slow everything down. Also, EVERYTHING gets logged, not just the important stuff. Have you ever searched a 186 MILLION line text file for an error, because I have had to.
Then, there is the cause that unity doesn't like to close the file, which means when a server is running and dumping every minor message, eventually, it will run out of memory trying to write that file. Also, the file is in a standard location, so if you run 2 copies of M.A.V., they will BOTH be writing to the same file.
So, I tool things into my own hands. I had this really nifty event management system I had created for monitoring stats and achievements and thought this would be a great test bed for it. I then wrote up some custom file handling systems and tapped into unity's internal log system, and most importantly, turned off unity's built in log writing.
Now, the logs only contain things that are actually likely to help with debugging a problem in the game. No longer will I have to browser 10 million warnings about audio listeners to find the one game breaking error. The logs can also include any custom debug messages in response to events, allowing a great 'second tier' debugging system as well. To top it off, since I am in control of the logging, I can also [in the future] allow players to opt-in to automatically sending log files to a central server, allowing me to see common issues that people have.
So where is this new log file? Well, in the Logs folder in the My Games/BombdogStudios/MAV/ data folder, of course! You didn't think I had that folder there this whole time without plans to use it, did you? Also, a great new feature to the logs are that they are rolling, so your 10 most recent log files will always be available! This will be very helpful in-case something happens and you couldn't save the log with the error before restarting M.A.V..
While loggers might not always be the coolest thing to talk about, I feel having better support tools, like the logger, while help the game progress faster, as I spend significantly less time going on goose hunts to try and replicate errors. Also, it should increase the stability of long running servers, which is always a plus!
I will see you next week!
You can use this widget-maker to generate a bit of HTML that can be embedded in your website to easily allow customers to purchase this game on Steam.
Enter up to 375 characters to add a description to your widget:
Copy and paste the HTML below into your website to make the above widget appear
Sign in to add your own tags to this product.