Une Introduction à FreeCiv

FreeCiv est un jeu de stratégie multijoueurs en réseau pour les systèmes d'exploitation supportant X-Window (la plupart des Unix, Amiga OS et Windows avec un émulateur X) ou bien GTK. FreeCiv est volontairement cloné sur les jeux commerciaux Civilization et Civilization II, dont il essaie de respecter scrupuleusement les règles.

 

1 Historique

Vous vous demandez certainement pourquoi et comment FreeCiv a débuté.

Peter Joachim Unold et Clauth Leth Gregersen ont toujours été intéressés par la programmation de jeux. Fin 1995, ils voulaient programmer un jeu commercial multijoueurs. Avant de commencer à travailler sur leur jeu, ils voulurent tester quelques-unes de leurs idées en pratique. A la même époque, ils trouvèrent un clone de Civilization appelé OpenCiv. Il avait l'air intéressant. Mais, après quelques heures à essayer de le compiler, ils abandonnèrent. Ainsi naquit l'idée de créer un clone simple de Civilization.

Ils avaient l'intention d'écrire leur jeu commercial en C++. Mais, en ces temps reculés, les compilateurs C++ pour Unix n'étaient pas terribles et le support du langage était incomplet. Ils décidèrent donc de coder en C standard. En plus de vouloir tester en pratique leurs idées, ils voulaient également obtenir quelque chose de jouable sur n'importe quelle station de travail Unix (Peter a été l'auteur original d'un client mud appelé Tintin, très populaire au début des années 90). Ils décidèrent donc de se cantonner au C et aux affreuses Athena widgets classiques. Ce fut le bon choix. Aujourd'hui, FreeCiv serait mort s'il avait été écrit dans un autre langage ou avec une autre librairie de Widgets. Les temps ont changé : Gtk et Qt sont toutes les deux de bonnes solutions aujourd'hui et écrire en C++ serait tout aussi bien.

Comme nous l'avons dit plus haut, le plan original était de faire un Civilization très simple. Ce qui les intéressait surtout était comment le programme allait tourner, comment résoudre des problèmes comme remplacer les fenêtres modales (par exemple, la sélection des technologies) par quelque chose qui ne bloquerait pas le jeu, combien de bande passante pouvait être consommée sans tuer le jeu, etc.

Au bout d'une quinzaine de jours, ils obtinrent quelque chose qui tournait vraiment. Ils étaient assez satisfaits de ce qu'ils avaient construit et décidèrent de travailler encore plus sur le projet. Ils réussirent à convaincre un de leurs amis, Allan Ove Kjeldbjerg, de faire les graphismes et l'encyclopédie.

Le gros problème qui se posa était qu'ils n'avaient fait aucune conception, à l'exception de la structure de liste, étant donné qu'ils ne pensaient pas travailler sur ce projet bien longtemps. Ainsi, ils ne reconçurent que certains aspects et continuèrent, mais quelques problèmes structuraux intrinsèques résident encore.

A un certain moment du cycle de développement, la programmation active s'est transformée en corrections continuelles de bogues et en réponses aux mails incessants de personnes qui essayaient vainement de compiler un programme pour la première fois. Ceci démotiva et lassa nos amis à la longue et le développement stagna.

Il est surprenant de voir l'actuel succès du projet FreeCiv : deux mois après l'abandon par ses créateurs, il semblait que le développement était mort, mais les choses se remirent à tourner d'elles-mêmes. Aujourd'hui, on peut dire que FreeCiv a de la gueule, peu de bogues ni de fonctionnalités manquantes.

2 Installation

FreeCiv s'installe simplement sur votre machine. Des paquetages ont déjà été précompilés pour les principales distributions de Linux (Slackware, Debian, RedHat et Stampede). Si vous "travaillez" sous une autre distribution ou sur un système Unix autre que Linux, l'installation devrait être tout aussi facile, bien que plus lente (en raison d'une recompilation). Elle s'effectue avec la séquence de commandes suivante :

tar -zxf freeciv-1.8.0.tgz

cd freeciv-1.8.0

./configure

make

sudo make install-strip

Dans la plupart des cas, tout devrait bien se passer. Sinon, consultez la FAQ pour voir si votre problème est connu. Une fois que tout est installé, vous pouvez commencer à jouer...

3 Démarrage du jeu

FreeCiv est un jeu basé sur le principe du client/serveur : une machine principale fait tourner un programme (le serveur), qui gère l'ensemble d'une partie. Les différents joueurs humains se connectent sur cette machine par l'intermédiaire d'un programme (le client), lancé sur leur machine personnelle. Pour jouer une partie de FreeCiv, il vous faudra :

- Lancer le serveur. Supposons que notre machine est nommée laureline, il suffit d'appeler le serveur par son nom de programme (civserver) :

laureline:~> civserver

This is the server for freeciv version 1.8.0

You can learn a lot about freeciv at http://www.freeciv.org

1: Now accepting new client connections

Get a list of the available commands with 'h'.

>

- Lancer un ou plusieurs clients et les connecter au serveur. Sur les machines de chacun des joueurs (dont l'une peut aussi être la machine où tourne le serveur), entrez juste le nom du programme client (civclient), par exemple, sur une machine nommée valerian :

valerian:~> civclient

La fenêtre suivante s'affiche alors sur l'écran de chaque joueur :

connection
(cliquez pour agrandir)

Entrez le nom de la machine serveur dans le champ Server, cliquez sur le bouton Connect, ça y est, vous êtes connecté(s) !

- Ajouter un ou plusieurs adversaires informatiques (AI, pour artificial intelligences). Dans la fenêtre du programme serveur, tapez create Attila, create Clovis, etc. pour créer les AI Attila, Clovis, etc.

- Débuter le jeu. Sur le client, tapez la commande s pour débuter la partie... L'ordinateur demande à chaque joueur humain de choisir une civilisation et c'est parti !

4 Premiers pas

4 .1 La fenêtre principale

Une fois la partie commencée, la fenêtre suivante apparaît pour chaque joueur :

Elle se compose de trois parties principales :

principale
(cliquez pour agrandir)

- La carte :

Celle-ci présente une vue aérienne du monde dans lequel le joueur fait évoluer ses unités. Au tout début, rien n'a été exploré et les cases hors de vue de ses unités lui sont cachées. Les cases du terrain peuvent être d'un des 8 types suivants : la plaine, la toundra, le désert (où l'on se déplace facilement), les marécages, la forêt, les collines, les montagnes, la banquise (qui ralentissent la progression) et la mer (que l'on ne peut traverser qu'à l'aide de transports maritimes et aériens). Ces différents types de terrains fournissent aussi différents bonus et malus pour la défense. Certaines cases disposent de ressources spéciales (gibier, or, pierres précieuses, pétrole, phoque, daim, caribou, oasis, chevaux, poisson, charbon). Le terrain peut être aménagé (route, mine, irrigation, voies ferrées).

Vous pouvez utiliser les trois boutons de la souris sur cette carte : le bouton gauche sélectionnée l'unité courante ou bien ouvre le panneau d'information de la ville sélectionnée, celui du centre donne des informations sur l'unité, la ville ou bien la case de terrain cliquée tandis que le droit recentre la carte là où l'on a cliqué.

- Partie de gauche :

De haut en bas, nous trouvons :

- une carte réduite du monde exploré, dans laquelle un cadre blanc déplaçable indique la partie du monde visualisée sur la carte ;

- un cadre indiquant la population de notre empire, l'année en cours, l'or que nous possédons et les taux affectés à la collecte d'impôts, au luxe et à la recherche scientifique de notre civilisation, suivis des icônes correspondantes ;

- un bouton faisant passer au tour suivant, des icônes indiquant l'avancée de nos connaissances, le taux de pollution et le type de gouvernement.

- une icône décrivant l'unité courante, suivie de celles présentes sur la même case, le cas échéant.

- Les messages :

Dans ce champ texte, le serveur nous indique les événements principaux du déroulement du jeu : les attaques qui ont eu lieu, les famines, les révoltes, les nouvelles découvertes. On peut aussi l'utiliser pour dialoguer avec les autres joueurs.

4 .2 Mouvements

Au tout début du jeu, chaque joueur possède un explorer et un ou deux settlers. A l'aide de ces deux unités, il va tenter d'étendre son empire et de dominer ses adversaires... Les settlers servent à construire de nouvelles villes ou des routes ; ils peuvent aussi irriguer ou miner le terrain. Les villes sont les centres de production de votre empire. Elles peuvent améliorer leur infrastructure (par exemple, un granary permet à une ville de grossir plus vite), elles peuvent aussi construire de nouvelles unités : des settlers, des transports et des unités militaires. Les settlers iront construire de nouvelles villes. Les unités militaires vous permettront d'étendre votre empire de façon agressive. Mais, comment déplacer tout ce petit monde ?

A chaque instant, une seule unité est active : c'est celle qui clignote. Pour changer d'unité active, cliquez sur une autre unité ou appuyez sur la touche 5 pour passer à l'unité suivante. On peut déplacer une unité case à case avec les touches de direction ou avec le pavé numérique ou bien en appuyant sur la touche g et en cliquant sur la case où l'on désire qu'elle se rende.

Les settlers ne font pas que se déplacer, ils créent une nouvelle ville avec la touche b, font des routes avec la touche r, irriguent le terrain avec la touche i, plantent des forêts dans la plaine et creusent des mines dans la colline (bref, exploitent le terrain) avec la touche m. Une fois une ville crée et nommée, le settler disparaît. Le panneau de gestion de la ville apparaît.

4 .3 Gestion des villes

Mais qu'indique donc cette fenêtre ? Tout en haut, nous trouvons le nom de la ville, sa population, des petits bonshommes indiquant le moral de ses occupants : le nombre de travailleurs heureux, contents, malheureux et les artistes (les petits Elvis). Si le nombre de malheureux est supérieur au nombre d'heureux, la ville se révoltera. Le reste de la fenêtre se divise en trois parties :

ville
(cliquez pour agrandir)

- Partie gauche :

De haut en bas, on trouve les quantités apportées par les travailleurs de la ville en nourriture, production et commerce. Les nombres entre parenthèses sont les excédents. L'excédent indique la différence entre ce que les habitants consomment et ce qu'ils produisent. Un manque de nourriture produit des famines (le nombre d'habitants diminue alors), un surplus permet à la population de grossir progressivement. Un manque de production va faire perdre à la ville des unités, un excédent permet à la ville de produire de nouvelles unités et constructions. Le commerce permet d'augmenter l'or, la science et le luxe dans la ville en fonction de la politique choisie par le joueur.

L'excédent de nourriture vient s'ajouter au granary ; quand il est plein, la taille de la ville augmente de 1 ; s'il est vide, la taille de la ville diminue de 1. Le taux de pollution dépend de la production industrielle de la ville ; il augmente progressivement à partir du développement de l'industrialisation.

- Partie droite :

Ici sont affichés l'infrastructure ou unité en cours de construction, le nombre d'unités de production stockées et le nombre total nécessaire pour produire l'infrastructure. Si l'on dispose de suffisamment de fonds, on peut finir cette construction/unité en payant le prix restant pour la construire (moins la construction/unité est avancée, plus c'est cher). On peut aussi changer la production avec le bouton Change pour sélectionner de nouvelles unités ou constructions. En dessous se trouve la liste des constructions déjà construites de la ville. Le bouton Sell permet de vendre une infrastructure.

- Partie centrale :

Cette petite carte affiche les alentours de la ville et la disposition des citoyens qui y travaillent. La partie gauche présentait une vue globale de la production de la ville, cette carte présente quant à elle la production de la ville, citoyen par citoyen, sur chaque case. Chaque chiffre représente respectivement les quantités de nourriture, production et commerce et varie en fonction du type de terrain, de ce qui s'y trouve, des améliorations qui y ont été faites (en général, l'irrigation apporte plus de nourriture, les routes plus de commerce, les mines plus de production). On peut modifier la disposition des travailleurs en cliquant sur cette carte.

- Partie du bas :

Ici l'on trouve les unités qui sont rattachées à cette ville et la nourriture qu'elles lui coûtent, les unités présentes dans la ville ainsi que d'autres boutons que nous vous laissons découvrir…

4 .4 Technologie

A chaque moment, les sages de votre empire étudient une technologie qui sera assimilée au bout d'un certain temps. Ces technologies permettront de construire des unités plus puissantes, d'accéder à de nouvelles améliorations pour les villes, de nouveaux gouvernements et de nouvelles technologies. Les unités militaires devenant rapidement obsolètes, il vous faudra suivre la course technologique afin de lutter à armes égales avec vos adversaires.

aide science
(cliquez pour agrandir)

5 Aller plus loin

FreeCiv dispose de nombreuses options tant au niveau du serveur que du client. Pour vous documenter de façon plus approfondie, le site www.freeciv.org est l'endroit idéal. Pour télécharger les fichiers, utilisez ftp.freeciv.org.

5.1 Options du serveur

Une fois le serveur lancé, tapez help pour avoir la liste des commandes possibles. Pour chaque commande, une description succincte est disponible. Tapez aussi explain pour avoir la liste des options. Comme vous le voyez, FreeCiv est très configurable.

5.1.1 Sauver puis restaurer une sauvegarde

Les parties de FreeCiv étant longues, vous allez devoir sauvegarder votre partie. Supposons que vous êtes l'utilisateur linuxmag et que vous voulez sauvegarder votre partie sous le nom bataille, vous tapez save /home/linuxmag/bataille.sav. Pour reprendre plus tard la partie, vous lancerez le serveur avec l'option -f civserver -f ~/bataille.sav. Le répertoire par défaut est celui où vous avez lancé le serveur. Par défaut, votre partie est sauvegardée dans le répertoire courant tous les 10 tours. Le format de sauvegarde est civgameannee.sav où annee est l'année en cours dans le jeu. Par exemple, civgame-1000.sav est une sauvegarde d'un jeu à l'année -1000. Si, par sécurité, vous désirez faire une sauvegarde tous les tours, tapez set saveturns 1.

5.1.2 Personnalisez votre monde

A chaque fois que vous tapez start, un nouveau jeu est créé aléatoirement. Cependant, beaucoup de paramètres sont disponibles pour de nouveaux défis. Le plus important est l'option generator. Tapez explain generator sur le serveur pour voir les différents générateurs. set generator 3 vous permettra de vous développer tranquillement sur votre "le. La taille de votre monde est modifiable par xsize et ysize. set xsize 200 set ysize 100 vous feront jouer sur un monde immense. set xsize 40 et set ysize 25 vous permettront de faire une partie rapide. Une autre option importante est landmass : c'est la proportion de cases de terre par rapport au nombre de cases totales. Un monde avec une landmass de 80 sera probablement constitué d'un seul continent. Un monde avec une landmass de 20 sera constitué d'îles isolées. Les autres options telles mountains, rivers, grass, forests, swamps, deserts et specials déterminent quant à elles la proportion des différents types de terrain sur votre monde.

Les huttes (huts) sont des cadeaux qui peuvent être empoisonnés. C'est à vous de découvrir ! Leur nombre est réglable via l'option huts.

Enfin, le nombre initial de pionniers (settlers), d'explorateurs (explorers) et de pièces d'or (gold) est également modifiable.

5.1.3 Personnalisez les règles de FreeCiv

Des facteurs importants du jeu peuvent aussi être modifiés : augmenter researchspeed rendra la recherche plus difficile ; techlevel est le nombre de connaissances avec lesquelles vous débutez le jeu (si vous en mettez un nombre conséquent, cela permet de bien accélérer le jeu). Un aspect important est que vous pouvez limiter la durée des tours. Par exemple, set timeout 60 limitera la durée d'un tour à 60 secondes, pour des parties blitz. Essayez et vous verrez qu'il est particulièrement stressant de jouer avec un temps limité. Cela ajoute un piquant très appréciable dans les parties avec d'autres joueurs humains.

5.1.- Affrontez-vous au monde

Au bout d'un moment, avec de l'entraînement, vous battrez régulièrement l'ordinateur. Il sera temps de vous confronter aux meilleurs joueurs du réseau. Pour cela, lancez uniquement un client. Dans la fenêtre Connect to FreeCiv Server, cliquez sur Metaserver. Une nouvelle fenêtre s'affiche avec la liste des jeux lancés. Cherchez un jeu en status, pregame. Si aucun jeu en pregame n'est affiché, lancez vous-même un serveur avec l'option --meta. Tapez civserver --meta. Cliquez sur update dans la fenêtre Metaserver list et le nom de votre machine va s'afficher.

Dans les deux cas, vous pouvez maintenant vous connecter. Si vous êtes seul, il faudra attendre que d'autres gens se connectent. Si des gens se connectent, vous n'avez plus qu'à vous mettre d'accord sur les options du jeu. La personne qui a lancé le serveur devra taper start sur son serveur pour que le jeu démarre.

En bas du client se trouve une ligne de saisie. Ce que vous écrivez est généralement diffusé à tout le monde. Pour envoyer un message à une seule personne, tapez le nom de la personne suivi de : avant le message. Par exemple, "vador: je veux cette "le. Vas-t'en :-O".

5.2 Le client

Pour la suite de cet article, supposons que vous êtes connecté à un serveur et que le jeu a démarré.

5.2.1 Les options du client

Dans le menu game du client, sélectionnez le sous-menu option. Une fenêtre set local options apparaît. Une option est sélectionnée si la case est enfoncée. Si Smooth unit moves est sélectionnée, une série de dessins intermédiaires apparaissent entre la case de départ et la case d'arrivée lors d'un déplacement. Si vous êtes en AI mode (quand l'ordinateur contrôle vos unités) et que l'option Popup dialogs in AI Mode est activée, les Popup dialogs s'afficheront quand même. Avec l'option Manual turn in AI Mode, vous gardez le contrôle sur la fin du tour. Le fait de désactiver cette option vous permettra de voir l'ordinateur jouer contre lui-même. Auto center on units centre la fenêtre principale sur l'unité active. Les unités endommagées après un combat peuvent se mettre en sentry (sentinelle) ; la touche s sert à les faire récupérer. Elles se réveillent automatiquement une fois qu'elles ont regagné tous leurs points de vie. Si vous sélectionnez l'option Focus on Awakened Units, l'unité deviendra active. L'option Center map when Popup city centre la carte sur la ville dont une fenêtre d'état vient de s'ouvrir.

5.2.2 Les messages du client

Des événements se produisent durant votre partie : des villes sont capturées ou détruites (City Captured/Destroyed), des unités sont construites (Unit build), des merveilles sont achevées (Wonder Finished), etc. Vous pouvez sélectionner le type d'événements qui vous intéresse et la façon dont vous souhaitez en être informé. Pour cela, sélectionnez dans le menu game le sous-menu Message Options. Une liste de messages est affichée avec, à droite, une série de trois cases. Les messages peuvent être affichés de trois façons différentes :

Output Window :

C'est la fenêtre la plus au bas de votre client. Comme le texte y défile rapidement, elle convient aux messages peu importants.

Message Window :

C'est une fenêtre spécialisée pour les messages. Tous les messages du tour en cours vont s'y ajouter. Si vous désirez revoir un message, elle se trouve dans Games/message. Cette fenêtre convient aux événements importants mais non urgents.

Popup individual Window :

Une fenêtre est spécialement créée pour un événement. Pour centrer à l'endroit de l'événement, cliquez sur goto and close. Choisissez ce type d'affichage quand vous voulez être en mesure de réagir directement à un événement.

A vous de choisir l'affichage qui vous convient. Si vous ne sélectionnez aucune méthode, vous ignorez l'événement. Vous pouvez combiner plusieurs méthodes.

5.2.3 L'aide en ligne

Sur la droite de votre menu client, se trouve un menu help. C'est l'aide en ligne de FreeCiv. Je vous invite à la parcourir pour avoir une vision générale du jeu. Prenez le temps de regarder attentivement les parties Improvements, Units, Technology et Wonders. Dans le client GTK, si vous choisissez de voir les infos sur les Archers, vous verrez apparaître à droite de Requirement : Warrior Code et à droite de Obsolete by: Musketeers. Vous pouvez cliquer sur Warrior code ou sur Musketeers pour avoir respectivement l'aide sur la technologie Warrior code et l'aide sur l'unité Musketeers.

5.2.- D'autres graphismes

Vous disposez également de graphismes différents (tileset) pour votre client. Essayez donc de le lancer avec la commande civclient --tiles classic par exemple !

5.3 FreeCiv sur Internet

Le site officiel de Freeciv est http://www.freeciv.org. FreeCiv est un jeu complexe. Si vous n'avez pas déjà joué à Civilization, il vous faudra un jour ou l'autre lire le FreeCiv Manual : http://www.freeciv.org/manual/manual.html. Un peu plus tard, les tutorials vont seront utiles. Ils ont été écrits par des joueurs expérimentés. Vous trouverez dans la section graphics de nouveaux tilesets dont le très beau trident. Si vous souhaitez vous joindre à des jeux en réseau, le metaserver vous donne la liste des parties en cours.

Si vous êtes développeur dans l'âme, abonnez-vous aux différentes mailing lists. Toute contribution est la bienvenue. Nous espérons que vous éprouverez autant de plaisir à jouer à FreeCiv que nous en avons à le développer : now, give'em hell !

A propos de ce document

Ce document a été écrit avec l'éditeur vi sous NextStep, au format LATEX, puis il a été converti en html par tth. Les écrans de jeu ont été capturés sous Linux par xv et convertis en tiff LZW compressé par le Gimp et enfin chargés dans Word sous Windows pour être envoyés à l'éditeur qui, nous n'en doutons pas, a dû réaliser de non moins infâmes bidouilles pour le transformer au format papier que vous tenez entre vos mains.

Nicolas Brunel

Administateur projet 1.7.2 à 1.8.1


© Copyright 2000 Diamond Editions/Linux magazine France. - Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1or any later version published by the Free Software Foundation; A copy of the license is included in the section entitled "GNU Free Documentation License".