当前位置:首页 > 经验 >

怎么编程做一个游戏(少儿编程十大坑)

来源:原点资讯(www.yd166.com)时间:2022-11-03 06:05:10作者:YD166手机阅读>>

原文链接:https://hackernoon.com/build-a-game-engine-from-scratch-in-c

游戏开发一直很能激励学生学习高级计算机科学。可能有些人认为游戏是孩子们喜欢的,但对于标准的计算机科学课程来说,游戏开发其实是少数几个能用当中所有知识的领域。

怎么编程做一个游戏,少儿编程十大坑(1)

游戏开发涉及标准计算机科学课程中的诸多内容

根据游戏的性质,你可能还需要深入到更具体的专业,比如分布式系统或人机交互。游戏开发是一项严肃的工作,是助力计算机科学理念学习的有力工具。

本文将详细介绍使用C 创建一款简单游戏引擎所需的一些基本构建模块,解释游戏引擎所需的主要组成元素,并就如何从零开始编写游戏引擎给出一些个人建议。

不过,本文不是一个编程教程,因此也不会深入太多的技术细节或解释所有这些元素是如何通过代码粘合在一起的。如果你想找关于如何编写C 游戏引擎的综合性教程,可以先看看《用C 和Lua创建一个2D游戏引擎》。

一、游戏引擎是什么?

概括地讲,游戏引擎是一套优化视频游戏开发的软件工具。这些引擎可以是小而极简型的,简单到只提供一个游戏循环和几个渲染功能;当然,也可以是大而全面型的,类似于IDE应用程序那种,开发人员可以用于编写脚本、调试、自定义关卡逻辑、人工智能、设计、发布、协作,并最终从头到尾构建游戏,而无需离开引擎。

游戏引擎和游戏框架通常向用户公开一组API。这些API允许程序员调用引擎函数,并像执行黑匣子一样执行艰难的任务。

为了真正理解这些API是如何工作的,让我们更具体地结合应用说明一下。例如,游戏引擎API公开一个名为“IsColliding()”的函数,开发者可以调用该函数来检查两个游戏对象是否发生碰撞,这种情况并不罕见。程序员不需要知道该函数是如何实现的,也不需要知道正确确定两个形状是否重叠所需的算法。就我们而言,IsColliding函数仅是一个黑匣子,根据这些对象是否相互碰撞,它会正确地返回true或false。下面是大多数游戏引擎向用户公开的一个功能示例。

怎么编程做一个游戏,少儿编程十大坑(2)

怎么编程做一个游戏,少儿编程十大坑(3)

大多数引擎都会抽象碰撞检测,并简单地将其作为真/假函数公开

除了编程API,游戏引擎的另一个重要职责是硬件抽象。例如,3D引擎通常构建在一个专用的图形API上,比如OpenGL、Vulkan或Direct3D。这些API为图形处理单元(GPU)提供了软件抽象。

说到硬件抽象,还有一些底层库(如DirectX、OpenAL和SDL),它们提供对许多其他硬件元素的抽象以及多平台访问。这些库帮助我们访问和处理键盘事件、鼠标移动、网络连接,甚至音频等各项功能。

二、游戏引擎的崛起

在游戏行业的早期,游戏是使用定制的渲染引擎构建的。开发代码是为了从较慢的机器中尽可能多地提升部分系统性能。每个CPU周期都至关重要,因此代码重用或适用于多种场景的通用函数并不是开发人员能够负担得起的。

随着游戏和开发团队规模和复杂性扩展,大多数工作室最终都会在开发的多款游戏之间重用某些功能和子程序。工作室开发的内部引擎,基本上都是针对处理低级任务的内部文件和库的集合。这些功能允许开发团队的其他成员专注于游戏操作、地图创建和级别定制等高级细节。

一些流行的经典引擎包括id-Tech、BUIld和AGI等。这些引擎是为了帮助特定游戏的开发而创建的,它们允许团队的其他成员快速开发新的关卡,添加自定义资源,并动态定制地图。这些定制引擎也被用来为他们的原创游戏修改或创建扩展包。

Id Software软件公司(美国得克萨斯州的一家游戏软件公司)研发了id Tech技术。id Tech技术其实是一系列不同引擎的集合,其中每一个引擎的迭代时期都关联着一款不同的游戏。于是,开发人员通常会将id Tech 0描述为“Wolfenstein 3D引擎(Wolfenstein3D engine)”,将id Tech 1描述为“末日引擎(Doom engine)”,将id Tech 2描述为“雷神之锤引擎(Quake engine)”,等等。

Build是上世纪90年代游戏引擎历史中的另一个例子。它由肯·西尔弗曼(Ken Silverman)创建,旨在助力第一人称射击游戏定制。与id Tech的情况类似,Build随着时间而发展,它的不同版本曾经先后帮助程序员开发了《毁灭公爵3D》(Duke Nukem 3D)、《影子武士》(Shadow Warrior)和《血祭》(Blood)等游戏。这三个可以说是使用Build引擎开发的最受欢迎的游戏作品的代表,通常被称为“三巨头(The Big Three)”。

怎么编程做一个游戏,少儿编程十大坑(4)

栏目热文

c语言开发基础教程(c语言基础程序教程)

c语言开发基础教程(c语言基础程序教程)

如果你对创建计算机程序、移动应用程序、网站、游戏或任何其他软件感兴趣,你都需要学习如何编程。程序都是通过使用编程语言来创...

2022-11-03 05:52:03查看全文 >>

怎么样进行编程(怎么学习编程)

怎么样进行编程(怎么学习编程)

如图所示,一个网友的提问,要求在广数数控系统上完成该零件的编制,前提是没啥精度要求,也不需要刀尖半径补偿等,因此顺便把这...

2022-11-03 06:05:13查看全文 >>

三菱plc编程入门教程(plc编程必背50个程序)

三菱plc编程入门教程(plc编程必背50个程序)

很多初学PLC的人都会问一个问题,如果学习三菱PLC编程入门应先学习什么?新手编程入门应该先学习三菱PLC编程与应用入门...

2022-11-03 05:34:24查看全文 >>

新手学习如何编程(新手如何学编程)

新手学习如何编程(新手如何学编程)

相比于其他传统行业,程序员的确是低投入、高产出的工作。但你千万不要以为有台电脑,就能编程变现。零基础入行,如果方法不对,...

2022-11-03 05:38:47查看全文 >>

c语言入门自学零基础(c语言基础菜鸟入门教程)

c语言入门自学零基础(c语言基础菜鸟入门教程)

程序员要精通一门语言,还是要掌握多门语言?对于这个问题,公说公有理,婆说婆有理。技术更新太快,精通一门编程语言已经实属不...

2022-11-03 05:27:51查看全文 >>

c语言入门基础视频(c语言基础知识大全)

c语言入门基础视频(c语言基础知识大全)

学习C语言不是一朝一夕的事情,但却也不是需要花费几年时间才能精通的。那么如何以最小的代价,学习C语言呢? 这最小的代价也...

2022-11-03 06:05:15查看全文 >>

c语言编程100例详解(c语言学习100例实例程序)

c语言编程100例详解(c语言学习100例实例程序)

近日,一款名为“羊了个羊”微信小游戏火爆全网。凭借简单玩法和不走寻常路的关卡设置,三消小游戏《羊了个羊》,成为《合成大西...

2022-11-03 05:30:25查看全文 >>

编程入门教程免费视频(编程软件scratch)

编程入门教程免费视频(编程软件scratch)

大数据的崛起,各个专业都需要编程!当我们在工作中需要快速掌握和使用新的技术,又没有太多精力从头开始学习,比如,我们现在很...

2022-11-03 05:29:22查看全文 >>

c语言入门教程(c语言必背100行代码)

c语言入门教程(c语言必背100行代码)

第一阶段:C语言基础想要一起学习C 的可以加群248894430,群内有各种资料满足大家在开始学习C语言基础时,要反问...

2022-11-03 05:55:39查看全文 >>

python求和1到100(python1到100任意两数求和)

python求和1到100(python1到100任意两数求和)

目录元素操作Basic reductionsBroadcasting阵列形状操作排序数据总结1.2.1 元素操作基本操作...

2022-11-03 05:54:48查看全文 >>

文档排行