103 lines
3.5 KiB
Plaintext
103 lines
3.5 KiB
Plaintext
TODO
|
||
|
||
# Nettoyage
|
||
|
||
• DONE: Découper les gros pâtés en sous-classes
|
||
• DONE: Nettoyer les vieux headers
|
||
• WIP: Remplacer les anciennes classes par leur upgrade:
|
||
◦ DONE: `ApplicationState` / `ApplicationStateStack`
|
||
◦ DONE: `GameClock`
|
||
◦ DONE: `Debug` / `Exception`
|
||
◦ TODO: `Window` et `Texture` (depuis `ZeldaOOL`)
|
||
◦ TODO: Input system (Mouse + Keyboard)
|
||
• DONE: `Types.hpp` → `IntTypes.hpp`
|
||
→ TODO: Vérifier que les types sont bien corrects
|
||
• TODO: Vérifier les utilisations inutiles de pointeurs
|
||
• TODO: Catch SDLLoader exception
|
||
• TODO: Passer un clang-tidy sur le code
|
||
• TODO: Passer à la SFML si nécessaire
|
||
• TODO: Séparer l’engine et le gameplay
|
||
• TODO: Séparer le code client du code serveur
|
||
|
||
# Finalisation par rapport à TestCraft
|
||
|
||
• DONE: Changer la génération du terrain et ajouter eau, minerais et arbres
|
||
• DONE: Permettre à l’utilisateur de choisir le bloc qu’il pose
|
||
|
||
# FixMe
|
||
|
||
• FIXME: Les blocs sont ciblables dans le vide depuis l’extérieur du monde
|
||
• FIXME: Les collisions son décalées d’un bloc à certains endroits
|
||
• FIXME: Afficher tous les blocs solides, puis l’eau, pour régler les problèmes de transparence
|
||
|
||
# ToDoList
|
||
|
||
## Moteur
|
||
|
||
• DONE: Rajouter le `ResourceHandler`
|
||
|
||
## Joueur
|
||
|
||
• DONE: Ciblage de bloc
|
||
◦ DONE: Suppression de bloc
|
||
◦ DONE: Ajout de bloc
|
||
• DONE: Collisions + Gravité
|
||
• TODO: Système d’entités (réutiliser l’ECS mais en multi-thread)
|
||
◦ TODO: Les controlleurs doivent garder une liste de références vers les entités
|
||
sur lesquelles ils travaillent
|
||
|
||
## Items/Blocks
|
||
|
||
• DONE: Créer un registre d’information pour les blocs/items (utiliser `ResourceHandler`?)
|
||
• DONE: Créer une classe `ItemStack` et l’utiliser dans `Inventory`
|
||
• DONE: Rajouter les classes `BitmapFont` et `Text` pour afficher le nombre d’items dans un stack
|
||
• DONE: Rajouter le système de craft
|
||
• DONE: Récupération du bloc cassé
|
||
• DONE: Améliorer la gestion d’items
|
||
◦ DONE: Ajouter des enum `ItemType` et `BlockType`
|
||
◦ DONE: Ajouter une classe `ItemBlock`
|
||
• TODO: Ajouter les animations de destruction des blocs
|
||
• TODO: Essayer d’utiliser un seul `Inventory` pour le joueur
|
||
→ Probablement en ajoutant un offset dans `InventoryWidget` et `Hotbar`
|
||
• TODO: Rajouter un bouton sur la table de craft pour voir les recettes
|
||
• TODO: Faire un vrai drop d’item
|
||
• TODO: Utiliser un cube pour afficher les blocs dans l’inventaire
|
||
|
||
## Monde
|
||
|
||
• TODO: Cycle jour/nuit
|
||
◦ TODO: Dynamic lighting
|
||
• TODO: Chargement des chunks multi-thread
|
||
|
||
## Génération
|
||
|
||
• DONE: Augmenter la hauteur du terrain
|
||
• WIP: Rajouter des blocs
|
||
◦ DONE: Dirt + Grass
|
||
◦ DONE: WATEEEEEEER
|
||
◦ DONE: Arbres
|
||
◦ TODO: Fleurs (emit light at night?)
|
||
◦ TODO: Herbe
|
||
◦ TODO: Demi-blocs
|
||
◦ TODO: Escaliers
|
||
• TODO: Biomes
|
||
• TODO: Génération multi-thread
|
||
|
||
## Affichage
|
||
|
||
• WIP: Optimiser au maximum l’affichage des chunks
|
||
◦ WIP: Faire le max de culling
|
||
▸ DONE: Face culling
|
||
▸ DONE: Frustum culling
|
||
▸ TODO: Occlusion culling
|
||
◦ TODO: Face-merging
|
||
→ Trouver une solution pour utiliser un texture atlas avec ça
|
||
• TODO: Séparer le pipeline 2D du pipeline 3D
|
||
◦ TODO: Ajouter une implémentation de VAO par type de rendu (2D/Chunk/Liquid/Plant)
|
||
|
||
# Idées diverses
|
||
|
||
• TODO: Ajouter un “builder mode” qui débloque la souris de la vue et permet de sélectionner
|
||
un bloc juste en mettant la souris dessus
|
||
|