MSX Village forum

La Place des Développeurs Projet Carwar

aoineko Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : Shoutbox

Inscrit le : 02/01/2011 à 21h17

Messages: 2693

Le 25/01/2011 à 00h11


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 ! :top

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. :D Edité par aoineko Le 31/03/2011 à 21h29


On est toujours ignorant avant de savoir.
Github    
GuillianSeed Membre non connecté

Villageois

Rang

Avatar

Groupe : compte ++

Inscrit le : 16/10/2009 à 18h53

Messages: 683

Le 25/01/2011 à 00h28
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'


MSX1 Sony HB501F / MSX2+ FSA1FX / MSX2+ FSA1WX / MSX2+ FSA1WSX / MSX Turbo-R ST / MSX Turbo-R GT
Moonsound 2.0 & DalSoRi - Interface CF & CF Card Interface - MegaFlash SCC 512Ko & 2x512ko - SRam 512Ko - Megaflashrom SCC + SD
MSX4Ever !!
aoineko Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : Shoutbox

Inscrit le : 02/01/2011 à 21h17

Messages: 2693

Le 25/01/2011 à 00h53
Merci Guil !



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. :D 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.
Github    
aoineko Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : Shoutbox

Inscrit le : 02/01/2011 à 21h17

Messages: 2693

Le 25/01/2011 à 01h40
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. :moue


On est toujours ignorant avant de savoir.
Github    
granced Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 09/10/2009 à 09h18

Messages: 1500

Le 25/01/2011 à 07h53
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 ! :D
Site web    
aoineko Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : Shoutbox

Inscrit le : 02/01/2011 à 21h17

Messages: 2693

Le 25/01/2011 à 08h33
Et je suppose que des sprites complètements transparents ne peuvent collationner entre eux ? :hum


On est toujours ignorant avant de savoir.
Github    
Metalion Membre non connecté

Conseiller Municipal

Rang

Avatar

Inscrit le : 23/12/2009 à 15h32

Messages: 1482

Le 25/01/2011 à 09h46
aoineko :
Et je suppose que des sprites complètements transparents ne peuvent collationner entre eux ?


:hum :hum :hum



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

Rang

Avatar

Groupe : Shoutbox

Inscrit le : 02/01/2011 à 21h17

Messages: 2693

Le 25/01/2011 à 10h16
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.
Github    
granced Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 09/10/2009 à 09h18

Messages: 1500

Le 25/01/2011 à 10h42
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.


MSX un jour, MSX toujours ! :D
Site web    
GuillianSeed Membre non connecté

Villageois

Rang

Avatar

Groupe : compte ++

Inscrit le : 16/10/2009 à 18h53

Messages: 683

Le 25/01/2011 à 10h48
aoineko :
Merci Guil !

Y a toujours moyen d'aider. :D 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 ! :fou

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'




MSX1 Sony HB501F / MSX2+ FSA1FX / MSX2+ FSA1WX / MSX2+ FSA1WSX / MSX Turbo-R ST / MSX Turbo-R GT
Moonsound 2.0 & DalSoRi - Interface CF & CF Card Interface - MegaFlash SCC 512Ko & 2x512ko - SRam 512Ko - Megaflashrom SCC + SD
MSX4Ever !!
aoineko Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : Shoutbox

Inscrit le : 02/01/2011 à 21h17

Messages: 2693

Le 25/01/2011 à 11h21
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.




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.
Github    
MSXosaure Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 03/10/2009 à 00h09

Messages: 775

Le 25/01/2011 à 15h23
Excellent ce début d'animation, la dynamique de la voiture est bien rendu :top

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 :D).

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 :hum

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 :fou ... ou presque :D
osaurer
   
aoineko Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : Shoutbox

Inscrit le : 02/01/2011 à 21h17

Messages: 2693

Le 25/01/2011 à 15h58
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 :

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




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




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 ? :hum



Sinon, l'idée de faire collisionner les sprites sur la page non visibles et excellente ! :top 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.
Github    
GuillianSeed Membre non connecté

Villageois

Rang

Avatar

Groupe : compte ++

Inscrit le : 16/10/2009 à 18h53

Messages: 683

Le 25/01/2011 à 16h12
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... :fou


En tout cas, les fichiers sources en screen 5 et les palettes sont là.

Projet Guil F1.zip

@+

Guil'


MSX1 Sony HB501F / MSX2+ FSA1FX / MSX2+ FSA1WX / MSX2+ FSA1WSX / MSX Turbo-R ST / MSX Turbo-R GT
Moonsound 2.0 & DalSoRi - Interface CF & CF Card Interface - MegaFlash SCC 512Ko & 2x512ko - SRam 512Ko - Megaflashrom SCC + SD
MSX4Ever !!
MSXosaure Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 03/10/2009 à 00h09

Messages: 775

Le 25/01/2011 à 17h06
:lol Bien vu Guil'

J'ai voulu teste en basic mais des valeurs du style &h8000+&h7600... il aime pas trop apparemment :moue

Désolé va falloir tester en ASM direct


Le MSXien le plus à l'ouest :fou ... ou presque :D
osaurer
   
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie