Thursday, February 20, 2014

Playing Android Games in Emulator - Review #01

Emulator: Genymotion v2.1.1 powered by Oracle VirtualBox v4.3.6
Virtual Device: Galaxy S2 - 4.1.1 - API 16 - 480x800

I can't imagine any persistent (read: long running) activities performed in android device other than gaming. Lame excuse? anyway... I'll separate the review in 2 sections; the first focuses on game-play while the 2nd on the more technical side.

Game Play

Guardian Cross - installed, doesn't work.
Clash of Three Kingdoms - installed, doesn't work; more on Technical Side below.Tower of Chaos - Game designers definitely think in different wavelength / channel. I don't even know how to play the game.
Castle Clash - Hang early on. Since the beginning of the game is weird, I don't have the urge to try it for the 2nd time (weird: I was forced to watch a raid for few minutes, and I was lost; I didn't even know whether I was the attacker or the defender). In the world with abundant options, if my interest is not piqued in the 1st minute, bye bye.
Hero Dream - It's a fun RPG game. The generous gifts and item drops easily rank first in any platforms. This factor should be able to retain beginners attention for 30 minutes, raising the probability of players' attachment.
Unfortunately, it hangs very frequently, beyond my level of tolerance.
Pet Alliance - A typical monster breeding game: fight, capture, train, evolve, arena, all the usual stuffs.
The smoothest game I tried thus far.
Devil Maker: Tokyo - A typical card battle game. The concept of level ups, evolution and equipment are not unique yet nicely refined here with strong emphasis on sacrifices; to enhance a card one would be forced to sacrifice lots and lots of other cards.
By the way, it hangs frequently. I can't put the entire blame to the game though. Simply getting the virtual device to run under Genymotion is quite a challenge.
Valkyrie Crusader - Another card battle game. No login required, account binding to device hardware. Once I realized another has played this game I decided not to mess with his/her save game.

Technical Side

Memory Leak

Pet Alliance - No noticeable problem - the game runs smoothly without noticeable degradation after extended play.
Devil Maker: Tokyo - Huge memory leak. The game slows down to a crawl after playing 3-15 minutes; especially after performing actions that require lots of scrolling/swiping. As the game becomes less responsive, swiping speed must be calibrated down to match the degradation. Once the slowness becomes unbearable, simply quit and re-run the game - it should run normally. Well, at least it seems to indicate that Java's garbage collector works.
The fact that swiping speed must be calibrated down led me to believe that Genymotion plays a role in slowdown symptoms. I drew a parallel to the game Myst. When my friend 1st played it from Windows 3.1, game speed would slowdown after some time. (Re-)run-quit cycle was a necessity. Once he tried it under Windows 95, however, the game ran smoothly. My conclusion: Myst developers made a mess that overwhelms Win3.1 yet manageable by Win95.

Network Requirement

Pet Alliance - light. Works even when persistent ping to google reveals gaping connection (Request timed out.) However, when network connection is lost halfway, it can't recover.
Devil Maker: Tokyo - heavy, not sure whether it's bandwidth or latency or both (though I suspect latency is the bigger issue here).
On the up-side, it handles network disruption. After certain (attempt) window is breached, it would prompt users about network issue. This exception handling is not perfect though, there were some occasions when the loading cursor kept on spinning even when network connection has been fully restored (solid responses from persistent ping, retrieving google page was instantaneous). It seems this issue is not exclusive to emulator. Someone gives affectionate nick "loading wheel of death".
Valkyrie Crusader - Every time there is network disruption, I would be kicked to the welcome screen. Better handling than Pet Alliance, but still annoying.
Granted, this issue is application specific rather than emulator's issue. Is there a way for the emulator to simulate network disruption? This would simplify developers effort to replicate the problem.

Screen Refresh Issue

This problem should be attributed to Genymotion; though I don't know how/why this 'feature' exists.
To replicate: simply start the virtual device and keep it in the background (obscured) while working on something else. After enough time (10 minutes?), come back to emulation window. The screen would be outdated. Tapping a button would yield no visible effect. Screen refresh can be forced by either moving the emulation window or by switching to another window then switch back.
A (much) faster way to replicate: lock window (Windows-L) then re-enter.

Lack of Support for Adobe AIR

Tried Clash of Three Kingdoms and was prompted with context3D not available! Possible reason: wrong renderMode or missing device support. Search results consistently points to Adobe AIR.

Account Binding to Device Hardware

Observation on Valkyrie Crusade let me to believe this application uses device hardware (mac address?) to identify client. There was no login and I saw some mail correspondences days before I installed this game.

Fail to Start Virtual Device

I can't see any pattern that leads to this problem, but I've experienced it often enough.
I've tried to check the logs but couldn't find anything that helps. Not that I expect much; this problem is unhandled exception and Qt (that used by Genymotion) doesn't rely on exception mechanism.
I also find no reliable pattern to recover from this problem; simply that it would work eventually if I persistently tried to play it.

Abrupt Closure

Similar to above, Genymotioin may close its virtual device window unexpectedly. In both cases virtual device would still be running under Oracle VirtualBox. I would have to go to VirtualBox to force its closure.

Conclusions

For Casual Users

If you have low tolerance to abrupt hangs (and possibly quit - re-run cycles - refers to Memory Leak above), this is not for you. You may want to check bluestack, though here and here mention that Guardian Cross doesn't work (yet).

For (would be) Developers

The Ups

  • Genymotion is faster than the official emulator provided in Android SDK. Much faster when compared to the SDK that I briefly tried 2 years ago.
  • Memory leak issue above can be considered as a 'feature'; if the circumstance manages to force developers to implement proper memory management.
  • Despite its shortcomings, it's definitely cheaper than investing in actual devices.
The Downs

  • Some (most?) may argue this is the nature of pure emulation rather than a flaw: It's not the ideal environment to test an application using Device Hardware Account Binding mechanism.
  • Lack of (out of the box) support to Adobe AIR limits its usage.
  • Reliability issues (memory leak and abrupt closure)  may lead to finger pointing / denial of responsibilities. When a problem occurs, the root may lay in the application or Genymotion or Oracle VirtualBox or combination of them.

1 comment:

  1. I would like to thank you for the efforts you have made in writing this article. I am hoping the same best work from you in the future as well.. android emulator for windows 8

    ReplyDelete