Android port

But Andoird port is a fork, NOT our project. As far as I know, no team member has even Android device. In fact entire thread is only about that.

then release your official vcmi for android put it on market for 5$ or more for one copy :-> no one in team,then friends have android phones :-> a damn if i have any programing skills :frowning:

Damn it! VCMI team even do not collect money from donations ! They think it’s more problem dividing the money fairly than the gaind would be … stop yelling about money it won’t help anything … VCMI team isn’t greedy and they have another aims - if you find a Dev with android device willing to help whole project, maybe it help a bit about android port…

Android port is stopped because the version pelya made is much diffferent than it then was VCMI and it still were buggy - even support for LINUX DEVICE is problematic for them if it is a phone with 800x480 resolution - leave Android port alone! And the main problem is there have to be somebody to test between releases on real target device - You need to convince at least 3 Android Devs to help VCMI project to have fair chance of Release version of VCMI for Android. And once it would be done they need at least 15 people to testplay the incomplete version to catch the bugs…

The whole aim of the project is support future mods - if you have been known how hard is core modding on ERA you would understand it. Once VCMI would reach version 1.0 and there would be official mod support for VCMI, the support for more town types or anything such complex would be (almost) trivial in VCMI and it took them about 3 years to add new town type to SoD/WoG and it still have hidden bugs (what could be other reasons for not supporting ERM on HoTA? The 3.59 alfa were supporting town partially but it frequently crashed on ERM and new town type interaction).

Bless the VCMI team! They took rational way of recreating mos of SoD engine in the time it could took with fiddling with original exe to add just one complex feature :smiley: - it may took even more time but we have Heroes3-compatible engine with complete source code -Yeah!

We have no right to complain about bugs in the port if VCMI itself is so buggy.

Hello sonyzz, welcome to the board.
I’m sorry but I don’t have good news — you should not expect to have a playable port of VCMI on Android soon.

At the moment our first task of uttermost importance is completing implementation of H3 mechanics and fixing bugs. We still lack of some features (campaigns, some spells, etc) and others need fixing or further development. As long as VCMI is incomplete and lacking in quality, there is no reason to play it on any device — Android, PC or whatnot. I think that Android port came too early. VCMI is just not complete enough to provide a pleasant entertainment.

Therefore even if I had an Android device, I probably wouldn’t use it to develop an Android port of VCMI and publish it. However, as soon as we get past the missing functionality milestone and move towards tweaking engine, providing modability, and so — then we will certainly support any endeavour to port VCMI to other platforms.

Please understand and thank you for interest in our project and feedback! :slight_smile:

Thank you for your continuous support :slight_smile:

Well I would happily play VCMI on my linux phone during bus travel… if only 800x480 resolution would be supported. Not having to get out the laptop in the bus to play homm3 is always a feature… and you would have one tester more. Could fullscreen scaling become a feature somehow during one of GUI rethinks? (we have at least 3 of them yet if I remember and we would have at least a few more :P). HD-Ready (1280x720) Tizen phone isn’t going to be soon in my pocket (Tizen is linux too or at least I heard so).

Well, that depends on how you count them. I’d say we are at third iteration.

  1. First GUI implemented for pregame (VCMI 0.2)
  2. Second GUI implemented for adventure map (and everything except of pregame).
    Full of multiple inheritance and methods listing which parts should be activated/deactivated/shown/deleted.
  3. Redesigned GUI — unified base class for GUI object, tree-like hierarchy so the controls know their children and can automatically handle their activation/etc.

Recently Ivan done quite a work on GUI but I wouldn’t call it a rethink. It’s rather finishing what I’ve left undone and making the whole system cleaner and more robust.

Naive implementation of scaling would be independent on GUI. If we did all the blitting onto helper surface and then downscale it and show on screen, it would be transparent for GUI. However I’m afraid that it would be too slow, especially if we talk about phones that can hardly handle VCMI (especially moving hero and battles are CPU-intensive). And it’s still probably not trivial enough to just check it out.

We’ll eventually have to implement hardware-accelerated drawing. It’ll solve issues with drawing efficiency and allow efficient scaling. But then — it’s a work for a longer perspective. Sorry. :frowning:
The good news is that all that GUI work should make eventual transition easier.

Most phones today have a gpu inside. Even the cheap via 88500 android tablets have a Mali GPU which should be able to scale a surface. So it wont take to much power from the cpu. How do you render currently? Directly to a framebuffer or are you using a double buffer?

Maybe you can render to texture and put it on a quad. Not sure if this would take a lot of overhead, since the quad scaling and displaying done by the gpu. Like compiz desktop in Linux.

Software mode only. No hardware acceleration at all.
Why? Some of H3 animations heavily rely on paletted images. Which no longer have hardware acceleration in modern GPU’s.
For example water animation on adventure map or border around monsters during battle. Rewriting this into GPU-compatible way requires time and skill.

And read last paragraph from Tow’s post once more:

And by the way:

For example to do this:
dl.dropbox.com/u/22372764/vcmi/ … ooters.png
It took HoTA team several years to implement features like this.
And it took me half an hour to do same in VCMI…

Actually i think one of the things noone mentions is that h3 was done for using it with mouse. Touch interface needs adjustments to make the game enjoyable and easy to use as with mouse. Those will.be harder to do then porting the code.

As for resolution i am posting this from.android device that has 1280x800 and i think such high res are becoming a standard for such devices so imho soon 800x480 will be minority.

My 600Mhz ARM one-core processor, easilly handles games like doom, wolfenstein, duke nukem and hexen, provided the engine is comiled natively, and with latest setting it overclocks to 900Mhz on demand (on N900s CPU have good margin for OC).
Sure CPU related blitting is a problem, since dosbox here chocked on Titus the Fox ingame and once double size scaling by CPU is disabled and naive GPU accelerated scaling (overlay mode in SDL) is enabled it got so much boost it even not chockes on Another World’s intro video (DosBox is DOS PC emulator so it handles much less than phone using linux itself).

I know that pixel by pixel blitting of DEF or mixed pallette images couldn’t be helped much, but I’m sure blitting whole surfaces using default SDL blitting API would be accelerated if only proper mode would be checked on SDL init. Of course proper GPU accelerating would need a bit more hassle but there are easy steps. I know just checking directx_fullscreen mode on allegro have increased FPS substantially over standard fullscreen mode with no altering the code (allegro blit functions and surfaces are automatically accelerated if mode allows and applicable elsewere).
I remember SDL hanged before on N900s on just overlay (the most primitive accelerated mode) but it’s ages from them and it’s fixed and I’m sure it would handle much more via native SDL support.
I suggest making configuration file beeing able to choose mode in which SDL inits (current compiled DosBox seems able to do only “surface” and “overlay”, but on PC it allowed much more and I am sure it uses SDL), and choose hardware resolution as different than software one (for SDL apply scaling), which would at least allow accelerated scaling from game buffer to screen. (HW Res have to be 800x480 on fullscreen but software one can be virtually anything provided at least “overlay” is checked in SDL init).
Go with this and I can check if it is enough for me to play fluently, if it fail I (and all N900s owners) would be able at least play current vcmi version at all (currently we have only fheroes2, a heroes2 clone, and non-functional old version of vcmi).
If there’s not much volounteers I may try to write a patch but my allegro experience is small to medium and SDL one is virtually non-existent.

majaczek, If you write a continuation of the game port to Android, you will receive recognition from many gamers, and from me personally, I hope you all will)))

After my Moto Mt870 install VCMI v0.85.apk, Heroes 3 can work, playing the game is no problem,but when you save and load the game data,the App will exit automatically. So Pls you solve the problem and let the players enjoy the game on Andriod system.

Can Moto Mt870 enjoy VCMI 0.89? and can you offer a VCMI v0.89.apk to download?

Many Thanks!!!

no they cannot. android port is old unfinished and made by a developer that is not active on it anymore.

visit android topic for details but the short version is android port is not supportet discontinued and unofficial.

Sorry for misunderstanding, but N900 doesn’t natively run Android (it runs a linux called Maemo, but Nitdroid, a homebrew version of Android for NIT devices can be installed as secodary system via multiboot).

I’m only pointing my phone should be able to run VCMI despite having fairly weak electronics. It’s already Linux so it would be ale to run VCMI now (after recompile - PC is x86 and Smartphones are generally ARM) if it only were true that VCMI can un on 800x480 resolution (phone native one). I’m intrested in helping doing the scaling for small screens and pointing a bit how to use SDL (which is a thing giving VCMI graphics, animation and sound display) to less waste resources. Of course more substantial changes to UI are needed to be able use one button mouse (which touchscreen technically is) and use more effcient small screen on phone-sized devices rather than tablets.

VCMI already run on WIN on PC and linuxes on PC and SPARC, so I was still refering to main VCMI code while obviously stating problems on mobile devices. Android is a bit of another story since this would be third family of systems for VCMI (Android is NOT a linux, only parts of kernel are common). Pelya did more a hack than a valid port (the game runs but is far from compatible with main release) so code were not assimilated to actual project and Pelya left the VCMI when it happened a bit too hard for him and pointed VCMI forum for promotion/advert but caused more harm than heal. I fear the porting to Android or rather giving support to trunk is to be done completely redone, and is hard to do without coders and testers on this platform. I may donor for testing VCMI on Android as far NITDROID is compatible with original ANDROID, but I have completely no reason to learn and write code specifically for Android. Anyway I would help a bit on testing and coding for mobile devices so I come to speak in this topic. I think the Android support will come after general mobile devices support and my phone still run linux family system with family beeing supported officially by trunk (main code branch) of VCMI and I am not the saviour for pilgrims from Android app store. The other problem the Android is the system family designed to waste hardware resources (Google wanted it to run on any device so hard, that it ruined life of phone hardware producers since they have to sell high-end hardware in middle class phones, and I would argue if it is actually true Android beeing a SMARTPHONE SYSTEM) so despite my hardware would support VCMI you running Android would rather require device which is hardware-wise two classes higher.

Once leaving for a bit hardware problems imagine you have written a game for DOS while no thinking about use of another systems, and then want to support linux for the game. Porting to Android/Supporting it properly would be similairly hard. And now know that even using emulation miracles like wine (which eat your resources but generally allows run windows programs under linux), linux cannot even support SOME of WoG versions (crashes on run while many games from WIN run generallly fine). I can help a bit on support for mobile devices but Android is not my part of swamp. If you choose new phone with some linux (comming Tizen is going to be classical linux) you may be able to run VCMI on phone a few years earlier than sticking to Android. I foresee that Android devices would eventually die as a line but some non-android devices would be able to run some already done programs dedicated for android (the move of RIM were very smart, I hope Tizen would also feature Android Virtual Machine - VM beeing required is why ANDROPHONES are more FeaturePhones than SmartPhones so they should still count as refined type of dumbphone).

Thanks!

But I had a try to download the VCMI 0.89 DATA for Linux to overcopy the Data of my game,the game can’t work,so can pls tell me where can go for help,thanks!

Thanks for your Pelya hard work!!!

Because heros 3 can work in xp system, so I think VCMI for xp is not obligatory,but VCMI for andriod system is Obligatory! It is only the way to run Heros 3 game on andriod system, so it is helpful and valuable for users!

I use VCMI 0.85.03(or 0.86.04) to run Heros 3 game on andriod, they work,the game sometime crashes and exit. I think it is no big deal for the funs of Heros 3, But Playing the game can NOT “Save” and “Load” the game data are a very big problem for us.

So Pls Pelya solve this problem for us and release the new VCMI.APK VERSION to download, Thanks a million!!!

Let me know if you release the new VCMI.APK VERSION,my email: [email protected],Thanks again!!!

well…

you can try e mailing payla as he is the one that made the port.

Quite suprisingly I got access to Android tablet today :). It looks like I’m going to be it’s only owner in the end.

It’s not like I know this system and I’m not going to develop any app for it anytime soon, but who knows :wink:

Hello!
Is it possible, to run VCMI on android using linux without any bug?
play.google.com/store/apps/deta … ploy&hl=hu

Performance would be a big problem i think.