Pandora Pandora Panic


todd said:
If PanicAttack is the only thing stopping you from releasing an update, please just leave it out. I'll try to work on it when I get some time. I don't want to hold up the works!
Amen to that, lol. No basically I found a few more bugs that weren't good. Things have taken longer than needed. and my days off haven't been as free as would be ideal to get things done. Tomorrow I have the hell shift, saturday my next day off. I will make sure something is released on Sat!

I need some ideas to finish the PandoraPanic! engine:
Score screen, I was going to make a ScoreScreen class that both states can use so it cuts out redundant code... I'm thinking this just needs tidying to the resolution and the fireworks tweaking and using the PandoraPanic! font.

I'm kinda not sure about the Credits screen.... I need some ideas about how to do the credits... I want to incorporate everything that was submitted to be used and I would like maybe to show mini screenshots of each game as it is mentioned. I'm thinking we can fade in the shot square by square or something, but I really don't know, but I don't want to just do the CromoZome credits screen! :D
So any ideas and we will try to make it happen. They credits screen itself could even be a collab since a few of you minigame submitters are a lot more capable than you think you are! ;)

But yes I'm alive, updates are still coming bug life is chaos and we have to adapt... lol
Goodnight I need sleep for the hellshift tomorrow *cries*
 
Last edited by a moderator:
Ok it should be uploaded within 10 mins, It's not the major update I was intending, but I am struggling to find energy for anything recently. I hate feeling like this, I want to get things done, blame my current crappy job... :/

What is updated is that the support for checking if a new game has been added.
Some bugs have been fixed regarding SelectionBox, Particles.
SimpleJoy is added.
Mouse/Touchscreen support added back to the TitleScreen.

I've also started writing the PandoraPanic! specific scores entry/display screen. In a way I'm glad to keep hearing all the hitches that mean that Pandora might be released a little later, because it's not going plain sailing for me here either! :lol:

NOTE: ONLY the framework package has been updated today, I have not updated the build or anything else. I just want to make sure you all have the latest code to work with.
 
Poke,

Thanks for the update!

There were still some capitalization mismatches with the PunchWrestler game so that the project wouldn't build for me. I changed all the capitalization of the trabitboy files and their related #includes. You can get that from my copy of the framework.

I noticed a few issues of which you may or may not be aware.

I hadn't noticed before how similar PanicAttack is to Reflex. Ooops. I can withdraw it if you guys think it's too much the same thing.

DistractedMaths has very funny background music. It made me laugh out loud. Awesome! All the music sounds fabulous today, with my machine hooked up to my stereo instead of just listening to the laptop speakers. Nice job, musicians.

The game seg faults on me whenever it tries to run PunchWrestler.

The "Select Box" no longer defaults to the game you just played. It was before that I could select a game, play it, then just hit enter again to start the game again. Very nice. Now, though, it goes back to the first game in the menu.

Finally, I changed PanicAttack so as to remove conflicts with other code: it all builds and plays together happily now. That is available, again, in my copy of the framework.

Question: why is my archive of the framework over twice as big as yours? Is 7zip really that radically better than bzip? This bears some googling.

Thanks for your hard work, Poke, especially in light of you job situation. I'm starting to get played out in my enthusiasm for working out PandoraPanic as well: I'm ready to see it published and done! So we'll see if I can muster up the stamina to re-open BadVista (e.g., to add difficulty levels). Don't hold your breath! :p

However, TheBrainSquid has offered to help me with some graphics on PanicAttack, so we'll be trying to get a new version of that done in the near future.

Thanks to all my fellow mini-game writers, too: this is looking great!

--Todd
 
Oh yeah... I knew I forgot something!

Include "SimpleJoy.h", right? It looked like you'd already changed PanicAttack to use that.

So Penjin detects my controller, but it doesn't seem to respond to any of the controls:

CODE

Penjin says: No command line args provided.
1 joysticks found
Gravis Eliminator GamePad Pro
Axis: 2
Trackballs: 0
Hats: 0
Buttons: 10
Penjin says: No errors detected.



Is my controller just too lame? :)

--Todd
 
Hi , thanks for the update !
I'll get that and merge it with my code.

QUOTE

There were still some capitalization mismatches with the PunchWrestler game so that the project wouldn't build for me. I changed all the capitalization of the trabitboy files and their related #includes. You can get that from my copy of the framework.



sorry I build on win32 it is case insensitive :(

QUOTE
The game seg faults on me whenever it tries to run PunchWrestler.

it happened to me once when I forgot to copy the gfx/ sfx needed.
maybe the paths to the file are not "case sensitive correct" ,
I will check .

QUOTE
I'm starting to get played out in my enthusiasm for working out PandoraPanic as well: I'm ready to see it published and done! So we'll see if I can muster up the stamina to re-open BadVista (e.g., to add difficulty levels). Don't hold your breath!


I understand , and Poke seem pretty exhausted too.
Personally I still have motivation because I think it is achievable to do something great;
Normally I do not have any problems releasing things I consider unfinished when it is in any kind of competition, because it's part of the spirit.
However for this project, it's really meant to be played by people,
I don't really see the point to release something if we are not 100% satisfied with playability of the product.
( I respect it if the other contributers just want to release it and finish but in this case just do not put my name in the credits )

So how many of the mini game writers are still reading this thread and still have fuel?

I have an update on mad wrestler and another game in the oven still.

EDIT:
btw poke what is the list of things to fix related with the framework ?
If you are too busy maybe we can have a look .
 
I'm just going to reply very quickly in summary:
  • I thought I fixed all those case mismatches previously... only thing I can think of is adding the updated code reintroduced them.
  • I didn't know either, because I never got it compiled here, so I'll be glad to take a look. But even if it is similar WarioWare did variations of the same idea too, so I'm sure this would be no different in concept.
  • I'm very happy with the music that has been submitted specifically for the project. It certainly adds to the overall feel of the game. Pat on the back all round, heh.
  • The only thing I can think of is it's a casing error with the filenames. If you check the images some are PNG and some are png. This would trip up the image loading under linux (Yes I need to improve error handling in this area /me taps own wrist)
  • Did selection box do that previously? hmmm Some of my fixes may have broken that behaviour but certainly it should remember the currently selected game to be more user friendly.
  • I'll add that into my local copy, thanks muchly!
  • 7-Zip is an awesome open source compression algorithm many times it beats RAR too. I also set the settings to Ultra when I compress.
  • Uck I have the want to get this done but currently all motivation is being drained away from being constantly tired... it's the time of year too of course but I'll see what I can muster up to get stuff done...
    All the best to you too! Lack of motivation is a real PITA...
Anyways need sleep... thanks for the encouragement, Rock On PandoraPanic! Posse! ;)
 
todd said:
Is my controller just too lame? :)
ha ok I'll reply to this and then go... heh.
It's really silly but still the only thing that SimpleJoy uses right now is the axis. It needs more work but it's a unified Joystick class so you can use the same object to make GP2X games, etc.
It detected the 2 axes of your pad, so if you use the analogue stick you can test it using your usb joystick and the code should work on the actual pandora and the nubs (with some minor tweaking of the class once we know more specifics)
I do want it so that you can plug in another joystick on Pandora or plugin in a joystick on PC and automaically use buttons on the pad, but this requires button mapping. It's not easy because everyone has a different USB joystick.

In short this was a quick fix so we can dev some nub-enabled Pandora mini-games, but we need some sort of button mapping built into SimpleJoy in order to support different USB sticks.


I hope that explanation covers it!


and trabitboy, yeah of course we want this to be a "finished" product that the public will play. We do need to polish the rough edges. I think worse case scenario is we will miss the Pandora disc and release later. It would just be awesome if we could get the game onto the first batch(and future batch?) discs though.
 
Last edited by a moderator:
_trabitboy said:
btw poke what is the list of things to fix related with the framework ?
If you are too busy maybe we can have a look .
I will get to bed soon (I've planned for some overspill so don't feel too guilty, I'll still catch up xD)

Hmmm from the top of my head. There shouldn't be any show-stopping bugs. But some things that need doing in order for the game to be "ready" are:
  • SelectionBox to remember last game.
  • Timing of Colour changing on title screen to be more in sync with the music
  • random stages could decrease in probability the more frequent they are
  • Hi Score screen needs tidying up since it's still the one from CromoZome which was a 320x240 game for GP2X
  • Scaling and Rotations may be too much for Pandora since SDL does it by software. Some precaching may save the effect on Pandora, or it could be scrapped to just use the colour changes and particles, etc.
It's basically loose ends that need tying, some of which need a little thought. Even a little thought can be difficult with a muggy lack of motivation mind. You are most welcome to patch up anything that needs patching.
 
Last edited by a moderator:
Traitboy,

Thanks for taking my criticisms in the spirit intended: I didn't realize until you replied that I carped on your game a couple different ways -- and I haven't even gotten to run it lately! Yeah, accounting for dependencies that might not be installed on other systems/architectures can be challenging, to say the least.

I'm not completely out of gas, but contemplating a big road-trip to see family next weekend, trying to cope with a new project at work, and wanting to make PanicAttack nice. Among other obligations/interests/hobbies. :) Like all of us. Of course, it didn't help that I spent a couple nights this week putting together an Arduino board and making pretty patterns with LED's. :D

But I agree with you Trabitboy, and it sounds like Poke does, too. We definitely want this to come out the other end as something stable, usable and fun that people would be likely to leave installed on their Pandoras. Balancing that with the realities of interest/time/etc. for a volunteer effort sometimes mean the optimal solution is not in gold-plating, but in knowing when to stop. I want to add sound effects to BadVista, but before I add levels I'm going to need to have at least a weekend, maybe two, lined up to make it work well. Otherwise, I figure I'm better off leaving it working well but simply. PanicAttack, though, is still a work-in-progress. One that I desperately want to have done before Christmas!


On a different (but tangentially related) topic:

I like repeating a game until I pass it. Assuming the game works properly! :eek: That way you really feel like you're making progress and passing a level. OTOH, when I lose the game, I appreciate the opportunity to attack it again immediately. Especially for a game like BadVista where it's all about learning the right timing.

I agree, if BadVista is misbehaving, it would be painful trying to get past it. But if it's misbehaving for the end-users, then it needs to be removed, not just passed by.

--Todd
 
I'm still alive folks, just suffering under the joys of global economic meltdown and a traditionally bad for business christmas season. :(

Something about BadVista in the latest release is stopping me from being able to compile. Don't know why it can't find Background but that's where the troubles start. Commenting out BadVista in MyGame.cpp and userStates.h gets me back into the game.
 
i'm alive :) I'll be having some spare time very soon, going to make the (final) update on doublenubtrouble. Not sure about the simplejoy thing though, i don't have a joypad :( Could someone please post/pm me some working code and some expected readouts of the values?
 
Miggles said:
Updates to Pong can be found here: http://drop.io/PandoraPan1c

Minor changes to the difficulty settings make a huge difference.


Thanks again for the updates!


MarkoeZ said:
i'm alive :) I'll be having some spare time very soon, going to make the (final) update on doublenubtrouble. Not sure about the simplejoy thing though, i don't have a joypad :( Could someone please post/pm me some working code and some expected readouts of the values?
OK sorry, I really suck at documentation right now, huh?
Right first up as you may know you'll have to #include "SimpleJoy.h" and then you can create a SimpleJoy object and call it what you want.
Following this:

CODE

/// Setup a deadzone for both sticks It will ignore anything within the deadzone.
void setDeadZone(const Vector2di& zone){deadZone = zone;}
void setDeadZoneX(CRint x){deadZone.x = x;}
void setDeadZoneY(CRint y){deadZone.y = y;}

/// Gets a 2D vector for the stick
Vector2di getLeftStick()const{return leftStick;}
Vector2di getRightStick()const{return rightStick;}

/// Get individual axis values for each stick.
int getLeftStickX()const{return leftStick.x;}
int getLeftStickY()const{return leftStick.y;}
int getRightStickX()const{return rightStick.x;}
int getRightStickY()const{return rightStick.y;}

/// Check directions for each stick
bool isLeftStickUp()const{return (getLeftStickY() < 0);}
bool isLeftStickDown()const{return (getLeftStickY() > 0);}
bool isLeftStickLeft()const{return (getLeftStickX() < 0);}
bool isLeftStickRight()const{return (getLeftStickX() > 0);}
bool isRightStickUp()const{return (getRightStickY() < 0);}
bool isRightStickDown()const{return (getRightStickY() > 0);}
bool isRightStickLeft()const{return (getRightStickX() < 0);}
bool isRightStickRight()const{return (getRightStickX() > 0);}



In summary if you want to use a stick as a "digital" controller, you can just check the direction and maybe set a higher deadzone (default is 3200).
If you want to use the stick as analogue you will have to get the vector for the stick or the x or y components and react accordingly as for range... it will be reported by SDL as: -32768..32767 but actual range of hardware may vary (though Pandora will use the same nubs so variations will be minimal.)

As for any further info... without a usb pad you do have a hard task on your hands... I don't really have any ideas that could help you... hmmm
 
Last edited by a moderator:
No need to be sorry, im just not that experienced at coding yet. That combined with the lack of a joypad is making this challenging ;)

But now i have another problem. After i downloaded the latest framework in preparation of the joy functionality, DoubleNubTrouble won't play anymore.

The game builds without errors but when i select DoubleNubTrouble to play it exits to the black end of program screen: Process returned 9... I even reinstalled the gameversion i uploaded 2 weeks ago but it still does not work :(

I've been trying to figure out what is wrong all afternoon, without getting any closer, so any clue to where to look would be helpful. I'd rather be improving then problemsolving.
 
MarkoeZ said:
No need to be sorry, im just not that experienced at coding yet. That combined with the lack of a joypad is making this challenging ;)

But now i have another problem. After i downloaded the latest framework in preparation of the joy functionality, DoubleNubTrouble won't play anymore.

The game builds without errors but when i select DoubleNubTrouble to play it exits to the black end of program screen: Process returned 9... I even reinstalled the gameversion i uploaded 2 weeks ago but it still does not work :(

I've been trying to figure out what is wrong all afternoon, without getting any closer, so any clue to where to look would be helpful. I'd rather be improving then problemsolving.
UPDATE: returning 9 means the state was undefined that it tried to switch to:
CODE

enum PENJIN_ERRORS
{
PENJIN_ERROR = -1,
PENJIN_OK,
PENJIN_PARSE_ERROR,
PENJIN_FILE_NOT_FOUND,
PENJIN_UNABLE_TO_SAVE,
PENJIN_TEXTURE_CONVERSION_ERROR,
PENJIN_NO_COMMANDLINE,
PENJIN_INVALID_COMMANDLINE,
PENJIN_INVALID_INDEX,
PENJIN_INVALID_MENUITEM_TYPE,
PENJIN_UNDEFINED_STATE, //9
// SNIP


What this means is that you haven't added the state into the statehandling code. If you check the log file it *should* have spit out a sensible message telling you to check void MyGame::stateManagement()
Go there and...
CODE

else if (next == STATE_DISTRACTEDMATH)
state = new StateDistractedMath;
else if(next == STATE_DOUBLENUBTROUBLE) // Make sure this is here and matches up with the state identifier in userStates.h!
state = new StateDoubleNubTrouble;
else if (next == STATE_REFLEX)
state = new StateReflex;



I think what might be happening is you have forgot to tweak userStates.h and MiniGames.h
Remember I excluded your DoubleNubTrouble game from general builds because it is difficult to play with the keys! Make sure the number of minigames is correct too!

I'm sorry it took a while to get back to you but the board didn't say there were any new posts... I only checked here for the downloads that were posted after the framework update.

todd said:
You can get that from my copy of the framework.


Hmmm I'm having trouble extracting the file. I downloaded it a few times to make sure. Any chance you could email me just the changed source files? MY_BOARD_NAME at gmail.com

Anyone else having trouble with it, or did everyone miss that it was posted.?
 
Last edited by a moderator:
Ah found it :) You put // in front of all references to PanicAttack, except with the state mode in userstates.h. Since NubTrouble is the first game after that, it failed
 
Update of DoubleNubTrouble

I really wanted to use the nubs analogue, but i've got a feeling it will be too hard to get that configured correctly before i have an actual pandora to test on. It will be something for an updated version after the release.

I implemented the simplejoy class but i need someone (Poke?:p) to tell me if:

a) it works at all

B) "feels" reasonable

c) what a good estimate for a timerlength would be so that with 9 birds it's just passable

The code for level increases is allready there but commented out for now since i need feedback on the timer issue. Basically, a bird will be added every 5 levels with a max of 9 birds.
 
It does work, but you should try and use the analogue functions and not the digital ones... It's very very tricky! xD

I know you're are coding blind though so well done for making both stick move the targets, :lol:

I think you need to try and find a cheap dual-stick usb pad really ;)

EDIT: some hints:

make scope and scope2 a Vector2di.
You can then use these analogue functions:
CODE

Vector2di getLeftStick()const{return leftStick;}
Vector2di getRightStick()const{return rightStick;}


Scale the values down (I think this works...)
UPDATED: this acts a lot more sensibly with my PS2 controller. Although the time may need increasing because it's still tricky, also I get confused which cursor is which... hmmm. It doesn't help that you can't press a pad button to fire and have to hit the keyboard, but that's my fault with SimpleJoy... :p
CODE

Vector2di leftStick = Input.getLeftStick();
leftStick.x = leftStick.x * 0.0001f;
leftStick.y = leftStick.y * 0.0001f;
scope = scope + leftStick;
Vector2di rightStick = Input.getRightStick();
rightStick.x = rightStick.x * 0.0001f;
rightStick.y = rightStick.y * 0.0001f;
scope2 = scope2 + rightStick;



I will try some quick tests and update... but this is the sort of thing needs doing.
 
dang, you are fast ;) but back to coding then.

But i see i can buy dual stick pads starting at 5 euro on e-bay so ill probably get one (those things used to be much more expensive :blink: ) also fun for 2 player tv pandora!


Edit: And thanks for the tips, the Vector2di part is not exactly clear yet, but im looking into that now
 
See updated post above, I'll leave you to it now. But once you change your variables over to 2d vectors the above snippet works. You may want to constrain the targets on the screen though! :p

Vector2di is basically a construct that holds an x and y for you. the i at the end means it stores int typed values.

What's good about them is you can add them together and it saves you having to add the components yourself. Also lot's of Penjin uses Vector2di types, like Sprite.setPosition(scope);

Is that too many hints? :D
Yeah definitely go for the pad. It will be a LOT easier to tweak your game when you can twiddle your own nobs... erm nubs.

And it's a lot easier to do this stuff when I'm not bogged down by draining shifts... unfortunately this next week is full full full... after tomorrow morning I basically don't have a day off... :/ Going to try and make some progress tonight and tomorrow though... dreading this week. Merry WhateverYouCelebrate to everyone else... :lol:

EDIT: I've tweaked SimpleJoy so that it can handle the scaling of the joy values for you (defaulting to 0.0001f as in my example...)
You'll be able to set this scaler with Input.setScaler(float s);

And with these changes it's possible to simplify the DoubleNubTrouble code to:
CODE

scope = scope + Input.getLeftStick();
scope2 = scope2 + Input.getRightStick();


:lol:
If you want MarkoeZ, I can email you the updated SimpleJoy class (or anyone else that needs it)
 
Back
Top