A significant rewrite of a space shooter game I first programmed at the age of ten, in fifth grade. The original version was filled with what kind of code a ten year old programmer would write in cobbled into 4,000 lines of Python. When I was in my freshman year of high school I decided to rewrite it from scratch because I could not stand the original codebase.
The new version is built using Python and C++. Python is used as the front-end, such as object behaviors and general game logic. C++ is used for performance-critical components because of the number of on-screen objects, including physics, collision detection, raycasting, pathfinding, and various trigonometric/mathematical functions.
C++ and Python are connected through a custom highly optimized C++ wrapper around the bare-bones internal PyCore implementation of the Python C API. This wrapper removes all forms of error checking and optimizes it to prioritize maximum runtime performance over safety.
Features
(not a complete list)
- Continuous collision detection with OOBBs. Broadphase is parallelized through the GPU with OpenCL, narrowphase is parallelized for multicore CPUs with OpenMP.
- GPU-accelerated shaders and particles.
- SIMD Advanced Vector Extensions (AVX2) optimized smart projectile targeting and raycasting.
- Fully-featured world/map editor.
- Binary serialization/deserialization of worlds with checksums.
- High-performance physics, including explosion physics.
- Very easily extensible to add new objects and entity types with completely modular object and property system.
Log in or sign up for Devpost to join the conversation.