Skip to main content

Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines
(+3)

I love the idea behind this topic! For me, this jam was an opportunity to improve my Python skills, and I believe my submission is the only one written in Python (and without an engine). However, much of the source code is hacked together, as I learned the pygame library has some limitations:

  • Outdated collision detection based on creating rects based on images. This method is fine until you want to rotate your colliders (hitboxes), at which point you cannot achieve pixel-perfection anymore. The best solution I can see is to not use the built-in rect system and instead use the Pymunk library for collision handling. Unfortunately, rewriting my game to use a physics library would have caused me to miss the deadline.
  • Modern engines can take multiple inputs within a single frame. Pygame cannot. Let that sink in a moment - you can't detect if two keyboard keys are pressed at the same time. My only workaround was to check for keyup events and use boolean flags to control movement, this way you can press multiple keys around the same time, though it still isn't perfect input detection.
  • Pygame can only play 16-bit audio. This is a problem since most free SFX on the Internet (not to mention background music) is 32-bit or higher. I had to manually re-export all audio using Audacity so they would be downsampled to 16-bit. I believe most published Python games use OpenAL or an actual audio library, so this is something I will be looking to integrate moving forward.

I'll continue to develop my submission (closed source, of course) as a side project learning exercise, but I am not sure if I will ever take it to published completion.

Well you have officially impressed me and also scared me off from learning Python any time soon haha. I'm really impressed with what you were able to pull off given those limitations and I think you should definitely continue to work on it. Bullet hells are all the rage these days and you've definitely made a fun one. Thanks for your thoughts and great work!

(+1)

Nothing wrong with Python, pygame is just behind the times.

Ah I see what you’re saying now! Thanks for the clarification 😁