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.
Fauxranda is The Imperial Realm's new stress client. A stress client is a game client stripped to the absolute minimum, no graphics, sound, or user interface with a simple scripting system tacked on so that many, many, many of them can be run on a single PC in order to simulate large numbers of players connected to the server. Fauxranda logs into the server, creates 100 tanks (and a construction yard) then drives them randomly around the map looking for things to shoot at. While it does that, it finds bugs. Hopefully all the bugs, so that players won't have to. The other goal of Fauxranda is to help me optimize the server so that I can reach the goal of supporting 1000 players on a single server.
The first time I played Miranda with the shroud rendering enabled I was surprised by how much scarier the game had become all of a sudden. Now I was wondering what was in the dark just beyond the line of sight of my tanks.
Sounds awesome to me, i like the idea of NPC encounters/quests etc,one thing i found when i played was you are right once you build a base and get harvesters running etc, if noone is there to fight you kinda float about waiting. Dont know what you ...