我有一个项目来创建一个roguelike,它以某种方式从引擎和引擎中抽取UI来自地图创建,站点线等。为了缩小焦点,我首先要只是让UI(玩家的客户端)和引擎工作。
我目前的想法是让客户端基本上是一个程序,决定一个角色(玩家,怪物)将轮到哪个角色,并等待它再次移动。所以每个怪物都有一个客户端,玩家也是如此。玩家的客户打印地图,等待输入,将其发送到引擎,并告诉玩家发生了什么。除了不打印地图和使用AI而不是键盘输入外,怪物的客户端也会这样做。
在我进一步发展之前,如果这似乎是一种混淆的做事方式,我的目标是学习,而不是写一个roguelike。这是journy,而不是目的地。
所以我需要选择最适合这种模式的ipc形式。
答案 0 :(得分:0)
我一直在使用这些组合来解决类似问题(多个客户端通过本地盒子上的单个守护进程进行通话,并将大部分智能推送到客户端)。
总的来说,我喜欢用这种方式将事情分解成单独的可执行文件的想法 - 例如,它确实使测试变得更容易。我认为方法的选择归结为使用模式 - 消息有多大,它们中的数据需要多长时间,你能承受通过网络堆栈多次跳转基于套接字的消息的成本吗事情事实上,你坚持使用Linux可以使事情变得简单 - 例如,你不必担心消息队列的可移植性。