OpenMiner/TODO

103 lines
3.5 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
• 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 lengine 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 à lutilisateur de choisir le bloc quil pose
# FixMe
• FIXME: Les blocs sont ciblables dans le vide depuis lextérieur du monde
• FIXME: Les collisions son décalées dun bloc à certains endroits
• FIXME: Afficher tous les blocs solides, puis leau, 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 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`
• TODO: Ajouter les animations de destruction des blocs
• TODO: Essayer dutiliser 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 ditem
• TODO: Utiliser un cube pour afficher les blocs dans linventaire
## 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 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