Readme.org

June 18, 2020 ยท View on GitHub

  • The Bearriver Arcade A few simple games and a game engine (maybe less of an engine and more like a bunch of scattered systems) with features such as game state saving and loading (the game is saved on quit, this can be used for pseudo code hot-swapping), collision detection, a input manager, frame rate targets, SDL rendering wrappers and more. I also have more games I'm working on that will probably appear here in time.

I have tried cleaning the code up a bit with everything I have learned since starting this but it might be a bit rough in a few places. Comments are scarce because I didn't think of releasing this while writing it but the code should be pretty straight forward hopefully.

  • The games ** Lunar lander Scroll to zoom

Arrow keys to rotate the ship and fly forward

This is a lunar lander clone, with a few visual issues, most probably caused by relying on SDL for rendering. Or maybe it's my fault I'm not entirely sure and haven't bother finding out because I'm trying to transition to use Vulkan for future projects.

[[file:LunarLander.png]]

This game also has a few other secret games in it! This was the repository where it all begun, so if you look back through the commits you can find (hopefully) working builds of simpler games made using reflex, reactive banana and even a traditional game loop.

** Simple game 1 Arrow keys to move

This is just the one of simplest games you can make [[file:SimpleGame1.png]]

** Simple game 2 Arrow keys to move

This game is pretty interesting. If you go slow the player is pretty much a square: [[file:SimpleGame2-1.png]]

But the faster you go the thinner the player gets: [[file:SimpleGame2-2.png]]

** Simple game 3 Arrow keys to move

This game is a lot like the last game, but with some new gameplay mechanics. It's not polished code-wise or gameplay-wise

** Run project

  1. Enter a directory for a game like FRPLunarLander
  2. Run nix-shell
  3. Run cabal run

If you don't want to run this under nix, just get the dependencies listed in the shell.nix file. For lunar lander that would be: #+begin_example pkg-config cabal-install ghc SDL2 SDL2_image SDL2_ttf #+end_example

  • Bugs ** Supported resolutions Right now only 1080p monitors are correctly centered on the player. This is because I haven't bothered looking into the resolution change events SDL probably emits.