SPEAKER 1: In this video, we're going
to be taking a look at Switchboard.
So Switchboard is a really powerful tool
for managing all of your stage devices.
Switchboard is a plugin and it can
be found in the plugins menu, just
by searching for Switchboard.
You can see I've already got it enabled.
Once it's enabled, you'll see this little icon
in your toolbar.
Just bear in mind that if you can't see it,
it may well be being hidden by the UI, in which case
you can drop this down.
So first things first, let's click on the icon,
and we'll see that immediately, the first time you
launch Switchboard, we're going to automatically install
some Python dependencies.
Once that's complete, you can see
that we're being given this window here,
where we can add a new Switchboard configuration.
Helpfully, it's already pre-configured,
the name of our project, where the project is stored,
and what version of the engine we're using.
Also, there's a section here for enabling Perforce.
So if I just tick that, it's going
to autodetect and autofill this for me.
As I've already got this project set up with a workspace,
all of this is correct.
So just hit OK.
Here is the main Switchboard interface.
The first thing to look at is that we can
use this to add new devices.
And these devices will show up in this area here.
So the first device I want to add is an editor.
By that I mean an instance of Unreal
running the project as an editor.
So if we come down to add device,
you can see we've got a range of devices here.
So I'm just going to click on Unreal.
And then it asks me for the name and the IP address.
Well, this is my local machine.
So I'm just going to call it editor.
You can call it what you want.
And I'm just going to use my local host.
But, of course, if this was a remote machine,
you would add the machine's IP address.
So in my case, I'm just going to add 1270.0.1,
but of course, you could add whatever
IP address makes sense for you.
Hit OK.
Here we go.
Now, before we can connect Switchboard to any device,
the computer that's going to host the device
needs to be running the Switchboard listener.
And so if we just head back over to Unreal,
it's actually in this little triangle drop down here,
you can see, we can launch the Switchboard listener.
And in fact, we can actually tick this box here,
so that this Switchboard listener automatically
launches at login.
So I'm just going to launch the Switchboard listener.
And that's now hidden itself.
But just to show that running, you can see,
here's the listener.
You can hide that.
So heading back over to Switchboard,
we can now actually tick this little connection icon here.
And you can see that that is now no longer grayed out.
And if we did ever want to make any changes to this,
so, for example, if we wanted to change the name
or change the IP address, we could actually untick that
and we can make those changes here.
So we could actually call this editor home,
and actually we could change it to my local IP
address, which is that.
So just bear that in mind.
So here we are connected.
You can see that we've actually got our Perforce change list,
because we kickstarted earlier.
We're going to talk about that shortly.
And actually what I'm going to do now
is I'm going to close Unreal Engine in the background
and show you, at the core of what
Switchboard allows us to do.
So we're just going to launch Unreal Engine from here.
So just click this button, you can see that it automatically
starts a multi-user server here, but we'll
talk about that shortly.
And we can just now see that Unreal Engine is now launching,
and there we are.
And so we can also now close this Unreal Engine instance
by clicking this x.
And so if this was a remote machine on our network,
we would be remotely opening and closing that editor.
And we can also choose what map we would be opening and closing
it into, with this dropdown here.
Now, we discussed multi-user server there briefly.
So let's actually launch this instance of Unreal
straight into a multi-user session.
So we have the multi-user session name
that we're going to join right here.
But we're just in the Settings menu.
You need to come here and tick auto-join.
We'll take a look at these settings shortly.
So next we're just going to launch this instance of Unreal
with into the multi-user session.
So I'm just going to click Start Unreal.
And Unreal's loading there.
And you will see that, once this loads,
not only is it going to open, but it's
going to automatically create and join the multi-user session
that we've defined down here.
Here we go.
And so, if we wanted to join a different session,
we would close Unreal, perhaps change the session name to be,
say, 01, and launch Unreal again.
And this is extremely powerful for making sure
that all your devices listed in Switchboard all join
the same multi-user session.
And as you can see, we've now joined the multi-user session
underscore 01.
So next, let's get an nDisplay device set up.
In my project I've got this basic nDisplay Config here.
And this is designed to just run locally on this machine.
So back in Switchboard, we need to add a new device.
So let's go down to add device, nDisplay.
Next window it comes up is asking
us to add an nDisplay device, and you can see here there's
nothing in this window.
So if we actually hit populate, it'll search the project
for all of the nDisplay Configs,
and you can see there's a bunch.
This is the one that I've created.
So just going to select that in here, OK.
And now we've got a new device here.
Now this again is running on the same machine.
So just for consistency, I'm just
going to put in the same IP address, hit connect.
You can see the ends playlist are connected.
If we were going to add a larger config that
had more machines, so for example, this one here,
you can see there's now more machines available.
But back to my config.
Hit connect, OK, there's a little star here.
This defines the node, which is set to the master.
This can only be on one of the nodes.
So that's just worth mentioning, but everything else along here
functions the same.
So in order to make sure that we launch
and display into the correct level,
let's just go and select that.
They were all listed here.
If you create a new level, and it's not in the list,
just be sure to refresh with this button.
I know that it's this map here.
And so now I can just hit Launch.
Now this automatically minimizes, that's fine.
We do that on purpose to make sure that nothing
renders on top of nDisplay.
And there we go.
And you can see we have our nDisplay running with our inner
and outer frost on.
Now if we just bring Unreal Engine back up,
and perhaps it's a little smaller,
we can now see that, in our multi-user window,
that node 0 has also joined this session.
And so, if we begin to make changes to the nDisplay Config,
you will see these updates in live in nDisplay.
So we're just moving the nDisplay Config here.
While this is running, let's take a look at Switchboard
again.
I'm just going to make this full screen.
You can now see in the nDisplay monitor
we've got a few things that have refreshed.
So we can see node 0, and we can
see its IP addresses, the fact that it's connected,
what driver it's running.
We've got various GPU information here.
We've got various sync information here.
Now, I'm not running with Nvidia sync,
so you're not going to see any of this up to date.
But this is how we can validate synchronization.
We can see what desktop resolutions we're running,
we can see what Windows version we're on, our CPU, RAM, and GPU
usage, and temperature.
And when you have a bunch of nDisplay nodes in the cluster,
you would expect to see all of these
to be identical, with a few exceptions with regards
to which one's the master and housing the sync, for example.
But generally, the reason we have this
is so that we can identify issues
in the cluster at a glance.
So now that nDisplay's running.
If we don't want it to run anymore,
we can actually kill it, just like we
were killing the editor.
So just going to hit the x here, and that's shut.
Next let's take a look at how Perforce interacts with this.
Let's say, again, we've got a large number of nDisplay nodes
and a large number of editors.
And we make changes in the editor that
means there's new change lists that we need to sync
across all those devices.
Well, Switchboard allows us to automate that process.
So back in our project, I'm going to come out
of this multi-user session.
And I'm just going to make a very simple change.
Let's say, for example, we just want to change this exposure.
I'm just going to use a really small number, just
to force a change, really.
Let's just double check I've got my Perforce connected.
Accept such things, there we go.
So now I'm just going to save the project.
And we need to check out this level, so that's fine.
And I'm just going to check that back in.
We don't want these for now.
And I'm just going to dummy the change list.
Submit, as you can see, we've got our new change list here.
So back in Switchboard, here's our project change lists.
You can see that change list we just created isn't in the list.
So let's just refresh that.
And now you can see that it's now the latest change list.
And we can also see that our machine is out of sync,
because these are on a different change list
as highlighted in orange.
Now this is a slight misnomer, because, of course,
we're on this machine.
And so, actually, if I disconnect and reconnect,
it's going to refresh the change list,
and we're going to realize that, actually, we
are on the correct change list.
But if these were remote machines, that's not
the behavior you would expect.
So if we go, perhaps, back to the previous change list,
so we'll change to this change list here,
we're definitely not on that change list right now.
I'm just going to close this device, because that's
going to allow us to sync here.
And so what we're suggesting right now
is that we're on this change list, ending in 696,
and the change list we want to be on ends in 230.
So we can tell that they're not aligned, because one of them
is orange.
And if I hit the Sync button, there we go.
Now we're on the change list ending 230.
If we want to go back, we can simply select the Change list
here and hit Sync.
It is actually possible to sync and build the engine
through Switchboard as well.
That's something beyond the scope of this video.
Next, let's take a look at the Settings.
So in the Settings window there's
a bunch of useful stuff.
For the most part, I would imagine
you're only going to come in here once or twice to change
a few things, but, really, initially to get things set up.
We'll just go through some of the cool things here.
So, of course, here's the name of our config.
Everything else has been auto-filled for us,
including all of our source control settings,
as we showed you earlier.
Here are our multi-user server settings.
I actually launched our multi-user
using my local IP address, because I have multiple network
cards in this machine.
Sometimes it could launch the multi-user server using
the wrong network, and then Unreal Engine instances
would not be able to connect to the multi-user server
across that network.
So I use this unicast endpoint here to enter the IP address
specifically, I wanted to launch the multi-user server in.
Next is the nDisplay settings.
You have essentially a bunch of master settings, which
all the nodes would be listed down here
and they would replicate.
So, for example, if we wanted to launch with the specific CVar,
we could pop it in here.
I'm just going to choose something like Stat FPS.
You can see that it's actually showing up down here.
But let's say, for example, on this particular node,
we also wanted stat GPU.
Then it turns kind of an orange-y color
to let us know that there's an override versus what
the master has got.
And so therefore you can control specific settings
on specific nodes.
Next we can select how many GPUs we've got.
Just make sure that that matches the number of GPUs.
We can access various levels of verbosity on logs.
That can be useful for debugging.
Here's where we can set the unicast endpoint,
if we should need to.
In theory you shouldn't need to, because out here,
the unicast endpoint for each node is defined by the IP
address, and therefore providing this is correct,
that is the IP network that the multi-user server
is going to be connecting via.
If you do have any other networking specifications
for connecting to devices, you can add your static endpoints
in here.
Something that's pretty typical to need
to change on a per node basis is perhaps the workspace name.
If you've got Perforce workspaces
set up on every single machine, and they
are different for every machine, then you can come in here
and override that.
Same for if your project is not stored
in exactly the same path per machine, and the engine, though
for ease of use, it's really good
to be consistent across your cluster.
Next we have the Unreal settings.
This refers to the editor.
And it's a very similar story.
It works in exactly the same way.
So close this out.
And, if we want to make multiple configs for different projects,
or multiple configs within the same project,
we can just click on configs here,
and we can create a new one.
So I'm just going to name this very quickly.
And I'm just going to browse to the Uproject
that we want to work with.
Here we go, same again.
OK, now we're in a fresh config, we can set this up however
we like.
But if we wanted to switch back to the previous one,
we can go down to the load config,
and whichever one is in use is grayed out.
And the rest will be highlighted,
and you can just select them, and there we go.
We're back to where we were.
If once nDisplay is running, you would
like to perhaps trigger some additional CVars,
then you can do that with Switchboard.
So there you go.
They can see that stat GPU and stat FPS is running,
as I set it up earlier.
But actually, let's turn those off.
We can do that in the console window here.
So that's stat FPS.
Execute, that's now gone.
And stat GPE, execute, that's now gone.
These are now in this list.
So if you want to get one back, it's nice and easy.
So it's also possible to use Switchboard
to trigger take recordings.
But, again, that's beyond the scope
of this introductory video.
Finally, there's just important notice
to say that there's a log down here, which is useful.
And you can change the kind of things that you're looking for.
And it's worth just keeping an eye on here.
So that's an introductionary look
at how we set up and use Switchboard.