RATillery: Un jeu d'artillerie pour PC



Introduction

CGA Title screen RATillery est un jeu d'artillerie simple inspiré par gorillas mais programmé dans un souci de supporter même les tout premiers PCs. Dans RATillery, ce sont deux rats qui, armés du pouvoir de lancer des balles de feu, s'affrontent sur un amoncellement de caisses dans un entrepôt.

Caractéristiques:
Requis système:

goto top Retour en haut


Jouer en ligne

Il est possible d'essayer le jeu ici même sans installer quoi que ce soit. Mais c'est très lourd car il s'agit de l'émulateur DosBox compilé pour une machine virtuelle écrite en Javascript... Ironiquement, il vous faut donc un PC très puissant pour jouer à ce petit jeu tout simple...



Démarrer la version CGA

(s'ouvrira dans une nouvelle fenêtre ou onglet)

Démarrer la version Tandy

(s'ouvrira dans une nouvelle fenêtre ou onglet)

Si le son est étrange (comme celui d'un tourne-disque dont la vitesse n'est pas constante) c'est que votre PC est trop lent. Dans ce cas, téléchargez plutôt le jeu...

goto top Retour en haut


Télécharger

Vous pouvez télécharger le jeu ici. Deux formats sont disponibles:

goto top Retour en haut


À propos du jeu

Si une image vaut mille mots, combien le GIF animé ci-contre en vaut-il?

À tour de rôle, les joueurs doivent saisir l'angle (0 à 90 degrés) et la force (0 à 255) de tir dans le but de toucher (et détruire) l'adversaire. Si le tir sort de l'écran sur les côtés, le tour est fini. La boule de feu est naturellement bloquée par les caisses qui cependant peuvent être détruites. La position des rats et des caisses est aléatoire et change à chaque fois qu'un joueur est touché.

Le gagnant est le premier à toucher l'autre un certain nombre de tours, configurable de 1 à 99.

En plus de la base expliquée ci-dessus, le jeu offre quelques options supplémentaires pour faire durer le plaisir:

Résistance de l'air
Le jeu offre trois niveaux de résistance de l'air: Vide (résistance nulle), Normale et Haute. Le comportement change assez d'un niveau à l'autre pour imposer un certain défi à un joueur habitué à un mode différent. Parfait pour rééquilibrer les chances de matchs joués avec des débutants.


Caisse suspendue
Il y a une option pour qu'une caisse suspendue soit présente à un endroit aléatoire dans la zone de jeu, et bien sûr bien souvent en plein chemin du tir idéal! Le crochet et la chaîne la retenant sont indestructibles, mais cette dernière laisse cependant la boule de feu passer, quoique pas tout le temps... Il faudra être chanceux, faire des tirs en chandelle ou se brûler un chemin dans les caisses petit à petit.


Suivi des tirs à l'extérieur de l'écran
Il n'est pas rare qu'un tir prenne de l'altitude et sorte de l'écran un moment avant de retomber. Dans cette situation, un indicateur apparait pour vous permettre de suivre son déplacement latéral. Ceci est bien mieux qu'un certain jeu où dans la même situation, après plusieurs secondes de silence immobile, on vous apprend que le tir est sorti de l'écran...

Dissimulation des valeurs saisies
Vous manquez de près l'adversaire, et que fait ce dernier? Il utilise le même angle que vous et ajuste très légèrement la vélocité de sorte qu'il ne vous manque pas, lui! Pour éviter d'aider ainsi votre adversaire, le jeu offre l'option de faire la saisie en style mode mot de passe. Si vous jouez seul contre l'ordinateur, cela vous empêche de vous aider en regardant les nombres dont il se sert. Quant à l'ordinateur, aucune différence, il ne triche jamais.

Statistiques de fin de partie
Tout au long de la partie, vos tirs et résultats sont comptabilisés. Lorsque celle-ci prend fin, quelques statistiques vous sont présentés. N'oubliez pas: pour atteindre l'excellence, il faut atteindre l'adversaire.

L'ordinateur contre lui-même
Le jeu vous permet de faire jouer l'ordinateur contre lui-même. C'était au début simplement pour tester que le semblant d'intelligence artificielle aboutissait toujours, tôt ou tard, à un tir qui ne manquait pas la cible... C'est que plutôt qu'un calcul direct du tir (avec victoire en un coup), j'ai opté pour un algorithme de recherche par essais-erreur.

goto top Retour en haut


Screenshots (version CGA)

Voici la version CGA, qui fonctionne aussi sur les cartes EGA et VGA. J'ai choisi d'utiliser la palette de couleurs Vert-Rouge-Brun-Noir qui convenait bien à l'idée de caisses en bois. Quant aux rats, disons que leur couleur verte est un effet secondaire de leur pouvoir surnaturel de lancer des boules de feu?
Écran d'accueil

Écran d'accueil

Options

Options

L'histoire

L'histoire

Crédits

Crédits

En jeu!

En jeu!


goto top Retour en haut


Screenshots (version Tandy)

Voici maintenant la version Tandy 16 couleurs, dans laquelle j'ai ajouté quelques types de caisses et tenté de donner au texte une allure camouflage. Ne fonctionnera malheureusement pas avec les cartes CGA, EGA ou VGA. Il vous faudra un véritable ordinateur Tandy (ou PCjr?) pour jouer à cette version plus colorée du jeu. Si vous utilisez Dosbox, servez simplement de l'option de configuration machine=tandy.
Écran d'accueil

Écran d'accueil

Options

Options

L'histoire

L'histoire

Crédits

Crédits

En jeu!

En jeu!


goto top Retour en haut


En action

Voici quelques photos en action sur un Tandy 1000 EX et sur un clone d'IBM 5160 (XT) avec carte CGA.

Tandy 1000 EX

Tandy 1000 EX

Clone XT: crédits

Clone XT: crédits

Clone XT: En jeu

Clone XT: En jeu


Envoyez-moi vos photos!
Je serais très heureux de recevoir des photos du jeu fonctionnant sur d'autres vieux PC du même genre afin d'en rajouter ici. En particulier, j'aimerais savoir si le jeu fonctionne du PCjr et sur IBM 5150, le PC original!

goto top Retour en haut


Mini « making of »

Quoi!? Pas assez de mémoire?

Quoi!? Pas assez de mémoire?

En janvier 2016, après avoir conçu un outil spécialement pour copier des fichiers vers mon Tandy 1000 EX, j'y ai transféré qbasic et gorillas.bas dans l'espoir de faire une partie avec mon frère dans un futur proche. Mais cela ne s'est pas passé ainsi, car 256 Kio de mémoire ne suffisaient pas pour lancer ce jeu...

« Totalement inacceptable! » me suis-je dit. Et comme je commençais justement à être un peu à l'aise en assembleur 8086/8088, dialecte que j'avais du apprendre pour réaliser mon outil de transfert de fichiers, j'ai fait le choix évident et bien naturel (tout le monde ferait ainsi dans la même situation pas vrai?) d'écrire un jeu similaire, mais qui, grâce à du code assembleur réalisé avec soin, fonctionnerait sans problème sur mon Tandy 1000 à 7.16 MHz, et même sur des systèmes moins rapides...

Quelques semaines plus tard, le jeu était fonctionnel. Ensuite ce fut de petites améliorations à temps perdu sur plusieurs mois, comme l'ajout d'une autre langue, l'exploitation du mode vidéo Tandy 16 couleurs (pour mon Tandy 1000 EX!), la création d'un bootloader pour le release PC booter... pour aboutir enfin à un résultat « satisfaisant » en août 2016.

Développement:
Le développement a été fait entièrement sous Linux. Le jeu est programmé entièrement en assembleur (avec nasm), et les outils connexes (conversion d'image, compression de la musique, etc.) sont tous faits en C. Lors du développement, j'ai beaucoup utilisé DosBox pour tester (Je l'exécutais même directement depuis le Makefile).

Graphisme:

J'ai réalisé les dessins en utilisant un mélange de GrafX2 et GIMP. L'illustration de l'écran d'accueil, réalisée par Sion, a d'abord été tracée sur papier, ensuite photographiée puis mise au propre dans GIMP. Les images passent par un outil maison qui réorganise les lignes dans un ordre convenant mieux à CGA qui permet de simplifier (et d'accélérer) le code d'affichage (En mode CGA, les lignes paires et impaires sont séparées par une distance de 8Kio). Même chose pour le mode Tandy (où c'est alors quatre sections de mémoires qu'il faut gérer)...

Musique:
J'ai composé la musique dans MONOTONE. Je me sers de la fonction Disk Writer qui permet d'exporter un fichier contenant les valeurs à écrire dans le registre de fréquence de l'haut-parleur du PC. C'est très simple, mais ce sont des données répétitives qui occupent beaucoup d'espace. Je compresse donc le tout avec du RLE avant l'intégration dans l'exécutable.

Tests:
Outre DosBox, j'ai utilisé le Tandy 1000 EX initiateur du projet, un clone d'IBM XT avec carte CGA, un Pentium 133 quelconque, et VMware.

goto top Retour en haut


Les marques de commerce utilisées dans ce site appartiennent à leurs propriétaires respectifs.
Copyright © 2002-2017, Raphaël Assénat
Site codé avecSite codé avec vimDernière mise à jour: 15 Septembre 2016 (Jeudi)