VCMI for Android

Added updated version. … -debug.apk … -debug.apk

  • black screen on game start should be fixed,
  • slightly better error handling in launcher (saving launcher logs + crashes in /cache/VCMI_launcher.log; also hopefully less crashes),
  • added ability to enable/disable the mods and submods

I’m not entirely sure why this crash happened (looks like a problem in android support libs), but I think I might’ve fixed it in today’s version.

S2 log – I’m not sure how exactly resource loading works in vcmi, but it looks like it couldn’t find some files during init (multiple entries with “File is not a valid JSON file! At line 1, position 0 error: File is empty”).
P9 log – hard to say what happens, because there are no errors in the logs… the last line in the client log is “Entering virtual void VCAI::loadGame” so I suspect there was some deserialization crash in AI. Was this save created in android version or copied from pc?

Probably. If you have full hd phone then everything is upscaled almost 2x.

Actually, I managed to do this few times (during normal game start, not loading). I have no idea why this happens, but I’d say this is SDL problem. The game gets “stuck” on loading screen – it looks like the whole game initialization succeeded, but the screen doesn’t refresh anymore (nothing in logs). Minimizing the game “helps”, because it forces SDL to recreate the screen, but it still doesn’t refresh.

Could this happen due to fullscreen enable / disable code being super hacky?
Other than that I don’t know much of our SDL code.

I download link2, tried install but “application dont instal”, after I download apk link 1, and game instal. Ok, I run game! Nice. start map and in options i shoose speed max, after i srart move hero game freeze. and sound was us hero move infinity.

Ok, close game, try start other map - can’t start.

go to load game and try load save “golem aplenty” game not respond.

try start other map - dont work.

and else, when I go “new game” buttok “back” dont work for me.

delete config - game run.

ok start arrogance kill unit, win battle and game close

*** and if I visit tavern game close too
VCMI_Server_log.txt (201 KB)
VCMI_Client_log.txt (346 KB)

Hmm well isn’t that funny.
New version API 21 doesn’t start at all, however API 16 goes fine, but again loading game is that suspected-to-be-SDL-fault quasi-hanging. Starting new game now does the same, quasi-hang which can be step-by-step moved by method of minimize-maximize application.
That’s for Huawei P9

As for S2+ API 16 - cuz API 21 I’m honestly not sure if it’s viable here to try - starts launcher fine, by launching the game itself goes crash with that “Unfortunatelly the application VCMI was halted.” or sometimes complete crash of the launcher.

I have checked the data files, they are 100% certain to be just RoE, AB, SoD and nothing else.

Ah yes I’ve almost forgot:

  • The save was created by VCMI on the Android, no copying saves from PC involved.
  • I can see the graphics just fine when it’s in game, just the screenshot went a bit blurry, but I guess it’s not priority for the moment(?) :stuck_out_tongue:

vcmi-api21-20161127-debug.apk - Does not installing. Android 5.0.1

I didn’t really have time recently, so only a quick update this time…

@ Broken api21 package: okaaay, it’s broken and this was a problem on my side (actually, that’s due to some broken/undocumented feature of the build system). Hopefully this package is better.

@ Hang during map start/load: I managed to track this one down. It was occurring due to some weird interaction between jni->java communication and SDL events (I think that SDL hook to java was getting broken when client called jni method to start the server; after that, SDL_PollEvents froze the main SDL loop).

(additionally some better logging in launcher) … -debug.apk … -debug.apk

I haven’t checked other problems yet… I probably won’t be able to do anything for the next few+ days.

Yay new build to test!
I will check it up in a minute and see if something new is happening or not.
Also I’d like to clarify something, I made a mistake with Android version on my S2+ it’s not 5.5 but 5.1 sorry for the trouble. Also I’m working on updating it to 6.0 because why not, I hope it will still be viable testing thingie.
I will install new build for now on P9 and check the typical stuff…aaand write back asap.

Interesting O_O
Installed API 21 edition on Huawei P9, tried loading the game and…it loaded O_O
I know I know, one load may be lucky for device or whatnot (of course I believe in the leading coder that it’s not random luck but true skill of fixing! :3).
The remaining thing to check is the fight…now to find something to fight.

Good news! After the battle it didn’t crash either!
Good job mister, it’s working better and better :slight_smile:
The intro is still laggy when trying to skip but meh with it, it’s just intro.
The walking on the map is choppy as hell but it works at least so I’m not complaining.
The one thing I want to ask is how to do “right-click” here? I want to check sometimes stuff like “what does that magical spoon do?” and I can’t find any way for it.
That’s for Huawei P9 (EMUI Android 6.0 as a reminder).
I will now proceed with Samsung Galaxy S2+ (RR Android 5.1 as a reminder) and see if something is happening.

Okay Samsung Galaxy S2+ (still 5.1) now runs VCMI both API 16 and API 21 to the point of launcher but launching the game itself still fails for some reason, I will check if there are any logs later.
I have managed to third week or so on Huawei P9 without serious problems, it looks like this:

  • Moving on the world map is a bit choppy, but besides that, no problems found.
  • Clicking certain point is sometimes tricky but still MUCH better and easier than “official HD edition” (pfffttt)
  • The battle is another story, it goes smoothly, too smothly, when let’s say Djins casts a spell on ally, I need to either remember by the sound what spell it is or check the battle log what has been cast. Overally I think all spells are being “executed” faster than I can say “Magic Missile!”. A little problematic but I can manage for now.
  • Ranged attacks in battle done well, Ubisoft can’t into this, pfeheh (altough I’m yet to check Magogs or whatever the name in english).
  • The right click is impossible to do, sometimes it’s key to be able to do it so I would like to mention it officially as wanted :stuck_out_tongue:
  • Save/Load no problems for now.
  • Text boxes done well, I will add one as a proof later :slight_smile:
  • More info to come if I find something

I installed api 21 after api16 they run, but have same problems for me . after battle game just close. Quick on or off dont care.
(And 1 time battle just not started)
Still unplayeble(

I think its good idea if will possible send logs after crash or freeze. In auto mode.

I think that we should share ours Games’s Data files. Because we all are talking about different version of game.
I’m using 3in1 Game in English.

I~ think I have “Gold Edition” in PL language, the version I’m not sure, no patches have been applied on top of what said “Gold Edition” is.

It’s better to purchase GoG version of Heroes3 Complete and this version should be basic. … te_edition
Promotions of this title are set regullary!

That version also works badly same as mentioned mine version previously.

Hey, just got back to HoMM again.

Downloaded the 21 API version on my Asus Nexus (2013). And the game works just fine in terms of not crashing. But when using bad resolution (screen ratio) there are artifacts between the game screen itself and the edges of the screen. There should be placed some kind of static image. Gonna write after some time if it doesn’t crash after longer play :wink: .

I’m using the gog complete version with some update installed.

EDIT: So, after few weeks the game works without any problems. But performance needs a serious tweak. The flaw of performance is very noticeable while hero walk and gathering (fade effect). Loading takes an eternity (H3 itself and game). And when playing with 6 AI players their turns take takes totally something over minute or two.

Is there any way to use the mods for vcmi?

You must edit modSetting.json file and there enable/disable mods (I guess).

I read the post about Android and download the code of xyz from git. i am NEW developer of android. do we have document about how to build vcmi on Android please? i tried to build IT with vs2015 android,but failed.

does anyone can add the guidance to wiki please?

Sooo I’m still alive and do plan to continue working on this, but not sure when (probably not very soon).

This is the same behaviour as desktop version, but it’s less noticeable because it loads much quicker. Basically app tries to load all data during intro on a separate thread, but when you skip intro, the main thread waits for the loading so it gets blocked until everything is loaded. This should be changed but it’s more on vcmi-side than android fix.

I didn’t check this, but I can confirm that movement animations don’t really work for me neither. From what I remember, heroes movement looks very complex and I don’t really want to mess with it. :wink:

Do you know if this was somehow solved in xyz’s version? Probably the most “intuitive” solution would be to use long-press as right click. This would require to add “proper” touch controls support. It would probably require a lot of changes in vcmi, because application assumes mouse input everywhere.
The only easy way to implement it that I can see atm is to add an ui element outside of the game that would cause next press to be treated as right-click. It definitely would be very inconvenient to use.

Pinch-to-zoom adventure map would be cool, but again, needs proper touch controls support. And possibly also changes to map drawing (as far as I remember, scaled drawing was much slower in SDL).

Didn’t notice it on my side… I’m not sure if I can do anything there, because the whole surface is managed by SDL. Might be worth to check it.

After the app initializes the first time, you can put the mods in /Mods (the same folder where you put game data), the start the launcher and you should be able to turn them on/off in the mods section.

As far as I remember in some early VCMI Android version I tried to play on a tablet right click was taken care of by SDL Android port setup. So right click should be taken care of by SDL itself and doesn’t need extra coding.

I think by default it worked as double touch= right click but I quickly changed it to more preferable hold volume up + touch = right click.

I didn’t meant exactly artifacts but it’s part of the game screen that disturbs a bit. And when I click the lower half on the left flickers. Attached some screenshota. The game runs in 800:600.

Oh~! Sneaky 3DO, pretending it’s just an intro :stuck_out_tongue:
Well if it’s not bug per se, I have no objections here.

No objections here either, they work at least, so let’s not shout too much or they will get shy and stop working cough XD

Unfortunatelly I don’t know how it was done in xyz’s version. I don’t know how it looks in code-side but if I may give some ideas:

  • Another button like you mentioned, a fine idea, maybe inconvenient but better than nothing.
  • Double tap, not sure if it wouldn’t mess with normal controls, sometimes in Android games it works, sometimes not.
  • Two-finger tap, that could be very tricky, but another possibility.
  • A joke idea, code the mouse through USB, aka Smartphone <-> USB-special-cable-plug <-> USB Mouse, in theory it would work, but come on xD
    Other than that, no objections here.

Now I think about it, what if half of the problems are resolution-induced stuff? hmmm…

Oh ye~! That would be nice too, Vol Up/Down and stuff…