La Place des Développeurs Projet Carwar
aoineko
Membre non connecté
Conseiller Municipal
Carwar est un projet de jeu de course déganté sur MSX. Le but sera autant d'embêter les autres que d'essayer de finir la partie en un seul morceau.
Avancement :
-
Base du programe -
Gestion des sprites -
Affichage des voitures -
Gestion des terrains par tiles -
Système de menu -
Physique des voitures -
Gérer les terrains de bases (bitume, terre, etc.) -
Gérer les terrains spéciaux (jumper, speeder, etc.) - Gérer les terrains fatals (trou, magma, etc.)
-
Collision avec les murs -
Gestion de la vie -
Piéton - Écrasement piéton
-
Garage(plus besoin) -
Changement couleur voiture - Gestion interruption
- Menu
- Player sélecteur
- Car sélecteur
- Course
- Gameplay course
- Timer global
- Timer joueur (total, tours)
- Gestion check-point
- Score screen
-
Track 1 - Track 2
- Match-à-mort
- Gameplay match-à-mort
- Track 1
- Track 2
- Chat
- Gameplay chat
- Track 1
- Track 2
- Gameplay foot
- Musique
- Son (voiture, explosion, départ, etc.)
- Animation d'explosion
- Charger un circuit depuis le disque
- Éditeur de circuit ?
- Passer le code de physique en ASM
--------------------------------------------------------------------------------
Message original
Ca y est, j'ai enfin fini la base de ma libraire d'affichage de sprite en mode 8 !
Je me suis aussi fait un petit outils en C++ qui converti une image 8/24bits en tableaux de sprites contenu dans un fichier d'entête (.h) et que je peux inclure dans mon programme (pour qu'il se retrouvent dans la ROM). Et voila le résultat : carwar.zip. Bon, pour l'instant ça flick car je ne gère pas encore le switch entre les 2 pages graphiques (ça vient ) et je ne gère pas encore la transparence.
J'ai fait mes testes avec des sprites qu'on avait fait pour un jeu de voiture sur PC et ça m'a donné idée de le porter sur MSX ! Du coup, je met le Projet Ambidex en stand by et j'ai donc créé un nouveau fil de discussion.
Prochaine étape, la transparence ! J'ai pas encore bien regardé, mais si vous pouviez m'aiguiller, ça pourrait me faire gagner du temps. Edité par aoineko Le 31/03/2011 à 21h29
On est toujours ignorant avant de savoir.
GuillianSeed
Membre non connecté
Villageois
Jipé, Walter, Osaure ! A la rescousse !
En tout cas, bravo Aoineko ! Ca fait réélement plaisir de voir que ça turbine sévère par ici !
Je regrette par contre de n'être d'aucune aide tant mes connaissances en programmation sont proches du zéro absolu. Mais nul doute que les potes vont te dépanner.
En tout cas, c'est la première fois que j'entends parler d'un portage de jeu PC sur MSX. Rien que pour ça je ne dormirai pas pour profiter de la suite !
Bonne continuation !
Guil'
En tout cas, bravo Aoineko ! Ca fait réélement plaisir de voir que ça turbine sévère par ici !
Je regrette par contre de n'être d'aucune aide tant mes connaissances en programmation sont proches du zéro absolu. Mais nul doute que les potes vont te dépanner.
En tout cas, c'est la première fois que j'entends parler d'un portage de jeu PC sur MSX. Rien que pour ça je ne dormirai pas pour profiter de la suite !
Bonne continuation !
Guil'
aoineko
Membre non connecté
Conseiller Municipal
Merci Guil !
Y a toujours moyen d'aider. Par exemple, si tu peux essayer la ROM sur un vrai MSX et me dire si ça marche, ça pourrait être cool.
GuillianSeed :
Je regrette par contre de n'être d'aucune aide tant mes connaissances en programmation sont proches du zéro absolu. Mais nul doute que les potes vont te dépanner.
Y a toujours moyen d'aider. Par exemple, si tu peux essayer la ROM sur un vrai MSX et me dire si ça marche, ça pourrait être cool.
On est toujours ignorant avant de savoir.
aoineko
Membre non connecté
Conseiller Municipal
Pour la transparence, j'ai une piste avec l'instruction LMMC du VDP ; je verrai demain si c'est bon.
Sinon, j 'ai une question : Est-t'il possible qu'un sprite hardware (en mode 2) passe derrière du décors ? Je pense que non, mais c'est dommage, ça m'aurait donné un moyen simple de détecter les collisions entre voiture.
Sinon, j 'ai une question : Est-t'il possible qu'un sprite hardware (en mode 2) passe derrière du décors ? Je pense que non, mais c'est dommage, ça m'aurait donné un moyen simple de détecter les collisions entre voiture.
On est toujours ignorant avant de savoir.
Ahhh non, absolument impossible, les 32 plans de sprites sont toujours DEVANT les décors. En SCREEN 2, il n'y a pas (je pense, mais je ne suis pas aussi spécialiste que Jipe, Metalion ou l'Osaure) de possibilité pour passer outre... Sur les SCREEN 5 à 8, tu peux remplacer les sprites par des blocs de décor (je t'invite à lire le tuto de l'Osaure pour saisir la technique) qui pourraient te simplifier la tâche...
MSX un jour, MSX toujours !
aoineko :
Et je suppose que des sprites complètements transparents ne peuvent collationner entre eux ?
Tu peux expliciter un peu plus ta question ?
MSX1: Daewoo DPC-200 / Yamaha CX5M
MSX2: Sony HB-F9P
MSXVR
Vidéo: V9990 (GFX-9)
Audio: MSX-Music (FM-PAC) / MSX-Audio (Audiowave) / OPL4 (Monster Sound FM Blaster) / OPNB (Neotron)
aoineko
Membre non connecté
Conseiller Municipal
Metalion :
Tu peux expliciter un peu plus ta question ?
En fait, mes "sprites" de voiture sont fait via des copies en VRAM pour pouvoir utiliser les 256 couleurs. Les sprites hardware (ceux gérés directement par le VDP) ne m'intéressent pas pour l'affichage à cause de leur limitation d'un couleur par ligne, mais je suis très intéressé par la fonctionnalité de détection automatique de collision entre les sprites (pour simuler les collision entre voiture). Du coup, je me demande s'il n'y a pas moyen de combiner ces méthodes.
Ma première idée était d'avoir un sprite (hardware) d'ombre sous les voitures qui aurait pu me servir pour les collisions ; ce qui n'est pas possible vu que les sprites hardware passent apparemment toujours devant le décors.
La seconde idée était de n'utiliser les sprites hardware que pour la détection, sans qu'il n'y ait de représentation graphique. D4ou ma question : peux t'on avoir des collisions entre sprites sans rien afficher à l'écran ?
On est toujours ignorant avant de savoir.
Il doit y avoir un moyen avec ta méthode de sprite pour l'ombre.
Ton ombre devra par contre totalement épouser la forme de ton "faux-sprite" de manière à ne pas passer au-dessus du décor, et suivre ses déplacements, avec un décalage de pixels.
Ton ombre devra par contre totalement épouser la forme de ton "faux-sprite" de manière à ne pas passer au-dessus du décor, et suivre ses déplacements, avec un décalage de pixels.
MSX un jour, MSX toujours !
GuillianSeed
Membre non connecté
Villageois
aoineko :
Merci Guil !
Y a toujours moyen d'aider. Par exemple, si tu peux essayer la ROM sur un vrai MSX et me dire si ça marche, ça pourrait être cool.
Y a toujours moyen d'aider. Par exemple, si tu peux essayer la ROM sur un vrai MSX et me dire si ça marche, ça pourrait être cool.
Ca fonctionne du tonnerre Aoineko ! J'ai testé ta rom en Z80 et R800 (Turbo-R) et ça tourne impec. Enfin, en R800, c'est un poil trop speed mais ça le fait si jamais tu entrevoies l'idéé d'un mode "crazy" en bonus !
Je suis d'ailleurs surpris par la fluidité et l'anim de la voiture est extra ! Ca m'a rappellé Super Sprint, le jeu de bagnole sorti à l'origine sur ST mais aussi Motoroader sorti lui sur consoles Nec.
Tes sprites sont en screen 8, non ? Paske que j'ai un sprite de bagnole quelque part sur mes disks que j'avais pondu il y a une dixaine d'année. Si Je retrouve ça, je te l'envoie si ça peut t'être utile.
@+ et bonne prog !
Guil'
aoineko
Membre non connecté
Conseiller Municipal
granced :
Il doit y avoir un moyen avec ta méthode de sprite pour l'ombre.
Ton ombre devra par contre totalement épouser la forme de ton "faux-sprite" de manière à ne pas passer au-dessus du décor, et suivre ses déplacements, avec un décalage de pixels.
Ton ombre devra par contre totalement épouser la forme de ton "faux-sprite" de manière à ne pas passer au-dessus du décor, et suivre ses déplacements, avec un décalage de pixels.
Je vais essayer de voir ce que ça donne graphiquement avec un détouré au noir (même si je suis pas fan). En tout cas, c'est surement la solution la plus simple.
Au pire, la détection de collision entre voiture n'est pas le truc le plus lourd à faire avec le CPU. Et de toute façon, va bien falloir que je les fasse entre les voitures et le décors. C'est plus une optimisation qu'autre chose.
GuillianSeed :
Tes sprites sont en screen 8, non ? Paske que j'ai un sprite de bagnole quelque part sur mes disks que j'avais pondu il y a une dixaine d'année. Si Je retrouve ça, je te l'envoie si ça peut t'être utile.
Oui, c'est du Mode 8. J'ai déjà 4 voitures, mais ça peut être intéressant. Merci.
On est toujours ignorant avant de savoir.
Excellent ce début d'animation, la dynamique de la voiture est bien rendu
En tout cas tu ne te facilites pas la tâche en travaillant en screen8 limité à 2 page écran(rappel). Reste à loger une copie du circuit, les "sprites" voitures, les copie d'animation de chaque voiture (voir tuto précédemment cité par Granced) pour éviter le "clipping" dans la 2ème page écran, sinon voir ce qui est faisable avec la RAM, ça va être compliqué mais pas infaisable!
Pour ce qui est des sprites, c'est seulement la détection de la rencontre de deux points allumés des sprites qui est détecté donc pas de collision entre sprites tout éteint. Par contre je pense à une astuce (attention je ne sait pas si c'est faisable): faire déplacer des sprites, des vrais, représentant l'encombrement de la voiture) sur la deuxième page écran, mais la détection de collision fonctionne-t-elle alors? (je vais tester en basic pour mon enrichissement personnel ).
A ce propos la gestion de deux voiture est assez complexe non car tu déplace deux rectangles, que se passe-t-il graphiquement parlant quand deux d'entre elles se croisent
Pour finir, j'avais fait un petit powerpoint sur la gestion des sprites (mode2) en basic, c'est pour débutants, c'est incomplet, mais tu pourras peut-être y prendre quelques infos!
basicsprites.zip
En tout cas tu ne te facilites pas la tâche en travaillant en screen8 limité à 2 page écran(rappel). Reste à loger une copie du circuit, les "sprites" voitures, les copie d'animation de chaque voiture (voir tuto précédemment cité par Granced) pour éviter le "clipping" dans la 2ème page écran, sinon voir ce qui est faisable avec la RAM, ça va être compliqué mais pas infaisable!
Pour ce qui est des sprites, c'est seulement la détection de la rencontre de deux points allumés des sprites qui est détecté donc pas de collision entre sprites tout éteint. Par contre je pense à une astuce (attention je ne sait pas si c'est faisable): faire déplacer des sprites, des vrais, représentant l'encombrement de la voiture) sur la deuxième page écran, mais la détection de collision fonctionne-t-elle alors? (je vais tester en basic pour mon enrichissement personnel ).
A ce propos la gestion de deux voiture est assez complexe non car tu déplace deux rectangles, que se passe-t-il graphiquement parlant quand deux d'entre elles se croisent
Pour finir, j'avais fait un petit powerpoint sur la gestion des sprites (mode2) en basic, c'est pour débutants, c'est incomplet, mais tu pourras peut-être y prendre quelques infos!
basicsprites.zip
Le MSXien le plus à l'ouest ... ou presque
aoineko
Membre non connecté
Conseiller Municipal
Pour la mémoire, je compte m'en sortir avec l'architecture suivante (s'appuyant sur une cartouche 32Ko et 16+64Ko de RAM) :
En temps normal :
Au moment d'effacer chacun de mes sprites je switcherai sur :
Cela pose t'il un problème de switcher les pages mémoires une dizaine de fois par frame (à chaque début/fin d'effacement des sprites) ? Pour la copie, comme j'accède directement au VDP, je suppose que ce n'est pas grave de plus avoir le BIOS dispo en 0x0000. Non ?
Sinon, l'idée de faire collisionner les sprites sur la page non visibles et excellente ! Tiens moi au courant si ça marche.
EDIT : Je pense pouvoir m'en sortir en switchant même la 3e page lors de l'effacement des sprites -- et donc en perdant la stack de mon code -- mais si ça me pose trop de problème, je ferrai surement un circuit de 256*192 pour qu'il tienne sur 3 pages (48ko). Edité par aoineko Le 25/01/2011 à 16h09
En temps normal :
Page 0 : [Slot 0-0 - BIOS]
Page 1 : [Slot 1-0 - ROM] // Code...
Page 2 : [Slot 1-0 - ROM] // ... + sprites
Page 3 : [Slot 3-1 - RAM] // Informations gameplay
Page 1 : [Slot 1-0 - ROM] // Code...
Page 2 : [Slot 1-0 - ROM] // ... + sprites
Page 3 : [Slot 3-1 - RAM] // Informations gameplay
Au moment d'effacer chacun de mes sprites je switcherai sur :
Page 0 : [Slot 3-2 - RAM] // Le fond...
Page 1 : [Slot 3-2 - RAM] // ... de mon circuit...
Page 2 : [Slot 3-2 - RAM] // ... pour permettre ...
Page 3 : [Slot 3-2 - RAM] // ... d'effacer mes sprites
Page 1 : [Slot 3-2 - RAM] // ... de mon circuit...
Page 2 : [Slot 3-2 - RAM] // ... pour permettre ...
Page 3 : [Slot 3-2 - RAM] // ... d'effacer mes sprites
Cela pose t'il un problème de switcher les pages mémoires une dizaine de fois par frame (à chaque début/fin d'effacement des sprites) ? Pour la copie, comme j'accède directement au VDP, je suppose que ce n'est pas grave de plus avoir le BIOS dispo en 0x0000. Non ?
Sinon, l'idée de faire collisionner les sprites sur la page non visibles et excellente ! Tiens moi au courant si ça marche.
EDIT : Je pense pouvoir m'en sortir en switchant même la 3e page lors de l'effacement des sprites -- et donc en perdant la stack de mon code -- mais si ça me pose trop de problème, je ferrai surement un circuit de 256*192 pour qu'il tienne sur 3 pages (48ko). Edité par aoineko Le 25/01/2011 à 16h09
On est toujours ignorant avant de savoir.
GuillianSeed
Membre non connecté
Villageois
Voilà Aoineko, je me suis replongé dans mes archives MSX. Attends 2min je repose mon casque de spéléo...
Bon après vérif c'est tout en screen 5. Je ne sais pas du coup si ça va t'aider. Et question bagnoles, c'est des F1 des années 90. L'idée qui me tenait à l'époque était de pondre un F1 Spirit 2. Rien que ça, y doute de rien le Guil'. Pas foutu d'aligner 2 lignes de codes mais v'là qui veut sucer la roue à Konami avec un F1 Spirit 2 Home made... On ne se refait pas...
En tout cas, les fichiers sources en screen 5 et les palettes sont là.
Projet Guil F1.zip
@+
Guil'
Bon après vérif c'est tout en screen 5. Je ne sais pas du coup si ça va t'aider. Et question bagnoles, c'est des F1 des années 90. L'idée qui me tenait à l'époque était de pondre un F1 Spirit 2. Rien que ça, y doute de rien le Guil'. Pas foutu d'aligner 2 lignes de codes mais v'là qui veut sucer la roue à Konami avec un F1 Spirit 2 Home made... On ne se refait pas...
En tout cas, les fichiers sources en screen 5 et les palettes sont là.
Projet Guil F1.zip
@+
Guil'
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie