starcraft.sh

Ce script permet de lancer facilement le jeu StarCraft via l'émulateur wine. Mais il fait plus: il kille le process de StarCraft au bout d'un certain temps (2 heures par défaut) car il arrive souvent que celui-ci "freeze" le serveur X. Si cela arrive, le clavier et la souris ne sont plus accessibles, mais la machine continue de tourner... Rageant ! Si on a accès à cette machine via un réseau, on peut se logger et killer le process, et donc reprendre le contrôle du clavier et de la souris... Mais sinon, reset forcé ! Ce script permet non seulement de lancer StarCraft facilement, mais en plus il évite d'avoir à faire un reset hard. Merci qui ? Merci Bash... ;-)

Bon. Contrairement à mes autres scripts, celui-ci nécéssite un peu de préparation avant de fonctionner. Tout d'abord, si vous voulez pouvoir lancer le jeu sans obligatoirement être root, il vous faudra le programe sudo. Si vous désirez pouvoir le lancer à partir de X, il vous faudra également le programme open (désolé, je n'ai pas trouvé l'url, mais il doit sûrement figurer dans votre distribution sous forme de package, voire être déjà installé par défaut). Ensuite, il faut lire attentivement le StarCraft-HOWTO pour savoir comment faire fonctionner StarCraft via wine.

StarCraft fonctionne ? Bien, passons à la suite. Pour que mon script fonctionne correctement, il faut que la résolution par défaut pour une profondeur de 8 bits soit de 640x480. Pour cela, il va falloir modifier le fichier XF86Config (sur ma Debian, il est dans /etc/X11, pour les autres distributions, je ne sais pas).

Normalement vous avez un (ou plusieurs) groupe(s) de lignes qui ressemble(nt) à ça:

Section "Screen"
   Driver          "Accel"
   Device          "Primary Card"
   Monitor         "Primary Monitor"
   DefaultColorDepth 32
[...]
   SubSection "Display"
      Depth       8
      Modes        "640x480"
   EndSubSection
   SubSection "Display"
      Depth        16
      Modes        "1024x768" "800x600" "640x480"
   EndSubSection
   SubSection "Display"
      Depth        32
      Modes        "1024x768" "800x600" "640x480"
   EndSubSection
EndSection
C'est la sous-section "Display" comportant "Depth 8" qui nous interesse. Il faut que la première valeur de l'option "Modes" soit "640x480". Modifiez donc le fichier en conséquence. Cela aura pour effet de faire démarrer le serveur X par défaut en 640x480, si et seulement si on mentionne l'option 8 bits (-bpp 8). Comme on ne travaille que très rarement en 8 bits (256 couleurs...), ce n'est pas trop gênant...

Maintenant, nous allons configurer sudo pour que n'importe quel user puisse lancer le jeu. Il faut que dans le fichier /etc/sudoers figurent les deux lignes:

Cmnd_Alias STARCRAFT=/usr/local/games/starcraft.sh
...dans la partie "Cmnd alias specification", et
ALL ALL=(root) NOPASSWD: STARCRAFT
...dans la partie "User privilege specification".

On pourrait ne mettre qu'une seule ligne, au lieu de duex, qui serait:

ALL ALL=(root) NOPASSWD: /usr/local/games/starcraft.sh
...mais bon, moi je trouve ça plus propre avec l'alias...Cependant, c'est votre machine, vous faites ce que vous voulez :-)

ATTENTION: le fichier /etc/sudoers s'édite avec une commande bien précise, "visudo", qui vous indique à la fin de l'édition si votre fichier comporte des erreurs de syntaxe. N'éditez en aucun cas ce fichier à la main, à fortiori si vous n'êtes pas habitué à sa syntaxe: sudo ne marcherait plus.

Pour la syntaxe exacte, "man sudoers".

Voilà, on est presque prêts. Pour pouvoir lancer le jeu en ne tapant que la commande "starcraft", il faut définir un alias grâce à la commande:

alias starcraft='sudo /usr/local/games/starcraft.sh'
...où vous remplacerez le chemin /usr/local/games par le chemin dans lequel vous aurez recopié le script starcraft.sh.

Dernière chose à faire, modifier certaines variables dans le script, de manière à correspondre avec votre installation. Je pense surtout aux variables pointant vers des répertoires, afin que le script trouve bien les fichiers dont il a besoin.

Voilà, c'est fini. Ouvrez un xterm, tapez "starcraft" et... Bon jeu !

Pour downloader le fichier, cliquez ici.


Update le 28 janvier 2000 : version 0.9

Changements depuis la version 0.8 :


BUGS

Ce script marche bien (chez moi...) mais il n'est pas sans défaut. Les voici:
Last modified: Mon Jan 31 18:19:52 2000