1
1
Fork 0
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
alistair 1a7938eee6 android mute button 1 year ago
LICENCES licens 3 years ago
build-android android mute button 1 year ago
c-colours@ebf612394a update submodules and remove SDL_Image dependency 4 years ago
datastructures@f3d3d3c18a update submodules and remove SDL_Image dependency 4 years ago
src mute button 1 year ago
.gitignore Update '.gitignore' 4 years ago
.gitmodules http submodules 4 years ago
COPYING licens 3 years ago
LICENSE fix release building 4 years ago
Makefile mkfile 3 years ago
README.md readme 2 years ago
TerminusTTF.ttf time counter 4 years ago
setup.sh setupscript 4 years ago

README.md

A computer game

Developement Blog

image

This is a simple game where you play as a bouncy square rock that has a grappling hook. It can use the grappling hook to swing to the end of the cave. There is no reward for doing so, but there is a timer.

Description and Features

  • Entirely written in C using only the SDL2 graphics and audio libraries.
  • Procedurally generated cave environment using a random walk and procedurally generated colour palettes.
  • Cute synthesized sound effects using integer overflow a la bytebeat.
  • 2D Graphics using the SDL2 API, no assets are used aside from the font.
  • Point mass elastic physics with elastic collisions.
    • Separating Axis Theorem collision test for convex polygons.
    • Framerate independent physics uses a fixed timestep and completes as many steps as neccessary to catch up to each frame.
    • Physics runs in a separate thread and state is managed using shared memory and locks.
    • Player physics interactions use forces applied to physics bodies which are integrated into impulses and positions.
  • Grappling hook.

Installation

Prebuilt Binary

See the releases tab.

On Linux and other Unix-Like operating systems you will need to install the SDL2 package from your package maintainer.

# on Fedora
sudo dnf install SDL2

Build Instructions

On Linux / Unix

Install the libSDL2 runtime and SDL2 development packages from your package distributor. On Fedora, this is the SDL2 and SDL2-devel packages.

git clone --recurse-submodules https://git.topost.net/alistair/space_game.git

(if you forget --recurse-submodules you can use, git submodule init, git submodule update.)

For Linux

make clean
make target=linux

For Windows

You have to have mingw and the mingw libsdl library (I think).

sudo dnf install mingw64-SDL2 mingw64-SDL2_image mingw64-SDL2_ttf mingw64-winpthreads mingw64-winpthreads-static

Run setup.sh to download the SDL2 static libraries and SDL2.dll.

./setup.sh
make clean
make target=windows

FreeBSD

You need to download the header files and put them in the source folder, with the folder name SDL2. You also need the sdl2 and gmake packages.

Something like this:

cd /tmp && wget https://www.libsdl.org/release/SDL2-2.0.12.zip && unzip SDL2-2.0.12.zip
mv /tmp/SDL2-2.0.12/include $source_dir/SDL2
pkg install sdl2 gmake
cd $source_dir
gmake

With debug flags

Append debug=true to the make command.