Traditional RTS games unlock units as the player progresses through the campaign (or based on rules selected by the person who sets up the multiplayer game.) Miranda doesn't have a campaign, so I needed a way for the game to unlock abilities for the player as they play through the game. Something that would give players time to use each new tool and learn how it can be most effectively applied. Prior to this work, every unit in the game was unlocked right from the start which was pretty overwhelming and not very fun.
The solution I've adopted mashes together ideas from Skyrim, Fallout 3 & Dragon Age Origins as well as Dungeons and Dragons. Miranda now lets the player choose their optimal blend of light or heavy weapons, attack power, defense, stealth, economic, or even high or low technology approaches to the conflict. It also limits each commander to about a third of the total set of abilities for each faction. This makes for interesting choices, and encourages play with other players who may have complementary strengths.
There are 9 attributes for commanders which vary in value from 1 to 9.
Another exciting week of load testing and fixing bugs. The good news is that all but one were client bugs - the server was super-stable all week.
[Terrain Builder Tool]
I got a third test PC this week and was able to push the server past 60 users. I decided it was time to up the ante and turn unit movement back on for load testing. I fixed the couple of bugs that immediately showed up, but with everything working good I enabled the profiler on the server and discovered that the pathing, collision and movement code is still way too slow to support 1000 players per server.
I was back to working on load testing this week. The week started with me being able to get about 30 clients connected to the server before something would crash. By Friday afternoon Miranda was running in the high forties.
[Load Testing Client]
I fixed a lot of bugs this week which is a little surprising given how stable Miranda usually is. All of these new bugs only showed up when systems were under heavy load. The interesting thing for me was that the bugs that showed up were new every time. I'd fix each new bug, then run until I got another. Any bug I that I couldn't fix immediately, often didn't show up a second time. Usually the bugs were straightforward to fix, but by Friday they took a lot longer to occur and were getting really challenging to fix.
Short week for me last week but one visible change: the HUD now shows the percentage of map ownership by each of the four factions in the bottom right corner. There is more to come with the faction map, but its a start.
[Map Ownership (Lower Right)]
I spent the rest of the week fixing bugs and working out the details of everything left to do before All Access. It's not too scary.
This week I took a week off from server upgrades to continue to get ready for the launch of The Imperial Realm::Miranda All Access. It's kind of like Early Access, but with even more Access! And I'm hoping - a bit less stigma.
When I originally envisioned the server for Miranda, I thought it would have a massive Tranquility-style MySQL server at its core running on giant SSD's and a ton of RAM that contained every bit of information about Miranda's world where I would dramatically tweak game settings in real-time to fight griefers and continuously refine the gameplay. Initially this was how the game worked. All the information about players, every setting, every unit stat, all of it was loaded into MySQL.
The first two superweapons in Miranda are the the Empire's Fuel-Air Explosive Missile and the Independents' Orbital Bombardment Platform. Both weapons are powerful area-of-effect attacks and each player can only have one. Unlike superweapons of old, the superweapons in Miranda have a 5KM maximum range - this range limitation reduces their griefing potential. The really dangerous thing about superweapons is that they erase the shroud above the superweapon for all players in-range who have radar. You build a superweapon, you better be ready to get hit by one.
I mentioned last week that I had a small design flaw in my networking to look at this week. Work on that flaw, increasing the capacity of the server and fixing the few bugs that came up along the way took up the whole week.
This past holiday Monday I spent a few hours playing Guild Wars 2 and tried the Mystic Forge for the first time. As soon as I tried it I realized that the UI design
they were using would make a much better interface for the Unit Design screen in Miranda so I took a break from server optimization to rebuild that screen (and make
something I could take a screenshot of for a change.)
On the new unit design screen, every time you pick an item from your inventory to go into the design, the game applies the unit design rules and grays out any
inventory items that don't fit the design based on your previous selections. This simple refinement eliminates a whole bunch of numbers and red things and greyed out things
that players would have undoubtedly struggled with.
I was also reading an article on MineCraft where the author said that because there weren't any instructions for MineCraft when it started, that the
community got together to discover what you could do in the game. I realized that all the stats that Miranda was exposing
entirely precluded this kind of experimentation and discovery so I have removed all of the component stats from the UI. Players will have to
figure out which components are best for what through experimentation and shared knowledge. Players will still have a few things to go on initially: name and
description, price, quality (color), tier, sellability, veterancy and build time.
I've been wanting to do more video, so I recorded a demo of the new Unit Design screen (and some other things.) There isn't much game audio in the video, there's still lots
of work to do on that.
[Designing a New Tank (3:18)]
Work on the server is still proceeding nicely. I can currently get 35 clients to remain connected reliably.
I've fixed a few more little bugs but most of my time this week was spent hunting one of my two terrible bugs.
I was pretty happy when I finally tracked it to a rare desync in the list of entities that the client is currently interested in. If it happened that an entity was added
and then immediately removed, the server thought it didn't need to tell the client about that change. It was wrong.
Above 35 clients I have a small design flaw with my networking that causes a packet flow backup. I'll be tackling that on Monday.
I got 50 clients logged in this afternoon - squeeeee! So maybe that doesn't sound like much for an MMO, but its a pretty huge step forward. The goal of this initial load testing was to get 50 game clients into the game at once with 5000 units moving around and fighting. At the start of last week it would start crashing with around 3 clients in the game. Over the last week and a half I've fixed 24 bugs, some small, some rather challenging. I still have two more I'm working on and eight I've seen only once.
I've been adding tutorial elements as I come up with them (red arrows on UI while playing, tooltips.) Eventually I plan to replace the "wall of text" on the layout screen with voiceover. Does anyone know of games with really good tutorial ...
I think that heat map it is an awesome idea, i must admit during the play test i did struggle to put down buildings etc, one thing i would recommend is a good tutorial at the start of the game, i have seen games that had lots of potential come and ...
That "Dementors" screenshot looks like it would actually be an awesome animation for something equally sinister. Any ideas for a chemical or biological warfare superweapon, maybe? Or maybe some really nasty volcanic vents?
I had the good fortune to play on one of the test weekends, cant wait for this to be available to get my teeth into properly, any ideas on a time line for a release or is it sit and wait, which is kinda fun too ;-)