Grimwood, encore un jeu de game jam
#1
Hello !

Nouvelle game jam, nouveau jeu ! Cette fois-ci le thème était de faire un jeu de baston. J'ai opté pour un beat'em up.

Côté technologie, c'est encore du Lua et ça utilise le moteur LÖVE. Tous les graphismes et toutes les animations sont de moi, la musique d'un ami. Côté code on a bossé à deux : le camarade a fait les effets visuels (en shaders) ainsi que l'IA des ennemis, et j'ai fait le reste.

[Image: xa2Gw0.gif]

La page Itch.io est un peu plus complète : https://sephi-chan.itch.io/grimwood

C'était un peu particulier de travailler avec quelqu'un sur ce genre de projet, nous n'avions pas le même niveau d'exigence sur le code produit et ça m'a plutôt dérangé. Quand je travaille par passion, je préfère le faire seul.

Les votes devraient ouvrir Mercredi, n'hésitez pas à y aller et à donner votre avis, que ce soit ici ou sur Itch.io ! 2
Répondre
#2
Quel engouement ! :p

Ayé ! Les votes sont ouverts ! Merci à ceux qui soutiendront ! 2

https://sephi-chan.itch.io/grimwood
Répondre
#3
J'ai déjà fait un feedback sur itch.io mais, tiens, j'ai une autre question qui me vient, vu que c'est un travail en binôme : " vous avez fait comment pour prendre les décisions à deux (le thème, le langage, qui fait quoi, etc) ?  "

J'ai vu que vous aviez utilisé trello mais est-ce que c'était plutôt du genre démocratie, chacun avance dans son coin et on fait le point régulièrement, ou pour toi il faut forcément un leader ? (la question un peu troll).
Répondre
#4
On est parti sur Lua et LÖVE très naturellement parce qu'on le maîtrisait tous les deux.

J'avais déjà commencé (sommairement) avant que le camarade ne me rejoigne et j'ai accepté de bosser ensemble à la condition qu'il adopte mon coding style.

On a tous les deux commencé à faire quelques graphismes (moi le héro, lui un ennemi) puis on a comparé et on a conclu que je m'occuperais des graphismes seul pour un visuel plus cohérent.

Dès le début, j'ai grincé des dents. La première tâche prise en charge (implémenter un effet parallax au scrolling horizontal) a été une repompe d'un article. Je m'en suis tout de suite rendu compte en lisant le code et j'ai bien vu que ce n'était pas de lui parce qu'il y avait plein de morceaux inutiles, de fonctionnalités dont on n'avait pas parlé et dont on n'avait pas besoin. J'ai demandé des explications, j'ai dit que ça ne me convenait pas, notamment parce que c'était code dans le style OO un peu pété de Lua. Je l'ai donc réécrit dans le style du projet, en virant au passage moult trucs inutiles.

J'ai beaucoup pris sur moi tout au long du projet pour ne pas repasser derrière chaque commit. Le code fonctionnait mais ne me plaisait pas du tout, car très incohérent : des variables mal nommées, des sauts de ligne et des espaces n'importe où, des bouts de code commentés, etc.

On se répartissait les tâches selon ce qu'on avait envie de faire, en discutant. Chacun avançait, laissait des messages à l'autre et on se notifiait quand il y avait un gros morceau à merge. On a eu assez peu de conflits de merge grâce à ça, alors même qu'on travaillait sur assez peu de fichiers. Par deux fois on a passé une heure en audio pour lancer les grands chantiers de l'itération suivante.

Au final, j'étais assez ferme sur 1 ou 2 trucs à trancher : le prof en moi a parfois pris le dessus, en rappelant ce qui était négociable ou non, et que si ça posait problème on pouvait fork et continuer chacun sur notre route, parce que je voulais m'amuser, pas être dans le conflit. Je pense que nous n'aurions pas pu aller aussi loin aussi vite avec une approche "chacun fait ce qu'il veut et surtout comme il veut" ou une approche très démocratique où tout est discuté et débattu.

Voilà pour le post mortem du travail en équipe. Globalement je préfère bosser seul, même si on est allé plus loin en étant deux.
Répondre
#5
Oui, je vois : après si c'est surtout une histoire de style de programmation à respecter, c'est vrai que ça peut être compliqué de respecter toutes les règles de codage (d'autant plus dans le cas où on débute en programmation et si vous n'avez pas fait un document qui détaille précisement toutes les règles). Mais c'est vrai que ça doit être frustrant de voir du code qu'on aimerait refactorer mais qu'on ne peut pas toucher (sans froisser l'autre). 2

Du coup, ça a l'air d'avoir été une bonne expérience finalement.
Répondre
#6
J'ai envie de faire un prototype d'un code en Lua, ça fait un bail que j'ai pas codé dans ce langage ... je vois que tu as préféré une approche sans OO. Au final, j'ai peur que ça soit un peu bâtard de faire du code pas OO (comme je peux faire en JS) mais pas mutable, alors que sur JS j'ai tendance à coupler FP/immutable et OOP/mutable.

Lua avait l'air fun mais je ne suis jamais allé bien loin.
Répondre
#7
Bof. L'OO de Lua est assez naze, et l'approche MFA d'Erlang permet de faire du polymorphisme simplement.

Mais je compte pas faire du Lua très longtemps pour faire des jeux, c'est trop chiant. Je pense me tourner vers Haxe pour continuer. En tout cas une chose est sûre, j'aime vraiment trop coder façon FP, map et reduce c'est la vie.
Répondre
#8
Ah merde, pourquoi c'est chiant ? Ça avait justement l'air assez simple et direct comme langage. Ou alors tu parles de la partie graphique ?
Répondre
#9
(12-14-2018, 10:57 PM)niahoo a écrit : Ah merde, pourquoi c'est chiant ? Ça avait justement l'air assez simple et direct comme langage. Ou alors tu parles de la partie graphique ?

Oui c'est simple et plutôt agréable à travailler, mais c'est assez brut et il faut faire à la main des trucs assez basiques (comme compter les clés d'une map). Ça manque sans doute d'une bonne lib standard. Je pense continuer à m'en servir pour quelques projets ou pour prototyper. Je testerai sûrement luafun pour avoir une belle lib fonctionnelle ! :p

Et Haxe m'intéresse car il y a l'air d'avoir de bons moteurs de jeux, qui compilent vers une tonne de plateformes. J'imagine que WebAssembly sera pris en charge un de ces jours !

Concernant la partie graphique, j'ai de tout petits besoins que LÖVE comble parfaitement me suffit amplement pour afficher des sprites (et pour Spherium ce n'était que des dessins de primitives).

Idéalement, j'aimerai trouver une stack fonctionnelle pour faire des jeux desktop/mobiles peu exigeants. L'impératif me gave.
Répondre
#10
Ok.
Ça me rebutait un peu Haxe mais bon tu nous diras ce que tu en penses !
Répondre




Utilisateur(s) parcourant ce sujet : 1 visiteur(s)