游戏设计改进

Zai*_*ikh 4 c#

我正与我的开发人员讨论以下游戏设计.

MoveGame课堂上有一个集合.我的开发人员队友要求我删除该集合,并且只有当前的移动信息.

你的建议是什么?

public class Game
{
    public String Id { get; set; }
    public String CreatorId { get; set; }

    public List<Player> Players { get; set; }
    public List<Move> Moves { get; set; }
}

public class Player
{
    public String Id { get; set; }
    public String Name { get; set; }
}

public class Move
{
    public String Id { get; set; }
    public String PlayerId { get; set; }
    public String PlayerName { get; set; }
    public String NextMoveId { get; set; }
    public String NextPlayerId { get; set; }
    public String Position { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

编辑:
我的开发人员队友建议我MoveGame课堂上只有一个对象.

Cod*_*ray 6

我们任何人都无法为您的设计提供真正正确的方法.这不是一个干脆的情况; 没有"正确"或"错误"的答案.鉴于我们不了解游戏设计背后的所有细节,我们特别难以提出建议.例如,正如我在评论中提到的那样,其他几个答案已经暗示,如果您有"撤消"或"重播"功能,则需要存储所有动作的历史记录.如果没有,你有没有希望实现这样的功能,也没有必要存储有关的种种举动的信息.

这是您需要学习如何作为程序员做出的一种设计决策.考虑一种方法的所有可能的好处以及另一种方法的好处,然后确定哪种方法最适合您的应用.如果您觉得有用,请制作一个"T"图表.就像是:

       Keeping List of All Moves           |         Storing Only Last Move
    ---------------------------------------|------------------------------------
     - Allows you to implement Undo        |   - Simplifies your game's design 
        or Replay feature                  | 
     - Consumes more memory                |   - Saves memory by only storing the
                                           |      minimum amount of data
                                           | 
                                           |
    ...etc.

最后,您(和您的同事)是最有能力做出此决定的人.确保您自己仔细比较优缺点是确保您做出正确方法的最佳方法.