BZFlag

Un article de Wikipédia, l'encyclopédie libre.

BZFlag
Icône BZFlag
Photo d'écran
Une capture d'écran de la version 2.

Éditeur
Développeur
Distributeur {{{distributeur}}}
Concepteur Chris Schoneman, Tim Riker

Début du projet 1992
Date de sortie {{{date}}}
Licence LGPL
Version 2.0.10
Genre Jeu de tir subjectif
Mode de jeu Jeu en réseau
Plate-forme Tout ordinateur
Média Téléchargement (~ 100 Mo)
Langue {{{langue}}}
Contrôle Clavier et/ou souris

Évaluation
Moteur

BZFlag (abréviation de Battle Zone capture the Flag) est un jeu vidéo multijoueur et libre de tanks en 3D (OpenGL) du genre FPS.

Il est développé par une soixantaine de volontaires dont principalement Tim Riker. Le projet, les codes source ainsi que les suivi des bugs sont hébergés sur SourceForge. Il a été écrit originellement pour Irix, mais fonctionne maintenant sous Windows, Linux, Mac OS X, BSD, Solaris et d'autres plateformes. Il est distribué sous la licence LGPL, une licence un peu différente de la GPL sous laquelle il a longtemps été distribué. C'est donc un logiciel libre.

BZFlag est de plus en plus populaire. C'est le troisième jeu sur SourceForge à atteindre 1 million de téléchargements (le 11 décembre 2004). Il y a une moyenne de 250 serveurs actifs en tout temps (d'après: [1]), ainsi que plus de 4500 joueurs enregistrés sur le forum officiel. BZFlag a été sélectionné comme projet du mois anglais pour avril 2004.

Sommaire

[modifier] Vue d'ensemble

Lors d'une partie de BZFlag, chaque joueur conduit un tank vu à la première personne, dans un monde (appelé une “carte” ou “map” en anglais). Le but du jeu est de détruire les tanks adverses. Les tanks peuvent sauter, tirer et bouger dans toutes les directions. Ils peuvent également ramasser des drapeaux (voir plus bas).

Le joueur dispose d'une vue à la première personne (voir devant le tank), d'un radar et d'une console permettant de chatter (discuter) entre joueurs.

Chaque tank appartient à une équipe (“team” en anglais), et chaque équipe se distingue par sa couleur: rouge, vert, bleu, mauve et enfin jaune pour les tanks de l'équipe filou. Filou est utilisé pour les combats sans équipe, c'est-à-dire qu'ils peuvent se tuer entre-eux. Et pour finir, une équipe d'observateurs qui restent à part (couleur blanche).

Il y a trois types de jeu différents. Les types sont spécifiques aux cartes.

  • Le type le plus simple est appelé “match à mort” (“free for all” ou “FFA” en anglais), l'objectif est alors de tuer tous les tanks ennemis.
  • Un deuxième type de jeu bien apprécié est appelé “capture du drapeau” (“capture-the-flag” ou “CTF” en anglais), l'objectif est de capturer le drapeau de l'équipe adverse (ou d'une des équipes adverses), et de le ramener à sa propre base, tout en empêchant les ennemis de capturer le drapeau de sa propre équipe. Les tanks d'une équipe dont le drapeau est mené sur une base énemies sont détruits.
  • Enfin le dernier type (le moins joué) est appelé “Chasse au lapin” (“Rabbit chase” en anglais). L'objectif pour tous les tanks (appelés des chasseurs ou “hunters” en anglais) est de tuer le tank désigné (appelé évidemment le lapin, “rabbit” en anglais) et qui apparaît en blanc pour l'occasion. Le tank qui détruit le "lapin" le devient à son tour. Généralement le but est de rester "lapin" le plus longtemps possible.

[modifier] Histoire du développement

Historique des versions
1.5a 27 mars 1997
1.6 17 juillet 1997
1.7c 13 juin 1999
1.7d9 31 janvier 2000
1.7e0 25 janvier 2001
1.7e1 9 mars 2001
1.7e2 4 avril 2001
1.7e4 27 novembre 2001
1.7e6 18 juin 2002
1.7g0 7 décembre 2002
1.7g2 17 juin 2003
1.10.0 8 décembre 2003
1.10.2 22 décembre 2003
1.10.4 24 janvier 2004
1.10.5 25 avril 2004
1.10.6 14 mai 2004
1.10.8 5 octobre 2004
2.0 17 janvier 2005
2.0.2 18 mars 2005
2.0.4 30 septembre 2005
2.0.6 6 avril 2006
2.0.8 13 mai 2006
2.0.10 2007
Une capture de jour, mais pourtant sombre, provenant de la version 1.7d9 (un message destiné à tous les joueurs est en train d'être tapé). A noter la console "affichage tête haute" non transparente et la police qui contrastent avec les versions plus récentes.
Une capture de jour, mais pourtant sombre, provenant de la version 1.7d9 (un message destiné à tous les joueurs est en train d'être tapé). A noter la console "affichage tête haute" non transparente et la police qui contrastent avec les versions plus récentes.

Initialement, BZFlag était un projet écrit en C par Chris Schoneman en 1992. Il reprenait un jeu très populaire et innovant: Battlezone. Son nom de baptême était “bz”, et malgré les ressemblances avec le jeu du même nom de Chris Fouts, les deux jeux étaient complètement indépendants l'un de l'autre.

Au début, BZFlag était simplement un Shoot them up sans autre spécificité. C'est après que Schoneman et ses amis (qui l'ont aidé à développer BZFlag depuis le début) ne commencent à s'ennuyer de ce concept, qu'ils inventèrent le mode de capture du drapeau. Celui-ci demandait plus de stratégie et d'habileté et donc redonna de l'intérêt au jeu.

C'est en 1993 que BZFlag a été rendu publique pour la première fois. Cela fut un tournant dans l'histoire du jeu, car un tricheur édita le code source de son client afin de se donner des nouveaux pouvoirs que la version officielle ne permettait pas. Cela a inspiré Schoneman et ses amis. Ils ont rajouté des supers drapeaux qui modifiaient les performances du tank. Les quatre premiers drapeaux étaient la Vélocité, la Rotation rapide, le Tir accéléré et l'Accélérateur d'oscillations qui permet aux tanks de traverser les objets. Il n'y avait alors qu'un seul drapeau de chaque type sur la carte, et tous les drapeaux portaient une marque distinctive pour qu'on puisse les reconnaître. Les mauvais et d'autres bons drapeaux ont ensuite été rajoutés, et les marques distinctives ont été supprimées. Cette idée des drapeaux reste aujourd'hui une part principale du jeu.

En 1997, la version 1.7d apporta une nouvelle fonctionnalité révolutionnaire: une liste des serveurs publiques intégrée au jeu. Car jusque-là, les joueurs devaient soit utiliser leurs propres serveurs, soit connaître l'adresse d'autres serveurs, soit lire une liste publiée et maintenue par des tiers. Mais dorénavant cette nouvelle liste (hébergée sur le site officiel de BZFlag) permettait à n'importe qui de jouer sur les serveurs qui décidaient de devenir public. Beaucoup disent que sans cette fonctionnalité BZFlag ne serait jamais devenu aussi populaire qu'aujourd'hui.

Finalement Schoneman a réécrit BZFlag en C++ pour la troisième compétition IndiZone des SGI, et gagna dans la catégorie des Moteur 3D. Ensuite le projet fut donné à Tim Riker qui actuellement le maintient et le fait évoluer depuis la version 1.7e.

[modifier] Les divisions

Il existe beaucoup de divisions dans BZFlag. Les divisions sont lancées et gérées par un ou plusieurs administrateurs qui sont eux-mêmes des joueurs. Les matchs de division durent 30 minutes et ne sont que d'un seul type de partie - avec une exception. Par exemple, la première division fut la division Ducati. Dans cette division, les joueurs s'affrontaient sur des cartes générées aléatoirement, rouges contre verts, avec deux munitions, des ricochets mais pas de saut. Ceci avait pour but tester les véritables compétences des joueurs. Voici une autre division du même genre : la division Pillbox. Cette division diffère de la Ducati dans quelques règles : pas de ricochet et trois munitions au lieu de deux, de plus la carte est fixe. L'exception est la récente division Open où les équipes choisissent une carte pour chaque match et la durée de la partie.

[modifier] Les cartes

Un serveur BZFlag peut utiliser une carte créée au hasard par le système, ou une carte personnalisée créée par l'utilisateur en utilisant un langage proche du langage de script. Bien que l'écriture des cartes soit assez simple dans ce langage, la plupart des utilisateurs se servent de l'éditeur officiel, BZEdit, qui permet d'automatiser le processus. BZEdit est distribué avec le jeu et est disponible sur le site BZFlag de sourceforge.

Pour simplifier, il existe trois objets basics :

Les deux premiers sont configurables. Les téléporteurs sont rectangulaires et bordés de jaune. Tous les téléporteurs ne téléportent pas : suivant le bon vouloir du cartographe.

Avant la versions 2.0, les cartes étaient basiques et n'incluaient que ces trois objets. La version 2.0 a introduit bon nombre de nouveaux éléments complexes comme par exemple l'eau. Un petit programme a été créé pour BZFlag afin de convertir les fichiers 3D Studio Max en cartes BZFlag.

La syntaxe pour la description de chaque élément commence par le nom de l'élément, puis suivent ses spécifications, et elle termine par le mot "end". L'exemple suivant place un cube de dimension 1 000 unités (un tank mesure environ une unité) aux coordonnées 50x 50y, il n'est pas tourné vers le Nord :

box #start (name the element)
position -50 -50 0 #the position
size 10 10 10 #the size of it, in units (x, y, z)
rotation 0 #degrees of rotation
end #all elements end with this keyword

Voici la liste des objets :

Objet Description
world Définit des variables d'environnement
options Détermine les options de ligne de commande pour BZFS
waterLevel Définit le niveau de l'eau
dynamicColor Définit certaines modifications de couleurs
textureMatrix Personalise la texture du monde
physics Personalise
define Crée une liste d'objets modifiables par groupe
group Modifies un objet de groupe
mesh Crée un objet 3D
meshbox Crée un cube
arc Crée un arc
cone Crée un cône
sphere Crée une sphère
tetra Crée un tétraèdre
box Crée un pavé
pyramid Crée une pyramide
link Ajoute un lien à un téléporteur
base Crée un base (pour les parties de type capture du drapeau)
weapon Crée une arme "naturelle" (le monde tire à un certain moment)
zone Définie une "zone" dans laquelle une partition du monde à ses propres variables
teleporter Crée un téléporteur

Les commentaires commencent par "#". Les multiples espaces sont ignorées.

[modifier] Les drapeaux

BZFlag possède deux types de drapeau : les drapeaux d'équipe et les supers drapeaux. Un drapeau d'équipe est placé dans un monde uniquement pour les parties "capture du drapeau" ; il représente l'équipe dont il a la couleur. Les supers drapeaux peuvent être placés dans un monde pour les parties "match à mort", "capture du drapeau", ou "chasse au lapin" ; mais ils sont controllés par l'administrateur du serveur. La quantité, le type, et la position de supers drapeaux peuvent être controllés par l'administrateur. Les supers drapeaux se déclinent en deux catégories : les bons et les mauvais, ils affectent les tanks positivement ou négativement suivant cette catégorie. Un mauvais drapeau peut baisser un attribut du tank : son viseur, sa vitesse ; tandis qu'un bon drapeau effectue l'opposé et aide le tank. Un bon super drapeau est généralement porté jusqu'à l'explosion du tank, ou jusqu'à ce que le joueur choisisse de s'en séparer. Un mauvais super drapeau est généralement automatiquement jeté après un certain temps (souvent quelques secondes), ou grace à l'utilisation d'un drapeau "remède", ou après un certain nombre de "victoires" (explosion de tanks adverses), ou encore jusqu'à ce que le tank explose lui-même. Ces règles sont gérées par l'administrateur. Tous les supers drapeaux ont un code d'une ou deux lettres qui est affiché à coté du nom du joueur sur le tableau des scores. Ci-dessous la liste des supers drapeaux avec leur code et description.

[modifier] Les bons drapeaux

  • Agility (A) - Agilité : accélération rapide, et rotation plus rapide, Mais pas autant qu'avec les drapeaux spécifiques a ces deux éffets.
  • Burrow (BU) - Enterré : le tank est à moitié enterré, il se déplace lentement, il peut tirer et ne peut pas être touché par des attques normales, mais il peut être écrasé. C'est une cible facile pour les joueurs disposants de SW ou GM
  • Cloaking (CL) - Invisibilité: rend le tank invisible pour les autres joueurs et invincible face au laser
  • Genocide (G) - Génocide : l'explosion d'un tank détruit toute son équipe
  • Guided Missile (GM) - Missile guidé : les munitions tirées sont des missiles guidés qui poursuivent l'adversaire sur lequel ils sont verrouillés ; un missile guidé ne peut pas être verrouillé sur un tank portant un drapeau Furtif. Il est possible de vérouiller/changer de cible après avoir tiré.
  • Identify (ID) - Identification : identifie ce qu'est le plus proche drapeau
  • Invisible Bullet (IB) - Boulet invisible: les boulets tirés sont invisibles sur les radars des autres tanks
  • Jumping (J) - Saut : le tank peut sauter (si le serveur ne l'interdit pas explicitement)
  • Laser (L) - Laser : tire un rayon laser (le laser ne peut pas tuer un tank portant le drapeau Invisibilité). Le temps de rechargement est long, la portée et la vitesse infinie.
  • Machine Gun (MG) - Mitrailleuse : tire les munitions avec un court temps de recharge, mais la portée est réduite
  • Masquerade (MQ) - Imposture : le tank est déguisé en tank de la même équipe, mais ses tirs sont vus normalements par l'autre équipe.
  • Narrow (N) - Plat : Le tank est plat, et donc très dur a toucher de face, mais d'une taille normale dans l'autre sens.
  • Oscillation Overthruster (OO) - Accélérateur d'oscillations : le tank peut traverser les constructions (le nom de ce drapeau est une référence au film The Adventures of Buckaroo Banzai Across the Eighth Dimension)
  • Phantom Zone (PZ) - Zone fantôme : le tank peut "zoné" et "dézoné" en traversant un téléporteur ; quand un tank est "zoné", l'herbe devient viollette, il peut traverser les constructions, il ne plus tirer ni être touché (à part face à un autre tank "zoné"), il peut néanmoins être détruit par un Super boulet et une Onde de choc ; le drapeau ne peut pas être jeté tant que le tank est "zoné"
  • Quick Turn (QT) - Rotation rapide : tourne plus rapidement
  • Rapid Fire (RF) - Tir accéléré : les boulets sont rapide mais ont une portée réduite
  • Ricochet (R) - Ricochet : autorise les tirs à ricocher sur les constructions et les murs si non permis par les réglages serveurs
  • Seer (SE) - Prophète : le tank peut voir normalement les tanks portant un drapeau Invisibilité ou Furtif ou Imposture ainsi que les Boulets invisibles
  • Shield (SH) - Bouclier : le tank peut être touché une fois sans exploser
  • Shockwave (SW) - Onde de choc : les boulets sont remplacés par une onde de choc de forme sphérique.
  • Super Bullet (SB) - Super boulet : les Supers boulets traversent les constructions
  • Stealth (ST) - Furtif : le tank n'est plus visible sur les radars des autres tanks
  • Steamroller (SR) - Rouleau compresseur: le tank peut exploser d'autres tanks en les touchant
  • Thief (TH) - Voleur : le tank est petit et rapide, il peut voler les drapeaux des autres en leur tirant dessus avec un rayon (ce drapeau est jeté dès qu'un autre est volé)
  • Tiny (T) - Mince : le tank est plus petit en longueur et largeur
  • Useless (US) - Inutile : sans effet
  • High Speed (HS) - Vitesse élevée : la vitesse du tank est plus élevée
  • Wings (WG) - Ailes : le tank peut voler, en re-sautant lorsqu'il est en l'air (le nombre de sauts dépends du serveur). De plus, il peut changer de direction et bouger lorsqu'il est en l'air.

[modifier] Les mauvais drapeaux

  • Blindness (B) - Cécité : impossible de voir le monde extérieur, mais le radar fonctionne encore
  • Bouncy (BY) - Rebondissant : le tank saute de façon incontrolable
  • Colorblindness (CB) - Daltonisme : le tank ne diférencie pas les couleurs des autres (tous sont des filous)
  • Forward Only (FO) - En avant : le tank ne peut qu'avancer
  • Jamming (JM) - Brouillage : le radar est obstrué
  • Left Turn Only (LT) - A gauche : le tank ne peut tourner qu'à gauche
  • Momentum (M) - Inertie : le tank conserve longtemps son élan, et accélère lentement
  • No Jumping (NJ) - A terre : le tank ne peut pas sauter
  • Obesity (O) - Obésité : le tank est gros et facile à toucher
  • Right Turn Only (RT) - A droite: le tank ne peut tourner qu'à droite
  • Reverse Only (RO) - En arrière : le tank ne peut que reculer
  • Reverse Controls (RC) - Contrôles inversés : le tank a des contrôles inversés par rapport à d'habitude (avant pour arrière, ...)
  • Trigger-Happy (TR) - Tir fou : le tank tire n'importe quand
  • Wide-Angle View (WA) - Grand angle : le tank à une vision avec grand angle

[modifier] Les drapeaux d'équipe

  • Équipe rouge
  • Équipe verte
  • Équipe bleue
  • Équipe violette
  • Équipe jaune - Les filous (équipe jaune) n'ont ni base, ni drapeau d'équipe. Ils ne peuvent donc pas réaliser de capture. Néanmoins, ils peuvent ramasser un drapeau d'équipe et le déplacer, ce qui est fait la plupart du temps pour aider une autre équipe. Lorsqu'un serveur accepte les drapeaux antidotes, permettant d'enlever les mauvais drapeaux de votre tank, ces drapeaux sont vus comme des drapeaux d'équipe jaune.

[modifier] Les commandes de jeu

Les serveurs acceptent de nombreuses commandes dans BZFlag. Selon les serveurs, les joueurs peuvent en utiliser certaines ou non. Les commandes ci-dessous sont des commandes générales, et certains serveurs en proposent d'autres.

  • register - La commande /register est obsolète, elle permettait de s'enregistrer sur un serveur pour bénéficier de l'attribut enregistré (+) sur le serveur. Désormais, les serveurs l'interdisent tous, et préferent utiliser le Global Login.
  • msg - Arguments: /msg <joueur> <message>. Envoie un message privé a un joueur.
  • vote - Arguments: /vote <vote>. Vote pour un Poll (vote). Les arguments sont: En cas d'accord, oui yes 1, en cas de refus, non no 0. Notez qu'il y a d'autres possibilités, car il est possible d'utiliser les oui/non de beaucoup de langues..
  • ban - Commande réservée aux admins pour bannir un joueur sans recourir à un vote.
  • kick - Commande réservée aux admins pour éjecter un joueur sans recourir à un vote.
  • kill - Commande réservée aux admins pour tuer un joueur sans recourir à un vote.
  • say - Arguments: /say <message>. Permet l'affichage d'un message par "SERVER". Réservé généralement aux joueurs enregistrés (+) sur certains serveur, et sinon aux admins.

Les administrateurs disposent aussi généralement de commandes pour modifier les variables d'environnement, c'est à dire, des paramètres comme la portée, la vitesse, le nombre, de tirs. Les administrateurs peuvent aussi donner un drapeau spécifique a une personne.

[modifier] Poll, les votes

La commande /poll permet de soumettre un vote à tout les joueurs du serveur pour différentes raisons. On y réponds en utilsant la commande /vote Les paramètres sont énnoncés dans cet ordre : /poll <type> <joueur, si néccéssaire> <commentaire>

Les types peuvent être :

  • flagreset - Demande aux joueurs s'ils veulent éffectuer un "flagreset", c'est à dire une remise à Zero des drapeaux (les réinitialiser aux réglages initiales du serveur)
  • ban - Lance un vote pour bannir un joueur pour une durée dépendant du serveur
  • kick - Lance un vote pour éjecter un joueur du serveur
  • kill - Lance un vote pour tuer un joueur

A noter que les administrateurs peuvent Annuler les votes.

[modifier] Liens externes

commons:Accueil

Wikimedia Commons propose des documents multimédia libres sur BZFlag.