J'ai extrait le moteur de extreme carnage pour réaliser Nuclear Age, j'en ai donc profité pour le développer en tant que bibliothèque à part.
Le projet est sur sourceforge: http://sourceforge.net/projects/carnage-engine/ !
Carnage engine sur sourceforge
Par Lightness1024! le jeudi, février 10 2011, 23:24
9 commentaires aucun rétrolien
Novendiales 6 : Nuclear Age
Par Lightness1024! le vendredi, mars 12 2010, 00:37 - jeux vidéos - Cpp - SDL
4 commentaires aucun rétrolien
- 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é.
téléchargement du jeu pour windows:
nuclear-age-win32.rar
linux:
nuclear-age.tar.gz
ouverture d'une page sourceforge
Par Lightness1024! le mercredi, octobre 21 2009, 00:40
aucun commentaire aucun rétrolien
Voici pour la première fois, je voulais savoir comment ce site fonctionne, une page sourceforge pour le projet "extreme carnage":
https://sourceforge.net/projects/extremecarnage/
C'est propre, il y a beaucoup de services comme subversion, git ou mercurial ce qui peut être un gros plus. Un wiki, des forums. Très bonne plateforme pour celui qui veut toutes ces fonctionnalités sans avoir de serveur ou bien savoir les implanter.
Extreme Carnage est terminé !
Par Lightness1024! le mercredi, août 5 2009, 23:56 - jeux vidéos - 2D - Cpp - jouable - SDL
un commentaire aucun rétrolien
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.
3d studio max
Par Lightness1024! le jeudi, mai 22 2008, 19:18 - modeling - art
3 commentaires aucun rétrolien
I-Tee Team
A l'occasion de LANs party (par exemple la QUAD près de Lyon) avec une équipe d'amis, j'ai réalisé des fonds d'écran pour personnaliser notre équipe, les I-Tee. Une fois de plus, le logiciel de Discreet, 3D Studio Max est venu à la rescousse.

Mod tuning PC
Pour faire mon jacky, j'utilise aussi 3d max pour dessiner les plans de potentiels mods. Ou ce projet d'échangeur à base de plaque à effet Peletier.

Autres
map : egouts
Par Lightness1024! le jeudi, mai 22 2008, 19:04 - mapping - counter strike
aucun commentaire aucun rétrolien
Escape égouts
Egouts est une des rare maps escape que l'on peut trouver sur counter strike. Le concept a été abandonné dans les nouvelles versions officielles. Dans ce mode de jeu, les terroristes doivent rejoindre un point d'échappement, un peu à la manière du V.I.P. pour les contre terroristes. Dans cette carte, tout le monde commence sur un point d'entrée élevé dans les égouts et doit courir jusqu'à la sortie. L'équilibre s'est révélé très correct, et les points de croisement entre T/CT correctement jaugés. Elle manque cruellement de détails, malheureusement une version plus évoluée de cette carte a été perdue dans un formatage. Elle s'inspire de la carte cs_backalley pour le point de sortie des terroristes.
vues in-game :

plan au brouillon :

map : hlreview
Par Lightness1024! le jeudi, mai 22 2008, 18:49 - mapping - counter strike
2 commentaires aucun rétrolien
Bomb/Defuse Half-Life review
HLReview est une carte pour la modification "counter strike". Deux semaines de travail, un résultat que je considère très bon par rapport à ma vision originale, et au dessin original (papier) que j'avais fait. Malheureusement, cela ne suffit pas pour être une bonne carte, elle est très déséquilibrée pour les terroristes qui n'ont qu'une seule possibilité pour atteindre le bombsite, c'est de passer par le goudronnage central. Et vue la taille de la carte, l'AWP est de mise très rapidement pour les contre terroristes qui ont tout leur temps pour s'installer.
artwork de départ et captures in-game :



stge 2007 : MPI
Par Lightness1024! le jeudi, mai 22 2008, 18:00 - stages - MPI - reseau
2 commentaires aucun rétrolien
Recherche expérimentale avec MPI
- langage : C++
- framework : ~5000 lignes
Mon stage de troisième année qui dura 6 mois s'est déroulé au Japon dans la très sympathique ville de Fukuoka, ou je suis retourné pour 4 mois supplémentaires par la suite pour y totaliser 10 mois. J'y étais engagé en tant qu'assistant chercheur (niveau master, les chercheurs devant être en Ph.D). Mon travail était de trouver des solutions (et de les implémenter pour test) pour accélérer MPI. MPI est une bibliothèque portable utilisée pour communiquer entre processus dans un super calculateur. L'architecture parallèle de ces machines demandant parfois que les processus s'échangent des informations, il est préférable que cela se passe le plus vite possible si cela doit être répété au cours de la vie du programme. En collaboration avec l'équipe, j'ai donc entamé le développement d'un framework qui se glisse entre le programme et MPI permettant de brancher les communications collectives sur nos algorithmes, de faire dynamiquement une petite base de données de leur performances et de choisir le meilleur parmi eux pour la suite de l'exécution du programme. Ainsi, s'adaptant facilement à tout type de machine parallèle et programme utilisant MPI. Ce travail s'inscrit dans la suite d'une recherche entamée par le professeur Ahmed Fahraj anciennement à l'université de Floride, travaillant désormais pour IBM. Ce travail m'a valu mon master (II) de recherche à l'Université Bordeaux 1.
dev 2007-2008 : carnage
Par Lightness1024! le jeudi, mai 22 2008, 17:47 - jeux vidéos - Cpp - procedural - SDL
6 commentaires aucun rétrolien
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 :

stge 2006 : météoFX
Par Lightness1024! le jeudi, mai 22 2008, 17:27 - stages - Cpp - procedural - shaders
aucun commentaire aucun rétrolien
Outils shader et effets météorologiques
- langage : C++
- plateforme : windows
- ajout : environ 6000 lignes
Pour mon stage de deuxième année au sein de l'entreprise Lyonnaise Étranges Libellules, j'ai fait l'intégration d'outils regroupant la gestion des effets météorologiques, de transition jour/nuit et de matériaux shaders au sein de l'architecture existante. Le stage a duré 4 mois. Je ne dispose pas du code source de ce travail, bien que tous mes autres projets soient sous licence libre. Les shaders sont programmés en HLSL dans des fichiers .fx définissant leur paramètres. Merci à ATI et nVidia pour leur outils rendermonkey et FX composer. Les nuages sont rendus grâce à un shader normal map + brouillard + animation des coordonnées de textures. Les textures de bases sont générées avec the gimp, effet bruit de perlin et plugins normal map. Toute une interface fait la communication des variables uniformes entre le programme et la carte graphique, il y a un séquenceur d'événement météo avec blending des états, génération aléatoire d'une liste d'états, le tout est sauvegardable.
Les captures que j'ai pu garder sont limitées, mais en voici deux jolies montrant la même scène à des heures différentes :

dem 2006 : arbres
Par Lightness1024! le jeudi, mai 22 2008, 17:19 - Cpp - opengl - procedural
aucun commentaire aucun rétrolien
Arbres procéduraux
- langage : C++
- plateforme : linux
- programme : 1316 lignes
Encore une petite démonstration, en une semaine de développement. Ce fut ma partie d'une démo qui a été présentée au gala de l'ENSEIRB 2005 au nom du club GProg. Les arbres sont entièrement aléatoires, une liste de paramètres permet toutefois d'en diriger les effets (plages de longueur de branches, nombres de fils min/max par nœuds, nombre de récursions...). Vous pourrez trouver l'article wiki complet en rapport avec ce programme sur le site du GCN. La démo anime en temps réel (avec OpenGL) la pousse des arbres (paramètre de pousse entre 0 et 1 à donner à la fonction de rendu).
Quelques images :

dem 2006 : raytrcr
Par Lightness1024! le jeudi, mai 22 2008, 17:05 - démos - Cpp
3 commentaires aucun rétrolien
Raytracer simple
- langage : C++
- plateforme : standard (linux, windows)
- programme : 1147 lignes
Un petit programme expédié en trois jours sur un coup de tête, en 2006 je visualisais bien comment réaliser ce programme alors, pourquoi pas ? De jolis designs pattern (factory), un paradigme objet bien respecté, un lecteur de fichier scène simple, collisions rayon-sphères, réflexion à un niveau, ombrage de Lambert et spéculaire, supersampling. Il faut entre 5 et 15 secondes au programme pour calculer une image. Un article complet sur le wiki du GCN est disponible.
Quelques scènes pour le show :

dev 2002-2006 : serhum
Par Lightness1024! le jeudi, mai 22 2008, 16:07 - jeux vidéos - Cpp - DirectX - FPS - shaders
2 commentaires aucun rétrolien
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 :

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 :

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 :

dev 2001-2002 : envesp
Par Lightness1024! le jeudi, mai 22 2008, 15:26 - jeux vidéos - C - TI-89
2 commentaires aucun rétrolien
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 :
dev 2000-2001 : worms
Par Lightness1024! le jeudi, mai 22 2008, 14:53 - jeux vidéos - visual basic - worms
aucun commentaire aucun rétrolien
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 :

dev 1999-2000 : mario
Par Lightness1024! le jeudi, mai 22 2008, 04:09 - jeux vidéos - plateforme - Qbasic - super mario
5 commentaires aucun rétrolien
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.
![]()
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 :

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

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" :

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

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 :







visites