CPC Rulez
https://cpcrulez.fr/forum/

Projet de jeu d'aventure sur CPC
https://cpcrulez.fr/forum/viewtopic.php?f=6&t=6395
Page 1 sur 1

Auteur :  Nemo59 [ 03 Oct 2020, 17:50 ]
Sujet du message :  Projet de jeu d'aventure sur CPC

Bonjour

j'ai utilisé un CPC464 + lecteur 3" pendant de longues années et l'ai revendu il y a bien longtemps. Depuis j'ai racheté un CPC6128+ et récupéré quelques vieilles disquettes. Gotech en route ;D En retestant une maquette de jeux d'aventure texte que j'avais fait à l'époque ça m'a donné l'idée d'écrire un jeu d'aventure mode texte + graphique. Pour çà, quelques éléments en vrac :

- Je vais toiletter un vieux moteur de jeux en gardant largement le format des scénario. Le moteur est essentiellement en Basic. Les temps de réponse sont cependant corrects. Je ne me vois pas refaire ça en assembleur… Je maitrise bien le Pascal mais je n'ai jamais essayé le Turbo Pascal v3 du CPC. C'est peut-être une piste ? Mais à priori je reste en Basic
- L'adapter pour utiliser les 64ko de ram supplémentaire des CPC6128 (essentiellement pour stocker le texte)
- L'écriture du scénario (c'est un simple fichier ASCII) se fera sur PC ce qui est bien plus confortable quand même
- J'ai 2/3 idées de scénarios. Ca se passera au XIXieme siécle et ça sera probablement une libre adaptation (ou au moins une inspiration) ,d'un roman de HG Wells. J'espère avoir environ 80ko dispo pour le scénario, y'a de quoi faire;D Si je refais tout en Pascal, sans doute moins de ce que j'ai compris. Il faut que je teste ... L'avantage du Pascal serait de développer sur PC
- Les images seraient totalement sur disquette. Ca fait un peu de temps de chargement mais ça peut le faire je pense. Par contre mes routines graphiques (ASM Z80) sont très sommaires et un peu lente. Je ne pense plus avoir les sources d'ailleurs. Surtout chaque image, quelque soit sa taille, est un fichier avec les inconvénients. Je me demande si il existe des bonnes extensions toutes faite en RSX… Genre afficher une image rectangulaire à la position du curseur graphique et positionnement du curseur texte juste en dessous. J'aime bien l'idée que texte et image soient dans la même fenêtre. Les images seraient donc de tailles variables
- Le jeu sera en mode 1. Y-a-t-il moyen d'avoir des polices plus petites ( genre 6x6?) qui seraient utilisables en Basic ? En « patchant » l'instruction PRINT ? Le mode 2 en N&B pourrait être sympa aussi pour une ambiance XIXieme genre les gravures des roman de Jules Verne ?
- Faut que je réfléchisse à l'interface graphique mais je vais faire simple. Un zone d'entrer des commandes textes, une zone (la plus grande) pour le texte et graphiques en sortie. Et probablement une zone avec des informations générales ( PdV, PdF, Argent, date (si nécessire), etc.)
- Pour les graphiques, je suis nul mais ce sera de toute façon à la fin. Dans ce genre de jeu l'ambiance (texte, graphique et éventuellement son) est essentielle.
- J'ajoute que j'ai peu de temps libre mais de la patience… Bref ca risque de durer longtemps mais ce n'est pas un pb. C'est plus résoudre les pb petit à petit qui m'intéresse...

Voilà, en gros ;D Suis à l'écoute de vos remarques et conseils ... Je vous tiens informé de l'avancée de tout ça

Auteur :  Nemo59 [ 03 Oct 2020, 21:57 ]
Sujet du message :  Re: Projet de jeu d'aventure sur CPC

A la réflexion le mieux est d'être en mode 1 avec une font plus petite sur la partie de l'écran qui affichera les descriptions et dialogues. Je pensais avoir trouvé mon bonheur avec ça : https://cpcrulez.fr/applications_util-rsx-write-schneider_magazin.htm L'idée est simple... un RSX type |write,@t$ affiche du texte à la position du curseur avec une font de 8x4. Evidemment la police est très simplifiée et tout s'affiche en MAJUSCULE, mais ça reste lisible. Cela permettrait d'afficher du texte en 80 colonnes en mode 1, tout en conservant le 40 colonnes pour les input ou les PRINT habituels.

Malheureusement le fichier "write.ldr" sur le dsk est altéré :/

Une police 8x5 ou 8x6 permettrait sans doute une meilleur lisibilité mais on serait 64 ou 53 caractères par ligne. L'idéal serait même une police proportionnelle ;D Mais je suis sur la cerise alors qu'il n'y a pas encore de gateau... et même pas la recette mdr

Auteur :  hERMOL [ 04 Oct 2020, 08:21 ]
Sujet du message :  Re: Projet de jeu d'aventure sur CPC

Salut! Tres bonne idée d'utiliser le basic + RSX .. Entre les afficheurs de sprites et les fontes , un monde de possibilités s'offre à toi!

PS: tout est ok sur le .dsk de RSX WRITE
Le fichier .LDR est le générateur (les datas) du binaire..

Auteur :  Nemo59 [ 04 Oct 2020, 23:16 ]
Sujet du message :  Re: Projet de jeu d'aventure sur CPC

hERMOL a écrit :
Salut! Tres bonne idée d'utiliser le basic + RSX .. Entre les afficheurs de sprites et les fontes , un monde de possibilités s'offre à toi!

PS: tout est ok sur le .dsk de RSX WRITE
Le fichier .LDR est le générateur (les datas) du binaire..


Bsr ! Sauf erreur les datas du générateur sont altérées sur le .dsk... Il y a eu un pb lors du transfert ou qqe chose m'échappe comme c'est écrit en allemand. Ca se termine en "data exhausted en 1170" et partir de la ligne 1930 il y a visiblement n'importe quoi dans les datas :/

Sinon j'ai jeté un oeil à TurboPascal v3... C'est vraiment pas mal avec la possibilité d'intégrer du langage machine 'inline' en hexa (malheureusement pas d'ASM comme dans les versions ultérieures du Turbo Pascal). Par contre je n'ai pas réussi à "taper" directement dans la mémoire vidéo sans passer par les routines systèmes (vecteurs) du CPC... Je suppose que la gestion de la RAM en CPM doit être spécifique, avec une pagination, vu qu'il gére plus de 64ko? J'ai eu droit à de beau plantages ;D Bon ces vecteurs permettent de récupérer facilement beaucoup de commandes Basic (graphiques et son) en Pascal mais c'est dommage, car c'est en général assez lent. Manque aussi en Pascal v3 les chaines de caractère type PChar mais ça peut se réécrire.

Auteur :  Plissken [ 05 Oct 2020, 08:53 ]
Sujet du message :  Re: Projet de jeu d'aventure sur CPC

Un outil pour faire des jeux d'aventure : https://cpcrulez.fr/coding-crossdev-PJA.htm

Tu peux trouver ici des rsx pour avoir des "mini-caracteres" https://amstrad.eu/concours-asm-dete-2020/ ,il y a aussi un outil pour compresser des images

Auteur :  demoniakparadox [ 05 Oct 2020, 16:02 ]
Sujet du message :  Re: Projet de jeu d'aventure sur CPC

Plissken a écrit :
Un outil pour faire des jeux d'aventure : https://cpcrulez.fr/coding-crossdev-PJA.htm

Tu peux trouver ici des rsx pour avoir des "mini-caracteres" https://amstrad.eu/concours-asm-dete-2020/ ,il y a aussi un outil pour compresser des images


Ah, cet outil me dit quelque chose :-)

Auteur :  markerror [ 05 Oct 2020, 19:02 ]
Sujet du message :  Re: Projet de jeu d'aventure sur CPC

Bonsoir,

Coktel vision utilisait apparemment le Pascal dans ses jeux. Au final, ça donnait des trucs lents, qu'il fallait de plus lancer par CP/M 2.2. Le meilleur langage pour programmer un jeu d'aventure reste le langage machine car il permet toutes les folies au niveau des structures de données (et donc optimiser l'espace mémoire et l'organiser comme bon nous semble).
Après, ce n'est pas le plus facile à apprendre et à ma connaissance, aucun source d'un jeu complet n'est disponible sur le net.

Pour le coup, je peux diffuser après toilettage celui de "La java du privé" si je remets la main dessus... Ca ne sera pas exploitable en l'état mais ça donne une idée de ce qu'il faut faire pour gérer ce type de programme.

On peut se rabattre sur les logiciels de créations de jeux d'aventure sur CPC (Jade par exemple) ou PC (PJA), mais ils introduisent forcément des contraintes. Pour un premier jeu d'aventure, c'est probablement une bonne solution car cela t'obligera à structurer quand même le jeu et du coup acquérir les "bons" réflexes.

Après, les jeux d'aventure "supportent" sans problème le Basic, à condition qu'il soit mâtiné de routines assembleur (affichage des images et analyseur syntaxique). SRAM en est un bon exemple. Là encore, une bonne structuration des données est impérative.

Au final, les choses à éviter, ce sont des chargements trop longs qui découragent les joueurs, et un analyseur syntaxique qui ne comprend pas grand chose et rend le jeu frustrant.

Auteur :  norecess464 [ 05 Oct 2020, 19:52 ]
Sujet du message :  Re: Projet de jeu d'aventure sur CPC

> Le meilleur langage pour programmer un jeu d'aventure reste le langage machine car il permet toutes les folies au niveau des structures de donnée

Un peu off-topic, je m'excuse d'avance pour le troll :)

Je dirais que le C est une très bonne alternative pour la conception d'un jeu d'aventure, a mi-chemin entre l'ASM et le BASIC. Un jeu d'aventure n'ayant pas forcement besoin de la meilleure des performances, un mix de C/ASM peut faire gagner du temps de développement pour la gestion des branchements différents dans l’algorithme.

Évidemment, faut remettre les choses dans le contexte, ce qui est dispo depuis 2010+ en terme de compilateur C pour l'Amstrad CPC ne l’était pas en 1985. :D
Mais pour un nouveau jeu 2020, je suggère fortement aux gens de intéresser notamment a CPCTelera, c'est très bien fait.

ps. Fascinant l'utilisation du Pascal par Coktel Vision. Avec du recul, c’était loin d’être fou..

Auteur :  Nemo59 [ 05 Oct 2020, 23:49 ]
Sujet du message :  Re: Projet de jeu d'aventure sur CPC

J'ai fais quelques tests avec Turbo Pascalv3. C'est environ 30 fois plus rapide que le basic Amstrad en moyenne sauf pour les routines graphique car elles passent les vecteurs du firmware . Il est très facile d'y intégrer des commandes Z80 en plus même si il n'y pas d'assembleur intégré comme les versions plus récentes du turbo Pascal. Genre PLOT(x,y) s'écrit comme çà :

Procedure Plot(x,y:Integer);
Begin Inline ($2A/x/$EB/$2A/y/$3C/$EA/$BB); End;

Donc l'accès aux mode 0-1-2 , aux sons etc est facile. Mais ce n'est pas plus rapide le Basic. Par exemple afficher des points aléatoires n'est que 4x plus rapide car la partie affichage des points est aussi lente qu'en Basic. Par contre impossible d'accèder en direct à la RAM video. Je suppose que c'est dû à la gestion des bank mémoire du CPM. Le TurboPascal sous CPM est probablement pénalisé par ça. Sinon ça aurait été top : Juste un Array of Byte avec une adresse absolue. Mais visiblement ça pointe sur une autre bank mémoire.

Le CPM n'est pas un pb en soit puisque c'est très facile de faire un genre d'autoexec comme en DOS et ca ne prend pas tant que ça de mémoire.

Mon vieux moteur de jeu d'aventure essentiellement en basic ca donnait çà :


EDIT : Et un petit test du Turbo Pascal v3 sur CPC6128. J'aime beaucoup, dommage que je sois passé à coté à l'époque :
https://youtu.be/osPpbnsJjag

Auteur :  Nemo59 [ 06 Oct 2020, 22:54 ]
Sujet du message :  Re: Projet de jeu d'aventure sur CPC

Bon j'ai compris pourquoi je n'arrive pas à accéder directement à la RAM vidéo en Turbo Pascal/CPM. En CPM+ la mémoire vidéo est à l'adresse $4000 dans la bank 0 qui n'est pas celle où s'exécute le pgm. C'est un peu prise de tête pour y accéder mais possible ;D. Mais je m'éloigne moi-même de mon sujet. Je vais ouvrir un topic spécifique sur TP3/CPM ;D

Page 1 sur 1 Le fuseau horaire est UTC+1 heure
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/