June 28, 2013

RPGs on the Kindle Fire HD 8.9"

I've had a Kindle Fire HD 8.9" model for a few months now. I really like it. I am able to read email (personal and work) and set up calendar entries (personal and work.) I can do some light web browsing, and check up on FaceBook with it.

Every once in a while there are deals on Apps. In a recent deal, I picked up the game CHAOS RINGS from the Amazon Appstore.

It is a pretty 3-D game with what look to be pre-rendered (or at least fixed camera position) backgrounds. The story is simple, and very Japanese. Combat is a JRPG style system where the two opposing forces line up and take turns attacking each other. I love turned based combat, so that is a bonus in my book, although I prefer games that blend strategic with tactical combat like the old Gold Box games, or Infinity Engine games. Still, this game is very easy to pick up for a few minutes, grind out a few battles, and put back down. They have a few puzzle stages that have all been variations on a theme (sliding block puzzles, teleporting block puzzles, things like that) but they have all been fairly easy. The maps on the overwold have so far been very simple, there is an automap, and zero need to take notes.

The economy seems pretty poorly balanced to me. The only thing I think you need gold for is to buy keys to open locked chests, and at this point I have more gold than I know what to do with. You can buy weapons and armor (as well as "gems" and items) but for everything except the item, there is a linear progression in power and zero choice involved. I either find something better than what is for sale in the dungeons, or I buy the best that is available (it hardly makes a dent in my amassed wealth) and that is it. The items can be somewhat useful, but so far the battles haven't been well tuned either and I think that giving up a turn to apply a buff just isn't worth it.

So I'm still going through this RPG, even though the story seems a bit simplistic, contrived, and the characters are annoying. It is a fun diversion.

GemRB and Infinity Engine Games



The other thing I came across recently is GemRB. GemRB is a "Game Engine Made for pre-Rendered Backgrounds" that is an implementation of the Infinity Engine that powered the BioWare and Black Isle Studios RPGs (Baldur's Gate, Planescape: Torment, Icewind Dale, etc.)

I had known about GemRB for a while, but since I heard that Planescape: Torment wasn't really playable in the current build, didn't go to too much effort to try it out. The other day though, Good Old Games had a D&D bundle for a ridiculous price which included six or seven infinity engine games for like $20. So I bought it, and then started to play around with getting it to run on my Kindle Fire HD 8.9".

First off, I basically followed this forum thread on how to set up GemRB for Android. I ran into a few problems, but not too many.

First, you have to install the game on windows. That went well. Then, you have to decide what resolution you want to play at. There are mods that modify the game engine and data files to allow resolutions that were not supported at the time the game was written. In my case, I thought I would try out 1920x1200, which is the native panel resolution on the Kindle Fire HD 8.9".

That didn't work out so well; I was able to play the game, but the controls were so tiny that I had a real problem reading text and hitting controls.

I then re-sized the game using the tweaks and fix packs and the widescreen mod. There is an option to install for GemRB, which I did. I changed the resolution to half the native panel resolution, so 960x600. The controls are still a bit too small, but they are at least mostly reliable. Text is still smaller than I would like, and a bit hard to read due to the raster fonts being scaled.

It turns out that GemRB supports TTF fonts, and people have been able to get that to work on the android version so I'm going to look at that next.

I wanted to find out what fonts are already on my system (so maybe I can just set the fontpath to that), so I started up an ADB shell session. It looks like the Kindle Fire HD 8.9" (first generation) fonts are stored in /system/fonts/, and the following are available:


AndroidClock.ttf
AndroidClock_Highlight.ttf
AndroidClock_Solid.ttf
Baskerville-Bold.ttf
Baskerville-BoldItalic.ttf
Baskerville-Italic.ttf
Baskerville.ttf
Caecilia-Bold.ttf
Caecilia-BoldItalic.ttf
Caecilia-Italic.ttf
Caecilia.ttf
Clockopia.ttf
Code2000.ttf
DroidNaskh-Regular.ttf
DroidSans-Bold.ttf
DroidSans.ttf
DroidSansArmenian.ttf
DroidSansEthiopic-Regular.ttf
DroidSansFallback.ttf
DroidSansGeorgian.ttf
DroidSansHebrew-Bold.ttf
DroidSansHebrew-Regular.ttf
DroidSansMono.ttf
DroidSansThai.ttf
DroidSerif-Bold.ttf
DroidSerif-BoldItalic.ttf
DroidSerif-Italic.ttf
DroidSerif-Regular.ttf
Georgia-Bold.ttf
Georgia-BoldItalic.ttf
Georgia-Italic.ttf
Georgia.ttf
HYGothicMedium.ttf
HYMyeongJoMedium.ttf
Helvetica-Bold.ttf
Helvetica-BoldItalic.ttf
Helvetica-Italic.ttf
Helvetica-Light.ttf
Helvetica-Medium.ttf
Helvetica.ttf
Lohit-Bengali.ttf
Lohit-Devanagari.ttf
Lohit-Tamil.ttf
LucidaConsole.ttf
LucidaSansWGL-Bold.ttf
LucidaSansWGL-BoldItalic.ttf
LucidaSansWGL-Italic.ttf
LucidaSansWGL.ttf
MHeiM-Big5HKSCS_E.ttf
MTChineseSurrogates.ttf
MYingHeiSMedium.ttf
Palatino-Bold.ttf
Palatino-BoldItalic.ttf
Palatino-Italic.ttf
Palatino.ttf
Roboto-Bold.ttf
Roboto-BoldItalic.ttf
Roboto-Italic.ttf
Roboto-Regular.ttf
STBShusongRegular.ttf
STKaiTi.ttf
TBGothicBold_213.ttf
TBGothicMed_213.ttf
TBMinchoBold_213.ttf
TBMinchoMedium_213.ttf
Trebuc-Bold.ttf
Trebuc-BoldItalic.ttf
Trebuc-Italic.ttf
Trebuc.ttf
Verdana-Bold.ttf
Verdana-BoldItalic.ttf
Verdana-Italic.ttf
Verdana.ttf


I think I'll try Droid Serif Regular.

In the GemRB.cfg file, which is /sdcaard/Android/data/net.sourceforge.gemrb/files/GemRB.cfg, I had to edit it and add in

CustomFontPath=/system/fonts/


The thread I linked to says to edit the override/pst/fonts.2da file, but that file did not exist. Knowing how these things sometimes work, I copied the file /sdcard/Android/data/net.sourceforge.gemrb/files/unhardcoded/pst/fonts.2da over to /sdcaard/Android/data/net.sourceforge.gemrb/files/override/pst/fonts.2da and edited that to include the DroidSans-Regular file.

Unfortunately, that didn't work. My fonts.2da file was seemingly deleted on program launch? I came across a message suggesting that the GemRB binary directory might be getting unpacked on launch, but that you could put the fonts.2da file in the game's override directory, so I added it and modified it in the /sdcard/gemrb/pst/override/ directory. That caused the program not to be able to launch, and the log file revealed that it couldn't find the font DroidSerif. It turns out that I had a space like: "DroidSerif -Regular" so that is not going to work. After fixing it, it worked! But a lot of the text was too big at 24 point... And when I tried to talk to someone the game crashed. Setting the size back to 14 for two of the entries seemed to fix it. Not bad. Not great, but not bad.



Comments

Provide your email address when commenting and Gravatar will provide general portable avatars, and if you haven't signed up with them, a cute procedural avatar with their implementation of Shamus Young's Wavatars.

Comments have now been turned off for this post