|
Quake
2 over IPv6
Quake2 now supports
IPv6 on Linux, Windows and FreeBSD (probably other BSDs as well).
Viagenie's patch is now included in Quake2 cvs files.
To compile IPv6, just
edit the Makefile to have HAVE_IPV6=YES. The source code can be
fetch from the anon-CVS described below.
- Supports both IPv4
and IPv6 simultaneously (opens a socket for each AF)
- Local servers are found through IPv6 multicast (used ff12::666
address for the server)
- Server listing on client side includes the IP address
For Linux
IPv6 users
Remove "-DHAVE_SIN6_LEN" from the Makefile. Not tested under USAGI.
For Windows IPv6 users (NT, 2000, XP)
net_udp6.c
and a
patch are available here. They are used to provide the functions
of net_wins.c with added IPv6 support. Quake2 was compiled and tested
using Visual C++ 6.0 and IPv6 Tech Preview. Your compiling environment
must define the preprocessor variable HAVE_IPV6. Make sure you are
using a recent SDK from Microsoft (ex: nov. 2000) in order to use
the up-to-date IPv6 structure definitions.
Available binaries
quake2-ipv6-win32.zip
quake2-ipv6-freebsd45.tgz
Note: To have a fully
functional game, you must have the necessary game files (WADs) from
the original Quake2 CD. See steps below.
Compiling
Quake 2 - IPv6 (tested on FreeBSD 4.5, Linux and
Windows 2000)
# Fetch the latest Quake2
from CVS:
cvs -d :pserver:anonymous@cvs.icculus.org:/cvs/cvsroot
login (anonymous)
cvs -d :pserver:anonymous@cvs.icculus.org:/cvs/cvsroot co
quake2
cd
quake2/
# Edit the Makefile:
HAVE_IPV6=YES.
gmake
# Install game from quake2
gamedata from CD. (see README.r file in the source distribution).
As an example, your install directory should look like
this.
quake2 +set dedicated 1
Runs server listening on both IPv4 and IPv6 sockets
quake2 +set dedicated 1 +set multicast <interface>
IPv6 server joins quake2 multicast group ff12::666 (not
functional on Windows yet.)
quake2 +set dedicated 1 +set ip <IPv6 address> +set multicast
<interface>
IPv6 server only. Listens on <IPv6 address>
Examples of <IPv6 address>:
3ffe:b00:c18::666
(global IPv6 address)
fe80::202:b3ff:fe04:1234%fxp0
(link-local address. scope required)
::
(unspecified, binds on all IPv6 addresses)
quake2 +set dedicated 1 +set ip <IPv4 address>
IPv4 server only. Listens on <IPv4 address>
0.0.0.0 can be used to bind on all
IPv4 addresses
The same commands are used for the client (don't specify +set
dedicated 1). The +set multicast argument is necessary on the client side
to use IPv6 multicast.
Unix
<interface> is the interface name the game will send/receive multicast
traffic on (ex: ed0, le0)
Windows
<interface> is the interface number the game will send/receive
multicast traffic on (ex: 3)
Here is an example on finding what you should use for the interface number:
> ipv6 if
Interface 4 (site 1): 6-over-4 Virtual Interface
uses Neighbor Discovery
link-level address: 192.168.9.30
...
Interface 3 (site 1): Local Area Connection <- This is the
NIC, so we specify interface 3
uses Neighbor Discovery
link-level address: 00-bd-ae-c6-54-c4
preferred address fe80::2bd:aeff:fec6:54c4, infinite/infinite
...
Interface 2 (site 0): Tunnel Pseudo-Interface
does not use Neighbor Discovery
link-level address: 0.0.0.0
...
Interface 1 (site 0): Loopback Pseudo-Interface
does not use Neighbor Discovery
link-level address:
preferred address ::1, infinite/infinite
...
* The
server used for this game is on CA*net3
network. *
Public Quake2-servers
running over IPv6
Quake2.ipv6.viagenie.qc.ca (3ffe:b00:c18:1::b10d) -> Running
at Viagénie
Write to Viagénie
to add your server.
Don't
have IPv6 connectivity yet !!!!
No problem
with that !! Viagénie is providing IPv6 connectivity to any single
host with dual stacks support (IPv4/IPv6) already connected to Internet
IPv4 world. Reach Freenet6 at http://www.freenet6.net
and got IPv6 connectivity in less than 2 minutes.
Typical architecture to play at Quake-IPv6
Comments or questions? Write at
quake-v6@viagenie.qc.ca
|