Histoire d'avoir des souvenirs, je me suis amusé à prendre des captures d'écran tout au long du développement du jeu.
Les voici, avec mes commentaires : vous en apprendrez ainsi un peu plus sur le jeu.

Attention tout de même : il y a du spoiler avec la solution de certains niveaux, et la fin du jeu ! Donc si vous comptez jouez à Icosien, gardez ce lien sous le coude et revenez plus tard !
Dernière chose, la page est assez lourde à charger – soyez patients !

Icosien, c'est 1 526 lignes de code, 660 lignes de commentaires et 24 fichiers répartis dans trois packages.

Version α côté développeur

Capture de la version Alpha d'Icosien
Une image à l'époque où je développais l'algorithme Eulris. Le fond jaune flashy permet juste de définir une surface sur laquelle on peut intercepter la souris !

Capture de la version Alpha d'Icosien
Le tout premier niveau créé, pour tester la syntaxe d'encodage des graphes et apprécier le rendu du fil sur une forme plus géométrique qu'aléatoire.
On peut d'ailleurs noter que la détection de fin de niveau n'est pas encore présente ; à l'époque je recompile à chaque fois pour tester un nouveau niveau, afin de gagner du temps. Cela évite de créer la banque de niveaux quand on ne sait pas encore bien quels paramètres additionnels pourraient être nécessaires dans les niveaux spéciaux.

Capture de la version Alpha d'Icosien
Des esais sur la couleur et les clous.

Capture de la version Alpha d'Icosien
Un niveau dans l'éditeur FlashDevelop.

Capture de la version Alpha d'Icosien
Un autre niveau testé. À l'époque, au moment de sélectionner la première accroche, tous les clous grossissaient pour faciliter le clic. Cette option a disparu pour des clous plus jolis !

Capture de la version Alpha d'Icosien
Un niveau en cours de création.

Capture de la version Alpha d'Icosien

Capture de la version Alpha d'Icosien
Une erreur de code ; j'ai fait en sorte que la version finale n'en comporte plus aucune (évidemment !).
Juste pour information, on me signale ici que j'essaie de détruire un niveau à partir d'un évènement (sa disparition de l'écran, removeChild()) alors que le destructeur est prévu pour être appelé de façon indépendante.

Capture de la version Alpha d'Icosien
Le Google Doc collaboratif sur lequel on retrouve toute l'ébauche du jeu !

Version α côté designer

Tandis que je travaillais sur la version α, Licoti travaillait quant à lui sur des images et des textures applicables sur le jeu.

À terme, il m'a fort gentiment livré les images suivantes ; elles n'étaient bien entendu pas interactives et cherchait simplement à définir l'esthétique générale et la façon dont le jeu serait affiché. Du très bon boulot, comme d'habitude avec mes collaborateurs – que ce soit sur Omnilogie ou ailleurs !

Ressources graphiques Licoti
Licoti qui se moque et fait semblant de dessiner aussi bien que moi.

Ressources graphiques Licoti
La première image que j'ai vu du jeu :) La planche a été éclaircie pour la version finale.

Ressources graphiques Licoti
La seconde planche. À l'origine, Licoti était parti pour se passer sous silence. Quelle modestie :')

Ressources graphiques Licoti
On note ici un niveau de jeu avec le texte d'aide élaboré sur un document collaboratif (phrase sponsorisée par Google Docs). Seul souci, l'image indique uniquement les traits par défaut, pas la ficelle... ce qui nous jouera des tours plus tard, puisqu'il faudra plus d'une semaine pour choisir le style définitif de la corde.

Ressources graphiques Licoti
Un autre test d'affichage de texte, non retenu (parce que je suis une flemmasse).

Ressources graphiques Licoti
Le même niveau, sans texte autour. Ainsi que les éternels lauriers...

Ressources graphiques Licoti
Des petits clous :)

Ressources graphiques Licoti
L'image de fin. Elle est un peu anachronique ici, puisqu'elle a été faite bien après toutes les autres mais bon...

Ressources graphiques Licoti
Redde Caesari quae sunt Caesaris, et quae sunt Licoti Licoto.

Version Alpha : le résultat

Un jeu jouable, sans graphisme et sans transition, sans début ni fin !

Création des ressources

Une fois nos deux versions alpha terminées, Licoti me fournit les textures indépendantes qu'il avait utilisé pour créer ses scènes.

Version β

Capture de la version Beta d'Icosien
L'image la plus facile à intégrer, c'était bien évidemment la planche de fond. Encore fallait-il la faire défiler de façon intéressante !

Capture de la version Beta d'Icosien
Viennent ensuite les clous. La première version intégrait l'ombre directement sur la ressource, ce qui s'avéra peu pratique (il est plus simple d'appliquer un filtre depuis le code source sur tout le niveau pour créer une ombre similaire partout).

Capture de la version Beta d'Icosien
Le fil prend un peu d'épaisseur, et on peut noter l'apparition d'une ombre portée sous le fil.

Capture de la version Beta d'Icosien
Tadam ! Voilà la plante positionnée au premier plan ; elle n'en bougera plus !

Capture de la version Beta d'Icosien
Au début du jeu, pour faciliter le débogage la souris était considérée comme un clou toujours accroché. Ce qui était un peu déstabilisant pour les joueurs !

Capture de la version Beta d'Icosien
Premier essai pour intégrer le splash screen sur le niveau. Au début, je comptais charger dynamiquement les images et afficher de la pub pendant le chargement. Finalement, j'ai préféré tout inclure directement dans le fichier flash ; ce qui permet d'assurer un jeu fonctionnel même si mon serveur ne répond plus ou que l'on joue en local. En contrepartie, la publicité initiale est moche. Mais bon... la suite est largement assez jolie pour compenser, non ?

Capture de la version Beta d'Icosien
On se rend compte sur cette image que l'ombre choisie initialement pour la corde rend mal sur les clous : elle est trop éloignée pour être réaliste. Elle passe donc de 15 pixels de distance à une valeur plus cohérente aux alentours de 5px.

Capture de la version Beta d'Icosien
Un niveau en cours de jeu. Et cette fois ça y est, le jeu est fonctionnel et permet de passer d'un niveau à un autre (et donc de détecter la victoire) !

Capture de la version Beta d'Icosien
Le dodécahédron en cours d'implémentation.

Capture de la version Beta d'Icosien
Un changement intéressant : les traits indiquant les arêtes possibles perdent de leur dureté, et sont plus doux. L'effet imite un dessin à la craie sur la planche (et effectivement, c'est ça : j'applique un déplacement en fonction de l'état de la planche en dessous).

Capture de la version Beta d'Icosien
Un niveau proof of concept. Allez savoir pourquoi, je ne l'ai pas inclus dans la version finale ;)

Capture de la version Beta d'Icosien
Le McGee graph presque terminé. Afin de corser la difficulté, j'ai modifié certaines arêtes du McGee Graph original. Il en va de même pour d'autres niveaux, auxquels j'ajoute des arêtes / en supprime, ou modifie la disposition conventionnelle des nœuds pour l'intérêt du jeu.

Capture de la version Beta d'Icosien
Le 60-Thomassen, que je construis par symétries successives pour éviter les erreurs :)

Capture de la version Beta d'Icosien
Toujours le même. On peut noter des légères modifications dans le positionnement des clous pour obtenir des formes plus convexes, et donc plus faciles à accrocher pour le joueur.
On peut aussi voir qu'un clou a disparu, en bas à droite : c'est normal, le 60-Thomassen est hypohamiltonien et donc injouable en tant que tel. Au début, je voulais enlever le clou "central en bas" pour obtenir une forme plus agréable, mais cela aurait impliqué de recoder toutes les arêtes ; et surtout un niveau beaucoup plus facile que cette disposition complexes. Car en enlevant un noeud qui ne fait pas la jonction entre deux zones, j'empêche la résolution du niveau par analyse (décomposition en petites pièces). Ce qui a tendance à tuer mes testeurs, qui s'acharnent à vouloir le résoudre zone par zone sans succès. Pour être franc, je ne pense pas qu'on puisse le réussir "en trois fois" : la seule solution que j'en vois (et signalée par certains algorithmes) est un parcours complexe oscillant entre les zones.

Capture de la version Beta d'Icosien
Une petite capture pour montrer que le web aide : mathworld et wikipédia m'auront été d'un grand secours pour la réalisation de ce jeu. Comme je le dis plus haut, mention spéciale aux graphes hypohamiltoniens qui sont souvent plus durs à résoudre (affirmation sans preuve, les vrais matheux me tueront).
Ici, le premier snark de Blanusa.

Capture de la version Beta d'Icosien
Encore une capture pour montrer le développement en dual screen : d'un côté le code source, de l'autre la documentation et les outils mathématiques pour vérifier la cohérence des niveaux. Je me serais beaucoup servi de ce superbe algorithme pour les niveaux Hamiltoniens ! (Les eulériens ne requérant pas d'aide pour les résoudre !)

Capture de la version Beta d'Icosien
Lors du test de certains niveaux, il m'arrivait d'activer un mode "tricheur" qui m'indique à chaque point que je prends le prochain point à prendre pour compléter un tour hamiltonien. C'est de la triche certes, mais cela permet d'aller vite.
D'ailleurs, il y a aussi un raccourci clavier qui permet de tricher et d'accéder au niveau supérieur sans résoudre le précédent. Par pur esprit de moquerie, je l'ai laissé dans la version finale... et dans le code source du jeu, avis aux amateurs !

Capture de la version Beta d'Icosien
Un test pour afficher du texte agréable à l'œil. Évidemment, là ça ne va pas... et pourtant, la police est la bonne ! Le seul changement aura consisté à modifier la couleur du texte, et à appliquer une ombre interne pour donner un effet gravure.

Capture de la version Beta d'Icosien
L'évolution du texte, de gauche à droite : avec une ombre interne forte, avec une ombre interne faible (c'est la version retenue), sans ombre, et le motif que Licoti proposait (que j'obtiens finalement).

Capture de la version Beta d'Icosien
Encore un niveau triché avec guide interactif. Je laisse l'image en espérant qu'elle débloquera les gens coincés sur ce niveau maléfique !

Capture de la version Beta d'Icosien
De même. On peut aussi noter les premiers essais pour afficher une corde... non concluants.

Version RC1

À ce stade, j'exploite des gens innocents pour tester le jeu. Il y a les testeurs distants, à qui je demande simplement de me faire remonter les remarques, et les testeurs "en place" que j'observe jouer pour voir si quelque chose est contre-intuitif ou pas clair pour eux.
Le concept de "tirer le fil comme dans la réalité" n'a pas toujours le même succès, mais à terme tout le monde comprend.
Cela permet aussi de trier les niveaux par difficulté croissante – même si cela reste tout à fait subjectif.

C'est pendant cette période que je suis retourné à une corde monochrome ; plus légère et plus jolie même si la texture s'intègre moins bien. De même, je rajoute des touches pour recommencer (echap, espace, k... pick one !) et le numéro des niveaux (grosse demande pour cette option, peut-être parce que les testeurs distants ne peuvent que dire "je bloque sur le niveau en forme de... toile d'araignée".

Capture de la Release Candidate d'Icosien
Un test de la version "en ligne" sous Linux. Malheureusement, Flash Develop n'est disponible que sous Windows et je dois donc développer sur cet OS, puis faire les tests sur Linux. On peut voir ici que la corde est toujours là, toujours aussi moche...

Capture de la Release Candidate d'Icosien
Apparition de la publicité pendant le chargement. Faut bien vivre mon bon monsieur...

Capture de la Release Candidate d'Icosien
Ça bouge sur cette image ! Retour à une corde moins tape à l'œil, signalement des erreurs bien visible, et affichage du niveau en cours en bas. Notez le petit effet grungy, c'est le même filtre que pour la craie.

Capture de la Release Candidate d'Icosien
Non, cette image n'est pas un bug ! C'est ce qui arrive si on appuie plusieurs fois sur la touche gauche du clavier : les niveaux défilent les uns après les autres. La RC m'aura permis de détecter un bug important (une fuite mémoire si plusieurs niveaux devaient être supprimés dans un même intervalle), et plus important de le corriger :) Ainsi, le défilement est cohérent. J'aime bien les numéros de niveau qui défilent en bas à la manière d'un ascenseur, je trouve ça chouette !

Capture de la Release Candidate d'Icosien
La version debug de Flash permet d'afficher les zones de retraçage, ce qui permet de s'assurer que l'application ne travaille pas comme une folle à dessiner des choses inutiles. Ici, on peut apprécier les rectangles rouges qui restent confinés au strict minimum ; limitant ainsi la consommation processeur du jeu.

Capture de la Release Candidate d'Icosien
Et pour conclure, des publicités interlevel. Il est peu probable que vous en voyiez : elles ne s'affichent que toutes les 15 minutes, si vous avez joué plus de 20 minutes.

Ressources utilisées :

Et enfin, les ressources "intégrées" dans le jeu. Si vous disséquez le swf, vous trouverez donc les images suivantes...

Titre du jeu : Icosien
C'est la diapositive d'introduction du jeu. Elle part en effet de fondu pour afficher Neamar, puis Licoti avec un effet de fondu rendu possible par la complexité croissante des textures (quelle phrase !).

Codeur : Neamar

Producteur graphique : Licoti

Image d'arrière plan
L'arrière plan utilisé. On lui applique un effet miroir pour simuler une planche plus large et ne pas avoir une répétition directe.

Plante au premier plan.
La plante au premier plan. Je trouve que ça ressemble à du laurier, d'autres à du Haschich (en même temps, certains voient une croix gammée sur la solution d'un des niveaux. Faut arrêter la symbologie, ça va trop loin ! C'est juste un graphe.)

ClouVis
Clou et vis.

Image de fin du jeu Icosien
L'image de fin d'Icosien. Notez la disparition des clous, qui sont ajoutés par le programme pour rendre le dernier niveau interactif (mais ingagnable, faut pas abuser non plus). Cette image n'est pas vraiment incluse dans le programme, car elle est assez lourde pour n'être vue que par peu de monde (ne nous voilons pas la face, les derniers niveaux sont durs. Très durs). Je la charge donc dynamiquement quand le joueur arrive sur le dernier niveau, ce qui allège de beaucoup le poids du swf final.

Bonus

Icosien sur Android
Icosien sur Android
Android vaincra !

Réflexion pour les niveaux d'Icosien
Même après des années de vie virtuelle, rien ne remplace le couple papier crayon !

Réflexion pour les niveaux d'Icosien
Petite sélection de quatre feuilles utilisées pour la conception des niveaux. Y en a d'autres... mais elles sont à la poubelle !

Voili voulou, maintenant il est temps d'aller rejouer à Icosien !
J'espère que cet article sans prétention vous aura intéressé et aura comblé vos penchants voyeuristes.