游戏引擎概述-Part1

news/2024/11/29 6:33:44/

一、简述自己的学习心路历程      

          自从业UNITY以来已经有4个月多了,回想起来自己从工作以来就很少写博客了,也算督促一下自己,回想自己从最早的Unity开始,入手C#和编辑器、Unity开发界面,再到自己学一些Unity的小项目,直到入职,直到现在只能说慢慢对Unity有了一些了解,也大概知道使用Unity引擎可以做哪些事,怎么做,项目流程等等...

        与此同时对虚幻引擎有了一些了解,慢慢自己有闲暇的时间也大概学习了C++和虚幻蓝图等,也做了一些官方的C++小案例和谌嘉诚的蓝图网课,这个期间比较有意思的是我除了学习Unity和虚幻,出于开发需求也学习了一个轻量级引擎Inscape VTS,是采用了纯蓝图的方式进行项目开发,所以自己从事虚仿行业一下接触了三个引擎...

        最早接触Unity时,同事给了第一个项目就是让我去调整HDRP的灯光布置和渲染,后处理等等(虽然后面才知道灯光这种事是美术干的..),但是拿着一本HDRP的书死磕一个月回想起来还是很有耐心的,从那以后就自己摸索学习,自己能够在Unity中开发VR项目,大概会浏览大神写的源码,知道如何调用,如何使用开发工具,知道里面有自带的物理系统,也知道UGUI,NGUI等UI基础开发,还能嵌入音频,视频等,甚至还能自己制作材质,也能自己搭建服务器,将自己的项目联网,也可以使用Web展示自己的项目,所以感觉东西越学越多,那会自己每天接受的信息量巨大

        在那之后感觉自己对Shader特别感兴趣,觉得能够用HLSL手写Shader很厉害,所以又补了补Shader的知识,买了UnityShader入门精要,又买了OpenGl蓝皮书,不过只是浅浅的看了看,发现目前公司的项目不太支撑我能继续学习Shader..(亦或是兴趣并不是呢么浓厚?)后来到实际的项目开发中,后续肯定还是要补Shader部分的...

        后来自己开始管理一个小的项目,又把之前学过的数据结构算法拿过来看了看,虽然自己写的东西完全是不堪入目,不过过程中对代码的开发维护管理有了自己的认知,也越来越发现自己在代码上的功夫太浅,之前自己写的有关C#和C++的一些东西不实践很容易就忘掉了,所以一定要不断学习,也要不断练习才能进步...

二、入坑游戏引擎

        上一个月开始吧,偶然一天觉得自己现在泛泛的了解过三个引擎了,大概直到引擎之间的共性是什么了,所以看了看GAMES104的部分课程,知道引擎的开发历史(其实最早有游戏引擎的概念是在当时面试老板的书架子上有一本游戏引擎开发,当时特别感兴趣,还拿过来看了看...),2008年的时候,游戏已经成为了经济价值上百亿美元的产业了,那个时候引擎已经做的很精彩了,比如Quake和开山鼻祖Doom引擎,UE引擎,Unity引擎,CryEngine,寒霜引擎,Source等已经是具有完整功能的可复用软件的开发套件

        几乎所有的引擎都含有一组常见的核心组件,比如渲染引擎,碰撞,物理引擎,动画系统,UI系统,音频系统,对象模型和人工智能系统等等,这也就在业界形成了一些半标准化的设计方案,想要做一套完整的引擎是相当不容易的,所以称游戏开发堪称软件开发的天花板,它几乎涉及了所有计算机的知识,从底层到顶层,各种编程语言,对数据结构算法,内存管理,渲染引擎,动画系统,物理系统的使用可谓到了极致,而在第二版的游戏引擎架构一书中,把游戏团队的结构划分成如下结构:

        工程师:设计并实现软件,分为运行时程序员和工具程序员

        艺术家:概念艺术家(游戏原型设计),也就是原画师

                        3D建模师:为游戏中的所有事物制作三维几何模型

                        纹理艺术家:制作贴图,纹理等内容

                        灯光师:布置游戏世界的静态和动态光源

                        动作捕捉演员:提供一些原始的动作数据

                        动画师:为游戏中的角色和物体添加动画

                        音效制作师:制作游戏中的音效

                        配音演员和作曲家:为游戏的背景音乐和台词进行配音

        游戏设计师:在一般的游戏公司里面,这样的角色一般称为游戏策划

        游戏制作人:负责管理游戏开发进度等

        其他管理人员:负责行政,IT,公司硬件支持等..

        发行商和工作室:发行商负责游戏的市场策划,制造和分销,发行商都是一些比较大的其他也,比如EA,THQ,索尼,任天堂等等,很多游戏工作室不属于发行商,他们只是把自己制作的游戏卖给了发行商

三、什么是游戏引擎?

        最早的游戏引擎就起源于20世纪90年代的中期,那时候有一个游戏横空出世,就是大名鼎鼎的Doom,毁灭战士,他的开发者就是游戏界人尽皆知的John D. Carmack II,约翰科马克,在那个时候这个游戏已经清晰的划分成了三维图形渲染引擎,碰撞检测系统和音频系统,美术资产等,这也是我们游戏引擎的开山鼻祖,直到后来的雷神之锤三(Quake)和虚幻引擎等

        在引擎设计的时候就考虑到了复用性和mod,但是起初在设计引擎的时候是针对某种特定的,比如我们用来制作FPS的游戏引擎,对于第一人称射击游戏的复用性要比其他类型的游戏好的多,但是随着时代的推移,游戏引擎或中间组组件越来越通用,随着计算机硬件速度和显卡的应用,不同游戏类型的图形引擎差异已经很小了

根据第二版游戏引擎架构来说,做如下划分:

游戏引擎通常是由工具套件和运行时组件两部分组成。

运行时组件包含如下部分:

目标硬件

设备驱动程序

操作系统

第三方软件开发包和中间件

平台独立层

核心系统

资源管理器

渲染引擎

剖析和调试工具

碰撞和物理

动画

人体学接口设备

音频

在线多人/网游

游戏性基础系统

工具和资产通道

工具套件就包括了一些离线开发工具

用Games104的分类方式我们可以将游戏引擎分类成为如下模块:

我们可以用一些流程图来将游戏引擎的模块化,方便后续的继续补坑

 动画系统:

渲染:

物理系统:

动画系统:

基础架构:

工具链:

音效:

网络:

面向数据编程和任务系统:

GamePlay:


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

相关文章

Hazel游戏引擎

Hazel游戏引擎 Cherno开源项目gitee版本github到gitee(码云) Cherno开源项目gitee版本 看了b站的游戏引擎开发教学,内附的项目地址是github的,国内访问实在不便,遇到了诸多问题:所以将他的项目从github迁移到了gitee上。2021/10/…

Chrome V8引擎介绍

0.v8引擎出现的原因 这里先说一下什么是编译型语言和解释性语言: 编译型语言: 在程序执行之前必须进行专门的编译过程,有如下特点: 只须编译一次就可以把源代码编译成机器语言,后面的执行无须重新编译,直…

十大最牛游戏引擎

游戏引擎就像是游戏的发动机,好的游戏引擎能够让游戏开发事半功倍。而对玩家们来说,游戏引擎能够带来最直观的感受就是游戏的画面和细节表现。从光影声效到场景细节,从画面触感到各种细腻体验,再到人物表情的捕捉,花草…

HTML5开源RPG游戏引擎lufylegendRPG 0.1发布

一,小小开篇 首先不得不先介绍一下这个引擎: lufylegendRPG是lufylegend的拓展引擎,使用它时,需要引入lufylegend。同时您也需要了解lufylegend语法,这样才能更合理地运用lufylegendRPG。该引擎封装了lufylegend的一些…

游戏引擎简介

目录 什么是游戏引擎游戏引擎模块划分常见的游戏引擎碎碎念 什么是游戏引擎 游戏引擎是由多个子系统共同构成的复杂系统,它几乎涵盖了游戏开发过程中的所有重要环节。 以上来自百度百科,听起来很牛,上次听到这么牛的描述还是上次… 游戏引…

游戏引擎概述

定义: 游戏引擎是指一些已编写好的可编辑电脑游戏系统或者一些交互式实时图像应用程序的核心组件。这些系统为游戏设计者提供各种编写游戏所需的各种工具,其目的在于让游戏设计者能容易和快速地做出游戏程式而不用由零开始。大部分都支持多种操作平台&a…

OGRE渲染引擎

1.OGRE简介 OGRE(Object -Oriented Grapjics Rendering Engine),即面向对象的3D引擎,诞生于1999年。它是为了让开发人员更加容易、更直接地利用硬件加速的3D图形系统开发应用。这类库隐藏了底层系统库Direct3D和OpenGL的所有细节&#xff0c…

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

2021SCSDUSC 一、简述 上一篇博客将开始渲染的整个流程介绍完毕,这篇博客将对后续渲染服务进行进一步的分析(注:仍然仅关注于2D渲染部分) 二、分析 我们接下来分析的部分是结束渲染的操作,也就是Render2D中的End操作&…