Projet d'introduction au développement (R1.01) et de SAÉ implémentation d'un besoin client (SAE1.01) réalisé par Léa Cortet et Sacha Chauvel, année 2023-2024.
- floor : readFromFile
- floor : updateFromFile
- quadtree : MakeFromArray
- quadtree : GetContent
- Optimisation quadtree
- Sauvegarde avancé : sauvé la position du joueur et autres informations utiles dans un json
- UI : interface utilisateur (menu principal, sauvegarde, chargement de la sauvegarde)
- Zoom camera (sert aussi de minimap)
- Nouvelle tuiles etc (collision et autre interaction), (FloorKind = 3)
- Monde procédural (génération aléatoire, taille fixe) : donjons -> algo de génération BSP, (FloorKind = 3). La seed est déterministe, donc les même niveaux seront toujours généré à la suite des uns et des autres, sauf pour la seed "random" et "" où la seed est choisie de manière aléatoire.
- Portail de téléportation (générer dans le donjon (FloorKind = 3))
- Monde infini à la volé (sans algo de génération), (FloorKind = 4)
Action | Touches associées |
---|---|
Déplacement haut | flèche haut |
Déplacement bas | flèche bas |
Déplacement gauche | flèches gauche |
Déplacement droite | flèches droite |
Retour au menu | Escape |
Quitter le jeu en cours | Backspace |
Ouverture de l'interface de debug | F1 |
Dé-zoom de la camera | F2 |
Zoom de la camera | F3 |
Si la librairie X11-dev n'est pas installé :
sudo apt-get install libx11-dev xserver-xorg-dev xorg-dev
Build :
cd cmd && go build . && ./cmd
Run :
cd cmd && ./cmd
Build :
cd cmd && go build . && .\cmd
Run :
cd cmd && .\cmd
- Le dé-zoom peu causé des chute de FPS, de plus pour une grande map affiché avec un dé-zoom au maximum (supérieur à 6) la rendering pipeline d'Ebitengine peut causé un crash du jeu
- En floorKing 4, lorsque la taille du quadtree est augmenté, son contenu disparais (la génération infinie à la volé est toujours WIP)
- Jouer dans un niveau charger depuis une sauvegarde rend les téléporteur inutilisable pour cet étage.
- Dans de très rare cas il est possible d'allez sur une tuile normalement incessible (exemple mur) en sortant d'un téléporteur et en continuant de marcher.
- Ebiten website : https://ebitengine.org
- Documentation : https://ebitengine.org/en/documents
- Exemples : https://ebitengine.org/en/examples/
- Showcase du site d'Ebiten : https://ebitengine.org/en/showcase.html
- Jeux fait avec Ebitengine sur Itch.io : https://itch.io/games/tag-ebitengine
- Github de Loig Jezequel : https://github.com/loig
- Page Itch de Loig Jezequel : https://loig.itch.io
- Site interactif : https://jimkang.com/quadtreevis/
- Exemple d'implémentation d'un quadtree en go : https://pkg.go.dev/github.com/paulmach/[email protected]/quadtree
- Site explicatif pour l'algorithme: https://www.roguebasin.com/index.php/Basic_BSP_Dungeon_generation
- Wave Fonction Collapse explication : https://robertheaton.com/2018/12/17/wavefunction-collapse-algorithm/
- WFC repository : https://github.com/mxgmn/WaveFunctionCollapse
- Exemple d'implémentation en Golang : https://github.com/shawnridgeway/wfc