开发一款游戏引擎需要的知识与技术

开发一款游戏引擎,首先是光影效果,即场景中的光源对处于其中的人和物的影响方式。游戏的光影效果完全是由引擎控制的,折射、反射等基本的光学原理以及动态光源、彩色光源等高级效果都是通过引擎的不同编程技术实现的。
其次是动画,游戏所采用的动画系统可以分为两种:一是骨骼动画系统,一是模型动画系统,前者用内置的骨骼带动物体产生运动,比较常见,后者则是在模型的基础上直接进行变形。引擎把这两种动画系统预先植入游戏,方便动画师为角色设计丰富的动作造型。
引擎的另一重要功能是提供物理系统,这可以使物体的运动遵循固定的规律,例如,当角色跳起的时候,系统内定的重力值将决定他能跳多高,以及他下落的速度有多快,子弹的飞行轨迹、车辆的颠簸方式也都是由物理系统决定的。
碰撞探测是物理系统的核心部分,它可以探测游戏中各物体的物理边缘。当两个3D物体撞在一起的时候,这种技术可以防止它们相互穿过,这就确保了当你撞在墙上的时候,不会穿墙而过,也不会把墙撞倒,因为碰撞探测会根据你和墙之间的特性确定两者的位置和相互的作用关系。
渲染是引擎最重要的功能之一,当3D模型制作完毕之后,美工会按照不同的面把材质贴图赋予模型,这相当于为骨骼蒙上皮肤,最后再通过渲染引擎把模型、动画、光影、特效等所有效果实时计算出来并展示在屏幕上。渲染引擎在引擎的所有部件当中是最复杂的,它的强大与否直接决定着最终的输出质量。
引擎还有一个重要的职责就是负责玩家与电脑之间的沟通,处理来自键盘、鼠标、摇杆和其它外设的信号。如果游戏支持联网特性的话,网络代码也会被集成在引擎中,用于管理客户端与服务器之间的通信。
通过上面这些枯燥的介绍我们至少可以了解到一点:引擎相当于游戏的框架,框架搭好后,关卡设计师、建模师、动画师只要往里填充内容就可以了。因此,在3D游戏的开发过程中,引擎的制作往往会占用非常多的时间,《马克思·佩恩》的MAX-FX引擎从最初的雏形Final Reality到最终的成品共花了四年多时间,LithTech引擎的开发共花了整整五年时间,耗资700万美元,Monolith公司(LithTech引擎的开发者)的老板詹森·霍尔甚至不无懊悔地说:“如果当初意识到制作自己的引擎要付出这么大的代价的话,我们根本就不可能去做这种傻事。没有人会预料得到五年后的市场究竟是怎样的。”
正是出于节约成本、缩短周期和降低风险这三方面的考虑,越来越多的开发者倾向于使用第三方的现成引擎制作自己的游戏,一个庞大的引擎授权市场已经形成。
其中最大的收益者是各大网络游戏公司,通过第三方引擎开发的网络游戏获益巨大。但随着市场急剧变化,用第三方引擎开发网络游戏的成本也越来越高。于是游戏引擎开发商们开始绞尽脑汁设计一种可以大量节约开发成本和周期的引擎。直到2010年zerodin引擎开发的巨作Dragona出品引起了各大游戏业巨头关注,因为此时方才发现了巨作也可以用这么少的成本,这么短的时间开发而成。
原理编辑
游戏引擎是一个为运行某一类游戏的机器设计的能够被机器识别的代码(指令)集合。它像一个发动机,控制着游戏的运行。一个游戏作品可以分为游戏引擎和游戏资源两大部分。游戏资源包括图象,声音,动画等部分,列一个公式就是:游戏=引擎(程序代码)+资源(图象,声音,动画等)。游戏引擎则是按游戏设计的要求顺序地调用这些资源。

开发一款游戏引擎需要的知识与技术相关推荐

  1. 探索开发一个游戏引擎需要那些知识和技术

    探索开发一个游戏引擎需要那些知识和技术 说到游戏引擎我们可能会想到Unity3D,虚幻引擎等.可是我们对于开发一个游戏引擎了解甚微,作为一名游戏开发者在开发游戏的同时我觉得也有必要了解并熟知如何开发一 ...

  2. 如何从零开始用 C++ 开发一款游戏引擎?

    原文链接:https://hackernoon.com/build-a-game-engine-from-scratch-in-c 游戏开发一直很能激励学生学习高级计算机科学.可能有些人认为游戏是孩子 ...

  3. GameMaker Studio从头开始学习设计和开发3款游戏

    从头开始学习设计和开发3款游戏(无需经验) 你会学到什么 如何塑造令人敬畏的角色 如何使用GameMakerStudio 2 视频游戏编程 基本二维动画 如何查找和修复bug 如何给你的游戏编故事 从 ...

  4. 如何开发一款游戏?【游戏开发所需技能和开发流程】

    开发一款游戏需要的技能包括:编程.设计.音效和项目管理.每个角色都需要掌握其特定领域的知识和技能,并与其他团队成员合作.在本文中,我们将深入探讨如何开发一款游戏. 1. 游戏开发流程 游戏开发流程可以 ...

  5. 一个游戏是如何被设计和开发出来的(怎样开发一款游戏)

    本专栏是着重于讨论"开发一款游戏需要怎样的能力",以及"如何学习开发游戏所需的所有技能".在开始讨论我们的两个主题之前,我认为非常有必要让初学者了解一下:一个游 ...

  6. 游戏引擎开发和物理引擎_视频游戏开发的最佳游戏引擎

    游戏引擎开发和物理引擎 In this article, we'll look at some of the most popular game engines for video game deve ...

  7. 小游戏开发怎么选游戏引擎

    前言 小游戏开发怎么选游戏引擎 微信小游戏现在非常的火,当我们下定决心做微信小游戏开发的时候, 面临我们的第一个问题是怎么选一个H5的游戏引擎, 那么今天本尊就来给大家分析一下目前能开发各大平台H5小 ...

  8. 要开发一款游戏---找独立开发者还是游戏外包公司

    可能要开发一款游戏用于教学,不熟悉这一领域,打算找外包,以下是我调查后的总结,欢迎专业人士指正. 独立的游戏开发者优点是要价比游戏公司便宜,缺点是开发周期可能稍长,毕竟是一个人在做.如果是太复杂的游戏 ...

  9. 如何利用人工智能技术来快速开发一款游戏呢?

    使用人工智能技术来快速开发游戏的方法有很多,下面列举几种常见的做法: 使用游戏引擎和模板:有很多专门用于游戏开发的引擎和模板可以快速搭建游戏框架,比如 Unity.Unreal Engine 等.这样 ...

  10. 用Python3开发爆款游戏——捕鱼达人

    Python3在Python2的基础之上做了非常多的改进,比如字符串编码,在Python3中默认字符使用的是unicode编码,可以涵盖这个地球上所有的字符,当然了,优势不仅仅只有这一点.再加上Pyt ...

最新文章

  1. Pytorch源码与运行原理浅析--网络篇(一)
  2. “天才少年”曹原再次连发2篇Nature!在魔角石墨烯取得系列新进展
  3. 在Docker应用场景下 如何使用新技术快速实现DevOps
  4. druid seata 配置_五分钟体验分布式事务框架Seata
  5. java中的IO详解(下)
  6. 从长板和咏春看单板滑雪固定器角度选择
  7. 【两数之和】算法优化笔记
  8. Chino with Geometry(数学,计算几何,记录一下推导证明)
  9. Alpha 通道的概念与功能
  10. 实例45:python
  11. Prime Distance POJ - 2689 线性筛
  12. C++ 堆区和栈区的区别
  13. 【LeetCode】【HOT】581. 最短无序连续子数组
  14. 关于C#打包部署文件夹问题
  15. python之路_django分页及session介绍
  16. signature=fc89d4352b6699754c14ce282ec75426,Broken chiral symmetry on a null plane
  17. exponential family distribution(指数族分布)
  18. 围棋智能机器人阿法狗,阿尔法狗机器人围棋
  19. java实现萤石云截图保存上传到ftp功能
  20. processing软件使用python_Python processing学习

热门文章

  1. 学习...笔记05:时间,空间,时空傅里叶变换的基本技巧、获取自旋波的频谱图和色散图
  2. jQuery推箱子小游戏
  3. 2019年日历 打印 备注_2010年日历:可打印的日历和墙纸
  4. 德州仪器发布99%高效GaN逆变器功率级的参考设计
  5. ACM144-小柯的烦恼zy
  6. 新型传感器将改变大脑控制的机器人技术
  7. python批量修改图片大小--pathlib库
  8. HUAWEI Mate40Pro解除账号忘记密码ID强制刷机鸿蒙系统激活锁能解开吗
  9. list容量限制测试
  10. 计算机桌面的理解,电脑桌面的基础知识教程,教你认识电脑桌面