Unfortunately, this is an update that doesn’t involve prettier screenshots. I’ve finalized my combat and character advancement systems and begun creating the data files for all the NPCs (monsters and townspeople) in the game.
One thing that is bothering me is that I don’t feel I’m giving the player very many choices when it comes to combat. While I understand that I’m a programmer, and therefore this is ultimately a programming exercise, I also do dabble in design and the design that is coming out is simple, functional, and probably not very fun.
What it boils down to is that I probably need more weapon, armor, spell and item types in order for the game to be really fun. My system is flexible enough that in order to add them, all I’d have to do is create new data files for them and expand my tile bitmap to include the new tiles for them…I’m hoping I have time to do it.
I’m very close to being able to look at, talk to and fight any person in the game. The code for all that is written from the NPC side; now I need to work on the input system so that the player can communicate his desire to look, talk or fight to the game.
Here’s how I’m planning to do my mouse-based player input. When the mouse pointer is not inside the map part of the screen, it’s a mouse pointer. You can use it to click on the save/load/quit buttons, click inventory items to arm them, click spell buttons to cast spells, or click on the interface buttons at the bottom of the screen to set a certain interface mode (look, talk or fight).
When the mouse pointer is inside the map part of the screen, by default it’s a “move” pointer. Clicking the left mouse button while the pointer is in this mode will cause the player to move one step towards the pointer. Right-clicking changes to “get” mode. Left clicking on an object will then get that object into the player’s inventory. Right-clicking again changes to “fight” mode. Left-clicking an NPC will attack that NPC. If you have the Smite spell, right-clicking changes to “cast” mode, allowing the player to cast Smite on any NPC on the screen. Right-clicking again changes the mouse to “look” mode. Left-clicking causes the player to look at whatever item the player clicks on. Right-clicking again changes to “talk” mode.
There will be interface buttons on the bottom of the screen so the player can play the game with just the left mouse button if desired (left click get, fight, cast, talk or look and then left click in the map area on what you want to do that on).
I’m going to try to support keyboard-only as well, but selecting stuff on a map with just a keyboard is kind of wonky (as anyone who played Ultima VI without a mouse will tell you).