OpenMiner/TODO

101 lines
3.4 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

TODO
# Nettoyage
• DONE: Découper les gros pâtés en sous-classes
• DONE: Nettoyer les vieux headers
• DONE: Passer à la SFML si nécessaire
• DONE: Remplacer les anciennes classes par leur upgrade:
◦ DONE: `ApplicationState` / `ApplicationStateStack`
◦ DONE: `GameClock`
◦ DONE: `Debug` / `Exception`
◦ DONE: `Window` et `Texture` (depuis `ZeldaOOL`)
◦ DONE: Input system (Mouse + Keyboard)
• DONE: `Types.hpp` → `IntTypes.hpp`
→ DONE: Vérifier que les types sont bien corrects
• TODO: Vérifier les utilisations inutiles de pointeurs
• TODO: Passer un clang-tidy sur le code
• 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 à lutilisateur de choisir le bloc quil pose
# FixMe
• DONE: Afficher tous les blocs solides, puis leau, pour régler les problèmes de transparence
• TODO: Les blocs sont ciblables dans le vide depuis lextérieur du monde
• TODO: Les collisions sont décalées dun bloc à certains endroits
# 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 dentités (réutiliser lECS 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 dinformation pour les blocs/items (utiliser `ResourceHandler`?)
• DONE: Créer une classe `ItemStack` et lutiliser dans `Inventory`
• DONE: Rajouter les classes `BitmapFont` et `Text` pour afficher le nombre ditems dans un stack
• DONE: Rajouter le système de craft
• DONE: Récupération du bloc cassé
• DONE: Améliorer la gestion ditems
◦ DONE: Ajouter des enum `ItemType` et `BlockType`
◦ DONE: Ajouter une classe `ItemBlock`
• DONE: Utiliser un cube pour afficher les blocs dans linventaire
• DONE: Ajouter les animations de destruction des blocs
• DONE: Essayer dutiliser un seul `Inventory` pour le joueur
◦ DONE: 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 ditem
## 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
◦ TODO: Herbe
◦ TODO: Demi-blocs
◦ TODO: Escaliers
• TODO: Biomes
• TODO: Génération multi-thread
## Affichage
• WIP: Optimiser au maximum laffichage 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