Members | Sign In
All Forums > Development

Artemis - Dedicated Server mode

posted Mar 26, 2013 17:07:31 by timechick
I may be pushing the envelope here on what we want to do with this, but...

I want to be able to disable the 3d support and run the server (almost) headless.

The reason for this is me and my ship want to put the server up on a virtual cloud server so we can play with a few of our friends around the state online easier. Also we can use that to play from a hotel room through the hotel wifi without having to configure the hotel's router or anyone elses router. This would let us set up in a game store or coffee shop or someplace where we don't have access to the router.

We got the cloud server up, but it won't run without 3d support and it looks like crap though vnc anyway. If we could just not use the Monitor for the server for anything more sophisticated than text, and just log in remotely, we would only need 3d support on our clients.

What do you think of just having an option to run as "headless" on the first screen where you set your screen size and disable the 3d check?
[Last edited Mar 27, 2013 00:01:57]
page   first prev 1 2
27 replies
RussJudge said Apr 10, 2013 13:06:54
It is already possible to create a mission that can play forever. In fact, I think one of Mike Substelny's missions does that specifically. In the mission script, you just check for the existence of certain objects, and if they don't exist, you create them, using timers to control the frequency and delay of the creation of objects.
Author of Artemis Mod Loader.

Sign up for a free Dropbox account.
timechick said Apr 10, 2013 13:32:50
I was thinking further on this last night. If you ran it this way, you could make the game "Captain" driven in that you would log in as a ship and the Captain would determine if the ship was ready to "leave the dock" when it was ready to go. Other ships would need to be allowed to log in while the game is running as well, with the Captain screen monitoring when everyone is at their minimum number of stations and ready they leave the dock and join in the "already in progress" game. That would save the need of trying to figure out how to start up the game remotely each time.
This is what you'd have to put on the Captain's screen:
"Launch" button to leave the space dock and begin that ship's part in the game.
"Link monitor" to see what stations are logged in
"Ship Name" field much like helm
"Land" button to release the ship and end their involvement in the game.
"Disconnect station" button to release a deadman station and let someone else log in on it.
And if you really want to get fancy, put in a ship chat channel so they can all talk to each other if they are remotely logging in.
ewlloyd said Jun 04, 2013 08:04:20
A really good option for command and control of a headless server process is to hitch it to a web server. If you can forgo some of the eye candy, you can create a presentation that's very similar to your existing server view.

If you can abstract the OS interfaces out of your mainline codebase, you could even create a stable of builds to run on darn near any processor/OS out there (headless on a Raspberry PI, anyone? :-)
lucas99801 said Jun 04, 2013 09:28:18
I have to say. Looking at this thread again has me interested in a continuous "dedicated server" mission.

@RussJudge, if you can remember the name of Mike's continuous mission, let me know. I'd like to give it a once over.

I'll talk to Chas and see if he may be able to host such a server, I know he's got a bridge that he runs almost constantly. And I'll take suggestions for functionality players would like to see incorporated.
Hosting a Mumble (Murmur) server @
Having trouble connecting to the TeamSpeak channel:
Helm Script for Numerical heading input:
Twitter: @lucas99801
Facebook: /lucastarnold
Mike_Substelny said Jun 04, 2013 18:22:31
RussJudge is right. My mission script "Attract Mode" can theoretically be played forever. The Artemis is constantly resupplied with energy and torpedoes and the enemy and friendly ships are constantly re-spawned. I designed "Attract Mode" so that an unmanned bridge could be left running all day and still look interesting, but I've seen some people use it for training or practice.
"Damn the torpedoes! Four bells, Captain Drayton!"

(Likely actual words of Admiral David Farragut, USN, at the battle of Mobile Bay. Four bells was the signal for the engine room to make full steam ahead).
AdmlBaconStraps said Jun 05, 2013 13:14:27
I don't quite understand the reason for requesting this feature..

Admittedly, I've never had to run on a foriegn network, but we've never had to configure anything on ours to get artemis to work.

Shouldn't the game just pick up the right IP for the server regardless of whether it's hotel wi-fi or a home network?
cdm014 said Jun 05, 2013 13:47:27
Shouldn't the game just pick up the right IP for the server regardless of whether it's hotel wi-fi or a home network?

The short answer is not at all. They essentially one the server to be on one network (off-site) and the players on another network (like playing over the internet).

They may very be purchasing/renting a server to do this. That server will not have great graphics capability and even so nobody will be physically at the server
croxis said Jun 10, 2013 21:34:08
I'm surprised no one has mentioned an ncurses like interface, although I personally think access via a secure webpage in addition to the gm interface would be the best option.

An even better option would be to create/publish a secure(ish) protocol so the community can create their own front ends for their specific needs, from a small home gathering to a high end dmx decked out omnimax theater.
mel.chandler said Jun 20, 2013 05:14:34
So does that mean there'll be a Linux version? Just about every game I've run a dedicated server for ran on Linux. That'd be my OS of choice.
timechick said Jun 20, 2013 13:22:12
So does that mean there'll be a Linux version?

I sincerely hope so. That would be my platform of choice too. Nothing runs smoother and is more adapted to the rigors of internet online gaming.
JanxJelantru said Jul 02, 2013 21:45:35
I was thinking about this, mods, iOS, and the Help thread about running client and server on the same PC.

The server portion needs to be a seperate EXE with virtually no UI (or at most, a basic WinForms UI, rather than DirectX fancy one that requires good video). It would NOT feature the main viewer component.

The client EXE would take you down the normal path when you click Client and let you pick what stations to display (including main viewer).

The Launcher EXE would look like the front end of what we see today to start the client or server. Same checkboxes and questions. When you pick "Server", there'd be a check box to include launching the main Viewer on this machine.

So picking Server and checking the Display main Viewer would launch the Server.exe and the client.exe in MainViewer mode. Basically, the same final effect, with pretty much the same UI to set it up.

The difference is, the seperate Server.exe doesn't have any of the graphics library requirements. it could be ported to Linux if need be, because it doesn't have any UI stuff that doesn't port easily. Network code ports very easily (I wrote a lot of cross-platform low level tools for a major corporation, I know how its done).

this would satisfy the need of the OP, and open the door to porting to linux for the server side.

From this platform, I would alter the way clients get their assets locally (xml files, graphics, etc). Make them fetch ALL of that info from the server on initial connection.

By doing this, the game mods are loaded into the server computer, and transfer to the clients is built-in (for guaranteed compatibility with iOS, etc). this would mean that Android and iOS clients would be able to use the same mods (art, data changes via XML files the server users).

The premise I have for splitting it into multiple EXEs is ease of DLL and library management. Because Artemis.exe relies on DirectX and other DLLs, it has to load them regardless of if its in server mode or client mode. It's a wasteful requirement on the server mode. Split it up, and the management is easier. it is trivial to share code files across projects in Visual Studio, so it's fairly simple to build one Artemis solution, with a Server project, a Client project, and a SharedCode project for all the common classes, etc.

As part of the strategy to make the Server.exe be headless, I would make launching the session be controlled from one of the stations (like when they all check Ready to Play), after returning to the Client station choosing screen at the end of the game. The server needs to be running an active game, or waiting to launch the next one when the clients trigger it.

In this way, nobody has to fiddle with the Main viewer to relaunch the game. With that in place, folks would be able to go to a VM hosting service and setup the Artemis server and leave it running. A simple Windows scheduled task can take care of re-launching it should it die.

timechick said Jul 02, 2013 21:53:25
Someone who gets it. :-)
Login below to reply: