Well, this is awkward. I’ve been busy with school and such, and I also got a job at Michael’s Stores. I’ve been doing bits and pieces of work on AoS when I could, and I’m wanting to get back into the flow of development.
I realize the more I write on this blog, the more stuff gets done. And the more stuff gets done, the more I want to write. So here I am, writing about my ideas for Age of Steel.
I hate it. I hate it. I hate it. The current inventory system took me HOURS to put together, and it SUCKS. The tiles are awkward, and the player gets limited control over item organization and usage.
I’m also having trouble finding an item instancing system that works efficiently and cleanly. The current system saves each item instance in two variables. Each item has two. All variables are stored in a single file. Currently I’m the only one who has played using this instance system, and the file containing the item info is about half a megabyte in size. That’s way too flippin’ big to be calling and changing on the fly.
Now here are my ideas. I want to put a tetris-style inventory together that gives the player full organization capabilities, and actually looks okay. I figure you press TAB or “i” or whatever you have your inventory key set to, and it opens up a transparent grid at the bottom of your screen. Each item takes up a certain amount of space. Small items like ore and coins would only take up one square, but long objects like swords and such would take up a lot of horizontal space. When you drag an item, you can move it around to different slots. Clicking an item selects it, and brings up different click-able buttons depending on what you can do with that item.
So if I single-click a sword, the options I might get are Equip, Drop, or Sharpen. And I suppose if I double-click an item, it’ll do a default action. For a sword, I’d imagine the default action would be Equip.
And while I think about it, clicking on another item after you’ve already selected one could have you “combine” the items, or use the items on each other. Yeah, like Runescape.
For instances, I was thinking I could do it in a more object-oriented way, rather than storing variables that are always referenced. I could save the item data in an object, then save that object into the player save files! That way items are only loaded when the player who has them is online.
The instance “object” can be “attached” to the player while the player has the instance. If the player drops the instance, it’ll create an item object. That instance object can then be attached to the item object instead.
Of course, this doesn’t solve how clients obtain this information, as the player save files are loaded on the server only. What I still need to figure out is how to display instance info to the client, and how to get the client to differentiate one iron sword from the next. I’ll go further into this in a different post.
The way armor works is going to be different from most other games you’ve played. Each piece of armor will have set resistances to certain types of damage. So let’s say you have a leather chest piece that gives you 10 Slash resistance, and 5 Bash resistance. For every slash attack that hits you, 10 damage will be removed from that attack (unless they manage to critical hit, then armor is ignored). For every attack, the minimum damage possible to be delivered is 1.
So if a fully armored knight is attacked by somone with a Crappy Wooden Practice Sword of Sadness, there’s a good chance the full armor will block ALL damage possible by that weapon. Only one damage will be delivered per strike.
I like this armor model because it makes unarmored combat very dangerous. Even the slightest bit of armor can improve your performance, and heavy armor could potentially make you a fortress.
Another reason I like this model is because then heavy weapons are effective against armor. In a lot of modern RPGs, armor takes off a percentage of the damage. So let’s say twin daggers and a big fucking broad sword have the same damage per second. In most of today’s RPGs, the same amount of damage would be applied regardless of the armor. In Age of Steel, the heavier weapon will ALWAYS be more effective against armor, which I believe is more true to life.
This is a really difficult thing to do in an online RPG. In a single-player RPG, I could just freeze the world and present the player with a menu of dialog options. Unfortunately, freezing the world in a multiplayer environment involves pissing off a lot of people. So I can’t freeze the world, and I probably shouldn’t seize the player’s control of his character as a result.
Currently, if you are talking to an NPC, you can’t move your character until you end the conversation. This is bad, because I could troll people by killing them when they’re in the middle of accepting a quest. Not good.
What I had in mind was maybe when you’re standing in front of an NPC, and facing them, you can use the number keys to trigger different possible responses to that NPC’s dialog.
You walk up to Thomas, you press E to initiate chat.
You get a “Thomas: Hello, <name>!” in the chat window.
Below the chat window, you can see a list of response options.
You can still walk away from Thomas at will, as your controls haven’t changed and your mouse still controls yours player.
I could see this possibly being annoying for some people, but so is getting raped while handing in your spider venom for a few gold. If anyone has any ideas as to what might work better, please please please let me know.
That’s all for now. I’ll post more. I *promise.