我一直在考虑制作一款点击式冒险游戏。我遇到的问题是以通用(而不是丑陋)的方式表示游戏逻辑和状态。
游戏状态:
你从一个房间拿了一个物品,它不应该再在那里(可以很容易地完成)你和一个角色交谈,他做了一些影响另一个房间/屏幕的事情,如何保存房间的状态和性格是
游戏逻辑:
你和一个角色交谈,他做了一些动画并改变了世界状态中的一些东西,你如何在不将其硬编码到游戏中的情况下进行设置?
我想这些问题是相关的,因为弄清楚如何表示状态将大大有助于弄清楚如何定义“动作”。
更漂亮的选项之一是使用脚本语言,例如Lua。您仅将给定房间或物品或角色可能具有的属性、它们之间可能如何相互关联(例如物品在房间中)硬编码到游戏中,并且所有真实的东西都将由脚本完成。如果你做得对,这有一个更容易调试的优点(你不需要重新编译你的游戏,实际上,做得对,你甚至不需要重新启动它),但缺点是增加了一些复杂性。
此外,您可能需要考虑使用一些已经可用的游戏引擎进行点击冒险,例如AGS或Wintermute。如果你想做一个游戏,你会想尽可能避免编程直接跳到游戏设计。我知道这对于程序员来说可能很难接受 :)
除非您的游戏引擎包含某种脚本语言,否则您必须对某些内容进行硬编码。消除硬编码往往会将定义动作的责任推到运行时,运行时环境将需要某种方式来定义这些动作。如果您还没有,请研究一种可嵌入的语言,例如 Lua 或 Python,甚至可能是 Javascript。