CUBE


..:: DescriptioN ::..

CUBE est un FPS (first person shooter) en OpenGL que j'ai réalisé avec Dev-C++ 4.01 (en langage C donc). Le source fait environ 2000 lignes de code. Il y a 4 maps différentes et facilement personnalisables, du sons, des animations et un menu d'options.

L'idée de base est de pouvoir réaliser un Doom-like avec un éditeur de niveaux. J'avais vu sur Internet un exercice demandant de réaliser des niveaux 3D à partir d'un fichier texte. Vous pouvez vérifier en ouvrant les fichiers MAP.

Pour dissiper tout mal entendu, il existe un autre projet CUBE (multiplayer), beaucoup plus abouti que le mien. j'ai choisi le nom Cube car mon programme est à base de cubes (de modules). Et je l'ai choisi bien avant de connaître l'existance de ce projet là.

..:: Téléchargez CUBE ::..


..:: ScreenshotS ::..

         


..:: InformationS ::..

Version : 2.5 (31 janvier 2004)
Compilateur : Dev-C++ 4.9.8.5
Programmation : Langage C & OpenGL (glut)
Configuration Recommandée :
  • Processeur à 500 MHz
  • 64 Mo de RAM,
  • Carte 3D compatible OpenGL
  • Carte Son, souris, clavier
  • Windows 95/98/2000/XP


    ..:: ContrôleS ::..

    Le Clavier : (cf 2ème screenshot)

         Echap -> menu
         e - d -> avancer/reculer (axe x)
         s - f -> gauche/droite (axe z)
      PG-UP/DW -> monter/descendre (axe y)
          Home -> Retour en 0-0-0
             ² -> console ON/OFF
             b -> effet de blending ON/OFF
             l -> light ON/OFF
           F10 -> quitter
    
    La Souris :

    Gestion de la vue comme dans un Quake-Like, le clic gauche pour effectuer un tir et le clic droit pour effectuer un choix dans le menu.

    Les Maps Personnalisables (fichiers .map) :

  • vous pouvez ouvrir ce type de fichier avec un éditeur texte
  • indiquez la hauteur sur la première ligne
  • indiquez la largeur sur la deuxième ligne
  • mettez une étoile * pour afficher un couloir
  • mettez un espace pour du vide
  • mettez un x pour le point de départ
  • IMPORTANT ! N'oubliez AUCUN espace !

    Le MENU :

    Pour modifier les options du menu, vous devez utilisez la souris. Vous pouvez modifier :
  • FOV : champ de vision (defaut 90°)
  • SENSITIVITY : sensibilité de la souris lorsqu'on la bouge (defaut 2)
  • MODE : joueur (defaut) pour avoir des collisions avec les murs, spectateur sinon
  • CIEL : affiche ou non le ciel (defaut ON)
  • OPTIMIZ : optimisation de l'affichage du niveau (defaut ON). Vous pouvez constater les différences en vous baladant un spectateur.
  • DEPTH : Profondeur d'affichage (defaut 100). Les éléments trop éloignés ne sont pas affichés.

    Sous Menu GRAPHICS : vous pouvez voir les caractéristiques de votre carte graphiques (touches I et K pour tout voir).
    Sous Menu MAPS : vous pouvez changer de carte.


    ..:: CompilatioN ::..

    Sous DevCpp
    Double-cliquez sur le fichier cube.dev.
    Lancez la compilation en appuyant sur la touche F9.

    GLUT doit être installé sur votre machine (headers et DLL).

    _main.c : fichier source principal
    draw.h : affichage du menu, positionnement de la caméra
    font.h : gestion de polices de caractères (affichage, chargement)
    fps.h : calcul du nombre de FPS
    hud.h : affichage de la crosshair, de la console, des infos à l'écran, de l'arme, de la fumée
    init.h : initialisation de OpenGL
    load.h : chargement de textures BMP et TGA
    map.h : création d'une map à partir d'un fichier texte, affichage du ciel
    move.h : gestion des mouvements, de la collision, du tir


    ..:: HistoriquE ::..

    Le projet CUBE est réalisé avec Dev-C++ 4.01 (freeware) et GLUT (outils pour OpenGL). OpenGL est l'API concurrente de DirectX de Microsoft. Elle est 100% portable sur tous les systèmes. Elle ne gère que la 3D (et clavier/souris) mais reste la plus simple à utiliser. CUBE n'a pas la prétention de devenir Quake IV mais juste un projet d'apprentissage du langage C et des méthodes de réalisation d'un programme en trois dimensions.
      Version 2.5 : (02 février 2004)
       - Conversion du projet CPP en langage C
       - Nouvelle gestion du temps
       - Correction de bug grâce au TimeStep (quelque soit votre PC, le jeu ira aussi vite)
    
      Version 2.0 : (06 janvier 2002)
       - Plus de 2 000 lignes de code et plus 200 000 caractères pour le source
       - les murs ne s'effacent plus quand on les regarde de trop près
       - implémentation des textures TGA non compressées
       - utilisation de police venant d'une texture TGA
       - optimisation de l'affichage (HUD et MAP)
       - Ajout du ShotGun (vive le freestyle)
       - Le ShotGun bouge
       - Création d'un ciel texturé et animé
       - modification de la texture de la console
       - ajout de la fumée
       - ajout d'une ombre pour les textes (non vectoriels)
       - changement de textures
       - les textes peuvent être de différentes tailles et de différentes couleurs
       - création d'un petit zoom
       - création d'un menu graphique
       - les textes peuvent être colorés et agrandi
       - création d'un menu graphique
       - création de bouton, ou hypertextes
       - création de saisie de commandes
       - création d'un menu map
       - 4 maps différentes au choix
       - optimisation du moteur 3D, il reste encore quelques bugs
       - rajout de la sensitivity
       - la collision a été améliorée
       - ajout de lumière, encore quelques bugs
       - ajout d'un soleil et d'un ciel panoramique
       - implémentation de la gestion des modèles 3D de Quake II
    
      Version 1.6 : (20 décembre 2001)
       - ajout de commentaires plus précis dans la source
       - modification des FPS pour un affichage plus précis
       - lecture des fichiers .map
       - création de map via les fichiers map.
       - la fenêtre peut être redimensionnée sans problème de souris
       - création de 5 crosshairs
       - modification et optimisation du hud
       - création d'une console d'interprétation de commandes (fictive)
       - modification de texture
       - ajout de l'effet de blending (transparence et saturation alpha)
       - prise en compte totale de la souris, avec vue 3D comme dans un Quake-Like
       - la taille de la police vectorielle est proportionnelle à la taille de l'écran
       - détection des collisions (gauche-droite-devant-derrière) avancées, avec slide sur les murs
       - gestion du son wav (départ, console, tir)
       - le curseur de la souris peut être rendu invisible
       - plusieurs touches peuvent être appuyées en même temps
       - la souris ne sort plus de la fenêtre, ou n'est plus bloqué au bord
    
      Version 1.5 : (09 décembre 2001)
       - création d'un menu pour modifier le fov et la sensitivity.
       - ajout de textures plus réaliste (empruntée de Quake III).
       - ajout de la gestion 2D (horizontale) de la souris.
       - peaufinage de la gestion du clavier lorsque le target de la caméra est modifié.
       - ajout d'un texte en bas de l'écran.
    
      Version 1.4 :
       - 6 textures sont gérées en temps réel.
       - Vue interne.
       - création d'un rapport.txt en appuyant sur Echap.
       - sources séparées en plusieurs fichiers.
    
      Version 1.3 :
       - 2 textures sont gérées en même temps.
       - le cube tremble.
    
      Version 1.2 :
       - le nombre de fps a été ajouté dans le titre de la fenêtre.
       - des branches sortent du cube pour afficher les 3 axes x-y-z.
       - la texture est modifiée en temps réel en appuyant sur page-up ou sur page-down.
    
      Version 1.1 :
       - les flèches (droite, gauche, haut, bas), page-up, page-down et début ont été ajoutées.
       - le cube tourne en fonction des touches appuyées.
       - la texture a été modifiée.
    
      Version 1.0 :
       - modification des rotations, qui sont automatiques.
       - le cube tourne tout seul et a sa propre texture.
    
      Version 0.5 :
       - repompage d'un tutorial (http://antoche.alrj.org).
    

    ..:: LienS ::..

    Autre projet Cube (n'ayant aucun rapport avec le mien)
    http://wouter.fov120.com/cube
    Tutorial OpenGL FR
    http://antoche.alrj.org
    Logiciel DevCpp
    http://www.bloodshed.net/devcpp.html


    BeLZeL - [http] belzel.free.fr
    belzel [at] free [dot] fr
    visiteurs