从 0 开始学游戏开发
蔡能
原网易游戏引擎架构师,资深游戏底层技术专家
37243 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 42 讲
从 0 开始学游戏开发
15
15
1.0x
00:00/00:00
登录|注册

第3讲 | 游戏的发动机:游戏引擎

Java
.NET
JavaScript/TypeScript
C/C++
购买商业引擎的代价
自己开发引擎的代价
非代码层面的工作方式
代码层面的工作方式
游戏引擎是一整套编程接口
游戏引擎是一整套游戏解决方案
游戏引擎就是图形引擎
游戏引擎的定义
游戏引擎是用什么编写的?
自己开发引擎还是直接购买?
游戏引擎是怎么工作的?
游戏引擎是什么?
游戏引擎

该思维导图由 AI 生成,仅供参考

估计长期玩游戏的玩家,都能脱口而出几款游戏引擎的名字,比如“虚幻”“寒霜”“狂怒”等等。那你能说说,游戏引擎究竟是什么吗?它在游戏开发中究竟起着什么样的作用呢?

游戏引擎是什么?

汽车没有发动机就无法跑起来,人类没有心脏就会死亡。而引擎就是发动机,就是心脏。
我们先来看一下维基百科对于游戏引擎的定义:
游戏引擎是指一些已编写好的可编辑电脑游戏系统或者一些交互式实时图像应用程序的核心组件。这些系统为游戏设计者提供各种编写游戏所需的各种工具,其目的在于让游戏设计者能容易和快速地做出游戏程序而不用由零开始。大部分都支持多种操作系统平台,如 Linux、Mac OS X、Windows。大多数游戏引擎包含以下系统:渲染引擎、物理引擎、碰撞检测系统、音效、脚本引擎、电脑动画、人工智能、网络引擎以及场景管理。
这个概念是不是看起来还是不太好理解?我来具体解释一下,游戏引擎到底是什么,以及它究竟能干什么。
游戏引擎就是图形引擎。准确地说,游戏引擎约等于图形引擎。玩家口中所说的“虚幻”“寒霜”等,这每一款引擎对于图形渲染的处理方式都不同,所以用某个引擎编写出来的游戏,具体的表现画面也会不同。比如,有的引擎编写出的光影效果特别绚丽,有的则粒子效果特别真实。
游戏引擎是一整套游戏解决方案。其实,游戏引擎并不仅仅等同于图形引擎。图形引擎只是游戏引擎中一个占比极大的组成部分。一款好的游戏引擎,不仅要看它对于图形图像的处理能力,也要看它对于其他部分的处理能力,比如对音频、音效的播放、键盘鼠标的处理,以及 UI 界面的编辑和各种处理工具的提供。这里的处理工具包括地图编辑器、关卡编辑器、人物编辑器、资源编辑器、物理碰撞、碰撞检测等。所以,从专业的角度讲,游戏引擎是完成开发一套游戏的解决方案,而不仅涉及图形部分。
游戏引擎是一整套编程接口。要写游戏就必须写程序,所以有游戏引擎就一定需要编程。不管你是直接面对引擎编写代码,还是在引擎提供的编辑器(比如关卡编辑器)基础上编写简单的逻辑代码,写代码都是必不可少的。在引擎提供的编程接口上,你能很容易地调用各种接口完成游戏的开发。

游戏引擎是怎么工作的?

说完了游戏引擎是什么,我们来看游戏引擎具体是怎么工作的。
我先从代码层面来说。这里是一段伪代码:
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

游戏引擎是游戏开发的核心组件,提供了各种工具和接口,使游戏设计者能够快速开发游戏程序。它包括图形引擎、物理引擎、碰撞检测系统、音效、脚本引擎、人工智能、网络引擎等多个系统,为游戏开发提供了一整套解决方案。游戏引擎在代码层面封装了绘图接口、操作系统、音频等接口,并提供了一系列游戏内容制作工具,如地图编辑器、关卡编辑器、人物编辑器等。在选择自行开发引擎或购买商业引擎时,需要考虑公司的财力和程序员的实力,大多数开发者会选择购买商业引擎,因为它省时省力,但也存在一些风险。文章深入浅出地介绍了游戏引擎的概念、工作方式以及自行开发与购买商业引擎的利弊,为读者提供了全面的了解。 文章还介绍了游戏引擎的编写语言,包括C/C++、JavaScript/TypeScript、.NET和Java,针对不同平台选择不同的编程语言。此外,文章还提出了一个思考题:什么情况下可以跳过游戏引擎,直接编写一款游戏呢?这引发了读者对游戏引擎的思考和讨论。 总的来说,本文通过介绍游戏引擎的核心概念、工作方式和编写语言,以及自行开发与购买商业引擎的利弊,为读者提供了全面的了解。同时,通过引发思考,激发了读者对游戏引擎的兴趣和思考,使得本文具有很高的实用性和参考价值。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《从 0 开始学游戏开发》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(39)

  • 最新
  • 精选
  • 974
    游戏引擎是不是相当于框架?

    作者回复: 确切地说,是游戏解决方案

    2018-06-04
    2
    5
  • 管理员
    不知道什么样的游戏可以跳过引擎。请老师公布答案。

    作者回复: 有人回答的不错,简单的游戏,比如围棋象棋,之类的,可以直接写。

    2018-06-01
    5
  • 新琇 👻
    c#和unity呢

    作者回复: 也是引擎

    2018-06-02
    1
  • 壬大师
    手游服务器端除了用C++,其它用什么语言技术比较合适呢?

    作者回复: java python go nodejs 都可以,看项目

    2018-06-01
  • 白衣
    老师,要是自己我想做一个3D游戏的话,通常都需要使用那些工具,可以指教一下吗?

    作者回复: 目前最方便的就是购买引擎,比如unity之类的,其他还需要3D建模工具,动作,贴图等等都需要

    2018-05-31
  • 壬大师
    老师,pygame也支持网络游戏服务器端的编写吗!做一款网络对战的手游!

    作者回复: pygame不支持手游,服务器端要独立编写,和pygame没关系

    2018-05-31
  • DeathKnightH
    文中也说到了,游戏引擎中占比极大的一部分是图形引擎,所以我觉得制作的游戏如果对图形渲染没有要求,可以绕过游戏引擎。
    2018-05-31
    1
    28
  • 宋桓公
    没钱买引擎的时候
    2018-06-26
    17
  • Geek_King@技术爱好者
    纯文字游戏 😊
    2018-05-31
    10
  • Kun
    当游戏引擎给你带来的优势并不明显时,可以跳过 比如你想通过做一个扫雷来熟悉C语言,那直接用printf打印整个雷区就行,有没有引擎对主目标影响不大 再比如你要做个demo验证游戏性,可能简单的基于字符的交互就能满足需求,那也就没必要上图形引擎了
    2018-05-31
    6
收起评论
显示
设置
留言
39
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部