VCMI on Mobile Devices and related talk

[continuation to not make 3pages wide post]

but the problem with low memory and low cpu persists, so we have to think how to do things proper

i think we can have scaled blits and full image memory with static interfaces, but we need to consider what to do eg for battle screen
of course it will won’t work if we scale blit all animations, so we need at least use buffer for whole animated scene and then blit it to screen, but we could do more goodies to performance eg. scale animations of monsters/spells/projectiles at time of loading/uncompressing and then blit it 1-1 on scaled window

we also need to cut down most things that is not needed in short while and with current vcmi is resident in memory (eg. on battle we need only animations of creatures on battlefield and we can load more at time it become needed eg. summon, revive too etc. on battlefield we could enable to avoid remembering some animations and even avoid breathe/focus animation)

of course the managing memory should fit the needs - on 64bit machine with 8gb memory we don’t need to stick to 128mb memory - we could do things faster by using more resident things and we wouldn’t then want to avoid fluffs so the apparature should accept different memory cuttting levels and diffrent levels of defluffing (no defluffing on strong machines)

we should do a memory manager which wisely select what to load/unload and what to keep in memory and make program still works if the resource is temporary unavailable

we could do it at different methods: as unified memory/resource manager with some specific routines or speciality memory managers for different problems (eg. for battle, for town, for adventure map) with very lean common base (if there are things which would be common to all memory menagers which fits our assertions)

also we need to drastically improve the file managers, because it seems they tend to load almost anything once and no reload sometimes, and sometimes it loads files which is almost fully unnecessary

those consideration would fit/help not only to mobile phones

[continuation, phones specific only]

also we need to port thingies to OSes appropriate for mobile phones
all things not hardly dependent on hardware would become easy for symbian and android because they’re based on unix, and both have gcc/g++

symbian is not dead, nokia extensively work on this

one of things which is necessary to consider is how to do hardware acceleration of graphics, because phones have weak cpus

we also need to consider if we have to support exotic things as bada maemo etc. (well we have a maemo port or is it rumour?)

one thing which is extremely specific to phones is networking
hotseat would be easy, definately we need to support wifi, probably we need to support bluetooth, and we need consider if we need callable networking (gprs, edge, 3g) and if so how to mantain them


another problem specific to smartphones is disk space - we should avoid unnecessary writes, and cut down file resources needed to launch vcmi - we need to make able to not include things which won’t work on specific phone - so we need to separate resources for diffrent ratios of screen and not forcefully depend on those files, we need to be able to separate resources for really big screens - all things over 1280x1024 or even more precisely,
we need to be able to cut down sounds - making able to have better compresed music or able to left all music, and definately we need to make vcmi not dependent on video resources - i think it’s best to not play bink and smack on phones at all


probably we need consider windows mobile as separate platform, but what with windows phone 7? it has even no sd-card slot (licence require hardware to not include it)

and well should we support iphone os or not? it’s relatively uncomon target but worth to consider support


we need also to consider making able to work on low tech machines which is not exactly phones (pda, palmtops, portable game consoles, oreven weider thingies), or machines which is common but really weak (well we don’t need to support pre-x86 machines, but sparcs and 10-15 year old PCs would be nice, also support for windows 95/98/ME or commercial unix, maybe even dos port?)

GOOD NEWS
Boost on symbian has asio! :slight_smile:
almost all parts of asio works
(serial port doesn’t work an maybe some others, but hopefully we can compile vcmi on symbian