RPGTest I have been busy over the past month with a huge translation project, but during the little breaks I took I started sketching out some really simple pixel art. Just to get an idea. I'm looking at a lot of other stuff to get a feeling for pixel art, even though I know that I won't be the one doing the final art for this game.

But it's about time to start. Just making this image was super exciting. I have some basics done up in Unity now. My next goal is to replicate this little scene in it.

[rainblocks development retrospective] 22 - Finishing touches

2014.04.29- Created achievements - Fixed animations and matching for good! - Fast movement implemented - Sound effects are in - Changed logo

It may have been about the twelfth time that I fixed the animations "for good" but having eight blocks that moved instead of nine spots that changed was an important logical distinction. "Fast movement" I believe refers to the ability to quickly slide the blocks, but once again, wow, notes could be better. The sound effects came later than the music, but they helped finalize the feel of the game.

[rainblocks development retrospective] 21 - More new things

2014.04.27- Fixed muddy

Another classic example of how notes need to be descriptive to be useful.

2014.04.28 - Added new assets - Background transition in (but choppy) - Added ability to shake blocks individually

The artwork arrived! I was blown away when I saw it and how alive rainblocks became. It was a great moment in realizing that I didn't need to have artwork all done and good looking before making a game. I had spent a lot of time working and tweaking my own artwork when I didn't need to spend that time. I'm not an artist. If I make a game I just focus on the stuff I can do and then put myself in a position where I can find awesome people to work with.

It's a hard thing to learn and remember.

[rainblocks development retrospective] 20 Big changes

2014.04.25- Change logic animation before updating board Since the animations are all chained, it was important to determine what to do first and then have it happen. I'm still not sure if this is the right way, but I didn't want to slow down the game by preventing player input during clearing, or cause confusion by having the player be able to "undo" a match before it goes through.

2014.04.26 - Track 2 for menu Ah, yes. The music arrived! It was such an unbelievable moment. I had already coded the game to use subaku's sounds and tracks, so it was just a quick and easy flip. There is actually one unused version of the track which I am looking for a place to use in a future update.

Staging levels

Most of my work today was on creating and positioning the levels. Getting used to what Unity is "good" at. Less coding, more working with the editor. I like it a bit less. The most enjoyable parts today was figuring out the edits the code need in order for things to behave like I wanted them to. Then it was a lot of mouse-work. Were there more keyboard shortcuts for the things I want - I find myself tabbing a decent bit in the Unity editor, but that's a lot of tabs - then maybe I'd be less grumpy about using it. But it does feel slow having to edit things through the GUI. With time, perhaps, I'll get used to it. I can only hope.

[rainblocks development retrospective] 18 - Seperation of Church and State

2014.03.25- Put Top and Play in nodes - Added Landscape mode

Adding iPad support meant figuring out how to handle landscape. In subaku there are actually two landscape modes - left and right handed. Depending on how the iPad is held the player can have the tiles on the side of their choice.

I played around this with rainblocks, but I never found a setup that I liked. Plus, rainblocks allows the player to swipe anywhere on the screen to move blocks. Nothing much is gained and the game looked prettier.

So I slapped the data (next match, time-bar, pause and rainbow buttons) in a SKNode and all the rainblocks into another node and moved them around when the device was rotated. The only thing that was not repositioned was the background. The portrait version hides and the landscape one is shown.

Inventory [.RPG]


Double tap an item then select a character and it will be used on them! HP and MP restores animate with numbers floating above the character portrait.

The game stores a list of all types of items and how many the player has. The inventory just won’t show them in the list if their count is zero. I’m thinking the maximum of each item will be nine or fifteen. Maybe variable! Resource management is a beautiful thing but 99 Potions isn’t something interesting to manage.

Equipping equipment [.RPG]

Equipping equipment!

This was a fun coding process. Although the goal is to keep the menus simple, they still have to offer a lot of information. The game was originally going to have no text whatsoever - just symbols and numbers. This was getting unwieldy and annoying so I dropped that idea but stuck with keeping it as simple as possible.

Green means the stat is going up, while red means it is lowering. This isn’t color-blind friendly so perhaps I’ll make versions of the icons with an up or down arrow on them. They could be animated for a nice little touch.

Tapping on the weapon, armor or accessory (shown in the previous post) brings up the above menu. The little X brings the player back to the equipment screen. The up and down arrows means there is more to see (and thus hide when there is not).

Tap on a new piece of equipment to equip it and see the effect it has on the character’s stats. The originally equipped item will be at the top and the last item will be the “Unequip”option: Barefist, Clothes and None for weapon, armor and accessory respectively.

Character stats [.RPG]

Let’s talk stats.

Above all, .RPG is a learning experience for me. So instead of going completely overkill, I’m going to see what how deep a simple set of stats and options can be.

First, equipment. One weapon, one piece of armor, one accessory. The weapon and armor will boost your stats and the accessory will do that or give passive abilities. Status immunity and so on.

Then we have the six stats. HP, MP, Attack, Magic, Defense and Speed.

As of now the battles are looking to be turn based, but not like Dragon Quest where the whole party’s options are input before actions are taken. The action will pause as the player selects a command, but then. Whether or not I’ll show the turn lineup I have not yet decided. Speed will determine the order turns are taken.

HP and MP are obvious enough. Attack and Magic will be the base for how much damage is dealt for those types of attacks. Defense will work for both stats, although how much of the Defense stat is used will be dependent on what kind of attack it is. Speed may also play a role in taking less damage from certain spells or kinds of attacks.

Both enemies and player characters will use the same sort of stats.

The Navigation Menu [.RPG]

So let’s talk a bit about .RPG’s Navigation Menu. The idea here is to keep things simple. Six buttons.

Left. Forward. Right. Items. Search. Menu.

Design Choices

No back button. No going back. Sometimes the dungeons will only branch one or two directions. Sometimes all three. Think of it as Runner Game meets RPG. Just move forward, searching, looting, fighting. Get to the boss at the end of the dungeon. Well, one of the bosses. Some paths will be more treacherous than others. Failed? Don’t worry. Video Game Magic means you’ll be taken out of the dungeon and get a chance to fight again.

Programming Choices

Design was simple enough. A couple of SKSpriteNodes packed into an SKSpriteNode. They report back when touched and tell the game what to do. None of these are actually implemented in game logic right now, but tapping them does tell the game that it wants to do something.

TouchesBegan and its siblings get passed into the container of the buttons and lets them know which to highlight while pressed. If a touch moves off of the button (or is cancelled) the button reverts to normal. Only if a touch ends within the bounds of a button and never left those bounds will it activate.

Begin! .RPG