我曾经尝试过用C++开发一款只使用对象的2D游戏,然而,在设计过程中,我不知道我应该如何将引擎的哪些部分拆分成更小的对象,它们到底应该做什么,以及如何让它们正确地相互交互。我正在寻找书籍,教程,论文,任何详细解释游戏引擎设计的东西。谢谢。
发布于 2009-12-30 09:53:07
必读:http://scientificninja.com/advice/write-games-not-engines
你为什么认为你需要一个游戏引擎?编写实现游戏所需的代码。随着需求的变化,在此过程中对其进行修改。当你有了一个完整的游戏,退后一步,看看结果是什么。
你不能,也不应该在一开始就设计一个完整的类图。勾勒出你想要的通用组件的粗略概念,以及它们的职责是什么,然后尝试对其进行编码。从你确定的类开始。迟早,它们中的一些会变得又大又笨重,所以你把它分成多个小的。有时,您可能会发现几个类基本上在做相同的事情,所以您将它们合并在一起。希望,迟早,您会得到一个works的设计,这比您尝试在前端设计游戏引擎时得到的设计更多。
发布于 2009-12-30 12:55:40
如果你以前没有做过游戏,你怎么做引擎呢?有大量的免费引擎,否则你将花费20年的时间来完成一些事情,因为你将一遍又一遍地重写。
发布于 2011-08-20 00:08:10
在游戏中有两种重要的对象类型。有包含进程的对象,也有与环境和用户交互的对象。
对于那些运行进程的对象,比如改变对象的不透明度,你会希望它们独立于任何类级变量。它们应该简单地接受值和返回值。如果你有一个计算重力的过程,这个过程应该包含正在计算重力的物体,并返回物体正在经历的重力的量,以及如果游戏发生在太空中的重力方向。
第二种更重要的对象类型是那些与用户和环境交互的对象。这些对象都应该继承相同的基类。基类将需要图像以及x和y位置,并且可以具有执行特定过程的变量,如更改变量的速度或方向。有了这个基类,您就可以使用每个对象的“内置”变量,如速度、方向以及x和y位置,执行类似前面提到的重力过程。
您还需要将对象设置为在特定条件下运行代码段。让您的基类提供在满足这些条件之一时运行的函数可能是一个好主意。一些有用的条件函数是对象首次创建和销毁时的条件函数。设置定时器后要执行的条件函数。一个条件函数,你可以在其中放置代码在屏幕上绘制图像。按下键盘或鼠标按钮时触发的条件函数。一种条件函数,每秒计算一定次数,以计算物体上的重力等。
在创建游戏时,这个框架对我来说工作得很好。它适用于任何类型的游戏,对于其他类型的程序则效果很差。如果我的书写不清楚,我很抱歉,我正在iPod上打字,我很难回去编辑这里的东西。
https://stackoverflow.com/questions/1977264
复制相似问题