pelya wrote:Still does not start without SDCard, same error.
OK, I shall test that then.
I've tried with SD card - gives 5 FPS on Evo
I think the more pixels it has to display, the slower it is. My wimpy Spica (ARMv6 1176 at 800Mhz) displays the game at 15-25fps, but it only has a 480x320 display (compared to 800x480). A Nexus One (ARMv7 at 1GHz) has equivalent performance to yours. A better GPU doesn't cut anything, CPU performance is mostly similar (roughly 50% performance I guess), so the screen size is the most prevalant performance parameter.
also requires alot of keys to play (and Evo has only 4 of them). Otherwise seems playable.
I've decided to use vol up/down as ctrl/shift. Because one can map any modifier+key as an action, if you have 2 more keys in addition to volume, this becomes num(no modifier,shift,ctrl)*(4-2)=6 actions instead of 4.
Did you notice you can tap at the bottom of the screen so as to display a menu bar, and then click on some of the icons to generate some actions? Help isn't ready to describe this, unfortunately...
I haven't noticed images with complicated per-pixel transparency in the game
There is though, untill I convert them manually:
- map data is converted to ARGB8888 to RGB565 with colorkey (dropping the alpha blending smoothing display)
- map data must be sometimes handled in software because:
- we read its alpha channel to determine if a pixel is blocking
- we read all of its data to compute a reduced view (the minimap)
- we write to it to dig/darken the ground
In particular, the minimap downsamples blocks of 64x64 pixels, and we must read the block pixels knowing their colorformat and produce pixels in the minimap with again expected colorformat, all by hand - We decorate some boxes such as the ingame menu and the minimap and to render this, we must:
- render the decoration onto the minimap with a particular function (playing with SDL_SRCALPHA and the way the SDL_SurfaceBlit are done doesn't work)
- render the output of this onto the screen
- I haven't yet found a clean way to distinguish image we really need alpha blending from those where colorkey is ok
everything you need can be drawn by setting colorkey, and then setting per-image alpha, then you can use HW acceleration.
It's probably possible, but I still have to adapt step by step some of this code: we want the same codebase and this codebase shall also allow rendering in RGBA8888 with alphablending.
But all in all, it's not something I can solve quickly, nor that should hold me from releasing to people wanting to test it out. Indeed, to support some of the things you see, I had to deeply modify some part of the code, and it's a bit fragile now. So, the testing I envision is more about fixing the stuff I broke than improving performance.
But I really want to test the things you proposed. It's just I'm more worried about other things.
Only kaboom.png and smoke.png have per-pixel transparency, but since each animation frame have fixed transparency value they can be split to several images with constant per-image transparency (or just loaded to different SDL surfaces with some tricky routine).
You went quite deep into your study! There really are parts of the code I don't know well, so I can't comment on this very much.
Current on-screen keyboard covers all screen, and you won't be able to use mouse with it. I'm planning to add more config options, like smaller keyboard size, or switching it on/off with some HW key or from game itself.
I believe Wormux can dispend with such a keyboard:
- If you have to use it, you loose in ergonomy what you win in additional actions available.
- With accelerometer, all you have to map on HW keys are limited actions:
- shoot, jump are required
- it would be interesting to also have back jump, high jump and precise aiming (usually a modifier key + aim)
But the real reason i'm not planning to integrate it now is that it would require to update a working code and risk breaking things in it.
Well anyway, I can publish that release you've made if you want, with comment that it requires SD card and HW keyboard.
There's one more blocking issue to solve I think besides the debugging. Wormux controls are not natural, and there are many hidden things not obvious that help gameplay (see the post in the Wormux forum I linked earlier):
- Clicks on the ingame menubar
- Clicks on the minimap or a character
While people will be testing the game and reporting bugs, I'll try to see what can be done with the help. So I think it's not completely ready for prime time.
The phone configurations may vary greatly - for example my Evo phone has 250 Mb free on internal storage, and my ADP1 phone has 60 Mb free and a wireless modem glued to SDcard slot (don't ask

).
Why don't they design all Android devices like this?

I imagine some external USB keyboard with the big hole where you can click-insert your phone (just like you're inserting battery to the phone itself). Oh, it also can have huge external battery, to remedy the Evo's damn short worktime without charger.
This underlines how Android vs iPhone is similar to PC vs console: consoles (and iPhones) have rather precise features, and so less things to handle.
Edit: I've included libintl and sdl_gfx to my Git, also I've added setting LANG variable from Java code. I also want to set USER variable to Google account user name, but I cannot find Java API to do that that works for 1.6 devices.
So the Java code does all the job, no need to go the JNI way? Fine with me, this part is probably rather small and non-intrusive, so I'll check out how you do that and merge the code.