Obligement - L'Amiga au maximum

Dimanche 20 août 2017 - 07:58  

Translate

En De Nl Nl
Es Pt It Nl


Rubriques

 · Accueil
 · A Propos
 · Articles
 · Galeries
 · Glossaire
 · Hit Parade
 · Liens
 · Liste jeux Amiga
 · Quizz
 · Téléchargements
 · Trucs et astuces


Articles

 · Actualité (récente)
 · Actualité (archive)
 · Comparatifs
 · Dossiers
 · Entrevues
 · Matériel (tests)
 · Matériel (bidouilles)
 · Points de vue
 · En pratique
 · Programmation
 · Reportages
 · Tests de jeux
 · Tests de logiciels
 · Tests de compilations
 · Articles divers

 · Articles in english
 · Articles in other languages


Twitter

Suivez-nous sur Twitter




Liens

 · Sites de téléchargements
 · Associations
 · Pages Personnelles
 · Moteurs de recherche
 · Pages de liens
 · Constructeurs matériels
 · Matériel
 · Autres sites de matériel
 · Réparateurs
 · Revendeurs
 · Presse et médias
 · Programmation
 · Développeurs logiciels
 · Logiciels
 · Développeurs de jeux
 · Jeux
 · Autres sites de jeux
 · Scène démo
 · Divers
 · Informatique générale


Jeux Amiga

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z


Trucs et astuces

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z


Glossaire

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z


Partenaires

Annuaire Amiga

Amedia Computer

Relec

Hit Parade


Contact

David Brunet

Courriel

 


Test d'AMOS 3D
(Article écrit par Gilles Bihan et extrait d'Amiga News - octobre 1991)


Qui n' a pas rêvé un jour d'inclure de la 3D dans ses super programmes en BASIC ? J'ai moi-même essayé toutes sortes d'algorithmes plus ou moins foireux, ne donnant qu'une vague image sur trois plans. En plus, cela demande souvent beaucoup de temps, pour un résultat toujours contestable. L'amateur à la petite semaine a bien du mal alors à exaucer ses rêves de Starglider.

Le BASIC standard, dans sa forme la plus primaire, n'offre aucune fonction spécifique à la programmation d'éléments 3D. A vous le plus souvent de trouver les sous-programmes nécessaires à mettre en oeuvre les objets dans un environnement tridimensionnel. On place un cosinus là, un sinus au centre, et quelques tangentes sur la gauche. Il faut être polytechnicen pour y comprendre quelque chose. Et même si vous arrivez à passer l'obstacle du programme, un autre de taille vient balayer tous vos efforts devant vous : la lenteur.

Deux idées

De cette courte réflexion deux idées fortes ressortent : le BASIC n'est pas franchement le langage idéal pour ce genre de délire spatial ; la 3D reste encore une histoire d'initiés. Seulement certains génies ont un leitmotiv force : rendre l'informatique facile à tout un chacun, et le BASIC ouvert à tous.

François Lionet a donné vie à AMOS, le BASIC évolué le plus délirant jamais conçu jusque-là. Tout y est réuni pour que votre création personnelle ne rencontre jamais d'obstacle. On peut tout imaginer, tout espérer. J'entends alors déjà dans le fond de la salle quelques rumeurs : mais alors s'il a tout prévu, il y a peut-être quelque chose pour nous les frustrés de la 3D.

Je dois dire non, hélas. AMOS en lui-même, dans sa version de base n'offre rien de plus. Mais comme le langage est modulaire, il peut prendre en compte des modules supplémentaires pour étoffer ses fonctions de programmation.

D'autres y ont pensé, et ont transformé AMOS BASIC, en AMOS BASIC capable de voyager dans l'espace. Le nom de ces plaisantins : Anthony Wilkes et Richard Lewis de Voodoo Software, groupement affilié à Europress Software, autrement dit à Mandarin, la maison éditrice d'AMOS. AMOS 3D, car il s'agit de lui, vient donc compléter la série déjà étoffée d'AMOS et AMOS Compiler. Une suite logique, à un produit qui ne va sûrement pas s'arrêter là.

AMOS 3D

Amosphère, Amosphère, Amosphère...

AMOS apparaît souvent comme un langage dédié uniquement au jeu. En effet, la majeure partie des fonctions utiles à leur programmation y sont incluses. Si cette image de "Creator" persiste dans les esprits, il n'en reste pas moins qu'AMOS est un BASIC complet à l'extrême. Avec on peut tout faire, et notamment des utilitaires (je dis cela parce que c'est une réalité).

Mais au-delà d'être complet, il est surtout très ouvert. Ouvert car il accepte les mises à niveau de nouvelles fonctions de façon très transparente pour l'utilisateur. Les fonctions rajoutées. bien que dans une bibliothèque différente que le programme source, sont chargées au moment du lancement d'AMOS, et viennent se coller aux fonctions de l'interpréteur. On peut donc rajouter toutes les instructions BASIC que l'on veut. Cette précision apportée, on perçoit alors la porte ouverte à l'introduction de 3D.

En effet, si la mise en oeuvre de programme fonctionnant sur le principe 3D est difficile (surtout pour les néophytes) avec les fonctions classiques, la création de fonctions spécifiques, se chargeant de gérer la 3D dans vos programmes BASIC, est l'idéal. C'est là qu'intervient AMOS 3D, car cette bibliothèque venant se greffer sur AMOS rajoute près de 30 nouvelles fonctions représentant exactement 47 commandes différentes. J'en vois déjà quitter la salle, se disant que cela va faire beaucoup trop de fonctions à maîtriser. Non restez, c'est facile, je vous assure.

Évidemment, bientôt on aura un AMOS ayant près de 1000 fonctions, mais chaque commande est là pour vous faciliter la vie, et le manuel est tellement bien fait que l'on n'a pas de mal à s'y retrouver.

Le complexe de la facette...

Il ne faut s'attendre ni à faire une animation à la Sculpt dans vos programmes, ni à utiliser les nouvelles techniques 3D mises au point dans les derniers simulateurs et shoot'em up spatiaux en matière de figuration 3D. Ici les objets que l'on vous offre sont simples, constitués de facettes à lignes brisées, ne tenant absolument pas compte des contraintes de lumières, excluant donc les jeux d'ombres.

Les objets que vous reprenez dans vos jeux sont issus de fichiers objets créés grâce à un modeleur inclus dans le paquetage AMOS 3D. Les nouvelles fonctions ne font que reprendre ces objets. A cette fin deux fonctions permettent le chargement de ceux-ci : "Td DIR" et "Td LOAD" ("Td" voulant dire approximativement "Three D", soit 3D). La première sert à localiser les fichiers objets dans un répertoire. En effet, les objets que génèrent le modeleur sont une suite de fichiers où chaque objet a son propre fichier de définition, et des fichiers séparés contenant les formes et les surfaces (template et surface files).

AMOS 3D

Ceux-ci sont généralement placés dans un répertoire "Objects". Pour les charger, il suffit d'invoquer "Td LOAD" et le nom de l'objet (et non pas le nom du fichier se trouvant sur le disque). A ce moment-là, AMOS charge tous les fichiers appartenant à l'objet. Aucune autre manipulation ne vous est demandée, AMOS s'occupe de tout.

Création d'un monde virtuellement 3D

Un second groupe de fonctions existe pour mettre en place votre espace 3D. Celles-ci sont utilisées en conjonction avec certaines fonctions AMOS. Voici un petit exemple :

AMOS 3D

Voilà un minimum pour créer vos espaces 3D et y placer un objet. On y retrouve notamment des fonctions servant à gérer l'affiche en double tampon mémoire. A côté de cela, la fonction "Td REDRAW" sert à dessiner tous les objets que les fonctions de placement dans l'espace ont défini. Il suffit d'effacer l'écran 3D, et ensuite par l'appel à une seule fonction tous les objets se dessinent. Le "Screen Swap" permet que le dessin ne se fasse pas devant vos yeux, mais n'apparaisse qu'après. La fonction "Td SCREEN HEIGHT" permet de définir la hauteur de l'écran 3D. D'après les quelques petites expériences que j'ai pratiquées sur le sujet, la limite de 200 ne peut être dépassée. L'écran 3D est limité à une taille type NTSC, 320 par 200. Si vous mettez en entrelacé, seul cet espace est utilisable. De même que le nombre de couleurs affichables semble figé à 16.

Ces deux premières limitations m'ont paru au départ frustrantes. Comment cela, je ne peux pas faire des objets 3D en 4096 couleurs sur un écran 640x512 ? Ça craint ! J'arrête le délire. Il semble qu'en 3D de ce type se soit l'affichage commun sur Amiga. En effet, c'est la limite acceptable pour obtenir une animation fluide. Au-delà les contraintes sont telles, que l'efficacité et la rapidité en prendraient un certain coup. Cette limitation est en fait un bien. Il faut savoir être raisonnable. De toutes manières, un logiciel comme 3D Construction Kit n'utilise que 16 couleurs agrémentées de tramage bicolore pour les faces, et d'un écran NTSC.

Le VRU est-il un dérivé de l'uranium ?

Après un bref aperçu sur l'environnement stellaire, il faut maintenant parler des commandes permettant le déplacement, le positionnement, la rotation des objets 3D. Pour cela, deux groupes de fonctions : les unes opérant les placements, les autres informant sur la situation de l'objet.

AMOS 3D

Les placements peuvent, grâce à quelques commandes simples, se faire dans tous les sens possibles. L'instruction de base "Td OBJECT" crée un objet dans l'espace 3D, le place à un endroit donné, et lui attribue un aspect. Attachée à cela une fonction de mouvement, "Td MOVE", et une fonction de rotation, "Td ANGLE", qui change l'aspect. Les déplacements se font sur XYZ (traditionnelle). Il suffit de donner une valeur (positive ou négative), pour voir votre objet bouger. La rotation, quant à elle, se fait par l'entrée d'angle, étant entendu que cette rotation se fait par rapport aux trois axes XYZ.

Les angles ne sont pas donnés en degrés, mais en VRU. Quèsaco ? Le VRU est la nouvelle unité inventée pour AMOS. En fait, il s'agit d'une valeur multiple de 182. Par exemple pour avoir un angle de 90%, il faut multiplier 182 par 90. VRU veut dire tout simplement Voodoo Rotations Unit. Les rotations et les déplacements peuvent se faire de manière relative. Par exemple "Td ANGLE REL 1,-(90*182),0,+(90*182)" provoque une rotation de l'objet 1 sur l'axe X de -90° et Z de +90°. Vous faites une boucle par exemple, et l'objet tourne sur lui-même à l'infini.

Enfin, pour être complet sur le sujet une instruction permet les retours en arrière par rapport à un mouvement, "Td FORWARD", et une autre permet d'intégrer une procédure AMAL à une fonction "Td MOVE". Les possibilités sont donc multiples.

Le petit poucet s'appelait AMOS

A côté du déplacement, un jeu complet de fonction permet d'obtenir toutes les informations possibles sur les objets. Ces fonctions permettent de placer dans des variables la place dans l'espace 3D de l'objet, sa situation par rapport à sa position de base, voire la différence entre la position de base et sa position actuelle. On peut donc toujours connaître la position d'un objet que l'on a laissé s'évader en déplacement relatif. Des fonctions permettent également de connaître le cap et la distance entre deux objets donnés.

1. Il peut être utile également de savoir où tous ces objets se placent sur l'écran. Des fonctions de conversion permettent de passer de coordonnées 3D en 20. Pour cela, deux notions sont à comprendre : les coordonnées locales et globales. Les premières s'attachent à ce qui est directement mis en oeuvre, les secondes concernent l'ensemble du monde 3D que vous avez défini. Trois systèmes de coordonnées sont donc accessibles, et répondent à tous les besoins que l'on peut avoir.

2. Il est possible de définir et de connaître les différentes collisions entre les différents objets. Une fonction comme "Td COLLIDE" indique si oui ou non une collision a eu lieu entre les objets 1 et 2. Des zones de collision peuvent être également définies. Cela peut également servir pour définir des zones où l'objet devra changer d'attitude.

AMOS Animator

Comme cela ne suffisait pas, AMOS 3D inclut deux types d'animation. L'une affecte les objets eux-mêmes en leur appliquant des déformations sur leur structure propre. La deuxième forme est inédite, car elle tient à un plus offert par les objets 3D d'AMOS. En effet, chaque objet peut se voir attribuer sur ces faces des matrices 2D, représentant tous les dessins que l'on veut. Certes, celles-ci sont constituées de vecteurs 2D sur XY au nombre limité, mais leurs couleurs peuvent être définies, et un effet de transparence peut être appliqué. Les vecteurs peuvent être déplacés, et ainsi donner une animation dans l'animation de l'objet, objet qui peut lui même être déplacé. Que dire de plus.

AMOS 3D

Quelques autres fonctions permettent de vous faciliter la vie. Dans le désordre, la possibilité est offerte de créer un "background" (fond), à votre espace 3D. Les sprites, bobs et autres fioritures peuvent venir s'accoupler avec les objets 3D. Les objets peuvent être détruits globalement, ou individuellement. On peut connaître leur placement en mémoire, ou leur visibilité sur l'écran. Enfin, AMOS 3D peut tout simplement être déconnecté.

Ce module ajouté à AMOS est parfait. Parfait car il est fait dans l'esprit du logiciel. Parfait car aucun bogue n'a été décelé. Parfait tout simplement parce qu'il fonctionne très bien, et que le résultat obtenu est excellent. Seulement, il ne faut pas se méprendre, beaucoup de choses sont impossibles à faire. Une contrainte de 20 objets maximums utilisables dans l'espace 3D en même temps. Ce n'est pas beaucoup, mais cela correspond à une question de rapidité. Il ne faut pas s'attendre non plus à faire des jeux comme le permet 3D Construction Kit, car 3D AMOS sert surtout à faire évoluer des objets 3D (vaisseaux, voitures, etc.), mais pas à créer des pièces d'un château, ou la rue de votre village. Il faut faire jouer son imagination, et mixer savamment toutes les possibilités d'AMOS. S'il est facile donc de faire une petite "anim", où l'attaque de l'Enterprise par le vaisseau amiral Klingon, la réalisation de Dark Castle sera moins aisée.

On peut se poser une question : AMOS 3D est-il compatible avec le compilateur ? Cela fait-il gagner quelques secondes ? Compatible, AMOS 3D l'est. Il n'y a pas de raison d'ailleurs qu'il ne le soit pas. Aucun problème à ce niveau. Les essais fais apportent toute satisfaction. Par contre, sur l'augmentation de vitesse je reste sceptique. En effet, les tests que j'ai effectués ont donné le même rapport de temps entre une version interprétée, une version compilée pour l'interpréteur, et enfin un programme compilé. Le manuel préconise une optimisation notamment dans la notation numérique. Mais cela est vraiment minime. Il faut noter cependant qu'AMOS met 1 seconde et des poussières pour faire pivoter en même temps un cube plein écran sur les axes XYZ de 10 degrés, jusqu'à une rotation totale de 360 degrés.

Allez Marseille...

Si comme moi vous avez apprécié les dernières "papinades" du match France-Tchécoslovaquie, vous savez à quel point l'OM est devenue une équipe culte. Habitant à une cinquantaine de kilomètres de Marseille, je le sais mieux que personne. Et j'ai cru en essayant le modeler fourni avec AMOS 3D que la Canebière s'était donné rendez-vous sur disquette. En effet, Voodoo Software a nommé son modeleur du nom évocateur d'OM (pour Object Modeler évidemment). C'est le deuxième élément de l'ensemble 3D AMOS.

Il est là pour créer les objets utilisables dans vos programmes. Cette constatation en appelle une autre. Dans l'état actuel des choses, il n'est possible de créer des objets 3D que par ce biais. Aucune définition d'objet dans un script ASCII, ou dans des données n'est possible. Pas de définition à la VideoScape. Seul OM permet cela. C'est dommage, car l'éditeur ne peut pas plaire à tout le monde, et les maniaques empreints d'une certaine rigueur vont être un peu déçus.

Deuxième constatation, OM n'est pas sous AMOS, mais est un programme indépendant, écrit visiblement en C (j'ai pu repérer une fenêtre de requête de "break" ressemblant à celui que crée Son Altesse Sérénissime Lattice). L'interface graphique, quant à elle, reste dans la lignée de ce qui se passe sous AMOS. Des icônes évocatrices, des effets 3D avec ombrages des boutons. Seuls peut-être les fenêtres de requête de chargement de fichier sont d'un genre inédit. Simples, et agréables, leur seul défaut est le passage intempestif à l'écran Workbench lors du chargement du répertoire.

La modélisation se fait par assemblage de primitives 3D. Celles-ci sont par exemple un cube, un triangle, un plan en forme (seulement en forme) de disque, ou toutes sortes de plans à multiples côtés. Ces primitives se trouvent dans la partie supérieure de l'écran dans dix cases. Les cinq du haut sont les primitives systèmes chargées à chaque fois, les cinq suivantes sont à la discrétion de l'utilisateur. Ce sont les "Shelves". Le travail de modélisation s'effectue sur deux Shelves prenant la moitié de l'écran. Ce système de Shelves est important car toutes les opérations vont dépendre du Shelves sélectionné. Les deux Shelves de travail peuvent être zoomés, pour ne travailler que sur un seul en plein écran. Sinon l'écran standard contient 12 Shelves. A part la sélection de la Shelves par la souris, aucune opération n'est directement applicable sur celle-ci. Toutes les manipulations vont se faire par le panel d'icônes.

Pour qu'une manipulation soit effective sur un objet donné il faut que le Shelves soit sélectionné. A partir de là deux types de modélisation sur un objet. Un premier global qui touche à l'objet en entier. Des icônes sur la droite du panel permettent d'agrandir, de diminuer, de faire pivoter dans tous les sens. Une autre modélisation tient à faire varier un bloc, un plan, une arête ou un angle d'un objet. Pour cela, une icône symbolisant une double flèche permet de faire varier plus ou moins sensiblement la variation. L'élément sélectionné est visualisé de deux façons sur l'écran : seule la sélection apparaît, le reste est en filaire ; ou alors la sélection est mise en évidence par des pointillés.

Des icônes permettent de faciliter le placement d'un objet par rapport à un groupe d'objet sur les plan XYZ. L'axe de rotation peut être choisi grâce à une fonction curseur. D'autres possibilités sont offertes, telle que la copie d'un Shelve vers un autre, ou l'association de deux Shelves. Une fonction "Undo" (défaire) permet de revenir à l'état initial. Ce "Undo" est présent à plusieurs stades globalement, et spécifiquement à la manipulation de bloc, plan ligne et coin.

A mon avis, la modélisation n'est pas très aisée au premier abord. OM a des concepts bien à lui, et les habitués de la 3D auront quelques difficultés à se remettre les idées en place. Obtenir une rotation, et placer un objet par rapport à un autre, demande souvent quelques tâtonnements. OM n'est pas évident au premier abord, mais les fonctions qu'il propose offrent un grand champ de possibilités. Cela ne doit pas faire oublier que tous les objets que vous faites restent accrochés à leur primitive, et la création d'un cylindre par exemple n'est pas une chose évidente, même si cela est possible. Il faut rappeler quand même que ce type de modélisation correspond aux impératifs d'une utilisation avec AMOS. La création d'objets trop complexes n'est pas adaptée à une utilisation efficace en conjonction avec le module 3D. Reste pour moi le regret de ne pas pouvoir créer soi-même ces objets au point par point.

La précision de la modélisation est relative. En effet, si la position des objets apparaît sur l'écran, aucune possibilité n'est offerte pour les déplacer à l'aide d'une fenêtre de requête.

La sélection des couleurs se fait à l'aide de trois boutons RGB. L'appui dessus fait varier d'une unité la valeur de la nuance. Cela est facile à utiliser. Une option permet d'attribuer une couleur cyclée prise dans la palette d'origine.

Plus intéressant est le module qui permet de plaquer un dessin sur un objet. Il faut sélectionner une face. Ensuite, une grille permet l'entrée de vecteurs. Ceux-ci sont ensuite plaqués sur le plan. Ces mêmes dessins peuvent être retirés d'un plan, ou bien pivotés sur ce plan. La couleur est changeante. Le système utilisé est bizarre. Trois boutons permettent de faire tourner la couleur, selon visiblement la couleur du plan.

Enfin, OM possède un jeu d'icônes effectuant les diverses rotations et déplacements de l'objet dans l'espace. Toutes les icônes ont souvent une double fonction, selon que l'on appuie sur le bouton droit ou gauche de la souris.

OM est donc un programme bien sympathique, même s'il n'est pas très évident à manipuler. Mais certains concepts mis en oeuvre permettent avec beaucoup de pratique de faire un travail efficace. Il est indéniable que l'apport d'un tel programme montre encore une fois la convivialité de l'environnement AMOS. Trois petits programmes permettent de s'y retrouver dans la gestion des objets sur disque.

C'est bien utile, car certains objets peuvent avoir une dizaine de fichiers. Imaginez une trentaine d'objets dans un répertoire. A noter sur le chapitre d'OM que le clavier est en QWERTY. Cela se remarque surtout au niveau de la fenêtre de requête de fichier. Ne cherchez pas à modifier le SetMap. Le programme gère directement le port clavier. Cela devra être revu dans une prochaine version. De plus, OM n'est pas multitâche.

Pour 390 francs t'as encore beaucoup de choses !

L'ensemble AMOS 3D est sans nul doute une réussite. Dans la lignée du compilateur et d'AMOS lui-même, la boîte ne dénote pas. Celle-ci contient un manuel glacé et relié par une spirale, une superbe carte de référence en carton rappelant les différentes commandes d'OM et les fonctions BASIC, un manuel de mise à jour pour la version 1.3 d'AMOS, et deux disquettes. Une disquette contient la bibliothèque 3D, quelques exemples de programmes 3D et d'AMOS 1.3.

L'installation ne pose aucun problème. Un programme spécial s'en charge. OM est, lui, sur l'autre disquette. Son installation est un peu bâclée. En effet, il faut copier les répertoires contenant le modeleur avec ces différents fichiers, mais également copier la police qu'il utilise dans le répertoire "Fonts:". Heureusement tout cela est clairement expliqué dans le manuel. Toutes les configurations systèmes sont possibles. L'installation sur le disque dur n'a pas posé de difficulté.

La seule réelle ombre au tableau est que le manuel est en anglais. Pas une once de français. Bien que ce soit un anglais très compréhensible, même pour moi, cela risque de rendre difficile la compréhension de certains concepts. Je me dois de rappeler encore ici que la loi française oblige les éditeurs de logiciels à fournir des notices en français. Une adaptation linguistique ne devrait pas tarder, mais dommage. Surtout quand on sait qu'âmes est dû à un gars bien de chez nous.

Le manuel présente deux parties. Une expliquant à fond le fonctionnement d'OM, l'autre décortiquant les fonctions 3D sous AMOS. De nombreux exemples fournis sur les disquettes permettront facilement d'appréhender la programmation. Il ne fait donc pas de doute que ce nouveau rajout à AMOS le transforme en l'un des plus merveilleux environnements de programmation existants. Rien n'est laissé au hasard, et la constance du suivi du produit, laisse présager d'autres extensions futures. La 3D avec AMOS c'est il facile, pas cher, et cela peut rapporter gros. Cependant, ne vous attendez pas à faire des choses exceptionnelles. Les possibilités offertes sont quand même assez modestes. Cela n'est rien, car pour la première fois, chose unique dans les annales, un BASIC (même tout autre langage), est capable de faire directement de lui-même de la 3D, surtout pour les malheureux 390 FF qui ne sont pas grand-chose à l'heure actuelle.

Pour finir, je voudrais parler de deux intéressants points de la mise à jour 1.3 d'AMOS. Il s'agit là de la refonte des fenêtres de requêtes d'AMOS qui ont gagné en souplesse, incluant un tri, et un appel aux différents répertoires assignés. La deuxième tient à l'ensemble de nouvelles fonctions pour la gestion du port série. Celles-ci, en effet, gèrent de façon optimale les communications, et sont prévues pour la création de jeux fonctionnant sur plusieurs Amiga en même temps. Génial ! Que dire alors de plus : Saint-François risque d'être bientôt canonisé.

Nom : AMOS 3D.
Développeur : François Lionet.
Éditeur : Mandarin.
Genre : logiciel de programmation.
Date : 1991.
Configuration minimale : Amiga OCS, 68000, 1 Mo de mémoire.
Licence : commercial.
Prix : 390 FF.


[Retour en haut] / [Retour aux articles]