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. |
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. |
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. |
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. |
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 |
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.