创建沉浸式世界,2018年秋季

什么是游戏引擎?
因此,我们可以直接前往Wikipedia进行定义:
游戏引擎是设计用于创建和开发视频游戏的软件框架。 开发人员使用它们为控制台,移动设备和个人计算机创建游戏。 游戏引擎通常提供的核心功能包括用于2D或3D图形的渲染引擎(“渲染器”),物理引擎或碰撞检测(和碰撞响应),声音,脚本,动画,人工智能,网络,流媒体,内存管理,线程,本地化支持,场景图,并且可能包括对电影的视频支持。 通常,通过重用/改编相同的游戏引擎来创建不同的游戏[1],或使其更容易地将游戏移植到多个平台,在很大程度上节省了游戏开发的过程。

游戏引擎本质上为您提供了一个快速构建的框架。 计算机非常愚蠢,因此需要准确告知计算机该怎么做,这意味着某人需要编写一组非常具体的功能和方法,以描述如何在屏幕上画点,如何播放声音或如何操作。向下滚动鼠标滚轮时执行此操作。

例如,此APPLE基本代码将绘制斐波那契螺旋(不读它,只欣赏它的长度)。 这只是代码 ,必须先由另一个程序(编译器)读取,然后才能执行所有有用的操作。
10 HGR2:清除:色度= 1
20 REM HPLOT 0,96至279,96:REM取消注释轴OX
30 REM HPLOT 140,0至140,191:REM取消注释以绘制轴OY
40 HCOLOR = 2:REM紫色
50 X = 0:Y = -1:REM初始坐标
60 D = 0:REM方向
70 M = 3:REM刻度
80 CX = INT(280/2)-0.5:CY = INT(192/2)-0.5
100 A = 0:B = 1:REM初始斐波那契数
110 C = B:GOSUB 300
120 A = A + B
130 GET W:如果E> 0转到10
140 C = A:GOSUB 300
150 B = A + B
160 GET W:如果E> 0转到10
170转到110
180结束
300 REM以(X,Y)开始角画C乘C的正方形尺寸
310如果D = 0然后DX = 1:DY = 1
320 IF D = 1 THEN DX = -1:DY = 1
330 IF D = 2 THEN DX = -1:DY = -1
340如果D = 3然后DX = 1:DY = -1
350 DX = DX * C:DY = DY * C
360 GOSUB 400:REM评论这条线只是画螺旋
370 R = C
371如果D = 0 =那么X1 = X:Y1 = Y + DY
372如果D = 1 =那么X1 = X + DX:Y1 = Y
373如果D = 2然后X1 = X:Y1 = Y + DY
374如果D = 3然后X1 = X + DX:Y1 = Y
375 GOSUB 600
380 X = X + DX:Y = Y + DY
385 D = D + 1
386 IF D = 4 THEN D = 0:REM方向
390返回
400 ONERR GOTO 470:REM绘制下一个正方形
410 HPLOT X * M + CX,Y * M + CY
420 HPLOT TO(X + DX)* M + CX,Y * M + CY
430 HPLOT TO(X + DX)* M + CX,(Y + DY)* M + CY
440 HPLOT TO X * M + CX,(Y + DY)* M + CY
450 HPLOT至X * M + CX,Y * M + CY
460 GOTO 500
470 E = 1:REM错误(屏幕外部)
500返回
600 REM绘制弧,以X1,Y1为中心,半径R,圆弧的四分之一。
610 ONERR GOTO 710
620 PI = 3.14159
630 RAD = PI *(D-1)/ 2
640 HCOLOR = 3:REM白
650 HPLOT CX + M *(X1 + COS(RAD)* R),CY + M *(Y1 + SIN(RAD)* R)
660 FOR G = RAD至RAD + PI / 2 STEP 0.05
670 HPLOT TO CX + M *(X1 + COS(G)* R),CY + M *(Y1 + SIN(G)* R)
680下一个
690 HCOLOR = 2:REM返回紫色
700 GOTO 720
710 E = 1:REM错误(屏幕外部)
720返回
因此,您在1990年写下了所有这些内容,并且得到:

早在1980年代,就有许多采用特定框架或游戏类型的构造集 ,使人们更容易混搭并重新创建或“修改”游戏。

快进到1993年,在那里我们看到了FPS(第一人称射击游戏)的祖父-Doom。 该系列的重点是未命名太空人Doomguy的开发。

它具有多人游戏支持,大量血量,是所有游戏中最好的……它允许玩家创建修改和地图。

这使得新一代的游戏玩家也可以使用游戏引擎的技术来创造自己的世界,因此他们不需要手动编程各种子系统。 他们只需要做的就是创建内容和代码,然后引擎将为他们处理较低级别的任务。

id Tech 1 Engine是Doom背后的引擎,于1993年开源。这进一步允许人们进行实验(现在您可以访问所有底层代码,而不仅仅是游戏引擎公开的内容)
返回游戏引擎
游戏引擎的核心包括一个子系统,处理诸如“渲染”之类的事情,例如屏幕上的图形。 它还包括一个子系统来处理复杂的计算,例如物理和碰撞。
说到物理引擎,这是我最喜欢的物理系统之一,来自《侠盗猎车手4:幸福感游戏引擎》:

什么是UE4
我们将立即进入人类有史以来最先进的游戏引擎之一,并讨论使它成为游戏开发的良好工具的原因。 这是一个巨大的话题,因此,我只想重点介绍它的一些关键区别功能。
我选择使用虚幻引擎的原因有很多。 它听起来像是广告,但它是当今向公众提供的最先进的游戏引擎之一,它是开源的,可以在Github上下载代码,开箱即用地支持VR,具有出色的渲染和图形功能,它使您可以创建大型的联网开放世界(这是为Fortnight和PUBG提供动力的引擎),您可以添加衰减的空间精确声音。 您甚至可以使用它来创建电影般的游戏视频。
虚幻引擎是由Tim Sweeny创建的,顺便说一句,他还创建了电子游戏ZZT,这是我玩过的第一批游戏(和游戏引擎)之一:

蓝图是一个视觉脚本系统,使您可以直观地查看代码和逻辑的结构,并可以在我们的整个体验中重用对象。
它们是我们可以在UE4中为世界增加互动和生活的两种基本方法之一,并且两者通常都能为我们带来相同的结果。
首先,我们可以使用称为c ++的编程语言和诸如PC上的Visual Studio或Mac上的xcode的集成开发环境进行编码。 另外,蓝图允许我们通过将节点连接在一起来可视化地对逻辑和数据结构进行编程。 蓝图非常惊人,特别是结合对面向对象的编程的理解以及支持c ++语言的概念时,尤其是当我们使用BP系统时,我们会非常满意。
假设我们要创建一个游戏,玩家要负责一个僵尸养老院,并且必须照顾一群年老的僵尸。 今天的任务是建立评分系统。 我们已经完成了僵尸角色的工作,但是我们希望他们在饥饿的大脑中大声喊叫。
通过面向对象的结构,您可以创建一个父级僵尸类蓝图,其中包含所有“僵尸”所共享的所有变量和功能(例如饥饿,速度等),然后创建该父级蓝图的扩展适用于不同类型的僵尸的类,这些僵尸仅具有该僵尸可用的功能和变量,例如冲刺功能或称为“爬上天花板”的功能,尤其是在不酷的情况下。
这些是继承和可重用性的核心属性,这些特性使面向对象的编程如此强大,而虚幻引擎的蓝图系统为非程序员提供了相同的功能。 因此,通过使用蓝图,我们将能够快速进行原型制作,而且还可以学习可以在将来选择采用这些编程语言的核心概念和框架。