Aller au contenu | Aller au menu | Aller à la recherche

projets

Flux rss Flux rss des commentaires

Novendiales 6 : Nuclear Age

  • langage: C++
  • libs: SDL, SDL_mixer, boost

À l'occasion des novendiales 6 du GCN, en "concurrence" (amicale) avec 6 autres participants, j'ai décider d'utiliser le moteur d'ExtremeCarnage pour réaliser un jeu 2D très rapidement. Cela a été juste, mais avec tout mon temps libre j'ai réussi a finaliser : Nuclear Age. Ce jeu a un concept un peu particulier, dû au thème du concours: contamination. Il s'agit de protéger des villages dans une région où la centrale a explosé. Pour ce faire, achetez des ventilateurs dont vous choisissez la direction, et repoussez les nuages avec ! C'est assez stratégique car un ventilateur posé n'importe où coûtera cher, posé dans une zone de contrat avec un village, il rapportera... Un village mort de contamination ne donnera plus d'argent ! Vos ventilateurs se mettrons donc à coûter si vous l'avez mal protégé.

Une petit screenshot:
nuclearage

téléchargement du jeu pour windows:
nuclear-age-win32.rar
linux:
nuclear-age.tar.gz

Extreme Carnage est terminé !

Deux ans après la troisème édition du concours des Novendiales de games-creators.org. Le jeu est enfin totalement terminé.

(rappel du premier billet le concernant : dev xtreme carnage )

  • 11000 lignes dont 2500 d'outils générique C++
  • multiplateforme car totalement standard, avec SDL en seule dépendance

archive windows : xtremecarnage.zip
archive linux : xtremecarnage.tar.bz2

Il existe deux modes de jeu, un mode sur un terrain avec une seed fixe pour faire référence sur les highscores. et un mode libre où on peut régler tous les paramètres du terrain, et le flux des ennemis.

dev 2007-2008 : carnage

Extreme Carnage

  • langage : C++
  • plateforme : standard (linux, windows)
  • jeu : 11477 lignes (projet terminé)


Après un an de développement, mais seulement 1 ou 2 mois en bout à bout, ce jeu touche à sa fin. Il a été motivé par le concours des Novendiales sur le Games Crators Network mais n'a pas pu être fini à temps pour cause d'une entreprise de bien trop grande envergure pour être terminée en 9 jours. Bien qu'après 15 jours le moteur fût assez mature, le jeu était loin d'être terminé. Inspiré à l'origine par Solar Striker, le jeu devait être une extension du genre, mêlé au fameux mod "tower defense" de Warcraft 3. Il ressemble plus à GTA maintenant. Le concept est : vous pilotez une voiture verte et vous devez faire des points en éliminant un grand nombre d'ennemis progressant dans la direction opposée. Votre liberté est grande, les niveaux sont assez large. Tout est généré procéduralement dans ce jeu, gameplay infini ! De la même manière que pour les arbres procéduraux, le générateur de cartes peut se paramétrer, densité d'abres, d'eau... Je suis techniquement très fier de cette réalisation, spécialement pour une structure propre du design, à base de managers, et de structures de données très puissantes. J'ai su garder les complexités algorithmiques très basses, à l'aide d'astuce de partitionnement binaire ou même par grille de traversée. Chaque action (tir, check collision, IA déplacement...) ne consulte que son voisinage, le moteur peut donc gérer de très nombreuses entités sans ralentir. De nombreuses astuces ont été nécessaires, algorithme de Bresenham, freelists et arbres sont de la partie, le tout en restant propre point de vue design. Le jeu utilise la SDL pour l'affichage, et SDL_mixer pour le son. Utilisation de The gimp pour les graphismes.

deux petites captures in-game et un artwork qui fera menu d'accueil :
xt1 xt2 splash

dev 2002-2006 : serhum

Projet S.E.R.Hu.M.

  • langage : C++
  • plateforme : Microsoft Windows
  • compilateur de map : 2198 lignes
  • fonctions communes : 4367 lignes
  • cœur moteur : 7422
  • GUI compilateur : 910

total : 14 897

Le "Projet Secret en Équipement et Recherche Humanitaire et Médicale" dit Projet SERHuM, est le projet de plus grande envergure que j'ai entrepris à ce jour. Je pensais avoir besoin d'entre 2 et 5 ans pour le terminer, mais je me suis aperçu qu'après 4 ans de développement je n'avais qu'atteint ce que je pensais initialement atteindre en 1 an. Il s'agit d'un FPS (doom-like), dont le scénario a été écrit fin 2001. Étant un grand fan du jeu phare de la compagnie Valve Software, Half-Life, j'ai voulu créer un moteur simple, mais du même niveau. En partant de leur éditeur de cartes, à l'époque baptisé Worldcraft, Hammer de nos jours. J'ai étudié le format de sortie (.map) et grâce aux explications partielles de Stefan Hajnoczi, j'ai pu réaliser un compilateur générant un format rapide à charger par mon moteur.

Deux captures de la configuration SERHuM dans hammer :
hammer hammer2

Le compilateur, incorpore les fonctionnalités suivantes :

  • parsing complet et réinterpretation des fichiers map
  • tesselation à partir des volumes convexes (extrapolation des faces manquantes dans le .map)
  • adaptation des coordonnées de textures
  • suppression des faces inutiles (faces entièrement recouvertes par d'autres)
  • partitionnement d'espace bitree (technique "octree", mais binaire et à orientation intelligente)
  • "sérialisation" des formats intermédiaires

Dans une future version hypothétique, le compilateur devait générer un format de fichier de lightmaps à base de lancé de rayon sans réflexion ni radiosité, mais je n'ai jamais eu le temps de m'y coller.

Voici une capture de la sortie du compilateur, redirigée dans une GUI :
compilo

Le moteur du jeu en quelques mots :

  • directx9
  • console transparente a complétion automatique, barre de défilement, historique des commandes...
  • sprites/halos à occlusion rayon
  • enregistreur/lecteur de demos (camera pathtrack)
  • détection des collisions glissantes ellipsoïdale
  • shaders HLSL pour les surfaces d'eau
  • skybox rendue avec terragen
  • textures dessinées avec wally/paint shop pro


Quelques captures du moteur in-game, la console, et le bitree :
capt0 capt1 capt2
capt3 capt4 capt5

dev 2001-2002 : envesp

Envahisseurs de l'espace

  • langage : C
  • plateforme : calculatrice TI-89
  • cœur jeu : 4100 lignes


Mon premier programme en C, il ne comporte pas d'allocation dynamique de mémoire, tout se passe sur la pile. Il est très stable et performant, sur ce processeur Motorola 68000 de 12Mhz, le langage interpreté TI-basic devenait fortement limité pour ce genre d'applications. Merci à tous les amateurs qui nous permettent d'utiliser la bibliothèque C et une API spéciale TI pour cette plateforme.
Niveau fonctionnalités, le jeu gère l'enregistrement de la progression jusqu'à 5 profils de joueurs, plusieurs types d'ennemis, menu d'achats d'armes et munitions, pause, retour menu, niveaux de gris dans le splash-screen, impressions des sprites en XOR, ressources intégrées au binaire.

Voici une compilation de captures :
env

dev 2000-2001 : worms

X-Worms système 1

  • langage : Microsoft Visual Basic (v6)
  • plateforme : Microsoft Windows
  • cœur jeu : 650 lignes


Un jeu au développement court (un mois seulement), qui m'a permis durant cette période d'apprendre à programmer ce langage qu'est le VB. Plusieurs autres projets existent durant cette période, projets tels que Talkative finale (page sur vbfrance) mais ne sont pas des jeux, ou du moins pas terminés.

Voici une capture in-game :
((/public/xworms/xworms-systeme1.PNG

dev 1999-2000 : mario

Super Mario Country

  • langage : Microsoft Quick Basic
  • plateforme : Microsoft DOS
  • cœur jeu : 1248 lignes
  • éditeur sprites : 483 lignes
  • éditeur niveaux : 1262 lignes
  • sélecteur niveau simple : 224 lignes
  • sélecteur niveau complet : 881 lignes

total 4098

Jeu de plateforme en QBasic programmé pendant la période 3ème/2nde
il regroupe quatre programmes, un éditeur de sprites, un éditeur de niveau, un sélecteur de niveau (interface d'édition du .ini) et le jeu lui même.

L'éditeur de sprites

Un petit programme qui ne gérait même pas les actions à la souris dans ces versions antérieures à été écrit pour éditer les fichiers de sprites du jeu mario.
mario editeur sprite

L'éditeur de niveaux

L'éditeur de niveaux est un des programmes dont j'ai été le plus fier pendant longtemps, il permet d'éditer et enregistrer les niveaux pour le jeu mario.
L'accueil en mode texte se présente comme ceci :
mario editeur

Une fois en mode d'édition, il passe en graphique, on peut alors poser les blocs :
mario editeur

Le sélecteur de niveaux

Le programme retenu est une version simplifiée (à base de commande "dir") d'une interface plus complexe basée sur "l'interruption 21h fonctions findfirst/findnext" :
ouvre niveau

L'interface complète étant celle-ci :
open fich

Super Mario Country

Le jeu en lui même utilise un système classique basé sur une boucle principale, avec un système rafistolé pour fixer le taux de rafraîchissement à la "bogomips", un simulateur numérique de Newton (bien qu'à l'époque je n'en connaissais pas le nom) pour les sauts et l'inertie, un système de collisions glissantes simple, une petite IA pour les ennemis, et pleins d'autres détails.
voici quelques captures in-game :
jeu1 jeu2 jeu3