Rechercher

   
   

Communauté

   Votre compte
Sondages
Calendrier
Top 10
Derniers Sondages
Sujets
Annuaire de players
Proposer une News
Recommande ce Site
Proposer vos Docs
Envoyer Créations
Rechercher un site
Rajouter son site
Faq
downloads
   

Mods Quake 3

   RA3
Alliance CTF
Aqualung
Beryllium
Capture the GunZ
Demonic Soccer
Head Hunter
Monsoon
Painkeep Arena Q3
Prisoner of War
Q3F
Weapons Factory
Team Arena
   

Mods Quake 2

   Action Quake2
AllStar 2
Arena CTF
Chaos DM et CTF
Classic CTF
Evolution CTF
Expert2 CTF
Gloom
L-Fire CTF
LaserMine CTF
Lithium
Loki s Minions
Manuel Q2
NiQ CTF
Painrift
Paintball 2
Q2 CTF
Rocket Arena 2
Thunderwalker
UNR ClanWar CTF
Urban CTF
Urban DM
Viking
Weapons Factory
   

Mods Quake 1

   Additif QuakeWorld
AllStar CTF
CTF
CTF+
Expert CTF
Midnight CTF
Painkeep
Rocket Arena
TeamFortress
Threewave CTF
Thunderwalker 5
Thunderwalker
Xeno CTF
   


Rechercher_un_site_de_jeuxHome_pageRechercher_un_site_de_jeuxAnnuaire_de_JoueursRecommandez_ce_Site_à_un_amiVotre_compteRechercher_sur_le_siteSoumettre_une_NewsFaire_une_demande_d'hébergement
 Traduire en Français  English version  Deutsche Version


Bonjour à tous ! Si vous êtes là c'est que vous souhaitez créer votre propre mod ou dll  ou voir comment ils sont fait.

Cette rubrique va s'étoffer et grandir. Vous pouvez même contribuer à son amélioration, en y apportant vos propres informations sous la forme d'un tutorial. Nous serons heureux, s'il est de qualité et d'un intérêt certain, de le publier.

Retrouvez certain de ces article dans le magazine PC TEAM.

Créations :

Cette rubrique du site vous permettra de publier vos créations et d'en faire profiter le plus grand nombre !

Quake 2, tout comme Quake, possède son propre langage de programmation :  le Quake 2 Dll. Cette Dll (direct link library) se trouve stockée sous le nom GameX86.dll dans le répertoire BaseQ2 et, tout comme le progs.dat de Quake, elle s’avère aisément modifiable. Un simple compilateur C, les codes sources d’Id Software et hop, c’est parti ! La plus grosse différence entre Quake 1 et Quake 2 vient de ce que celui-ci se rapproche beaucoup plus du C/C++ standard (pointeurs, structures, et toutes ces petites réjouissances …).

Contrairement au langage de programmation de Quake2, le QuakeC ne faisait que reprendre quelques fonctions de Quake 1, aussi appelées “ built-in functions ”. On pourrait donc dire que le QuakeC n’était en vérité, qu’un simple langage de macros ! Le Quake2 DLL, quant à lui, dispose de toute la puissance du C/C++, un des langages les plus proches du langage machine. Voici quelques atouts de la programmation en Quake2 DLL, qui faisaient défaut jusque là, pour le QuakeC :

  • Accès aux fichiers sur le disque : lecture/écriture de données depuis Quake2.

  • Utilisation des formules de transformations de vecteurs du moteur de Quake2.

  • Utilisation de toutes les possibilités du langage C : tableaux, pointeurs, API, chaînes de caractères, structures…

  • Un code vraiment plus structuré que celui obtenu avec le QuakeC.

  • Le lien entre le programmeur et le moteur est beaucoup plus grand. Les possibilités de modifications du jeu se montrent presque totales (d’où la “ Totale Conversion ” !).

  • Le choix des types de variables à utiliser a augmenté de manière notable (environ 3 pour le QuakeC, aux alentours de 10 pour le Quake2 DLL).

  • Le programmeur peut adapter tout son savoir du C/C++ au profit de Quake2.

Pour les novices, il sera facile d’apprendre à programmer en Quake2 DLL à l’aide de nombreux ouvrages expliquant la programmation en C vendus en librairie, puisque le Quake2 DLL s’apparente à ce standard.
- De nombreux sites dédiés à la programmation pour Quake2 se trouvent maintenant disponibles sur le net, mais malheureusement, en anglais…).
Finalement, le Quake2 DLL se révèle vraiment plus puissant que le QuakeC, et permet au programmeur des possibilités de créations beaucoup plus vastes que son aîné…


Installation de “ l’environnement de programmation ”

Comme il est indiqué plus haut, trois éléments s’avèrent nécessaires pour commencer à personnaliser son Quake 2 :

  • Les codes sources d’Id Software.

  • Un compilateur C.

  • Un makefile.

Avant toute chose, vous devez posséder au minimum la version 3.14 de Quake 2. Vous ne l’avez pas ? Jetez un coup d’œil sur les anciens CD-Roms de PC-Team ou installez une version encore plus récente ( 3.17 …). 
Allez faire un petit tour sur le CD Pro de PC-Team de ce mois-ci et installez donc les codes sources de Quake 2 dans le dossier c:\q2source .Cette archive contient aussi le fameux makefile.  Ensuite, dé-zippez dans un sous-répertoire c:\lcc le compilateur Lcc, entièrement gratuit contrairement aux géants du marché. Lancez le setup.exe de Lcc afin de configurer les différents chemins d’accès. C’est fait ? Parfait !


Première modification

Lcc contient un éditeur de fichiers .c bien pratique . Il met en couleurs les remarques, les mots clés et permet donc une visualisation plus facile.
On lance cet éditeur par le fichier wedit.exe présent dans le dossier c:\lcc\bin. A cet égard, nous vous conseillons de créer un raccourci vers ce programme, car nous nous en servirons à chaque modification.
Ouvrez le fichier c:\Q2source\p_weapon.c depuis WEDIT. On va y ajouter une petite modification : notre but sera d’afficher un texte chaque fois que l’on tire au blaster.
A la ligne 747 se trouve le début de la fonction Weapon_Blaster_Fire (les numéros de lignes se voient indiqués près du titre du programme). Après la déclaration de la variable damage  (la première ligne), insérez cette ligne-ci : 

CODE

gi.dprintf (“ Quake 2 Dlls : essai\n ”) ;

Vous devez donc obtenir comme résultat final :

CODE

void Weapon_Blaster_Fire (edict_t *ent)

{

                int damage;

                gi.dprintf (" Quake 2 Dlls : essai\n ") ;

                if (deathmatch->value)

……

Sauvez p_weapon.c et lancez le fichier go.bat qui réside dans c:\Q2source. La compilation s’exécute et prend fin moins d’une minute plus tard. Si une erreur a été trouvée, recommencez ! L’erreur typique consiste à oublier de glisser cette instruction APRES la déclaration de la (ou des variables). Le fichier gameX86.dll a été créé. Copiez celui-ci dans le dossier BaseQ2 de votre dossier Quake2. Démarrez Quake 2 et  tirez au blaster. Si l’ordinateur affiche la phrase que vous avez tapée, tout fonctionne. S’il n’y a aucune modification ou que Quake 2 crashe, c’est que vous avez fait une erreur…

Bien entendu, vous pouvez écrire une autre phrase ou essayer d’insérer cette ligne autre part (dans Weapon_Shotgun_fire par exemple) . Cette fonction se trouve quelques dizaines de lignes plus loin.


Conclusion de notre première partie...

Bon, à n’en pas douter, nous ne donnons pas dans le supra-méga-génial, mais c’est un bon début, non ? D’ailleurs, dès le prochain numéro, le rythme se montrera sensiblement plus élevé et des résultats tangibles arriveront rapidement. Nous vous conseillons aussi d’acheter un bon bouquin sur le C (cela suffit largement pour Quake 2). Par ailleurs, le CD de ce mois contient neuf tutoriaux de programmation C (en anglais évidemment). Et pour les fins connaisseurs du Quake C, rien ne vaut la recherche en trifouillant dans chaque fichier… Bon courage !


Makefile ? ? ?

Un makefile désigne un tout petit fichier (au environ de 5k) qui indique au compilateur C ce qu’il doit faire, la liste des fichiers à compiler et de quelle façon les compiler (pour obtenir comme résultat une Dll, un exécutable).

LES PRINCIPAUX FICHIERS DE QUAKE 2

Voici un listing “ général ” des différents fichiers sources de Quake2

FICHIERS

LEURS FONCTIONS

g_ai.c

Intelligence artificielle

g_cmds.c

Commandes de la console

g_combat.c

Détection des combats et gestion des dommages

g_items.c

Items (armes, armures, trousses, etc.)

g_local.h

Un des fichiers les plus importants du jeu : contient tous les prototypes des fonctions du jeu, les structures et déclarations de variables, nécessaires à tous les autres fichiers sources du jeu. Nous en parlerons plus en détail dans le prochain article.

g_main.c

Point d’entrée de Quake2 (paradoxalement, pas fort utile à éditer !)

g_monster.c

Fonctions générales des monstres

g_move.c

Déplacement des monstres

g_phys.c

Gestion de la physique (gravité…)

g_save.c

Sauvegarde des parties

g_spawn.c

Initialisation du jeu

g_svcmds.c

Commandes de la console accessibles uniquement depuis la console

g_turret.c

Fonctions relatives aux tourelles (celle de Jail1)

g_weapon.c

Fonctions relatives aux armes. Ces fonctions sont appelées via p_weapon.c

game.h

Contient certaines variables globales ainsi que certaines structures

m_?????.c

Code source des différents monstres

m_?????.h

Contient la définition des frames des monstres

p_client.c

Fonctions relatives à l'architecture client-serveur(du côté du client).

p_hud.c

Fonctions relatives aux intermissions (vidéo,...)

p_trail.c

Liste circulaire des dernières "cordonnées" du joueur (utilisée par les monstres, pour la poursuite de celui-ci)

p_view.c

Fonctions relatives à la vue(la vue devient bleue avec un Quad Damage par exemple)

p_weapon.c

Fonctions relatives des armes

q_shared.c

Fonctions provenant du moteur 3D du jeu (angles, vecteurs, ...)

q_shared.h

Contient des structures, des prototypes de fonctions, des variables globale ... Provient du moteur 3D du jeu

Editoriaux

   Review
Ecrire une Review
Interview
Ecrire un Interview
Sections Spéciales
   

Networks

   
Games Expert
Halflifexpert
FarCry-expert
Strategie-expert
   

Tutoriaux

   Maps
Q2dll
Q3dll
Skins et textures
Éditer les MD2
Wally
Bots
   

Bibles

   Bible quake 1 2 3
Bible WFA
Bible Q3F
Howto fr linux Quake
   

Créations

   Maps   

Pub

      



© 1996-2000 Games-Expert. Contact us for more information on Games-Expert
All trademarks are properties of their respective owners