I mentioned that I want to have the player select gear to equip. There are some design directions I want to go with this that I will likely talk about later. The main idea is that the player gets a choice of progressively better items to equip. Some might even be similar but with different utility. This is basically a place to personalize and customize your character for gameplay. And hopefully I will have sufficient gameplay-impacting mechanics that gear feels unique.

But first thing’s first, I need 2 separate system for this: player’s gear and player’s loadout. I briefly mentioned the gear system already, but now I am properly extending this:

The main difference here is that the gear is the items the player owns and loadout is the items they have equipped. I am adding nice little debug editors for all of this so I can test super-quickly:

However, I don’t just want to dump all items into gear and let the player sort it out… somehow. In fact, I want there to be equipment slots and each slot would only allow one item. This would be similar to other RPGish games.

So now the gear can select the slot that it goes in:

I can then collect all my slots in a common definition asset (yay, more assets):

And it can then specify the exact order in which I want the items to appear:

I don’t yet care exactly what these are. The above “categories” is sort of what I might go for. I will likely have no more than 5, but we’ll see. The idea is that each serves a particular gameplay purpose — defense, offense, and mobility being the sort of arch-types in every RPG ever. I thing I can add some sort of perception/coordination/intelligence stuff, as well as something energy/shield/power-related. This will take some designing as I need to come up with a list of mechanics and stats to boost. And these tie closely with gameplay — weapons, enemies, abilities. So it’s all very interconnected. But I think I can manage it (and may be even make it fun).

I need to adjust my loadout system to store exactly one item per slot. And that means that items of the same slot designation can not go into wrong slots, and they instead swap the current item. All of this gets encoded in my debug editor:

At this point I started working on a bunch of UI, but I will cover this in a different blog post so as to not mix things together.

After some deliberation, I decided that it would be easier and more clear to the player if each slot always held an item. In other words, you cannot remove the item from the slot, only swap it with another. In other words, the “item” is part of player’s robots or whatever I am doing here.

So I can specify the default item for each slot that will get automatically chosen when new data is created:

These are all gear item, but with no bonuses:

And these get equipped nicely:

In fact, there is no more “unequip” option/button, we can only swap from “inventory”:

And, of course, this means no total bonuses for anything by default:

Speaking of bonuses, I need to extend their data for UI purposes. I don’t have any player-friendly display for bonuses, since they are always part of another definition and don’t have their own asset. They can’t, because they are reusable and the amount differs betwene gear items and upgrades and whatnot. So I’m adding assets for each bonus:

And there I can specify exactly the way I want to display them:

Notably is the value display option, which specifies how to display the bonus’ amount to the player:

And I can collect all the bonus display definitions into a collection and then look items up from it whenever I need:

When I get UI rolling, I can display the proper values to the player.

Time-traveling interlude. It will look like this:

I will get to the UI stuff in the next post.

On the subject of displaying stuff, I can easily add more fields to my gear assets:

Anyway, that about wraps up the framework stuff with gear and loadouts. I will need to do sprites for it and have the player actually “wear” what they equip. First I will do loadout UI though.

MicroRogue DevDiary #72 – Gear and loadout
Tagged on:         

Leave a Reply

Your email address will not be published. Required fields are marked *