Running Gem
GEM Siterunner and Showrunner¶
Once everything is set up and your database is created, you can run the GEM Server.
The GEM server does not have to run on the same machine. You can run the siterunner on one machine and the showrunner server on another, as long as they are on the same network. For now, we will setup everything up on the same machine.
Before any commands can be issued, the GEM siterunner and showrunner must be running. Only one siterunner can be running on one machine, but you can run multiple showrunners at once.
Start the GEM siterunner¶
To start the GEM Server for your show, run:
gem-server siterunner
gem-server siterunner -h
The -h or --help flag will display options for any command you'd like to use.
NOTE: Refer to the cli commands to learn more about which commands you can use.
NOTE: The siterunner generally does not need to be restarted unless there is a software version change.
Start the GEM showrunner¶
A show is "live" when you start a showrunner for it. When a showrunner runs, the show will accept users (who have a ticket) and allow them to suit up and go through the experience. It is important to remember that the showrunner autonomously controls some events that are not the result of an explicit API call. For example, as users are assigned devices, the showrunner automatically assigns them to groups to maximize throughput. There are API calls that allow for configuration of that assignment process and overriding of individual assignments, but there are currently no API calls to simply do it manually. Likewise, when the showrunner sees that all the members of a group are in a state ready to start the experience, it will start the experience without any API call necessary or existing.
Starting a showrunner is simple. For example, to start a showrunner for a show with the name MarcelHomeLinuxLP, you would do the following:
gem-server showrunner MarcelHomeLinuxLP
To see the list of shows you have defined so you can determine the ID of the one you want to start:
gem show list
You should run the showrunner on the machine that will be running your game servers. If you are testing having multiple shows (a common thing), you can fire up all the showrunners on the same machine. The server picks a different port for each showrunner. If you are testing with the show simulator, the showrunner does not need to be running on the same machine as the simulator.
The CLI usually can tell from context as to which showrunner (or the siterunner) it needs to send calls to.
Modifying a showrunner¶
If you wish to modify the aspects of a show while it is running, you can do so with the CLI. For example, suppose you wish to start sending groups of different sizes.
First, let's see what the current definition is:
gem show list
1 Record(s) returned
Show: Little Prince MWS
ID: 1
Name: Little Prince MWS
Stage ID: 1
Experience: 1
Onboard: 2
Offboard: 2
Transform: [[1 0 0 0] [0 1 0 0] [0 0 1 0] [0 0 0 1]]
Group Size: 8
Max Groups: 2
Server Args: [-verbose]
Onboard Start: true
Max Onboard Groups: 1
Max Combined Groups: 1
OK
We want to change show ID 1 so that it uses a group size of 4 instead of 8:
gem show set groupsize 1 4
At this point, the show will send in groups of 4 instead of 8. This is true even if the show was live when you issued the command. You do not need to restart any servers.
There are some parameters (e.g., the onboard area being used) that require a showrunner restart after modification in order to take hold. Unlike the siterunner, which aspires to never need to be restarted, the showrunner does need to be restarted periodically, and the expectation at a real location is that it will be stopped when a show is no longer running (the evening) and started when the show begins operations in the morning.