UCI引擎基础问题:ucinewgame和多客户端

Basic questions on UCI engine: ucinewgame and multiple clients

我正在阅读 UCI 协议的规范,但不幸的是,我找不到对其某些命令或用例的恰当解释。

1) 我不明白 ucinewgame 是什么意思。根据文档,它 "starts a new game" 但如果 UCI 引擎是无状态的,这到底意味着什么,因此是否有新游戏应该无关紧要?

2) 与客户端一起玩哪个更好,每次添加一个移动时发送到引擎 "position startpos moves ..."(即从一开始就记录所有移动)或 "position <fenstring>" 仅反映当前位置?我知道第二种情况更紧凑,但是保留所有以前的动作有什么好处吗?

3) 如果我想让几个玩家同时与引擎对战(每个玩家都有自己的游戏),我是否需要为他们每个人都有一个引擎实例?我知道当引擎忙于一个玩家时,它无法处理另一个玩家的移动,但除此之外,我认为这里没有问题,我是否只需要在引擎准备就绪时从一个选定的玩家发送位置,并暂时阻止其他玩家?再说了,ucinewgame这里有事吗?

好的,根据源代码,ucinewgame 似乎只做了一件事——清除训练数据。