Skip to content

SAE projet Quadtree : l'objectif est de faire un jeu avec une structure de donnée "quadtree"

License

Notifications You must be signed in to change notification settings

Afissard/project-quadtree

Repository files navigation

Project-Quadtree

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.

Sommaire

  1. Contenu du projet
  2. Contrôles
  3. Build & exécution du projet
  4. Bugs connus
  5. Ressources

Contenu du projet

SAE (partie 5)

  • floor : readFromFile
  • floor : updateFromFile
  • quadtree : MakeFromArray
  • quadtree : GetContent

Extensions implémenté (partie 6)

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

Extensions en cours d'implémentation

  • Monde infini à la volé (sans algo de génération), (FloorKind = 4)

Contrôles

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

Build & exécution du projet

Linux

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

Window

Build :

cd cmd && go build . && .\cmd

Run :

cd cmd && .\cmd

Bugs connus

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

Ressources

Ebitengine Documentation :

Exemple de projets fait avec Ebitengine :

Exemple et explication des Quadtree :

Binary Space Partition Dungeon

Wave Fonction Collapse