Tremulous Forum
General => Troubleshooting => Topic started by: FooBar on February 21, 2007, 09:10:52 am
-
[edit: TJW's client and tremded are perfectly compatible with sv_pure=1, I was just being dense. Read on for how it happened...]
Here's a somewhat technical question:
I'm running Ubuntu Linux. I made a test bed server/client setup with the following configuration:
Server:
tremtest/tremded.x86 (TJW's latest tremded from tjw.org/tremulous/linux)
tremtest/base/data-1.1.0.pk3
tremtest/base/map-atcs-1.1.0.pk3
tremtest/base/server.cfg
tremtest/base/vm/game.qvm (TJW's latest game.qvm from tjw.org/tremulous)
Client:
tremtest/tremulous.x86 (TJW's backported client from trem.tjw.org/backport)
tremtest/base/data-1.1.0.pk3
tremtest/base/map-atcs-1.1.0.pk3
tremtest/base/vms-1.1.0.pk3
You'll have to take my word for it that there is nothing significant in either computer's ~/.tremulous directory.
Let's say I run the server and try to connect to it using the client.
In server.cfg I have a line to set sv_pure. When I +set sv_pure 0, everything works fine. But when I +set sv_pure 1, the client fails on connect with the following message:RE_Shutdown( 1 )
-----------------------
----- CL_Shutdown -----
-----------------------
Sys_Error: VM_Create on UI failed
So my question is, what kind of tremded or game.qvm do I need so that TJW's backported client can connect successfully when I have sv_pure=1? It appears that TJW's tremded /game.qvm won't do it...?
-
game.qvm goes to ~/.tremulous/base/vm/
-
It doesn't matter, if there are no other vm files to be had, it will be found where I put it.
Just for the sake of the argument, though, I put it in ~/.tremulous/base/vm on the server side, and I still got the same result.
-
Hm, I also wonder about the error message itself. How do you start the server?
-
*sigh* Sometimes I wonder how I can possibly be so dense...
Okay, I solved it. You were partially right. Here are the data files that I listed above on the server side, arranged from highest to lowest priority location:
Server:
~/tremtest/base/vm/game.qvm (TJW's latest game.qvm from tjw.org/tremulous)
~/tremtest/base/map-atcs-1.1.0.pk3
~/tremtest/base/data-1.1.0.pk3
But I was conspicuously missing an obvious server-side file. As it turns out, the correct arrangement should have been (in order of priority):
Server:
*** ~/.tremtest/base/vm/game.qvm (moved)
*** ~/tremtest/base/vms-1.1.0.pk3
~/tremtest/base/map-atcs-1.1.0.pk3
~/tremtest/base/data-1.1.0.pk3
This provides TJW's game.qvm to the server first in the search order; but when it can't find ui.qvm and cgame.qvm it falls back on the default vms-1.1.0 in the base directory.
I had left that file out because I thought that cgame.vm and ui.vm were not important for a server. But apparently, when you're running a PURE server, you still need those files so that it can check connecting clients against them. If vms-1.1.0.pk3 is missing, client connects will fail with the message I gave earlier.
If you're running a non-pure server, it doesn't do the check and you can safely remove vms-1.1.0.pk3 and rely only on game.qvm.
Ah, well. Now I know... Thanks, DASPRiD!
PS. I was running the server with the following script file:#!/bin/bash
./tremded.x86 +set dedicated 2 +set fs_homepath /home/foobar/.tremtest +exec server.cfg +set net_port 30000