Skip to content

Latest commit

ย 

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿ”ด RedBall - Low-Level 2D Game Engine in C

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.


๐Ÿ› ๏ธ Technical Architecture & Key Features

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 structs and pointers to manage game states efficiently.
  • Finite State Machine (FSM):
    • Architecture designed to handle distinct game states (Menu, Gameplay, Pause, Game Over) seamlessly.

๐Ÿš€ Learning Outcomes

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.

๐ŸŽฎ How to Run

  1. Go to the Releases page.
  2. Download the latest .zip file.
  3. Extract and run RedBall.exe.

Controls:

  • โฌ…๏ธ โžก๏ธ Arrow Keys: Movement
  • SPACE Space Bar: Jump / Double Jump
  • ๐Ÿ”„ R: Restart Level

๐Ÿ‘ฅ Contributors & Credits

This project was developed collaboratively as a pair programming initiative.

License: MIT License

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages