Difference between revisions of "Development:Network:Testing"

From VsWiki
Jump to: navigation, search
(Starting: added note about when to change username)
(adding instructions on using Sourceforge account server)
Line 2: Line 2:
 
Every should compile without a hitch.  If it does not, post a question on the forum about the specific error.
 
Every should compile without a hitch.  If it does not, post a question on the forum about the specific error.
 
==Linux==
 
==Linux==
The '''vegaserver''' and '''accountserver''' already compile by default in Linux.
+
The regular Makefile can compile '''vegaserver''' and '''accountserver''' in Linux.
 
==Windows==
 
==Windows==
 
There should be two projects for vegaserver and accountserver.  They ''should'' compile without any changes.
 
There should be two projects for vegaserver and accountserver.  They ''should'' compile without any changes.
Line 36: Line 36:
 
* If you connect with another client and a different username, the second client should target the first client, however the first client will not autotarget, so hit "t" to target the new unit.
 
* If you connect with another client and a different username, the second client should target the first client, however the first client will not autotarget, so hit "t" to target the new unit.
 
* Fly around in both users and fire around and so on.  However beware: As soon as one client dies from a collision, the server will crash due to a NULL pointer dereference.  This is being looked at, but until it is fixed, don't die by crashing into someone.
 
* Fly around in both users and fire around and so on.  However beware: As soon as one client dies from a collision, the server will crash due to a NULL pointer dereference.  This is being looked at, but until it is fixed, don't die by crashing into someone.
 +
 +
=Playing with the Sourceforge Account Server=
 +
This should work in most situations and is easier than running your own accountserver.
 +
 +
*Register an account with [http://vegastrike.sourceforge.net/cgi-bin/register.py register.py] using your forums login. See [http://vegastrike.sourceforge.net/forums/viewtopic.php?t=7355 this thread] for more info.
 +
 +
*Compile vegaserver.
 +
 +
*Edit the "accountsrv" entry in vegaserver.config so it reads:
 +
:<pre><var name="accountsrv" value="http://vegastrike.sourceforge.net/cgi-bin/accountserver.py"/></pre>
 +
:(Unless you want to run under a 'mod' by appending ?modname to the URL, in which case you have to register under one as well by doing the same to [http://vegastrike.sourceforge.net/cgi-bin/register.py register.py]. Currently, I think 'test' is the only mod.)
 +
 +
*You can use part or all of the config it generates for you, but make sure you get the account and network settings. Make sure that server_ip is set to "127.0.0.1" (localhost) if you want to play on your own vegaserver. If a second player wants to connect to your machine and it is configured as a server (with an external IP, or behind a NAT set up with port forwarding), have them put your IP address in this field.
 +
 +
*Start vegaserver on the host machine. It should connect to the accountserver running on sourceforge.net, although it's possible to compile and run your own (I haven't tried this successfully yet.)
 +
 +
*Start up your clients like so:
 +
:<pre>vegastrike --net</pre>
 +
If all goes well, that should work!
 +
 +
=See also=
 +
*[http://vegastrike.sourceforge.net/forums/viewtopic.php?t=5225 Networking code testing and development thread]

Revision as of 20:00, 11 July 2007

Compilation

Every should compile without a hitch. If it does not, post a question on the forum about the specific error.

Linux

The regular Makefile can compile vegaserver and accountserver in Linux.

Windows

There should be two projects for vegaserver and accountserver. They should compile without any changes.

I also recommend that you build vegastrike using "Debug GLUT" or "Release GLUT", since you will get a console. Otherwise you only get a stderr/out.txt for one of the clients.

Setup

  • You will want to move the vegastrike.config.netplayer file over the vegastrike.config file to get some extra settings.
  • Now, open up Setup.
    • You should be able to choose between players (test1, test2, and test3).
    • You should also get an option for screen resolution labeled "Skinny". This will make a skinny windows so that you can fit two on top of each other. At 1600x1200 you can fit two instances of VS, as well as three terminals and a setup screen if you tile it right.

Starting

Linux

I highly recommend running linux programs in seperate GNU screen windows. If you have never used screen before, it's basically a detachable session that holds multiple "terminals". You can switch between them with C-a " and you can make new ones with C-a c -- you can detach with C-a d and reattach with screen -r... Very handy for running multiple instances of Vegastrike in my opinion, but don't use it if you are not comfortable as it can be confusing.

  • You will want to run everything from the data4.x directory.
  • First, start up the accountserver: ../vegastrike/accountserver
  • Now, start up vegaserver: ../vegastrike/vegaserver
  • Clients should be able to connect. I have only tested localhost, but remote connections should be able to connect as well with some config file changes.
    • To connect, run vegastrike with the --net option: ../vegastrike/vegastrike --net
    • To run more than one client, you must choose a different user, so select test2 for example, run vegastrike, then select test1 and run vegastrike again in a different terminal.
      • Note that as soon as the window appears, the config file has finished being read, so you can change settings like the username without any side effects.

Windows

  • Double-click accountserver.exe
  • Double-click vegaserver.exe
  • Now, click on either debug_net_client.bat or release_net_client.bat, depending on whether you built in "Debug GLUT" or "Release GLUT".
  • To open more than one, switch users and try again.
    • Note that as soon as the window appears, you can change settings like the username in setup for the second client without any side effects on the loading one.
  • You should get a console for each client as well as the servers.

Loading and Playing

  • When the window opens up, the network will start connecting when the screen reads "Vegastrike Loading..."
  • You will very possibly encounter the client exiting on load. Read the console for more info. A common error is LOGIN_ALREADY, meaning that the client was already connected, or that there was another error and the accountserver didn't reset itself. This will hopefully be fixed someday.
  • If you get passed the "Vegastrike Loading..." screen then everything should continue as normal until you get into space. You should not see anyone else at first...
  • If you connect with another client and a different username, the second client should target the first client, however the first client will not autotarget, so hit "t" to target the new unit.
  • Fly around in both users and fire around and so on. However beware: As soon as one client dies from a collision, the server will crash due to a NULL pointer dereference. This is being looked at, but until it is fixed, don't die by crashing into someone.

Playing with the Sourceforge Account Server

This should work in most situations and is easier than running your own accountserver.

  • Compile vegaserver.
  • Edit the "accountsrv" entry in vegaserver.config so it reads:
<var name="accountsrv" value="http://vegastrike.sourceforge.net/cgi-bin/accountserver.py"/>
(Unless you want to run under a 'mod' by appending ?modname to the URL, in which case you have to register under one as well by doing the same to register.py. Currently, I think 'test' is the only mod.)
  • You can use part or all of the config it generates for you, but make sure you get the account and network settings. Make sure that server_ip is set to "127.0.0.1" (localhost) if you want to play on your own vegaserver. If a second player wants to connect to your machine and it is configured as a server (with an external IP, or behind a NAT set up with port forwarding), have them put your IP address in this field.
  • Start vegaserver on the host machine. It should connect to the accountserver running on sourceforge.net, although it's possible to compile and run your own (I haven't tried this successfully yet.)
  • Start up your clients like so:
vegastrike --net

If all goes well, that should work!

See also