Gamedev Grievances #29: Crafting!

Hey guys! Heading towards final exams at the moment (only two of them, thank goodness) which is why the posts have been fortnightly instead of weekly. I’ll post again in a fortnight’s time and then hopefully get back to weekly posts, or maybe more frequently ūüôā


Recently I’ve been thinking about¬†items and what the player can do with them. As of a week ago, the only thing a player could actually do with items was, uh, use them or store them in a hole. Not the most exciting options. Then, midway through the story, I decided to introduce a new character, Sage, who lives in a new area (the West Camp) and lets you, uh… store your items somewhere other than a hole in the ground.

From a game-play perspective, this wasn’t just redundant and a bit of a letdown – this was actually fairly problematic. Just as the player’s getting used to storing their items in the storage hole, they’re suddenly told to use another place instead – which is confusing and ugly. “Wait a minute, do I store items in the storage hole? Or with Sage?”

So¬†storage stayed in the hole. But what to do about the character Sage? I knew I wanted to keep him in the story, so I had to give him some other role. Which led to a new idea…

Weapon Crafting!

This idea came from the fact that often the player ends up collecting a fair few¬†extraneous weapons. Having duplicate weapons in your inventory isn’t very useful in Ambience, since you can only equip a single weapon at a time. So rather than leaving those extra weapons to rot in storage forever, the player now has the option to¬†craft them into something more useful – possibly into weapons which are very hard to find in dungeons. Here’s the process:

  1. Chat to Sage in West Camp.
  2. Choose the weapons you want to craft and confirm it with Sage.
  3. Get a brand new weapon!

Under the Hood

At first¬†I was a little hesitant to take on the idea –¬†not just because it sounded kinda¬†RuneScape-y, but because for a while I wasn’t decided on how I would implement it, programming-wise.¬†In the end, I did it using list data structures, which was perhaps the most intuitive way.

Ambience stores items in your inventory and storage using data structures which GM:S calls “DS Lists”.¬†I simply created a new list for crafting items to go alongside the inventory and storage lists. When the player selects items to craft, they’re removed from the inventory list and stuck in the crafting list. Then, when the items are crafted, a new item is generated from the item IDs in the crafting list. This new item is then dumped into the player’s inventory and the craft list is cleared. The player then gets to enjoy using their brand new crafted weapon ūüôā

Some Final Thoughts:

Overall, it was a simpler process to implement than I thought it would be. The biggest bit of work left to do now is to sort out which weapons can  be crafted from what. For the sake of variety, that might entail adding some new weapons to the game, some of which can only be obtained by crafting.

Also, since¬†Ambience doesn’t use any sort of in-game currency system (a deliberate decision on my part), the only¬†things the player has to forgo are the weapons that are being used for crafting, making the process potentially a bit too easily accessible.¬†Another consideration is whether the system will allow the player to generate overpowered weapons too early in the game, but there are a few ways I could deal with that (e.g. by making some craftable weapons only available in later dungeons).

All in all, even though the system may need a bit of tweaking and polishing, I’m quite happy with how it looks at the moment!

Leave a Reply