This past month or so has seen quite a few additions to the game. The most notable feature was letting the player choose which items they want to barter. A lot of refactoring had to happen to make being able to choose what to barter work. Before, only five distinct pause states were allowed — menuing
, item
, dialog
, map
and death
. The reason these were distinct was because the player could only be in one at a time, without overlap. For example, when we pressed start to pause the game to go into menuing
, we did so from the game
state. If we wanted to get back to the game, we’d unpause and be back into the game
state. If we were talking
, it was because we did so from the game
state.
A dilemma started to arise though as we began working on bartering. So far, there was no need to account for dialog
state to menuing
state, then back to dialog
state. But now, if the player decided they wanted to choose what to barter, we were not coming from the game
state, but rather, from a dialog
state. Because of this new complexity, we needed to rewrite the way pausing was working so that it was using stacks instead of a simple boolean toggle.
With this out of the way, we also need a way to input “how many” of a thing we wanted to barter. For example, if we have 15 arrows, perhaps we only want to barter 5 of them. We needed to give the player a way to input this number. Therefore, we added a simple numeric up/down menu item. To make it easier for the player, instead of pressing left or right for each decrease/increase of the input, we can simply hold down the direction. Holding down the direction yields bigger increments / decrements for the input.
Practically Speaking
Enough CS talk. What does mean for the game? So far my initial thoughts are that it’s a bit tedious to get the item / weapon we want. One thing that we didn’t mention yet is though the NPC still chooses randomly what to barter, they remember what they’ve already chosen, so the automatic part seems to be working well and is less tedious. However, as soon as the player wants to choose, currently, we throw away that data. To make this less tedious and more fun / playable, if the NPC does not like what the player chose, instead of randomly picking again, the NPC should center its “counter offer” around what the player chose, as well as factoring in what has been denied up to that point. I think there’s still potential here, but it needs to “just work” in order for it to “feel right”.
Other Notable Features and Fixes in the Past Month
Most of the features / fixes centered around bartering. However, with the holiday season, we were able to demo the game to a few friends and family members who haven’t seen the game in almost a year! Therefore, we were able to take some really good notes — many centering around very simple stuff, like, how to play the game! Therefore, we’ve begun to double down on adding more “tutorialy” things. Here’s the list:
- Since a lot of the NPCs are placeholder and otherwise, doing nothing, we decided to give them some dialog. Currently, that dialog is simple “how to play” things, as well as simple to in-depth mechanics of the game.
- There’s now a Dojo that teaches the player simple fighting mechanics. This is not required for the player, but should be useful for those playing it for the first time.
- Whenever a player picks up an item or weapon for the first time, a quick message appears explaining how to use the weapon and showing which button to press.
- Many people who have played The Legend of Zelda: A Link to the Past know that Link can jump off cliffs. The same can be done in Violet. However, many people who have played the game don’t realize they can do so. Therefore, when the player gets near a ledge, a simple, non-interrupting pop up appears.
- We added WIP doors! There is no animation for the hero currently, so he just uses the jumping animation. It’s kind of goofy!
- Though placedholder, and repetitive (meaning we don’t have unique portraits for ALL NPCs), we’ve added some more NPC portraits in the game. I found while testing bartering for the fifteenth hundred time that we should get a few more portraits in the game. I simply imported portrait graphics from PlayCraft and ZeNeRIA29.
- We’ve added a few more balanced weapons:
Rapier
,Saber
andDagger
. TheRapier
has a little more durability than other balanced weapons. TheSaber
has less durability, but is a tad stronger. TheDagger
‘s range is extremely small. However, a sneak kill in the game for any weapon yields 10x the damage output for a weapon, where a dagger has a 20x multiplier. - We’ve added a few more bows:
Recurve Bow
andGreat Bow
. With all bows before, if something was moving, and a bow and arrow (or any projectile, really) was shot, it may miss the target, because the direction was computed based on where the target was at, not where it was going. Therefore, we are now accounting for that, sort of. What we mean by that is for aRecurve Bow
, it is 90% accurate when shooting at a moving target. We take the “where it’s going part” and use a .9 multiplayer. If an enemy is moving really fast, the player may still miss it. TheStandard Bow
has a .4 multiplier on it. These multipliers hopefully gives “uniqueness” to each bow. If the player is moving while shooting, the multiplier is even less! It’s best to shoot at a moving target when the hero is standing still. Oh! And the Great Bow can shoot three arrows at once! - Lastly, all the
Soldier
enemies now carry weapons randomly, based on their type. For example, anOrcBalanced
would randomly choose between aSword
,Rapier
,Saber
and aDagger
. Not only are there weapons randomized, but now their ranking is relative to the player’s ranking. For example, if a player is carrying aD
rank sword, theOrcBalanced
can rank up toD
as well. There is a cap for easier enemies, and less of a cap for harder enemies. That way, player is not farming high ranked weapons off of easySoldier
enemies.