mardi, janvier 01, 2008

"Je vous présente les bordures!"

Je viens de retomber sur une lettre -- datée du 8 janvier 1900 -- que je n'ai jamais envoyée à son destinataire, Gédéon (qui signe de temps en temps un commentaire du nom de 'Ged' sur ce blog). Il faut dire qu'après la Inscene '99 et la collaboration de CJ à son jeu "insane bugs" (une sorte de remake de micromachines), on avait entamé une correspondance sur des sujets traitant de la réalisation de jeux vidéos, que j'illustrais assez abondamment de mes Bilous, évidemment.

A cette époque, en pleines études, je codais surtout pour les TP de l'université, mais je n'avais pas énormément le temps de mettre en oeuvre tout ce à quoi je réfléchissais pour mon "Ultimate Game Maker"

Voilà ce que celà disait:

Hello, Gédéon.

Je crois bien que j'ai trouvé un truc cool pour modéliser les niveaux dans Bilou! un truc plus smart que ces "tests de couleurs" puants que j'ai utilisé dans la version BASIC du jeu!... Je te présente les bordures.
L'idée est la suivante: tes sprites possèdent un certain nombre de "testpoints" et les déplacements ne sont possibles que pour certaines valeurs de ces test-points (pas question de faire marcher Bilou dans le vide, hein!)

D'autre part, tu plaques un peu partout dans ton niveau des bordures. Ces bordures sont des éléments logiques qui ne correspondent à aucun affichage. Elles sont liées logiquement de telle manière que l'on peut facilement savoir quelle bordure est située à gauche, droite, au-dessus ou en-dessous d'une bordure donnée. Les bordures sont également séparées en 4 classes: plancher, plafond, mur-gauche et mur droit.

Ca va, je ne vais pas trop vite ?

Bon. Voyons comment ça marche. Lorsqu'un sprite crèe ses test-points, il leur fournit à chacun une classe correspondant à la classe de bordure avec laquelle ils réagissent. Du coup, on s'empresse de lier chaque test-point à la bordure de même classe la plus proche (euh, ça ne devrait pas être trop sorcier).

Voilà un aperçu de la chose en cours ... tu peux facilement savoir si tu es "dans le mur" ou pas: il suffit de regarder de quel côté de la ligne le point se trouve. Dès que ton point sort du "champs d'action" de sa bordure, on cherche quelle est la nouvelle bordure et on y relie le testpoint (après quoi on effectue le test habituel).

C'est-y-pas merveilleux, tout ça ?

Allez, une dernière idée qui m'est venue comme ça, en écrivant cette lettre (pour être sûr que tu n'arrives pas à dormir cette nuit ;-)
Au lieu des testpoints, tu pourrais faire des "bordures" pour les sprites aussi (en fait, à partir de la bounding box), mais tu risquerais d'avoir plus de calculs à faire ...)

Enfin, ça m'éviterais d'avoir des bugs à la "Crazy BriX".
Allez,

Bion, depuis, l'eau a coulé sous les ponts. Le coup des "bordures" était bien alléchant, il permettait de passer à la 3D avec moins de prise de tête que si on doit procéder pixel par pixel (c'était le cas dans Bilou en Basic, comme je le mentionnais dans la lettre), mais par contre je n'ai jamais trouvé le véritable "truc pas trop sorcier" pour déterminer quel est la prochaine bordure du même type, en particulier lorsqu'il y a plusieurs plate-formes les unes au-dessus des autres (classique dans un jeu de plate-forme, évidemment).

Pour la version "DS", je me rabats principalement sur des tests "tile par tile" (et prout pour la 3D), et les "bordures" serviront principalement pour des plate-formes mobiles, nuages, et autres joyeusetés ... Une sorte de manière de passer outre les limitations typiques des jeux "game maker".

Voilà. Bonne année à tous.

3 commentaires:

cyborgjeff a dit…

voilà le genre de "re"-trouvaille bien sympathique à lire !! :)

En soit le concept semble bien réfléchi !!

Aufait,.. sinon je me suis "inscrit" (bien que je ne sais pas si c'est officiel déjà) sur la page de registrering pour la BP2008. Elle aura lieu du vendredi 21 au lundi 24 (1h du mat enfait).

J'ai proposé à Pierrick et K93 d'y venir avec nous... Steve à l'air assez motivé, Pierrick lui ne m'a pas encore répondu.. Peut-être Ged pourrait-il également être tenté ?

Va voir les différents "challenges".. je pense qu'il doit y avoir moyen de caser des trucs "DS" à mon avis !

Ged a dit…

Wahouuu... Pour moi qui aimait tant lire tes lettres parsemées de dessins (mais je ne me souviens même plus si je te répondais), je trouve ca d'autant plus marrant d'en avoir une en extra des années après. Je me demande pourquoi tu ne l'as jamais envoyée d'ailleurs. Et c'est la première fois que quelqu'un fait un dessin rien que pour moi pour me souhaiter une bonne année... que d'émotions :).

Sinon, pour la BP2008, je sais pas trop. Ca ma tenterait bien mais comme c'est pas ma priorité, je ne sais pas encore dire si je serai libre ou non.

sylvainulg a dit…

8 ans après, je serais bien en mal de le dire. Session d'examen, peut-être. Ou bien avais-je égaré ton adresse ? Ou peut-être est-ce que je voulais avoir écrit le fameux "truc pas trop sorcier" avant de l'envoyer ?

Mystère ...

J'ai jamais été top fiable pour envoyer du courrier ^^"