76

Re: MOD, PLEASE CLOSE THIS TOPIC: I am porting Neverball to Android.

I couldn't help but sign up for this forum after I saw the video of Neverball running on an Android device, something I've been wanting for a while.

@gjtorikian:
If you still want/need another beta tester, I would love to become one. I have a Droid 2 Global, rooted, running a custom ROM (Fission 2.4.3).

77

Re: MOD, PLEASE CLOSE THIS TOPIC: I am porting Neverball to Android.

No I forgot to mention that, I also see the issue with the crome texture all the time. I saw problems with
* some backgrounds, as bad as the title screen you posted
* other backgrounds, where gradients didn't show correctly
* some textures, where also "gradients"(?) didn't show correctly, most notably the chrome.

I have no idea how to fix this. I remember that I had a similar problem years ago with an older laptop, where the video board was slowly breaking down. It was referred to as something with "stencil buffers". I had to switch off reflection in the end, and it had something to do with video drivers. Does switching off stuff work now? Or should it have worked and just didn't in my case?

I kind of thought that the title screen problems were specific to my device, since I did not see them in the video you posted. If this happens frequently, that's bad.

On the framerate issue, have you checked what the limiting factors for the application are? Eg. how much RAM it needs to load geometry, in which loop it spends most of the time, which loop takes unproportionally more time in the levels that are problematic, etc.? Would that give you any hints?

78

Re: MOD, PLEASE CLOSE THIS TOPIC: I am porting Neverball to Android.

If the data directory is not in sync with the gles branch, that would explain at least the title screen. gles changes are not limited to code only.

79

Re: MOD, PLEASE CLOSE THIS TOPIC: I am porting Neverball to Android.

I have the data directory from the gles branch. I remember rlk noting that he made some changes to the maps to account for changes he was making to the material struct.

nue, I realized yesterday that it's possible something became corrupted during the data download. yesterday at Google I/O, Google announced that apps can now be 4 GB in size. I'm going to just forgo the starting download and pack the maps within the APK. That way I can at least guarantee the files won't be corrupted. The total data size clocks in around ~50 MB zipped so I'm still well below the limit.

Since the game is mostly in C, there's not much memory profiling I'm able to do. Android provides most of its support for the Java side of things. I'll have to sit down and do some serious investigations, though, because you're right, I ought to at least pinpoint which algorithm is taking too long.

miga, once I resolve some issues, I'll create another beta and send it out. If you could PM me your e-mail address that would be great.

80

Re: MOD, PLEASE CLOSE THIS TOPIC: I am porting Neverball to Android.

The chrome texture flaw is a problem that I've been aware of since the branch.  I have a solution, and it would not take me much time to fix it.  I think I documented this a bit in the gles thread.  I'll try to have a look sometime soon.

81

Re: MOD, PLEASE CLOSE THIS TOPIC: I am porting Neverball to Android.

@gjtorikian: Done.

82

Re: MOD, PLEASE CLOSE THIS TOPIC: I am porting Neverball to Android.

There were some levels where the geometry is just too much.  For example the one with all the bumpers.  Maps with lots of curved walls etc.   In my original iPhone version, I redid all the textures to be smaller to give the gpu a chance, and some mappers here redid some levels for me (like the pipe level), where the throughput was close but not close enough to be playable.  But in the end I took out a lot of levels.

Android fragmentation will be a killer unfortunately as some phones will do some levels and some won't.

83

Re: MOD, PLEASE CLOSE THIS TOPIC: I am porting Neverball to Android.

I think fragmentation is unavoidable, due to the seemingly endless combinations of devices with differing specs and capacities. I would love to see the mapc data added to the .sol files as metadata, and neverball-gles being smart enough to decide on the fly what is playable...? possible?

Currently Playing:
Celeste and Electronic Super Joy

84 (edited by miga 2011-05-13 08:32:27)

Re: MOD, PLEASE CLOSE THIS TOPIC: I am porting Neverball to Android.

themacmeister wrote:

I think fragmentation is unavoidable, due to the seemingly endless combinations of devices with differing specs and capacities. I would love to see the mapc data added to the .sol files as metadata, and neverball-gles being smart enough to decide on the fly what is playable...? possible?

Perhaps there can be something that checks against a list of tested GPUs that shows what levels are playable and which ones aren't, and then show a warning if you try to go to a level that might run slow on your device with a choice that allows you to either proceed or cancel, as well as a warning if you run the game with a device that there's no GPU data on that states that the game might be unplayable and again allows you to either proceed or cancel.

I'm just throwing ideas out there.

85

Re: MOD, PLEASE CLOSE THIS TOPIC: I am porting Neverball to Android.

I don't believe in fragmentation as a huge problem. The problem is when manufacturers make modifications and essentially screw up their Android build that causes inconsistencies across platforms, let alone their own devices.

For example, here's a post where the Droid 2 is not properly generating a unique ID--functionality that's expected when you're trying match devices uniquely. Here is a comment veryifying behavior I experienced, that the Cliq says it supports VBOs, but actually does not. I don't mean to say that only Motorola has problems (although I hate them), but they're the two examples springing to mind, out of probably a dozen more.

Android has a sophisticated, albeit complex, filtering mechanism in place. If developers designate that an app must use an accelerometer, then devices without an accelerometer can't download it, let alone install it. If you're a good developer, you'll flag your app with the appropriate features.

And if that's not enough, Google also just announced that you can blacklist installation on a per-device basis (which I think is terribly dumb).

=======

ANYWAY. I've been playing the game practically nonstop and noticed that:

  • The game experiences a drastic framerate drop on any level with chrome textures, from fences to pathways

  • Levels with the space background (like the title screen) have a strange warped effect

I am hoping that rlk can shed some light on the chrome issue--I did a searched in the gles thread and found only one post identifying the problem. I find it interesting that I'm possibly the only one running the latest code on a strictly OpenGL ES device. The issues I'm detailing don't occur with any desktop builds I've tried on Linux and OS X.

I would really, really prefer not to omit levels or recompile maps. I think keeping as close to parity as the desktop version is essential. The more hacks introduced to work on Android, the harder it's going to be to maintain the code.

86

Re: MOD, PLEASE CLOSE THIS TOPIC: I am porting Neverball to Android.

Sorry this is probably a dumb question, but I'm having a hard time trying to reinstall Neverball-Android-beta on my phone. If I just "manage applications" - and remove NB (and purge the files) and then "adb install ...", it does not redownload the data. What am I missing here, and how could I redownload?

It would be incredibly nice if it turned out that the chrome texture was the only problem and caused the frame rate to drop ... smile

87

Re: MOD, PLEASE CLOSE THIS TOPIC: I am porting Neverball to Android.

The files pretty much live on your SD card forever, even if the app is uninstalled. You really shouldn't need to redownload them. Is it not letting you play?

If you're blocked for some reason, you can go to /sdcard/app-data/com.miadzin.neverball, and delete all the data files. You'll want to save the content under .neverball as it contains your high scores and progress and what not. Let me know how that works out.

88

Re: MOD, PLEASE CLOSE THIS TOPIC: I am porting Neverball to Android.

gjtorikian wrote:

I would really, really prefer not to omit levels or recompile maps. I think keeping as close to parity as the desktop version is essential. The more hacks introduced to work on Android, the harder it's going to be to maintain the code.

Any map optimisation can be flowed back into the main trunk.  The maps don't look any different, just have optimisations where they were created inefficiently in the first place.  Noone had any good reason to optimise them until the mobile ports began, thats all.

89

Re: MOD, PLEASE CLOSE THIS TOPIC: I am porting Neverball to Android.

Could you detail what those optimizations were, exactly? Perhaps now is the time to do it. I don't mind taking the task as long as someone explains what needs to be done.

90

Re: MOD, PLEASE CLOSE THIS TOPIC: I am porting Neverball to Android.

I am going to try and get my toolchain working again under Win7 (32bit on 64bit). I have successfully built a SDL-GLES sample before, but I have moved a lot of directories around since then (the Desktop was looking VERY full at 1920x1080!).

Currently Playing:
Celeste and Electronic Super Joy

91

Re: MOD, PLEASE CLOSE THIS TOPIC: I am porting Neverball to Android.

gjtorikian wrote:

Could you detail what those optimizations were, exactly? Perhaps now is the time to do it. I don't mind taking the task as long as someone explains what needs to be done.

Unfortunately I am not a mapper.  There should be one of my old iPhone threads with the information as to who did it though.  I'll browse the archives and get an answer

92

Re: MOD, PLEASE CLOSE THIS TOPIC: I am porting Neverball to Android.

What Elviz did with the pipe level was a very specific optimization. You won't encounter many levels where the same approach can be applied, especially in cases like Easy 4, which is already one of the simplest levels in the game.

93

Re: MOD, PLEASE CLOSE THIS TOPIC: I am porting Neverball to Android.

gjtorikian wrote:

You can go to /sdcard/app-data/com.miadzin.neverball, and delete all the data files.

Ah ok, that worked... No I had just wanted to try redownloading, as you had mentioned that corrupted files could be the cause of some problems of mine. Everything is just like before though, no luck. :-/

94 (edited by nue 2011-05-15 17:11:28)

Re: MOD, PLEASE CLOSE THIS TOPIC: I am porting Neverball to Android.

So I played around a bit. I have the following feedback on the Android version:

* I can switch off reflection but I can't switch off the background. If I try to switch it off in neverballrc, the game won't start (black screen) until I switch it on again. If I switch it off in the game, it will show as "off" but it won't write that to neverballrc. (This is extremely annoying since the backgrounds are very ugly on my phone, and some lead to the screen being drawn multiple times. Maybe it is caused by some incompatibility with my phone, it seems to work on other devices?)

* I looked into what is causing the framerate drop. I did some experiments on easy 4:
- I tried removing the coins from the level. It helped somewhat but not a lot.
- I tried messing with the chrome texture, specifically I changed the lines in chrome and chrome-faceted which look "different" that the other textures (from the third line on, I put 0.0). You can see that I'm not really a graphics programmer tongue ...). It did not help.
- I tested the dependence on the "objects" (the fence) by playing easy 18, which is pretty much the same as easy 04 without the fence. It was better, but I managed to easily get down to single digit frame rates by going fast and turning.
- So I conclude that neither the coins / particle model, not the "objects" (whatever they are), nor the texture bug rlk refers to above are the cause of the performance problems. It appears as if the total amount of geometry were responsible. Does this mean that not much can be done about it and we should restrict ourselves to selecting a couple of levels that work well?

95

Re: MOD, PLEASE CLOSE THIS TOPIC: I am porting Neverball to Android.

Are ALL backgrounds ugly, or just the space one?

I am also not a mapper/graphics person whatsoever. Since the performance may be on the geometry side of things, it seems to make sense to "just" optimize how the geometry is processed, rather than redo/ignore levels. But that's just crazy me.

96

Re: MOD, PLEASE CLOSE THIS TOPIC: I am porting Neverball to Android.

Does the performance suffer in all screens (i.e, also in intro and goal/fall-out/time-out screens) or just during gameplay? Perhaps it is collision detection that is at fault not the graphics. To further confirm that, you might try setting all lumps in the map as detail.

97 (edited by themacmeister 2011-05-16 08:14:24)

Re: MOD, PLEASE CLOSE THIS TOPIC: I am porting Neverball to Android.

We need to hardcode static backgrounds again... I don't need volcanoes/clouds/jets moving -- I doubt I will even see most of it at 320x240 wink

EDIT: Found all my directories again, will try a test build tonight, and also optimise textures and run @16bit to see if I can get some reasonable framerates... Cheers everyone!

Currently Playing:
Celeste and Electronic Super Joy

98

Re: MOD, PLEASE CLOSE THIS TOPIC: I am porting Neverball to Android.

parasti, no, the performance is adequate (>~40fps) on those screens.

99

Re: MOD, PLEASE CLOSE THIS TOPIC: I am porting Neverball to Android.

I had wanted to wait until I had screenshots of the backgrounds, but it looks like it will take another day or so.  :-/

All backgrounds look strange, but the one on the title screen is the worst since it causes portions of the screen to be drawn multiple times. It looks as though there's a general problem with the background mechanism (especially since it cannot be switched off) as well as another problem with some specific textures. If I have time I will try to replace the ones in "/back" one by one by some small black texture and see which one does not work, maybe that will clear things up.

I will try out the collision detection idea soonishly... however, I suppose graphics should be the problem?

100

Re: MOD, PLEASE CLOSE THIS TOPIC: I am porting Neverball to Android.

Hello,

Is there any update on the status of the Android port? How are you doing?

Today I wanted to finally post some screenshots (sorry for being so late), but the app won't start any more. Is it because the binary you sent out had an expiration date? Or should I bother reinstalling?