uses UDP for messaging. Sometimes it is super-inconvenient to break a message into packet-sized pieces so on top of that, I have what I call JumboPackets. JumboPackets support sending messages larger than a single packet. The cool thing about the way I implemented JumboPackets is that as far as anyone outside the networking system is concerned, they are just like regular packets - only bigger.
The one problem with JumboPackets is that they're subject to rate limiting like any other packet, so if a jumbo packet is actually 3 regular packets, it must be reassembled on the proxy, sent to the client and then reassembled again. So a 3K packet at a 1K/second send rate limit with 2 hops takes 6 seconds to get delivered. This problem gets worse as packets get larger. Recently I started experimenting with much larger datasets (more units, more teams) and discovered that some of the packets sent during the initial connection were getting quite large and noticeably slowing "load time."
In the last blog post I said I'd been working hard to get Miranda out the door. Here's some of the things I've been working on...
[Chat, building smoke, animated radar dishes, new silos and power gauge.]
Back at the end of April I decided it was time to get The Imperial Realm::Miranda
finished, so I worked out a feature development plan with the goal of releasing the game on November 9th, the 5th anniversary of the project. I optimistically believed that would be early enough to beat the AAA Christmas launch window PR blitz. The plan was:
- October 9 - Friends and Family Alpha.
- November 9 - Teaser Trailer & Limited Public Alpha.
- January 9- Beta.
- February 9 - Trailer & Launch.
The plan was aggressive, I had a lot to do, but it could have happened.
To celebrate the 5th anniversary of my work on The Imperial Realm::Miranda
I left the computer at home, took the family to Seattle, and spent three days having fun, eating well, and seeing new things.
Darth Vader's Lightsaber from The Empire Strikes Back
The Indie Game Revolution at The Experience Music Project Museum
There was a post on Gamasutra
this week about #StealKeyRequest
: phony reviewers scamming game developers for free Steam codes and then selling them on discount game key sites. That's not cool. If this happens to players of The Imperial Realm::Miranda
, at least they will know what happened.
Today I'd like to introduce the newest feature in The Imperial Realm :: Miranda
, the Conquest Map. This map reports in real-time the success or failure of the different factions on Miranda, as well as where fighting is currently underway.
The Imperial Realm::Miranda
was originally planned to be a free-to-play game with currency sales to support the game. Now that it is a pay-to-play game, currency sales are out, and a way to sell overall access to the game is in. Enter Secret Lair Codes
Secret Lair Codes allow access to the base game on either a timed or permanent basis, and support additional entitlements which can be redeemed either per-account or per-force (Miranda's analogue to a character slot in other MMO's.)
The screenshot above shows the screen which allows you to redeem per-force entitlements for codes which have been redeemed on the current account. The plan is that Miranda will have a Standard Edition and a Premium Edition which will both allow access for the life of the game, as well as a couple of lower-cost, timed, trial options of up to a month in duration.
I have a couple of new screenshots to share. I've been worrying about the performance of rendering and loading for a while now, but I ran Miranda in Release mode today for the first time in ages, and was very pleasantly surprised to find that everything is in fact running wonderfully. Load times are good, frame rates are solid. Stuff like that makes a Friday.
This first shot shows everything I've been working on this week. Buildings are tinted (when selected) with a color selected by the player. Selected (or under attack) units have health bars overtop of them that match the tint color and the background color of the name in the new player list in the top left corner. The player list shows the faction, player name, color and level for every player you can see. I experimented with putting the player name directly above every unit, but with a lot of units onscreen it was an illegible mess. Kills Today is an idea I shamelessly stole from Transistor
- thanks Supergiant!
This shot shows the same base from the top of a nearby mountain during heavy weather. I changed the magnification mode on the dust which got rid of some pixellation.
Because I can't just steal stuff off of the web, I was inspired by this (no license I could find)
and this (dependencies & too fancy)
Because I think this was mostly a waste of time I'm putting the one I built in the public domain
in the hopes that someone else doesn't waste time on this. If your lawyer isn't satisfied with this statement, feel free to have them email me.
I experimented briefly with this cool css hexagon drawing
example, but in the end I went with squares which are simpler. The picker can be resized easily by making the squares smaller/larger in the CSS.Here's a live example
of the color picker.colorpicker.csscolorpicker.js
I get occasional questions via email, I thought I would share some of those questions and the answers here. Anything here is just my current thoughts, game development is adaptive, so don't be surprised if things are different in the game.
Thanks to those who sent me these great questions. Keep them coming.You mention on mmorts.com that units and buildings disappear after 30 seconds. How do you handle situations where, say, an opponent of mine logs off and I build a whole bunch of cheap buildings where their buildings were? What would happen when they log back on and the spaces their buildings occupied are now blocked?
While I haven't implemented this yet, the plan is to allow the player to either quickly rebuild their bases at new locations, or if their previous locations are unoccupied, to place buildings where they were.
Both buildings and vehicles capabilities are based on the components chosen for them so all the things you describe are currently possible, although I don't have as many component variations as I'd like yet.
In the final design, partially filled harvesters can happen. While there is still a timer to tell the harvester when to leave, if the field is low on resources the timer is shortened, also the player can tell it to leave and it will leave with a ...
Any thoughts to expanding base design/building using components? Possibly as a future feature or expansion.
I'm a personal fan of the Tower Defense genre, which origin is attributed to RTS - specifically the Autumn Tower Defense level in Warcraft 3. ...
"Under the covers the harvester would simply drive near the field, tell the server it was nearby, the server would validate its position then set up a timer. The harvester would wait until the server gave it the OK to leave, then do more or less the ...