Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

programmer un jeux en 3d isometrique

12 réponses
Avatar
philippe-duhamel
bonjour a tous je voudrais me lancer dans la programmation d'un jeu en 3d
isometrique sur un ordi 8 bits (amstrad) j'aime beaucoup le style de batman
ou heads over hils mais je ne sais pas trop comment m'y prendre est ce qu'il
existe des livres traitant le sujet ou un site pour m'aider?

10 réponses

1 2
Avatar
GzavSnap
"philippe-duhamel" a écrit dans le message de
news:46056427$0$25923$
bonjour a tous je voudrais me lancer dans la programmation d'un jeu en 3d
isometrique sur un ordi 8 bits (amstrad) j'aime beaucoup le style de


batman
ou heads over hils mais je ne sais pas trop comment m'y prendre est ce


qu'il
existe des livres traitant le sujet ou un site pour m'aider?



Salut Philippe,

Plutôt difficile car le vectoriel est à exclure sur l'Amstrad ... trop lent!
Même en LM.
Il y a donc beaucoup de travail graphique... carré par carré...
... voir si zaxxon à été desassemblé, ce serai un bon support!

Cordialement,

Xav
Avatar
YBM
philippe-duhamel a écrit :
bonjour a tous je voudrais me lancer dans la programmation d'un jeu en 3d
isometrique sur un ordi 8 bits (amstrad) j'aime beaucoup le style de batman
ou heads over hils mais je ne sais pas trop comment m'y prendre est ce qu'il
existe des livres traitant le sujet ou un site pour m'aider?



Un remake de HoH existe, avec le code source :

http://retrospec.sgn.net/game-overview.php?link=hoh

Par contre il est plutôt fait pour tourner sur des systèmes modernes.
Avatar
YBM
YBM a écrit :
Un remake de HoH existe, avec le code source :

http://retrospec.sgn.net/game-overview.php?link=hoh



Zut pour ce remake là, il n'y a pas le source... Peut être
en demandant à l'auteur de le fournir ?
Avatar
GzavSnap
bonjour a tous je voudrais me lancer dans la programmation d'un jeu en 3d
isometrique sur un ordi 8 bits (amstrad) j'aime beaucoup le style de


batman
ou heads over hils mais je ne sais pas trop comment m'y prendre est ce


qu'il
existe des livres traitant le sujet ou un site pour m'aider?



Statique ou dynamique!

Batman = statique comme "Craton & Xunk" ... pièces après pièces donc plus
facile.

"head over hils", je ne connais pas...

Mais "Highway Encounter","Raid over moscou", "Paper boy" et "180°" étaient
dynamiques...
Là c'est plus problèmatique... il y a du pixel-motion ...

Xav.
Avatar
GzavSnap
bonjour a tous je voudrais me lancer dans la programmation d'un jeu en 3d
isometrique sur un ordi 8 bits (amstrad) j'aime beaucoup le style de


batman
ou heads over hils mais je ne sais pas trop comment m'y prendre est ce


qu'il
existe des livres traitant le sujet ou un site pour m'aider?



Statique ou dynamique!

Batman = statique comme "Crafton & Xunk" ... pièces après pièces donc plus
facile à dessiner.

"head over hils", je ne connais pas...

Mais "Highway Encounter","Raid over moscou", "Paper boy" et "180°" étaient
dynamiques...
Là c'est plus problèmatique... il y a du pixel-motion ... avec un scrolling
vertical
à gèrer...

Xav.
Avatar
Alex
"philippe-duhamel" a écrit dans le message de
news: 46056427$0$25923$
bonjour a tous je voudrais me lancer dans la programmation d'un jeu en 3d
isometrique sur un ordi 8 bits (amstrad) j'aime beaucoup le style de
batman ou heads over hils mais je ne sais pas trop comment m'y prendre est
ce qu'il existe des livres traitant le sujet ou un site pour m'aider?




En statique ( genre les vieux jeux Lucas ) c'est pas difficile. Un peu plus
si tu fais des visuels style echiquier avec des carrés bien définis que tu
répètes à l'envie. Tu te fais une librairie d'images toutes de la même
dimension et tu te fais une moulinette qui les dessine les uns après les
autres en se basant sur une description dans une petite table. Ca, ca te
fait le fond. Ensuite il te reste à poser les sprites par dessus. Si tu veux
faire propre, tu prévois plusieurs tailles de sprites pour simuler
l'éloignement. Il te faut bien sur plusieurs images par sprite pour chaque
animation. En incrémentant un compteur pour prendre la suivante à chaque
rafraichissement, ça se fait bien. Si la partie graphique est un peu faible,
il faut voir pour ne redessiner que la zone impactée (en gardant la zone de
fond en mémoire pour pouvoir nettoyer au prochain rafraichissement).

Avec ça t'as 90% de ton moteur d'affichage.

Niveau saisie, il te faut un tableau avec des 0 et des 1 pour définir les
zones où l'utilisateur a le droit de cliquer. Il te faut un deuxieme tableau
pour définir des hotspots qui va définir les actions associées à certaines
zones de l'écran. Je te passe la gestion des objets et événements, c'est pas
un problème graphique.

Il y a un seul truc où j'ai un doute, c'est le calcul des chemins. Je ne
sais pas si un 8bit a la puissance nécessaire à faire un algo bourrin qui
essaye toutes les combinaisons (en découpant l'écran en gros carrés ça
simplifie le calcul). Le principe c'est d'avoir une fonction récursive qui
va s'appeler elle-même dans les 9 carrés contigus à celui de départ. Puis
répéter le process jusqu'à ce qu'une des occurences aient en paramètre les
coordonnées de la case de destination. Le chemin à parcourir est la
succession des cases des appels précédents. Histoire que le déplacement ne
soit pas délirant, il faut compter le nombre d'appels successifs et garder
celui ou il y en a le moins.
Le problème c'est que j'ai peur que ça demande pas mal d'itérations si tu
veux être précis.

Si tu veux faire un truc a la paperboy avec du scrolling, c'est pareil mais
entre chaque affichage il faut gérer un déplacement de tous tes dessins de
quelques pixels. Là encore ça va solliciter la machine.

AMA le plus dur, c'est de dessiner, pas de coder.

Après le truc c'est d'arriver à trouver des optimisations pour ne pas mettre
la machine à genoux.
--
Alex
[JDR] Visitez Extremia, un monde gratuit et en francais pour D&D et
autres jeux de role.
www.extremia.org
Avatar
philippe-duhamel
ce qui me pose probleme c'est la gestion des collisions et en plus je
voudrais que le jeux soit en monochrome j'avais pensez definir une table qui
pour chaque piece qui serait eux memes diviser en plusieurs zones pour gerer
les colisions en bref je ne testerais pas l'image afficher a l'ecran pour
gerer mon personage mais j'irais voir dans une table si le personage a le
droit d'acces a une zone
"Alex" a écrit dans le message de news:
4606b832$0$25919$
"philippe-duhamel" a écrit dans le message
de news: 46056427$0$25923$
bonjour a tous je voudrais me lancer dans la programmation d'un jeu en 3d
isometrique sur un ordi 8 bits (amstrad) j'aime beaucoup le style de
batman ou heads over hils mais je ne sais pas trop comment m'y prendre
est ce qu'il existe des livres traitant le sujet ou un site pour m'aider?




En statique ( genre les vieux jeux Lucas ) c'est pas difficile. Un peu
plus si tu fais des visuels style echiquier avec des carrés bien définis
que tu répètes à l'envie. Tu te fais une librairie d'images toutes de la
même dimension et tu te fais une moulinette qui les dessine les uns après
les autres en se basant sur une description dans une petite table. Ca, ca
te fait le fond. Ensuite il te reste à poser les sprites par dessus. Si tu
veux faire propre, tu prévois plusieurs tailles de sprites pour simuler
l'éloignement. Il te faut bien sur plusieurs images par sprite pour chaque
animation. En incrémentant un compteur pour prendre la suivante à chaque
rafraichissement, ça se fait bien. Si la partie graphique est un peu
faible, il faut voir pour ne redessiner que la zone impactée (en gardant
la zone de fond en mémoire pour pouvoir nettoyer au prochain
rafraichissement).

Avec ça t'as 90% de ton moteur d'affichage.

Niveau saisie, il te faut un tableau avec des 0 et des 1 pour définir les
zones où l'utilisateur a le droit de cliquer. Il te faut un deuxieme
tableau pour définir des hotspots qui va définir les actions associées à
certaines zones de l'écran. Je te passe la gestion des objets et
événements, c'est pas un problème graphique.

Il y a un seul truc où j'ai un doute, c'est le calcul des chemins. Je ne
sais pas si un 8bit a la puissance nécessaire à faire un algo bourrin qui
essaye toutes les combinaisons (en découpant l'écran en gros carrés ça
simplifie le calcul). Le principe c'est d'avoir une fonction récursive qui
va s'appeler elle-même dans les 9 carrés contigus à celui de départ. Puis
répéter le process jusqu'à ce qu'une des occurences aient en paramètre les
coordonnées de la case de destination. Le chemin à parcourir est la
succession des cases des appels précédents. Histoire que le déplacement ne
soit pas délirant, il faut compter le nombre d'appels successifs et garder
celui ou il y en a le moins.
Le problème c'est que j'ai peur que ça demande pas mal d'itérations si tu
veux être précis.

Si tu veux faire un truc a la paperboy avec du scrolling, c'est pareil
mais entre chaque affichage il faut gérer un déplacement de tous tes
dessins de quelques pixels. Là encore ça va solliciter la machine.

AMA le plus dur, c'est de dessiner, pas de coder.

Après le truc c'est d'arriver à trouver des optimisations pour ne pas
mettre la machine à genoux.
--
Alex
[JDR] Visitez Extremia, un monde gratuit et en francais pour D&D et
autres jeux de role.
www.extremia.org

Avatar
Alex
"philippe-duhamel" a écrit dans le message de
news: 4606ba2b$0$27391$
ce qui me pose probleme c'est la gestion des collisions et en plus je
voudrais que le jeux soit en monochrome j'avais pensez definir une table
qui pour chaque piece qui serait eux memes diviser en plusieurs zones pour
gerer les colisions en bref je ne testerais pas l'image afficher a l'ecran
pour



Tester l'image ça ne me semble pas une bonne idée dans aucun cas. J'irais
même jusqu'à dire que c'est un défaut de conception. Ton programme doit
savoir en amont ce qu'il veut mettre à l'écran, et que tout soit prêt pour
la routine d'affichage.

gerer mon personage mais j'irais voir dans une table si le personage a le
droit d'acces a une zone



C'est le mieux, d'autant plus que tu as forcément besoin de cette table pour
gérer les éléments infranchissable (rivière, meubles, lampadaires...).

Après selon ce que tu veux faire, il faut prévoir un peu plus de complexité
: si ton perso va sur une case occupée, il faut peut-être plutot gérer une
interaction (dialogue, combat....) qu'une simple interdiction. Il faut voir
aussi la finalité : l'interaction se déclenche-t-elle uniquement si la case
est la fin du chemin ou peut-elle aussi avoir lieu si elle fait partie du
chemin entre la case de départ et d'arrivée. Ca, c'est ton choix suivant ce
que tu veux faire.

J'aurais pas déjà 50 projets sur le feu je t'aurais bien codé ça :-))
--
Alex
[JDR] Visitez Extremia, un monde gratuit et en francais pour D&D et
autres jeux de role.
www.extremia.org
Avatar
philippe-duhamel

J'aurais pas déjà 50 projets sur le feu je t'aurais bien codé ça :-))
--


c'est gentil mais ce qui m'interesse ce n'ai pas d'avoir un jeu fini clef en
mains mais de le programmer moi meme mais merci de tes conseils tu me
conforte dans mes choix le probleme que je n'ai pas encore resolu (he je
debute) c'est de gerer la transparence du sprite de mon perso pour
l'afficher dans le decor sans pour cela laisser une bordure blanche autour
(comme pour l'aigle d'or sur oric par ex)
Avatar
Alex
"philippe-duhamel" wrote in message
news:4606cbb8$0$27386$

c'est gentil mais ce qui m'interesse ce n'ai pas d'avoir un jeu fini clef
en mains mais de le programmer moi meme mais merci de tes conseils tu me
conforte dans mes choix le probleme que je n'ai pas encore resolu (he je
debute) c'est de gerer la transparence du sprite de mon perso pour
l'afficher dans le decor sans pour cela laisser une bordure blanche autour
(comme pour l'aigle d'or sur oric par ex)



Ca gere pas le PNG l'Amstrad ? ;-)

Il te faut deux images : une qui contient le sprite (sur fond blanc ou
noir), et une autre en noir et blanc qui ne contient que sa silhouette (sur
fond inverse). Tu fais un XOR de la silhouette sur la zone de fond: seuls
les pixels correspondant au blanc (ou au noir, je sais pu trop) resteront.
Ensuite tu fais un ET entre l'image de fond que tu viens de detourer et ton
sprite (qui est deja detoure a l'inverse).

(Prends le temps de verifier les operations logiques, ca doit etre faux, je
suis pas bon pour ca de tete, et ca depend si en memoire le 0 c'est le noir
ou le blanc).

Sinon, si tes sprites sont petits, tu peux reserver un code couleur pour la
transparence et faire une simple bouche pour la copie, qui saute les pixels
transparents, c'est plus simple a coder, mais ca fait mouliner la machine.

Bon allez, prochain TP : modelisation du gonflage des voiles d'un 3 mats en
Open GL. ;-))

--
Alex
[JDR] Visitez Extremia, un monde gratuit et en francais pour D&D et
autres jeux de role.
www.extremia.org
1 2