Unstable Ball Game by caiustsm



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.
| code and assets (itch.io) | https://caiustsm.itch.io/ludum-dare-49-entry |
| game (itch.io) | https://caiustsm.itch.io/ludum-dare-49-entry |
| game (itch.io) | https://caiustsm.itch.io/ludum-dare-49-entry |
| Original URL | https://ldjam.com/events/ludum-dare/49/unstable-ball-game |
Ratings
| Overall | 523th | 2.714⭐ | 23🧑⚖️ |
| Fun | 483th | 2.727⭐ | 24🧑⚖️ |
| Innovation | 533th | 2.318⭐ | 24🧑⚖️ |
| Theme | 485th | 2.727⭐ | 24🧑⚖️ |
| Graphics | 526th | 2.114⭐ | 24🧑⚖️ |
| Audio | 393th | 2.55⭐ | 22🧑⚖️ |
| Humor | 400th | 2.088⭐ | 19🧑⚖️ |
| Mood | 483th | 2.206⭐ | 19🧑⚖️ |
| Given | 13🗳️ | 11🗨️ |
I think you did well considering the self-imposed constraints, and thanks for sharing the source code, I had a quick look!
I can see how lacking an editor makes it hard to generate and tweak the scene. Did you consider using a scene representation format and editing the scene in a different tool? I imagine it's a bit overkill to write a custom parser, but maybe something like that already exists?
@brainloaf-studio Yeah I think the fix to the randomness is just to have more points of interaction with the ball. I was thinking about adding more flippers and/or other mechanics such as a plates on the ground which the player can have shoot up under the ball to make it jump manually (giving more control on which areas to get the ball to). This also fixes the issue of having long waiting periods between the ball bouncing around and actually getting to interact with it as mentioned by @recessive. Although you can still just have it bounce around by itself if you want to just sit back and relax and watch it do its thing (which is one of the things I really like about pinball, the simulation-y look at it go part). Another thing is the secret zones and such which could be expanded on, I really like the idea of having exploration in a pinball game, but not restricted to just one course / under glass (but could not add all that due to time).
Where you missing other elements compared to using a special purpose game engine such as Unity? I imagine that the gameplay programming layer (camera, controls, behaviors, AI) is pretty barebones? I'll keep an eye on Ursina to see how it develops!
- Building from source would land me in a psych ward, Write build script?
Bad:
- No quit functionality, have to use Alt+F4 or Ctrl+Shift+Esc to exit.
- Visually bland, needs some color added to it!
- As others have said, ball needs to move just a bit faster.
- Minimal UI.
Good:
- I like the take on the Unstable theme. The instability along with different states make me think you know a thing or two about quantum mechanics ;)
- It reminds me of the pinball game that came with Win 98-XP (I think).
Overall: I like the take on the theme. Despite all the bads I listed, I've never used Panda3D and since I haven't I can't really say what could be better or not as I have no idea. Decent game, just left me wanting a bit more. Good job though!!
Frank - Lubek Enterprises