This is an old revision of the document!


OpenArena over IPv6

2010-04-18-wikipedia-oa-rocket.jpg

OpenArena is a free and open source first-person shooter (FPS) computer game.

OpenArena's game play attempts to emulate Quake III Arena: score frags to win the game using a balanced set of weapons each designed for different situations. Guns include a chaingun, rocket launcher, shotgun, and railgun. The Quake III style of play is very fast and requires skill to be played successfully online.

OpenArena is available from the default repositories of a number of Linux distributions, including Debian, Fedora, Gentoo, Mandriva, and Ubuntu. It is also in development for the Maemo mobile operating system.

OpenArena 0.8.8 and IPv6

OpenArena version 0.8.8-20 significantly worsened its behaviour with regard to IPv6.
Until this is fixed, it seems to be no longer possible to have a seamless IPv4+IPv6 experience!

I recommend staying on version 0.8.5, or using version 18 of the 0.8.8 engine.

IPv6 Master Server

A master server for OpenArena keeps a list of publicly available game servers, along with some information about them (current player count, game mode, map). When the user opens OA's Multiplayer menu, the game connects to one of the master servers to fetch a list of currently running game servers and their state to show in the game list.

There is now an OpenArena master server with both IPv4 and IPv6 connectivity.

  • IPv6+IPv4 clients see both IPv4 and IPv6 servers;
  • IPv4-only clients see IPv4 servers only;
  • IPv6-only clients see IPv6 servers only.

The address is dpmaster.version6.ru.

The primary purpose of this dpmaster server is to prove that IPv6 support can be enabled on a public dpmaster without any disruption of service to IPv4-only gamers. It probably will be turned off if/when dpmaster.deathmask.net adds IPv6 support.

To try it out, enter

\sv_master2 "dpmaster.version6.ru"

in the console, then go to the Multiplayer menu, select “Servers: Internet (2)” at the top of the screen and click “Refresh” at the bottom.

If you run an IPv6-capable OpenArena dedicated server, you can use this master server in addition to dpmaster.deathmask.net, in this case add to your server config:

sv_master2 "dpmaster.version6.ru"

and your server will register on both dpmasters automatically.

For testing purposes the following hostnames are also available:

  • dpmaster6.version6.ru - IPv6 address only;
  • dpmaster4.version6.ru - IPv4 address only.

Links

IPv6 Patches to dpmaster

This (dirty hack) is required only if you intend to run your own IPv6-capable OpenArena Master Server.

diff -ru dpmaster-2.2/src//games.c dpmaster-2.2-rm2/src//games.c
--- dpmaster-2.2/src//games.c	2011-07-23 12:29:48.000000000 +0600
+++ dpmaster-2.2-rm2/src//games.c	2011-08-11 15:44:14.329620304 +0600
@@ -544,7 +544,7 @@
 			GAMENAME_Q3A,
 			2,
 			{
-				"protocols=66,67,68",
+				"protocols=66,67,68,71",
 				"heartbeat=QuakeArena-1",
 			},
 		},
diff -ru dpmaster-2.2/src/messages.c dpmaster-2.2-rm3/src/messages.c
--- dpmaster-2.2/src/messages.c	2011-07-23 12:29:48.000000000 +0600
+++ dpmaster-2.2-rm3/src/messages.c	2012-03-03 04:19:07.414389824 +0600
@@ -41,6 +41,7 @@
 // Maximum size of a reponse packet
 #define MAX_PACKET_SIZE_OUT 1400
 
+#define GAMENAME_Q3A "Quake3Arena"
 
 // Types of messages (with samples):
 
@@ -377,7 +378,8 @@
 		if (space)
 			*space = '\0';
 		msg_ptr = msg_ptr + strlen (gamename);
-		
+    if (strcmp (gamename, "openarena") == 0) strncpy (gamename, GAMENAME_Q3A, sizeof (GAMENAME_Q3A));
+    if (strcmp (gamename, "QuakeArena-1") == 0) strncpy (gamename, GAMENAME_Q3A, sizeof (GAMENAME_Q3A));
 		game_options = Game_GetOptions (gamename);
 
 		// Read the protocol number

Links


en/oa.1340603008.txt · Last modified: 2012-06-25 05:43 UTC by rm