Games I’ve Been Playing: Pocket Trains

I’m back, my people!
Playing game

Get Pocket Trains for iOS here.
Get Pocket Trains for Android here.
Or watch the gameplay video here.

Oh wow, it’s been quite some times since I posted anything here. Have no fear, I’m back now! And I also got a much longer and heavier post ready to be published. In the meanwhile, I hope this light post on the latest game I’ve been playing would whet your appetite.

Onward, then.

Choo choo!

So, what is Pocket Trains? Is it some sort of Tamagotchi game where you raise train that grows longer and longer? Well, the truth isn’t far off, because instead of raising a train, you’re managing a network of railroads that grows larger and larger.

Pocket Trains is the latest game from Nimble Bit, a game studio known for its addicting timer-based game Tiny Tower. So as you might expect, Pocket Trains is another one of their attempt at the casual, timer-based simulation genre. On Pocket Trains, you will send various trains across the world, wait for them to arrive at their destination, and then proceed to collect the reward. The reward you get can be used to grow your railroad empire by purchasing track to another city or building a new train you can use.

Despite being a timer-based game, Pocket Trains isn’t one of those games where you can advance by just mindlessly tapping stuff on the screen. For each train you have, you must manually choose which stuff the train will deliver. Since different jobs have different reward, there’s some sort of tactical aspect to the game where player must choose the best route and jobs to attain the best reward possible.

To be honest though, I still can’t decide wheter this tactical layer a bad thing or a good thing. It sure brings more depth to the game, but it also brings more complexity.


In addition to the standard delivery job, Pocket Trains also has daily events to spice things up. Every day (real life day) you will get a new random goal to deliver stuff to (or from) a certain location. I really like the addition of daily goals on this type of game. It gives a smaller goal that player can chase everyday so they won’t just play around aimless.

Speaking of aimlessness, despite the addition of daily events, progression (or the lack of it) is a major problem in Pocket Trains. Yes, your railroad empire gets bigger and you also have more trains to manage, but the game does a really poor job of conveying this growth. The railroads isn’t getting more used, the stuff you deliver stays the same, even the stations aren’t getting more crowded.

Part of the problem with the progression is the low amount of available upgrades. You can only upgrade the train fuel capacity and how much stuff it could carry. So no, you can’t make your trains go faster or use the fuel more efficient or any other upgrades you can think of. I mean, it’s called Pocket Trains for god’s sake, so why can’t I tinker with those trains?


I may have been a bit harsh on Pocket Trains on my writing here (still, Nimble Bit has shown that they can do better), but it’s still a game I’d easily recommend to anyone. Despite all its flaws, Pocket Trains is still a good game that you can easily get into when you found yourself with a tiny bit of free time. And it’s free too!

For the time being though, I’m still waiting for that Tiny Deathstar 😉


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

WARNING: Some technical programming stuff ahead.
1GAM Banner

A quick spoiler before we go on, despite this being the second log, the game has been released and is working. But yes, there will be a third log, read on to find out the reasoning.

Anyway, hello people of Earth! It’s the second progress log for Tic Tac Head, my fifth entry for OneGameAMonth, a community that encourages people to create a game every month. Check out the first log here, or check out the logs for my other entries here.

As I have said in the previous log, Tic Tac Head is an online, multiplayer Tic Tac Toe game for your Android devices. It’s nothing revolutionary or ground breaking, but it’s a good exercise for learning about how to build a multiplayer game. And truth be told, I did learn all the hassles about building a multplayer experience.

So, how did my endeavour go? Did it end well?

The Game

To save you all from reading this wall of text even further, let me just say upfront that the ending is a happy one. Well, sort of 😉

Don’t rush now, let’s do this chronologically. The last time I did say that the game can already be played and the player can win or lose. So I continued from that point and built all the missing pieces like the friend list, multiple games, and even some sort of bot that player can play against. And while I was doing all that, the server app was slowly getting into shape as well.

Keep in mind that while building those features, I didn’t connect the app to the server at all. I simply simulated internet connection by having some game process running in a different thread with 1 second delay. Looking back, that was a really good decision. I managed to build an app that is structured for the internet, so I don’t need to change a lot of stuff later. Or so I thought.

So yeah, I left all the internet stuff to the last day. I spent the first part of that day setting up the connection to Google Cloud Endpoints, and fortunately, once I got it functioning, it just worked beautifully . However, the data I got from the server have a different structure from the ones I used in the app, so we spent the second part of the last day hacking things to make the game works.

In the end, with around 30 minutes to spare, we managed to get a working game where 2 players can play Tic-Tac-Toe back and forth. At that point, I simply uploaded the game and called it a day.

Account picker

The game uses a lot of interesting technologies, which unfortunately wouldn’t be written in this post. But let me highlight just one them, shown above, which is the Account Picker.

As you can see, with the Android Account Picker player can choose a Gmail account (or Hotmail) associated with the phone and use it as the login alias. The original idea behind this is that we don’t want players to create yet another account to play the game. We also don’t want to deal with the hassle of keeping another social network session and token data, so we simply use those emails as the login ID for the players.

The development is not all bright and sunny though, one thing that really annoys me is the amount of loading indicator needed to be displayed. Getting a game needs a loading indicator, waiting for opponent’s move needs an indicator, sending a move needs an indicator, etc etc. Seriously, writing “if (isLoading()) showLoading() else showGame()” all over the place really complicated the codebase, and writing to a messy source code is the total opposite of fun.

The pain of building an internet-connected game doesn’t stop at that unfortunately. There’s also the problem that being connected added various possible cases to the app that I need to anticipate. For example, I had to starting thinking abouse cases when a request failed, or when the device got disconnected, or when the request is finished but the user isn’t viewing the app.

All those cases added further to the complexity of the app, and coupled with the last minute hacking we did, it made the game codebase one hell of a mess.

Messy or not, the game works. See it in action for yourself in the Vine capture below.

So now it’s all done, where’s the game link?

Unfortunately, the game isn’t ready for public consumption yet. Like I said earlier, there are a lot of cases that I have to think about, and I haven’t tested them all. For instance, I don’t think right now (as the time this post is being written) players can receive a challenge from a player who is not stored on their player list. And I’m sure there are other non-functioning cases like this, so I decided to withhold the game until it’s fully functional.

That said, I have put the game somewhere on the internet. If you’re smart and creative enough, you should be able to find it 😉

(apparently someone already found it before I even posted this log XD)

All that is the reason why I decided to have another progress log for this game. I planned to keep working on this for a bit more since I wanted to ensure the game is fully functional before making it available to more people. That said, right now I’m aiming to clean up and refactor the whose codebase so it will be easier for me to fix stuff.

And since I left out all the technology stack used from this post, I think I’ll include that in the next log. So stay tuned, people!

[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: Progress Log #3

Who would’ve guessed that just talking about some screens could get this long XD
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 XD

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!)

Games I’ve Been Playing: Pixel People and Virtual City

Seriously contemplating to name this post “Games I’ve Been Playing: City Builder Edition
Playing game

Remember when I said I wanted to review games?

Well, problem is, I don’t really want to play things that isn’t interesting to me. A couple of days ago I tried Grudger, thinking that I can write a review for it. However, after a couple of minutes of playing, I can see that it sucks so I quickly refunded it. Unfortunately, that has invalidated me from reviewing it (the only review I can give is: Don’t buy it). I also got interested in Hell Yeah! and The Gods: Rebellion, but their size are too big for me to download (my connection has bandwidth cap at the moment).

But I still want to talk (or write) about games. So I decided to forget the reviewing part and just write about games that I’m currently playing. After all, I wrote this because I’m interested in a certain game and want the world to know about my opinion, not to create a review site. Besides, this allow me to write older games and not just new ones.

Oh, and I guess I’ll stick to mobile games. I’m also currently playing Guild Wars 2 and Farcry 3, but talking about mobile games is more fun. Anyway, let’s get it on!

Pixel People

I just got a 5th-gen iPod touch (I lost my previous 4th-gen one T_T), and the first new game that I put on it is Pixel People. I’ve actually taken an interest on the game ever since I saw its beautifully detailed pixel art on a preview article, and boy, it definitely doesn’t disappoint.

On Pixel People, you must build city, assign workers to buildings, and collect money every hour or so. Kinda sound like your typical freemium, timer-based, city-building game, eh? Fortunately Pixel People has a really interesting twist on it, you can combine professions with one another to unlock new profession. Combine a secretary with a dreamer and you a get writer, then combine the writer with a detective and you get a reporter. Seriously, discovering those profession is really, really fun, and there are 155 professions for you to find!

Interestingly, this 155 professions limit actually provides the game with an ending, because once you got all of those professions, there isn’t much incentive to play any more. This simple limit actually made the game much more enjoyable since there’s a feeling of progress other than the size of your city. I really like Tiny Tower for it’s simple interface, but I eventually gave up playing it since there’s just no end to it. With Pixel People it’s different, I can see myself playing it for days until I finally unlock all 155 professions =D

For me, Tiny Tower has always been the epitome of timer-based game, but now it looks like I have to give that title to Pixel People.

Virtual City

The other games I’ve been playing is Virtual City (on Nexus 7 this time). Truth be told, I’ve played it on my PC several years ago but never got around to finish it (I managed to got 60% through the game if I recall correctly). So the moment I saw it on Google Play, I know it’s my chance to finally finish it (and continue with the sequels =p).

Virtual City is another city building game, but it takes a way different approach to Pixel People (or other city building games). Instead of simply putting down buildings and expanding a city, on Virtual City you have to manage supply chain for factories. So it’s not enough to just have a sawmill, you also need to setup a transportation route that can move those lumbers to a furniture factory effectively. Oh and there’s also houses and buses that you need to manage on top of that supply chain stuff.

All in all, I really like Virtual City’s spin on the city building genre. It doesn’t feel as strategy-heavy as real city building simulation like SimCity but it doesn’t feel as shallow as those timer-based, casual city building game. That said, the game isn’t translated very well for mobile platform. There’s some addition that makes it easier to use on mobile device, but it’s clear the game isn’t made with touchscreen in mind.

Now I need to finish both of these games so I can move on to the next one. Or hey, may be it’s time for me to learn multitasking properly? =3

Project Claw v0.2.0

Right, time to go back to write about my main game!
As the title implies Project Claw has just got a major version number increase from version 0.1 to version 0.2 =D Go check it on Google Play!

With major version number increase comes a major update too. The whole game has been revamped (even the pause menu) and it now features a brand new engine for the orb-grappling mechanism. Unfortunately, the update makes the game much more complicated, so I have to remove support for Android Froyo and below.

So anyway, what is included in this major update?

  • Physics engine.
  • Power ups (finally!).
  • Coins to unlock stuff.
  • Costumes.
  • Upgrades.
  • New level.
  • Store menu.
  • And other small stuff that I forget.

Like I said, it’s a big, big update and there are tons of stuff that player can do in the game now. If you look at it, stuff like coins, upgrades, or pickups seem to be a natural progression for this game. However, in the previous version pickups aren’t possible to implement because there is no way for the player to control their movement in order to try and get the pickup. The new physics engine remedies that problem by allowing player to swing around and control their movement, albeit limitedly.

Store menu

Unfortunately, there’s no video (yet?) of the overhauled grappling mechanism, so you have to try it out yourself. But yeah, I really need to capture the latest version of the game on video. The current gameplay video has been very, very outdated now =/

Oh, one last thing, the actual game on Google Play is now on version 0.2.3. There have been some minor updates after v0.2.0, they are:
Version 0.2.1

  • Tweaked items pricing.
  • Improved game performance.

Version 0.2.2

  • Added a new set of upgrades.
  • Tweaked items pricing again.
  • Added menu animations.

Version 0.2.3

  • Fixed a bug with the analytics.
New upgrades

The new set of upgrades.

So, what’s next?
Well, currently I’m preparing a new additional mechanic for the game. Not just a new challenge or a new obstacle, but a brand new game mechanic. I have showed an early version of it to some people and the response has been unbelievably positive =D That said, it’s not going into the game any time soon, there is still a lot of things to consider about it. But it will be on version 0.3.0, though who knows when it will be released.

What’s going to come soon is more stuff on the store. People seems to like unlocking stuff, so that’s what they will get. And despite the store popularity though, people doesn’t seem to be interested in unlocking the new level. So I suppose I’ll have to do something about it too.

And don’t forget, you can get the game from here!

[1GAM-Jan] Black Holes: Final Log

Yes, we’ve finally come to this final log =)
One Game A Month
Right, before the actual report, let me tell you the good news. Black Holes, my OneGameAMonth entry for January, is now live on Google Play! You can go grab the game right from here! Or if you don’t have an Android device, you can watch the gameplay footage at the end of this post. Black Holes is a game about using black holes to pull away enemy bullets from your spaceship, sounds cool, right? =D

Oh, and link to the previous logs: #1 #2

So, on to the progress log. It’s the last weekend of January and I finally learnt the negative side of “working every weekends”.

Like I said in my previous post, there’s only a couple of stuff left to do and I’m quite confident it could be done in a day or two. However, come Saturday and I was still focused on working on my main game, Project Claw. I was working on a new mechanic and I wanted it to be done quickly so I could send it to my tester before Saturday night. Oh, and I also needed to send a mockup to another developer for a collaboration I’ve been proposing. Yeah, tons of work that day and in the end I didn’t touch Black Holes at all.

But there’s still Sunday! Sure, I started by working on the title screen logo, and once I’m satisfied with it, I moved on to laying out the rest of the title screen. But after that I suddenly lost my mood to work on the game. Apparently my mind is still on my other game, and I can’t force it to change its focus. In the end I didn’t do anything other than the title screen that weekend.

And that’s the problem with working only on weekends. On the previous week my mind is totally on “how to improve the game experience” and I’m able to work really effectively. However, once I achieved the level of experience I wanted, my mind moved on to the another stuff. And thus I found myself working on stuff that I didn’t really want to work on. Apparently it’s hard to maintain the same level of focus if you’re not working on the stuff regularly.

Title Screen

Well, despite not really focused on Black Holes, I know I need to get my shit done. The end of January is approaching fast after all. And even though I’m not really into the coding at that point, I still pretty much enjoyed working on the artistic part (like the icon). Fortunately, by Tuesday afternoon I already got it all working, both art-wise as well as feature-wise.

It’s not without its problems though. For example, apparently Android can’t play music track continuously without any gap 0.o So I ended up scrapping the plan to have an intro music for each round and just put the intro music on the title screen. Another problematic one is the tutorial. Well, I didn’t exactly have any problem with it, it’s just I hate working on tutorials. Not to mention that the tutorials are really crucial in making players quickly understand what they are supposed to do in this game, so they must be handled with care.

Someone seriously need to write a great tutorial about building tutorials =/

Tutorial screen

Later on that night I uploaded the game to Google Play (also came up with a description for the game) and with it, the Black Holes development saga has finally come to close. So, what’s my takeaway?

There are several things that I got from OneGameAMonth, first off is how awesome the indie people are. Seriously, the community is unbelievably helpful and supportive, and they’re also making cool games! Another thing is that I got someone to provide music for my game, which is super awesome. For me there’s always something magical about strangers working on something together.

What about the game itself? Well, I have achieved my goal of testing out the black hole mechanic, and I’m glad it turned out to be quite good. That said, I still feel that the game format can be better. Most games that utilize physics have tightly designed environment like Cut the Rope, Bad Piggies, Where’s My Water, etc, so may be puzzle game is more fitting for Black Holes?

One more stunning thing for me is how simple value-tweaking can drastically alter a game experience. Seriously, when I lowered the bullet speed from 250 to 150, it improved the game a lot, and when I changed “distance” to “distance squared”, it made the game even much better. Another thing I learned that I shouldn’t give up quickly when the early implementation isn’t good enough, I need to find the underlying problem and keep iterating to solve that problem.

I also learned that honesty is really, really important. Early on I found myself hoping that other people will find my game fun, even though I actually didn’t think it’s fun. Only by being honest with myself, accepting that my game sucks, I can start improving the game. Anyway, those are my opinions about the game, what about other people?

So far the early response to the game is pretty good, most people (like, almost all of them) are praising the idea, saying that it’s a good gameplay concept. And I even got a friend who kept nagging me with new ideas for the game XD It’s interesting to note that people are praising the concept, not the gameplay itself, which is kinda what I actually feel about the game. That said, there’s a few people who mentioned that the bullet is acting a bit weird, so may be I need to actually implement real physics engine after all.

See the game yourself on this full gameplay footage:

Now we’ve reached the end this post, let’s take a look at the future. What will become of Black Holes? Well, I never have any plan to develop it any further than this. I felt Black Holes has served it purposes, that is to prove that a game concept I had is quite fun, and thus I have no need to develop it anymore. If anything, I may use it for further learning, like learning to send a press release with it or use it to test out things such as an online leader board (hey, I love reinventing wheels!)

A little bit of confession, while writing this I just thought of another cool addition to the game. A cool addition that will never be implemented on the game, sigh.

And what of my February entry for OneGameAMonth? Well, I actually already have a really rough vision of what I want to do for February, but the main point is that I want to do it with Unity3D. I really think that it’s nigh time for me to finally learn some new tools. Oh, and it’s also gonna be in 3D. I really need to refresh my 3D calculation repertoire, been playing on the 2D space for too long.

Anyway don’t forget to give the game a try from here!