Err, hello.

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.

Inventory.

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.

Armor

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.

NPC Dialog

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.

*err..

List!

Here’s a public list of stuff I need to do. I make it public, because if it’s private I probably won’t do it.

  • Finish inventory tile system
  • Implement planting crops
  • Add sheep/swine
  • Add trader caravan
  • Finish wood cutting
  • Add lore and driving storyline
  • Upgrade Fort Galark
  • Add random goblin attack events
  • Auto-Updater

Once all of this is completed, I’ll release Alpha 1.0.3 and send out a mass email inviting everyone to the play-test session. It’ll be fun.

Release and What’s Next

Today I released Age of Steel Alpha Builds #1 and #2. #1 used the old Master Server system, which isn’t run by me and isn’t entirely reliable. The master server was down when I released the game, so I had to make one myself, to ensure the game could be played. So I made my own master server (using my web server), and built a second release. I’m very excited and have already made a few sales.

Tonight at 7:30pm Mountain Time (GMT -07:00) we’re going to hold our first test session. We’d love for you to join us. Just purchase Age of Steel on the website. It’s just $3.00.

And what now?

Now I need to implement a few features I can’t believe I over-looked:

  1. Version number (Duh, Max!)
  2. Update Alert (just lets you know when a new update is available)
  3. Sever Online Alert
  4. More stuff to do!

More stuff to do is an obvious one, but I foresee a lot of crowding in the mines tonight. I need to add multiple ore locations, and some more stuff to explore above-ground.

That’s all for now. I hope to see you tonight!

Release Building and Schematics

Release Building

Tonight after I get out of class in a couple of hours, I’ll be building the first Age of Steel release. To make sure this actually gets done, I’m going to prepare myself a little checklist:

  1. Revamp Crafting GUI
  2. Revamp Join Server GUI
  3. Add GarageGames splash screen (sorry, my engine license forces me)
  4. Create game controls list (in loading screen)
  5. Create copy titled Release
  6. Remove Editor
  7. Remove Console access
  8. Remove Debug code
  9. Remove unused shape and texture data
  10. Remove server code
  11. Remove uncompressed code files
  12. Clean Temp Files (screenshots, preferences)
  13. Compress to ZIP

After that, I’ll have to decompress as though I just downloaded it, and do a test play myself, to make sure I didn’t break anything when purging the unused data. If everything works as planned, I’ll upload it right then and there. Then by tomorrow night, I’ll have a purchase link on the Age of Steel Website.

Revamping the crafting and server-join GUIs won’t take too long. I plan on doing the designing on paper today in class.

Schematics

I had an idea for crafting. Currently, when you activate an Anvil, a list is brought up of the items you can craft, based on the fact that you have the materials. I don’t like this system because you don’t know what it takes to create the items you want.

That’s when I came up with Schematics (I don’t like the name, I just can’t find another). When you use a Schematic, you “study” it. Once you’ve studied a schematic, that item will appear on your crafting list. Then when you click on the item in your crafting list, it tells you what reagents are required to make that specific item. Schematics are not destroyed on use, and can be copied by a player with an adequate type-specific crafting level.

Some items (the basics) don’t need schematics to be built. Some things are just common sense. For example, it doesn’t take a genius to know you can turn a heavy branch into a club.

Schematics can be acquired in 4 ways. Trade, Copying, Invention, and Reverse-Engineering.

Trading schematics is pretty self-explanatory.

Copying schematics will be possible by players with an adequate Writing(not sure about this name) skill. The more complex the item, the higher the writing skill that is recommended.

Schematics can also be invented by players that have a high enough type-specific crafting level. Invention will involve guessing the reagents in non-specific quantities.

Reverse-engineering can be done by people with both type-specific crafting skills and writing skills. You take an item you already have, and make a schematic of it! Simple as that.

Let me know what you think of this system, I would appreciate your feedback. The schematic system will NOT be included in Alpha Release #1.

Trading with the merchant. That’s right.

Quick Test

Testing to see if this posts on my facebook page for Age of Steel rather than my personal facebook profile.

Blood, Shields, and Leaping Spiders

Hay. I’ve been adding stuff. One of the things I added are blood sprays when things get hurt. I think they look pretty good. Along with blood sprays, I also added sparks when a successful block is made. I’d show you a screenshot, but it’s hard to capture due to the brief nature of sparks. Here’s the blood though:

http://braveskin.com/aosspider2.jpg

Pardon the red flash. It’s hard to time the screenshot with the damage of the spider.

Also, shields! Just last night I added a shield-type object. Right-clicking raises the shield in front of the player, and blocks forward attacks. Right now it kind of makes the player invincible from the front as long as they have stamina. I need to find a way to nerf the shields, for sure. It’ll be easier to test once I have more intelligent enemies to fight (you, maybe?)

The shields look kind of awkward because the Blue Guy model isn’t meant to hold anything in his left hand, but here they are:

http://braveskin.com/aosshield.jpg

 Oh, and the spiders are now fully animated. When you kill them, they slump down and their legs collapse. And when they approach you, they are slow and their legs fritter. When they get within a certain range, they throw themselves forward, leaping onto you. If the spiders fangs make contact with you, you better be waiting with a raised weapon. Screenshots:

http://braveskin.com/aosspiderleap.jpg

http://braveskin.com/aosspider3.jpg

I’ve got more work to do before release, but I’m getting closer. I’m working off of this list:
Spider Damage [done]
NPC Dynamic Chat [done]
Arrow damage [done]
NPC Grouping [done]
Town stuff: stalls, canopies, shacks [done]
*NPC Trade
*No more bottomless pockets
*quests
Expand Crafting
buffs?
Flax plants
Piggies
More enemies

The starred items are absolutely necessary for release, but I’d like to have everything on that list done.

NPC trade will be a full on barter system where you pick what you want from them, and offer what you think would match the value. I don’t know if any of you have played Gothic 1, but I’d like a system similar to that.

The bottomless pockets have to go. At first it was funny, but now it’s starting to get ridiculous:

http://braveskin.com/aosbp.jpg

Yes, I do have 237 iron swords in my backpack. I need to figure out a system to limit the amount of stuff a player can carry. I think for now I’ll just limit it by weight. If your inventory is too heavy, stamina will be severely hampered when you do anything. That’s not at all how I want it to finally be. I personally like the Tetris-style inventory systems where each item takes up a certain amount of cells in a fixed-space inventory. That way you can only carry so many big items, but you have room for lots of 1x1 items like coal and money. A lot of people don’t like this system, but I just want to see how it pans out.

Quests!!! Quests are critical for release. Right now the only real task is to go into the mines and acquire some iron. Then turn that iron into swords. Then you win. I just need a handful quests ranging from easy to impossible. Then I can finally use that Goblin Giant I made. Can you say group quest?

I also want to expand crafting. I need to make every tool and weapon craft-able. Expanded crafting adds an entirely new sense of depth to the game. Resources like wood and coal gain value with each recipe or use for metal. I definitely need ideas for crafting recipes, so please let me know if you have any.

Flax plants will be able to be planted, and then grow over time. I’ll have to add a farming system, for sure. You’ll be able to harvest the flax seeds and the fibers. The flax fibers will be useful for lots of stuff, and the flax seeds can either be replanted or ground up to make flax meal.

Piggies will be useful for pretty much everything. They’ll really be more like boars. You can kill them and use their meat for nourishment, their skin for armor, and their bones for tools. Piggies will be the utility mob.

I need to add buffs before, or immediately after the release. Right now the player is basically invincible. Even if they win a fight the enemy just backs off and lets you recover. If you lose a fight or get really really damaged, you should start bleeding out. If you’re bleeding, you really better bandage yourself up. How do you get bandages? That’s where flax and expanded crafting comes in. You can either buy the bandages, or you can craft them! Of course, I plan to make crafting take time, so you’ll want to prepare some bandages before-hand, instead of starting to grow your flax after you’ve been severely wounded.

flax-> fibers-> linen-> bandages!

Buffs will come hand-in-hand with debuffs (bleeding is a debuff). Examples of buffs/debuffs I want to add are:

  • "Well Nourished", where if you eat a balanced meal you get a stamina regeneration bonus.
  • "Malnourished", where you haven’t eaten in a long time and you get stamina regeneration penalties and damage resistance penalties.
  • "Bleeding", where you slowly take damage over time until your blleeding naturally stops (unlikely), or you bandage your wound.
  • "Tetanus". If you were hurt by a rusty weapon, there is a chance of you getting tetanus. You get severe skill penalties and possible damage over time (fully chance-based. some people won’t get hurt/killed by tetanus). The only ways to cure tetanus would be to wait it out or try some herbal remedies.

More enemies.. hmm. I really have to think about this one. It takes me a long time to model, texture, and animate a new enemy, so I don’t know if this one is realistic for the next update. I don’t even have any ideas for new enemies, either. So again, let me know if you guys have any ideas.

(hey, I like it when you guys comment. If you comment, I’ll definitely post more often. like multiple times a day)

Oops, sorry!

Sorry I haven’t posted in a few days. Dragon Age 2. I’m sure some of you understand. To make it up to you, here’s a couple of screens.

http://braveskin.com/aostrees1.jpg

http://braveskin.com/aostrees2.jpg

SPIDERS!!

There’s no texture on it yet because I’m so afraid of spiders. :(

I’ve got someone helping me though.

Look how pretty! I’m sorry again for not posting for a few days. I’ve been working though! I set up an online store for people to purchase game codes. It’s fully functional. All I need for the release is the models for my new tier of weapons (I’ve got Chuck working on this), and some sounds! That’s all for right now, so enjoy this fire.

Stamina

I’m nearly done with implementing stamina. Most actions require a certain amount of stamina to do. For example, swinging a sword costs 6% stamina (the amount required decreases as you get stronger). You can keep swinging the sword until you have less than 6%. At that point, you can still swing the sword, but the damage you do is decreased by the ratio of stamina you have over stamina needed. so if you need 6% and only have 3%, you deal half the damage you would have.

Same applies to blocking. If you are too tired to block like you should, your chance of success decreases.

I need to integrate stamina into mining and food, then it’ll be done. Currently running slightly saps your stamina, and standing still makes it slowly return. When I enable the eating of NomFruit, stamina will come back more quickly after you have just eaten.

It’s Party Time!

This morning I worked on a party system. It’s sick. Parties are used to group players in combat. You can’t damage fellow party members, and there are 3 options to share experience with them:

  • Killer - The player that gets the final blow gets most of the experience.
  • Damage - Experience is distributed based on percentage of damage done.
  • Shared - Experience is shared evenly throughout the party. The amount of experience rewarded is based on the highest-leveled party member.

When you create a party, you can invite other players that aren’t in a party to join you. As the party leader you can adjust your party options (like experience distribution), and boot players from your party. You can also disband your party when you leave. The party system should help a lot with accidental kills. Josh and I accidentally killed each other a few times when we were testing out the skill system.

http://braveskin.com/aosparty.jpg

I also implemented a menu system. I programmed it to be dynamic, so I can use this same system for pretty much anything I want. Right now it is only utilized by the party system and a small menu that allows you to save your character or view your character information. This is definitely something I needed to get done because I was getting sick of checking my levels through console scripts.

http://braveskin.com/aosmenu.jpg

There’s more work to be done! I’m thinking stamina next.

I got hungry enough to actually cook food.

Balancing Act & Skills!

Most games start players off in weak and feeble states. Sometimes you can barely take on the tutorial enemies. I didn’t like this because there was always such a massive gap between new players and veterans. If the new players in 12 damage, odds are a veteran is consistently hitting over 9000 damage. In Age of Steel, the differences between new and old players should be significant, but not overwhelming. Each skill will have a minimum and maximum effect. Players with level 1 strength have a 1x modifier to damage dealt. Players with level 100 strength have a 2x modifier to damage dealt. That is significant, but it’s not so ridiculous that no matter what the new player does he can never beat the old player. It leaves a lot of the… power to equipment. I think a  new player in the best set of armor should stand a very good chance against an old player with no armor.

And with that, I’ve added a skill system! so far there are only 3 skills: Strength, Blocking, and Mining.

Strength, as you have read, determines damage dealt.

Blocking determines what strikes can be blocked (the player’s blocking skill is compared to the attacker’s strength skill). If the player has a higher blocking than the attacker’s strength, the attack is negated. If the attacker has higher strength, then a random number between 0 and 1 will be rolled. If this number is higher than the Blocking to Strength ratio, the attack is negated. So if the blocker has a skill of 1, and the attacker has a strength of 100, there is a 1 in 100 chance of the attack being blocked. It’s science, really.

Mining is pretty straight forward. Higher mining skill = more likely chance of success when mining.

I’m getting much closer to releasing the alpha version of the game to a few testers! Stay tuned.

Just a little cave dungeon teasing.