【问题标题】:Need advice on design/structure of a game需要有关游戏设计/结构的建议
【发布时间】:2013-05-14 21:06:01
【问题描述】:

我在 gamedev.stackexchange 上发布了这个,但没有收到任何答复。希望这里有人能够帮助我。

我正在开发我的第一个 C# 游戏。它是一个使用 Windows 窗体的基于文本的游戏。我正在集思广益,寻找管理所有数据的最佳方式,并考虑在一个类 (Game.cs) 中包含与游戏实例相关的所有信息,并让该类负责跟踪任何重要的事情。 (注意:我不是在谈论拥有 1 个类或类似的项目)我认为这将使保存和加载更容易(只需保存和加载该类的实例),以及使开始新游戏更容易(目前我正在初始化一个初始化类中的所有变量)。

那么,这种方法是否适合实践(将游戏需要跟踪的所有内容放在一个类中)?如果没有,您可能会建议以其他方式处理和放置数据吗?

【问题讨论】:

  • 这不是一个坏主意,但最终取决于数据是否保留在本地。还要研究序列化
  • 我已经设置了一个使用序列化的保存/加载系统。数据保留在本地是什么意思?
  • 数据存储在哪里?在用户本地设备(PC、智能手机、平板电脑、笔记本电脑等)或通过以太网连接的一些异地存储上。这个数据类越大,写入所需的时间就越长,如果它是本地的,这并不是一件可怕的事情,但是通过以太网连接,您必须确保数据完好无损地到达那里

标签: c#


【解决方案1】:

您即将自己到达MVC pattern

因此,您需要将此 Game.cs 称为您的“模型”,它将包含与游戏状态相关的所有信息。那么你的表单的工作就是在游戏状态被修改时显示游戏的当前状态。 (也许是事件驱动的表单更新?)它还将连接玩家通过 UI 执行的任何操作到控制器。控制器的工作将是提供采取行动的方法,并根据这些行动操纵游戏状态。例如。 MoveRight() 将更新 Game.Position.X。

然后您可以获取整个游戏状态并保存/加载,这是您的意图。所以我认为您尝试做的事情没有问题。

【讨论】:

  • 感谢您的建议!我现在来看看 MVC 模式。
猜你喜欢
  • 2021-04-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-26
  • 1970-01-01
  • 2016-01-31
相关资源
最近更新 更多