Twitter  Facebook  YouTube  E-Mail  RSS
The One Man MMO Project
The story of a lone developer's quest to build an online world :: MMO programming, design, and industry commentary
Ever Forward
By Robert Basler on 2019-06-07 01:38:08
Homepage: onemanmmo.com email:one at onemanmmo dot com

I did a bit of work on The Fallen, adding guardians at monoliths and vendors, increasing the size of base attack forces and modifying the guardians at resource fields to respawn more often. I discovered that the Fallen were having difficulty teleporting which turned out to be a number of bugs working together in concert in addition to my choice of formation. With teleports fixed a lot more Fallen are now at large on Miranda. There is still a bit more I have planned for them.

The%20Imperial%20Realm%20-%20Miranda%20-%20Inventory_Lo.jpg
[Destroying a stack of items on the Inventory Screen.]

Up until recently the Unit Design screen had been doing double-duty as the Inventory screen. When people are starting with a new game, they don't want to be buried with too many things to do so I had always intended for the ability to design custom units to unlock at level 10. Of course, by level 10 most players will have collected a lot of loot, so a dedicated Inventory screen was needed - before level 10. The new Inventory screen lets players manage their inventory from level 1. Press I or hit the menu icon to open the Inventory.

I also revamped Miranda's loot tables so that units can have customized loot tables. Previously there was only one big table. With multiple tables I was able to add support for loot crate consumables. Players will get crates through combat, they stack in the inventory, and then players can open the crates when they're ready to get the goodies inside.

Opening crates turned out to be a bit challenging. Opening one is fine, but there's also an option to open a whole stack. Opening a couple hundred crates is a surprising amount of work for the server to do. Then there's the problem of the player's inventory. As items are taken out of crates, they go into the inventory. The player's inventory is actually stored on a MySQL server, so I spent an entire day trying to figure out how to pack all that loot into a single database transaction. That was a failure. It's extra tricky because there is a cap on the number of items each player can have in their inventory. What happens if the current crate is going to push the inventory over its cap, but there happens to be another transaction underway that already caused the player to hit the cap?

The%20Imperial%20Realm%20-%20Miranda%20-%20Encumbered_Lo.jpg
[The Over Capacity warning and inventory icon (top right.)]


The solution was to allow the inventory to go over the cap, and then encourage the player to get their inventory back under control. When the player has too much in their inventory they become encumbered and can no longer collect loot crates from the battlefield, open loot crates in their inventory, or purchase new things from vendors. Becoming encumbered should only happen rarely. Removing most of the special case code which maintained the inventory cap made inventory management for the game massively simpler.

So now when the player asks to open a couple hundred crates, they're queued up on the server and processed one at a time until they're all open, or the inventory is full.

Earlier tonight I was looking through what I've done since Bold New World and I think Unnamed Update is shaping up to be pretty interesting.

New Comment

Cookie Warning

We were unable to retrieve our cookie from your web browser. If pressing F5 once to reload this page does not get rid of this message, please read this to learn more.

You will not be able to post until you resolve this problem.

Comment (You can use HTML, but please double-check web link URLs and HTML tags!)
Your Name
Homepage (optional, don't include http://)
Email (optional, but automatically spam protected so please do)
What is four plus three? (What's this?)

  Admin Log In



[The Imperial Realm :: Miranda] [Blog] [Gallery] [About]
Terms Of Use & Privacy Policy