Juste pour vous informer que ça avance bien. J'ai pensé à pas mal de choses pour améliorer la versatilité de l'affichage, alors ça a un peu repoussé la "mise en production" des podcasts & articles associés.
J'espère avoir fini le code fin de semaine, le prochain article/podcast devrait arrivé en fin de semaine prochaine ;).
J'espère ^^. Mais je mets à la place des gens aussi, à leur place je regarderai juste du coin de l'oeil pour voir si ça abouti vraiment à quelque chose ou si c'est que de la poudre aux yeux :p. Combien de projets semblent prometteur mais finissent à l'abandon ?
Promis, j'aurais du visuel dans les prochains podcasts ;).
J'ai fini de coder le gros de la partie affichage. Je suis donc en train de bosser sur la réalisation de la vidéo-podcast pour la présenter.
Je me rend compte que j'ai beaucoup trop négliger les podcasts précédents, parce que j'étais convaincu que je n'arriverais pas à faire des video de bonne qualité par moi-même. Or, le but de Mist, c'est aussi de vous faire partager le développement et ça, je ne le fais pas correctement en baclant la réalisation des videos.
Je vais donc essayer de bosser sérieusement sur la réalisation de la video résumé, aussi bien sur le texte que les visuels dans la vidéo.
Mais vu que je ne suis ni un pro de Photoshop, ni un pro du montage video, ça risque de prendre du temps. Pas de date, mais j'espère une sortie dans le courant de la semaine prochaine.
[Mist] L'affichage (1/3) - Gestion des formats d'écran
Après avoir décrit les différents composants qui seront utilisés par Mist dans l'article précédent, nous allons cette fois-ci nous concentrer plus précisément sur l'affichage. Beaucoup de choses à dire, donc on va faire ça par étape. Aujourd'hui, on s'attaque à la gestion des formats d'écran.
_
Un des points forts de Mist repose sur sa portabilité. Cela implique que le changement de support doit se faire sans douleur.
_
Une équipe de développement doit se fixer un format d'écran "type" avec lequel elle va travailler. Or, qui dit support différent dit écran différent, nous obligeant parfois à changer de format par rapport à ce qui avait été prévu au départ. Sur Xbox 360 ou PS3, ça peut aussi bien être du 16:9 que du 4:3, sur PC on peut également ajouter le 16:10, et qui sait, peut-être qu'un autre format plus "exotique" aujourd'hui deviendra le standard de demain dans les années à venir ?
_
Comment faire passer Chrono Trigger sur un écran 16:9 ?
Comment faire passer Dust: An Elysian Tail sur un écran 4:3 ?
_
Les constructeurs de télévision ont déjà été confrontés à ce problème lors de la transition 4:3 vers 16:9, une époque durant laquelle seule une poignée de chaînes utilisait le format "écran large" qui est si commun de nos jours. Ils ont donc imaginer diverses techniques pour arriver à adapter tant bien que mal une image 4:3 en 16:9, et le résultat n'est pas toujours des plus esthétique ...
_
L'approche Letter-Box
Ou "boîte aux lettres". Elle consiste à centrer l'image dans l'écran et de remplir les "trous" avec du noir. Le nom "boîte aux lettres" vient de la ressemblance avec ... une boîte aux lettres (ah bon ?) lorsque l'on adapte une image large sur un écran "moins large" (comme un film sur une télévision 4:3).
_
Quel gaspillage !
_
Il s'agit sans doute de ma méthode préférée car la plus fidèle à l'expérience initialement prévue. Sur un grand écran, le gaspillage n'est pas si gênant que ça, mais lorsqu'il est déjà très petit (comme sur une console portable, ou smartphone), gaspiller entre 25% et 50% de la surface de l'écran peut rendre l'expérience peu confortable pour le joueur. Dans ce genre de situation, la première chose qui me viendrait à l'esprit serait "portage baclé". Peut-on faire mieux ?
_
L'approche Stretched
Où l'image est étirée pour occuper l'intégralité de l'espace.
_
Mon dieu que c'est moche !
_
Je crois que tout le monde sera d'accord pour dire que le rendu est tout sauf esthétique. Je préfère encore utiliser des bandes noires plutôt que d'infliger ça au joueur ! Et pourtant, ce mode d'affichage trouvera une utilité dans un prochain article ^^. Il nous reste encore une dernière alternative ...
_
L'approche Pan & Scan
Il suffit de découper l'image !
_
Voila, ça rend bien mieux comme ça non ?
_
Ca parait tellement simple dit comme ça. On utilise tout l'écran, pas de déformation dégueulasse. Problème résolu donc ? Pas tout à fait ^^.
_
Ce genre d'approche amène un TRES grand nombre de problèmes (oui si c'est en gras souligné, c'est que c'est que l'heure est vraiment grave :p). Je vais illustrer tout ça avec quelques exemples biens choisis ^^.
_
Un aperçu des défauts du Pan & Scan
L'interface
Les plus fins observateurs l'auront sans doute remarqués: le passage en 4:3 de Dust: An Elysian Tail coupe purement et simplement une partie de l'interface. De manière générale, cela signifie qu'il faut adapter l'interface en fonction de l'écran, aussi bien en terme de taille que de position.
_
Et voila comment rendre une interface totalement inutilisable :/.
_
Le saut de l'ange
Voici une situation relativement banale, où le joueur doit sauter au dessus d'un trou.
_
Ca c'est un vrai trou !
_
Que se passe-t-il si on passe en 4:3 ?
_
Je suis Keblo :s.
_
Le joueur est complètment perdu car il ne voit pas la plate-forme de droite ! Il s'agit ni plus ni moins d'un saut de l'ange (ou à l'aveugle). Le pauvre joueur 4:3 va plutôt penser qu'il est face à un cul-de-sac, et va sans doute errer un moment dans le niveau avant de tenter le grand plongeon (à moins qu'au bout de 2 longues minutes de recherche, il se soit résolu à chercher la solution sur le net :p).
_
Des solutions ?
Il y a toujours une solution pour peu que l'on y réfléchisse suffisamment ^^. Pour ce qui est de l'interface, le problème est qu'on définit sa position et sa taille en fonction de l'image du jeu et non de l'écran. On peut très facilement les résoudre automatiquement.
_
Par exemple, il suffit de plaçer la barre de vie en haut à gauche de l'écran (et non de l'image).
_
Et voilà le travail :p.
_
Quant au problème du saut de l'ange, l'industrie du cinéma y a déjà été confronté. Nombre de films sont projetés dans les formats 1,85:1, et 2,39:1 (merci Wikipédia :p). A titre de comparaison, un écran 16:9 est équivalent à un format 1,77:1. En clair, les écrans des salles obscures sont beaucoup plus larges que nos chères télévisions HD.
_
Lorsqu'ils doivent mettre en vente un film sur DVD ou Bluray, c'est toujours mieux si le consommateur ne doit pas se taper un affichage letter-box ou stretched. Alors on découpe (c'est plus vendeur). Mais ça peut poser soucis dans certaines scènes, où, par exemple, quelque chose (personnage ou objet) de particulièrement important est mis se trouve à l'extrême gauche/droite de l'image (comme la seconde plate-forme pour le problème du saut de l'ange).
_
Pour que ce "quelque chose" soit visible par le spectateur, ils ont eu la bonne idée de procéder à un recadrage. L'idée, c'est de ne pas plaçer la "fenêtre" au centre de l'image, mais en fonction de la situation.
_
Du coup, on se rend immédiatement compte qu'avec un cadrage adapté, le problème du saut de l'ange peut être résolu très facilement.
_
Tout devient clair !
_
Ils ont été encore plus loin: cette "fenêtre" peut être déplaçée dynamiquement, passant progressivement d'une position à l'autre ! En effet, si l'objet important se déplaçe, il faut accompagner son mouvement pour ne pas qu'il sorte du cadre.
_
Le problème de cette approche, c'est qu'il faut paramètrer tout ça "à la main". Dans un film où on connait précisément le déplaçement de la caméra, et les formats d'écran utilisés par les cinéphile, on peut en général utiliser le Pan & Scan, bien que cela demande un certain travail post-production.
_
Mais pour ce qui est de la création d'un jeu, c'est une toute autre histoire. Certains cas problématiques ne pourraient pas être résolus proprement. Il faudra alors revoir la structure du niveau pour que ça rentre dans le cadre pour les formats d'écran "type". Si on reprend le cas du saut de l'ange par exemple, si le cadre est trop étroit, on ne pourra pas y faire rentrer Yoshi et la plate-forme se trouvant à l'extrémité droite.
_
Réaliser cela automatiquement n'est pas impossible si on s'autorise à 'dézoomer', mais je crains que le résultat ne soit beaucoup moins "propre" qu'un recadrage au cas par cas (au point de gêner le joueur, en rendant son personnage beaucoup trop petit, ou en enchaînant des 'zoom'/'dézoom' intempestifs). Bref, on ne fait pas de miracle ^^.
_
J'ai malgré tout intégré ce mode d'affichage pour plusieurs raisons. Dans la pratique, on ne devrait pas devoir recourir à un découpage brutal, la plupart des écrans étant en 16:9 (ou en 16:10) de nos jours. De plus, les problèmes ne surviennent qu'en de très rares cas. Et dans le fond, c'est le mode d'affichage le plus confortable pour l'utilisateur.
_
Il n'empêche que le plus simple reste le mode Letter-box qui garanti la même visibilité pour tous, et épargne ainsi bons nombre de tracas aux développeurs et testeurs :p.
_
Je vous invite à visionner la vidéo résumé pour voir tourner Mist ;). Quand je vous disais qu'il y avait un tas de choses à dire (et dire que ce n'est que le premier article sur l'affichage ^^).
Je fais un rapide état des lieux. Pour des raisons personnelles, il se fait que j'ai beaucoup moins de temps à consacrer à Mist. Les vidéos/compte-rendus, en plus de me prendre ENORMEMENT de temps, ne sont pas de très bonne qualité selon moi (je manque sans doute d'expérience, aussi bien au niveau du montage que du contenu).
Je pense qu'il vaut mieux que je consacre le peu de temps que j'ai à la conception de Mist. Je vais donc laisser tomber les articles/vidéos.
Mais je ne laisse pas complètement tomber l'idée, je retenterai l'expérience qu'en j'attaquerai la partie plus "gameplay" (plus facile à expliquer, et sans doute plus intéressante pour vous :p).
Enfin voila, le projet n'est pas mort, loin de là :p.
Le projet suit son cours, j'avance pas très vite parce que j'ai un peu de mal à gérer mon temps pour l'instant mais j'avance. J'ai fini la partie "audio" et j'ai commencé la partie "gamepad" il y a peu.
Pour l'audio j'ai implémenté une gestion des sons "en 3D", c'est à dire qu'on à théoriquement l'impression qu'un son vient d'un endroit précis (devant, derrière, gauche, droite, ...).
Pour les gamepads, j'ai pour objectif de fournir quelque chose capable de reconnaitre tout seul des combinaisons de touches. En clair, si on fait un jeu de combat, je peux juste dire "bas droite a => hadoken" et le moteur se démerde pour détecter quand le joueur fait la bonne combinaison. Le but étant qu'au niveau du moteur, on ne gère pas les touches de la manette mais juste des "actions" qui correspondent à des saisies des touches.
Je n'ai pas encore tout lu mais c'est très intéressent de voir l'avancé du développement d'un moteur de jeu. Sa pourrait même servir de tuto. Je lirais tout ça plus tard et j'éditerais mon post. Bon courage pour la suite.
Coucou ^^
Juste pour vous informer que ça avance bien. J'ai pensé à pas mal de choses pour améliorer la versatilité de l'affichage, alors ça a un peu repoussé la "mise en production" des podcasts & articles associés.
J'espère avoir fini le code fin de semaine, le prochain article/podcast devrait arrivé en fin de semaine prochaine ;).
Voila voila ^^.
[Projet] Mist2D
[Tutorial] - PC dédié à l'émulation 8/16/32 bits
Bon courage ;)
Je pense que quand tu postera du visuel, tu aura plus de réactions :p
J'espère ^^. Mais je mets à la place des gens aussi, à leur place je regarderai juste du coin de l'oeil pour voir si ça abouti vraiment à quelque chose ou si c'est que de la poudre aux yeux :p. Combien de projets semblent prometteur mais finissent à l'abandon ?
Promis, j'aurais du visuel dans les prochains podcasts ;).
[Projet] Mist2D
[Tutorial] - PC dédié à l'émulation 8/16/32 bits
Salut à tous ^^.
J'ai fini de coder le gros de la partie affichage. Je suis donc en train de bosser sur la réalisation de la vidéo-podcast pour la présenter.
Je me rend compte que j'ai beaucoup trop négliger les podcasts précédents, parce que j'étais convaincu que je n'arriverais pas à faire des video de bonne qualité par moi-même. Or, le but de Mist, c'est aussi de vous faire partager le développement et ça, je ne le fais pas correctement en baclant la réalisation des videos.
Je vais donc essayer de bosser sérieusement sur la réalisation de la video résumé, aussi bien sur le texte que les visuels dans la vidéo.
Mais vu que je ne suis ni un pro de Photoshop, ni un pro du montage video, ça risque de prendre du temps. Pas de date, mais j'espère une sortie dans le courant de la semaine prochaine.
Voila voila ^^.
[Projet] Mist2D
[Tutorial] - PC dédié à l'émulation 8/16/32 bits
Mdr ^^. Ca me fait penser qu'il me faudra un logo pour Mist tôt ou tard :p.
[Projet] Mist2D
[Tutorial] - PC dédié à l'émulation 8/16/32 bits
[Mist] L'affichage (1/3) - Gestion des formats d'écran
Après avoir décrit les différents composants qui seront utilisés par Mist dans l'article précédent, nous allons cette fois-ci nous concentrer plus précisément sur l'affichage. Beaucoup de choses à dire, donc on va faire ça par étape. Aujourd'hui, on s'attaque à la gestion des formats d'écran.
_
Un des points forts de Mist repose sur sa portabilité. Cela implique que le changement de support doit se faire sans douleur.
_
Une équipe de développement doit se fixer un format d'écran "type" avec lequel elle va travailler. Or, qui dit support différent dit écran différent, nous obligeant parfois à changer de format par rapport à ce qui avait été prévu au départ. Sur Xbox 360 ou PS3, ça peut aussi bien être du 16:9 que du 4:3, sur PC on peut également ajouter le 16:10, et qui sait, peut-être qu'un autre format plus "exotique" aujourd'hui deviendra le standard de demain dans les années à venir ?
_
Comment faire passer Chrono Trigger sur un écran 16:9 ?
Comment faire passer Dust: An Elysian Tail sur un écran 4:3 ?
_
Les constructeurs de télévision ont déjà été confrontés à ce problème lors de la transition 4:3 vers 16:9, une époque durant laquelle seule une poignée de chaînes utilisait le format "écran large" qui est si commun de nos jours. Ils ont donc imaginer diverses techniques pour arriver à adapter tant bien que mal une image 4:3 en 16:9, et le résultat n'est pas toujours des plus esthétique ...
_
L'approche Letter-Box
Ou "boîte aux lettres". Elle consiste à centrer l'image dans l'écran et de remplir les "trous" avec du noir. Le nom "boîte aux lettres" vient de la ressemblance avec ... une boîte aux lettres (ah bon ?) lorsque l'on adapte une image large sur un écran "moins large" (comme un film sur une télévision 4:3).
_
Quel gaspillage !
_
Il s'agit sans doute de ma méthode préférée car la plus fidèle à l'expérience initialement prévue. Sur un grand écran, le gaspillage n'est pas si gênant que ça, mais lorsqu'il est déjà très petit (comme sur une console portable, ou smartphone), gaspiller entre 25% et 50% de la surface de l'écran peut rendre l'expérience peu confortable pour le joueur. Dans ce genre de situation, la première chose qui me viendrait à l'esprit serait "portage baclé". Peut-on faire mieux ?
_
L'approche Stretched
Où l'image est étirée pour occuper l'intégralité de l'espace.
_
Mon dieu que c'est moche !
_
Je crois que tout le monde sera d'accord pour dire que le rendu est tout sauf esthétique. Je préfère encore utiliser des bandes noires plutôt que d'infliger ça au joueur ! Et pourtant, ce mode d'affichage trouvera une utilité dans un prochain article ^^. Il nous reste encore une dernière alternative ...
_
L'approche Pan & Scan
Il suffit de découper l'image !
_
Voila, ça rend bien mieux comme ça non ?
_
Ca parait tellement simple dit comme ça. On utilise tout l'écran, pas de déformation dégueulasse. Problème résolu donc ? Pas tout à fait ^^.
_
Ce genre d'approche amène un TRES grand nombre de problèmes (oui si c'est en gras souligné, c'est que c'est que l'heure est vraiment grave :p). Je vais illustrer tout ça avec quelques exemples biens choisis ^^.
_
Un aperçu des défauts du Pan & Scan
L'interface
Les plus fins observateurs l'auront sans doute remarqués: le passage en 4:3 de Dust: An Elysian Tail coupe purement et simplement une partie de l'interface. De manière générale, cela signifie qu'il faut adapter l'interface en fonction de l'écran, aussi bien en terme de taille que de position.
_
Et voila comment rendre une interface totalement inutilisable :/.
_
Le saut de l'ange
Voici une situation relativement banale, où le joueur doit sauter au dessus d'un trou.
_
Ca c'est un vrai trou !
_
Que se passe-t-il si on passe en 4:3 ?
_
Je suis Keblo :s.
_
Le joueur est complètment perdu car il ne voit pas la plate-forme de droite ! Il s'agit ni plus ni moins d'un saut de l'ange (ou à l'aveugle). Le pauvre joueur 4:3 va plutôt penser qu'il est face à un cul-de-sac, et va sans doute errer un moment dans le niveau avant de tenter le grand plongeon (à moins qu'au bout de 2 longues minutes de recherche, il se soit résolu à chercher la solution sur le net :p).
_
Des solutions ?
Il y a toujours une solution pour peu que l'on y réfléchisse suffisamment ^^. Pour ce qui est de l'interface, le problème est qu'on définit sa position et sa taille en fonction de l'image du jeu et non de l'écran. On peut très facilement les résoudre automatiquement.
_
Par exemple, il suffit de plaçer la barre de vie en haut à gauche de l'écran (et non de l'image).
_
Et voilà le travail :p.
_
Quant au problème du saut de l'ange, l'industrie du cinéma y a déjà été confronté. Nombre de films sont projetés dans les formats 1,85:1, et 2,39:1 (merci Wikipédia :p). A titre de comparaison, un écran 16:9 est équivalent à un format 1,77:1. En clair, les écrans des salles obscures sont beaucoup plus larges que nos chères télévisions HD.
_
Lorsqu'ils doivent mettre en vente un film sur DVD ou Bluray, c'est toujours mieux si le consommateur ne doit pas se taper un affichage letter-box ou stretched. Alors on découpe (c'est plus vendeur). Mais ça peut poser soucis dans certaines scènes, où, par exemple, quelque chose (personnage ou objet) de particulièrement important est mis se trouve à l'extrême gauche/droite de l'image (comme la seconde plate-forme pour le problème du saut de l'ange).
_
Pour que ce "quelque chose" soit visible par le spectateur, ils ont eu la bonne idée de procéder à un recadrage. L'idée, c'est de ne pas plaçer la "fenêtre" au centre de l'image, mais en fonction de la situation.
_
Du coup, on se rend immédiatement compte qu'avec un cadrage adapté, le problème du saut de l'ange peut être résolu très facilement.
_
Tout devient clair !
_
Ils ont été encore plus loin: cette "fenêtre" peut être déplaçée dynamiquement, passant progressivement d'une position à l'autre ! En effet, si l'objet important se déplaçe, il faut accompagner son mouvement pour ne pas qu'il sorte du cadre.
_
Le problème de cette approche, c'est qu'il faut paramètrer tout ça "à la main". Dans un film où on connait précisément le déplaçement de la caméra, et les formats d'écran utilisés par les cinéphile, on peut en général utiliser le Pan & Scan, bien que cela demande un certain travail post-production.
_
Mais pour ce qui est de la création d'un jeu, c'est une toute autre histoire. Certains cas problématiques ne pourraient pas être résolus proprement. Il faudra alors revoir la structure du niveau pour que ça rentre dans le cadre pour les formats d'écran "type". Si on reprend le cas du saut de l'ange par exemple, si le cadre est trop étroit, on ne pourra pas y faire rentrer Yoshi et la plate-forme se trouvant à l'extrémité droite.
_
Réaliser cela automatiquement n'est pas impossible si on s'autorise à 'dézoomer', mais je crains que le résultat ne soit beaucoup moins "propre" qu'un recadrage au cas par cas (au point de gêner le joueur, en rendant son personnage beaucoup trop petit, ou en enchaînant des 'zoom'/'dézoom' intempestifs). Bref, on ne fait pas de miracle ^^.
_
J'ai malgré tout intégré ce mode d'affichage pour plusieurs raisons. Dans la pratique, on ne devrait pas devoir recourir à un découpage brutal, la plupart des écrans étant en 16:9 (ou en 16:10) de nos jours. De plus, les problèmes ne surviennent qu'en de très rares cas. Et dans le fond, c'est le mode d'affichage le plus confortable pour l'utilisateur.
_
Il n'empêche que le plus simple reste le mode Letter-box qui garanti la même visibilité pour tous, et épargne ainsi bons nombre de tracas aux développeurs et testeurs :p.
_
Je vous invite à visionner la vidéo résumé pour voir tourner Mist ;). Quand je vous disais qu'il y avait un tas de choses à dire (et dire que ce n'est que le premier article sur l'affichage ^^).
_
Vidéo résumé
[Projet] Mist2D
[Tutorial] - PC dédié à l'émulation 8/16/32 bits
Bonjour à tous ^^.
Je fais un rapide état des lieux. Pour des raisons personnelles, il se fait que j'ai beaucoup moins de temps à consacrer à Mist. Les vidéos/compte-rendus, en plus de me prendre ENORMEMENT de temps, ne sont pas de très bonne qualité selon moi (je manque sans doute d'expérience, aussi bien au niveau du montage que du contenu).
Je pense qu'il vaut mieux que je consacre le peu de temps que j'ai à la conception de Mist. Je vais donc laisser tomber les articles/vidéos.
Mais je ne laisse pas complètement tomber l'idée, je retenterai l'expérience qu'en j'attaquerai la partie plus "gameplay" (plus facile à expliquer, et sans doute plus intéressante pour vous :p).
Enfin voila, le projet n'est pas mort, loin de là :p.
[Projet] Mist2D
[Tutorial] - PC dédié à l'émulation 8/16/32 bits
Bonsoir bonsoir ^^.
Le projet suit son cours, j'avance pas très vite parce que j'ai un peu de mal à gérer mon temps pour l'instant mais j'avance. J'ai fini la partie "audio" et j'ai commencé la partie "gamepad" il y a peu.
Pour l'audio j'ai implémenté une gestion des sons "en 3D", c'est à dire qu'on à théoriquement l'impression qu'un son vient d'un endroit précis (devant, derrière, gauche, droite, ...).
Pour les gamepads, j'ai pour objectif de fournir quelque chose capable de reconnaitre tout seul des combinaisons de touches. En clair, si on fait un jeu de combat, je peux juste dire "bas droite a => hadoken" et le moteur se démerde pour détecter quand le joueur fait la bonne combinaison. Le but étant qu'au niveau du moteur, on ne gère pas les touches de la manette mais juste des "actions" qui correspondent à des saisies des touches.
Voila voila ^^.
[Projet] Mist2D
[Tutorial] - PC dédié à l'émulation 8/16/32 bits
Je n'ai pas encore tout lu mais c'est très intéressent de voir l'avancé du développement d'un moteur de jeu. Sa pourrait même servir de tuto. Je lirais tout ça plus tard et j'éditerais mon post. Bon courage pour la suite.