Langage de programmation des jeux sur Thomson

C'est la catégorie reine de l'ordinophile, 8 bits et pas un de plus!
Single board ou bus S-100 acceptés.

Modérateurs : Papy.G, fneck, Carl

Ythunder
Messages : 928
Inscription : 21 août 2019 10:12

Langage de programmation des jeux sur Thomson

Message par Ythunder »

Bonjour

Petite question et simple curiosité, sur les Thomson TO/MO, quel était le langage le plus utilisé pour les jeux commerciaux de l'époque svp ? Sortons le BASIC du lot svp.

Merci
Avatar de l’utilisateur
boris
Messages : 355
Inscription : 04 mars 2011 13:55
Localisation : Normandie (près d'Honfleur)
Contact :

Re: Langage de programmation des jeux sur Thomson

Message par boris »

ce doit être l'assembleur , pour la rapidité
bien qu'il y ai eu des jeux en basic

après jamais entendu des jeux programmé en Forth ni en pascal ...

Edouard et Daniel confirmeront cela
__sam__
Messages : 7923
Inscription : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

Re: Langage de programmation des jeux sur Thomson

Message par __sam__ »

Ythunder a écrit : 23 sept. 2021 10:54 Petite question et simple curiosité, sur les Thomson TO/MO, quel était le langage le plus utilisé pour les jeux commerciaux de l'époque svp ?
C'est difficile à savoir à partir du binaire. Il faudrait les sources :)

Dans le binaire on voit pas mal de variété de style, mais ce que j'ai remarqué c'est que la pile est assez peu utilisée de façon systématique. Exit donc les langages qui empilent le contexte des fonctions sur la pile comme C/Pascal (*). Ensuite Forth est "threadé", ce qui peut se détecter par le blocage d'un registre sur le fil d'execution + le blocage de deux autres registres pour les piles données et code. C'est assez caractéristique l'usage de chainages avec les registres d'adresse (l'un contient le fil pour le code, l'autre la pile donnée et un 3e la pile data), et je n'en ai pas rencontré en dehors des démos Forth.
___
(*) Il parait que le Pascal a été utilisé, mais je n'en ai pas trouvé la signature dans la structure binaire (usage de "U" pour les variables locales, et les contextes), donc pour l'instant je dis "pas utilisé".

Bah après, il n'y avait pas trop de choix de langages de programmation à l'époque: https://en.wikipedia.org/wiki/History_o ... _paradigms

Ne reste alors que le bon vieil ASM écrit à la main, et qui est +/- bien maitrisé suivant les auteurs et les jeux.

J'ai remarqué, en désassemblant certains jeux (en ce moment je travaille sur Sortilèges), que le plus gros problème n'est pas l'optimisation en vitesse, mais l'optimisation en taille du code pour que tout tienne dans les ~24ko de vraiment libre sur un TO7/70(*). Et cela se voit. Le code ASM est compact, sans beaucoup de place libre entre 2 méthodes pour y placer un tableau précalculé pouvant accélérer énormément les choses. On y trouve aussi des routines génériques capables de gérer plusieurs cas et qui sont plus lentes que plusieurs versions de la routine hyper optimisée pour pour la vitesse. Résultat: beaucoup des jeux sur thomson, même en ASM sont lents. En analysant le binaire on se prends souvent à dire "heu mais pourquoi il font ca comme ca.. on peut faire la même chose en 3x plus rapide"... Alors 3x plus rapide oui, mais 2x plus long aussi et il n'y a plus de place en RAM, ou alors il faut changer l'organisation mémoire de jeu ce qu'on ne peut pas faire sans les sources d'origines.
___
(*) on pourrait avoir plus avec les banques mémoires, mais sur TO7/70 c'est tellement lent que ca tue l'intéret. En pratique je ne l'ai pas encore vu utilisé dans un jeu.

sam (qui révérait de mettre la main sur les source ASM des jeux, pour les optimiser façon "démo-bluffantes").
Samuel.
A500 Vampire V2+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
Daniel
Messages : 17316
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: Langage de programmation des jeux sur Thomson

Message par Daniel »

Si on n'excepte les jeux en Basic (programmés par des amateurs et de petits éditeurs), la très grande majorité des bons jeux commerciaux sont écrits en assembleur.

Il y a quelques exceptions. Ils donnent l'impression d'avoir été programmés dans un langage de haut niveau, mais comme l'a souligné __sam__ il n'est pas facile de trouver lequel. Et ces jeux ne sont pas les plus performants.

Il y a aussi beaucoup de jeux qui associent une logique en Basic et des animations et graphismes en assembleur, par exemple L'Aigle d'Or, Le Temple de Quauhtli et une bonne dizaine d'autres.
Daniel
L'obstacle augmente mon ardeur.
Fool-DupleX
Messages : 2284
Inscription : 06 avr. 2009 12:07

Re: Langage de programmation des jeux sur Thomson

Message par Fool-DupleX »

BASIC et assembleur. Peut-être un peu de Speedy Wonder et de Pascal, et encore, j'en doute. Il n'y avait pas d'autre compilateur pour cette plateforme. Par contre, il y a eu du cross-développement. Infogrames et Thomson eux-mêmes ont utilisé des Vax et des outils comme Avocet.
Avatar de l’utilisateur
gilles
Messages : 2779
Inscription : 07 août 2008 13:44
Localisation : Nantes
Contact :

Re: Langage de programmation des jeux sur Thomson

Message par gilles »

Quelques basic. Parfois BASIC+routines d'affichage en assembleur (ex : aigle d'or).
Et beaucoup d'assembleur, probablement avec Assdesass chez infogrames, Odin chez loriciel. Sans doute la cartouche assembleur Totek/Microsoft pour d'autres.
Ythunder
Messages : 928
Inscription : 21 août 2019 10:12

Re: Langage de programmation des jeux sur Thomson

Message par Ythunder »

Du coup, n'est-ce pas là un point commun aux autres machines 8 bits ? Notamment au niveau de l'usage de l'assembleur et pas d'autre langage (C etc).
D'ailleurs le C sur 8 bits a été utilisé ??

Etrangement, je vois bien oui du BASIC + ASM sur Thomson, mais par exemple j'image moins ce mix sur de l'Amstrad, j'ai bon vous pensez ?
Avatar de l’utilisateur
gilles
Messages : 2779
Inscription : 07 août 2008 13:44
Localisation : Nantes
Contact :

Re: Langage de programmation des jeux sur Thomson

Message par gilles »

Il me semble qu’il y en a sur amstrad. C’est un mix assez pratique pour des jeux d’aventure ou aventure/action. Et puis a l’époque c’était une évolution assez naturelle qui permettait de publier son listing dans une revue. Il y a pas mal d’exemples dans hebdogiciel, sur plein de plateformes
Neotenien
Messages : 354
Inscription : 23 oct. 2020 19:15
Localisation : Le Mans
Contact :

Re: Langage de programmation des jeux sur Thomson

Message par Neotenien »

Pour les jeux FreeGameBlot, Breaker, Blue Star, Garden Party,Space Game, Dom Camillo et j'en oublie certainement, vue qu'ils ont sortie aussi un langage Pascal (Pascal Base), je soupçonne qu'ils aient développé dans ce langage... En tous cas les superbes graphisme de leur jeux lui est fait à partir de leur logiciels graphique "Graffiti" (d'ailleurs on le voit sur la jaquette de ce logiciel).

Déjà essayé "Pascal Base" pour l'affichage de sprites. En compilé c'est 10 fois plus rapide que le basic optimisé et on pourrait facilement faire un casse brique avec. Les inconvénients de ce Pascal c'est que la taille de chaque source (heureusement qu'on peut les fusionner) est limité, qu'il n'y a que le type integer et tableau d'integer, et que la compilation prend un temps fou. Sinon, on peut écrire de l'assembleur dedans (enfin plutôt du "langage machine" comme en Basic.

Il y a 2 langages Pascal à ma connaissance sur Thomson, ce Pascal Pase de Free Game Blot, et le Pascal UCSD qui, malheureusement, utilise un DOS de disquette différent de celui de base des Thomson et exécute en pseudo code (comme le classique UCSD). Dommage parce que ce Pascal là est un pascal complet comme l'est Turbo Pascal... Si on avait le meilleur de ces 2 outils sur Thomson (C'est à dire utilisant le DOIS des Thomson tout en ayant lle vrai pascal de l'UCSD mais avec possibilité de compilation... Et pas seulement en pseudo code.)
Neotenien
Messages : 354
Inscription : 23 oct. 2020 19:15
Localisation : Le Mans
Contact :

Re: Langage de programmation des jeux sur Thomson

Message par Neotenien »

Pur ce qui est de l'Assembleur, l'Assembleur 3 (sorti dans les années 2000) de je ne sais plus qui (qui est une amélioration de l'Assembleur v2.0 sur les TO8, TO9 et TO9+) c'est vraiment du béton! La vitesse de compilation est phénoménale!

Il manque juste un truc, la possibilité d'avoir aussi des instructions 6309 (dont les MUL/DIV et la fameuse instruction de copie de blocs)... Si ça c'était ajouté ça serait vraiment le top.
Neotenien
Messages : 354
Inscription : 23 oct. 2020 19:15
Localisation : Le Mans
Contact :

Re: Langage de programmation des jeux sur Thomson

Message par Neotenien »

Pour ce qui est de l'Amstrad, justement il y a une version de SPeedy Wonder" sur Thomson, estampillé "Basic 1.1", je l'ai testé, j'ai tenté de compiler des sources livré avec en Basic 1.1, mais ça plante!! Apparemment, on est TRES limité dans ce langage côté noms de variables!! Si vous voulez un truc équivalent et qui marche, mieux vaut s'orienter vers Pascal Base (qui plus est, permet lui d'avoir de la programmation impérative avec notamment les fonctions récursive!! J'ai testé l'algorithme de tri quick sort dessus et ça passe sans problème alors que je me souviens à l'époque dans les années 90, j'avais essayé d'en faire une version Basic, à grand coup de tableau et de piles, j'avais réussi à créer cet algorithme de tri très rapide sur Thomson, mais ça reste limité à une centaine de valeurs vue que le Thomson a quand même une mémoire limitée et c'est du 1 MHz.
Zebulon
Messages : 2788
Inscription : 02 nov. 2020 14:03

Re: Langage de programmation des jeux sur Thomson

Message par Zebulon »

Sur Amstrad CPC il y a le Turbo Pascal de Borland dans l'environnement CP/M avec la fonction inline et la possibilité d'appeler les fonctions du kernel.

J'ai aussi testé Speedy Wonder sur Amstrad et je suis content de ne pas avoir donné un centime à l'éditeur pour ça en son temps...

Il faudrait que je regarde ce Pascal Base sur TO8. L'extension mémoire permet-elle d'être plus à l'aise pour la phase de développement (même si on cible la machine nue pour le runtime) ?
Fool-DupleX
Messages : 2284
Inscription : 06 avr. 2009 12:07

Re: Langage de programmation des jeux sur Thomson

Message par Fool-DupleX »

J'ai utilisé Pascal Base en son temps. C'est tout aussi limité (uniquement les integer 16 bits et les char) et ca ne gère que la mémoire de base de la machine. Le compilateur est en BASIC et très lent. Mais ça fonctionne ... pour des petits trucs.
__sam__
Messages : 7923
Inscription : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

Re: Langage de programmation des jeux sur Thomson

Message par __sam__ »

Neotenien a écrit : 30 sept. 2021 14:46 lle vrai pascal de l'UCSD mais avec possibilité de compilation... Et pas seulement en pseudo code.)
Le P-code n'est pas une mauvaise chose en soi. En plus l'abstraction du matériel permet de rendre les exécutables fonctionnels sur toutes sortes de machines.

Quant à savoir si le pascal est un bon langage pour les projets professionnels, voici ce qu'en disait Kerningham à l'époque (en 1981): http://www.cs.virginia.edu/~evans/cs655 ... ascal.html
Samuel.
A500 Vampire V2+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
Neotenien
Messages : 354
Inscription : 23 oct. 2020 19:15
Localisation : Le Mans
Contact :

Re: Langage de programmation des jeux sur Thomson

Message par Neotenien »

__sam__ a écrit : 30 sept. 2021 18:03 (...)

Quant à savoir si le pascal est un bon langage pour les projets professionnels, voici ce qu'en disait Kerningham à l'époque (en 1981): http://www.cs.virginia.edu/~evans/cs655 ... ascal.html
MDR ce que dit Kernighan du Pascal de cette époque est obsolète, largement même! Je connais les 2 langages et le Pascal est meilleur en bien des points. Le C est devenu populaire parce qu'il était en opensource sous Linux, mais pour le reste, Pascal lui est supérieur, en calcul scientifique notamment, mais aussi parce que c'est un langage non permissif et permettant peu d'erreur de programmation. Il a des types de données vraiment intéressant quo'n ne trouve pas en C(http://www.langagepascal.atarist.free.f ... hp?p=page4) comme le type "ensemble" (dnt je n'ai jamais entendu parlé dans un quelconque autre langage, y compris langage moderne) ou le type liste. Il a l'équivalent de struct (enregistrement), les pointeurs (de fonction et de variable) et est orienté objet également. Il a un nombre impressionnant de librairies (dont l'unité CRT) et surtout en compilé, il a des performances quasi équivalentes au C. En 2019, une étude a été publié pour montrer les langages les plus efficaces (une 20aines de langages étudiés, malheureusement le Julia y est le grand absent!!) et en cumul de pusieurs critères, c'est le C et le Pascal qui sont devant (avec le Go) https://programmation.developpez.com/ac ... lus-verts/ sauf qu'ils ne mentionnent pas que la compilation Pascal est non permissive et qu'il permet de créer facilement des gros projets sans risques de bugs.

J'ajoute que le Pascal a été longtemps LE langage d'apprentissage de la programmation dans les fac de sciences, les grandes écoles (y compris polytechnique, jusqu'en 2002, avant de s'orienter vers le langage R).

Enfin je termine en parlant d'Atari Magazine 34, sorti en 1992 (à l'époque Pure Pascal n'était pas encore sorti) et la seule critique qu'il trouve au Pascal est qu'il n'y a pas de documents ou de logiciels sorti dessus sur Atari ST.
Le problème est que malheureusement, tout le monde l'a assimilé à un produit Windows (Tur'bo Pascal et Delphi) alors qu'il existait bel et bien sur d'autres plate forme!! Beaucoup de jeux Apple II ont été développé en Pascal, je soupconne également FreeGameBlot d'avoir écrit certains de ses logiciels en Pascal Base. et il y a eu surtoit Pure Pascal sur les ATrai ST et falcon. Cette version là de Pascal c'était vraiment de la bombe, mais malheureusement écirt en grande partie en Allemand (il existait une interface en anglais mais la doc était en Allemand, que je suis en train de traduire). L'éditeur se félicitait que sur Atari ST, ce logiciel compilait 30.000 lignes à la seconde! C'était édité par Application System Heidelberg, un des tous meilleurs éditeur de logiciels professionnels sur Atari

Et là donc je suis en train de créer un site internet basé sur Pure Pascal http://www.langagepascal.atarist.free.fr/

En fait, c'est surtout Delphi qui est connu dans le monde Windows https://fr.wikipedia.org/wiki/Delphi_(l ... _en_Delphi qui est simplement un EDI utilisant le pascal Objet (qui est quasiment le même langage que Pure Pascal sur Atari, néanmoins, celui-ci a quelques petites différences).

Et en fait, je compte utiliser Pure Pascal (ou Free Pascal quand il sera disponible ?) pour des projets sous l'ordinateur Firebee (le tout nouvel ordinateur Atari compatible Falcon 030).

Il y a ici une liste de compilateur Pacal (dont Lazatus+FreePascal) https://pascal.developpez.com/telecharg ... ils-Pascal

Clairement ce langage manque cruellement de sources informatiques.

Il est bien meilleur que Java, le problème est qu'à l'époque, Pascal était l'équivalent de Delphi (et donc windows) dans l'esprit des gens alors que non!! Le Pascal a existé dans la grande majorité des standards informatique même sur Acorn Archimedes
Répondre