Thursday, August 18, 2016

Pebble Game: 2 Steps RPG

I've had an itch to create a role playing game on my Pebble watch for a while now. There are several RPGs available for the watch (some quite nice), but overall I think they tried to shoehorn a game meant to be played on a computer platform (with the vast input devices available) into a watch with 4 buttons.

I wanted the game to embrace the watch platform and be designed specifically for it.

My design methodology:

  • Movement in the game should be forward or back. In RPGs, you're really just going to a quest goal (with more danger) or coming back home (to train/rest/etc). Unless you're trying to replicate a maze, there's no need to be able to turn left or right. So I threw out the ability to turn! Now I only need 2 buttons for the entire movement system: "forward" and "back".
  • As you're heading towards your quest goal, you'll encounter enemies along the way that will block your path. When blocked there is no need for a "forward" action, so we'll just replace that with an "attack". Not only does this double up buttons on our very limited user-interface, it also allows the player to plow through easier enemies without moving their fingers over. Just keep pressing the same button and you'll either move forward or kill what's in front of you then move forward.
  • The same is true for the reverse movement. If you encounter an enemy too difficult, then you want to go back. To not make the game too easy, once you're in combat you can't just walk away without consequences; you have to attempt to flee which could result in getting hurt. So the "back" action gets replaced with a "flee". Again if you just want to go home, you can keep pressing the same button and you'll either move back or flee the combat to move back without moving your fingers over. That doubles up another button on the user interface.
  • It bugs me when there are killer squirrels in RPGs that chase you down and gnaw at your ankles until you collapse and die. In reality if you're trying to kill a squirrel then decide to walk away and ignore him, the squirrel is more than happy to let you walk away. So some monsters require you to attempt to "flee" from combat while others allow you to just "ignore" them. "Ignore" is 100% successful, and the monster doesn't try to take one last bite out of you as you walk away.
  • Pretty much any RPG is going to have some kind of economy. The player goes out, kills a rabbit, then sells its fur for a little cash. The player goes out, kills a skeleton, then sells the sword it was carrying for cash. But it's all the same - kill, put in inventory, go back to town, sell for money. We'll cut out the middle steps - when you kill something we'll just give you the money as though you instantly sold it. You can't use the cash until you go back to town anyways, so what does it matter that you go back to town with 10 rabbit furs or $10? I didn't implement encumbrance, but it could be simulated by putting a cap on how much gold you carry at any one time.
  • Being a watch app, it needs to be very quick and easy for the player to leave the game. With only a single exception (that I'll cover next), the back button on the Pebble watch needs to immediately exit the game and go back to the watchface. Done playing this session? Hit one button and you're out!
  • The majority of the game is on a single screen, but there are a handful of major events that require a fair amount of text so the player knows what is going on. On those screens, the up/down/select buttons on the watch do nothing - the player must press "back". This ensures the player won't accidentally skip an important conversation while they're plowing to or fleeing from enemies. So the conversation window comes up, read it, press "back", and you're back in the game. Accidentally double press "back" and go to the watchface? No problem! Just jump back in the game right where you left off, which leads to my next point.
  • This is a game on a watch - people aren't going to stare at this tiny screen for 30 minutes. They're going to play in very small doses at sporadic times of opportunity. It must be seamless to leave the game and go back in right where they left off. Upon exiting, the game automatically saves the entire state (game settings, player properties, and current enemy properties). Upon startup, the game automatically loads the entire state - including if you're in the middle of combat.
  • So that leaves 1 button, "select". To be most valuable, it needs to be context sensitive. If you're in the Inn then likely you want to heal up, so we'll make that button "rest". If you're at the trainer then likely you want to train, so we'll make that button "train". If you're in (or just out of) combat then likely you want to regenerate your health, so we'll make that button "cast heal". The first cut of the game only supports the one spell "cast heal". I can see future versions of the game having a variety of spells or equipment items that would be accessed under the "select" button (which would bring up a list to pick from). That will mean a few extra button presses for those special actions, but it won't be something the player constantly has to do.
  • Although the user interface is straightforward, game actions are always labeled next to the buttons. For one thing, users don't read manuals. If they have to read a manual to play a little game on their watch then they won't play it (and I can't blame them). Tutorials that teach them the controls the first time they play aren't good either. What happens when you stop playing for 3 weeks? You forget all your controls and you're not going through the tutorial all over again.
  • Finally, I wanted the Pebble watch to have a game you could beat. Most Pebble games I played just had you maximize your score then try again, but that's not as satisfying as being able to say I BEAT this game. The game as designed has some replayability - when you win it tells you how many moves it took (and records your fewest moves) so you could try and win again in even fewer moves. Or you could try beating it by training only attack or training only defense or never training anything or never dying. If I make a version 2, I'll include more spells so you could try winning as a spell caster or fighter or combination of the two.

A poster on the Pebble discussion board offered a great name for the game that I'm using "2 Steps". As in you're going to be doing a lot of 2 steps forward only to go 1 step back.

Screenshot time!

Game Intro

Inn to Rest

Defense Trainer

In Combat

I still only have the original black and white Pebble; a color Pebble will give me lots more options on the user interface. The next version of the game will likely take advantage of color to consolidate status bars, have a background color scheme relevant to the area you're in, and just be prettier in general. (I've already been asked to add images for each of the creatures.) The name of the sequel is too obvious to not use "2 Steps: Beyond the Gate". ;-)

I plan on releasing the source code after I get time to more thoroughly document it. Stay tuned for that post.

UPDATE: Code published to: