sur l'optimisation de la saga baldur's gates sous linux.
Cela sous entend que vous avez déjà un jeu fonctionnel.
Premièrement, il est conseillé d'utiliser un deuxième serveur graphique,
exclusivement dédié au jeu.
Je vais essayer de rester le plus clair possible,
sans trop réduire la syntaxe, pour que cela reste accessible à tous.
Pour commencer, on va simplement vérifier que tmpfs est bien présent sur le systeme :
On tape dans une console :
Code : Tout sélectionner
cat /proc/filesystems | grep tmpfs
-Si vous avez un noyau 2.6 ou plus ca devrait donner :
Code : Tout sélectionner
> nodev tmpfs
On tape dans une console :
Code : Tout sélectionner
df
Code : Tout sélectionner
df | grep tmpfs
Code : Tout sélectionner
> tmpfs 1,7G 76K 1,6G 1% /dev/shm
J'ai donc un disque virtuel d'une taille totale de 1,7 Go :
Il est quasiment vide avec un malheureux fichier qui fait 76ko et il me reste 1.6Go d'espace disponible, largement de quoi s'amuser.
Sachant que généralement la mémoire vive devrait être quelque chose comme 200 fois plus rapide qu'un disque.
Le faux geek avec ses deux raptors en raid 0 peut aller courir s'acheter de la ram.
Trois choses importantes à savoir :
- On peux considérer /dev/shm comme étant l’inverse du SWAP qui lui est utilisé comme de la RAM mais stocke les données sur le disque.
- /dev/shm est configuré par défaut pour disposer de la moitié de la ram reconnue par le système.
- Le gros avantage de tmpfs par rapport à ramfs est l’allocation dynamique de la mémoire permettant ainsi de ne pas utiliser cette espace si cela n’est pas nécéssaire.
Si vous ne trouvez pas de point de montage /dev/shm
Il vaut mieux créer manuellement un point de montage tmpfs,
vous pouvez aller jeter un coup d'oeil par la, ca sera juste un peu plus long et il vous faudra adapter la chaine /dev/shm dans ce qui va suivre.
Si on jette un coup d'oeil au répertoire de jeu d'une installation de BGT par ex,
on remarque directement :
3 répertoires temporaires, respectivement : tempsave, cache, temp
On va commencer doucement en ouvrant une console dans le repertoire du jeu, ensuite :
- J'efface les 3 répertoires cache du repertoire du jeu.
Code : Tout sélectionner
rm -rfv tempsave cache temp
Code : Tout sélectionner
mkdir -p /dev/shm/BGII/tempsave /dev/shm/BGII/cache /dev/shm/BGII/temp
Code : Tout sélectionner
ln -s /dev/shm/BGII/tempsave /tempsave
ln -s /dev/shm/BGII/temp /temp
ln -s /dev/shm/BGII/cache /cache
il me reste encore pas mal d'espace disponible.
On peut aussi choisir de mettre en cache les répertoires CD ou les fichiers utilisés le plus fréquement,
repérés à l'aide de la journalisation.
Si on a énormément de ram on peut imaginer pouvoir copier la totalité.
Il vaut mieux éviter de déplacer ce qui suit si on ne veut pas perdre les modifications à chaque reboot :
Le fichier bardur.ini pour la configuration
Le réperoire save qui contient les sauvegardes
Le repertoire characters ou on peut sauver les personnages
Ce qui va suivre depend un peu de la ram que vous avez,
ici j'ai assez pour m'occuper de la totalité du repertoire override.
Toujours dans le répertoire du jeu, j'ouvre ma console :
Je renome mon repertoire override
Code : Tout sélectionner
mv override override_
Code : Tout sélectionner
mkdir -p /dev/shm/BGII/override
ln -s /dev/shm/BGII/override /override
Code : Tout sélectionner
cp -rfv override_/ /dev/shm/BGII/override/
Par contre il ne faut pas oublier qu'au prochain reboot de la machine, le disque virtuel sera vidé.
Il faut donc utiliser votre éditeur de texte favori et créer un petit fichier batch pour automatiser un peu.
On va lui faire charger en mémoire vive ce qu'on a deplacé avant de lancer le jeu.
Code : Tout sélectionner
#! /bin/sh
# Ficher : baldur.sh
# Lancement de Baldur's Gate II
# Crée les repertoires cache
mkdir -p /dev/shm/BGII/tempsave /dev/shm/BGII/cache /dev/shm/BGII/temp
echo "Copie des fichiers dans la mémoire vive, veuillez patienter..."
cp -rf override_/ /dev/shm/BGII/override/ #-rfv pour le debug.
# Lance le jeu
wine BGMain.exe
# Sortie
# Détruit les dossiers temporaires // libére la mémoire
rm -rfv /dev/shm/BGII
Code : Tout sélectionner
chmod +x baldur.sh
Code : Tout sélectionner
./baldur.sh
J'aborderai ici uniquement le matériel nvidia,
je n'ai pas trop envie de me noyer dans la doc d'autres constructeurs sans avoir le matériel pour tester.
Le document suivant est très intéréssant, surtout le chapitre 11 qui touche opengl :
NVIDIA Accelerated Linux Graphics Driver README and Installation Guide
Dans une console, pour lister les modes disponibles pour votre carte :
Code : Tout sélectionner
nvidia-settings --query=fsaa --verbose
C'est de l'hérésie mais sur ma 8800GT,
BGT peut tourner avec l'antialiasing 2x (2xMS) et le filtrage anisotropique 16x
Coté résolution c'est du 1680x1050 vu que le jeu est patché avec le mod widescreen.
Voila le batch final.
Code : Tout sélectionner
#! /bin/sh
# Ficher : baldur.sh
# Lancement de Baldur's Gate II
# Force le driver opengl
export __GL_FSAA_MODE=1
export __GL_DEFAULT_LOG_ANISO=4
# Crée les repertoires cache
mkdir -p /dev/shm/BGII/tempsave /dev/shm/BGII/cache /dev/shm/BGII/temp
echo "Copie des fichiers dans la mémoire vive, veuillez patienter..."
cp -rf override_/ /dev/shm/BGII/override/ #-rfv pour le debug.
# Lance le jeu
# Eventuellement rajouter le préfixe pour playonlinux ici
wine BGMain.exe
# Sortie
# Détruit les dossiers temporaires // libére la mémoire
rm -rf /dev/shm/BGII
on peut overcloker sa carte graphique par le xorg.conf, totalement inutile mais possible.
Il faut rajouter une option Coolbits dans votre /etc/X11/xorg.conf
Section "Device"
Identifier "Card0"
Driver "nvidia"
[...]
Option "Coolbits" "1"
Il suffit ensuite de relancer votre X (ctrl +alt +backspace) Lorsque vous lancerez nvidia-settings (dans les menus ou en console), un nouvel onglet “overclock” devrait apparaître, et vous pourrez augmenter les fréquences de la RAM et du GPU de carte graphique (un outils de test est integré).