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.
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.
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.
Arrow keys
to move
This is just the one of simplest games you can make
Arrow keys
to move
This game is pretty interesting. If you go slow the player is pretty much a square:
But the faster you go the thinner the player gets:
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
This project contains git submodules. Clone it with git clone --recurse-submodules https://github.com/walseb/The_Bearriver_Arcade
- Enter a directory for a game like
FRPLunarLander
- Run
nix-shell
- 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:
pkg-config cabal-install ghc SDL2 SDL2_image SDL2_ttf
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.