BZFlag

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher
BZFlag
Icône BZFlag
Une capture d'écran de la version 2.
Une capture d'écran de la version 2.

Concepteur Chris Schoneman, Tim Riker

Début du projet 1992
Licence GNU 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)
Contrôle Clavier et/ou souris

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.net. 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 GNU LGPL, une licence un peu différente de la GNU 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.net à 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.

Vue d'ensemble[modifier | modifier le code]

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.

Histoire du développement[modifier | modifier le code]

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é). À 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 de ce 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.

Les divisions[modifier | modifier le code]

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.

Les cartes[modifier | modifier le code]

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.net.

Pour simplifier, il existe trois objets basiques :

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 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 Personnalise la texture du monde
physics Personnalise
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.

Les drapeaux[modifier | modifier le code]

BZFlag possède deux types de drapeau : les drapeaux d'équipe et les super 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 super drapeaux peuvent être placés dans un monde pour les parties "match à mort", "capture du drapeau", ou "chasse au lapin" ; mais ils sont contrôlés par l'administrateur du serveur. La quantité, le type, et la position de super drapeaux peuvent être contrôlés par l'administrateur. Les super 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 grâce à 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 super drapeaux ont un code d'une ou deux lettres qui est affiché à côté du nom du joueur sur le tableau des scores. Ci-dessous la liste des super drapeaux avec leur code et description.

Les bons drapeaux[modifier | modifier le code]

  • Agility (A) - Agilité : accélération rapide, et rotation plus rapide, Mais pas autant qu'avec les drapeaux spécifiques à ces deux effets.
  • Burrow (BU) - Enterré : le tank est à moitié enterré, il se déplace lentement, il peut tirer et ne peut pas être touché par des attaques normales, mais il peut être écrasé. C'est une cible facile pour les joueurs disposant 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 verrouiller/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 normalement 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 violette, 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 Super 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épend du serveur). De plus, il peut changer de direction et bouger lorsqu'il est en l'air.

Dans une carte spéciale de la dernière version de bzflag, Apocalypse de Planet Mofo, six nouveaux drapeaux sont présents :

  • Killer Rabbit of Caerbannog (KR) : quand un tir touche un joueur ennemi, celui meurt en créant une onde de choc autour de lui
  • Ass Cannon (AC) : le tank tire à la fois par devant et par derrière, à noter que si un tir émis par l'arrière ricoche contre un mur et touche le joueur ayant tiré, celui-ci ne meurt pas
  • Death Blossom (DB) : le tank émets 12 tirs à la fois, selon les heures d'une horloge, de courte portée. Seul le tire à midi peut tuer le joueur en ricochant
  • Triple Point (TR) : chaque mort ennemie rapporte trois points
  • Fifty Point (FP) : chaque mort ennemie rapporte cinquante points (un seul tir disponible)
  • Triple Barrel (TB) : le tank tire trois boulets à 11h, 12h et 13h simultanément

Les mauvais drapeaux[modifier | modifier le code]

  • 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 incontrôlable
  • Colorblindness (CB) - Daltonisme : le tank ne diffé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) - À 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) - À 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 dès que les munitions le permettent, sans contrôle
  • Wide-Angle View (WA) - Grand angle : le tank à une vision avec grand angle

Les drapeaux d'équipe[modifier | modifier le code]

  • É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.

Les commandes de jeu[modifier | modifier le code]

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.

Poll, les votes[modifier | modifier le code]

La commande /poll permet de soumettre un vote à tous les joueurs du serveur pour différentes raisons. On y répond en utilisant la commande /vote Les paramètres sont énoncés dans cet ordre : /poll <type> <joueur, si nécessaire> <commentaire>

Les types peuvent être :

  • flagreset - Demande aux joueurs s'ils veulent effectuer un "flagreset", c'est-à-dire une remise à Zéro des drapeaux (les réinitialiser aux réglages initiaux 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

À noter que les administrateurs peuvent Annuler les votes.

Liens externes[modifier | modifier le code]

Sur les autres projets Wikimedia :