Okay, I’m going to post a thorough description of what’s going on here in the hope that it will help all of you who are having issues on Linux. There are two ways of running the game on Linux, and you can do either.
- Run the binary provided by GHG (by installing the .deb or by extracting the .tar.gz).
- Extract the source code of the game and run it with node-webkit directly
- (Technically there is a third way - you can extract the source and open it directly in a browser, but I’ll leave that for now…)
Both #1 and #2 require some fiddling to get everything to work. Let’s try #1 first. What GHG have done is “compiled” the game using an (old) 32-bit version of a program called node-webkit. Trying to run ./gamedevtycoon and getting errors are usually because of one of two issues (or both if you’re unlucky). On 32-bit systems, I’d probably recommend #1, but on 64-bit systems, #2 is probably preferable.
First, if you are running a 64-bit OS (run “uname -m” and look for x86_64), you will need 32-bit versions of several libraries. From what I’ve been able to see, GDT requires libnss, libgconf and libudev, so go ahead and install the 32-bit versions of any of those that you get errors for when trying to run the game. “apt-cache search” is your friend.
Second, node-webkit uses an outdated version of libudev, namely libudev.so.0. When the game starts, it looks for that file in the system’s library folder. Because it was compiled on a 32-bit system, it will look for the 32-bit version, so it will be looking in /usr/lib on 32-bit systems and /usr/lib32 on 64-bit systems. Thing is, libudev.so.0 will probably not be there, so we need to trick the system into using libudev.so.1 which works just as well. The ugly workaround is to run ln -s /usr/lib/libudev.so.1 /usr/lib/libudev.so.0
as root. Note that if you are on a 64-bit system, you need to use /usr/lib32 instead! If you’ve done all of this, the game should work correctly.
The “better” way of running GDT on 64-bit systems is to do as I’ve outlined in this blog post. First, you need to extract the game from the .tar.gz to some directory. Now, run unzip gamedevtycoon
, and you should end up with lots of additional files in the current directory - those are the source files for the game. Now, we want to run it using an up-to-date, native (that is, 64-bit on a 64-bit system) version of node-webkit.
Download the appropriate binary from here and put the files inside in the same folder as GDT, overwriting any conflicting files. That is not the end of it, however, because node-webkit still has some dependencies. The advantage is that we can now use the native versions of them! So, make sure you have nss, gconf and udev installed before we continue. The last step now is to get over node-webkit’s old libudev version, so we have to do the same hack as we did for #1: ln -s /usr/lib/libudev.so.1 /usr/lib/libudev.so.0
. Since we’re now using a 64-bit binary on 64-bit systems, use /usr/lib/ on all systems, not /usr/lib32/!
So, finally, to run the game with approach #2, go into the directory where all the files now are and run nw ./
, and everything should be working perfectly.
Hope this is helpful to someone, and enjoy the game!