游戏引擎是怎么做出来的(游戏引擎怎么制作)
今天给各位分享游戏引擎是怎么做出来的的知识,其中也会对游戏引擎怎么制作进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
游戏引擎怎么开发
首先要了解游戏引擎是什么东西?
游戏引擎是开发游戏时为了模块复用而使用的中间件。游戏引擎概念的本身是多层次的,从复用性上说可以有0层即不使用游戏引擎的游戏,早期的游戏属于这类,一个游戏就对应一个游戏基础库,但是这样毫无复用性。从系统纵向上来说,游戏引擎的下层是基础库,最上层可以是地图或场景编辑器。从模块横向上来说,游戏引擎由若干个子引擎组成,如图形引擎、AI引擎、物理引擎、网络引擎和脚本引擎,每一个子引擎又可以细分。总之,完整的游戏引擎(比如Unity、UE4)是相当复杂的软件系统。
你可以看看Jason Gregory写的Game Engine Architecture(中文《游戏引擎架构》由游戏引擎工程师Milo翻译),这本书帮你从各个角度理解游戏引擎的组织,模块相互之间的关系,和业界常用的优化方法。另外,你需要找到一个切入点,选择一个引擎子系统的方向学习它的知识和编程技巧(一般是从图形引擎出发,学习图形API如OpenGL或中间件如OGRE)。
如何从零开始写一个简单的游戏引擎
做一个游戏引擎,稍微想想就觉得挺复杂了,先罗列出几个必须要做的模块:资源和文件管理系统,游戏主循环,输入系统,渲染引擎,动画系统,碰撞系统,游戏性系统,若是想的再复杂一点,还得加入游戏相关的调试工具和性能剖析工具。
这样一来,就很容易陷入过度设计的泥沼,在大三上学期时,我们做的XiHad项目(NextRPG/Xihad · GitHub)就遇到了这样的问题,引擎的过度设计导致后续的开发时间被无限缩短,最终却发现引擎中很多的功能实际上游戏中却用不到,真是令人哭笑不得。
由于题目中说的是实现一个简单的游戏引擎,我给出的建议是:先用OpenGL或者DirectX制作一个简单的游戏,再把游戏中可复用的部分剥离出来,这就成了一个简单的游戏引擎。
游戏史上几个最著名的游戏引擎都是这样做出来的,比如:Quake游戏引擎是制作雷神之锤的副产品,虚幻是制作战争机器的副产品,所以,我相信这种将游戏引擎作为游戏的副产品的经验同样适用于大型游戏引擎的开发。
游戏引擎是如何制作出精美的画面的?
在一个游戏开发团队里通常分成三大部分,美术,策划,程序。策划负责所有与游戏情节,风格,UI格式等相关内容的制定~美术负责模型和各种贴图的制作~而程序则负责实现具体的功能~程序下面又可以细分成为AI,逻辑,渲染等等~这里要先明白一个问题,真正能控制游戏画面效果的,不是美术,而是程序~或者说程序占主要地位,美术站次要地位~到这不知道LZ有没有疑问~美术既然负责了游戏中所有美术资源的制作~而程序只负责代码,为什么程序会占到主要地位~一个很简单的问题,在用3Dmax制作模型的时里面有一个数据,就是当前模型的面数~这个面数通常指的是构成整个模型的三角形数~在显示这些模型的过程中,所有三角形的信息会送到显卡进行计算处理~这个时候就会有一个问题~对于同一个模型来说,三角形面数越多,它的模型精度就越高,也越接近真实场景~但是这样会导致CPU和GPU的运算量增大,造成游戏很卡的现象~所以这种情况下必须降低模型的面数,同时对于大量的特效不能再像cg里那样直接用3Dmax这类软件直接制作,而是用程序完成,这个时候就涉及到了游戏引擎。
游戏引擎通常是由一个引擎内核和一系列的工具组成的。大一些的引擎包括给美术用的模型制作工具。甚至给策划用的一些任务工具等等~内核部分的好坏直接决定了整个引擎的好坏~他是对具体技术细节的一层封装~他让程序不需要去完成具体的技术细节~游戏的渲染效果也直接由引擎决定。
说到这里可能有点抽象,说一两点吧,比如你在玩游戏的时候可以设置游戏效果,像什么全屏泛光,多倍抗锯齿,HDR等等。这些东西全都是靠程序实现的,而且基本都是在引擎中就已经实现了的效果~这些技术的细节需要一些数学计算~像全屏泛光,它是将场景中亮度较高的点提取出来,然后在横向和纵向两个方向上各做一次高斯模糊化~然后将这张处理过的图片贴在屏幕上~但是从提取亮点开始就涉及到了计算机图形学领域相关的内容~如果程序懂图形学,他自己可以实现,如果程序不懂,这些东西实现的难度将特别大,所以在引擎中将它的具体计算方法完成了,如果程序要实现这个效果只要按照引擎中的规定写少量代码就可以实现了~这里说的只是引擎的一个功能~更进一步的,刚才我说过,面数过多会导致电脑的负荷增加~要解决这个问题,就要找到一些方法对面数进行优化~通常的一些方法是用贴图代替模型,或者实现模型和地形的LOD~LOD是指层次细节,也就是当玩家离一个NPC很远的时候降低这个NPC的模型细节,减少它的面数~而用贴图代替模型则是要对一张贴图进行处理,使它看起来更加真实~常见的有凹凸贴图,法线贴图,视察映射等等。这里LZ可能又有一个疑问~既然是贴图,为什么不让美术制作呢?问题是这样的,假设现在有一面砖墙,同时你手里拿着一个手电筒去照这面墙,那么你站的位置不一样这面墙上砖的阴影也会不一样~换句话说,这些阴影是动态的,而不能是你画的时候就画好的静态阴影~而实现这种效果的具体方法,也是由引擎封装的。当然,大多数引擎支持程序自己完成这样效果的实现。
什么是游戏引擎!怎么制作?
diretxopenglsdl只是基本的库。游戏引擎不是说的这些东西。一般来说,游戏引擎是调用这些库的。一个游戏引擎要调用许多库。比如图片啊,动画网络的库。一个游戏引擎为了节省成本,或者说为了刚好的质量。用用到许多库。因为自己开发这些库,不浪费时间。因为你做得不出别人的好。别人的是经过时间考验了的。比如opengl,d3d的和显卡打交道的。然后SDL是跨平台的库。还要jpg的图片库,骨骼动画的cal3d.xml的tinyxml.通常还要用到脚本比如lua.还有就是网络的ace库。还有物理的库。
通常就是能用库的用库。只有必须自己写的东西才自己写。什么要自己写,要看你设计引擎的目的了。
引擎就是包装,就是为了加速开发而给别人的一套工具。相当于这些库的胶水,把他们整合起来来实现给别人的东西。
网络上面有一大把的引擎。然后你必须先会用别人的才能做出自己的。就是你先要有经验。用多了就明白了
2D,3D游戏引擎是怎么样开发出来的?是C语言还是?
基本都是C++和C,也可能有一部分速度很关键的代码用汇编。C++占大多量吧。
游戏引擎里面还包含渲染(其实就是计算机图形学)、AI(人工智能)、输入输出控制、物理效果、界面等很多种,技术要求很高··· 具体一个引擎的开发和其他大型软件也差不多,只是涉及的面比较广,速度要求高(游戏嘛,速度很关键),技术门槛自然就提高了
游戏引擎是怎么做出来的的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于游戏引擎怎么制作、游戏引擎是怎么做出来的的信息别忘了在本站进行查找喔。