A physics-based 2D platformer developed from scratch using C and Raylib.
This project was engineered to demonstrate a deep understanding of low-level programming concepts, manual memory management, and game physics implementation without relying on high-level engines like Unity or Unreal.
This project focuses on the core fundamentals of Computer Science and Software Engineering:
- Language & Library: Written in pure C (C99 Standard) using the Raylib framework for rendering.
- Custom Physics Engine:
- Implemented gravity simulation, velocity calculations, and friction logic manually.
- No pre-built physics libraries were used; all kinematics are calculated per frame.
- Collision Detection Algorithms:
- Developed AABB (Axis-Aligned Bounding Box) collision detection for efficient interactions between the player, static obstacles, and enemies.
- Memory Management:
- Utilized Dynamic Memory Allocation (
malloc/free) for handling game entities and asset loading to optimize runtime performance. - Structured data using
structsand pointers to manage game states efficiently.
- Utilized Dynamic Memory Allocation (
- Finite State Machine (FSM):
- Architecture designed to handle distinct game states (Menu, Gameplay, Pause, Game Over) seamlessly.
Through this collaborative project, we aimed to master:
- Pointer arithmetic and memory safety in C.
- The logic behind "Game Loops" and delta-time (
dt) synchronization. - Modular programming by separating logic, rendering, and input handling.
- Go to the Releases page.
- Download the latest
.zipfile. - Extract and run
RedBall.exe.
Controls:
- โฌ ๏ธ โก๏ธ Arrow Keys: Movement
- SPACE Space Bar: Jump / Double Jump
- ๐ R: Restart Level
This project was developed collaboratively as a pair programming initiative.
- Algorithm & Core Logic: Mustafa Mert Kaplan & Akฤฑn Menge
- Level Design & Assets: Joint effort.
- Audio: Custom SFX produced via GarageBand.
License: MIT License