Skip to content

Latest commit

 

History

84 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Synopsis

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.

Project structure

Finished

  • 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

In Progress

  • Revamped player sprites
  • Thruster sprites
  • SFX for common sounds (thrusters, collision, mining)
  • Basic ambience streaming

Far roadmap

Engine

  • (De-)Serializing data to savefiles
  • Faster collisions
  • Multithreading (for independent rendering/physics)

Shaders

  • Shader support
  • Parallax backgrounds (stars, rocks)

UI

  • Animated panels (curve controllers)
  • (?) Touchscreen support (for alia)
  • (?) In-game debug console

Audio

  • (?) In-game music player with custom music imports

How to build

  1. [Have the meson build system](https://mesonbuild.com/)
  2. Clone the repository
  3. run `meson setup build` in the repos root to initialize the build system
  4. run `meson compile -C build` to compile the project
  5. run the binary in the `build` folder

How to play

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

Special thanks

  • …to ZHS 0x82AB1AFA45 for helping me with this project
  • …to my teacher for allowing me to use something other than pygame-zero

Releases

Packages

Contributors

Languages