Smallball In Changeland - Wiz Port


Imerion

Member
Joined
Feb 24, 2005
Messages
218
Since the Fenix-runtime works well on the Wiz, I decided to port some of my games to it. For my older games, the GP2X-versions should work fine on the Wiz as well. However, some of my newer games had a few features which I excluded from the GP2X-versions due to lack of speed. But since the Wiz is a lot faster, these games might work fine even with those features included.
I decided to start with Smallball in Changeland. This version has all the background-effects the PC version has and looks a lot better than the GP2X version. If it runs fast enough, that is. Since I don't have a Wiz yet, I cannot test it. But if anyone here would like to test the game and see how well/fast it runs, that would be great!

The file can be found here : http://uploading.com/files/PBFTYWF4/SmallBall_Wiz.zip.html
Please don't spread it yet, since it is just a testing version.

SmallballScreen2.png
 
It lags in-game, though I must appreciate the very nice looks :)

I have no idea how optimized the Wiz Fenix port is though, so maybe some more performance could be squeezed out of it.

Do you use real alpha transparency for the red trails balls leave behind? If so, try pre-drawing faded tiles, and blit them instead of alpha-blending in real time. If this is the case perhaps it could run with full effects on the GP2X, too.
 
QUOTE
Do you use real alpha transparency for the red trails balls leave behind? If so, try pre-drawing faded tiles, and blit them instead of alpha-blending in real time. If this is the case perhaps it could run with full effects on the GP2X, too.


That is actually what I did with the GP2X-version. The reason the particles didn't react with the background in that version was because the collision-detection slowed it down. I can understand why though, there are loads of tiles that has to be checked against loads of particles. As for the player it is easier since I can simply check the distance between the tile and the player X/Y. That is why the GP2X versions backgrounds only reacts to the player. But I will try to do what you say for the Wiz-version as well. Changing from alpha to pre-drawn tiles might just be enough to make it run fast enough, even with all the collision detection on.
 
Hi,

I tried the the game, seems a fun game and the tile effect is really nice. I had a quick look at your code and have some suggestions that would improve the speed greatly and would most like allow full effects on the GP2X and the WIZ.

These will require quite a few changes to your code but shouldn't be too problematic.

1. I see you have a separate process for every tile - that makes 192 processes just to display the background. A better way would be to simply draw the background as a background and then create fading tiles where needed. I'll leave you to sort out the finer details of this as you would need to check you weren't creating multiple tiles in the same space but it should be easy to keep track of with the use of an array.

2. Another way to handle the background is to actually redraw it every frame checking against an array to determine the brightness of each tile. The array itself for this method and the previous method would be manipulated directly by the particles and player. (this method would work the best )

3. Stop using in built collision detection - at least for the tiles. The collision detection can cause major slowdown, and if you use a method as I describe above it wouldn't be needed at all.

4. As Alex said for optimal performace pre-rendering the tile brightness would be best and could be done in-code so that you wouldn't need to have multiple tiles in the fpg.

Using some of these techniques will I'm absolutely positive enable this game to run at full speed even on the GP2X (and probably with lots of fps to spare). I've used techniques like these for several games now (pellets in Ruck-man, tiles in Animatch and to a certain degree the waving background in S.O.D) so if you get stuck and need any help just PM me. Quiest is also a wiz at these techniques and it's actually him who got me started.
 
Thanks for all the good ideas! I know this game isn't very optimized, but the reason for that is mostly because it was made just for fun in between some bigger projects. Thus I never tried to optimize the code much at all.

Ruckage, your first method shouldn't be too hard to implement. I might try that, I think I know how to make it only draw tiles at the correct positions. As for the second idea, I was thinking about doing something like that once, but I decided it would be a bit too complicated for such a small game.

It's true there are some really cool tricks to make it all run fast. I have learned a bit more of them since I made this game, but it certainly could run better. Btw, I'm really impressed with the games you have made, Ruckage. I hadn't thought about that they were made in Fenix. It would be interesting to hear how you made that waving background. Is the game copying each line of pixels and then pasting it again a few pixels away and repeating that all over the screen? Because I did something like that once, to create a "melting" effect.

Peter R, you mean I should put the processes to sleep until they are activated? That might work. It would be less to draw, but still as much to check collision against. But as you say, in combination with the other ideas it might work.

As for now, I have made a version which uses pre-drawn tiles instead of alpha. If you want to test it again, it can be found here : http://uploading.com/files/F82PGUBU/SmallBall_Wiz.zip.html
If it is not running fast enough now though, I might try some of the other methods.
I have another game almost done for the GP2X/Wiz which I'd rather release first and Ill also want to try porting Epic Rocks to the Wiz. It should run better, since I already did some optimization on it.
 
Hey, just wanted to ask if you could upload the game to a different file server? I wanted to try the beta2 for smallball on my Wiz, and report back, but uploading.com hasn't been working for me for the past month or so. Despite the fact that I'm not downloading anything, it constantly tells me that my IP is already downloading something. Anyway, if you upload it to a different filehost I'll give it a shot and comment back. Megaupload, rapidshare, easyshare. Whatever man.
 
I tested it on the Wiz and it's still a little bit slow. But really a nice game. You included the GP2x runtime. Was that your intention?
I can upload the file to the archive but you said you don't want to spread it. So I wait for your OK.

Regards,
Stephan
 
QUOTE
I tested it on the Wiz and it's still a little bit slow. But really a nice game. You included the GP2x runtime. Was that your intention?
I can upload the file to the archive but you said you don't want to spread it. So I wait for your OK.

Regards,
Stephan


Thanks! Ill have to work a bit more on it then. There are many ways yet to improve the speed. I didn't know it was the GP2x runtime. Thanks for noticing, I thought I had changed that. Perhaps I will gain some speed by simply using the correct runtime.


QUOTE
Hey, just wanted to ask if you could upload the game to a different file server? I wanted to try the beta2 for smallball on my Wiz, and report back, but uploading.com hasn't been working for me for the past month or so. Despite the fact that I'm not downloading anything, it constantly tells me that my IP is already downloading something. Anyway, if you upload it to a different filehost I'll give it a shot and comment back. Megaupload, rapidshare, easyshare. Whatever man.


Sure, Ill use another service for the next version. Since I already know this one runs slow, I better update it first.
 
Back
Top