How to run Dwarf Fortress in text mode on the Linux VPS

dwarf-fortress

I installed Dwarf Fortress on my Linux VPS to use with dfterm. It's running Ubuntu 10.04. I'm fairly certain I have all the dependencies:

I've installed:

  • ncurses
  • ncursesw
  • libsdl
  • libsdl-image
  • libgtk
  • libglu
  • libopenal1

I had to turn sound off or it will instantly segfault, and I set the display mode to text. I've made no other changes to the config.

However, even before I go near dfterm, it won't run properly. It just displays a blank screen. What could be causing this? Is their a dependency I missed? Is there something else I should have changed in the config?

EDIT: This has been asked and answered on the Ubuntu StackExchange.

Best Answer

This question was answered on the Ubuntu Stack Exchange. I've coppied Bryce's answer below and marked this answer as CW. If you'd like to award him Rep please head over there and upvote his answer.

I was able to recreate the segfaulting by running df on a regular Ubuntu install with X turned off.

...
(Dwarf_Fortress:5346): Gdk-CRITICAL **: gdk_window_new: assertion `GDK_IS_WINDOW (parent)' failed
Segmentation fault

I suspect the problem is that this game expects to have a functioning GL driver available. And for that you need X running. But a VPS doesn't have X!

Instead, use Xvfb, which is a "fake" virtual X. You'll need to install xvfb and whatever dependencies it wants (probably xorg-server-core and a bunch of other stuff that may not be installed on Ubuntu Server).

Start the fake xserver up like this:

$ Xvfb :1 -screen 0 1024x768x16 &

Then make sure your DISPLAY variable is pointed to it:

$ export DISPLAY=:1
$ ./df

I also needed to disable sound and run in TEXT mode, but it worked this way, with no X running. I hope it works for you.