Journal de bord

Journal de bord

Par Swing Swing Submarine Blog créé le 08/01/10 Mis à jour le 05/04/15 à 22h03

Ajouter aux favoris
Signaler
Seasons after Fall

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.

Ajouter à mes favoris Commenter (15)

Commentaires

Swing Swing Submarine
Signaler
Swing Swing Submarine
@hairaz:

En relisant ton commentaire, j'ai pas percuté tout de suite, mais quand je parle d'un fichier, je parle d'un couple .cpp/.h. Le gros fichier de 4000 ligne, c'est le cpp. Je respecte quand même l'encapsulation et la non exposition des implémentations scripts au clients des scripts.
(mais c'est du chipotage, ce que je fais c'est mal de toute façon ^^)

Guillaume
Swing Swing Submarine
Signaler
Swing Swing Submarine
Salut Druss !

Oué c'est du Crunch de Nestlé en ce moment :)

On sera surement pas une grosse attraction du salon hein :). Mais c'est clair qu'on aurait bien aimé te croiser, histoire de mettre des visages sur des pseudo, toussa !
Peut-être pour une prochaine occasion.

Guillaume
Druss
Signaler
Druss
Plus on approche du FJV, plus ça me dégoute de ne pas pouvoir y venir. lol
Surtout en sachant que votre demo se precise. Monde cruel. :)

Ceci dit, courage car j'imagine que vous etes a fond dans le "crunch"...
Swing Swing Submarine
Signaler
Swing Swing Submarine
Salut hairaz :)

Merci pour l'intérêt que tu portes à nos posts :] En espérant pas trop te décevoir au FJV ^^

Pour la contremarque et le prix réduit, je sais pas si tu peux préacheter ton billets à la FNAC... à vrai dire je doute, à la lecture de certains commentaires dans la news GB sur les bons de réduc FJV :(

Sinon pour ce fameux fichier de 4000 lignes, il est assez aéré avec des séparateurs entres les méthodes, du genre:
//---------------------------------------------------------

et entres les diverses implémentation classes (qui hérite tous de notre classe abstraite "Script"), je mets une lignée comme ça:
//---------------------------------------------------------
//////////////////////////////////////////////////////////////////////////////

Mais pour m'y retrouver, c'est surtout Visual Studio qui m'aide beaucoup, parce que t'as un sélecteur de méthodes par classe (ou par scope de manière plus générale) en haut de la zone de texte, du coup ça t'amène sur les lignes qu'il faut (ou sinon je fais ça avec une recherche dans le fichier courant). (Cf. Une image de Visual Studio avec des annotations, c'est intitulé "Code navigation").

Guillaume
hairaz
Signaler
hairaz
Ca commence à devenir très technique, avec l'arrivée de la préparation de la démo ... Donc encore plus intéressant !
Et puis, sincèrement, à force de voir de près les effets graphiques, les jeux sur les lumières, les promesses de gameplay et de game design disséminées dans ces posts, ca donne envie.

"Il est parfois frustrant pour moi de ne dessiner que ce que je peux et non ce que je veux."
J'ai longtemps cru être le seul au monde à souffrir de ca ...

Bref, je vous souhaite bon courage, j'ai personnellement hâte de pouvoir essayer cette démo que vous nous mitonnez avec amour (et qui nous permet d'avoir plein de posts !), et peut-être même de vous croiser au FJV (j'ai la contremarque avec le prix réduit, je peux pré-acheter mon billet avec à la Fnac ?)

(Et dire qu'il y a quelques heures, j'étais encore dans mes belles illusions d'ordre et de clarté ou je croyais que chaque classe demandait deux fichiers, et non pas un fichier pour 20 classes ... Enfin, il doit y avoir des moyens de s'y retrouver. Numéro de ligne ? Commentaires ? Petits schémas faits à la main ?)
Swing Swing Submarine
Signaler
Swing Swing Submarine
Salut funduk !

Ne sois pas désolé, parce que ton post est pas dénué d'intérêt. C'est toujours bon de savoir que des gens viennent lire par ici :)
Donc merci pour ton post et ton support !

Guillaume
funduk
Signaler
funduk
Super ! Plein de posts à lire !
(Desole pour ce message un peu vide d'interet. Bon courage pour les longues journées de travail à venir, en tout cas !)
Swing Swing Submarine
Signaler
Swing Swing Submarine
Salut beauregard,

En effet, si y'a pas de problème, c'est pas drôle :) J'ai bien cru au départ que c'était une mauvaise combinaison de couleurs dans un de mes shaders mais que nenni.

Guillaume
beauregard
Signaler
beauregard
aaah, les fameux problème lié au couche alpha, on a tous eu notre lot de problèmes. Mais je pense que le langage ou le logiciel utilisé n'est pas à l'abri d'erreur de conception... faut s'adapter (ou harceler le concepteur du langage ;) ).
Swing Swing Submarine
Signaler
Swing Swing Submarine
Hehe, je partage la même opinion que toi sur les projets pas à la bourre :)

En espérant pouvoir se croiser là-bas !

Guillaume
ACR
Signaler
ACR
Ca a l'air vraiment cool ce gameplay basé sur les saisons. Normalement je serai sur place pour le festival j'essayerai de passer si je peux.
Mais sinon un projet pas à la bourre c'est plus un projet c'est une utopie. Je suis un peu dans le même cas que vous donc je compatis^^
Bon courage pour la suite !
Swing Swing Submarine
Signaler
Swing Swing Submarine
Salut Enimal !

On se voit le dimanche alors (je pense qu'on aura bien des têtes de zombis ^^)

Guillaume
Swing Swing Submarine
Signaler
Swing Swing Submarine
Hehe, merci Attila,

En effet ça va être court mais on désespère pas :)

Guillaume (qui y retourne)
Enimal
Signaler
Enimal
On vous pardonne cette journée de retard, et je vous remercie de prendre le temps de nous informer continuellement sur seasons.

PS : ça y est j'ai mes places pour le FJV, je passerai surement vous voir dimanche :)
Attila
Signaler
Attila
Bon courage les mecs, ça doit être bien tendu en ce moment, les délais à tenir semblent courts, espérons que vous en récolterez les fruits au Festival du Jeu.

Édito

Grâce à ce mini-devblog en français, vous pourrez suivre l'activité de notre minuscule studio de développement indépendant Swing Swing Submarine.

Nous sommes une petite équipe d'hommes et de chats passionnés qui souhaitent partager de nouvelles expériences interactives avec les joueurs du monde entier, et ceux de Gameblog en font bien évidemment partie !

--------------------------------------------------------

Quelques liens utiles :

> Site officiel <

> Twitter <

> Facebook <

Archives

Favoris