Nothing interesting in (flooded) logcat.
“thread=9: thread exiting with uncaught exception” and ramblings about “keyboard id 65536 invalid”
I saw one green pixel for a split second… :cranky:
Nothing interesting in (flooded) logcat.
“thread=9: thread exiting with uncaught exception” and ramblings about “keyboard id 65536 invalid”
I saw one green pixel for a split second… :cranky:
I’ll remove the VBO code…
Cas
Haha, messing up VBOs is about as funny as it can get. Seeing a snapshot of the last time you ran the game, random colors, flickering for static screens. Just as fun as reading and drawing to the same texture at the same time with FBOs. ;D
Hm I’m surprised it ran properly on the Galaxy actually - there was a pretty significant bug in the code. Come to think of it there’s no way it could have run properly. Bizarre. I’ve uploaded a newer one - anyone care to try?
Cas
404 - did you put it at a new URL?
Oh looks like Dropbox gives every incarnation of a file a unique url: http://dl.dropbox.com/u/1199028/MinimalAndroid.apk
Hm except that looks the same to me. Works, too.
Cas
Just my 3G being fussy again, FYVM Verizon. WiFi is working fine tho. Anyway here’s the QR code again so I don’t have to keep scrolling up to it. Maybe you could edit the top post to include it?
Unfortunately, I tried it again and still got the same black screen
Ok, VBO-free version now uploaded.
Cas
Works great now. I get a stable 15FPS at 1700 sprites (looks like you have more than crabs going on now).
Does it really not support VBOs? I thought that was just about the only way to pass vertices to shaders…
VBOs work just fine here on the Galaxy S2. Looks like they basically don’t work anywhere else I’d best give up on them. No performance change anyway.
Cas
Yay, it works.
1200 sprites at 15/16 fps. 1300 sprites at 14/15 fps.
Cleaning up background apps did not improve performance for me.
1000 crabs is fine, 1100 it start to become erratic, the fps jumps between 11 to 17.
Endolf
900 with 15fps. Huawei ideos X5. Android 2.21
Haven’t figured out what’s causing the erratic framerate yet Also discovered a lifecycle bug if you hold down the button to get the recent tasks list up - game pauses and never recovers. So don’t do that
Cas
Framerate seems stable for me now.
400 crabs gives me 15 fps.
You’re not going to be playing any Puppygames any time soon then…
Cas
Whenever someone says “sprites” I get the picture of Pokemon on Gameboy and the old Final Fantasy games on Snes, so I’m having a little trouble imagining how you would put 400 sprites on the screen at the same time… Care to share an example from a real game?
(I’m not criticizing you at all, I’m just curious about what game you’re making xD)
Darn and this was the top model 2 years ago. I hacked it a little, forcing my graphics drivers to be 16bit and now I can do 500 but that’s all it seems.
Aha I can force it to to 16-bit too, didn’t realise that would make such a huge difference. So I shall, in the next quick test, when I’ve figured out how to fix that small lifecycle problem.
@theagentd: so… basically a Sprite is any little rectangular bit of graphics. Once upon a day on machines like the C64 we’d have only 8 “hardware sprites” and a character-mapped background which could be arbitrarily scrolled 8 pixels in any direction, and people designed games around this curious limitation and did pretty well at it though of course it did rather limit the designs.
These days, every single thing you see on the screen is made up from one or more sprites layered on top of each other. Each sprite can be arbitrarily positioned, rotated, offset, scaled, coloured differently in each corner, and arbitrarily transparent, and also each sprite runs its own independent animation program. One small exception in the Puppygames sprite engine is that things like those expanding circle effects and bitmap fonts are actually psuedosprites injected into the scene at the appropriate point. They’re not just simple rectangles but arbitrary bits of dynamic geometry, so they’re a bit more expensive to draw than plain sprites but that’s why there’s not that many of them around - we only use them for text rendering and the odd special effect like a radar range or strobe.
It may not look like it at first but Titan Attacks typically has around 500-1000 sprites on screen in any single frame, drawn at 60fps, and each sprite is animated. Some sprites are huge - for example, the background and HUD consists of a few really big sprites - and some are tiny. This is why it always makes me chuckle when people dismiss Puppygames’ graphics as being no better than what you can achieve in Flash I haven’t yet seen Flash reliably demonstrate maybe a tenth of that performance, typically, and we’ve been able to achieve that in Java for about 8 years now through LWJGL. Our more complex games like Droid Assault and Revenge of the titans have literally maybe 4,000 - 8,000 sprites in every single frame. This is also probably why though many people like to dismiss our “retro” style as being trivial and simplistic, nobody has actually managed to emulate it or copy it yet because it’s actually a lot more involved than it looks.
So anyway: porting Titan Attacks to Android, we’re aiming for 30fps on account of the fact that it’s almost indistinguishable from 60fps on small phone screens and there’s no point in aiming too high just yet what with Dalvik being so lame. This means we need the average phone to be able to cope with at least 1,000 sprites @ 30fps, just to port our crappy Space Invaders game! We could maybe optimise some of that stuff away - at least 300-400 of those sprites are particles in things like bullet trails and explosions and smoke from ruined buildings in the background, so we’ll be looking to tweak in those areas to get the performance we need.
Cas