Even though this is technically a school project, I am mostly using this as an excuse to push myself to finally develop the little game I always wanted to make and get better-ish at programming. This project is public for ease-of-access, but is not intended to be viewed by a wide audience. If a stranger does somehow stumble across this, hello, feel free to look at the source code. No guarantee it will be good. If all goes well, this will a nostalgia project in a few years.
- Setup build process with meson
- Get a player on the screen with SDL
- Input handling for player movement (simple movement controller)
- Basic debug UI w/ text
- Vector2 based movement controller
- Persistent key input handling
- Vector drawing (prograde, lateral guides)
- Lateral-Rotational movement controller (angular velocity)
- Hold Mouse 1 for nose follow
- FPS regulation (without VSync)
- Utterly obliterate floating point worries
- Camera (zoom, pan)
- Slight inaccuracies in thruster output
- Spawning and simulating asteroids
- Debug repl
- (Basic) collisions
- Revamped player sprites
- Thruster sprites
- SFX for common sounds (thrusters, collision, mining)
- Basic ambience streaming
- (De-)Serializing data to savefiles
- Faster collisions
- Multithreading (for independent rendering/physics)
- Shader support
- Parallax backgrounds (stars, rocks)
- Animated panels (curve controllers)
- (?) Touchscreen support (for alia)
- (?) In-game debug console
- (?) In-game music player with custom music imports
- [Have the meson build system](https://mesonbuild.com/)
- Clone the repository
- run `meson setup build` in the repos root to initialize the build system
- run `meson compile -C build` to compile the project
- run the binary in the `build` folder
Synopsis:
It’s very simple: Shoot the asteroids to gain score. Use your system’s preferred forcequit to end the program.
Controls:
- W: Forward thrust
- A: Rotate left
- D: Rotate right
- I: Lateral thrust forward
- J: Lateral thrust left
- K: Lateral thrust backward
- L: Lateral thrust right
- LEFT_ALT: Show lateral movement guides
- SPACE: Fire penetrator projectile
- +: Zoom in
- -: Zoom out
- …to ZHS 0x82AB1AFA45 for helping me with this project
- …to my teacher for allowing me to use something other than pygame-zero