“Everyone Gets Treasure” RPG Diary 5: That’s No Game, It’s A Spreadsheet!

I live and breath role playing games. They’re far and away my favourite genre – both to play and to build. I coded my first RPG as an 8 year old, line for line in BASIC, copied from from a book called “Write Your Own Adventure Programs For Your Microcomputer“. Even now I can close my eyes and replay that game, see the bats that attacked me in a dark corridor, finding a secret door behind the large painting in the cellar.

I remember coming home from a school camp as a 10 year old to find Ultima VI sitting on my bed. I still remember opening the box and studying the cloth map included with the game for hours and hours. When my companions in Britannia would bicker amongst themselves, scolding me for stealing potions or singing songs around a pixelated campfire, it really captured my imagination in a way that other game genres can’t. As much as I love Super Mario or Grand Theft Auto, there’s something about playing a RPG that just feels different to me. A portal to another world that I’m part of. The sensation of growing in power, saving a medieval world from a terrible threat, of finding the +3 Vorpal Blade that will make your fighter nigh-invincible.  

 

Ultima 6 - The False Prophet_1

 

These days, I don’t seem to play that many RPGs. Dark Souls II is probably the only one I’ve played this year, and even that is a bit of an RPG/action hybrid. The reason for this is probably quite familiar to many of you in your thirties ( as I am ) – not enough time. Mobile RPGs, played in bite sized chunks, are generally the solution for the time poor. I’ve played a couple of great ones over the last few years, Knights of Pen and Paper and Pixel Dungeon, but I find many of them are still far too bloated and grinding.

The reason my old gladiator game series Swords and Sandals was so popular, I believe, was because it was whimsical. It cut out the preamble and exposition and just got on with fighting, upgrading your character and shopping. Many will argue this is not what true role-playing is, but for the time poor, this is at the heart of what’s enjoyable. The buzz you get when you level up, or defeat a feared boss monster after many attempts. One of the things I always wanted in S&S but never got the chance to do, was to have a party of characters to control. It’s one thing to control a single player, another to be the leader of a company of heroes – to lead them through dark dungeons and come out the other side. Party based RPGs are infinitely more fun , in my opinion – but I haven’t really seen many of them in the mobile space.

So now we come to the reason I’m building Everyone Gets Treasure – I want to capture the old-school feeling of a group of adventurers in turn based combat. 5 heroes going on an adventure, climbing a tower, until only one remains. Oh, and of course, throw in the whimsy of a mad ‘game show’ style environment with minigames, challenges and a studio audience, and there’s your elevator pitch.

I’ve spent the last week designing the UI for the main game. It’s always much harder work than you first envision – even when you draw it up on paper, you often find it just doesn’t work when you build it live. Often the screen might feel too crowded, with too much information, too many stats. Sometimes your icons might not feel intuitive enough. You have to iterate and iterate. Here’s what I’ve come up with so far:

 

charPanel_2

 

 

What you see above, is a battle against 25 Sagan Blobs. Most battles will have a lot less monsters , but it’s always good to stress test against the maximum number of foes you plan on including in your game. This way you can see how much room you have to work with ( do your icons cover the monsters? etc ) . The panel in the top left represents the character who’s turn it is. You can see their stats, health and magicka at a glance – basically all the information you need to know about them. Tap another character or monster, and a similar panel will appear on the right for easy comparison. You’ll also notice under the left panel is a bunch of icons for you to click. These are things like “Attack”, “Wait” and “Swap Order” – every character will have some default actions, as well as a few special attacks such as “Fireball” and so on.

I’m trying to make the game as mobile friendly as possible. Dragging and swiping from your character to your enemy will attack them. Tapping on a character brings up their stats, and so on. Much easier to do in theory then in practice but so far it seems to be working well.

And now, 6 odd weeks into development, I’m finally building the combat engine! When you’re building an RPG, it takes a long time to get to this point. For example, to build a character attack, you need to know what skill your character is using. To get the skill, you need to have a database of skills. And so on. Complexity in the game quickly skyrockets, more than just about any other genre I think. Everything from inventory management to skills systems to levelling up and resolving combat – these are all intricate systems that must work together seamlessly.

Just for interest’s sake, here’s how I’m coding up my skills. The character, for example calls the function getSkill(SkillNames.ATTACK, me) , which will return an object with a skill.

public static function getSkill(skillNum:int, cObj:CharacterObject):Object {

var skillsObject:Object=new Object
skillsObject.skillNum=skillNum

switch(skillNum) {
case 1:
skillsObject.skillName = “Attack”
skillsObject.skillIcon = “iconAttack”
skillsObject.activeSkill = true
skillsObject.melee = true
skillsObject.magickaCost=10
skillsObject.baseDamage=cObj.baseDamage
break

case 2:
skillsObject.skillName = “Wait”
skillsObject.skillIcon= “iconWait”
break
}

return skillsObject
}

 

This way I can easily retrieve all the data I need for a particular skill, as well as adding new skills as necessary. It also means any character/monster can use any skill as necessary – I can have monsters that use ‘fireball’ as well as a wizard, if required. So much of RPG stuff is behind the scenes, I often joke it’s like building a spreadsheet with some fancy special effects pasted on top. Oh yeah, and add in dozens of UI panels and a hundred different equations to determine attacks, buffs, spells and so on. RPGs are in that way a lot harder to build than other games, because you don’t really know how your game is going to play until you’ve invested a lot of time in the systems underneath it. It’s much harder than simply making a platform game, adjusting the gravity on the fly and seeing if it’s fun. It really can feel like a spreadsheet sometimes.

 

bossBattle

 

The key is to have all this complexity and depth, but hide it from the player and reveal it slowly. A great story reveals itself in such a way. Don’t give your barbarian character a hundred stats and abilities all at once. Allow him to attack and defend, then when he’s more powerful, show him the ability to roar and scare off his enemies. A +2 Battle Axe is much more of a reward when you’ve been using a rusty iron hammer for several hours. The player will care more about defeating Foozle the Malevolent if he or she has been slowly revealed to you through little bits of gameplay – foiling your party’s escape plans here, or setting a trap for the party there, rather than in pages of expositionary dialogue at the start of your game. Remember – keep your RPGs clutter free on the surface but brimming with depth underneath and you’ll have yourself a hit game.

When you decide to build an RPG, realise it’s a complicated and time consuming undertaking – but ultimately a hugely rewarding one if you get it right.

Anyway, that’s it for today. I’m really making progress on Everyone Gets Treasure and in a few weeks I’ll have a video with some gameplay footage to share.

Cheers and happy journeys! Oliver Joyce.

 

 1457 people have viewed this page.