Dark Bit Factory & Gravity
GENERAL => Challenges & Competitions => Topic started by: benny! on January 27, 2008
-
UPDATED VERSION - PLEASE READ LAST POSTS !!!!
Hi all,
here is my little entry for the 2BUTTON GAME
COMPETITION.
About
It is a little pong clone written in C/C++. You
play pong versus yourself controlling both
bats simultaneously. Try to keep the ball as
long as possible on the field.
Demoscene factor
Well, unfortunately there aren't any demo-
scenish effects in it. However I hope the fact
that it has the size limitation of 1kb draws a
connection to the demoscene.
Controls
Use left/right cursor key to control. No ad-
ditional keys for start/end used. The game
starts right after it is loaded and quits auto-
matically after the ball gets lost.
Credits
Coding: benny!weltenkonstrukteur.de
Packer: Crinkler1.0a
Thanks: chris from which sources I learned
and took so much!
[EDIT]
Updated version with proper exit. Thanks to rbraz
[/EDIT]
-
Great 1K Benny 8) the quit is a bit dull for the gameplay but there are no room for that, and of course it has a connection to the demoscene.
-
I'm running vista 32 and when i loose i haveto do a ctrl+alt+delete to get rid of it.
1k is cool, but the game is far to hard, at least for me. managed to get 3 bounces and then the ball went far to fast... probably just me though.
-
Thanks a lot, Buckethead.
...the quit is a bit dull for the gameplay ...
You are totally right. The gameplay is boring and not
very smooth and unoptimized, also. But the whole
thing was more than a proof-of-concept to squeeze
a game into 1kb.
Btw. I searched pouet for other 1kb-windows games ?
I didn't find any - does anyone know a link to other
existing ones ??=
-
I'm running vista 32 and when i loose i haveto
do a ctrl+alt+delete to get rid of it.
Strange. I tested it on WindowsXP and Vista
Home Premium. And it ended normally ... hmmmm.
1k is cool, but the game is far to hard, at
least for me. managed to get 3 bounces
and then the ball went far to fast...
probably just me though.
That might be because of my rubbish code.
I tried to implement somekind of constant
framerate stuff - but I guess it is not
working probably.
-
Benny: I never run a 1K Windows game before. :)
-
Congratulations for getting a game into 1kb! You have spare bytes too :)
Refresh was constant and smooth here.
-
Congratulations for getting a game into 1kb!
...
Thanks mate.
...
You have spare bytes too :)
...
Every is welcome to make a add some code to fill
the spare bytes ;-) Source is available here (http://dbfinteractive.com/index.php?topic=2860.msg39159#new).
...
Refresh was constant and smooth here.
...
That's good news.
-
Very cool idea benny! 8)
I must try something like that in 1kb too ;D
Some people are having problems when your program exit, try to add "ExitProcess(0)" in the end of your code and it might solve this problem, I hope you have free bytes for that :)
-
Huge kudos for game in 1k (remember zx-81 chess?). I accept your argument that its demoscene related by being 1k. Very much so infact. But then , I would :-)
-
Very cool idea benny! 8)
I must try something like that in 1kb too ;D
Yeah. Looking forward to see more 1kb/4kb controllable
fx 8-)
Some people are having problems when your program exit,
try to add "ExitProcess(0)" in the end of your code and it
might solve this problem, I hope you have free bytes for that :)
Good idea.Thx.After all size-reducing I forget about it. Source
updated (see C/C++ forum) and new version attached.
The ExitProcess(0)-function costs 3bytes
Huge kudos for game in 1k (remember zx-81 chess?).
Unfortunately not ... I am going to google it ;)
I accept your argument that its demoscene related by being 1k.
Very much so infact. But then , I would :-)
;-)
-
thats allot better it quits like it should, and it seems to run at a more human speed :) stable 60 fps.
Edit: just noticed that i had like 20 "monoPongk-1k.exe" running in the taskmanager from the first exe :P no wonder i couldn't delete the exe.
-
Very cool idea. Is there any possible way to include a score display? Also the exiting is pretty frusterating. If those lines of code would kill this I understand. I've never seen a game so small!
-
Very cool idea. Is there any possible way to include a score display?
Also the exiting is pretty frusterating. If those lines of code would kill
this I understand. I've never seen a game so small!
Ja. I tried to implement a scoring system via opening a message-
requester on exist showing the score. Unfortunately I couldn't
manage to stay in the size-limit of 1024 bytes with that.
If someone is able to play around with my code and can add a
scoring display that would truley rock !!!
-
hi benny!
Very nice 1k game! I would be proud if it would be my production *grin*. K++ for the nice work and for the source! As you may know i dont get work any C/CPP code (even i want to learn CPP)... i just did a small view to your source and possible following thing could optimize your exe size!? (i cant test here, sorry)... Hope i didnt made any mistake
Your original source:
Static void drawBat(void) {
glBegin(GL_QUADS);
glVertex2f(NULLNULL, NULLNULL);
glVertex2f(NULLNULLFIVE, NULLNULL);
glVertex2f(NULLNULLFIVE, NULLTWO);
glVertex2f(NULLNULL, NULLTWO);
glEnd();
}
Static void render( void ) {
glClear( GL_COLOR_BUFFER_BIT );
glLoadIdentity();
glTranslatef( NULLNINE, -NULLNULLEIGHT + batY, NULLFIVE );
drawBat();
glLoadIdentity();
glTranslatef( -NULLNINE, -NULLNULLEIGHT - batY, NULLNULL );
drawBat();
glLoadIdentity();
glTranslatef( ballX, ballY, NULLNULL );
glBegin(GL_QUADS);
glVertex2f(NULLNULL, NULLNULL);
glVertex2f(NULLNULLFIVE, NULLNULL);
glVertex2f(NULLNULLFIVE, NULLNULLFIVE);
glVertex2f(NULLNULL, NULLNULLFIVE);
glEnd();
}
Just try out to replace it with this (its possible to optimize it a bit, to save some more bytes!):
Static void drawObject( fTransX:float, fTransY:float, fTransZ:float, fLeft:float, fBottom:float, fRight:float, fTop:float )
{
glLoadIdentity();
glTranslatef_( fTransX, fTransY, fTransZ, );
glBegin(GL_QUADS);
glVertex2f( fLeft , fBottom );
glVertex2f( fRight, fBottom );
glVertex2f( fRight, fTop );
glVertex2f( fLeft , fTop );
glEnd();
}
Static void render( void ) {
glClear( GL_COLOR_BUFFER_BIT );
// glLoadIdentity();
// glTranslatef( NULLNINE, -NULLNULLEIGHT + batY, NULLFIVE );
// drawBat();
// glLoadIdentity();
// glTranslatef( -NULLNINE, -NULLNULLEIGHT - batY, NULLNULL );
// drawBat();
// glLoadIdentity();
// glTranslatef( ballX, ballY, NULLNULL );
// glBegin(GL_QUADS);
// glVertex2f(NULLNULL, NULLNULL);
// glVertex2f(NULLNULLFIVE, NULLNULL);
// glVertex2f(NULLNULLFIVE, NULLNULLFIVE);
// glVertex2f(NULLNULL, NULLNULLFIVE);
// glEnd();
drawObject( NULLNINE, -NULLNULLEIGHT + batY , NULLNULL, NULLNULL, NULLNULLFIVE, NULLTWO );
drawObject( -NULLNINE, -NULLNULLEIGHT - batY , NULLNULL, NULLNULL, NULLNULLFIVE, NULLTWO );
drawObject( ballX, ballY, NULLNULL, NULLNULL, NULLNULLFIVE, NULLNULLFIVE );
}
But as i have seen you are using floats, which needs some extra space in the exe... you can do all the things with integers and dont need to use OGL-floating commands, i am sure this will produce a small exe too. good luck!
-
@benny:
i am not sure but i cant find something like glColor3f( r,g,b ) in your source to define the objects colors. However, try to replace all the float OGL commands with integer OGL commands like:
glColor3f (floating values) --> glColor3b (bye values) --> glColor3i (integer values)
glVertex2f (floating values) --> glVertex2i (integer values)
Possible you can cut off then floatAbs()... and at least you can try to set the display/screen to 640x480 (integers) for example instead -1 to +1 as dimension where you need to calc with floats to set a x/y position.
-
just a fast thought, you could try out and play/experience with to get a rounded ball and possible smaller exe size!? Instead using glVertex2f / glVertex2b / glVertex2i / glVertex2ui to create filled quads for the paddle and ball object, you could try to use GLUT API which could save you some bytes by using inbuild 3d objects like:
glutWireCube ();
glutSolidCube ();
glutWireSphere ();
glutSolidSphere ();
-
Well done Benny!
Very nice 1k. :clap:
-
Thanks for nice feedback.
@va!n:
Thanks a lot for optimization hints. I feedbacked your tipps
in the c++ source board.
-
Good Karma given because you shared the source :)
Nice to see a 1kb game, I am sure you could put some score system?
Anyway, great that you got a game into only 1kb!
-
@WidowMaker:
Thx mate.
@topic:
Just if someone is interested in it - mr. doob has just
done a flash version of that game. Have a look here:
http://www.pouet.net/prod.php?which=48996 (http://www.pouet.net/prod.php?which=48996)
-
Yeah, I saw that!
Wouldn't it be cool if your version of Pong has started a trend? :D
-
Nice 1 Benny1 :)
I still got a pong machine somewhere :D
-
Yeah, I saw that!
Wouldn't it be cool if your version of Pong
has started a trend? :D
Yeah, back to basics 8-)
Nice 1 Benny1 :)
I still got a pong machine somewhere :D
A real pong machine ??? Awesome. Post if
picture of it if possible :-O
-
P_O Funfact: Some people thought that Pong was transmitted from a television station to the machine that they were playing. :whisper:
-
P_O Funfact: Some people thought that Pong was transmitted from a television station to the machine that they were playing. :whisper:
;D really ? lol
-
Hey,
because of so much optimizing help from
the forum (esp. taj) - here is a new ver-
sion of the actual game.
The game is now called p1nkPong !!!
Changelog
- added sound
- added scoring system
- added game loop (game loops infinite
until you press ESC)
- changed controls (use UP/DOWN cursor)
- updated color-scheme (ref. title)
-
Glow!!
Err..edit...I was sure this was glowing last night: I'll put that down to my bad eyesight.
OK, this is much more playable now.
Those binary bars are a very novel solution to not having sprintf available to do a score.
Taj
-
Wouldn't it be cool if the ball collided with the score too? :)
-
@taj:
Whatever it was - please send me some of the stuff
you drank last night ;)
@shocky:
What a great idea - but I guess not possible in the
spare 8 bytes. Personally, the project is closed for me.
Although it could be optimized even more I guess - I
have so many new ideas already. I really learned a lot
with this project thanks to this wonderful community!
-
@benny1: very good update, more fun to play now :goodpost: