Le projet SpeedWay
Présentation
Speedway est un doom-like 3D où des voitures, divisées en deux
camps, se combattent jusqu'à ce que l'un des deux camps ait réduit
le nombre de ses adversaires à zéro ! On peut jouer sur une demi
douzaine d'univers et de voitures différentes.
Speedway est un projet d'étudiants fait à l'école EPITA en
2001-2002. Il fut, pour l'ensemble de ses développeurs, notre
premier projet en équipe et nos premiers pas dans le monde de la
programmation. Il a été développé en Opengl, Borland Delphi 5 et
DirectSound et fonctionne uniquement pour Windows 95/98/2000/XP.
Il devrait fonctionner et compiler pour sur les versions plus
récentes de Windows et de Delphi.
Le scénario est très simple : éliminer toutes les voitures ennemies
en leur tirant dessus et en convertissant les morts. La conversion
se fait en se rapprochant de la voiture détruite et cette dernière
ressuscite instantanément et devient un allié. Goûter alors aux
plaisirs de la nécromancie mécanique ^^.
Pour jouer, vous devez connaître les touches suivantes :
- HAUT/BAS/DROIT/GAUCHE : avance/recule/droite/gauche.
- 1 à 6 : change d'armes.
- ESPACE : tirer.
- HOME : arme suivante.
- A : change de vue (3 différentes).
- TABULATION : change de voitures.
Aperçus du jeu
Cliquer sur les images pour les agrandir.
Téléchargement
Ce projet n'est plus développé mais ses sources sont disponibles
sur GitHub . Ce programme est disponible en open
source. Il vous faudra un Delphi Borland pour compiler les sources
(au moins la version 5). Attention: pour des soucis de
poids, certaines ressources graphiques et sonores n'ont pas forcément
été toutes stockées sur le repo git. Vous pouvez les télécharger
ci-dessous.
Au coeur de SpeedWay
Etant des programmeurs novices à l'époque, le jeu est très lent
même avec un PC actuel. Cela est du aux nombreux tests de
collisions (véhicules contre véhicules et véhicules contre les
murs) non optimisés car lancés sur tous les triangles de la
scène. Un arbre BSP ou un Quad-Tree aurait aidé le jeu à réduire
le nombre de calculs, mais nous n'avions pas eu le temps de le
faire à l'époque. Autre problème: les voitures peuvent démarrer
le jeu dans le décor.
Ce que le code contient :
- Dessins (voitures et cartes) dessinés grâce au logiciel 3D Studio
Max et conversion des fichiers ASE de 3D Studio Max en une liste
de triangles directement utilisables pour OpenGL.
- Détection de collision sur les triangles de la carte
(avec la caméra et les voitures).
- Champs de force entre voitures et sur les murs (attractifs et
répulsifs) des voitures contrôlées par l'ordinateur pour simuler
une IA de pelotons et d'ennemis.
- Quelques effets avec OpenGl comme des explosions (avec des
particules ou uniquement avec des textures), des arcs
électriques, des effets d'éblouissements.
- Tirs des voitures, bonus sur le sol à récupérer, sons, etc...
Liens utiles pour la programmation OpenGL
Voici quelques sites qui, à l'époque, ont retenu mon attention
concernant OpenGL et Delphi. Malheureusement la plupart de ces
liens sont morts, mais je les laisse au cas ou.
- OpenGl et Delphi :
- OpenGl et C (et autres langages) :
|