A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from http://github.com/theodo/dojo-escape-game below:

theodo/dojo-escape-game: Create your own Escape Game in JS and host it on the Web !

Bienvenue sur le Keiko Escape Game de Theodo. Le but de ce projet est de créer ton propre escape game en web 🧑‍💻 !

ℹ️ Pourquoi suivre ce keiko ?

Tu trouveras sur cette page toutes les informations nécessaires pour le faire, notamment les procédures d'installation du projet, comment le lancer en local sur ta machine et comment le déployer en production avec ton compte github 🥳 !

Afin de pouvoir réaliser ce projet sereinement, un exemple d'escape game tout simple a été codé dans ce repo. Même si réutiliser le code de l'exemple n'est pas obligatoire, ça pourrait s'avérer utile 😉

En ce qui concerne le thème et le type d'escape game, le choix est totalement libre ! Nous avons juste défini une liste de fonctionnalités qui sont utiles à tout bon escape game.

Avant de commencer, tu as besoin de nodejs et npm, deux outils utilisés quasiment tout le temps à Theodo :

Si tu ne connais pas ces outils, tu peux suivre cette documentation NPM pour les installer sur ta machine

Pour te faciliter la vie ce repo est un template, il te suffit de cliquer sur le bouton Deploy to netlify pour créer un repo à partir de ce boilerplate:

Tu vas devoir te créer un compte avec netlify (les quotas gratuits pour développeurs sont très généreux), tu peux utiliser ton compte github comme single sign-on.

Une fois fait, tu auras un repo perso pour le projet et ton site sera déployé automatiquement sur netlify à chaque fois que tu push des changement sur la branche master.

Le lien de ton site s'affiche sur netlify : https://<NOM_RANDOM>.netlify.app.

Tu peux maintenant cloner ton repo localement pour commencer à développer. Pour le trouver, il faut aller dans tes repos personnels Github puis trouver dojo-escape-game.

Pour développer sur le projet, il reste à installer les outils qui vont transpiler les sources placées dans [src][./src] en un site web pour travailler localement.

Pour installer les outils nodejs, il suffit de faire:

Une fois les dépendances installées, pour faire tourner le site web localement sur http://localhost:1234, il suffit de lancer:

Avec l'intégration netlify, il te suffit de pousser des changements sur la branche master de ton repo github pour déployer la nouvelle version.

La page est un simple fichier HTML : src/index.html.

Le scénario de l'escape game est décrit dans src/index.js. Il utilise le moteur du jeu dans src/Game/ et l'interface src/Interface/ pour expliciter le comportement du jeu.

🚨 Les fonctionnalités suivantes sont nécessaires pour atteindre un jeu minimal. Les 3 premières ont déjà été développées dans l'exemple fourni dans ce repo (tu n'auras donc besoin de les implémenter que si tu décides de ne pas repartir de l'exemple fourni) :

Les fonctionnalités définies ci-dessous améliorent l'expérience de jeu 🎮 et ne sont pas obligatoires. Cependant, chaque fonctionnalité développée en plus sera très appréciée par les joueurs 😎 et te permettra de développer de nouvelles compétences web 🧑‍💻 (ETQJ = En tant que joueur 😀).

NB: Les fonctionnalités ne sont pas triées par ordre de difficulté 😜

Afin de te permettre de te projeter dans les différentes fonctionnalités techniques et de libérer ta créativité, tu peux accéder à deux escape game bâtis sur ce modèle :

Un apprentissage a plus de valeur lorsqu'il a été fait en autonomie, par itérations successives. Mais rester bloqué apporte peu de valeur 🙃 Tu trouveras ci-dessous quelques conseils pour le développement des principales fonctionnalités. À utiliser avec parcimonie 😉

Inventaire pour le joueur Pour ajouter un inventaire, tu peux reprendre l'organisation du code existante pour les actions : Mouvements validés par la présence d'un objet dans l'inventaire

Dans la callback passée en argument à la méthode world.createAction(), ajoute une condition sur la présence de l'objet dans l'inventaire. Selon le booléen retourné par la condition, retourne une callback différente.

Personnalisation du nom Les possibilités pour cette fonctionnalités sont nombreuses ! L'une d'entre elles consiste à ajouter une modale qui est affichée au début de la partie et dans laquelle le joueur inscrit son nom. Voici quelques astuces : Recommencer la partie en cliquant sur un bouton

Ici aussi différentes façon de procéder sont possibles. Dans tous les cas, n'oublie pas d'agir à la fois sur l'affichage (en utilisant par exemple la méthode clearActions()) et sur l'état stocké (en modifiant le champ actions de l'objet World).

Après avoir refresh la page, retrouver le jeu dans l'état dans lequel on l'a laissé

L'une des possibilités consiste à utiliser le stockage présent dans le navigateur pour conserver l'état du jeu. Tu peux utiliser le local storage ou le session storage selon tes besoins.

Afin de stocker l'état actuel du jeu dans le local storage avant un refresh, tu peux écouter l'événement beforeunload de window et remplir le storage à ce moment-là.

Puis en fonction de ce que tu récupères (ou non) dans le storage après le refresh, tu pourras initialiser le jeu différemment.

Navigation uniquement au clavier

Quelques astuces :

Revenir au début ⬆️


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4