Accueil
Bio
Articles
Projets
Contact

Article

Reprise du développement : missions, mutations et autres améliorations

575 4

[Cellul'z] publié le 12/01/2013 à 18h07
"Ma mission est de tuer le temps et la sienne de me tuer à son tour. On est tout à fait à l'aise entre assassins." - Emil Michel Cioran

J'ai repris le développement de Cellul'z pendant mes vacances : j'ai déjà quelques nouveautés à vous proposer et des idées (les vôtres !) à vous soumettre.

Avertissement : Cet article a été publié il y a déjà un certain moment.
Il se peut que son contenu ne reflète plus exactement ma pensée actuelle.

Salut à tous !

C'est peut-être le billet que vous attendiez, du moins si vous vous intéressez un peu à ce que je dis dans les billets précédents ou sur Twitter, à Cellul'z en tant qu'anciens beta-testeurs ou que curieux. Après mes premières épreuves de PACES, me voici donc en vacances pour encore une bonne quinzaine de jours, ce qui me laisse un peu le temps de coder. Dans ce billet, programme et avancées à prévoir, bref du 100% Cellul'z comme il y a longtemps.
Juste un mot tout de même concernant mes examens : j'ai envie de dire que ça s'est bien passé, mais aucune certitude quant à mon résultat. Pas la sensation d'avoir fait pire, loin de là, mais pas la conviction d'avoir fait beaucoup mieux pour autant. Résultats le 25 Janvier, j'attends patiemment.

Cellul'z.. On en était où ?


J'ai planté le développement de Cellul'z presque début Août, mois durant lequel j'ai dû travailler afin de remplir mon compte en banque1 et qui m'avait surtout empêché de passer du temps sur le jeu. J'en étais grossomodo sur la fin de l'optimisation du panneau de gestion dont je parlais dans le dernier billet concernant Cellul'z. Je rappelle les circonstances du problème : une gestion des cellules impossible, submergée par la quantité de données et causée par la mauvaise optimisation de mon code. Je vous propose qu'on reparte de ce point. Personne n'est perdu ?

Optimisation du panneau de gestion


Aux dernières nouvelles, le panneau de gestion est finalement bouclé. J'ai vérifié mon code, j'ai testé en jeu, rien ne semble manquer. Je poursuis les tests pour m'en assurer, mais pour l'instant, rien de mauvais. Il reste peut-être -sûrement- des optimisations à réaliser mais rien d'urgent en tout cas et rien d'impressionnant non plus.

Ceci dit, je dois insister sur le fait que les améliorations, elles, sont réellement impressionnantes niveau performances, tout autant qu'au niveau visuel. Je reste satisfait de l'idée de voir les petites cellules sur le panneau, plutôt qu'un immonde tableau sur la page principale. D'ailleurs, je n'en ai plus de réels souvenirs, il ne me manque absolument pas !

Système de missions


Ahlalala, celui-là ! Depuis le temps que j'en parle2 ! Et bien ça y est, enfin !

Oui oui, c'est en place ! Les principales actions sont désormais sujettes à un contrôle dont l'idée est de quantifier les différents paramètres du jeu afin de remplir des objectifs. Exemples simples, il vous sera demandé d'acheter x unités de telle molécule à la boutique ou de produire x unités de tel élément par la respiration cellulaire. On approche donc à petits pas -rapides- vers un premier moyen de classer les joueurs, non pas directement sur leur nombre de cellules mais sur leur gestion.

Alors pourquoi faire tout un fromage de ce système ? Parce que pendant longtemps, je ne savais pas du tout comment concevoir le script central qui serait capable d'analyser chacune des actions réalisées (où qu'elle soit, quelle qu'elle soit) et de vérifier si telle ou telle mission était accomplie (quelle qu'elle soit, quoi qu'elle implique).. et qui soit rapide et utilisable sur des pages déjà relativement chargées comme le panneau de gestion.
Puis finalement, je ne sais donc pas si c'est l'effet PACES, la chance du débutant du dev qui n'a pas codé depuis longtemps ou autre chose, mais j'ai finalement réussi à pondre cette fonction, qui tient sur.. une cinquantaine de lignes, quel que soit le nombre de missions que je compte incorporer au jeu3. J'ai donc quelque chose de fonctionnel, stable, rapide et suffisamment adaptable si je juge bon d'inclure un nouveau type de missions dans le jeu.
J'ai également pris la peine de coder un panneau d'administration pour faciliter l'ajout de missions au jeu. Ainsi, rajouter des paliers à des missions ou en modifier les paramètres ne me demande pas de modifications du jeu in vivo. Nickel. Une page d'affichage de l'avancement du joueur dans chacune des missions est aussi déjà disponible.

Je reparlerai en détails des missions à accomplir par le joueur, les évolutions à suivre ou encore des différents rangs que l'accomplissement des missions permettra d'atteindre. Je n'ai pas encore suffisamment réfléchi aux valeurs chiffrées les plus adaptées et aux avantages que cela apportera au joueur.

Transition...


Voilà pour ce qui est fait depuis le début de mes vacances.. c'est pas trop mal, en ajoutant le temps que je me remette dans le bain : ça faisait quand même plus de quatre mois que je n'avais pas écrit une ligne de code -je ressentais même un peu d'appréhension à l'idée d'avoir changé de regard sur la programmation ou sur mon code.
Content des premiers résultats, j'espère pouvoir apporter encore deux trois choses à Cellul'z avant de devoir affronter un second semestre de PACES tout aussi long et difficile que le premier.

Parallèlement aux améliorations, je parcours le code du jeu dans ses plus vieux recoins -ou les moins utilisés- à la recherche de portions optimisables ou carrément obsolètes. Je nettoie, je clarifie. Ce n'est pas visible in-game mais ça en a un considérable sur le confort que j'ai de coder sur le projet. C'est donc essentiel et sincèrement, ça ne coûte pas grand chose... Par exemple, la mitose, que je viens de revoir, qui nécessitait d'être un poil clarifiée et stabilisée ; ou la boutique, déjà améliorée, mais qui pourrait être peaufinée de la même façon que le système de missions.

Mais de fil en aiguille, je tombe aussi parfois sur des choses que j'ai envie d'exploiter ou d'améliorer. Avoir fait beaucoup de biologie moléculaire ces derniers mois m'inspire aussi. C'est pourquoi je reviens maintenant sur une idée des beta-testeurs qui m'intéressait, mais que je n'avais pas le temps de mettre en place à l'époque4 : les mutations.

Mutations, génome et expression du génome, erreurs de transcription et erreurs de traduction


Une mutation, c'est typiquement un changement dans la séquence génétique (l'alignement des bases azotées ATCG dans la molécule d'ADN).. oui je connais mon cours de bio mol vous ai-je dit ;) ! Ces mutations ont parfois des conséquences sur la cellule : si une mutation influe sur une séquence codante pour une protéine (et sur une base azotée qui modifiera la signification du codon associé un acide aminé dans la protéine), la protéine en est modifiée et devient très souvent toxique pour les cellules. Une cellule peut aussi devenir cancéreuse suite à une mutation (la mutation touche les gènes régulant la division et la mort cellulaire, ce qui conduit à la formation de tumeurs).
Une erreur de transcription, c'est plutôt rare, mais ça arrive : malgré une séquence génomique correcte et de multiples systèmes participant à la justesse de sa transcritpion, l'ADN n'est pas toujours correctement transcrit sous forme d'ARN (souvent, il n'est pas nettoyé des éléments inutiles). Ainsi, qui dit mauvais ARN, dit mauvaise protéine et donc, toxicité.
Les erreurs de traduction, c'est encore le niveau en dessous : c'est au niveau du ribosome que l'erreur se produit, ou plutôt au niveau des ARNt. Les ARNt sont des ARN chargés de transporter les acides aminés au ribosome qui lui, incorpore l'acide aminé adapté au bon codon de l'ARNm. Mais parfois, l'ARNt, malgré sa très forte spécificité avec un acide aminé, fixe un mauvais acide aminé : cet acide aminé est donc fixé en face d'un codon qui ne lui correspond pas... on en revient au même problème : mauvaise chaîne d'acides aminés, mauvaise protéine, toxicité.

Voilà pour les explications techniques. J'ai simplifié au maximum, j'ai un résumé de cours de 50 pages sur l'ADN, les ARN, les mutations, la transcription et la traduction... Mais j'espère que jusque-là, je n'ai perdu personne !
Si vous n'avez pas compris, vous pouvez vous contenter de retenir que le génome (ADN) est transcrit sous forme d'ARN (ARNm par exemple, qui contiennent les séquences nécessaires à la synthèse de protéines) et l'ARN (ARNm) est lui traduit sous forme de protéine (chaîne d'acides aminés). À chaque niveau de cette suite, une mutation ou une erreur peut retentir sur tout le reste de la suite et conduit donc à une protéine toxique. Pas souvent heureusement, mais ce n'est pas anodin !

Dans Cellul'z, il y a la traduction d'ARNm et la production de protéines (les acides aminés que vous récoltiez à la fin de la traduction) pour ce qui concerne les erreurs de traduction. On a aussi la mitose, qui peut apporter des mutations. En clair, il y a largement de quoi imaginer des systèmes aléatoires et agissant rarement qui pourraient avoir des répercussions sur vos cellules et le reste de votre élevage.

Voilà ce que je propose pour chacun de ces niveaux :
> pour la mitose : une fois sur x, la cellule subit une mutation. Cette mutation conduit à la mort de la cellule, à son dysfonctionnement (risque accru de production de protéines toxiques), à son devenir en cellule cancéreuse.. ou à un simple changement de couleur, voire à son super-fonctionnement (chance accrue de production de protéines spéciales) smiley !
> pour la traduction : une fois sur x, lorsque vous récolterez vos protéines/acides aminés, vous pourrez tomber sur une protéine normale sans effet spécial, sur une protéine toxique tuant une des cellules ou sur une protéine spéciale, utilisable à la boutique comme monnaie d'échange ou comme trophée. Bref, du malus comme du bonus, les mutations pouvant influencer les probabilités, comme dit au-dessus.

Enfin, les mutations sont transmissibles : si vous obtenez des cellules filles à partir d'une cellule mère mutée, celles-ci bénéficieront (ou non) de ses avantages génétiques.

Vous vouliez des mutations, j'espère que vous en appréciez les conséquences, puisque ça peut aller du simple au double ici. Sincèrement, ça me tenterait bien de mettre ça en place. C'est désormais ce qui manque au jeu, une part plus importante de l'aléatoire.
N'hésitez pas à apporter vos idées ou remarques en commentaires de ce billet ;) !

Et les organes ?


Je mets un peu de côté les organes pour deux raisons : j'ai déjà pas mal d'objectifs sur ma liste -et pas beaucoup de temps- et mes cours m'ont déjà beaucoup apportés sur les organes. J'en saurai peut-être plus au second semestre, ce sera plus intéressant de s'y mettre après. De plus, j'ai besoin de mieux réfléchir à leur utilisation et à leurs fonctions, maintenant que je peux y accoler des missions, voire le futur système de mutations.

Conclusion


Ouf, j'arrive au bout de ce billet, et vous aussi !.. Je peux donc me remettre au travail !
J'espère que ce billet vous aura plu malgré l'absence d'images -je n'en donne pas non plus sur Twitter d'ailleurs-, mais elles viendront prochainement. J'essaie de vous tenir au courant de mes avancées. En attendant, je reste à l'écoute de toutes vos remarques, lâchez-vous !

Ciao !

1. Même si depuis, j'ai pas encore franchement dépensé ! Ça servira pour mon permis de conduire, à louer un logement étudiant sur Angers si je passe en deuxième année... Que du nécessaire.
2. Et depuis le temps que je dis "depuis le temps que j'en parle !"...
3. Remarquez d'ailleurs que souvent, un script qui n'est pas flexible à vos ajouts de contenu n'est probablement pas stable ou optimisé : je le redécouvre souvent avec Cellul'z, au fil de mes erreurs -ou de mes réussites, comme ici.
4. "À l'époque".. ça vieillit beaucoup, mais n'ayons pas peur des mots !

Autres articles dans la même catégorie :
Orchestre symphorganique (20/01/2014)
Période de développement, session hiver 2014 (12/01/2014)
L'Amino-Loto (13/06/2013)

Commentaires

HolyDanna
13/01/13, 01h53

Enfin !! Ça faisait longtemps que j'attendais une annonce de la relance !!

Chris
14/01/13, 02h34

C'est chouette d'avoir des nouvelles de Cellulz mais en dehors des vacances/break-spéciaux, continue à privilégier tes études ;)

Flavio46
14/01/13, 02h20

Ça restera la priorité, dès le 28 Janvier, je me recentre sérieusement sur mes cours -surtout dans l'hypothèse où je suis bien classé, sait-on jamais !

Aiwha
17/01/13, 08h51

C'est super de voir que Cellul'z avance !
J'aime beaucoup le système de mutations, je suis impatient de pouvoir y rejouer.

Bon courage pour ton deuxième semestre, et bonne chance pour les résultats du PACES !

Pseudo :
Recopier « ijopli » à l'envers :