Hackathon#6 - Team GameJam

Pour notre sixième KNP Hackathon, David, Flo, Gildas et Sylvain (alias Shivoham) se sont lancés le défi de créer un runner (jeu qui avance tout seul) utilisant du Reactive Programming avec Cycle.js, dans lequel une voiture doit éviter des camions. La subtilité ici : le joueur contrôlera l’environnement et pas la voiture.

Comme à chaque Hackathon, les équipes sont libres de choisir le thème de leur ToyProject et de comment ils veulent le réaliser. La seule contrainte : dépasser ses limites & have fun !

Objectif jour 1 : faire un rendu sur l’écran sans interaction
Objectif jour 2 : finir le jeu !

Daily fin de jour 1 : objectif explosé, yeah !

L’équipe a bootstrapé le jeu, mis en place la voiture (qui est donc l’adversaire du joueur) et qui se déplace toute seule en bas à droite et à gauche.

Le joueur joue en contrôlant l’environnement, et son but est que la voiture se prenne un camion.

RAF pour le jour 2 :

  • faire que les camions descendent tout seuls à vitesse constante
  • gérer les camions qui sortent de l’écran sans avoir été percutés
  • détecter de la collision entre la voiture et un camion (game over)
  • ajouter des textures

Un des challenges de ce projet est de trouver comment stocker la position des éléments sur l’écran.

Review fin du jour 2 :

Le jeu est opérationnel et disponible ici : https://knplabs.github.io/need-for-shivoham/public/ ! Les “camions” sont représentés par une belle tête de Shivoham.

L’état du jeu (la position des obstacles des véhicules et leur collision) est constamment recalculé en passant par des fonctions pures (tout est paramètre d’une fonction, même le temps) qui sont donc très testables. L’appli prend des écoutes en entrées, et créé un DOM en sortie.

Les commentaires de la team :

Gildas : Je trouve ce framework assez intuitif. J’ai appris à créer un nouveau type de jeux, et j’ai travaillé ma pédagogie et mes facultés à vulgariser. J’ai aussi appris de la refacto qu’on a faite, car elle a pu résoudre un problème auquel j’avais déjà été confronté.

Flo : La doc est correcte, les tutos sont bons. On retrouve des concepts de React avec Redux. Très content de la refacto qu’on a faite.

Sylvain : La prog reactive fait bien chauffer le cerveau, mais c’est vraiment très cool.

David : J’ai appris pendant ce Hackathon à utiliser Cycle.js et ai été surpris par sa simplicité. Pas facile de réfléchir en fonctionnel, mais en terme de lignes de codes, c’est d’une simplicité incroyable !

Plus de photos de notre Hackathon sur notre page Facebook - Enjoy !