[1GAM-Jun] 2 Wet 2 Furious: Progress Log #1

The guy who came up with the title is simply genius (and no, it’s not me)
One Game A Month

Hello again with me in another progress log for my OneGameAMonth entry. In case you don’t know, OneGameAMonth is a community that encourages people to create one game every month. This series of progress log will detail my OneGameAMonth entry for the month of June, and if you’re interested in my past endeavour, feel free to check out the previous logs here.

Some of you may wonder, what happened to my May entry? After all, on the last log I said that I’m gonna work on it some more. Well, there isn’t any need to worry, that is still the plan. However, the end of June is getting closer, so I decided to postpone the May entry for a bit and start working on my June one.

Fortunately, like last month, I’m not doing this entry by myself. A friend of mine has just finished a rather large game and is now hoping to increase his mastery of Unity3D. Well, OneGameAMonth seems like a perfect fit for it, so he decided to help me with my entry. At the moment he has some other project to work on though, so who knows how much he’ll be able to help.

Unity3D

Wait, did I just mention Unity3D? Yep, this month my tool of choice will once again be Unity3D. Unlike my February entry though (which also uses Unity3D), my entry this time will be a simple 2D game. So, to ease the development process, we decided to use a third-party 2D framework for Unity3D.

To my surprises, almost all of the available 2D frameworks for Unity3D are paid ones. Geez, I’m not planning to go commercial with these games, there’s no way I’m gonna pay. Fortunately, one of them, Futile, is not just free but also open source, so that’s what we decided to go with.

And besides, my Twitter timeline has been full of praises (mainly from the NimbleBit guys) for Futile, so I’m also kinda curious about it. Well, how is Futile, then?

I’ve created a really simple prototype using Futile, and so far I found myself really liking the framework. Mind you, Futile is very code-centric and doesn’t use a lot of Unity3D editor integration, but that’s kinda the point. With the inflexible Unity3D I feel like I’m the one being controlled, whereas with Futile I feel like I’m the one actually in control.

Hell, Futile is so flexible that right now the way I’m using it is really similar with the way I’m using my own game framework. Even now I’m kinda tempted to port my framework to Unity3D using Futile =/

Anyway, enough talk about Futile (for now), what about the game itself?

Game concept

Pictured above is the basic concept of the game. And as you may have guessed, it’s a game about water skiing, hence the title “2 Wet 2 Furious” =D

The game is simple, the player has to go through a water ski course while dodging various obstacles. Every few meters or so the player will encounter a ramp which will let the player enter the trick mode and increase his score by doing tricks. Also, the score he gets will be multiplied by how much speed he has accumulated during his run in the course. Well, that’s the game in a nutshell, and it will end if the player hits too many obstacle.

To be honest, originally the game is about skiing instead of water skiing. But then I realized that winter isn’t going to come any time soon and the control scheme I thought of actually makes sense for water ski, so I modified the theme a bit. Not to mention that a game about water skiing is much more rarer than a game about skiing.

I actually came up with the original idea several months ago. At that time though, I was in the middle of working on my April entry and something else also came up in the next month, so I only got to work on this idea now. Fortunately I have recorded a detailed note about the game idea on Evernote, so now I don’t need to worry about forgetting some crucial gameplay element.

Anyway, it’s the last week of June, how far has the development progressed?

Prototype screenshot

Well, not far. We have just started working on it pretty recently after all.

I managed to work my way through Futile pretty quickly and came up with a really simple prototype, which can be seen above. It’s pretty basic at this point, just a couple of scrolling sprites (no collision detection yet) with a character that you can control. Not much, but enough to imagine how the game would feel.

The most surprising part is probably how much I dig the control scheme. Basically, you don’t control the character directly but instead you control the boat that’s pulling the character by dragging your finger around. If you thought about it, that kind of control scheme isn’t very precise, but that’s exactly why it provides a much more hectic and intense game experience.

The control scheme is so fun that I’m contemplating to remove the trick part and just focus on the obstacle-dodging part. To be honest, the original idea hangs on the concept of rewarding player with the trick stuff, so I’m not so sure about eliminating it yet. However, the end of June is approaching fast, so simplifying the game is probably a good idea.

Well, there’s definitely still a lot of things to work on, wish us luck!

[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.

Screenshot

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-Apr] Black Holes iOS Log

May be I should have gone with “Black Holes iLog” instead?
Black HolesWelcome to the progress log for my OneGameAMonth entry for April! As usual, it’s late, but at least it’s only late by 7 days.

You may have noticed that there’s no numbering in the post title, unlike the previous logs where I numbered my post with Log #1, Log #2, and so on. Don’t worry, that just means this log is going to cover everything I did in April, so there’s no need for a second or third log.

Wait, a single post for an entire month of work? How could that be?

Well, my entry for April is a bit unusual, you see. Instead of working on a brand new game, I simply ported one of my Android game, Black Holes, to the iOS platform. But that doesn’t mean I have it easy. In fact, I think this April entry is the one that requires the most work so far (not the most difficult work, mind you).

And since I’m just porting stuff, there isn’t a lot of design process happened. I don’t really like writing a lengthy, technical stuff either, so there isn’t really much I could write in the progress log. And with that in mind, I decided that a single log would be enough to cover the entire month.

To be honest, I’ve always wanted to have a game for Apple devices. Not because people said that’s where the money is, but because I want to know more about the iOS market, about the behavior of iOS users, about stuff that would affect my download count. And what would be a better way to learn about it other than to actually release a game on the App Store?

And since I did Black Holes purely using Android SDK, it is only fitting (or stupid?) to do Black Holes for iOS purely using iOS SDK and Objective-C as well.

Title screen on iPhone

So, how did the porting go?

Basically, I worked on it using a bottom-up approach. I started with porting a lot of the game base components, like images, file loading, and touches detection before moving to the more abstract stuff like game loop and resource management. Not surprisingly, the abstract stuff can be ported quite easily while the low-end stuff requires a bit more work (AKA googling).

Fortunately, despite the differences in both platform, I didn’t encounter anything too difficult. Two things surprise me though, one is the fact that iOS doesn’t seem to have a definite place to store game save data (whereas Android has SharedPreference). Another one is the fact that iOS has a really complete suite of audio processing. I mean, it has like 6 different classes just for handling audio.

Oh, and another thing that surprises me is the fact that file management on an Xcode project is a total nightmare. I keep having to create and recreate the project since moving stuff around often leads to things breaking down.

With all said and done, I finally managed to port the game and have it running on my iPod. I was fortunate since Black Holes is on the simple side and doesn’t utilize all the components my game framework has. Yeah, you guessed it, there are actually still tons of stuff not ported yet to iOS, most notably accelerometer input and scrollable item list.

Another major omission from the game’s (and framework’s) current state is the support for iPad. My game framework has been doing pretty well in handling multiple resolutions, but having two base resolutions is a whole different beast. And I’m not prepared for that.

Yet iOS developers have been dealing with that problem for years now. So yeah, I still need to research how other people are doing it before actually adding iPad support. Not to mention that I would need an actual iPad to test it, since the iPad simulator on Mac doesn’t seem to work for me.

Black Holes on iPhone

While I did say that the game has been successfully ported, it has not been released on the App Store yet.

As this post is written, I’m still struggling to finish up some administration stuff since I want to sell the game. I suppose I can just publish the game for free, but I kinda want to see how a paid game would fare and how the market would react when the game becomes free. After all, I did this for the sake of learning more about the market.

All in all, I’m quite satisfied with how the port turns out. Haven’t test it thoroughly yet, but so far I haven’t see any lag or memory leaks. That said, there are some rough edges since the size isn’t exactly optimized for iPhone’s resolution. But eh, I can live with that.

Oh, and speaking of which, my game and the framework it used is totally open sourced on GitHub (except for the music, that is). The plan is to have Black Holes as an example of how the framework can be used since its quite complex but still pretty simple. And since the game is also available on Android, it would easily shows how the framework can be used for multiple platforms. So yeah, feel free to check it out.

Phew, and with this, I’ve paid off all my progress log writing debt. We’re going back to our regular schedule, people!

So, what’s coming up this May? Well, you’ll have to see for yourself in the May progress log, which hopefully doesn’t take too long to be posted. Suffice to say, it would be totally different from my previous OneGameAMonth entries. This time we’re going to focus our effort on a rather unusual aspect of a game.

Wait, did I just say “we”? Indeed, for my May entry I’ll be teaming up with a friend to help me finish this massive undertaking. And when I asked for help from other people, you know it’s going to be something exciting or something big, or may be even both!

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

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