Games I’ve Been Playing: Hearthstone

Go, Blue Eyes White Dragon! …oops, wrong game.
Hearthstone
Sign up for the beta here.
(Open beta coming in January 2014!)
Or watch the game trailer here.

Hello there, it’s back with me on another “Games I’ve Been Playing” post, and surprise, surprise, this time it’s not another mobile game! Instead, this time we’ll be talking about the latest PC game from Blizzard, Hearthstone. I got the beta key around 2-3 weeks ago and have been playing it daily ever since. I suppose that’s enough time for me to form up a complete opinion about the game, so here we are.

And whoa, I just realized that I got the Hearthstone beta access on my birthday. Thanks again, Blizzard!

Anyway, before we go further, let me just say that Blizzard has missed a really big opportunity by not calling the game Cardcraft. Hell, they could even use Cards of Warcraft as the title if they want to keep the Warcraft branding. But nope, they went for Hearthstone: Heroes of Warcraft instead.

Okay, enough of me rambling, time to get on with the show!
To get a quick overview of the game, just watch a round of Hearthstone here.

A Hearthstone match

So, what is Hearthstone? Hearthstone, in short, is a digital collectible card game featuring the universe of Warcraft. On Hearthstone, 2 players will engage in a turn-based match where they use their own deck of cards to defeat their opponent. The game plays out pretty much like Yu-Gi-Oh! or Magic: The Gathering where players can use their cards to summon minions and activate spells to try reducing the opponent’s health to 0.

Well, what’s so unique about Hearthstone then?

At the core of Hearthstone lies the mana system. It is the system that governs everything on the game. Each player starts a match with 1 mana, limiting the number of cards they can use early since every card costs some amount of mana. However, as the match progresses, the mana pool will slowly increase, allowing more devastating cards to be used as the match gets closer to its end.

And that’s all there is to it for the mana system. Sounds too simple, you say? Well, that’s the true brilliance of the mana system, because beyond its simplicity (which makes the game accessible to everyone), lies a deep strategical complexity.

For one, the mana system makes balancing your deck vital for winning since you need to excel even when you’re constrained by your mana limit. It also makes mana management during the game itself important, because losing your 5-mana card to an opponent’s 2-mana card is just a no go. Not to mention that it makes the game much more fast-paced, most of the the match I played last for just 10-15 minutes.

Seriously, whoever came up with the mana system deserves a Nobel prize.

Hearthstone heroes

Another defining feature of the game is the hero that you must choose to represent you during a match. Each hero in Hearthstone grants you a special ability and access to cards unique to that hero. Because of that, the hero you choose will shape up your deck and your play style. For example, if you choose the Mage hero, your play style would revolve around pressuring your opponent by dealing damage with your spell cards.

Okay, even though the game is really fun, you would still need someone to be your opponent, right? Fortunately, Hearthstone includes a matchmaking system that could quickly find an opponent for you. And so far it has been doing pretty good, I have never failed to find a game no matter what time I’m playing. Not to mention that the system is quite fair too, I’ve never found myself playing against someone totally out of my league.

Once you’re in a match and having a good time though, you’ll be surprised to see that there’s no way to chat with your opponent. Somehow Blizzard has totally skimped on adding any kind of social features to Hearthstone. There’s no chat, there’s no lobby, and the only way to communicate is with some limited emotes. Sigh, sometime all I want to do is tell my foe “Crap, I’m screwed.”, yet the game provides no way to do that.

With other free to play games goes all out on their social aspect, it’s perplexing to see Blizzard simply ignores that subject.

Hearthstone card

It’s not just social where Hearthstone is lacking though. Being a casual and quick game, Hearthstone is perfectly suited for mobile gaming, yet Blizzard doesn’t seem to be interested on pursuing the mobile market. Sure, there is a plan to release the game on iPad, but I just can’t see iPad as a mobile device that can be used for playing on the go (though iPad Mini is close).

Well, apparently Blizzard just announced that Hearthstone is also going for iPhone and Android devices! While it won’t be arriving until at least second half of 2014, this is definitely great news for everybody who likes to play games on the go (or the toilet).

Anyway, after my first couple of rounds, I have a feeling that Hearthstone is going to be a game where I pour a lot of my time into. And my further experience with it seems to confirm that feeling. There certainly are issues (like the lack of chatting) that makes the game less than perfect. But Blizzard already get the hardest part, the core of the game, right, so I’m really hoping that they can fix those issues before the game is publicly released.

So what are you still doing here? Quick, go sign up for a beta!

A Thought on OUYA

OUYA: The console we need, but is it the console we deserve?
OUYAThe Indonesian version of this post could be found on GamesInAsia.

Note: This post is originally written on late July 2013, so some stuff might have changed since then. My overall opinion is still the same though.

Ah, the OUYA. The $99 game console that plays mobile game on your TV. The pioneer of the age of the microconsole. The proof that crowdfunding is the real deal.

I was sold on the idea of the OUYA right after I watched their introduction video. I believed that the console industry is in dire need of a disruption and I wanted to participate in such effort, so I decided to back it with my $99.

And apparently I was backer number 290! Being an early backer doesn’t mean I’ll get the console early unfortunately. In fact, I only got the console much later, around early June 2013. I’m not complaining though, being able to create and ship those products without much delay is quite an achievement already.

OUYA Console

So, how is it?

Overall, I really like it. I already have tons of fun playing several games on it, and while using it, there are some parts that feel like they’re the future. Looking back, I think the OUYA has delivered exactly what it promised months ago, which is bringing mobile games to the big screen.

Anyway, the OUYA is a multi-faceted product, so there isn’t any easy way to do a thorough judgement on it. However, I believe that there are only 3 aspects that we need to look at to get a complete impression of the OUYA. These aspects are the hardware, the software, and the ecosystem, so let’s check them out one by one.

OUYA Thank you

The OUYA is a physical product first and foremost, so let’s talk about the hardware first.

First, let me remind you again that OUYA is a $99 game console. At that price point, I knew the hardware wouldn’t be anywhere near Apple level, so I set my expectation real low. I seriously expected the console to feel all light and plasticky, just like a toy.

So when I finally got my hands on it, I am very pleased to find out that’s not the case at all. The console as a whole feels very solid and surprisingly quite weighty (though it’s still light enough to be carried around easily). The ports on the console are quite clear too, I found myself being able to setup the whole thing painlessly using the adapter and HDMI cable bundled with the OUYA.

The console is only half part of the story though, after all, most interaction with the device will be using the controller. Like with the console, I don’t have any problem with how the controller feels. It feels very good when I gripped it with my hands, and the joysticks also responded to my input with a nice tactile feeling.

It’s not like the controller is flawless though. My main gripe with it lies on the shoulder buttons (the L-R triggers on Playstation controller). Pressing the top triggers isn’t satisfying enough, and the bottom triggers are really hard to press. The same goes with the d-pad, it could use more tactile feedback since currently pressing it doesn’t feel as good as it should be.

One last thing. While the controller connects to the console using bluetooth connection, I don’t feel any latency issue when I use it. I have heard that some people are complaining about the latency, however, that’s not my experience at all.

OUYA Interface

While it’s true that OUYA is a physical product, we all have learned that software can make or break a product. Unfortunately, as of now, software is the weakest aspect of OUYA.

And no, the problem isn’t about the performance. It’s about the missing features. Guess what I did when I first got into the OUYA menu. Of course it’s to download various interesting-looking games. So try to imagine my surprise when I realized there’s no place to check my games download queue. Or when I realised I couldn’t easily check how much available storage I have left.

There’s also the problem that the navigation on OUYA isn’t optimized for the controller. For example, on the game description page, to browse the screenshots users have to press up to highlight the screenshots and then scroll left and right with the joystick. It’s like they forget that the controller has shoulder buttons that can be used to choose left and right easily.

Unlike hardware though, software can evolve over time. So it is highly possible that one day the OUYA will get a brand new interface from a software update. I just hoped that the OUYA guys focused on fixing the interface first before adding more features such as leader boards and social stuff.

Then again, iTunes interface is horrible yet people still use it because of all the contents, so…

OUYA Games

Since OUYA is a game console, it is important that we also talk about what games are available and what games are good on the OUYA. And more importantly, how is the experience of gaming on the OUYA?

First off, let me just say that the OUYA guys got the model right, which is Free to Try. Having an (almost) instant access to hundreds of games for your console is a real blast. Being able to easily browse available games and then trying it out right away is exactly the kind of experience that I want on my game console. Some games do take the free concept to the extreme, for example, League of Evil actually offers the first 50 levels or so for free!

Speaking of League of Evil, I’ve actually played the sequel a bit on my iPod. I didn’t get very far though, playing a fast-paced platformer on a touchscreen just doesn’t feel good. However, playing it on the OUYA with a real game controller gives the total opposite experience. It feels… just right, like the game is always meant to be played with a controller.

Seriously, the tactile feedback on your hand feels unbelievably good. I’m finally able to double-jump, run, dash with precision and actually feeling awesome doing it. Man, how I wish League of Evil 2 and 3 to be released on the OUYA as well. Now I know I won’t be going back to play another platformer on a touchscreen device.

OUYA League of Evil

Seeing how League of Evil is a great game on OUYA, is it safe to say that platformers are a good fit for the OUYA? Based on some other platformers I have tried like Gunslugs and Sonic 4, I think it’s safe to think so. Even runner-platformer like Wind-Up Knight and Vector feels really good when played on the OUYA.

Actually, not just platformers, any game that requires a lot of movement will feel better when played on the OUYA. For example, moving and aiming in the touchscreen version of Shadow Gun feels very awkward, but doing the same thing using a controller feels much more natural. Even Final Fantasy III feels better when played on the OUYA since the character need to travel a lot.

And man, I’ve gotta say, playing Final Fantasy III on the OUYA really takes me back to the PSX era (and BTW, the PSX emulator on the OUYA is really, really good, even better than the one on the PC).

Speaking of Final Fantasy III, the game costs around $15, just like its counterpart in Google Play. And this is my biggest peeve with the OUYA ecosystem, I have already bought a Final Fantasy III from Google Play! Not just FFIII, I have also bought Sonic 4, Vector, and a bunch of other games from outside the OUYA. Having to pay again for the same game really made me think twice about purchasing anything.

Yeah, I know that isn’t the OUYA guys fault, it still sucks though.

By the way, it’s kinda interesting that I haven’t met any game with in-app purchase for virtual currency or something similar.

OUYA Game: Ittle Dew

While we’re on that subject, let’s talk about the payment system for a bit. From my experience, the payment system on the OUYA is pretty painless, just like what you’d usually find on a mobile platform. The only problem is that OUYA asks for your credit card number right in the beginning when you first log in to the console. While it’s not a problem for me, I imagine it will trouble a lot of people with no credit card.

Though I have heard that you don’t actually need to put a correct card number on it, so it may not be that big of a problem.

Anyway, so far we have only covered games, but being an Android device, OUYA can also run other Android apps. During the two months I’ve been with my OUYA, I have watched movie, listened to music, browsed internet, and watched Youtube on the TV in my living room (now where’s that Twitter client for OUYA…). Sure, not all apps are available on the OUYA store, but OUYA is an open console, so all you really need to do is copy and install the app to the console.

And you know what’s crazy about being open? Earlier on this post I complained about OUYA’s interface, and guess what, someone has already made a custom launcher for the OUYA! Hell, that launcher is even more customizable with wallpaper, folders, and stuff. Maybe the OUYA team doesn’t need to build a better interface after all.

OUYA Baxy

Phew, we’ve finally reached the end of this long, long post regarding the OUYA. Well, to sum it all up, OUYA’s hardware is really nice, the software really needs more work, and there are already lots of games that could (and should) be played on the OUYA. I’d even say those games are worth the OUYA.

Should you get it? Well, if you have always longing to play smaller games with controller on a TV (just like I did), go get it. Otherwise, if you’re just some casual guy, go wait for the Apple or Google game console.

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.

Map

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?

Station

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