Last update: 29/05/2007


Projet ARCANOID
Arcanoid est un petit jeu programmé en C++ qui utilise la librairie DirectX.
Ce projet n'a donc rien à voir avec la sécurité.
Description
La meilleure façon de d'expliquer ce qu'est ARCANOID, c'est encore via un bon vieux FAQ qui j'espère répondra à toutes vos questions:
Qu'est ce que ARCANOID ?
Arcanoid est un petit jeu que j'ai programmé en C++ qui utilise la librairie DirectX.
C'est quoi comme jeu ?
Pour reprendre la présentation de la notice:
"Arcanoid est un peu la version déformée d'un casse-briques dont un habitué des doom-likes peut rêver:
une baballe, une raquette, mais surtout des missiles explosifs, perforateurs ou à fission, une trentaine d'options différentes pour booster le tout,bref tout l'arsenal nécessaire pour blaster de la brique."
Ames sensibles et fervents défenseurs des droits des briques s'abstenir...
Sur quoi il tourne ?
ARCANOID fonctionne sous Windows 9x, NT, 2000 et XP. Il tourne sur un P75 16Mo EDO avec Windows et DirectX 5.2 au minimum. Il faut reconnaitre que sur un P75 avec 16Mo d'EDO, il n'est pas fluide. Si vous vous demandez pourquoi un casse-briques ne tourne pas sur un P75 alors que Doom tourne sur un 486 DX4, lisez la section FAQ de la notice.
Comment est-il programmé ?
ARCANOID est programmé en C++. Il est compilé avec le free borland tools qui est un compilateur en ligne de commande gratuit. Borland autorise la diffusion des exécutables générés avec ce compilo. D'un point de vue plus technique, il utilise DirectDraw, DirectInput et DirectSound (uniquement les tampons pour les sons brefs).
D'aures précision importantes ?
IMPORTANT:

Arcanoid consiste en un simple exécutable avec des fichiers sons et vidéos à coté.
Il ne modifie ni les fichiers systèmes ni la base de registres. La désinstallation est donc simple : Cliquer – Supprimer. Il ne subsistera alors aucune trace d’Arcanoid sur le disque.

Arcanoid est un freeware. Vous pouvez donc l’installer où vous voulez quand vous voulez et utiliser les sources comme vous voulez, dans la mesure ou vous ne vous appropriez pas sa réalisation.

Rassurez vous, ce qui suit est purement formel, il est théoriquement IMPOSSIBLE qu'ARCANOID cause le moindre dégats sur votre PC:
Comme tout programme, Arcanoid comporte certainement des bugs. Je me dégage bien entendu de toute responsabilité pour le cas ou son utilisation conduirait à un plantage de Windows ou une perte de données. Si Arcanoid parvient a causer des dégats sur votre PC, adressez toutes vos réclamations à Billou's Corp.
Pourquoi mettre les sources en accès libre ?
La librairie DirectX est extrêmement puissante, il faut le reconnaître. Mais elle comporte des pièges parfois très vicieux... Un exemple ? Le passage graphique avec une palette de couleur échoue si les appels UpdateWindow() et ShowWindow() n'ont pas été fait lors de la création de la classe de la fenêtre... Indebuggable...
Pour ce genre de subtilité, il est indispensable d'avoir un code qui marche à coté et de s'en inspirer.

L'utilisation de DirectX et la programmation d'un jeu est une opération lourde mais relativement simple une fois que l'on a compris comment la librairie fonctionne. Après ce n'est que de la manip de liste chaînée d'objets.
Mon but est donc de fournir un code qui vous permette d'éviter de perdre du temps sur ces pièges. J'ai en effet été étonné du peu de nombres de sites français offrant du code source utilisant DirectX.
Heureusement, quelques bouquins commencent à sortir.

ATTENTION Etant donné que j'ai appris le C++ en réalisant ce projet, le code est très mal écrit:

  • Toutes les champs des objets sont publics et accédés directement.
  • Le programme n'est pas multithread, ce qui serait une amélioration notable (genre un thread pour le prg principal, un pour l'affichage et un pour le son).
  • ...
Donc un conseil, contentez vous de vous inspirer du code, pas de copier coller intempestif !!!
Ressources
Voici les différentes ressources disponibles :
  • Archive contenant l'exécutable (1.6 Mo) : ARCANOID GAME
  • Archive contenant les sources (68 ko) : ARCANOID SOURCES
    Attention, il manque deux fichiers wave.h et wave.c qui sont fournit avec le livre DirectX de Microsoft Press.
  • Notice du jeu : ARCANOID NOTICE
Screenshots
Voici deux screenshots du jeu:
Une remarque/un bug ?
Pour les bugs, inutile de me mailer, j'ai arrêté ce projet depuis plusieurs années
N'hésitez cependant pas à me contacter pour me faire part de vos remarques/suggestions : Benjamin CAILLAT