Unity : Résolution d’un problème d’affichage entre deux objets possédant des shaders transparents

J’ai réalisé aujourd’hui quelques correctifs sur mon jeu Bulldozer sortie sur Android l’an dernier, dont la correction d’un problème d’affichage sur les scores affichés quand le Bulldozer se déplace, mais uniquement si le score est affiché au-dessus de la mer.

Le problème survient entre la mer et les objets de type TextMeshPro que j’utilise pour afficher le texte des scores.

Constatation

  • La mer a son propre shader que j’ai récupéré dans un asset.
  • L’objet TextMeshPro utilise une police d’écriture sous forme d’image et son shader sert à définir la façon de rendre la police.

Pour les deux shaders, celui de la mer et celui de la police d’écriture, il y a utilisation du canal alpha. Le canal alpha c’est le canal qui est utilisé pour gérer la transparence. Le canal alpha n’est pas utilisé dans les shaders utilisés les cases, les bulldozers ou les arbres. Or j’ai des problèmes d’affichage uniquement entre la mer et le texte des scores.

Cet élément après de longue recherche m’a fait trouver qu’il y avait des problèmes d’affichages de ce type lorsque deux shaders utilisant la transparence sont paramétrés sur la même renderQueue.

La renderQueue selon la documentation unity c’est ce qui détermine dans quel ordre les objets sont rendus. Dans mon cas les deux étaient paramétrés sur 3000. En modifiant la valeur de la renderQueue de 3000 à 3000-1 soit 2999 pour le shader de mer j’ai résolu le   problème et mes objets s’affichent dans le bon ordre sans se marcher dessus l’un et l’autre.

En conclusion si vous avez des problèmes d’affichage entre deux objets qui utilisent la transparence alors vérifiez et modifiez la valeur de la renderQueue en fonction de l’objet que vous souhaitez voir afficher au-dessus de l’autre.

Télécharger le jeu Bulldozer pour Android

Plonger dans la création d’un jeu vidéo à partir d’un simple jeu de société

J’ai créé un prototype de jeu vidéo basé sur un jeu de société. Découvrez cette histoire mêlant abandon, persévérance et évolution. Qui a mené à la création de ma chaine Youtube et à un besoin de partage.

Il y a quelques mois j’ai créé un prototype de jeu vidéo basé sur un jeu de société que j’apprécie nommé pingouin dans lequel on amasse des points en récupérant des poissons en déplaçant des pingouins sur des cases de banquises hexagonales.

Ce qui ne devait être qu’un prototype

Au début de ce projet mon but était de travailler sur des algorithmes de déplacements hexagonaux simples. Mais aussi de réfléchir et d’implémenter mon propre système d’intelligence artificielle. Ou encore de rendre le jeu multijoueur.

Tout était bien parti

Je me suis pris au jeu et j’ai fini par réaliser le jeu en 3 étapes

  • Créer le prototype jouable en mode console
  • Transfert du code dans Unity et création de l’affichage
  • Développement du mode multijoueur / jeu contre l’ordinateur

La première étape m’a pris 5 soirées, la seconde 2 soirées

Quand tout a dérapé

J’ai pris la décision de créer une interface avec un écran d’accueil, un écran de paramétrage de la partie, etc ce qui m’a pris plus de 10 bonnes soirées et 1 ou 2 week-end. Et c’est là que les temps de développement ont explosés mettant en péril la publication de mon projet.

Certes j’avais une interface graphique mais il fallait revoir la gestion du plateau, les couleurs, la police d’écriture, la génération du plateau et cela plusieurs fois. Chaque modification qui n’avait pas été prévue à commencer à me prendre un temps monstrueux jusqu’à ce que je ne prenne presque plus de plaisir sur ce projet. J’ai quand même persisté en ajoutant le jeu contre l’ordinateur et en réfléchissant à l’implémentation du mode multijoueur. Mais le mal était fait. J’avais visé trop haut pour une aventure de codeur en solitaire sur mon temps libre.

Une lumière au bout du tunnel

J’ai profité de l’été pour regagner quelques forces et reprendre des activités un peu plus sociales comme les barbecues ou les sorties au lac. Suite à de nombreuses discussions, des connaissances m’ont fait comprendre une chose importante à propos de mes différents projets.

Mes projets sont une source d’inspiration

Ce n’est pas parce que je galère qu’il ne faut pas persister et que la direction n’est pas la bonne, au contraire. Toutes les personnes avec qui j’ai parlé cet été m’ont avouées la suprématie de l’informatique dans le monde du travail et même dans la vie de tous les jours. Ils ont réussi à me faire prendre conscience de la force de mes compétences. Et à me rappeler toutes les galères que j’ai surmontées tout au long de mon parcours ce qui a fini par me décider à promouvoir plus mes projets et à mettre en avant mes réflexions, mes échecs, mes découvertes et mes réussites.

Ce qui m’a conduit à créer des vidéos

Il faut cultiver notre jardin, par cette phrase de Candide écrit par Voltaire j’entends désormais bien plus que le simple fait de reprendre chaque année un carré de terre pour en faire jaillir de beaux fruits et légumes. En effet, ça fait plus d’une dizaine d’année que je cultive moi même des connaissances en partageant une partie de ma production mais en oubliant une étape importante. Celle d’en partager les graines. Ces graines ce sont mes vidéos.

Et apprendre à mieux maitriser le sujet

En créant des vidéos j’ai commencé une nouvelle activité. La rédaction et la recherche d’informations pertinentes en plus du montage vidéo et de la création de contenu. Tout ça dans le but de mieux maitriser mon sujet et que la graine prenne dans mon audience.

Et c’est pourquoi

J’ai imaginé une nouvelle série de vidéos qui démarre par l’analyse entre les jeux de société auxquels j’aime jouer et leur portage en jeux vidéo. Ce qui implique toute une analyse comparative des avantage et des inconvénients de ces deux pratiques. Je découvre moi même un nouvel éclairage sur ce qui manquait à mon prototype initial et que j’aimerais pouvoir transmettre dans le futur par l’intermédiaire de mes vidéos.

Enfin la vidéo

Elle est à regarder sans modération. Et à partager si elle vous plait.

Pour mieux comprendre

Si vous ne l’avez pas encore vue, vous pouvez regarder ma série de trois vidéos qui traite de la création d’un jeu de société en utilisant uniquement un ordinateur, un logiciel libre de dessin vectoriel « Inkscape » ainsi qu’une imprimante et une paire de ciseaux ou un cutter.

Nouveau format, place à la vidéo

Aujourd’hui je vous présente un nouveau format sur lequel je travaille. C’est à dire la vidéo. Avec ma première réalisation. Une présentation des règles d’un bon jeu de société. Trêve de bavardages et jugez donc par vous même.

J’aurais déjà beaucoup de remarque à me faire. Comme la nécessité d’acquérir un pied d’appareil photo pour ne pas avoir la sensation de voler au-dessus du plateau de jeu. Mais aussi l’amélioration de la bande son au milieu de la vidéo. Mon coude appuyé sur une petite chaise a produit un grain désagréable que je ne savais pas encore lisser. Voilà mes premières critiques en deux points.

N’hésiter pas à donner votre avis, bon ou mauvais. Vous pouvez aussi vous abonner à la chaine Youtube par intérêt ou simplement pour suivre ma progression, ou du moins je l’espère.

Flux RSS des vidéos d’une chaîne Youtube

Le premier article de 2015 concernera Youtube et les flux RSS avec l’astuce toute simple que voici. Si vous souhaitez suivre les vidéos d’une chaîne en particulier dans votre lecteur de flux RSS préféré, il suffit d’utiliser l’url suivante pour récupérer le flux RSS des vidéos d’un utilisateur. On remplacera bien sûr <USERNAME> par l’identifiant de la chaîne.

https://gdata.youtube.com/feeds/base/users/<USERNAME>/uploads

 

Illustration avec la chaîne Data Geule. Voici l’url que l’on obtient si on se rend sur la page Youtube:

https://www.youtube.com/user/datagueule/featured

On voit clairement le nom d’utilisateur, ici datageule. On constate parfois que le nom de la chaîne est complètement différent du nom d’utilisateur présent dans l’url; ce n’est pas le cas ici. On obtient donc l’url suivante pour les flux RSS de Data Geule sur Youtube:

https://gdata.youtube.com/feeds/base/users/datagueule/uploads

Bon visionnage!

Maj 23/05/15

Comme l’indique Damien dans les commentaires, l’url ci-dessus n’est désormais plus valide. En effet, suite à la mise à jour de l’API YouTube Data, Google a commencé à supprimer l’ancienne version à compter du 20 avril 2015. La nouvelle url à utiliser est donc la suivante:

https://www.youtube.com/feeds/videos.xml?user=<USERNAME>

Soit en reprenant notre exemple:

https://www.youtube.com/feeds/videos.xml?user=datagueule

Merci à lui!

Maj 23/05/16

Comme précisé par Doumé dans les commentaires, le paramètre à utiliser est différent lorsque l’url ne contient pas le nom d’utilisateur, mais l’identifiant de la chaîne Youtube. C’est le cas par exemple de la chaîne Veritasium dont l’url est la suivante :

https://www.youtube.com/channel/UCHnyfMqiRRG1u-2MsSQLbXA

Pour obtenir le flux RSS d’une chaîne, nous utiliserons donc la même url que précédemment, mais avec le paramètre channel_id, soit :

https://www.youtube.com/feeds/videos.xml?channel_id=<IDENTIFIANT>

Ce qui nous donne pour Veritasium :

https://www.youtube.com/feeds/videos.xml?channel_id=UCHnyfMqiRRG1u-2MsSQLbXA

Merci à Doumé pour cette précision !