什么是引擎

news/2024/10/17 0:04:22/

什么是引擎

前言

引擎这个词在编程中出现越来越多,比如游戏引擎,爬虫引擎,规则引擎。引擎这个最初在汽车里面代表发动机的词,到底是指什么意思,而引擎在不同编程的语境中具体又代表了什么,本文就是为了解释这些疑问而写的。

从词源说起

引擎,中文百度百科说的是汽车动力的来源。换句话说,就是驱动汽车发动、前进、加速的一种组件。当引擎用在游戏中时,游戏引擎指的是控制所有游戏功能的主程序。

游戏与状态

在游戏中,引擎被抽象为控制所有游戏功能的主程序。那么,游戏引擎如何控制游戏功能呢?想象我们再玩一个网络游戏,首先有一个游戏图,然后我们输入一些操作,控制人物的行为,人物在游戏中与游戏中的对象进行交互,从而产生一种新的状态。
如果把游戏中所有的对象看作状态机,游戏引擎就是改变状态的规则,它定义了对象(状态机)在什么情况下应该转变为另一种状态并且完成这个状态的转换。

汽车的状态

汽车,开始是静止状态。引擎,定义了当打火的时候汽车发动,当踩油门的时候,引擎会让汽车进行加速。引擎是改变状态的动力,它定义了状态如何改变并且将这种改变实现。在物理世界中,引擎通过复杂的物理过程实现状态的改变;在代码世界中,引擎通过代码的执行和调用实现程序状态的改变。

调度与规则

而引擎在调用的时候,如果资源很少直接进行调用,不会出什么问题(甚至不需要所谓引擎的概念,直接运行一个所有代码的在main函数里面的程序即可)。当需要调用的资源/函数很多的时候,引擎还承担起调度的功能,资源之间相互具有依赖性,先执行什么,再执行什么,这个由引擎来决定。拿汽车举例,发动汽车气缸内的物理过程顺序不能错,否则就会出现不同的结果。物理过程,可以理解为使引擎内部的自然规则,在实际代码中,我们可以自定义自己的规则。

代码库与接口

还有一种理解是,引擎就是为了实现某个功能已经封装好的库。有人也许会问,这和API有什么区别?API是提供调用封装好的库的接口,一个引擎为了完成某个功能,必然会调用已经实现的函数代码的接口,并且这种调用是基于引擎功能而制定的调用组合。引擎这个概念,其实也就是抽象,在更高一个层面看代码,将森林简化成一棵树。

总结

从状态的角度讲,引擎是为了实现状态的转换。而状态的转换,需要定义规则。即在什么情况下作出什么反应。
从功能的角度讲,引擎是封装了代码/函数库,通过调用代码/函数库的接口来实现特定的功能。
从抽象的角度讲,引擎简化了我们看问题的视角。使得我们通过引擎就可以对程序的功能状态进行改变,从而实现丰富的内容和功能。


http://www.ppmy.cn/news/569989.html

相关文章

游戏引擎Flax Engine源码分析(十一)渲染

2021SCSDUSC 一、概述 这篇博客继续分析2D渲染的后续内容。 二、分析 函数DrawBezier()绘制贝塞尔曲线。参数:p1起点、p2第一个控制点、p3第二个控制点、终点、color线条颜色、thickness线条粗细。 static void DrawBezier(const Vector2&a…

Unreal Engine虚幻引擎 5

ref:http://next.poppur.com/Stylish/10596.html https://www.unrealengine.com/en-US/blog/a-first-look-at-unreal-engine-5 Author:Alex 发表时间2020-05-14 12:09:33 2012 年,Epic Games 首度展示了游戏引擎 Unreal Engine 4 的实机视频,该引擎强…

Rendering Engine 主流的浏览器内核(排版引擎、渲染引擎、解释引擎)有哪几种,分别的特点...

一、A web browser engine A rendering engine is software that draws text and images on the screen. The engine draws structured text from a document (often HTML), and formats it properly based on the given style declarations (often given in CSS). Examples of…

高层游戏引擎——基于OGRE所实现的高层游戏引擎框架

这是意念自己的毕业论文,在一个具体的实践之中,意念主要负责的是物件和GUI之外的其他游戏系统。意念才学疏陋,望众位前辈不吝赐教。由于代码质量不高、环境很难于配置、资源包过大等问题,意念暂先不提供代码和程序,未来…

著名游戏引擎及其开发游戏

著名游戏引擎及其开发游戏 Unreal 虚幻引擎(Unreal Engine)是一款由Epic Games开发的游戏引擎,多用于开发第一人称射击游戏,最新版本为虚幻引擎3。虚幻3引擎(Unreal Engine 3)又称虚幻引擎3,是…

虚幻引擎(1)-角色跳跃

文章目录 前言其他介绍下一篇笔记动态预览图蓝图预览 一、创建操作映射(绑定跳跃按键)[1]. 打开操作映射界面[2]. 添加操作映射 二、蓝图节点介绍[1]. 触发事件[2]. 跳跃[3]. 停止跳跃 三 、角色蓝图[1]. 创建角色蓝图类[2]. 角色蓝图类的编辑[3]. 添加组件[4]. 调整相机视角[5…

游戏引擎Flax Engine分析(八)渲染

2021SCSDUSC 一、简述 我们继续之前的博客分析2D渲染服务后续的内容。边学习边分析渲染流程。 二、分析 接下来一些服务主要提供对于变换矩阵、颜色等熟悉的操作,诸如入栈、弹出等,这里不再赘述。 我们先看一下在之前分析的结束渲染时进行的批处理元素的…

@Valid接口参数校验怎么做,详细教程

接口参数校验教程 一、在字段上可以使用这个注解来设置校验 Null:被注释的元素必须为null NotNull:被注释的元素不能为null AssertTrue:该字段只能为true AssertFalse:该字段的值只能为false Min("value","messa…