Struggling with nDisplay and poor documentation

I’ve been trying to get nDisplay working on another machine for more than a week now and wasted lots of time because of poor documentation.

I have some simple questions and I can’t find any clear answer:

Can i run nDisplay without Switchboard? nDisplay is v1.0 while Switchboard is beta v0.1 so you would think Switchboard is not essential to running nDisplay yet all official documentation always runs nDisplay with Switchboard without showing any alternative.
In my use case it’s way more convenient to start the game with nDisplay from command line.

Can I run nDisplay without installing unreal editor? We have 10+ machines in our current (non-Unreal) setup which are all disconnected from the internet. It’s gonna be really time consuming to install UE on all of them. It seems pretty reasonable to expect that with a packaged build I don’t need UE to run the game with nDisplay. But again I can’t find a clear answer.

Do I need Switchboard listener to run nDisplay (on multiple hosts) ? If yes, how do I run the listener without UE?

Is there any clear documentation about all the command line arguments? Which ones are necessary for nDisplay? I started from the command line args that Switchboard uses but I had to remove a bunch of them otherwise I was having a black screen on startup. There are so many of them that I don’t wanna find with trial and error which argument was causing the black screen.

Thanks.

Things that I found out by myself when it comes to running with nDisplay:

  • Unreal engine needs to be installed on the node
  • Running with a packaged build does not seem to be possible despite it being an option in the ‘Launch as’ dropdown in Switchboard. The game will start but it will be using the default pawn camera instead of the nDisplay config. Only the ‘Standalone (ICVFX)’ option works for using nDisplay.
  • Since only standalone works, this means you need to copy your whole project to all your nodes and not a packaged build.
  • Switchboard (and the listener) are not necessary. I copy pasted the command from Switchboard options into a bat file, closed Switchboard (and listener). Running the bat file started the game in nDisplay mode. (only tested on a single node, still need to verify if the listener isn’t needed for multi node)

I hope this saves someone else some time, I wasted days searching for a way to get this thing working.
Version: UE 5.5

While you have resolved your issue, please see this thread for running as a packaged build:

nDisplay not working in shipping build (but works in Development) - Cinematics & Media / Virtual Production - Epic Developer Community Forums

Basically, many of the Switchboard command line calls are actually developer only (but not all). The key ones are the -ini command line switches. You can’t utilize those switches for a packaged shipping build. Instead, you just need the DefaultXYZ.ini compiled into the project -OR- utilize one of the many XYZ.ini files utilized upon startup to tell UE to use the DisplayCluster objects instead of the standard objects when starting up the engine and the code will recognize everything.

It took me almost a month worth of work to determine this.

This is quite incorrect, to go over your points:

Unreal engine needs to be installed on the node

No, if you are running a packaged game and not the Editor with the -game option, you do not need to have Unreal Engine installed anywhere.

Running with a packaged build does not seem to be possible despite it being an option in the ‘Launch as’ dropdown in Switchboard. The game will start but it will be using the default pawn camera instead of the nDisplay config. Only the ‘Standalone (ICVFX)’ option works for using nDisplay.

Also not correct. You can run both Debug and Shipping builds on both Windows and Linux. This works both with switchboard and by running a simple start script over e.g. ssh. You need to be a bit careful with your command line parameters and make sure the ndisplay config/asset is packaged correctly. As always, I can recommend looking at the logs to see what goes wrong for you, but we’re actively using this case and it works well.

Since only standalone works, this means you need to copy your whole project to all your nodes and not a packaged build.

Not sure what you mean by standalone, but again, a packaged build works fine.

Switchboard (and the listener) are not necessary. I copy pasted the command from Switchboard options into a bat file, closed Switchboard (and listener). Running the bat file started the game in nDisplay mode. (only tested on a single node, still need to verify if the listener isn’t needed for multi node)

Correct, all switchboard does (and claims to do) is generate a launch command to send to the listener, which then simply executes the process. You can do exactly the same via a shell or bat script.

This is relevant for shipping builds, which are a bit of a special case. DebugGame builds/packages work fine even with the -ini switches.

Yes, DebugGame packaged builds work perfectly fine.

It’s Shipping builds where the -ini command line argument that doesn’t work.

Just something to add for others reading this, and because @ZyllosF mentioned in a different post the difficulty of debugging when launching via nDisplay (I can no longer reply in that post).

The command line options can also be appended to your VS debugger launch command, so if you run a local node configuration you can start it from VS. It took me a while of working with nDisplay to realise I could have done this from the beginning to aid debugging issues.

Yep, works also with Rider - there’s a plugin that even gives you a nice box to enter the arguments, I think called Ez Args or so.