Ballgame Hd


RomanH

Still Fresh
Joined
Nov 8, 2005
Messages
87
Hi everybody

I've had a pretty much finnished Free Software/Open Source puzzle game lying on my harddrive for over a year now. I wrote it a long time ago and wanted to port it to the Pandora once I received my console but that hasn't happened yet (and who knows when it will happen...). So I now turn to the community. Is anybody interested in porting the game to the Pandora for me? (It's written in C and it's using the SDL libraries)

...and of course I also look for somebody who could make some cool music for the game!

Here's a link to the game (incl. Windows binaries so you can try it): DevC_BallGame_0.93.zip
Update: Here's a link to the Pandora-Version of the game (incl. Windows Binaries!): Link

Thanks!

RomanH

-----

Some info about the game...

Credits:
Code by me (RomanH)
Graphics by Pixitu

Link to a YouTube-Video of the game in action:
http://www.youtube.com/v/mNDm7-l5udQ

some screenshots
Bild1.png

Bild2.png

Bild3.png

Bild4.png
 
Last edited by a moderator:
Hej there!

This looks and plays really nice. I will have a look if I find some time for it today.

(...if sebt isnt faster)
 
Okay, after a few changes it works on the pandora(better than on my netbook). I will see if I manage this with packing up a pnd... never did it before :p

(err, is "Ballgame HD" okay for the name or can you think of something better???)
 
Wow! How awesome is that! :)

Thanks!

Yeah, the name is "BallGame HD" because it's the sequel to my older game "BallGame". It's also always been the working title...

once again, thanks!

RomanH

P.S. I guess it runs better on the Pandora than the netbook because SDL is hardware accellarated? (gosh, how I look forward to SDL 1.3 so I can finally run my prgrams on Linux at decent frame rates...)
 
RomanH said:
P.S. I guess it runs better on the Pandora than the netbook because SDL is hardware accellarated? (gosh, how I look forward to SDL 1.3 so I can finally run my prgrams on Linux at decent frame rates...)

Do you know what's happening at the moment with SDL 1.3 development, it seems like it's been in a sort of unfinalised state for a long time? Just wondering as I couldn't glean much information from the website.
 
Last edited by a moderator:
Wow! How awesome is that! :)

Thanks!

Yeah, the name is "BallGame HD" because it's the sequel to my older game "BallGame". It's also always been the working title...

once again, thanks!

RomanH

Hey, it's an honour to do so, since this game really is nice. I PM you the .pnd along with the source and some notes, what I changed. It's your decision where you upload it or if you want to go on betatesting.

And yeah, it runs a bit slower on the pandora than it does on the PC, but theres not to much stuttering ;D. If you wish so, I make a video.
 
dude, no offense but...

after hacking the Makefile I got it to compile on Linux. It's no beauty but if anyone else wants to try:

Code:
# Project: BallGame
# Makefile created by Dev-C++ 4.9.9.2

CPP  = g++
CC   = gcc
OBJ  = sources/defineEnvironment.o sources/defineSprites.o sources/defreeze.o sources/drawSprites.o sources/drawText.o sources/dropBall.o sources/gameLoop.o sources/MenuScreen.o sources/kill_Balls.o sources/load_stages.o sources/main.o sources/SDL_initialize.o sources/SDL_input.o sources/SDL_surfaces.o sources/animations.o sources/outputAudio.o sources/kill_Bubbles.o sources/direct_Hits.o sources/drop_all_Balls.o sources/getNextColour.o sources/getPosition.o sources/bomb_stuff.o sources/drawScreen.o sources/filelist.o sources/levelEditor.o sources/credits.o sources/drawMenu.o sources/drawGUI.o sources/joystick.o sources/iniHandling.o 
LINKOBJ  = sources/defineEnvironment.o sources/defineSprites.o sources/defreeze.o sources/drawSprites.o sources/drawText.o sources/dropBall.o sources/gameLoop.o sources/MenuScreen.o sources/kill_Balls.o sources/load_stages.o sources/main.o sources/SDL_initialize.o sources/SDL_input.o sources/SDL_surfaces.o sources/animations.o sources/outputAudio.o sources/kill_Bubbles.o sources/direct_Hits.o sources/drop_all_Balls.o sources/getNextColour.o sources/getPosition.o sources/bomb_stuff.o sources/drawScreen.o sources/filelist.o sources/levelEditor.o sources/credits.o sources/drawMenu.o sources/drawGUI.o sources/joystick.o sources/iniHandling.o
LIBS =  -lSDLmain -lSDL -lSDL_mixer -lSDL_image
INCS =
BIN  = BallGame
CFLAGS = $(INCS) -Dmain=SDL_main
RM = rm -f

.PHONY: all all-before all-after clean clean-custom

all: all-before BallGame all-after


clean: clean-custom
        ${RM} $(OBJ) $(BIN)

$(BIN): $(OBJ)
        $(CPP) $(LINKOBJ) -o "BallGame" $(LIBS)

sources/defineEnvironment.o: sources/defineEnvironment.cpp
        $(CPP) -c sources/defineEnvironment.cpp -o sources/defineEnvironment.o $(CXXFLAGS)

sources/defineSprites.o: sources/defineSprites.cpp
        $(CPP) -c sources/defineSprites.cpp -o sources/defineSprites.o $(CXXFLAGS)

sources/defreeze.o: sources/defreeze.cpp
        $(CPP) -c sources/defreeze.cpp -o sources/defreeze.o $(CXXFLAGS)

sources/drawSprites.o: sources/drawSprites.cpp
        $(CPP) -c sources/drawSprites.cpp -o sources/drawSprites.o $(CXXFLAGS)

sources/drawText.o: sources/drawText.cpp
        $(CPP) -c sources/drawText.cpp -o sources/drawText.o $(CXXFLAGS)

sources/dropBall.o: sources/dropBall.cpp
        $(CPP) -c sources/dropBall.cpp -o sources/dropBall.o $(CXXFLAGS)

sources/gameLoop.o: sources/gameLoop.cpp
        $(CPP) -c sources/gameLoop.cpp -o sources/gameLoop.o $(CXXFLAGS)

sources/MenuScreen.o: sources/MenuScreen.cpp
        $(CPP) -c sources/MenuScreen.cpp -o sources/MenuScreen.o $(CXXFLAGS)

sources/kill_Balls.o: sources/kill_Balls.cpp
        $(CPP) -c sources/kill_Balls.cpp -o sources/kill_Balls.o $(CXXFLAGS)

sources/load_stages.o: sources/load_stages.cpp
        $(CPP) -c sources/load_stages.cpp -o sources/load_stages.o $(CXXFLAGS)

sources/main.o: sources/main.cpp
        $(CPP) -c sources/main.cpp -o sources/main.o $(CXXFLAGS)

sources/SDL_initialize.o: sources/SDL_initialize.cpp
        $(CPP) -c sources/SDL_initialize.cpp -o sources/SDL_initialize.o $(CXXFLAGS)

sources/SDL_input.o: sources/SDL_input.cpp
        $(CPP) -c sources/SDL_input.cpp -o sources/SDL_input.o $(CXXFLAGS)

sources/SDL_surfaces.o: sources/SDL_surfaces.cpp
        $(CPP) -c sources/SDL_surfaces.cpp -o sources/SDL_surfaces.o $(CXXFLAGS)

sources/animations.o: sources/animations.cpp
        $(CPP) -c sources/animations.cpp -o sources/animations.o $(CXXFLAGS)

sources/outputAudio.o: sources/outputAudio.c
        $(CPP) -c sources/outputAudio.c -o sources/outputAudio.o $(CXXFLAGS)

sources/kill_Bubbles.o: sources/kill_Bubbles.cpp
        $(CPP) -c sources/kill_Bubbles.cpp -o sources/kill_Bubbles.o $(CXXFLAGS)

sources/direct_Hits.o: sources/direct_Hits.cpp
        $(CPP) -c sources/direct_Hits.cpp -o sources/direct_Hits.o $(CXXFLAGS)

sources/drop_all_Balls.o: sources/drop_all_Balls.cpp
        $(CPP) -c sources/drop_all_Balls.cpp -o sources/drop_all_Balls.o $(CXXFLAGS)

sources/getNextColour.o: sources/getNextColour.cpp
        $(CPP) -c sources/getNextColour.cpp -o sources/getNextColour.o $(CXXFLAGS)

sources/getPosition.o: sources/getPosition.cpp
        $(CPP) -c sources/getPosition.cpp -o sources/getPosition.o $(CXXFLAGS)

sources/bomb_stuff.o: sources/bomb_stuff.cpp
        $(CPP) -c sources/bomb_stuff.cpp -o sources/bomb_stuff.o $(CXXFLAGS)

sources/drawScreen.o: sources/drawScreen.cpp
        $(CPP) -c sources/drawScreen.cpp -o sources/drawScreen.o $(CXXFLAGS)

sources/filelist.o: sources/filelist.cpp
        $(CPP) -c sources/filelist.cpp -o sources/filelist.o $(CXXFLAGS)

sources/levelEditor.o: sources/levelEditor.cpp
        $(CPP) -c sources/levelEditor.cpp -o sources/levelEditor.o $(CXXFLAGS)

sources/credits.o: sources/credits.cpp
        $(CPP) -c sources/credits.cpp -o sources/credits.o $(CXXFLAGS)

sources/drawMenu.o: sources/drawMenu.cpp
        $(CPP) -c sources/drawMenu.cpp -o sources/drawMenu.o $(CXXFLAGS)

sources/drawGUI.o: sources/drawGUI.cpp
        $(CPP) -c sources/drawGUI.cpp -o sources/drawGUI.o $(CXXFLAGS)

sources/joystick.o: sources/joystick.cpp
        $(CPP) -c sources/joystick.cpp -o sources/joystick.o $(CXXFLAGS)

sources/iniHandling.o: sources/iniHandling.cpp
        $(CPP) -c sources/iniHandling.cpp -o sources/iniHandling.o $(CXXFLAGS)

better read this too. The bin gets build but it instantly segfaults. Now, after some research, initAudio() and LoadJoystickSetup() are completely useless functions that only exist in the header from what I can tell. better comment them out in sources/main.cpp

The code isn't quite an joy to the eye but hey it kinda works. well. kinda. I haven't dived into the main loop yet but it uses 100% cpu. I guess the framerate cap is missing.

Moreover, I only get to the menu, do I need a joystick or somesuch? Since the code for initating the Joystick is commented out too. (SDL_initalize.cpp)
 
Dead1nside said:
Do you know what's happening at the moment with SDL 1.3 development, it seems like it's been in a sort of unfinalised state for a long time? Just wondering as I couldn't glean much information from the website.

I wish I would know what's going on there. the libsdl website hasn't been updated with news on SDL 1.3 for a long, long time now...
 
Last edited by a moderator:
Schnatterplatsch has already compiled a version for the Pandora! Thanks!

You can download it here: LINK

The .zip-file includes the PND, the sources and Windows binaries (incl. all necessary DLLs)

Unfortunately I can't try it since I don't have a Pandora. So, keep in minde that feedback is greatly appreciated but please don't expect quick fixes. :)

edit: fixed link
 
Aj, I forgot it: Linux segfaults if you free() or atoi() NULL. I fixed that in the pandoraversion.
 
I wish I would know what's going on there. the libsdl website hasn't been updated with news on SDL 1.3 for a long, long time now...
[/quote]

It gets Dots, Lines, Circles and some other drawing primitives.

You forgot to set your VERSION number.
I will take the freedom an propose a patch too:
Code:
void playSound(int soundNumber)
{
  if(soundNumber==0){Mix_PlayChannel(0,WavChunk[soundNumber],0);}
  if(soundNumber==1){Mix_PlayChannel(1,WavChunk[soundNumber],0);}
  if(soundNumber==2){Mix_PlayChannel(2,WavChunk[soundNumber],0);}
  if(soundNumber==3){Mix_PlayChannel(3,WavChunk[soundNumber],0);}
  if(soundNumber==4){Mix_PlayChannel(4,WavChunk[soundNumber],0);}
  if(soundNumber==5){Mix_PlayChannel(5,WavChunk[soundNumber],0);}
  if(soundNumber==6){Mix_PlayChannel(6,WavChunk[soundNumber],0);}
  if(soundNumber==7){Mix_PlayChannel(7,WavChunk[soundNumber],0);}
}

to:

Code:
void playSound(int soundNumber)
{
  Mix_PlayChannel(-1,WavChunk[soundNumber],0); // use first avail. channel 
}

anyways. does it use 100% cpu there too?
 
fogobogo said:
dude, no offense but...
[...] initAudio() and LoadJoystickSetup() are completely useless functions that only exist in the header from what I can tell. better comment them out in sources/main.cpp
The code isn't quite an joy to the eye but hey it kinda works. well. kinda. [...]

Don't worry, I won't feel offended. :)
Thanks for taking the time to even try to compile the program! I know it's a crude piece of code, but then again, my coding is all about learning by doing. And believe me, I've still got plenty to learn. :p There's tons of stuff that could be streamlined, corrected, etc. Some of the functions have become useless because I added and deleted features over time and shifted code around when I rewrote entire functions, etc. And I did all of this without a clear goal in mind.
 
Last edited by a moderator:
RomanH said:
Don't worry, I won't feel offended. :)
Thanks for taking the time to even try to compile the program! I know it's a crude piece of code, but then again, my coding is all about learning by doing. And believe me, I've still got plenty to learn. :p There's tons of stuff that could be streamlined, corrected, etc. Some of the functions have become useless because I added and deleted features over time and shifted code around when I rewrote entire functions, etc. And I did all of this without a clear goal in mind.

really sweet graphics I must say
 
Last edited by a moderator:
I'd love to try out the PND of this from the zip file RomanH but your link appears to just lead to the main gp32x.de page?
 
Last edited by a moderator:
fogobogo said:
really sweet graphics I must say

I can't take credit for the graphics. They are made by Pixitu (I think he hangs around in this forum as well)
 
Last edited by a moderator:
Omg! Loving this one so far! Great graphics; nice gameplay! Really addicting. ;)

I did find a bug though: wanted to start creating some levels with the editor, but when I tried to save my creation the game just crashed. :huh:
 
Nupfi said:
Omg! Loving this one so far! Great graphics; nice gameplay! Really addicting. ;)

I did find a bug though: wanted to start creating some levels with the editor, but when I tried to save my creation the game just crashed. :huh:

thanks for the kind words. :)

about the crashing: that was to be expected. The game was developed and tested in Windows only. And since file handling is not 100% the same in Linux and Windows, and since the program probably tries to save inside the .pnd-file the crash is to be expected... Unfortunately, I don't have a Pandora to try to fix it. Maybe I'll set up a Sourceforge project for the game so a cleverer programmer than me can take a look at it. :)
 
Last edited by a moderator:
I will have a look at it.

Started from a normal executable it doesn't crashes, neither if I run it (as a pnd) from my home - directory. From the /pandora/menu, it does... As said, I will try to fix that. But my time is spare, don#t await anything before the weekend...
 
Back
Top