Bonjour Nal,
Aujourd'hui je t'écris, car j'ai bien avancé le travail de documentation de mon projet, Newton Adventure.
Comme je sais que tu rêves de créer un jeu de plateforme libre, ce travail t'offre une opportunité: créer son propre jeu de plateforme en forkant Newton Adventure.
Newton Adventure n'est pas un moteur de jeu, mais son code est libre et pas très difficile à comprendre, il est donc relativement facile de créer son propre jeu en le forkant.
La première étape pour créer un dérivé de Newton Adventure consiste à récupérer les sources et à compiler le jeu ainsi que l'éditeur de niveaux. Cette procédure est décrite ici.
Il faut ensuite remplacer les données du jeu (graphismes, sons, niveaux). La structure des données est documentée sur cette page, mais le plus simple consiste à éditer les données existantes: les images et les sons se remplacent facilement, tandis que les niveaux (fichiers *.tmx) demande d'utiliser l'éditeur fourni.
Pour tester, on peut soit recompiler le jeu, soit mettre les données dans un autre dossier que celui par défaut et utiliser la procédure de test.
A titre d'exemple, j'ai utilisé des graphismes du site opengameart pour créer bonhomme aventure, un jeu qui ne casse pas des briques, mais tout à fait fonctionnel:
# Merci
Posté par Marotte ⛧ . Évalué à 6.
Sans vouloir être rabat-joie ce n'est pas vraiment :
C'est plutôt un mod de Newton Adventure.
C'est tout de même super chouette. Et ça fait un moment que je me suis promis de tester ton jeu. La seule réticence, n'en étant pas vraiment une, c'est que ma copine devienne addict et n'en démorde pas, étant elle-même attirée par les jeux de plate-forme :)
[^] # Re: Merci
Posté par LeMagicien Garcimore . Évalué à 10.
Tu fais un concours avec Tanguy Ortolol?
Rien a voir : il ne vous fait pas penser à quelqu'un ce monsieur avec sa petite moustache et ses cheveux ?
[^] # Re: Merci
Posté par LeMagicien Garcimore . Évalué à 0.
yipiiiiiiiiiiiiiiiiiii
Disclameur : je suis légèrement gueurlot…
[^] # Re: Merci
Posté par Lebas Sébastien . Évalué à 2.
Sans vouloir être rabat-joie, il suffit de lire la définition que tu donnes pour voir que ce qu'il propose n'est pas un mod.
Ce qu'il propose n'est ni un greffon, ni un rajout à l'original. Un patch ou une modification directe du code d'une application n'est pas un greffon … Et remplacer des données ne constitue pas un rajout (qu'on modifie le chemin d'accès dans le code ou les fichiers directement, les données d'origine ne sont plus accessibles par le logiciel modifié).
[^] # Re: Merci
Posté par devnewton 🍺 (site web personnel) . Évalué à 4.
La notion de Mod s'applique surtout aux jeux propriétaires où on a un moteur fixe et des modules personnalisables. Dans le monde libre, cette distinction ne s'applique plus puisqu'on peut tout changer!
J'ai commencé à documenter pour permettre à des graphistes contributeurs de pouvoir créer et tester leurs propres niveaux, ce qui ressemble plus à du modding.
Par contre, en modifiant le cœur du code, il est possible de se retrouver avec un jeu complètement différent:
Le post ci-dessus est une grosse connerie, ne le lisez pas sérieusement.
[^] # Re: Merci
Posté par Zenitram (site web personnel) . Évalué à 0.
Un peut comme Team Fortress pour Half-life.
Faudrait un jour arrêter de fantasmer sur les non-possibilités du proprio, les mods pour les jeux proprios permettent tout ce que tu listes comme "avantages" du libre.
C'est peut-être que mon point de vue, mais :
- Fork : pas d'accord avec a direction d'un projet, ça clashe (la plupart du temps, rares sont les forks amicaux), on prend le code et suit un chemin différent, plus de synchro (ou peu) entre les deux projets qui vivent leur vies
- Mod : modifs à quelques endroits, quelques fonctions remplacées (si bien fait : à coup de hook prévus par le concepteur, hop proprio et libre à égalité), et synchro permanente avec le projet initial.
Bref, ce qui est décrit ici ressemble plus à du mod que du fork.
[^] # Re: Merci
Posté par claudex . Évalué à 4.
Quand on lit wikiédia, on lit que Valve a aidé à la création
Ceci laisse pensé que les modifications sont bien plus profondes que tu veux bien laissé le croire et qu'elles nécessitent l'accord du développeur du jeu.
« Rappelez-vous toujours que si la Gestapo avait les moyens de vous faire parler, les politiciens ont, eux, les moyens de vous faire taire. » Coluche
[^] # Re: Merci
Posté par Octabrain . Évalué à 4.
TF était peut-être un mauvais exemple, m'enfin le nombre de mods Half-life, Quake, etc. qui change complètement le type de jeu, et sans modifier une seule ligne du moteur, parce que le jeu de base a été bien conçu pour être très extensible…
[^] # Re: Merci
Posté par gnuzer (site web personnel) . Évalué à 5.
Je ne comprends pas comment on peut mettre « prévus par le concepteur » et « proprio et libre à égalité » dans la même phrase :/
[^] # Re: Merci
Posté par Octabrain . Évalué à 3. Dernière modification le 02 juin 2012 à 17:03.
Tain les mecs vous êtes lourds, c'est un "mod", éventuellement une "total conversion" (qui reste un mod). Le journal ne parle justement pas de modifier le moteur mais de remplacer les assets, rien d'autre, donc c'est un mod (oui, remplacer, ça reste un mod).
Et venir faire la leçon "non mais c'est libre donc c'est pas un mod", ça va bien quoi, faut arrêter de péter plus haut que son cul et de penser que comme c'est libre ça serait super cool de détourner le sens accepté des mots.
[^] # Re: Merci
Posté par devnewton 🍺 (site web personnel) . Évalué à 7.
Si un jour des femmes délaissent leurs compagnons pour jouer à mon jeu, je pense que je pourrais arrêter de travailler le gameplay!
Le post ci-dessus est une grosse connerie, ne le lisez pas sérieusement.
# Dans la même veine: utiliser le moteur de jeu de Frogatto
Posté par fero14041 . Évalué à 4.
Hello, guys.
Je trouve super de montrer comment utiliser les ressources d'un jeu pour permettre à d'autres d'en faire un nouveau. Il y a peu, un des auteurs de Frogatto a commencé une série d'articles et de vidéos autour de la création d'un jeu de plateforme (baptisé Elisa’s Quest) réutilisant son moteur, que je m'empresse donc de partager ici:
C'est malheureusement en anglais, mais se suit assez bien.
[^] # Re: Dans la même veine: utiliser le moteur de jeu de Frogatto
Posté par devnewton 🍺 (site web personnel) . Évalué à 3.
La rotation de gravité mise à part, le moteur de Frogatto a l'air bien plus complet. Le seul petit défaut, c'est l'utilisation d'un langage de script spécifique.
Le post ci-dessus est une grosse connerie, ne le lisez pas sérieusement.
# question
Posté par CrEv (site web personnel) . Évalué à 4.
Une petite question : Pourquoi utiliser maven (http://devnewton.bci.im/projects/newton_adventure/artifact/79dfe7445b086fb31c8e96b7fd961f86f32142c7 pour le pom) et ne pas utiliser le système de dépendances de maven ? C'est pourtant souvent la raison principale de l'utilisation de maven.
Et surtout non commenté. Ca veut quand même dire que pour en faire quelque chose il va limite falloir faire du reverse sur ton code pour savoir comment ça fonctionne. Et c'est vraiment dommage.
(histoire que mon commentaire ne soit pas mal pris : c'est pas pour taper sur ton projet, mais pour lui donner des chances. Un code libre et simple ne vaut malheureusement pas grand chose s'il n'est pas un peu commenté. Et non, les commentaires c'est pas comme les freins…)
[^] # Re: question
Posté par Mongos . Évalué à -1.
Oui et non. Un code n'a pas besoin d'être commenté si il est bien écrit : Il se suffit à lui même. Pire encore, un commentaire, lorsqu'il n'est pas mis à jour en même temps que le code, peut induire en erreur.
[^] # Re: question
Posté par CrEv (site web personnel) . Évalué à 8.
Ca c'est ce que beaucoup de monde aimerait croire…
Pour le second point oui, un commentaire qui n'est plus en relation avec le code est vraiment néfaste. Mais pas de commentaire aussi.
Le truc c'est que beaucoup de monde croit être meilleur que les autres, écrit forcément un bon code, donc pas besoin de commentaire. Bon, ce qu'on dit pas c'est que souvent c'est parce que ça fait chier les dev de commenter donc on trouve des excuses.
Maintenant il est évident que si ton commentaire n'est qu'une redite du code alors oui ça ne sert à rien.
De la même manière il est (de mon point de vue en tout cas) absolument idiot de vouloir coder en autre chose qu'en anglais. Pourquoi ? Parce que souvent on se retrouve avec ce genre de code :
Une fois écrit en anglias ça serait plus proche de :
Bon je dit pas que le deuxième cas n'existe pas, mais en général on va en anglais utiliser les mêmes mots. Donc on ne fait que réécrire le code dans un autre langage ce qui est idiot.
Bref, tout ça c'est bien joli mais ça n'explique toujours pas pourquoi il faut commenter. Simplement pour indiquer l'intention. Expliquer qu'un
for
parcoure un tableau on s'en fiche. Par contre, expliquer pourquoi on parcoure le tableau est très important.Et dans le cas qui nous concerne ici, pour faire un jeu à partir de newton il faudra bien modifier le jeu, modifier le moteur du jeu. Et là, rien, nada. Comment fonctionne le moteur ? Aucune idée. Qui fait quoi, quelle classe, quel objet, rien. Je ne parle pas de commenter chaque ligne, mais au moins de décrire un peu ce qui s'y passe, à quoi ça sert.
Et pour en revenir à "un code n'a pas besoin d'être commenté si il est bien écrit" faut quand même faire attention à ce qui est derrière le si. Beaucoup pensent que c'est bien codé, mais si c'était réellement le cas on aurait pas besoin de faire des tests, pas besoin de tests unitaires, pas besoin de debugger, etc. Une api par exemple doit être commentée d'une manière ou d'une autre, sinon elle ne sert à rien. Et un code aussi, on doit documenter l'intention. D'ailleurs c'est ce qui permet aussi de relever des problèmes, et aussi toute ambiguïté (mais pourquoi il fait ça ?)
[^] # Re: question
Posté par devnewton 🍺 (site web personnel) . Évalué à 2.
J'utilise Maven parce qu'il me permet de compiler en ligne de commande ou avec un IDE en ne décrivant qu'une fois mon projet.
Pour la gestion des dépendances, il y a plusieurs raisons:
Je trouve qu'il manque plutôt un document décrivant l'architecture du code (c'est prévu).
Les commentaires, j'en fais peu, car je pense que la bonne démarche quand on tombe sur un problème, c'est de contacter l'auteur du code. En plus ça tombe bien, il est super sympa.
Le post ci-dessus est une grosse connerie, ne le lisez pas sérieusement.
[^] # Re: question
Posté par CrEv (site web personnel) . Évalué à 7.
Pour la partie projet, compilation + IDE et dépendances, Gradle say bien.
Oui, il manque un document. Par contre
Sérieux ? C'est pour cette raison que tu ne commente pas ?
"Je ne vous ai pas fourni le mode d'emploi de l'ordinateur de bord de votre voiture car je pense que la bonne démarche c'est de contacter votre garage. En plus ça tombe bien, ils sont super sympa."
Désolé mais j'ai un peu de mal avec ça, et surtout (de mon point de vue) ça ne donne pas du tout envie.
Alors je sais pas, peut-être que c'est une façon de vouloir initier des contacts, des interactions, mais c'est à mon avis plutôt contre productif et ça n'insite absolument pas à avoir un retour, encore moins des contributions (car les gens ne contribuent pas pour avoir un contact avec l'auteur mais pour améliorer un point qui leur est intéressant.
Au fait, dans ton boulot (si tu codes) tu commente ou non ? (oué désolé, j'ai vraiment du mal à comprendre la logique)
[^] # Re: question
Posté par devnewton 🍺 (site web personnel) . Évalué à 1.
Je ne connaissais pas quand j'ai commencé le projet. Peut être pour un autre jeu!
Peu.
Je comprends que ce soit difficile à accepter, car on enseigne aux étudiants à bien commenter leurs codes, mais ces dernières années la pratique du développement a beaucoup changé en entreprise.
Les commentaires et la documentation sont une charge de travail non négligeable et il est préférable de se concentrer d'abord sur un code qui marche et faire de la transmission de connaissances de programmeur à programmeur.
Lorsque le projet est livré et passe en maintenance (éventuellement évolutive), on peut s'attaquer à produire de la documentation pendant la phase de stabilisation..
Newton Adventure suit le même chemin.
Le post ci-dessus est une grosse connerie, ne le lisez pas sérieusement.
[^] # Re: question
Posté par CrEv (site web personnel) . Évalué à 4.
Nan mais y'a quand même une sacré grosse différence entre trop commenter, perdre trop de temps à faire des docs inutiles et ne rien foutre du tout.
Et ben, je plain le boulot de ces gens, commenter le code d'un autre 6 mois après avoir été écrit…
Et surtout ça ne change rien au fait que l'intention du programmeur ne sera pas inscrite.
La difficulté de compréhension n'a rien à voir avec l'enseignement mais justement du fait d'experience pro. Il arrive (et arrivera) toujours un cas où tu devra reprendre le code d'un autre (absence, problème critique, tout ce que tu veux) et là tu va bien souffrir sans la moindre doc.
C'est vraiment présomptueux de croire que le code n'a pas besoin d'être commenté pour être lisible et souvent on va trouver des arguments (genre ça prend trop de temps) qui sont souvent motivés par "ça m'emmerde de commenter".
Et même si tout ceci était valide, là tu propose quand même aux autres d'utiliser et modifier ton code. On parle pas du voisin dans un open space hein. Et dans ce cas, pour moi c'est simple, s'il n'y a aucune doc aucun commentaire faudrait vraiment, vraiment, vraiment qu'il y ait quelque chose d'intéressant pour que je me fasse chier à comprendre le code que le dev n'a pas jugé utile de commenter.
Ben c'est quand même un chemin qui aide à restreindre les possibilités de contributions.
[^] # Re: question
Posté par devnewton 🍺 (site web personnel) . Évalué à 1.
Si c'est le code trivial d'un jeu libre, je m'en sortirais :-)
Et bien tant pis! Il y a plein de moteurs de jeux de qualité dans la nature, tu dois pouvoir trouver ton bonheur facilement.
Peut être mais en même temps:
Je suis prêt à passer du temps à aider les contributeurs, même débutants mais motivés, et à documenter à la demande pour les aider, mais pas non plus leur apprendre à respirer :-)
Le post ci-dessus est une grosse connerie, ne le lisez pas sérieusement.
[^] # Re: question
Posté par CrEv (site web personnel) . Évalué à 4.
Et si c'est pas le cas ?
[^] # Re: question
Posté par devnewton 🍺 (site web personnel) . Évalué à 5.
Je me roulerais en boule et je pleurerais en tapant du poing.
Le post ci-dessus est une grosse connerie, ne le lisez pas sérieusement.
[^] # Re: question
Posté par CrEv (site web personnel) . Évalué à 3.
Question conne : tu bosse dans quel type de boite ? SSII ou plutôt éditeur de logiciel ?
Si dans le premier cas je peux un peu comprendre ce que tu racontes (et encore) comment ferais-tu dans le deuxième, je veux dire avec du code que tu dois maintenir et faire évoluer sur au moins 5 ans ?
[^] # Re: question
Posté par devnewton 🍺 (site web personnel) . Évalué à 2.
Plutôt éditeur, mais linuxfr n'est pas le bon endroit pour que je raconte mes expériences pros dans le détail et le grand débat sur les commentaires m'intéresse peu en fait, donc je préfèrerais répondre à des questions sur Newton Adventure!
Le post ci-dessus est une grosse connerie, ne le lisez pas sérieusement.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.