Ce répertoire contient le code du jeu Arthur la quête de la Cuillère.
Pour une meilleure expérience de jeu activer le son !
q: déplacement droited: déplacement gauches: coup d'épéez: sautespace: boule de feu (à partir du niveau 3)shift: Téléportation (à partir du niveau 2)
- Sélection de niveau avec
0 1 2 3 4 - Changer focus caméra joueur/libre avec
p - Déplacement caméra mode libre :
o(haut),k(gauche),l(bas),m(droite) - Modifier la vitesse du joueur : + avec
u, - avecj
-
doc: Le répertoire contenant le rapport du projet. -
resources: répertoire dans lequel déposer les ressources (images, polices, fichiers textes, …) -
lib: répertoire contenant deux bibliothèques :ecs: La bibliothèque ECSgfx: La bibliothèque Graphique avec un backend JavaScript et un backend SDL2.
-
src: le répertoire devant contenir les sources du jeu : -
prog: un répertoire contenant deux programmes principaux. Ils sont uniquement là pour servir de cible de compilation différente :game_js.mlproduit le fichiergame_js.bc.jsqui est inclus depuis le fichierindex.html. C'est le « programme principal » compilé en Javascript, le seul que l'on demande de supporter pour le projet.game_sdl.mlproduit le fichiergame_sdl.exequi utilise la bibliothèque SDL pour faire un rendu graphique et produit un exécutable natif.
Il suffit de faire dune build à la racine. La cible construite par défaut est prog/game_js.bc.js qui est incluse dans le fichier HTML index.html. Pour construire le programme natif SDL, il faut exécuter la commande dune build @sdl.
Pour effacer les fichiers générés, utiliser la commande dune clean.
Le projet de base requiert ocaml, js_of_ocaml, js_of_ocaml-ppx, dune. La production de code natif (testé uniquement sous Linux pour l'instant) requiert tsdl, tsdl-image, tsdl-mixer et tsdl-ttf (ainsi que la bibliothèque SDL native).
https://en.wikipedia.org/wiki/Entity_component_system https://austinmorlan.com/posts/entity_component_system/ https://tsprojectsblog.wordpress.com/portfolio/entity-component-system/ https://savas.ca/nomad https://github.com/skypjack/entt https://ajmmertens.medium.com/building-an-ecs-2-archetypes-and-vectorization-fe21690805f9 https://github.com/SanderMertens/flecs
https://medium.com/@brazmogu/physics-for-game-dev-a-platformer-physics-cheatsheet-f34b09064558 https://www.gamedeveloper.com/design/platformer-controls-how-to-avoid-limpness-and-rigidity-feelings https://blog.hamaluik.ca/posts/simple-aabb-collision-using-minkowski-difference/ https://www.toptal.com/game/video-game-physics-part-i-an-introduction-to-rigid-body-dynamics https://www.toptal.com/game/video-game-physics-part-ii-collision-detection-for-solid-objects https://www.toptal.com/game/video-game-physics-part-iii-constrained-rigid-body-simulation https://gdcvault.com/play/1021921/Designing-with-Physics-Bend-the