Pandora Pandora Panic


One thing you might want to consider adding (at some point, as now you've probably got plenty other things to do) is some way for the user to "enable" or "disable" certain minigames, based on personal preference. Just a bit of polish, I suppose.

(Happy Birthday!)
 
PokeParadox said:
If you look in StateTitle.cpp:
CODE

// The game needs to pass the following variables
/// 0 - PASS / FAIL 0 is fail 1 is pass
/// 1 - Game mode
/// 2 - CurrentStageNo for score purposes
/// 3 - Next stage for ordered progression
/// 4 - RemainingLives
variables.resize(7);
variables[0].setInt(1); // Pass/fail
variables[1].setInt(0); // 0 random, 1 ordered,2 selection
variables[2].setInt(0); // currentstage 0 :)
variables[3].setInt(0); // Start at beginning
variables[4].setInt(3); // Start with 4 lives
variables[5].setInt(1); // difficulty?
variables[6].setInt(1); // First run?

Poke,

I've implemented levels as a static member in my game's class. Unfortunately, a static member is just that -- it doesn't get reset except on initial game load. I can lose my game several times, enter my initials on the scoreboard, start the game again, and continue on the next level instead of starting over. Do you have any suggestions on a good way to fix this?

My best guess is: Whenever the player loses an episode of my game, check how many lives they have left. If it's 0, reset my level variable. Would variables[4] provide this information for me?

Thanks,

--Todd
 
Last edited by a moderator:
todd said:
PokeParadox said:
If you look in StateTitle.cpp:
CODE

// The game needs to pass the following variables
/// 0 - PASS / FAIL 0 is fail 1 is pass
/// 1 - Game mode
/// 2 - CurrentStageNo for score purposes
/// 3 - Next stage for ordered progression
/// 4 - RemainingLives
variables.resize(7);
variables[0].setInt(1); // Pass/fail
variables[1].setInt(0); // 0 random, 1 ordered,2 selection
variables[2].setInt(0); // currentstage 0 :)
variables[3].setInt(0); // Start at beginning
variables[4].setInt(3); // Start with 4 lives
variables[5].setInt(1); // difficulty?
variables[6].setInt(1); // First run?
I've implemented levels as a static member in my game's class. Unfortunately, a static member is just that -- it doesn't get reset except on initial game load. I can lose my game several times, enter my initials on the scoreboard, start the game again, and continue on the next level instead of starting over. Do you have any suggestions on a good way to fix this?

My best guess is: Whenever the player loses an episode of my game, check how many lives they have left. If it's 0, reset my level variable. Would variables[4] provide this information for me?

I think you're onto the right track, that should work. variables[4] does provide the lives yep.
Here is a better run-down of the variable slots.
CODE

variables[0].setInt(1); // Pass/fail - Game passing status
variables[1].setInt(0); // 0 random, 1 ordered,2 selection - game advancing mode
variables[2].setInt(0); // stage for score purposes
variables[3].setInt(0); // the next minigame to load
variables[4].setInt(3); // Start with 4 lives
variables[5].setInt(1); // difficulty?
variables[6].setInt(1); // First run - used to stop music playing all time in certain cases in StateMain



I don't think there is a much better way, but you could create an extra variable slot if you wanted.

PoisonedV said:
How can i use the NEON for single point floats?
I think it is a compiler flag. Regardless I don't know enough about it right now and I need to read up on it myself.
 
Last edited by a moderator:
PokeParadox said:
todd said:
I've implemented levels as a static member in my game's class. Unfortunately, a static member is just that -- it doesn't get reset except on initial game load. I can lose my game several times, enter my initials on the scoreboard, start the game again, and continue on the next level instead of starting over. Do you have any suggestions on a good way to fix this?

My best guess is: Whenever the player loses an episode of my game, check how many lives they have left. If it's 0, reset my level variable. Would variables[4] provide this information for me?
I think you're onto the right track, that should work. variables[4] does provide the lives yep.
Here is a better run-down of the variable slots.
CODE

variables[0].setInt(1); // Pass/fail - Game passing status
variables[1].setInt(0); // 0 random, 1 ordered,2 selection - game advancing mode
variables[2].setInt(0); // stage for score purposes
variables[3].setInt(0); // the next minigame to load
variables[4].setInt(3); // Start with 4 lives
variables[5].setInt(1); // difficulty?
variables[6].setInt(1); // First run - used to stop music playing all time in certain cases in StateMain



I don't think there is a much better way, but you could create an extra variable slot if you wanted.


My suggestion would be to make a variables[7] (initialized to 1 or 0; preference) that keeps track of the number of games played. This would make it easy for games to reset to initial states - they store the "current" number of games played, and if, upon initialization for that round the global number was larger than the state's number, it would update its number and reset the appropriate variables.
 
Last edited by a moderator:
Vorporeal said:
My suggestion would be to make a variables[7] (initialized to 1 or 0; preference) that keeps track of the number of games played. This would make it easy for games to reset to initial states - they store the "current" number of games played, and if, upon initialization for that round the global number was larger than the state's number, it would update its number and reset the appropriate variables.



You have a good point, Vorporeal: if the user expends her last life playing someone else's game, my game will never realize she lost.

Poke, I'm having trouble thinking of a way to do this with the existing information that doesn't result in a race condition. This is due to the random ordering of the games. I don't think any of the information you provide will ALWAYS demonstrate whether two specific runs are within the same game or not. I think the framework may need to give us the hint we need. Like Vorporeal suggested, when the user starts a game, you could increment (or timestamp) into variables[7].

On the flip side, if the user is choosing games one at a time, it would be nice to give her subsequent levels on subsequent runs. But then to reset it if she chooses to start a real game.

(If I was home I'd look at the framework and suggest a place to do this... shouldn't be tough.)

--Todd
 
Last edited by a moderator:
todd said:
You have a good point, Vorporeal: if the user expends her last life playing someone else's game, my game will never realize she lost.

Poke, I'm having trouble thinking of a way to do this with the existing information that doesn't result in a race condition. This is due to the random ordering of the games. I don't think any of the information you provide will ALWAYS demonstrate whether two specific runs are within the same game or not. I think the framework may need to give us the hint we need. Like Vorporeal suggested, when the user starts a game, you could increment (or timestamp) into variables[7].

On the flip side, if the user is choosing games one at a time, it would be nice to give her subsequent levels on subsequent runs. But then to reset it if she chooses to start a real game.

(If I was home I'd look at the framework and suggest a place to do this... shouldn't be tough.)
You can check the game mode in the variables, so you should be able to work something out if the user is playing games from the selection box, in a random/sequential order.
If you need me to put an extra check in StateMain(The mini game queuing state) then this is possible.

Also I must state that no one has stepped forward yet to assist in being a Penjin maintainer/co-dev/whatever fancy-title-you-want as yet. So please if you are even remotely interested let me know ;)

An update on the nub handling... I'm basically getting there I just need to add PC side support to actually test the code... You can also setup the X and Y deadzone to avoid jitter.
 
Last edited by a moderator:
UPDATE: I have a test working ok with my PS2 pad. With the class in it's current state you can plugin a dual analogue pad and test on the PC, but currently buttons of that pad are not checked only the sticks.
 
PokeParadox said:
UPDATE: I have a test working ok with my PS2 pad. With the class in it's current state you can plugin a dual analogue pad and test on the PC, but currently buttons of that pad are not checked only the sticks.
Wow -- too cool. I'm looking forward to trying this out!
 
Last edited by a moderator:
Poke,

Here are a few little updates for the framework. I changed:

StateTitle.h/.cpp
Use variables[7] to store the timestamp each time the user comes to the menu. This means a new timestamp is NOT stored when using the SelectionBox, but it is when you return to the main menu afterwards. Individual games can watch variables[7] to see if it has been modified and thereby know that a new game has begun.

Variable.h/.cpp
Implement != operator

StateMain.cpp
To actually give just four lives and to display the status accordingly. Make sure this works like you want it: before it was giving five lives and, to my eyes, not reporting it in an intuitive fashion.

--Todd
 
Hi,
could someone point me precisely to latest build / framework?
I've been going up the thread nearly to the begin ,
and browsed the wiki, but to no avail ?!?

I'd like to update to latest framework before
trying to setup sprite transparency/sound.

Thanks in advance.
 
trabitboy said:
Hi,
could someone point me precisely to latest build / framework?
I've been going up the thread nearly to the begin ,
and browsed the wiki, but to no avail ?!?

I'd like to update to latest framework before
trying to setup sprite transparency/sound.

Thanks in advance.
Right there: :)
http://projectinfinity.org.uk/doku.php/hom...panic#downloads

It will be updated again within the next couple of days if I get time (working most of the weekend.)
 
Last edited by a moderator:
todd said:
Poke,

Here are a few little updates for the framework. I changed:

StateTitle.h/.cpp
Use variables[7] to store the timestamp each time the user comes to the menu. This means a new timestamp is NOT stored when using the SelectionBox, but it is when you return to the main menu afterwards. Individual games can watch variables[7] to see if it has been modified and thereby know that a new game has begun.

Variable.h/.cpp
Implement != operator

StateMain.cpp
To actually give just four lives and to display the status accordingly. Make sure this works like you want it: before it was giving five lives and, to my eyes, not reporting it in an intuitive fashion.

--Todd


Thanks for the fixes/changes! :) I've added them straight to my copy.
 
Last edited by a moderator:
nearly final for this one, big update:

source
pics
sounds

it's got :
- 3 moves
- randomly generated scenarios
- crappy sounds ;)
- gets very hard very fast

I can go only up to level 10 !
I'm very interested in some playtesting .

this one is mostly releasable,
I'll try to do 2 more for the deadlines:
- one where u jump on head of ennemies à la mario ;)
- one where u are a frog and need to eat flies :ph34r:
 
trabitboy said:
nearly final for this one, big update:

source
pics
sounds

it's got :
- 3 moves
- randomly generated scenarios
- crappy sounds ;)
- gets very hard very fast

I can go only up to level 10 !
I'm very interested in some playtesting .

this one is mostly releasable,
I'll try to do 2 more for the deadlines:
- one where u jump on head of ennemies à la mario ;)
- one where u are a frog and need to eat flies :ph34r:


Your source archive seems to be missing the main state CPP: StatePunchWrestler.cpp but nice to see some updates :)
 
Last edited by a moderator:
here is the complete source archive:
source

I had to create a second login for my home access,
password recovery doesn't work, did anyone had this problem yet with the forum?
 
PokeParadox said:
It will be updated again within the next couple of days if I get time (working most of the weekend.)
Poke,

I sure understand about working, so this is less a request and more a word of encouragement! I'm looking forward to the next release with the controller buttons support incorporated. I'm making good progress on my next game, "Panic Attack". Basically all I have left is to set up the difficulty based on the level and to tie all the controls to the buttons in your new API. Then I'll upload it, let everyone see how sorry it looks, and hopefully find a willing artist to pretty it up for me. :)

--Todd
 
Last edited by a moderator:
todd said:
PokeParadox said:
It will be updated again within the next couple of days if I get time (working most of the weekend.)
Poke,

I sure understand about working, so this is less a request and more a word of encouragement! I'm looking forward to the next release with the controller buttons support incorporated. I'm making good progress on my next game, "Panic Attack". Basically all I have left is to set up the difficulty based on the level and to tie all the controls to the buttons in your new API. Then I'll upload it, let everyone see how sorry it looks, and hopefully find a willing artist to pretty it up for me. :)

--Todd

Well I'm working 12-8 today... Maybe tonight I can make an update, we'll see how tired I am! I've also fixed a particle engine bug incidentally.

If you want to setup up joystick handling in a no fuss manner, then just use the GP2XJoy class... all that is required is to switch the class to SimpleJoy as it's almost the same in structure.

Glad you're making good progress, can't wait to see another mini game! :D
 
Last edited by a moderator:
PokeParadox said:
If you want to setup up joystick handling in a no fuss manner, then just use the GP2XJoy class... all that is required is to switch the class to SimpleJoy as it's almost the same in structure.
Sweet. Are "isL()" and "isR()" the shoulder buttons? Any hints on which keyboard keys connect to which signals? Is the difference with SimpleJoy just that you will be able to modify it easily for the Pandora hardware? Is USB controller support unique to SimpleJoy? (I guess I should try it out with the current setup.)

Thanks.

--Todd
 
Last edited by a moderator:
Back
Top