I got sick of putting up with Windows just to play Diablo 3, so I looked into running it on Debian with Wine. It works great, and surprisingly doesn't have lag spikes like it did under Windows 7.The process below is probably the same or even simpler for Ubuntu users.
Firstly, you will need the latest version of Wine with the "AcceptEx fix" patchset by Erich Hoover. As of Wine 1.5.6 the patches submitted by Erich were commited. If you have any experience with running games with Wine, you'll know that certain games run better with particular versions of Wine. On a distribution like Debian, which has a package management system, that means you'll need multiple, parallel installations of Wine for each game. This can be confusing and messy so it's best to either compile Wine yourself in separate directories or have PlayOnLinux do it for you.
PlayOnLinux can be installed on Debian by
apt-get install playonlinux
PlayOnLinux has a large database of scripts and workthroughs for a large number of Windows games and applications. This means, you simply ask PlayOnLinux to install a game and it will hopefully do everything for you. This includes downloading the correct version of Wine and other addons, etc, etc. I won't describe how to use PlayOnLinux because it has a friendly GUI that you can work your way around.
I found that PlayOnLinux started the Launcher and downloaded Diablo 3 without any problems. However, as soon as it was ready to play it did nothing when I clicked on "Play". So I manually started it from the command line interface, and found the following error being repeated indefinitely:
Direct3D9 is not available without OpenGL.
It turns out this problem is caused by the lack of 32bit opengl libraries (I'm running 64bit debian), more specifically nvidia-glx-ia32 package. I tried numerous times to install this via the package management, but it failed miserably during the post configuration step. I got errors like:
Package libgl1-nvidia-glx-ia32 is not configured yet
After a bit of tinkering, I remembered I had installed cuda drivers for GPU number crunching. Maybe there was a clash? Anyway, I removed all debian nvidia packages, disabled X server on start up and restarted Debian. Using the Nvidia drivers from nvidia.com, I installed the latest modules and libraries. Interestingly, the installer does ask you if you want to install 32bit compatibility libraries. Make sure you click Yes 🙂
After getting X server up, Diablo 3 worked fine. After killing Diablo I can safely say it runs beautifully- no crashes or glitches.