UE4聯機編譯光照需要SwarmCoordinator以及SwarmAgent,在Engine\Binaries\DotNET目錄下。
SwarmAgent
我們主要關注Distribution Setting中的內容。
AgentGroupName 組名,這里簡化起見,所有Agent都在同一組。需要保證同一組的Agent組名都一樣,否則不會分發任務。因此將就默認的Default也沒什么不好。 AllowedRemoteAgentGroup 允許接受哪個遠程組分派過來的任務。只有一組的情況下,要和AgentGroupName保持一致。
AllowedRemoteAgentNane 允許接受哪些名字的Agent分派過來的任務。簡化起見,填星號表示一切Agent。最好填星號,否則調試階段很可能怎么都連不上。
AvoidLocalExcution 避免本地執行構建,強制將任務分發到遠程。注意如果沒有可用的遠程機器,將會暫停,一直等到有可用機器才會繼續。
EnableStandaloneMode 開啟獨立模式。開啟后所有任務將強制在本地執行,和上一項恰好相反
CoordinatorRemotingHost 運行SwarmCoordinator的電腦的IP或者主機名。建議填主機名,這在有多個IP地址的情況下可增強穩定性。 SwarmAgent支持進行分組,也就是即使Agent們都連在同一個局域網中,也可以分屬不同的組。不同的組之間構建任務互相獨立,不會跨組分發構建任務。
SwarmCoordinator
如果上面在上面配置好了CoordinatorRemotingHost,那么最終就會在下面看到對應的ip。
問題分析
如果順利的話,那么現在就可以進行聯機編譯了。但是如果還是只有在本地編譯那么可能會是下列問題造成的。
1、 任務太小,不值得聯機編譯。
2、 沒有打開File And Printer Sharing。
3、 如果是Win10的話切換為專用網絡,Win7切換為工作網絡或者家庭網絡。主要是為了確保已經開啟了File And Printer Sharing。
4、 Swarm agent waiting for remotes to become available。一種情況下是它也在自己編譯,另外可能就是沒有打開File And Printer Sharing。
5、 其它的問題請參考Swarm Agent Troubleshooting
參考文章
1、 https://wenku.baidu.com/view/5e603e586137ee06eef91808.html
2、 https://answers.unrealengine.com/questions/204704/swarm-agent-waiting-for-remotes-to-become-availabl.html
3、 https://iamsparky.wordpress.com/2010/08/24/tutorial-setting-up-swarm-for-multiple-machines/