Skip to content

Program132/TextGameEngine

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Text Game Engine

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.

Objectif

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).

Phase 1 : Fondations Mathématiques

Description

Cette première phase met en place les outils mathématiques fondamentaux : vecteurs, matrices, et fonctions trigonométriques redéfinies "from scratch".

Concepts Mathématiques

  • 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).

Concepts

Voici les principaux fichiers implémentés durant la Phase 1 :

Outils de base (src/math/tools/)

  • trigonometry.c (cos, sin, tan, acos, asin)
  • sqrt.c, pow.c, fabs.c, factorial.c

Structures de données (src/math/)

  • vector2.c, vector3.c, vector4.c
  • matrix4.c
  • quaternion.c
  • utils.c (clamp, lerp, map, smoothstep)

Phase 2 : Core

Description

Cette phase à pour objectif de mettre en place les outils de base du moteur de jeu.

Concepts:

  • 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.

Installation & Compile

# Clone the repository
git clone https://github.com/Program132/TextGameEngine.git
cd TextGameEngine

# Compile
mkdir build
cd build
cmake ..
cmake --build .

# Run
./TextGameEngine.exe

About

Game Engine text-based

Resources

Stars

Watchers

Forks