Martin Krischik $WikiTagline
 

Yes it is possible to play World of Warcraft on Linux using either Wine or Cedega. Cedega is a commercial version of Wine which supports DirectX while the standart Wine you download with your distribution only supports OpenGL. World of Warcraft support both technologies and tends to be faster using OpenGL.

Installation

This is an advanced installation guide to improve performance and gaming experience. There is no need to explain the basics - googleing for "World of Warcracft Linux" will give you dozens of sites which cover basic installation. Just one hint: copying an existing windows installation to a Linux partition is easiest (use: cp --archive). It's also a good alternative when the update manager won't cooperate (then use: cp --archive --update to save time after updates). On a dual boot system is also possible to use a shared vFAT32 partition so you only have to install the game once.

Seperate X Server

I suggest you use an separate X server to play World of Warcraft. With a separate X Server you have more control over the screen resolution used and you can use a light weight window manager. This is especially important when your graphic card is not powerful enough to render in your standard screen resolution.

Also: No program will be able to interrupt your game with a pop up windows. A constant source of grieve in Windows were Virus-Scanner, Firewalls, Skype and whatever else constantly trys to gain your attention. It's not so bad with Linux - but with a separate X-Server this problem is gone for good.

Add something along the following lines to your /etc/X11xorg.conf file:

 Section "Screen"
  Identifier	"WoW[0]"
  DefaultDepth	24
  SubSection "Display"
    Depth	24
    Virtual	1920 1200
    Modes	"1920x1200"
    #Modes	"1920x1200" "1440x900" "1368x855" "1280x800" "1152x720"
  EndSubSection
  Device	"Device[0]"
  Monitor	"Monitor[0]"
 EndSection

 Section "ServerLayout"
  Identifier	"WoW[all]"
  Screen	"WoW[0]"
  InputDevice	"Keyboard[0]"	"CoreKeyboard"
  InputDevice	"Mouse[1]"	"CorePointer"
  Option	"Clone"		"off"
  Option	"Xinerama"	"off"
  Option	"StandbyTime"	"10"
  Option	"SuspendTime"	"20"
  Option	"OffTime"	"30"
 EndSection

Only add the screen resolution you are planning to play. Since I upgraded to a new N7600GS I can play at the native resolution of my TFT but with the old FX-5700 it was necessary to reduce screen resolution to something along 1280x800.

Starting X

I use the following Script to start another X Server on display 2 on virtual terminal 9 (usually activated with Ctrl-Alt-F9). The Script used Z-Shell - so make sure that Z-Shell is installed on your system. As window manager I use Window-Maker. Window-Maker is quite light weight and comes with some very un-intrusive - blending into the background themes. I also instruct Window-Maker to use a separate configuration just for World of Warcraft.

 #!/bin/zsh

 typeset -x WINEPREFIX="${HOME}/.wine";
 typeset -x GNUSTEP_USER_ROOT="${WINEPREFIX}/WoW"
 typeset -x DISPLAY=":2";

 setopt No_BG_Nice;
 setopt X_Trace;

 zmodload zsh/net/tcp

 if test ! -d "${GNUSTEP_USER_ROOT}"; then
    mkdir --parents "${GNUSTEP_USER_ROOT}"
 fi;

 X -layout "WoW[all]" -br -dpi 96 ${DISPLAY} vt9 &

 typeset -i X_Server=${!}

 until ztcp localhost 6002; do
    sleep 1
 done
 ztcp -c "${REPLY}" 

 #
 #  --no-dock     do not show the application Dock
 #  --no-clip     do not show the workspace Clip
 #

 /usr/bin/windowmaker

 kill -s SIGTERM ${X_Server}

 #  vim: set nowrap tabstop=8 shiftwidth=4 softtabstop=4 expandtab :
 #  vim: set textwidth=0 filetype=zsh foldmethod=marker nospell :

Starting the Game

While you could just start the Game with wine 'G:\World of Warcraft\WoW.exe' having a special start-up script has a few advantages. My Script does the following tweaks:

-opengl
Switches on OpenGL no matter what the configuration files says. That is helpful when you share installation with Windows - which is possible!
-windowed
Displays the Game inside a DesktopWindow. Without that switch World of Warcraft will try to change the screen resolution whatever is said in the configuration file - and that can go horrible wrong leaving you with a black screen and the intro music (This can happen on Windows as well).
renice
With renice I raise World of Warcraft priority above most of the other applications on the system. Still I suggest to shut E-Mail clients and other applications which do background tasks.
 #!/bin/zsh

 typeset -x WINEPREFIX="${HOME}/.wine";
 typeset -x DISPLAY=":2";

 setopt No_BG_Nice;
 setopt X_Trace;

 # -windowed     use window for output
 # -d3d          use d3d as output
 # -opengl       use opengl as output

 wine 'G:\World of Warcraft\WoW.exe' -opengl -windowed 1&>/dev/null &

 typeset -i World_of_Warcraft=${!}

 #
 #   You need the following command in your sudoers file for this
 #   to work:
 #
 #   User_Alias  ADMIN = <<userid>>
 #   Cmnd_Alias  RENICE = /usr/bin/renice
 #   ADMIN       ALL = (root) NOPASSWD:  RENICE

 sudo /usr/bin/renice -5 -p ${World_of_Warcraft}

 sleep 3

 sudo /usr/bin/renice -5 -p $(ps --no-heading --format="%p" -C WoW.exe)
 sudo /usr/bin/renice -5 -p $(ps --no-heading --format="%p" -C wineserver)

 #  vim: set nowrap tabstop=8 shiftwidth=4 softtabstop=4 expandtab :
 #  vim: set textwidth=0 filetype=zsh foldmethod=marker nospell :

The Script expect World of Warcraft to be installed on the Windows-Drive G:.

One click start up

Two start Scripts are nice for debugging - but for day to day use a little to much hassle. The following Script will do both steps in one go and shut down the X Server when you leave the Game. Do note the nifty use of the ztcp package to check when the X server is ready to receive requests.

 #!/bin/zsh

 typeset -x WINEPREFIX="${HOME}/.wine";
 typeset -x GNUSTEP_USER_ROOT="${WINEPREFIX}/WoW"
 typeset -x DISPLAY=":2";

 setopt No_BG_Nice;
 setopt X_Trace;

 zmodload zsh/net/tcp

 if test ! -d "${GNUSTEP_USER_ROOT}"; then
    mkdir --parents "${GNUSTEP_USER_ROOT}"
 fi;

 X -layout "WoW[all]" -br -dpi 96 ${DISPLAY} vt9 &

 typeset -i X_Server=${!}

 until ztcp localhost 6002; do
    sleep 1
 done
 ztcp -c "${REPLY}"

 #
 #  --no-dock     do not show the application Dock
 #  --no-clip     do not show the workspace Clip
 #

 /usr/bin/windowmaker &

 typeset -i Window_Manager=${!}

 sleep 3

 # -windowed     use window for output
 # -d3d          use d3d as output
 # -opengl       use opengl as output

 wine 'G:\World of Warcraft\WoW.exe' -opengl -windowed 1&>/dev/null &

 typeset -i World_of_Warcraft=${!}

 #
 #   You need the follwing command in your sudoers file for this
 #   to work:
 #
 #   User_Alias  ADMIN = <<userid>>
 #   Cmnd_Alias  RENICE = /usr/bin/renice
 #   ADMIN       ALL = (root) NOPASSWD:  RENICE

 sudo /usr/bin/renice -5 -p ${World_of_Warcraft}

 sleep 3

 sudo /usr/bin/renice -5 -p $(ps --no-heading --format="%p" -C WoW.exe)
 sudo /usr/bin/renice -5 -p $(ps --no-heading --format="%p" -C wineserver)

 wait ${World_of_Warcraft}

 kill -s SIGTERM ${Window_Manager}
 kill -s SIGTERM ${X_Server}

 #  vim: set nowrap tabstop=8 shiftwidth=4 softtabstop=4 expandtab :
 #  vim: set textwidth=0 filetype=zsh foldmethod=marker nospell :

Hints.

Mouse does not work.

If you cant proper drag and drop and click with your mouse then you might want to start the Game in windowed mode - as all the scripts above do. Don't use the in game maximise option, leave it to the window manager maximize the window. Window-Manager for example can be set up to maximise the window so that title-bar and resize bar disappear as well.

Use a shared vFAT32 partition.

If you use a dual boot computer with both Windows and Linux I suggest you use a shared vFAT32 partition - I have not noticed a performance decrease neither against NTFS (on Windows) nor against xfs (on Linux) - all three file systems I have tested and they work fine.

Install the Game under Windows - which is less troublesome and mount the game partition on Linux using the following mount options:

 /dev/disk/by-label/WOW /media/WoW vfat noauto,gid=users,dmask=0002,fmask=1113,utf8,shortname=winnt 0 0

In fact I suggest you mount all you Dos-Drives using shortname=winnt - the default shortname=lower is old fashioned and should not be used on current (i.E WinNT or better) systems.

Since the scripts set -opengl -windowed sharing the configuration file (WTF/Config.wtf) won't be a problem either.