Pandora Pandora Panic


'MarkoeZ' said:
'Zephyr-san' said:
I'm currently working on some music for the Jumper game.
Ah, nice! jumper has been kind of a side project all this time. I have most of the tile and enemy functionality there, and a level editor is wip as well. It's fully playable atm, it just needs that final touch. The background images by gruso are great, im probably going to use the one with the b/w pipes as main one.

Also, if anyone is interested in making a level for the Jumper game, contact me, its easy ; )


You might want to slightly cartoonify the image (or something) to make the background image fit a bit better with the foreground graphics. I feel like just putting the two together would look a bit awkward.
 
Last edited by a moderator:
Hi guys, sorry about the slowdown in updates and such. It wouldn't be very interesting for me to keep putting "Still trying to fix joystick and mouse axes bug in the keymapper" every day. Because that is basically what's been happening.

It's been very tedious but with some concentrated line by line debugging, I figured out there was a problem with my config script for keymapping and not with mapping code itself... anyways AXES can now be properly mapped for joypads and mice.
I need to add HAT support and such but many joypads are supported by the remapping facility now.

I'm going to setup default controls per platform which means you will still have controls if the custom.cmf file is missing or not parsed correctly.

We do need to tidy up the controls... some people have used B and others have used A as the primary button... Everyone really should have used A in the first place since you can map it to whatever you want now! :p But We (myself and MarkoeZ) will fix that soon.

Apart from that, there is a small memleak I need to try my best to find, but it's not the same as the oodles of mem that was going missing. I still want it gone, of course.

We seem to be on track and should be ready for 3 weeks time! And hopefully I can finish my Rocket game too!


EDIT: Just an little note, I tried out PanicAttack now I have joypads mappable and it's really fun now I can actually play it!
 
Last edited by a moderator:
I've been trying to get the transparency in OneButtonBandit to work properly and failing hard. Is there something obvious I'm missing? I updated the sprites to use magenta (#ff00ff) as their transparency colour (checked with Joust to make sure this was the right shade) and set the transparent colour both at the point of loading:
CODE

shapes[shapeCount] = new Sprite;
shapes[shapeCount]->loadSprite("images/OneButtonBandit/" + s + ".png");
shapes[shapeCount]->setTransparentColour(MAGENTA);


and at the point of render:
CODE

sprites.getSprite(tempNode->shape, false).setPosition(xPos, tempNode->yPos);
sprites.getSprite(tempNode->shape, false).setTransparentColour(MAGENTA);
sprites.getSprite(tempNode->shape, false).render(screen);



I'm pretty sure I only need to do it at the point of loading but seeing as I can't make it work at all, I don't know what else to do. At one point I even converted all my pngs to bmps but that didn't help either.

Any suggestions?

To make matters worse, it seems to be picking the transparency colour as one of the greys on a background sprite. This sprite isn't loaded first and I've tried setting the transparency to magenta on this also, to no effect.
 
Last edited by a moderator:
'Miggles' said:
I've been trying to get the transparency in OneButtonBandit to work properly and failing hard. Is there something obvious I'm missing? I updated the sprites to use magenta (#ff00ff) as their transparency colour (checked with Joust to make sure this was the right shade) and set the transparent colour both at the point of loading:
CODE

shapes[shapeCount] = new Sprite;
shapes[shapeCount]->loadSprite("images/OneButtonBandit/" + s + ".png");
shapes[shapeCount]->setTransparentColour(MAGENTA);


and at the point of render:
CODE

sprites.getSprite(tempNode->shape, false).setPosition(xPos, tempNode->yPos);
sprites.getSprite(tempNode->shape, false).setTransparentColour(MAGENTA);
sprites.getSprite(tempNode->shape, false).render(screen);



I'm pretty sure I only need to do it at the point of loading but seeing as I can't make it work at all, I don't know what else to do. At one point I even converted all my pngs to bmps but that didn't help either.

Any suggestions?


errr, Poke is the expert. But as far as i know this should work (indeed only needs to be set at loading).
Are you sure you have the exact magenta colour in the PNG? that's only thing i can think of right now.

Anyway, good to have you back :)
 
Last edited by a moderator:
'Miggles' said:
I've been trying to get the transparency in OneButtonBandit to work properly and failing hard. Is there something obvious I'm missing? I updated the sprites to use magenta (#ff00ff) as their transparency colour (checked with Joust to make sure this was the right shade) and set the transparent colour both at the point of loading:
CODE

shapes[shapeCount] = new Sprite;
shapes[shapeCount]->loadSprite("images/OneButtonBandit/" + s + ".png");
shapes[shapeCount]->setTransparentColour(MAGENTA);


and at the point of render:
CODE

sprites.getSprite(tempNode->shape, false).setPosition(xPos, tempNode->yPos);
sprites.getSprite(tempNode->shape, false).setTransparentColour(MAGENTA);
sprites.getSprite(tempNode->shape, false).render(screen);



I'm pretty sure I only need to do it at the point of loading but seeing as I can't make it work at all, I don't know what else to do. At one point I even converted all my pngs to bmps but that didn't help either.

Any suggestions?

To make matters worse, it seems to be picking the transparency colour as one of the greys on a background sprite. This sprite isn't loaded first and I've tried setting the transparency to magenta on this also, to no effect.

You could also try setting the BG colour as a coordinate of the image:
CODE
PENJIN_ERRORS setTransparentColour(const Vector2di& v);


You can do this
CODE

Sprite.setTransparentColour(Vector2di(x,y));



But to be honest I'm surprised there are more problems with transparency... I thought we had these all figured out.
 
Last edited by a moderator:
Hi guys!
My hard work seems to have generally paid off (Although MarkoeZ seems to be having some problems with his weird joypad)
Basically the SimpleJoy control mapping is complete. The format of the mapping files is described in the link below
SimpleJoy
CODE
http://projectinfinity.org.uk/doku.php/homebrew:engines:penjin:simplejoy


This will be in the next test builds of PandoraPanic.
The remaining piece of the puzzle is getting this baby compiled and working on a Pandora dev board.
I will also try to get my Plander game finished.
Oh and playing the game with a control Pad is very very very fun! :)
 
Last edited by a moderator:
'PokeParadox' said:
Basically the SimpleJoy control mapping is complete. The format of the mapping files is described in the link below
Woo-woo! This is great! I can't wait to play with the joypad on my box! Thanks for grinding that out: it's going to be amazing to see this on real hardware. Soon, right? :lol:

Off to check the Wiki for a recent source tree....
 
Last edited by a moderator:
'todd' said:
'PokeParadox' said:
Basically the SimpleJoy control mapping is complete. The format of the mapping files is described in the link below
Woo-woo! This is great! I can't wait to play with the joypad on my box! Thanks for grinding that out: it's going to be amazing to see this on real hardware. Soon, right? :lol:

Off to check the Wiki for a recent source tree....

Well... I wouldn't go checking for source just yet... I REALLY need sleep right now! But feel free to familiarise yourself with with the mapping documentation!
I'll package something up after breakfast! B)
And hopefully yes soon we can get a build running on actually hardware!
 
Last edited by a moderator:
OK Framework and base code snapshots are upload(ed/ing) and can be found on the wiki page.
CODE
http://projectinfinity.org.uk/doku.php/homebrew:games:pandorapanic

Builds to come later in the day.
If you have any problem with the new code, then you know where to ask. :)
 
Last edited by a moderator:
Finally got around doing at least something for this project. I made a small rotating turret game. This was actually first just a small test, but it came out playable.
CODE
http://www.cs.tut.fi/~erkkola/RotDef.tar.gz


It could use some sounds (turret firing, bomb exploding etc), an explosion animation, and maybe some background sounds (bombs falling, rifles firing).
 
'B-ZaR' said:
Finally got around doing at least something for this project. I made a small rotating turret game. This was actually first just a small test, but it came out playable.
CODE
http://www.cs.tut.fi/~erkkola/RotDef.tar.gz
It could use some sounds (turret firing, bomb exploding etc), an explosion animation, and maybe some background sounds (bombs falling, rifles firing).

Thanks I'm going to check it out very soon... and it will probably make the test builds I have to do...

I just realised now that I never said how to load a cmf file in PandoraPanic!

You need to load the file on the command line.
CODE
PandoraPanic -Cscripts/custom.cmf
 
Last edited by a moderator:
Oh, and don't look at the code unless you want to get blind. It's not very pretty as it was supposed to be a test. But hey, what works, works. ;)
 
Last edited by a moderator:
I tried the testbuild, its fun.
-But, when playing the rocket game, I dont know what to do: Only the launch platform and the rocket showed up, no place where I needed to land.
-Second thing: When playing Panordered , the game skipped round 6.
-Third thing: When playing that 3 in a row game I wasnt even able to see which thing I needed to get 3 of.
-The Alien shooting is incredibly hard
-At another try at the rocket launch game again I didnt know what to do, I flew right into the right corner for 10 seconds and the game crashed
-Rocket gets stuck alot in the Launching Platform.
-Most games lack a visible max time (like the bomb in WarioWare)

But still, I like it alot.
 
'Mithrildor' said:
I tried the testbuild, its fun.
-But, when playing the rocket game, I dont know what to do: Only the launch platform and the rocket showed up, no place where I needed to land.
-Second thing: When playing Panordered , the game skipped round 6.
-Third thing: When playing that 3 in a row game I wasnt even able to see which thing I needed to get 3 of.
-The Alien shooting is incredibly hard
-At another try at the rocket launch game again I didnt know what to do, I flew right into the right corner for 10 seconds and the game crashed
-Rocket gets stuck alot in the Launching Platform.
-Most games lack a visible max time (like the bomb in WarioWare)

But still, I like it alot.
-Rocket game is not ready, I forgot to set the mini game value down a value before making the test builds.
You can press select to automatically win.
-Skipping a round is intentional if you don't have a joypad... you can't play DoubleNubTrouble so it skips it for you.
-You can but it's tricky I know... There seems to be much problems with transparencies... I know Miggles is aware of it... but I may take a look too soon.
-Just take a bit of time and relax to make your shot count. It's not so hard once you get the pattern.
-aha... crashing shouldn't happen, thanks for that bug.
-This is my main bug... collision detection is borked, that's because it's not finished...
-Some games don't have a time limit, but maybe they should? hmmmm.

Thanks for the comments.
 
Last edited by a moderator:
'Mithrildor' said:
-The Alien shooting is incredibly hard
as Poked said it's quite easy if you take your time. I think you have 9 seconds to take your shot. That's plenty of time. ;)

'Mithrildor' said:
-Most games lack a visible max time (like the bomb in WarioWare)
'PokeParadox' said:
-Some games don't have a time limit, but maybe they should? hmmmm.
I think this is due to the fact that there's never been laid down any rules for the mini games. In the beginning there was a small discussion whether we should have short warioware type mini games, or if we should have longer mini games. My games (Alien and Spelling Contest) are designed after the warioware concept, while other has taken an other path. That's what you get with a community project like this. :rolleyes:
However I think it gives the game certain charme :p
 
Last edited by a moderator:
'B-ZaR' said:
Oh, and don't look at the code unless you want to get blind. It's not very pretty as it was supposed to be a test. But hey, what works, works. ;)
Don't worry... if it works... it works. Unfortunately for me, my code has to be on display since I'm providing the engine framework and explaining how to use it... some of it is not pretty! :p

'pstudio' said:
'Mithrildor' said:
-The Alien shooting is incredibly hard
as Poked said it's quite easy if you take your time. I think you have 9 seconds to take your shot. That's plenty of time. ;)

'Mithrildor' said:
-Most games lack a visible max time (like the bomb in WarioWare)
'PokeParadox' said:
-Some games don''t have a time limit, but maybe they should? hmmmm.
I think this is due to the fact that there's never been laid down any rules for the mini games. In the beginning there was a small discussion whether we should have short warioware type mini games, or if we should have longer mini games. My games (Alien and Spelling Contest) are designed after the warioware concept, while other has taken an other path. That's what you get with a community project like this. :rolleyes:
However I think it gives the game certain charme :p

Basically we had two camps of people, and one hand we should make all games like WarioWare, the other hand we should not restrict the games... I basically decided we shouldn't exclude either type of game, because at that point I wasn't sure how many people were going to contribute...Anyway we have a nice patchwork of games and on a later revision we can organise boss stages and such.

'B-ZaR' said:
This reminds me, are all the minigames supposed to implement the pause functionality on their own?

There is a pausing variable and a pausing template function which you may override on a per-state basis. So you just check it for rendering and check it when updating. Some code snippets below:
Pause/unpause
CODE

if(input->isStart())
{
isPaused = !isPaused;
input->resetKeys();
}
Drawing Pausescreen
CODE
void State::render(SDL_Surface *screen)
{
SDL_FillRect(screen, NULL, SDL_MapRGB(screen->format,0,0,0));
if(!isPaused)
{
// Draw game stuff here
}
else
// Draw Pause screen
pauseScreen(screen);
SDL_Flip(screen);
}


'Mithrildor' said:
Yeah, remove the pause and add timelimits!
Ack but we went through all the games putting the pause checking in... trying to get every game behaving similarly! We can't please everyone... :/
Timelimits is an easier thing to add though...
 
Last edited by a moderator:
[quote name='PokeParadox' date='Apr 10 2009, 09:45 PM' post='718930']
[quote name='B-ZaR' date='Apr 10 2009, 09:09 AM']
Oh, and don't look at the code unless you want to get blind. It's not very pretty as it was supposed to be a test. But hey, what works, works. ;)
[/quote]
Don't worry... if it works... it works. Unfortunately for me, my code has to be on display since I'm providing the engine framework and explaining how to use it... some of it is not pretty! :p
[/quote]
Yeah, one thing I noted was that your classes don't work nicely with STL containers. If your classes are not meant to be copied (and so used with vectors etc), you should explicitly deny it by adding
CODE
ClassType(const ClassType& other);
ClassType& operator=(ClassType& other);

on the private side of your classes. This gives a compile-time error if any of the classes objects are copied. Currently the biggest problem is with Images (and Sprites because of that), that reserve dynamic memory, but don't copy it on copy. So if copy Image A to Image B, then delete Image A, Image B segfaults when used.

I would also like to be able to set a Sprite's Image directly, preferably with a pointer. This way, if I've got many sprites with the same image it can only be loaded once. Also this gives the possibility of quickly changing the image of a sprite (which I need in my new minigame, I'm now implementing it with Images).

[quote name='PokeParadox' date='Apr 10 2009, 09:45 PM' post='718930']
[quote name=''Mithrildor'' date=']
-Most games lack a visible max time (like the bomb in WarioWare)
[/quote]
[quote name=''PokeParadox'' date=']
-Some games don''''t have a time limit, but maybe they should? hmmmm.
[/quote]
I think this is due to the fact that there''s never been laid down any rules for the mini games. In the beginning there was a small discussion whether we should have short warioware type mini games, or if we should have longer mini games. My games (Alien and Spelling Contest) are designed after the warioware concept, while other has taken an other path. That''s what you get with a community project like this. :rolleyes:
However I think it gives the game certain charme :p
[/quote]
Basically we had two camps of people, and one hand we should make all games like WarioWare, the other hand we should not restrict the games... I basically decided we shouldn't exclude either type of game, because at that point I wasn't sure how many people were going to contribute...Anyway we have a nice patchwork of games and on a later revision we can organise boss stages and such.
[/quote]
I agree. For now we should concentrate on getting as many minigames as we can. Most of the games so far can be given some kind of time limits. This can be tweaked later. Some games also have implicit time limits, such as my turret minigame.

[quote name='PokeParadox' date='Apr 10 2009, 09:45 PM' post='718930']
[quote name='B-ZaR' date='Apr 10 2009, 12:12 PM']
This reminds me, are all the minigames supposed to implement the pause functionality on their own?
[/quote]There is a pausing variable and a pausing template function which you may override on a per-state basis. So you just check it for rendering and check it when updating. Some code snippets below:
Pause/unpause
CODE
example code

[/quote]
Yes, I noticed this. Couldn't this be handled outside the minigames? If pause is pressed, the engine won't call any of the minigame's methods? Nooo... now I see. The games may want to implement some functionality to be done on pause and after it, like stopping/starting counters. This could however be done with separate "onPause" and "afterPause" virtual methods. The only reason to still call the update/render methods during pause would be to keep animating game objects or something like that. Is this really necessary? The pause code in the minigames is probably mostly stuff you always copypaste and which "just has to be there". I smell future bugs :)

[quote name='PokeParadox' date='Apr 10 2009, 09:45 PM' post='718930']
[quote name='Mithrildor' date='Apr 10 2009, 01:07 PM']
Yeah, remove the pause and add timelimits!
[/quote]
Ack but we went through all the games putting the pause checking in... trying to get every game behaving similarly! We can't please everyone... :/
Timelimits is an easier thing to add though...
[/quote]
This is why I'd recommend to make the pause functionality an engine side feature. You wouldn't need to go through all the minigames to implement it. Timelimits and wariowarebomb-like graphics could also be an engine feature. For example, minigames could choose to implement "virtual unsigned int getTimelimit() const", which would return the wanted time limit in milliseconds. Then the graphics could be overlaid after the minigame's render() method.
 
Last edited by a moderator:
Back
Top