Hackaton jeux vidéo avec Clojure/play-clj

33 views
Skip to first unread message

Khalid Jebbari

unread,
Jul 31, 2014, 12:54:30 PM7/31/14
to cloju...@googlegroups.com
Salut tout le monde !

Du vendredi 22 août au dimanche 24 à Paris, il y a hackaton où on aura en gros 48h pour créer un ptit jeu. Le thème sera annoncé vendredi soir normalement. 

Je suis en train de monter une petite équipe pour y participer. J'ai déjà un pote graphiste et un collègue développeur amateur de Clojure comme moi. Notre objectif est d'y aller pour s'amuser avec Clojure et la librairie play-clj. Play-clj est un wrapper autour de lib Java libGDX qui permet de faire du dev multi-plateforme a partir d'un seul code. 

Si ça motive quelqu'un, qu'il s'inscrive ! Lien Meetup ci-dessous. 

Toutes les infos :

Manuel Darcemont

unread,
Aug 25, 2014, 4:10:49 AM8/25/14
to cloju...@googlegroups.com
Hello Khalid,

C'était bien alors ?
Je suis bien intéressé par ton retour sur play-clj, si t'as le temps d'en faire un. Je continue toujours à jouer avec et j'ai une idée de projet, j'hésite encore un peu à me lancer.

Khalid Jebbari

unread,
Aug 25, 2014, 1:52:39 PM8/25/14
to cloju...@googlegroups.com
C'était super. L'orga était sympa, le lieu fait pour coder (un espace de co-working), et les gens motivés. Beaucoup de jeunes et débutants en prog, il y a eu un 2 ou 3 projets vraiment bien, dont 1 exceptionnel. 

Les gens nous ont regardé avec un air bizarre/étonné quand on leur a dit "Clojure", j'ai evangélisé un peu surtout que de tous les environnements que j'ai vu (Unity y compris) on était les seuls à avoir un environnement interactif. play-clj permet en effet d'injecter du code dans le jeu en live par simple évaluation des formes. Vive le REPL !

Pour nous : on a galéré à cause de Box2D parce qu'on ne savait pas s'en servir. Il faut bien lire la doc et des articles avancés sur Internet pour comprendre comment gérer les collisions. Ça nous a gâché le week end. Sinon on a pris beaucoup de plaisir à utiliser Clojure (c'est vraiment un langage mortel) et à participer en général. 

Pour play-clj : il wrappe le framework Java LibGDX, l'essentiel est couvert mais pas tout. Du coup il ne faut pas hésiter à lire la doc de LibGDX et le source des 2 projets pour comprendre. Ce n'est pas spécialement gênant, d'autant que clojure avec les protocoles et son intérop avec Java permet de faire tout ce dont on avait besoin. Intégrer les assets visuels et sonores a été très rapide, il faut juste bien comprendre la notion de viewport et dimensions. De plus le maintainer de play-clj est très réactif sur Github.
Pour ce qui est de son API, il impose peu de chose sur l'organisation du code, si ce n'est de définir des "screen" (équivalent des calques sous Photoshop), et fonctionne avec les structures de données immutables de Clojure (+ 1 atom). Les objets Java sous jacents étant eux mutables il faut être à l'aise avec la gestion d'état dans Clojure pour jongler entre ces données. Ça nous a fait perdre un peu de temps, mais je dirais que c'est parce qu'on était pas super à l'aise en Clojure. 

Pour toi : je ne sais pas quel est ton projet, mais d'après ce que j'ai compris LibGDX est très adapté aux jeux 2D et un peu moins aux jeux 3D, même s'il disposent d'API pour. Par contre, coder en Clojure en live avec le REPL est une feature inestimable ça permet d'itérer extrêmement vite. 

Au final très content du week end de LibGDX et Clojure. On est en train de refactorer le code et de terminer le jeu petit à petit. Une fois terminé on sera ravi de partager le code et le jeu (pas avant, c'est pas fini, buggé et... pas le plus beau des codes). 

Conseil à tous ceux qui veulent faire un hackaton : faites vos nuits, mangez bien et refactorer votre code en permanence sinon vous serez vite bloqué par le bazar que vous aurez écrit (bug-hunt hole comme on dit  anglais). 

Voilà !
--
Vous recevez ce message, car vous êtes abonné au groupe Google Groupes "clojure-fr".
Pour vous désabonner de ce groupe et ne plus recevoir d'e-mails le concernant, envoyez un e-mail à l'adresse clojure-fr+...@googlegroups.com.
Pour obtenir davantage d'options, consultez la page https://groups.google.com/d/optout.

Hiram MADELAINE

unread,
Aug 25, 2014, 2:28:16 PM8/25/14
to clojure-fr
Merci Khalid,

Cela mériterait un retour d'expérience et une présentation lors d'un meetup ?
--
Hiram MADELAINE
Eloquent Logic
96, rue La Fayette 75010 Paris
+33 6 11 51 37 71

Manuel Darcemont

unread,
Aug 25, 2014, 6:36:29 PM8/25/14
to cloju...@googlegroups.com
Cool, merci pour le feedback !
J'ai un autre gros projet en cours, je ne me mettrai sur ce projet de jeu (2D !) que dans quelques semaines ou mois, j'aurai peut-être l'occasion de revenir vers toi pour quelques questions sur play-clj.
Sinon en parlant de Unity, un wrapper Clojure est en cours de dév :
C'est encore très light, à voir comment ça va évoluer ...
Ca ne m'étonnerait pas que ça décolle un peu, les jeux vidéo peuvent vraiment bénéficier d'un environnement interactif avec REPL. Pour l'anecdote, Naughty Dog a longtemps développé ses jeux en GOAL, un dialecte LISP à eux. J'aime me dire que ça y est pour quelque chose dans la qualité technique d'Uncharted !

Khalid Jebbari

unread,
Aug 26, 2014, 1:53:30 AM8/26/14
to cloju...@googlegroups.com
Pour la présentation, une fois que le code est clean ce sera à avec plaisir. 

Khalid Jebbari

unread,
Aug 26, 2014, 1:54:23 AM8/26/14
to cloju...@googlegroups.com
Yep j'ai vu Clojure Unity, mais j'ai pas un excellent souvenir de Unity. J'espère que Clojure rendra l'outil bien meilleur. 
Reply all
Reply to author
Forward
0 new messages