April 28, 2020

[Progress Update] Inventory System

I have made some very good progress over the last several weeks. Primarily I have focused on creating the inventory system for the game. Items serve an essential role in Daughter of Dreams. First, there are the many key items which allow the player to progress through the game. Additionally, the player will collect other optional items, including healing items, charms that grant combat bonuses, crafting materials, and upgrade items. Items are especially important as each region of the game will have its own items, making each one more distinct and interesting. This blog post will cover the features I have finished so far, and explain some of my reasons for different mechanics.

The Inventory Interface

I found it was very challenging to develop the user interface for the inventory for this project. The primary issue is that with the low-bit pixel art, the screen space I have to use is very limited. I wanted to make sure I could show all the information in a compact, but still readable manner. What I ended up with was a grid showing the items, and the name of the highlighted item at the bottom. To show more information, the player presses the B button on the controller, and it will show a dialogue option with the flavor text and options for using the item.

Navigating the inventory and eating a sweet glob.
This method allows all the information to be shown, but I would prefer if the item lore text could be shown while hovering over an item in the inventory. However, the lore is not essential information, and if I were to show it I would need to sacrifice a lot of screen space. The second issue I have with this method is that if you want to use many items, you have to click several times each time to do so. However, as shown in the GIF, you can equip any item to each of the face buttons. If you equip an item first, you can then use it outside of the inventory just by pressing the face button.

I think this is a good solution, at least for now. I will continue to improve it, and hopefully I can show more information on the main inventory screen with some additional tweaks to the design.

Item Rarity

All the items you can collect in Daughter of Dreams have different tiers, indicating how likely they are to appear in loot chests, and how much they might sell for. Among regular items there are dull items, common items, rare items, and legendary items. Some unique items (such as your key items) have the special tier, or the Sorrite tier.

Excerpt from Design Document - Different item tiers.
A special property of legendary items is that they will only ever appear once. Once you obtain a particular legendary item, it will never appear in loot chests again, even if you lose the item by selling it or otherwise. I hope this will make legendary items extra exciting, and of course, legendary items have by far the most powerful abilities.

Status Effects

Status effects are special properties that can be applied to any entity, including the player and enemies. For example, burning an enemy will deal damage over time. Freezing the enemy will prevent it from moving, and deal critical damage if it is attacked while being frozen. Status effects can be applied to entities when they are hit with particular attacks (such as a flaming weapon), or applied to the player when they use a consumable alchemy item.

Consuming a small potion to get the regeneration status effect.
Alchemy items can be assigned to affect the player with any number of status effects, for a particular duration and amplitude. The duration of the effect sets how long the effect will last, and the amplitude will determine how powerful the effect is.

Charms

One feature I really wanted to include in Daughter of Dreams is the ability to customize your combat abilities with extra equipped items, like badges in Paper Mario or charms in Hollow Knight. Charms in Daughter of Dreams require charm orbs to equip, and once equipped provide modifications to the player’s base combat stats, including increasing damage of a particular type that the player deals, and reducing the damage of a particular type that the player receives.

Equipping Charms - Daruk's Fortitude and Pendant of Light.
Many other things are possible with charms, so long as I can add them to the combat stat list. Some other examples include elemental resistances, healing effectiveness, status effect duration, freezing status resistance, and any others that might mix up the combat a little bit. I hope this will provide new options to players and encourage different strategies and play styles.

Excerpt from Design Document - Some different charms.

Crafting

There is one more major feature, which is crafting. This is in many ways an extraneous feature. The game could be fully designed without any sort of crafting, and so I hesitated to implement this feature. But, there are a few reasons I decided to add this feature. Crafting adds much more purpose to items in the game. Each region in the game will have its own set of items, and its own crafting recipes. Additionally, crafting provides me as a designer with more ways to include new items that help make different areas more unique.

Crafting a slimy potion using Green Glob and Strange Leaf
Crafting a new item requires some quantity of one or two other items. You must unlock recipes first by collecting recipe scrolls. There will be many recipes, such that it is unlikely you will unlock all the recipes in one playthrough. Instead, unlocked recipes will carry over between save files. Once you have unlocked a recipe, you can select it from the crafting list (tabbed over from the inventory screen), and choose the recipe to craft it. My goal is to include many crafting recipes using nearly every item in the game. Particular recipes will be useful in specific areas, or combine items from different areas to create more powerful items.

Stray Thoughts

Thanks for reading! I am very proud of how the inventory system came out, and I am glad to share the result with everyone. I actually finished the inventory a few weeks ago, but I have lacked the motivation to focus on my game for a little while. Of an additional note, the GML 2.3 updates are around the corner, and I will need to spend some time then updating this system with new data structures. Next, I will be designing the Flayern area and adding those elements into the game to start doing some terrain generation prototyping.