https://github.com/pedramcode/raygame
Raylib game attempt :)
https://github.com/pedramcode/raygame
Last synced: 2 months ago
JSON representation
Raylib game attempt :)
- Host: GitHub
- URL: https://github.com/pedramcode/raygame
- Owner: pedramcode
- Created: 2023-06-03T14:15:58.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2023-06-04T14:26:41.000Z (almost 3 years ago)
- Last Synced: 2023-06-04T15:24:22.649Z (almost 3 years ago)
- Language: C
- Size: 515 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Raygame
This is an attempt to making a game, and game engine for that game (LOL) using C language (Raylib)
## Architecture
I'm proud of this arch I came up with :D
### State manager
It's a crucial part of any game engine. It's simply means what user sees and interacts to. Play state, Menu state, Pause state, etc. State manager handles all this states and transitions between them.
Because I wrote this game/game engine using C language, I have to forget about OOP. So I managed to handle states and they behaviors separately in a neat way, using making advantage of how structures and function pointers stores in RAM (and a bit of MACRO magic :D ).
### ECS
It's the main architecture of data flow and behavior management of game engine. **Entity-Component-System** is an architectural pattern that is very suitable (And I mean that wholeheartedly) for game engines.
### Resource management
Resource manager uses a HashTable to store and retrieve objects to and from memory.