- Une bibliothèque JavaScript légère conçue pour permettre même aux personnes ayant peu d’expérience en programmation de créer facilement des jeux vidéo
- Adaptée au développement de jeux narratifs, c’est-à-dire centrés sur le storytelling
- Offre une expérience de création de jeux sans programmation complexe grâce à une structure de code intuitive et une API concise
- Tout (sprites, dialogues, sons, interactions) étant créé en code, l’ensemble du jeu peut être stocké dans un seul fichier
Principales caractéristiques et avantages
- Même les développeurs débutants ou non-développeurs peuvent créer des jeux narratifs avec un code JavaScript simple
- Contrairement aux grands frameworks, elle offre une taille très réduite et une grande facilité d’utilisation
- Particulièrement adaptée aux jeux à choix, aux contenus interactifs et à une expérience de développement visuelle, avec un fort accent sur l’histoire et l’interaction
Public concerné
- Convient aussi bien aux débutants en création de jeux qu’aux startups, professionnels de l’IT, développeurs et créateurs souhaitant réaliser rapidement un prototype
- Outil davantage adapté à l’expérimentation d’idées, aux contenus interactifs et au déroulement narratif qu’aux graphismes complexes ou aux jeux de grande envergure
Le développement de jeu commence avec createGame()
createGame({
player: {
sprite: 7,
position: [2, 5]
},
map: `
########
#......#
#..X...#
#......#
########
`,
templates: {
X: {
sprite: 4,
dialog: 'Hello, adventurer!'
}
}
})
1 commentaires
Commentaire Hacker News
Je me demande pourquoi le titre dit « ...for narrative games »
J’ai remarqué que la page officielle de la bibliothèque ne mentionne pas les jeux « narratifs »
Je suis un peu perdu sur ce que signifie « narrative game »
Les jeux d’exemple ne correspondent pas à ma définition de « narrative game »
Quand je cherche « narrative game » sur Google, je vois mal le lien avec les jeux d’exemple
S’il existe une définition communément admise de « narrative game », je me demande quelles fonctions cette bibliothèque offre spécifiquement pour en créer par rapport à d’autres moteurs de jeu
J’ai eu hier soir une idée de jeu d’aventure textuel
Le concept serait d’accomplir des missions du quotidien comme être adulte, payer ses impôts, aller au travail et faire le ménage
Moins on fait ce genre de choses, plus la vie devient difficile, et plus on les fait, plus elle devient facile
L’objectif final serait de mourir sans dettes
Je pense que l’idée de cet outil est de permettre de créer de petits jeux d’aventure de manière déclarative à partir de texte et de dialogues
Ce n’est pas le même usage qu’un moteur de jeu généraliste comme Pico-8, davantage centré sur les mécaniques
Il facilite la création de cartes, le passage d’une carte à l’autre, les PNJ, les dialogues et les déclencheurs textuels
Les moteurs destinés aux non-programmeurs (RPGMaker, etc.) sont similaires : la plupart des utilisateurs y créent surtout des jeux centrés sur les cartes et les déclencheurs, avec du texte et des dialogues, sans mécaniques complexes séparées
Je pense que cet outil met justement en avant la facilité de créer ce type de jeux « narratifs »
Dans la documentation d’introduction officielle :
« Odyc.js est une petite bibliothèque JavaScript légère conçue pour créer des jeux narratifs en combinant pixels, son, texte et un peu de logique »
Pour moi, c’est évidemment un moteur d’aventure textuelle
La version française du site propose uniquement deux exemples supplémentaires « narratifs »
J’ai employé ce terme parce qu’avec sa structure au tour par tour et son accent sur les messages, les prompts et les dialogues, cela me semblait convenir aux jeux « narratifs » ou textuels
Mais si vous avez une meilleure idée d’étiquette, je suis tout à fait prêt à la changer
Le jeu The Magic Mushroom est excellent
lien
Pour l’instant, celui que je préfère, c’est celui-ci
lien
Le jeu John Wick donne l’impression d’être un résumé des films récents
lien
J’aime vraiment beaucoup cette manière de composer
J’ai fait plein d’expériences en créant plusieurs moteurs de jeu JavaScript, et ça trouve un équilibre parfait entre « il faut finir quelque chose vite fait pour des enfants en moins de 2 heures » et « j’ai envie de comprendre profondément la structure »
J’espère pouvoir faire rapidement quelques jeux pour occuper des enfants dans des environnements à faible bande passante
Ça fait outil mignon
Plus précisément, je pense que c’est très bien pour apprendre aux enfants, un peu comme le pygame d’aujourd’hui
Scratch et autres sont conçus pour des enfants de 5 ans, donc le contenu programmation y est trop simplifié
Cet outil me semble idéal pour des élèves d’environ 10 ans
Ils peuvent apprendre un peu de manipulation de chaînes, quelques astuces de syntaxe, et aller jusqu’à implémenter un side-scroller basique avec des PNJ
Ensuite, quand ils sont prêts, ils peuvent aussi découvrir le contrôle de flux
Si quelqu’un apprenait ça puis envisageait d’ouvrir des cours pour enfants ou d’investir dans un espace d’apprentissage, ça pourrait même se vendre en pratique
Sous un autre angle, cet outil vaudrait aussi le coup pour expérimenter la génération procédurale d’assets de jeu basiques
Partage d’un exemple de code :
game.prompt(“Dude, you ran out of eggs!|Would you like to buy|an 80 pack of eggs?”, “Yes”, “No”);Exemple d’utilisation du code :
await game.openDialog(“Dude, you ran out of eggs!|Would you like to buy|an 80 pack of eggs?”) game.prompt( “Yes”, “No”)Il n’y avait qu’un seul œuf, comment on est passé à quarante ? questionne quelqu’un
Un projet vraiment inspirant
J’ai vu que c’était open source, mais il manque une licence, donc difficile pour les développeurs de savoir dans quelle mesure ils peuvent forker, modifier et redistribuer
J’aimerais aussi publier un fork traduit dans ma langue maternelle (en laissant bien le crédit), est-ce que ça poserait problème ?
Dans mon pays, moins de 5 % de la population parle anglais
Je suis curieux de savoir quelle est votre langue maternelle
Pour les langues écrites de gauche à droite, la traduction est simple à appliquer
N’hésitez pas à forker, faire une PR ou me contacter pour participer à l’amélioration de l’accessibilité, vous êtes les bienvenus
C’est formidable
C’est exactement ce qu’il me fallait il y a 12 heures
Par hasard, je me suis endormi hier soir alors que je créais pour la première fois des assets pour un jeu narratif romantique de 3 niveaux, solo
Je n’ai jamais fait de développement de jeu auparavant
Et ce matin, j’ai vu sur HN qu’une bibliothèque JS pour jeux narratifs était montée à la première place
FTR, mon jeu est un jeu de simp, et je l’utilise pour proposer officiellement à quelqu’un que je fréquente depuis un moment de devenir en couple
Je trouve que c’est une super idée
J’ai eu une expérience similaire récemment : j’ai entièrement recréé en HTML l’interface du chat MSN de 2005 pour offrir un moment de nostalgie à quelqu’un
C’était vraiment une expérience chaleureuse
Bonne idée
J’aimerais pouvoir t’aider davantage
Je pense vraiment que cet outil correspond parfaitement à ce cas d’usage
J’espère que ça marchera bien
Aimer quelqu’un, vouloir passer du temps avec cette personne ou montrer son intérêt ne mérite pas d’être qualifié de « simp »
Je trouve que c’est une proposition très chaleureuse et attentionnée
Ça donne une impression proche de puzzlescript
Je trouve l’outil vraiment très cool
Ce n’est pas lié à cette bibliothèque, mais je m’intéresse à la manière dont fonctionne le canvas video recorder utilisé dans le playground
J’aimerais essayer de l’implémenter moi-même
Code associé publié
J’ai regardé les canvas video recorder sur un projet récent, et je suis surpris que cette fonctionnalité soit intégrée
tutoriel medium.com de référence