/hacknet

Networked nethack-like game I worked on for a while, ten years ago. History salvaged from sourceforge's CVS repository. Note that this code is not currently in a working state. Also note that the e-mail address in the documentation doesn't exist any longer.

Primary LanguageC++GNU General Public License v2.0GPL-2.0

HackNet - version 0.0.6

Trevor Powell:  whiterabbit@users.sourceforge.net
-------

HackNet is a multiplayer roguelike game borrowing heavily from the style and
gameplay of Hack and Nethack.  Our goal is to keep the flavour of Hack intact,
despite the gameplay changes required by allowing multiple simultaneous
players.

HackNet is in very early development (as you can see from our version number).
Please see the ChangeLog and the TODO list for project status and playability
information.  See NOTES for project goals and technical guidelines.  See
docs/instructions.txt for playing instructions.


What's New?   (See ChangeLog for details)
-------

New since 0.0.5:  Integrated NetHack 3.4.0 object database, object
  quaff, eat, wear, take-off, etc.  Lots of other neat stuff.

New since 0.0.4:  Combat, Status, Object take/drop/wield, Inventory,
  Defaults to no-groups (since that's my preferred mode), Player stats
  now randomly generated, Status line, and of course, lots of
  infrastructure changes, lots of code cleanups, and even a bug fix
  or two.


Platforms Supported
-------

HackNet has been successfully compiled on:

x86 	- Debian GNU/Linux 2.1, 2.2, 3.0, and current 'unstable'.
x86	- Redhat 7.1 and 7.3 
x86     - Mandrake 8.0
x86 	- FreeBSD 4.2-stable and 4.7-RC
x86 	- Cygwin (under Windows)
Alpha 	- RedHat Linux 7.0
Alpha   - Debian Linux 3.0
PPC 	- Debian GNU/Linux 2.2
Sparc	- Debian GNU/Linux 2.2, 3.0
Sparc   - Sun Solaris (8)

...and more, as they're reported to me!  If you get it to compile on something
that isn't listed here, or get it compiling on one of the currently unworking
platforms, or have a lead on how to get it working, please let me know!  More
importantly, if it fails to compile for you on one of the systems mentioned
above, please tell me immediately!

I can be reached at:   whiterabbit@users.sourceforge.net

Known problems exist for the following platforms:
Sun Solaris:  You need to install the usual GNU utilities for a compile to
  succeed.  In particular, you need GNU make (if you've named it something
  other than just 'make', you need to export MAKE=makename), you need GNU
  ar, and you probably need a number of other utilities.. and they all need
  to be in your PATH.  Once this is done, the configure script should
  autodetect everything else and let you make the sources.
MacOSX:  I haven't managed to get HackNet to compile under OSX, yet..
  but I haven't really given it much of an attempt, since I have very
  limited access to this OS. 



Installing from a source package:
-------

Run ./configure, then type 'make' to make the hacknet server and client.
'make install' should install them somewhere sensible, but it's probably
easier to just run them straight out of the src directory -- that's what
I do!

Installing from CVS sources:
-------

As per standard GNU guidelines, configure scripts and makefiles are NOT
checked into CVS.  The configure script will be generated and executed
automatically when you run ./autogen.sh.

After the configure script has executed, type 'make' to make the hacknet 
server and client.  'make install' should then install them somewhere 
sensible, but it's probably easier to just run them straight out of their
build directories -- that's what I do!



Running HackNet:
--------

As mentioned under 'installing', I recommend running HackNet directly
from the build directories at the moment, so cd into those directories.

On the server machine, run the hacknetd binary.  You should receive
several screenfulls of debugging output as five dungeon levels are
constructed.  If you dislike the 'grouping' behaviour in which
nearby players are forced to take turns simultaneously, you can
disable that with a command-line argument of '--no-groups' when
starting the server.

On the client, run the hacknet.tty binary, passing the server address
as the final command line argument.  Hacknet will use your user
name as your player name, unless you give it a different name with
the -u option.

Example:  To connect to a server on the local computer with the
name 'Foo', use the following command line:

./hacknet.tty -uFoo localhost

If you don't specify a server address, it will default to localhost.
If you don't specify a name, it will assume your login name.


Commands:
--------

In-game, the implemented commands are just like those from NetHack,
with a few additions.  Here is a brief discussion of available
commands:

h,j,k,l:  move west, south, north, and east, respectively.  (VI-keys)
y,u,b,n:  move northwest, northeast, southwest, and southeast, respectively
,:  pick up an object
d:  drop an object
e:  eat an object
q:  quaff  (drink) a potion
w:  wield a weapon
W:  wear a piece of armour
T:  take off a piece of armour
i:  display inventory

Q:  quit game

To attack an enemy, just walk into it.  (The client software automatically
detects that you're walking into a square with an enemy, and sends an 'attack'
command to the server, instead of a 'move' command)

Caveats:
--------

Note that currently the HackNet client is hard-wired to connect to a server
running on port 9274, and the server is hard-wired to use that port.  Is
there any demand to allow it to use an arbitrary port?  I should probably
stop being lazy and make it possible.