NWN Dedicated Server
== Introduction ==
[http://nwn.bioware.com/ Never Winter Nights] (NWN) is a [[wikipedia:Computer_role-playing_game|RPG]] computer game created by [http://www.bioware.com/ BioWare Corp.]. It was initaly released for Microsoft Windows platform but BioWare has since then also released both servers and clients for both GNU/Linux and Apple Macintoch systems.
NWN also allows you to create your own worlds and maps (called modules) so you can extend the experiance of the game.
I bought NWN since it is one of the few RPG style computer games that has support for GNU/Linux system and run it mostly on my desktop computer. Just out of curiosity I wanted to setup a dedicated NWN server. Here is a description on the steps I performed.
== Preparing ==
=== Prerequisite ===
Computer Pentium II 233MHz with 256 MB, running Ubuntu 5.10 "Breezy Badger".
To use the script [[#nwncmd|nwncmd]] below you also need to install the package '''since''' (it is in the universe repository).
=== Create a daemon user ===
adduser --system nwnd
==== Getting the software ====
Get [http://nwn.bioware.com/downloads/standaloneserver.html NWN Dedicated Server].
[http://nwn.bioware.com/support/patch_standalone_linux.html Latest patch].
== Installing ==
$ mkdir neverwinternights $ cd neverwinternights/ $ unzip -x ../NWNDedicatedServer1.66.zip ... $ tar xvzf linuxdedserver166.tar.gz $ ./fixinstall Checking for required files PASSED: data directory exists PASSED: nwm directory exists PASSED: chitin.key exists PASSED: dialog.tlk exists PASSED: nwserver exists Fixing case data ............................... dmvault . hak . localvault . override . portraits . Checking for problem files Checking for permissions PASSED: nwn.ini is writable PASSED: nwnplayer.ini is writable PASSED: saves is writable PASSED: localvault is writable PASSED: dmvault is writable PASSED: /home/nwnd/neverwinternights is writable You are ready to run Neverwinter Nights. $
Get and install the latest patch even if it says that it is the same version that you just downloaded.
=== Startup script ===
Create the startup script:
#!/bin/bash # startnwserver # This file starts the nwserver as a backgound process. # NWNDIR=/home/nwnd/neverwinternights NWNPIPE=$NWNDIR/nwserver.pipe NWNLOGFILE=$NWNDIR/nwserver.log MODULE="Chapter1" SERVERNAME="Server Name" if [ ! -d "$NWNDIR" ]; then echo "$NWNDIR is not a directory." exit 1 fi cd $NWNDIR if [ ! -p "$NWNPIPE" ]; then echo "$NWNPIPE does not exist."; mkfifo $NWNPIPE fi ./nwserver -servername $SERVERNAME -module "$MODULE" < $NWNPIPE >> $NWNLOGFILE & echo > $NWNPIPE
== Helper applications ==
=== nwncmd ===
This is a simple script that executes a server command by echoing it to the input pipe and then list the end of the log.
#!/bin/bash # nwncmd # # NWNDIR=/home/nwnd/neverwinternights NWNPIPE=$NWNDIR/nwserver.pipe NWNLOGFILE=$NWNDIR/nwserver.log if [ ! -d "$NWNDIR" ]; then echo "$NWNDIR is not a directory." exit 1 fi cd $NWNDIR if [ ! -p "$NWNPIPE" ]; then echo "$NWNPIPE does not exist."; exit 1 fi echo $1 > $NWNPIPE sleep 1 since $NWNLOGFILE