TGE (Text Game Engine) est un projet personnel débuté l'année dernière. Après une première version en Python, je me suis lancé le défi de créer cette nouvelle version en C.
Créer un moteur de jeu textuel en C capable de faire de la 3D (et donc de la 2D). C'est l'occasion pour moi d'implémenter un pipeline 3D de A à Z.
Point clé : Mon objectif est d'utiliser le moins de bibliothèques externes possible. J'ai notamment réimplémenté les fonctions mathématiques les plus basiques (cos, sin, sqrt, etc.) qui sont essentielles, en utilisant des développements limités (Séries de Taylor).
Cette première phase met en place les outils mathématiques fondamentaux : vecteurs, matrices, et fonctions trigonométriques redéfinies "from scratch".
-
Algèbre Linéaire : Matrices (
Matrix4), Vecteurs (Vector2,Vector3,Vector4). -
Quaternions (
$\mathbb{H}$ ) : Utilisés pour les rotations 3D (évite le gimbal lock). L'ensemble des quaternions est noté$\mathbb{H}$ (en hommage à Hamilton), et inclut les nombres complexes$\mathbb{C}$ . - Analyse : Redéfinition des fonctions cos, sin, tan, acos, asin, sqrt, pow via des développements limités (Séries de Taylor).
Voici les principaux fichiers implémentés durant la Phase 1 :
trigonometry.c(cos, sin, tan, acos, asin)sqrt.c,pow.c,fabs.c,factorial.c
vector2.c,vector3.c,vector4.cmatrix4.cquaternion.cutils.c(clamp, lerp, map, smoothstep)
Cette phase à pour objectif de mettre en place les outils de base du moteur de jeu.
- Time: Gestion des temps (frames, delta time, etc.)
- Input: Gestion des entrées (clavier, souris, etc.), pour en rajouter il faut utiliser la documentation de Microsoft sur les Virtual Key Codes
- Game: Gestion du jeu, permet de mettre en place des fonctions de base pour le jeu et utilise les fonctions de Time & Input pour mettre à jour notamment.
# Clone the repository
git clone https://github.com/Program132/TextGameEngine.git
cd TextGameEngine
# Compile
mkdir build
cd build
cmake ..
cmake --build .
# Run
./TextGameEngine.exe