我有一个项目来创建一个roguelike,它以某种方式从引擎中抽象出用户界面,从地图创建、站点线等中抽象出引擎。为了缩小焦点,我首先想要获取用户界面(玩家的客户端)和引擎工作。
我目前的想法是让客户端基本上是一个程序,它决定一个角色(玩家,怪物)轮到它做什么,并等待它再次移动。所以每个怪物都有一个客户,玩家也是如此。玩家的客户端打印地图,等待输入,将其发送到引擎,然后告诉玩家发生了什么。怪物的客户端除了不打印地图和使用 AI 代替键盘输入外,也是一样的。
在我走得更远之前,如果这似乎是一种模糊的做事方式,我的目标是学习,而不是写一个 roguelike。这是旅程,而不是目的地。
所以我需要选择哪种形式的ipc最适合这个模型。
- 我第一次尝试使用管道,因为它们最简单,我为播放器编写了一个 UI,并编写了一个程序来输入指令,例如放置地图和播放器的位置。虽然这可行,但它只允许一个客户端通过标准输入和输出进行通信。
- 我考虑过让引擎成为一个守护进程,它在一个假脱机中查找,客户端在启动时创建每个客户端唯一的临时文件,以向引擎提供指令并接收反馈。
- 最后,我用套接字做了一些介绍性的编程。他们似乎可能是要走的路,并且可能有一天会在网上运行游戏。如果可能的话,我想使用一个更简单的解决方案,因为我不熟悉它们,所以更容易出错。
- 我总是乐于接受建议。