game-engine - 学习如何设计可扩展且基于 "component"的游戏 'framework' 的任何好的教程或资源?

标签 game-engine

<分区>

简而言之,我正在创建一个 2D mmorpg,与我开始开发的上一个“mmo”不同,我想确保这个在我想添加新的游戏内功能或修改现有功能时能够很好地扩展和运行.

在我最后一次尝试在前几千行代码中进行头像聊天并且只是将基本功能添加到游戏中时,我发现我的代码质量下降并且我添加新功能或修改旧功能的能力也越来越低我在其中添加了更多功能。它变成了一堆乱七八糟的东西,大声笑。

这一次我真的需要全力以赴并找到一个设计,让我可以创建一个游戏框架,该框架可以轻松添加和删除功能(也就是在我的世界或邮件系统或好友中玩迷你游戏)列表或带有互动项目的新公共(public)区域)。

我在想也许基于组件的方法可能是我正在寻找的方法,但我真的不确定。我已阅读有关 mmorpg 设计和 2d 游戏引擎架构的文档,但没有真正解释设计游戏框架的方法,基本上可以让我将新功能“插入”到主游戏中。

希望有人明白我的意思,感谢任何帮助。

最佳答案

如果您在游戏中搜索基于组件的系统,您会发现与您实际要求的完全不同的东西。无论如何,如何最好地做到这一点还远未达成一致。所以我不建议这样做。您真正在谈论的并不是特定于游戏的任何内容,更不用说 MMO 了。这只是编写可维护代码以允许扩展和改进的能力,这在游戏即服务变得如此流行和重要之前很久就成为商业软件的一个问题。

我想说解决这个问题主要来自两件事。首先,你需要一个好的规范和一个试图理解 future 需求的最终设计,这样你现在编写的系统在你遇到这个问题时更容易扩展。如果不清楚您希望插入什么,任何插件架构都无法正常工作。我并不是说您需要起草一份 100 页的设计文档,但至少您应该集思广益和计划并在那里寻找共同点,这样当您编写功能 A 时,您在编写它时会考虑到 future 的功能 B。

其次,您需要良好的软件工程原则,这意味着您的代码易于处理和使用。例如。阅读 SOLID原则,并花一些时间理解为什么这 5 个想法有用。遵循这些规则的代码更容易适应您 future 的任何需求。

还有第三种改进代码的方法,但目前还不能帮助您:体验。您编写的代码越多,对编码的了解越多,您的代码就会变得更好。有可能(好吧,很可能)对于 MMO,你会贪多嚼不烂。在尝试如此规模的项目时,即使是合格的专业人员团队最终也会遇到无法维护的代码困惑,所以您也会遇到这种情况也就不足为奇了。但是他们有一堆他们设法完成的代码,通常这就是它的意义所在,而不是在遇到困难时停止并重新设计。

关于game-engine - 学习如何设计可扩展且基于 "component"的游戏 'framework' 的任何好的教程或资源?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2752438/

相关文章:

clojure - Clojure 中纸牌游戏的状态

Java 游戏编程库

c++ - 在不同的线程中播放声音

c++ - 用于 C++ 2D GameEngine 的 Chipmunk Physics 或 Box2D?

android - LIBGDX - body 在 Android 上掉落并缓慢运行,但在桌面上没有

oop - 游戏架构: Class leaking into almost all files

java - Hazelcast 的性能是否足以支持实时游戏?

android - 非游戏程序员的手机游戏框架

c - 嵌入IO语言: Call Io method from C

c++ - 顶点着色器 - 常量缓冲区数组