Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/mr-ema/cnake

Snake game implemented in C width raylib and vim motions for movement.
https://github.com/mr-ema/cnake

build-zig c raylib snake-game

Last synced: 16 days ago
JSON representation

Snake game implemented in C width raylib and vim motions for movement.

Awesome Lists containing this project

README

        

# Cnake
Snake game implemented in C using the raylib library, with vim motions by default for movement.


Banner

## Resources
- [raylib](https://www.raylib.com)
- [raylib snake game example](https://github.com/raysan5/raylib-games/blob/master/classics/src/snake.c)

## Features
- [x] Basic Title Screen
- [x] Score tracking to keep track of the player's progress
- [x] Randomized food spawning
- [x] Snake grows longer when it eats food
- [x] Game over condition when the snake collides with the boundaries or itself
- [x] Options menu
- [x] Configurable controls at run-time [Options menu]
- [x] Configurable mode (slow - normal - fast - blazingly fast)

## Demo
![Demo](https://github.com/mr-ema/cnake/blob/main/assets/demo.gif)

## How To Build
Before you start, make sure you have the required dependencies for
raylib installed. Refer to the official [raylib - build and installation
guide](https://github.com/raysan5/raylib#build-and-installation) for
instructions on setting up the necessary environment.

```
git clone --recurse-submodules https://github.com/mr-ema/cnake
cd cnake/
zig build
```

## Acknowledgements
This game was developed using [raylib](https://www.raylib.com/),
a simple and easy-to-use game development library. raylib provides
a rich set of functionality and is well-suited for creating 2D games
and interactive applications.