「Fantasary」- 在 Lisp 游戏开发马拉松中原型化一个物品世界(& TCP 网络层)

最近,我们参加了由 LispNYC、NYLUG 和 NYC GNU/Linux User Group 合作举办的一次 Lisp 游戏开发马拉松,这是一个充满创造和冒险的周末。在这个活动中,我们正在使用最新的 Spritely Goblins 系统来帮助构建一个名为「Fantasary」的角色扮演游戏。该系统是一个由 Racket 编写的 Lisp 版本,为 Lisp 提供了一个完全分布式和跨面向对象编程的环境。

「Fantasary」的主题是一个物品世界,因此,我们需要实现游戏中充满的物品。由于 Lisp 语言的推理能力和丰富的数据结构,这大大简化了我们的工作。我们创建了几个原型物品并使用 Spritely Goblins 编程模式在它们之间建立了关系。由于 Lisp 的语法和 Spritely Goblins 的特性,我们可以快速实验新想法并迭代我们的设计。

但是,在开发物品世界方面,还有一些限制。首先,我们要考虑到支持多人游戏的需求,这引出了 TCP 网络层的问题。这意味着我们需要为物品世界中的每个实体建立一个唯一的标识和网络地址。其次,我们必须利用网络传输来交换物品世界中的数据。鉴于这一限制,我们采用了一种 RPC 协议,将传输层包装起来并使其更容易使用。

无论在何种场景中开发 Lisp 游戏都具有很大优势。由于 Lisp 常常具有表达力和优美的语法,它可以充分说明想法并调试代码。与其他语言相比,Lisp 在处理复杂问题方面的能力也很强,在游戏开发方面表现自然。由于 Lisp 具有交互和编译环境的深度交互性,这使得对游戏进行测试和修改花费的时间要少得多。

总之,在 Lisp 游戏开发马拉松中,我们得出一个结论:使用 Lisp 可以使我们构建一个对玩家极具吸引力的游戏世界。由于 Lisp 的表达能力,我们可以更好地对游戏进行设计和开发,并借助 TCP 网络层的引入,助力独特的在线多人角色扮演游戏体验。「Fantasary」将是一个多彩、充满挑战和乐趣的世界,现在,我们期待着向您展示它的想法。

详情参考

了解更多有趣的事情:https://blog.ds3783.com/