Or should that be with-OUT items? Of course, most games have items in one form or another, and it would be especially lacking of a feature in an interactive story where you would expect it.
And that is why, in this article, we will be discussing the Item system in StoryDev.
Before we get onto the nitty gritty of this interface, we should draw our attention to the top of this form. We have an additional menu option, "Resources", which contains icon sets we can assign to certain types of icons. Currently, we only have icon sets for Items and Artefacts, but more icon types and resources I'm sure will come.
This Resource system allows us to assign icon sets, and this comes to fruition here. The button marked "Icon" is indeed a button. It doesn't look like one, but clicking on it brings up this interface:
As you can see, this is the icon set allocated to our Items, and we have supposedly a 10x10 grid of 64 pixel wide and high icons for this type of data ready to be used in-game. In actual fact, there is only one icon as you can identify, but this will grow larger as the game grows.
Now onto the details of our main Item interface.
- Rarity - This is simple. It defines how rare the item is. It will visually mark an item in-game depending on this value defining effectively it's quality.
- Unique - This means the item can only be acquired once.
- Special - This means the item cannot be destroyed.
- Buy Price - If bought from a vendor, this is the value of this item. Zero means it can be acquired for free.
- Sell Price - If the item has a value greater than zero, then it can be sold to a vendor.
- Item Use Context - This can be considered a type of item, which it is, but in StoryDev we have no concept of characters holding weapons or putting on armour. There is no combat system nor special interactions with the environment. This is pretty much a "use context", meaning each is determined to do something in-game.
- a) Feed - This means player characters will use this item to feed themselves. The value entered into On Use Script will be the value used to nourish the character when they get hungry.
- b) Thirst - Just like above, but when player character's get thirsty.
- c) Knowledge - When choices are reached in conversation, item's of this type become available to use if the context suits them. Our On Use Script will determine that.
- d) Wound - If a player character is wounded, this item would be used to heal that wound. If a character is wounded and an item is not found, we need a separate fallback conversation to go to to cover ourselves.
- e) Antidote - Like above, except for harm to a character that is anything but a physical wound.
- f) Melee/Ranged Combat - Like Knowledge, except we're responding violently. These will carry a negative cost unless it is the only option in the game at the time.
- g) Miscellaneous - Anything goes.
- On Use Script - This is the script executed when we use the item.
- Use Cooldown - This is the number of conversations the player must wait before they can use this item again.
- Is Consumed - If this is checked, the item is consumed when it is used.
Some items would be used automatically, like items for feeding and drinking, controlled by global settings we have yet to add. We will have several options to fallback on to fulfil certain conditions, like when a player character gets hungry between conversations and story progress. These could be in the form of warning signs for when stock gets low or completely out. It will serve the basis for more character engagements that are more dynamic and doesn't require the static navigation between conversations. When life is threatened and you have nothing to defend yourself with, what else do you do?
All of these choices and systems will form part of a truly dynamic interactive story that isn't just "make a decision and see what happens".
In the example item above, we have what's called Crylicti, which is a crystal found relatively early on in the game. Using this crystal, as per the script you might see, will check all available choices when you are at the end of a conversation and highlight the option that offers the best outcome. Naturally, because this is such a powerful item and one of the most powerful in the game, you have to wait 12 conversations before you can use it again. However, just because it's powerful doesn't mean it's always useful. Some choices in conversation will have equal penalties but will simply go in one direction or another.
In the next article, we will discuss Artefacts and will be two steps before completion of all basic data within our game. That doesn't mean the editor itself is finished.
We still have yet to do:
- Code Construction interfaces (WYSIWYG) to make finding data easier when using code to execute instructions.
- Complete interfaces that need code construction.
- Implement and design the story planning and conversation system.
- Add global settings for game-wide settings we can control.
On another note, the video game code has started somewhat. Most of it is a copy and paste from another project, but it is essential to get some foundation before deciding to create tutorials on them.
The StoryDev engine will be coded separately from the game code, as StoryDev will be free and open source for people interested in using it for their own projects.
Until then, please stay tuned for the Artefacts section of the editor.