|
||||||||||||||||||||||||||||||||||||||||||||
|
Nous avons reçu la version commerciale d'AMOS (en anglais), dont vous aviez eu un pré-test complet dès le mois de janvier dernier. Depuis, l'enthousiasme aurait pu retomber. Il n'en est rien. AMOS tient ses promesses, tant au point de vue de sa rapidité d'exécution que de la puissance de ses instructions. Je ne vais toutefois pas vous présenter une seconde fois ce langage, mais plutôt insister sur certains de ses aspects et sur la "dynamique" qui est en train de se créer autour. AMOS : pour faire des jeux, mais pas seulement AMOS est le digne successeur de STOS, la version Atari, qui connaît un succès indéniable en Angleterre : en plus des 40 000 exemplaires vendus par Mandarin Software lui-même, il faut désormais compter avec les versions du STOS fournies directement par Atari avec chaque 520ST ! Commodore en fera-t-il autant avec AMOS ? Le sous-titre "The Game Creator" du STOS s'est changé en "The Creator" pour son homologue Amiga. Interrogé sur ce point, Chris Payne de Mandarin répond qu'il a vu tellement de programmes dans des domaines différents (tels que didacticiels, démos et bases de données) écrits en STOS qu'il a jugé bon de changer le titre. De plus, la formule "The Game Creator" avait un petit côté péjoratif auprès de certains utilisateurs potentiels. Il est bien vrai qu'AMOS n'est nullement "limité" à la programmation de jeux. C'est pourquoi j'aimerais que nous fassions un petit tour d'horizon des instructions. Lors du premier article, je m'étais surtout étendu sur les possibilités graphiques, l'animation, ou encore l'AMAL (le langage sous interruption d'AMOS), cette fois, j'aimerais vous parler de la programmation structurée en AMOS (car il faut programmer avec méthode), des facilités pour créer des applications "comme sous Intuition" (car l'Amiga sans fenêtres ni gadgets, ce n'est plus l'Amiga), et de la musique avec AMOS (uniquement par plaisir personnel...). C'est parti ! AMOS, le langage structuré Les Dieux ne nous auraient pas pardonné de commencer cette nouvelle décennie avec un langage non structuré. AMOS, rassurez-vous, vous protégera du châtiment divin. Il y a en effet dans ce langage-là tout ce dont vous pouvez rêver pour programmer rapidement et proprement, même si l'instruction "GOTO" est toujours présente pour vous déstabiliser moralement. Mais, après tout, un BASIC sans "GOTO", doit-on encore l'appeler BASIC ? ![]() On peut aussi sauter à un label, à une sous-routine, ou appeler une procédure selon la valeur d'une variable avec les fonctions ON...GOTO, ON...GOSUB, ON...PROC. On peut également sauter à une sous-routine ou appeler une procédure à intervalle régulier avec EVERY...GOSUB et EVERY...PROC. "EVERY ON/OFF" permet d'activer ou désactiver ce mode. Pour quitter une sous-routine en cours de route, "POP" fera l'affaire, alors que "POP PROC" fait l'équivalent mais pour une procédure. La définition des variables globales se fait par "GLOBAL" à l'intérieur du programme principal et "SHARED" à l'intérieur de la procédure elle-même. AMOS est donc idéal pour tester des algorithmes vite fait bien fait et corriger instantanément, sans passer par la lourdeur des déclarations du C, les {} à n'en plus finir, et surtout les E/S qui ne sont pas intégrées d'origine ce qui vous génère un code monstrueux pour le moindre petit algo. De plus, il est apparemment beaucoup moins bogué que le GFA Basic (bien que la dernière version semble tout de même un peu meilleure) et suffisamment rapide pour nous permettre pas mal de fantaisies. En parlant de rapidité justement, je me suis amusé à refaire en AMOS les tests de performance que Charles Vassallo avait pris comme référence dans son article sur le HiSoft Basic. En règle générale, j'ai trouvé des résultats très légèrement inférieurs à ceux du GFA mais peut-être y a-t-il en AMOS quelques bizarreries comme le "ADD" du GFA qui est plus rapide qu'une simple addition et que je n'ai pas encore assimilées. Précisons toutefois que ces tests se limitent évidemment à des boucles et des opérations mathématiques et n'ont rien à voir avec la programmation sous interruption avec l'AMAL, la gestion des sprites matériels particulièrement bien étudiée d'AMOS, ou encore les fonctions Blitter. Ils ne sont donc guère révélateurs de la puissance que vous aurez sous le capot de votre Amiga s'il vous venait à l'idée d'écrire un jeu d'arcade en AMOS. AMOS, le générateur d'applications AMOS peut être aussi considéré comme un générateur d'applications, voire, pour utiliser un terme à la mode, un des premiers "langages multimédias" puisqu'il brille par sa simplicité et sa puissance dans de nombreux domaines de l'Amiga, graphisme, son, parole... De même qu'il est très simple de charger une image Deluxe Paint par un "LOAD IFF" ou encore de jouer une musique SoundTracker, on peut, sans avoir à passer par Intuition (interface géniale mais assez longue à mettre en oeuvre à cause de ses structures qui n'en finissent pas) gérer textes, gadgets et menus déroulants. Tout de suite le texte, où là encore, tout a été prévu : les modes d'écriture (WRITING), les effets tels que l'inversion ou l'ombrage (INVERSE, SHADOW...), la couleur de l'encre (INK) et du fond (PAPER), le positionnement du curseur (LOCATE, AT, CMOVE), son aspect (SET CURS) et la gestion des polices de caractères avec les fonctions "GET FONTS", "GET DISC FONTS", "GET ROM FONTS" mais aussi "TEXT SYLE", "TEXT BASE", "TEXT LENGTH" qui retournent respectivement le style utilisé (bold, italic, underline), la ligne sur laquelle on "pose" le texte (baseline), et la largeur en pixels de la police. Les gadgets ne sont pas en reste puisqu'il est par exemple facile de réaliser des gadgets proportionnels avec les commandes toutes prêtes "HSLIDER" et "VSLIDER". Je ne sais pas si Intuition permet de remplir l'intérieur d'un gadget proportionnel avec une autre couleur que 0 sans avoir à bidouiller, mais ce n'est en tout cas pas évident : AMOS, lui, dispose déjà d'une commande pour le faire, et même à l'aide un motif rythmique (pattern) défini par le programmeur. Les gadgets de chaînes et booléens se font très facilement grâce à d'autres commandes AMOS, qui gèrent la souris et le clavier. Dernier point, les menus : ils se gèrent de façon tout à fait classique et des commandes permettent de se brancher automatiquement sur la procédure ou la sous-routine concernée par le point "P" du menu "M" sélectionné. La fonction "MENU KEY" permet bien sûr de gérer les raccourcis claviers. Le plus intéressant est le degré très élevé de personnalisation qu'autorise AMOS : le programmeur peut, en effet, entièrement modifier l'aspect de ses menus : il est tout à fait possible d'y dessiner un bob, d'y tracer une ellipse, ou encore de remplir la surface avec un motif quelconque. De plus, un peu à la façon des programmes sur Mac, les menus peuvent être affichés en plein écran, suivre la souris... Ce n'est pas une belle interface utilisateur ça ? AMOS, le musicien L'AmigaBasic, pour le son, ce n'était pas franchement génial. Avec le GFA, même sans les bogues, il n'y avait pas grand-chose de plus. AMOS est pour l'instant le seul BASIC à s'occuper sérieusement du son et de la musique. Cela fait tellement de bien aux oreilles que j'ai décidé de vous en parler un peu plus longuement. Tout d'abord, la musique : AMOS permet de récupérer des musiques provenant de GMC, SoundTracker et même Sonix (là, je n'ai pas encore essayé). Il suffit de charger la musique et ensuite de faire "MUSIC n" (avec "n" le numéro de la musique à jouer). Et pour stopper une musique ? On fait "MUSIC STOP". Mais si la musique que l'on arrête avait priorité sur une autre musique, l'autre se remet en route. Si vous voulez vraiment tout arrêter, faites donc "MUSIC OFF". Jusque-là, c'était sans surprise. Mais vous pouvez aussi agir directement sur le tempo de la musique (commande "TEMPO"), sur son volume (commande "MVOLUME") ou décider de ne jouer que certaines voix : (commande "VOICE"). Une autre fonction particulièrement intéressante est "VUMETER" qui retourne le volume de la note couramment jouée sur le canal sonore de votre choix. Vous l'avez compris, c'est l'idéal pour programmer un VU-mètre. D'ailleurs, il y a encore mieux : la commande "VU" qui est l'équivalent sous AMAL de "VUMETER" et permet donc de faire son VU-mètre sous interruption. Passons aux échantillons eux-même maintenant. Cela ne vous étonnera sans doute pas beaucoup de savoir qu'il existe une instruction pour jouer une note de hauteur et de durée quelconques : "PLAY". Équivalente à la fonction "WAVE" de l'AmigaBasic, "SETWAVE" permet de créer une forme d'onde, alors que "WAVE" version AMOS permet d'affecter cette forme d'onde à un canal sonore. "DEL WAVE", quant à elle, la détruit. "NOISE" permet de générer automatiquement un bruit blanc fort utile pour tout ce qui est percussions ou explosions. Enfin, "SET ENVEL" permet de créer une enveloppe pour notre son et "VOLUME" détermine le volume d'un canal sonore. Sous AMOS les données sont organisées en "banques". Il en va donc ainsi des échantillons. L'utilisation d'un son échantillonné contenu dans une banque d'AMOS se fait à l'aide des fonctions "SAM PLAY", "SAM BANK", "SAM RAW" et "SAM LOOP" (qui permet de définir un point de boucle sur l'échantillon). N'oublions pas des fonctions telles que "LED ON/OFF" qui active ou non le filtre passe-bas de l'Amiga et "BELL", "SHOOT" et "BOOM" qui sont des sons prédéfinis. Voilà, c'est terminé pour le son. Je vous en ai parlé primo, parce que c'est un domaine qui m'intéresse (bouh le vilain égoïste !), secundo, pour vous montrer à quel point AMOS est un langage achevé : vu la quantité de commandes (de qualité) pour gérer le son, vous ne vous étonnerez plus qu'AMOS dépasse les 500 instructions... AMOS, c'est aussi... Mais AMOS, ce n'est pas seulement un BASIC, c'est aussi tout son environnement : les produits, comme les services. Et là, les gens de Mandarin Software sont assez imbattables. Les produits, tout d'abord : bien sûr, le compilateur à venir, qui donnera une nouvelle dimension à AMOS. François Lionet travaille actuellement sur ce compilateur qui devrait être disponible pour les fêtes de fin d'année et pourrait faire tourner un programme jusqu'à deux fois plus vite qu'en interprété. Mais d'autres modules sont aussi prévus, comme cet AMOS 3D vous permettant de créer et de manipuler des objets en trois dimensions, et de programmer tranquillement chez vous, avec un minimum d'effort, des jeux du style Starglider. AMOS 3D, dont les routines de gestion 3D ont pris 18 mois de travail à la société VooDoo Software, devrait être disponible en Angleterre d'ici fin août. Parallèlement, Stephen Hill, l'auteur du manuel d'AMOS, travaille sur un livre qui devrait expliquer comment écrire des jeux dans ce langage. Ce livre - en anglais, espérons qu'il soit un jour traduit - sortira d'ici la fin de l'année aux éditions Sigma Press. En ce qui concerne les programmes écrits en AMOS, les premiers à sortir seront Cartoon Capers (un jeu d'arcade), et des logiciels éducatifs comme Fun School de Database Software courant juillet. Les services, ensuite : le club AMOS, avec son bulletin d'information, son concours permanent de "dixligne" (rappelez-vous, le bon temps du "deuligne" dans l'Hebdo...) et son initiation à la programmation en AMOS, mais aussi la téléassistance, la bibliothèque de DP AMOS, et un concours annuel du meilleur logiciel de jeux créés avec AMOS où le lauréat se voit remettre 5000 £. Vous pouvez très bien déjà adhérer au club, histoire de voir à quoi cela ressemble. Pour cela, une seule chose à faire : envoyer 12 £ à l'adresse suivante : The AMOS Club, 1 Lower Moor, Whiddon Valley, Bamstaple, North Devon EX32 8NW. Conclusion La version d'AMOS que j'ai eu en test est la 1.1. Elle n'existe actuellement qu'en version anglaise et vous est cédée pour 49,95 £. Elle fonctionne sur un Amiga avec seulement un lecteur de disquette et 512 ko de mémoire. Mon impression générale est très bonne. Au chapitre des petits regrets toutefois, l'impossibilité d'appeler une fonction de n'importe quelle bibliothèque (même si les dos, exec, graphics et intuition.library sont gérées (assez mal pour cette dernière d'ailleurs)). Mais en a-t-on vraiment besoin ? L'éditeur est convivial mais je n'ai pas trop aimé la boîte de requête de fichier. Enfin, bien qu'il soit en principe multitâche, il n'est pas possible d'accéder à un autre écran une fois AMOS chargé (Bruce Lepper : je suppose que les applications crées avec AMOS ne seront pas multitâches non plus ; pour les jeux ce n'est pas bien grave mais qui voudrait s'écrire un utilitaire qui ne cohabite pas tranquillement dans l'environnement Amiga ? Personne, j'espère. François Lionet, l'auteur d'AMOS et STOS, m'a dit qu'il est lui-même devenu un fan de cette environnement depuis qu'il travaille sur notre machine, alors il y a de l'espoir... Selon Nicolas, l'arrivée du compilateur va résoudre ce problème, car c'est l'éditeur seulement qui empêche d'accéder au Workbench). A part ces quelques remarques, c'est à mon avis, et de loin, le meilleur BASIC pour Amiga qui ne souffre aucunement de la concurrence d'un GFA trop bogué, ou d'un AmigaBasic trop lent. Quant au HiSoft Basic, il n'exploite pas autant les caractéristiques de l'Amiga. On annonce l'arrivée du Blitz Basic sur Amiga, ce sera peut-être son seul rival. AMOS reste une valeur sûre de par la qualité de ses instructions et le suivi phénoménal de l'équipe qui s'en occupe (ce qui n'est pas vraiment le cas du GFA, soit dit en passant). Ah, pour finir, tout de même un gros reproche : la boîte... oui celle-là... celle d'AMOS... elle est horrible ! Moi ça passe, mais si Frédéric Autechaud avait testé ça...
|