Plain Sight was on sale for the staggeringly low £1.60 / £1.20, so I decided to get a copy. It is a very fun, fast-paced game, with lots of great moments – where you pull off an attack a split second before an opponent does the same, or when you detonate just as three people come gunning for you. However, it is not without issues. I am writing this post as I wait for the master server to let me log in and play, and matches will occasionally crash half of the people on the server to the desktop with what looks like an array out-of-bounds exception.
Frustratingly, the dedicated server software itself has problems. One problem occurs even before running – where do you get it from? It is not well-signposted on any of Beatnik Games’ websites. As it stands, you have to go to the members’ area of plainsightgame.com (http://accounts.plainsightgame.com/), where you can download both the server and the client.
(The TLDR version: If you have Steam, use the dedicated server included with that. Strip out whitespace and comments (//) from the example dediconfig.txt on the wiki. If you don’t have Steam or don’t want to faff about, use this zip.)
Now, it is good practice to have an example / default config file available for those that want to just run the server… which the dedicated server zip doesn’t have. So if you run it, it complains about not being able to find the config file and then crashes. Right, no problem, just copy from the wiki page on setting up a dedicated server and paste into the new file dediconfig.txt. Ah, hang on, that crashes the server on launch with a System.FormatException
.
[spoiler]
Problem signature:
Problem Event Name: CLR20r3
Problem Signature 01: plainsightserver.exe
Problem Signature 02: 1.0.0.0
Problem Signature 03: 4bc74e1c
Problem Signature 04: mscorlib
Problem Signature 05: 2.0.0.0
Problem Signature 06: 4a275af7
Problem Signature 07: c43
Problem Signature 08: 59
Problem Signature 09: System.FormatException
OS Version: 6.1.7600.2.0.0.256.1
Locale ID: 2057
[/spoiler]
Stripping out the whitespace and comments lets the server run. I would be more specific, but I can’t actually tell what is causing the problem. It disappeared when I got down to two / one comments, and reappeared when I added another. My debugging skills couldn’t detect any commonality though. Anyway, it runs… briefly. Checking the log file (plainsight.log) shows that it is exiting due to not having the “Updater” directory present. eg:
[spoiler]
0 Connecting to master server(s)...
0 New master server connection status: AwaitingChallenge
633 New master server connection status: VersionCheckFailed
633 New master server connection status: NotConnected
633 New master server connection status: AwaitingChallenge
650 Error Updating: System.IO.DirectoryNotFoundException: Could not find a part of the path 'D:\Games\plainsightdedicated4\Updater\cwRsync\cwRsync.cmd'.
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy)
at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, String msgPath, Boolean bFromProxy)
at System.IO.FileStream..ctor(String path, FileMode mode)
at PlainSightServer.Program.LaunchUpdater()
650 New master server connection status: NotConnected
650 New master server connection status: AwaitingChallenge
[/spoiler]
Now, you can get this from the directory in your Steam directory that contains the dedicated server (!), or from this zip file: Updater.zip. Now, if you want to continue down this path that’s grand, but for me it *royally* screwed up permissions on that folder, to where I couldn’t even run the server executable file! It is possibly due to the rsync updater running as System / nobody, but even still I feel it’s a bit harsh! Of course, it might just be a Windows 7 thing. Despite that, even when I (think) I had sorted out the permissions, the game was still crashing with an error in KERNELBASE.dll (see below). Eeep. So, what I did at this stage was to make a copy of the Steam version of the dedicated server, copy over my dediconfig.txt file and run that. Then it ran.
For those of you who don’t have Steam, I have created a zip containing the dedicated server with a working dediconfig.txt file: DedicatedServer.zip
[spoiler]
Problem signature:
Problem Event Name: APPCRASH
Application Name: PlainSightServer.exe
Application Version: 1.2.0.0
Application Timestamp: 4c6e7ef9
Fault Module Name: KERNELBASE.dll
Fault Module Version: 6.1.7600.16385
Fault Module Timestamp: 4a5bdbdf
Exception Code: e0434f4d
Exception Offset: 0000b727
OS Version: 6.1.7600.2.0.0.256.1
Locale ID: 2057
[/spoiler]
Hey Robert, this was extremely helpful in deducing why I couldn’t start up the dedicated server from within my own Steam install. While you are correct that white-space plays a small role in actually helping the server to start up, I think I found the culprits which were causing (at least my own) crashes on launch.
teamplay:false
teams:0
As far as I can tell, these commands are undocumented and come with the config out of the box (at the moment). But a well-formatted configuration and removing these two lines seems to help things along as well. Until we know what they’re there for (my guess is legacy settings or other options not yet implemented in the public release), it seems pretty safe to remove them.
Hi Lech, glad it helped! interesting you mention those two lines – I was going to remove them from the zip I posted, but it appears they aren’t there. Also, the wiki page has been updated with a good deal more info, but the last section is particularly relevant:
It may be that it was in fact you that edited it (though the name there is substantially different!), but either way it seems you are completely correct.
Yeah, I took the liberty of updating the wiki entry with everything related to running the Plain Sight dedicated server and troubleshooting. I hope my wording there matches what they have in mind for their users 🙂
Good work! It is much more helpful now. It’s a bit silly that it was so opaque and arcane, but hopefully it’ll be easier with that extra info.
Now all that needs done is find out what is causing the repeated client crashes…