[1GAM-May] Tic Tac Head: Progress Log #1

Please forgive my l33t Photoshop skillz >.<
1GAM Banner
Uh oh, we’re approaching the end of May and I haven’t written anything about my OneGameAMonth entry. Well, I’m still trying to make the deadline here, so I’ll keep this post short.

Before we go further, a quick introduction is in order. I’m participating in OneGameAMonth, a community that encourages people to create a game each month during this year. It’s May, so right now I’m working my on my fifth entry, and you can check out my games for the previous months right here.

First, let’s get the cat out of the bag. I suck at doing anything related to the internet. I can’t write a good website, all those HTTP POST GET mumbo jumbo confuses me, and I hate JavaScript. Yet, the internet is fundamental to everything these days, and even games with all those leader boards, cloud save, and social things. So I secretly wish I could get better at doing this internet stuff.

Then, around two months ago, a chance came by.

Chat Head

A chance by the name of Chat Head. Chat Head is the new interface for Facebook Messenger featuring a draggable profile image that is floating on top of the phone UI. Me and a friend of mine really liked this new interface, and during our discussion, we came to a realization that this kind of interface is a really good fit for multiplayer games. Imagine being able to easily goes into and out from a turn of Letterpress. Or Words With Friends. Or Poker.

But building Letterpress, Poker, or even Chess is a tad too big for us. We (well, at least I) don’t really have the experience to build a proper multiplayer game. So we start small. We start by building a really simple multiplayer Tic Tac Toe. That way, we would understand the underlying infrastructure of a turn-based multiplayer game which hopefully can be useful for building another multiplayer game.

We decided to postpone that plan a bit so I can use it for my May OneGameAMonth entry. We also decided that I will deal with the client stuff and he will deal with the server stuff. To be honest, I’d rather learn how to do the server codes, but eh, building that floating interface should be an interesting challenge as well. While for my friend, he hopes to be able to learn server development with Python from this project.

And here we are. So how did it go?

Well, it went… badly. Me and my friend got a bit busy this month with some school stuff so we barely wrote any code at all. Fortunately, I managed to sneak in a bit of time to work on the floating head interface (and exploring the deep end of Android app development) while my friend managed to get some Python codes running on Google App Engine.


Right now I don’t have any school work to worry about for around a week, so I managed to go full throttle on this project for the last few days. I’ve been adding moreĀ functionality like the game logic and the game interface, and I’m writing this post while in the middle of working on the game friend list. Working on apps is a bit different than working with games since I have to adhere to a lot of the operating system architecture. Fortunately, it’s still fun.

While now the game is sort of working (you can win or lose a game), I’ve been avoiding some of the more difficult issues like managing friend list or even notification. These are the issues that need to be dealt with a great amount of consideration and I don’t really have the time for that. That said, I’m positive that I can do the core functionalities of the client app in the remaining 3 days.

Meanwhile, my friend hit a snag on the server side of things. Apparently his little adventure with Python is too much for him to handle, so now he’s reverting back to Java, his usual weapon of choice. There’s also the fact that he has another school stuff coming up soon, so he’s in a bit of mess right now. With less than 3 days until the end of May, who knows if he could pull it off.

And at that cliffhanger, I’ll end this log. Stay tuned for the next post to see whether our ending is happy or not šŸ˜‰

[1GAM-Mar] Grid Chaser: Final Log

This post is way overdue ~.~
One Game A MonthAnd in a crazy turn of event, I’ll be talking about my MARCH project on MAY. Yes, I know this would be totally awkward, but please bear with me.

So, Grid Chaser has been released on Google Play for quite a while now, go check it out here or just watch the gameplay video at the end of this post! As a reminder, Grid Chaser is my April entry for #OneGameAMonth where I pledge to tcreate a game every month this year. Check this page for my previous entries, or read the previous logs for Grid Chaser: #1, #2, #3.

BTW, I really liked the icon for the game =3

And as I have mentioned before, I’m sort of done with the general gameplay and have to start thinking about all the supporting elements. Elements such as tutorial, multiple level support, more levels, and such. While the weekend is still early, I decided to start working on the most crucial part, the tutorial.

Originally I intended to have some sort of interactive, step-by-step tutorial to explain how the game works. For example, when the player is about to reach the first intersection in the maze, the game will be paused until the player made a swipe to change direction. So, each time the player is about to encounter a new feature of the game, the game will be paused and a tutorial overlay will be shown.

While I was writing down the sentences for the tutorial, I noticed that the amount of sentences needed to properly explain the game is way over of my expectation. At this point I realized that this approach is a no go since the tutorial is becoming too complex for the players. Besides, I think the players wouldn’t like it when the game control is suddenly wrestled from their hands.

Wondering what to do for the tutorial, I remembered that Black Holes manages to only uses 2 sentences to explain the whole game despite being actually complex. Taking a page from that book, I understand that I need to create a safe playground where the player can do no wrong and be able to progress at their own pace. And so a plan to integrate the tutorial with the level was forming up.

Grid Chaser tutorial level

To reduce the amount of information the players need to process, I decided to have two separate tutorials levels. The first tutorial level (pictured above) is all about the basic of the game while the second one is about the chasing. On the first tutorial, I simply made the player keep going around in circle until a valid input is made. Then I applied a basic principle of “show, don’t tell” by showing that the level will be completed once all crystals are collected.

At the end of the day, I’m pretty satisfied with how I handled the tutorial for this game.

Anyway, this led us to the next problem, which is level selection. Initially I wished to have a horizontally-scrolling level selection, but since I don’t really have much time, I ended up resorting to a simple left-right arrow button to browser through the level gallery. And that’s just the user interaction, I still need to actually build the system for multiple levels, level-unlocking, and other things =/

Building the level itself is quite exhausting. While I knew what kind of stuff affects the difficulty of the level, tweaking them to have the desired experience is surprisingly difficult since I can’t quickly test the level. Not to mention that I don’t have any tile-based map system so the maze visual and the grid data is separated @.@ In the end I only came up with three levels, including the tutorials.

Title screen

The deadline is fast approaching and I suddenly realized that I didn’t have any background music for the game. Uh-oh. I browsed NoSoapRadio a bit, but I couldn’t find any music fitting for the game. So in my desperation, I turned to Google and somehow landed on this page.

A page which turns out to have a ridiculously awesome album filled with 8-bit music soundtracks. A ridiculously awesome album that cost me nothing to use.

Seriously, I’m willing to pay to listen to those musics and this guy is actually giving them for free 0.o And so I listened to all 16 soundtracks (while enjoying them in the process) and finally picked one that I find quite fitting for the game.

And with that, my game is finally complete (well, sort of). You can check out the game and the music I used from the gameplay video below.

So now the game is finished and all that, what do I think about it? While I’m not really satisfied with the game, I still think that the gameplay mechanic has some potential. I really wish that I have more time to refine the fun factor in the game, but unfortunately, there are more stuff to work on in a level-based game like building the levels and the level selection.

I suppose it’s a lesson for me that doing a level-based game is harder than it looks.

Now my entry for March has been concluded, what’s next? Usually I can’t say about what I’m going to do with 100% confidence, but this time I can say for sure about what I’m doing in April since I have actually done it. What I don’t know is whether to talk about it in the past tense or future tense =/ I suppose I’ll go with the future tense since it’s more fun that way.

Well, my April entry for #OneGameAMonth will be both new and old. I’m going to port Black Holes, my old January game, to iOS, a platform that’s totally new for me. I actually have checked out Xcode and Objective-C stuff before, but never seriously putting my effort into it. Besides, I think it’s about time that I have a taste of the iOS market, so you could say the stars are aligned for me to finally have a game for iOS =)

Anyway, let’s hope that I can get back to my regular blog posting schedule so there’s no more super late post like this ~.~

[1GAM-Mar] Grid Chaser: Progress Log #3

Who would’ve guessed that just talking about some screens could get this long šŸ˜„
One Game A Month
Before we go further, let me just tell you that Project Chaser (or Grid Chaser as the correct title) has finally been released on Google Play! Give it a try from here, and if you don’t have any Android device, feel free to check out the gameplay video here.

Wait, what is Project Chaser? Project Chaser is an Android game where you move around in a maze using swipe control while trying to chase down an enemy. Project Chaser is also my March entry for #OneGameAMonth, and you can read the first progress log here and the second log here. So what have I been doing with project Chaser so far?

Well, it’s the last week of March and all I’ve been working on so far is the gameplay mechanics (after all, that’s where most of the fun is). Problem is, there’s also a lot of stuff on a game other than the gameplay, like the title screen or the pause menu. So I fired up Photoshop and started exploring how those screens would look like.

Pause screen

Since pause menu is the simplest one, I started working on that one first. All a pause menu needs is a text telling that it’s paused and a button for resuming the game. This time I tried to do things a little bit different by having the player tapping anywhere on the screen to resume the game. After all, I feel that its implementation in Super Hexagon result screen is really nice and make navigating the game feels faster, so I wanna see how it does here.

I also added an extra button to return to the title screen in case the player doesn’t want to play anymore. The original look I’m going for is a simple flat button, however most part of the game has been pretty flat, so how should I make the button stands out more? Well, my answer to that is by actually making the button literally stand out, so I added a simple pseudo-3D effect on the button in hope that the player would realized that this particular rectangle can be pushed down.

I really like how the pseudo-3D effect looks that I decided to also makes the pause text has the same effect (previously its just a flat, simple text). I like this new look so much that I ended up changing the entire art direction of the game from a simple flat, retro look to a pseudo-3D one šŸ˜„

Check out the title screen below for more pseudo-3D madness.
Title screenIt only shows static image here, but the little rectangles on the background is actually moving from the center to the edge of the screen. The idea is to have some sort of speeding-up-in-a-tunnel look without having to actually do it in a 3D scene. To be honest, I should have used a better speed calculation so it looks more realistic, but eh, it’s good enough this way.

This time I decided to also have the level selection menu right on the title screen to make things simple. To tell you the truth, originally I wanted to have the level selections slides horizontally when changed, unfortunately due to the limited amount of time that I had, I had to cut it from the feature list.

One of the reasons I didn’t have enough time is because I spent so much time working on the “Grid Chaser” title text. I tried to make the text a little bit more fancy by adding a more complicated 3D look which surprisingly took a lot of time to get right. I also iterated over several versions of the text since I just can’t seem to get the look that I want.

Here’s one of those alternate versions of the title text that didn’t make it to the game:
Alternate title textWhile this text looks okay on a plain black background, it doesn’t look really good on the actual title screen so I ended up scrapping it =/

So with the pause and title menu done, what’s coming next? Well, the tutorial is one thing I really need to do since it’s crucial to make players understand what the game is about. Other than tutorial, there are still tons of little stuff that need works such as a working level selection, progress saving, and even finding a suitable background music.

But don’t worry, I managed to do all those stuff in the end, so stay tuned for the final progress log of project Chaser!
(and check out the game here!)

[1GAM-Mar] Grid Chaser: Progress Log #2

Oooh, two logs in a row? =3
One Game A Month
Welcome to the second progress log for project Chaser. In case you don’t know, project Chaser is my March entry for OneGameAMonth. As I have detailed in the first log, on project Chaser player will control the movement of a blue triangle by swiping and will have to chase a moving target in a maze.

Despite that description, the design for the game is definitely not done yet, there’s still a lot of improvement that can be added. One such improvement is for the movement control. At one point a friend of mine complained that it’s not clear where the character (err, triangle) would go next, and I have to agree, it’s not clear whether the player input has been correctly received or not. To try solving this problem, I decided to add a set of arrows in front of the triangle that would give a preview of where it will go next to the future.

I quite liked the arrow addition since it makes the movement much clearer and it fits pretty well with the overall look of the game. That said, another friend of mine claimed that this arrow-preview-thingy is actually confusing, so… -.-a

Movement arrows

Anyway, I didn’t spend the whole weekend just adding arrows, I also remade the prototype to be much more object-oriented and the movement system to be smoother. Now it feels more like a proper game. However I’m starting to feel that the chasing mechanism is kinda boring since I spent so much time doing it and the novelty already wears off.

So I was wondering, how could I make the game more fun and feels less like a chore? Previously I’ve mentioned that Nimble Quest kinda inspires me, so it is very fitting that the answer came while I was playing the preview of Nimble Quest too. And the answer to my question is reward, I need to somehow reward the player for successfully chasing the target.

While playing Nimble Quest, I realized that what keeps me playing is the fact that I’m going to unlock a new character each time I cleared a new level. In short, new character becomes the reward for playing the game. So what would be the reward for playing project Chaser? I don’t want to deal with the hassle of coins, upgrades, or other unlockable items at this point, so it has gotta be something else.

With that in mind, I created Crystal Farming as the reward for playing the game.
(pardon me for the stupid name)

Crystal farming

So, what the hell is crystal farming? Basically, after the player managed to reach the target, the whole map will be filled with crystals and player just need to direct the triangle around to attract and obtain those crystals. It’s fast-paced, easy to do (doesn’t need full concentration) and quite fun. I feel that having an easy but satisfying activity to do is a proper reward after the hassle of chasing down the target.

It’s also worth mentioning that this crystal collecting mechanism is much more scalable than the chasing one. It’s easier to create an upgrade system for collecting those crystals, like having upgrades that can attract more crystals or doubling the value of each crystal.

Well, all of this comes only from my perspective though, how’s people actual responses to it? Fortunately, when I showed the game to a bunch of friends, the crystal farming part seems to get a universal positive response. So I think I actually managed to nail this crystal farming section.

That said, the response to the chasing mechanism is much more mixed. Even though there actually is this sense of escalating intensity, some people find the chasing part to be a bit too hard or takes too much time. And I tend to agree with those observations, I definitely still need to tweak the chasing sessions. The movement control seems to also needs a bit more tweak since apparently each person has a different way of swiping.

And to be honest though, I don’t think that the crystal farming stuff is the best mechanism for reward that I can do for this game, but it definitely is a step in the right direction. And for a game that must be done before April, I think that is enough.

Anyway, check out this video below to see the game in full action.

My emulator keeps crashing whenever I ran the game on it and I don’t want to deal with it right now, so I just recorded myself playing it instead =)

So, what’s next for project Chaser? Well, for starter, I need to start building other levels and additional obstacles for them. I think having 3 mazes is a good target for now. And there’s also that matter of creating a nice tutorial that can make people feel comfortable with the game control.

One other thing that kinda bothers me is how the chasing part and the crystal collecting part seems too separate. I really think that some sort of integration between the two is necessary here. One scenario that comes to mind is to have some random crystals pop out during the chase so the player has to choose whether to go after the crystal or chase the target.

Anyway, that’s all for now, see you on the next progress log!

[1GAM-Mar] Grid Chaser: Progress Log #1

Progress? More like “birth” actually.
One Game A MonthNote: This is the third week of March, but this log only consists of the first two weeks.

It’s already March, which means it’s time for another series of my OneGameAMonth progress logs! You can check out my previous game (and also the progress logs) for January here and for February here.

As I’ve said before, this time around I’ll be returning to my home turf, which is mobile games, so I created a bunch of prototypes on my phone to decide which game idea I want to pursue. One of the initial idea is a game about managing a factory where player have to choose the correct machine to create the desired object. And so I spent the first weekend of March building a prototype for it.

Factory sketch

The game turns out okay-ish. While it feels quite intense and requires a lot of concentration (like Super Hexagon), I feel that the game pacing is too flat. There’s no up and down, there’s no ramping up intensity. In the end I decided to abandon this idea and try another one.

At some point in the next week, a friend of mine mentioned a game idea about being a kidnapper who have to sneak around the neighbourhood and evade people. While the idea sounds kinda meh to me (because if I have to sneak around, I’d rather be Solid Snake), the control he suggested, which have the kidnapper keeps moving while the player control when to turn with swipe, piques my interest. Somehow I can imagine a game about a knight moving around in a dungeon avoiding monsters with that kind of control. And to be honest, Nimble Quest might have inspired me a bit.

On the weekend, as I started opening up Photoshop and Eclipse, suddenly it occurred to me that the game is kinda similar to Pac-Man where we have a guy running around in a maze evading ghosts. And so I decided to just go with the Pac-Man look for my game, which is black background and bright basic shapes. I went with green grid for the maze, light blue triangle for the main character and red circle for the enemy.

It’s kinda interesting that since I already have a visualisation of how the game would look (which is Pac-Man), I can just work on the assets without needing to sketch the whole game first.

Project Pacman

On sunday noon I’m done with the prototyping. While I quite liked how the control turns out, the basic game concept apparently isn’t so good. The game feels like a weird mix of action and strategy where player have to pay attention to both his movement as well as the enemy movement. I tried tweaking stuff like movement speed or the number of enemy, but it doesn’t make the game any better.

Since the control is so fast-paced, I decided to make the game more action-oriented. My initial idea is to make some sort of racing game where the player have to race other people through a series of checkpoints in the maze. I dismissed this idea since it doesn’t rely on the player’s reflex, which is the control’s strong suit.

To properly test a player’s reflex, the player must not know the path in advance and has to react in time. The best way to do this is by having the player chase something, so he has to react quickly according to the target movement. I decided to pursue this idea further, and thus Project Chaser is born.

I simply modified some stuff and by Sunday night I got the game working. I also added some “coin-picking” sound effect when chasing the target to make the chasing part more exciting. And yay, this time around the game feels so much better since it’s now totally action oriented.

Project Chaser prototype

That said, it’s not like the idea doesn’t have any problem. The biggest problem is scalability, how do I make a full game from this chasing concept? I don’t think an endless version of this game is easily doable since it’s pretty boring if the enemy simply got faster and faster. Not to mention that I can’t figure out a good death condition for the game.

So that leaves level-based system, which is also annoying. Not just creating more maze is a pain in the ass, having a simply bigger and more complicated maze is also boring. What’s really needed is variety in the form of environmental obstacles, and while they’re doable, actually creating them will take quite a while.

We’ll see what I can come up with to overcome this problem.

Oh, and by the way, I think I have decided on the name of the game, which is Grid Chaser. The name actually comes from the racing game idea, which supposedly will be named Grid Racer (since it sounds similar to Ridge Racer). But since the game is now about chasing, I simply changed “racer” to “chaser”.

Well, that’s it for now, stay tuned for the third week progress on the next log (which hopefully will come out tomorrow)!