
Unstable Ball Game
This game is from ldjam.com, which is currently unavailable.
You can try viewing the original page on Web Archive (may not load correctly).
You can try viewing the original page on Web Archive (may not load correctly).
Main idea: Pinball, but the ball is unstable and can fly out of the course (normally under glass), and land in another course.
In this game the goal is to score points by hitting a ball with player controlled paddles (pinball-like), but the ball is unstable and will jump around. The ball has three states: blue, orange, and red. The ball changes states when hitting a bumper. When the ball is in the red (unstable) state, it will jump up the next time it bumps against a bumper.
How to run the game:
- Windows: Extract the zip and find the executable "main.exe", run it. Maximize the window.
- Linux: Extract the tar.gz and find the executable "main", execute it. Maximize the window.
Controls:
- space - start game / launch ball
- a or left arrow - move left paddles
- l or right arrow - move right paddles
- r - reset ball (if stuck)
Point scoring:
- The ball falling outside of the stage or using the reset is -500 points.
- Getting the ball into a goal is +1000 points.
- Hitting a bumper is +10 points.
- Activating a button after it was already primed is +2 multiplied by the number of primed buttons in total.
Errors:
If the game is not opening or there is some other problem (crashes), please run the executable from the console/terminal and post the messages that were printed to it (I did not texture the map, it's not missing textures). If the messages contain file paths with your name/username in them (or other private information), replace them with something else.
Notes:
- I recommend maximizing the window as the ball is small and may be hard to see.
- This game was designed with a 16 by 9 aspect ratio in mind. If your display is not 16 by 9, I recommend resizing the window to match (the window does not need to be exactly 16 by 9, you just need to be able to see the score and the stage/level).
- The Linux version was built and tested on Arch 64-bit.
- The game has sound effects, if you can't hear them then it may be bugged.
- The game does not have textures.
- Panda3D is a good engine, but this is my first time using it to make something more than just a single object in a scene (I have used Ursina, but not Panda3D directly). I recommend it if you want a 3D engine that's easy to get into.
- Lack of an editor to place objects makes most of the game's code about placing objects. It's very tedious and time consuming.
Building from source:
You will need python (3.9 or above), panda3d (pip install panda3d), numpy (pip install numpy), pyinstaller (pip install pyinstaller). Create a new directory named dist. Change your current directory to it, then create a new python virtual environment and activate it. Copy paste the main.py and the sounds and models directories into the dist directory. In the virtual environment install the required packages (via pip, previously listed). Then run "pyinstaller main.py". This will create more files and directories. One of which is named "dist". So there should be a directory "dist/dist". In that directory there should be a directory named "main". That directory will contain the final end result. Copy all shared objects (.so) / DLLs (.dll) from dist/lib/python3.9/site-packages/panda3d into dist/dist/main (overwrite all). Then copy the models and sounds directories into dist/dist/main. The dist/dist/main directory is now complete and can be moved elsewhere or zipped. To run the game just run the executable dist/dist/main/main.
In this game the goal is to score points by hitting a ball with player controlled paddles (pinball-like), but the ball is unstable and will jump around. The ball has three states: blue, orange, and red. The ball changes states when hitting a bumper. When the ball is in the red (unstable) state, it will jump up the next time it bumps against a bumper.
How to run the game:
- Windows: Extract the zip and find the executable "main.exe", run it. Maximize the window.
- Linux: Extract the tar.gz and find the executable "main", execute it. Maximize the window.
Controls:
- space - start game / launch ball
- a or left arrow - move left paddles
- l or right arrow - move right paddles
- r - reset ball (if stuck)
Point scoring:
- The ball falling outside of the stage or using the reset is -500 points.
- Getting the ball into a goal is +1000 points.
- Hitting a bumper is +10 points.
- Activating a button after it was already primed is +2 multiplied by the number of primed buttons in total.
Errors:
If the game is not opening or there is some other problem (crashes), please run the executable from the console/terminal and post the messages that were printed to it (I did not texture the map, it's not missing textures). If the messages contain file paths with your name/username in them (or other private information), replace them with something else.
Notes:
- I recommend maximizing the window as the ball is small and may be hard to see.
- This game was designed with a 16 by 9 aspect ratio in mind. If your display is not 16 by 9, I recommend resizing the window to match (the window does not need to be exactly 16 by 9, you just need to be able to see the score and the stage/level).
- The Linux version was built and tested on Arch 64-bit.
- The game has sound effects, if you can't hear them then it may be bugged.
- The game does not have textures.
- Panda3D is a good engine, but this is my first time using it to make something more than just a single object in a scene (I have used Ursina, but not Panda3D directly). I recommend it if you want a 3D engine that's easy to get into.
- Lack of an editor to place objects makes most of the game's code about placing objects. It's very tedious and time consuming.
Building from source:
You will need python (3.9 or above), panda3d (pip install panda3d), numpy (pip install numpy), pyinstaller (pip install pyinstaller). Create a new directory named dist. Change your current directory to it, then create a new python virtual environment and activate it. Copy paste the main.py and the sounds and models directories into the dist directory. In the virtual environment install the required packages (via pip, previously listed). Then run "pyinstaller main.py". This will create more files and directories. One of which is named "dist". So there should be a directory "dist/dist". In that directory there should be a directory named "main". That directory will contain the final end result. Copy all shared objects (.so) / DLLs (.dll) from dist/lib/python3.9/site-packages/panda3d into dist/dist/main (overwrite all). Then copy the models and sounds directories into dist/dist/main. The dist/dist/main directory is now complete and can be moved elsewhere or zipped. To run the game just run the executable dist/dist/main/main.