poesel Posted May 15, 2006 Share Posted May 15, 2006 I've tried to start a dedicated server under linux on a, well, server machine. This machine has no monitor and no audio, So no Xserver or other desktop machine features. First problem is that Update didn't run without libaa.so. Hmm - why does the Updater need ASCII art (and it is not included)? Ok, installed and here we go: the update runs without problems. Searched the forums for the correct way to start the server: </font><blockquote>code:</font><hr /><pre style="font-size:x-small; font-family: monospace;">#!/bin/sh cd bin LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:../lib ./SpaceVikings -enterlobby false -hostmode server exit 0</pre> Link to comment Share on other sites More sharing options...
ClaytoniousRex Posted May 15, 2006 Share Posted May 15, 2006 You can install Mesa to get the required OpenGL libs onto the system. Mesa is quite ubiquitous so it should be available through apt-get, portage, RPM, or whatever your distro uses for packages. We run all of our headless Linux servers this way (they also don't have displays). If you want to give me a shell account on your server, I'll even do it for you. Link to comment Share on other sites More sharing options...
poesel Posted May 16, 2006 Author Share Posted May 16, 2006 Hmm, I'm not root on this server and so I have to talk to my sysadmin to install it for. And you know how sysadmins are about installing. Ok, will do. Should be stated somewhere in the prerequisites though (or just ship the libraries). Still, and I hope you agree here: its a bit silly to install graphic libraries for a system without a monitor and a program without graphical output, no? Link to comment Share on other sites More sharing options...
maxmars Posted May 16, 2006 Share Posted May 16, 2006 Well, actually, not really that silly! I've seen it before with other programs that came with dedicated servers (Tribes 2 IIRC?) The graphic libraries do not provide only stuff for drawing to the screen, they also give you some generic functions (call them "utilities", if you want) that you may need to call in your program even if you don't blit a pixel. E.g. in a database system library I had some functions dealing with string replacement (I had to call them in order to do stuff the way the db wanted it), and as such I needed to include the db libraries even if I didn't physically access the db but I only wanted to use the string replacement stuff. Hope it makes sense. Link to comment Share on other sites More sharing options...
poesel Posted May 16, 2006 Author Share Posted May 16, 2006 Hmm, I don't know anything specific about OpenGL but maybe the server has an internal representation of the battlefield and uses OpenGL for collision detection? I copied the needed libraries from another machine to the lib directory and created some symlinks. These are: libnvidia-tls.so.1 -> libnvidia-tls.so.1.0.7667 libaa.so -> libaa.so.1.0.4 libGLcore.so.1 -> libGLcore.so.1.0.7667 libGLU.so.1 -> libGLU.so.1.3.060302 libGL.so.1 -> libGL.so.1.0.7667 The server did start without complaining and I had it in the list when I hit the refresh button. So far so good. Problem: when I tried to join, the client hung himself up. Had to kill the process. Is that a limitation of the preview or some bug? Server and client were on different machines in different networks. Another question: the server doesn't print any information about what hes doing (in the terminal). Is there an option to get it a bit more verbose or do I have to tail -f on the logfile? Link to comment Share on other sites More sharing options...
ClaytoniousRex Posted May 16, 2006 Share Posted May 16, 2006 You need to do tail -f DropTeam.log to see what's happening on the server. And that is the best way to start looking into why the client had a problem. The log file might say something about why it was rejecting the client or otherwise not letting him play. When you say the client hung, do you mean a hard lock-up, or a "server not responding" message, or something else? There's no limitation on this for the public test - you can run your own dedicated server with it (but it's limited to those same 2 scenarios). Link to comment Share on other sites More sharing options...
poesel Posted May 17, 2006 Author Share Posted May 17, 2006 Now it works. I didn't change anything. Maybe that was a coincidence with the authentification being down. The client did a hard lock-up. I'm afraid that the log file is already gone so I can't check. Thats a part from the log: CLIENTIDMSG: szVersion = 0.9.91 CLIENTIDMSG: Client is using PAT? CLIENTIDMSG: Swapped port = 32772 but msg port = 9968 SERVER: Request from host 62.143.162.249:32772 CLIENT: Account not found for poesel71; creating new one SERVER: 30.303 frames per second What is PAT? The account mentioned is created locally I assume? The fps message tells me that I'm probably right with the 'inner representation' through OpenGL. How many fps does a server need or is it capped anyhow? Link to comment Share on other sites More sharing options...
ClaytoniousRex Posted May 17, 2006 Share Posted May 17, 2006 It probably was the authentication problem and nothing to do with your server. PAT is port address translation. Almost any client connecting through a modern router will be using PAT, so to a remote host his port looks like some crazy number even though internally it is the known 9968 port. This message is nothing to worry about. Yes, the account mentioned is purely local to that server. It used to be, and may someday again be, that when a client disconnects his unit(s) are not removed or changed. He could later reconnect and resume control right where he left off due to this local account on the server. The server alwaya tries to run at 30Hz. This is the rate that the game's main simulation loop is running at - it is the "time slice" of the world being updated (physics, visibility, etc.) Link to comment Share on other sites More sharing options...
Recommended Posts