【发布时间】:2013-11-19 19:05:48
【问题描述】:
所以我在构思一款小型在线游戏时遇到了这个小问题。
以下是其工作原理的简单想法: 客户端和服务器将使用相同的“世界”实现——对象、物理模拟。假设我们有 World 类,其中包含 WorldObjects 的向量。 WorldObject 是其他类(如 PlayerObject、BoxObject、MonsterObject)派生的基类。这里的问题是如何有效地为这些对象类声明自定义渲染方法。例如,必须以不同于 BoxObject 的方式呈现 PlayerObject。
要记住的是,我们不能只创建一个虚拟渲染方法,因为这意味着例如。 BoxObject 必须 #include "OpenGL.h" 这不能在服务器端完成(我们希望服务器端清除图形库)。
那么如何做到这一点呢?我想出了这样的想法:创建一个单独的单例(仅客户端),其中包含不同对象类型(例如由枚举标识)的渲染方法的实现,但这是最好的方法吗?你知道有什么更高效灵活的吗?
当然,我们在这里讨论的是 C++,但如果有您知道并在其他语言中使用的规则或实践,请分享(这就是为什么我没有在帖子中真正指定语言的原因)。谢谢。
【问题讨论】:
标签: c++ networking inheritance client-server