Quoi ? Un jour de retard dans le post de l'article hebdomadaire !? Ça doit être pour marquer le fait qu'on est *légèrement* à la bourre !

Quoiqu'il en soit, il nous reste une grosse semaine pour finir ce qu'on voulait apporter à Paris pour le Festival du Jeu Vidéo. 

En plus de ça, on aimerait bien avoir fini d'assembler les éléments (éléments finaux ou "placeholders") pour la fin de semaine, afin de pouvoir faire "playtester" quelques gens (oui j'aime bien les anglicisme ou plus exactement j'ai du mal à les traduire).

Bref, je vous laisse avec le récapitulatif et je retourne programmer !

 

Côté programmation

Cette semaine, j'ai principalement écrit des scripts pour intégrer les objets conçus par William. William vous parle plus en détail des objets en question dans sa section, donc je fais l'impasse ! Mais il reste quand même quelques trucs dont je peux parler.

 

Modifications sur le système de particules

J'ai ajouté quelques effets 'à l'arrache' : la pluie (qui n'avait pas été implémentée avec la neige) et une sorte de fumée noirâtre.

Fumée, 1ère version

Pluie, 1ère version (0ème version ?)

 

Ces effets sont particulièrement non travaillés (et un peu moche, on peut le dire), mais ils feront l'affaire pour la démo.

J'ai aussi modifié l'effet de vent. Maintenant l'effet peut produire plusieurs trainées pour accentuer l'effet et le rendre plus visible.

Amélioration vent

 

Intégration gameplay

J'ai implémenté des scripts durant la majeure partie de la semaine. Le fichier où j'écris toutes les implémentations des scripts commence à être gros puisqu'il a passé les 4000 lignes cette semaine. J'aurais du faire un fichier par implémentation de script, mais j'ai eu trop la flemme pour ça. Le fichier est bien aéré quand même et les quelques 20 classes implémentées ne sont pas trop illisibles.

Sinon, à part ces anecdotes pourries, la chose la plus amusante que j'ai codé cette semaine est un script pour les lumières. Je ne révèlerai pas les tenants et aboutissants de l'utilisation des lumières dans le jeu (je laisse votre imagination travailler). A la place, voici juste une séquence d'images pour illustrer.

Lumière scriptée

 

Bug marrant

Le bug le plus marrant que nous ayons rencontré cette semaine est un bug de filtrage de texture. Voici le problème visuellement parlant présenté dans l'image suivante (à gauche c'est une fois corrigé, à droite c'est quand c'est cassé) :

Filtrage OK (gauche) / filtrage KO (droite)

On utilise le format Png pour les textures. C'est peut être une erreur, peut être aurions nous du choisir autre chose, mais le Png supporte la transparence et fait des fichiers plutôt petit sur le disque.

Le problème de traces blanches sur l'arbre à droite de l'image précédente provient du fait que l'exporteur Png de Photoshop ne prend pas en compte les canaux alpha personnalisés et modifie également les couleurs des pixels qui sont censés être transparent s(alpha = 0).

Voici l'exemple par l'image avec la texture de notre arbre. De gauche à droite : le canal alpha personnalisé que l'on veut, les canaux de couleurs RGB que l'on souhaite voir exporté dans le Png, les canaux de couleurs RGB réellement exportés par Photoshop Png Exporter, et le résultat final dans les deux cas.

Masque alpha / canaux RGB voulus / canaux RGB exporté / résultat du masque

Alors, pourquoi ces trainées blanches apparaissent ?

Et bien car les canaux de couleurs RGB ne sont pas conservés lors de l'export, et Photoshop les réécrit comme il lui semble avec des assemblages de rectangles. Dès lors, dans le moteur de jeu, lorsque l'on affiche une texture, celle-ci est filtrée. Qui dit filtrage dit que l'on prend plusieurs pixels de l'image et qu'on en fait une moyenne. Or les pixel visibles en bordure du masque alpha vont aller se mélanger (se filtrer) avec des pixels blancs non visibles car contenus sous le masque alpha (où l'alpha indique une transparence totale). D'où la présence des trainées blanches. Alors que si nos canaux RGB étaient pris en compte, les pixels en bordure seraient filtrés avec des pixels non visibles ayant une couleur similaire à eux.

Pour résoudre le problème, on aurait pu changer de format de fichier pour un format incluant un canal alpha customisé, avec les formats TGA ou DDS, mais on a comme qui dirait pas le temps pour ça tout de suite.

Dès lors notre ami google nous donne une solution sur les forums de Torque, avec un plugin d'export SuperPng qui écrit bien les canaux RBG que nous voulons dans le fichier Png. (lien direct pour les intéressés).

-----

Côté GD / LD / ART

> Art

Et une nouvelle semaine dédiée à l'animation ! Avec cette fois-ci un programme plutôt varié : champignons, moulins à vent, geysers et sapins. J'ai également posé le sol et une ébauche de background dans les écrans de type "grotte".

Chacun de ces objets est intéractif et possède un comportement unique lié aux saisons. Il est facile d'imaginer le fonctionnement du moulin à vent, mais qu'en est-il des champignons et des sapins ? Pour l'instant, je vous laisse deviner.


Concept animé du champignon et son comportement

Trouver un design satisfaisant pour les champignons s'est avéré relativement difficile. Je n'avais en fait aucune idée de la forme que je voulais leur donner.
Au départ, l'idée a été de faire un seul champignon, suffisamment gros pour permettre au renard de sauter dessus, mais il me semblait que ça lui donnait un aspect un peu trop fantasy / conte de fée. D'autant qu'avec son chapeau rond et  ses points colorés le champignon était vraiment trop caricatural.


Premier design

En consultant mes bouquins de référence sur les champignons, je trouvais qu'un chapeau plus plat serait déjà plus joli, mais ça ne changeait pas le fait qu'on aurait eu un seul et unique champignon là où au contraire je souhaitais plus de vie !

Donc j'ai pris un crayon et j'ai gribouillé, encore et encore, pour finalement obtenir...plein de champignons. Un bouquet de champignons !


Design pour la démo

Ca m'a bien plu, alors je suis passé à Blender (encore et toujours) pour animer tout ça. Les gros champignons au centre m'ont pris 2 heures à animer, mais c'est complètement ma faute. J'ai pinaillé et voulu mettre trop de détails dans l'animation (détails qui finalement sont imperceptibles). Quand j'ai commencé à réalisé que  ce n'était pas très efficace, j'ai décidé de procéder de manière plus simple pour les petits, et ça a marché ! C'est bon à savoir pour la suite, quand je devrais refaire les champignons pour la version finale du jeu.


Animé dans Blender

Car oui, tous les objets que nous créons aujourd'hui sont d'abord destinés à la démo. En les créant dans un temps aussi réduit, nous apprenons énormément et nous serons donc plus efficaces à l'avenir. Comme on dit chez nous : c'est en forgeant qu'on devient forgeron.

> Level Design

Pas grand-chose à dire sur le LD cette semaine, si ce n'est que j'ai du faire quelques ajustements dans les écrans 05, 10 et 11 de sorte qu'on ait suffisamment de place pour poser les moulins dans le monde. L'écran 11 est toujours un peu bancal : il faudra que je le repense une nouvelle fois afin de le rendre plus intéressant. Et si je n'y arrive pas, il finira par être écarté de la démo.