![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Hazel游戏引擎
文章平均质量分 96
弹吉他的小刘鸭
Happiness is nothing but self-building.
展开
-
Hazel引擎学习(十二)
现在的窗口其实只有Viewport,没有GameView窗口。为了完善Scene的相关功能,可以先来看看别的游戏引擎里的设计,Unity里会有SceneView和GameView两个窗口,一个负责绘制场景,一个负责代表GamePlay的实际窗口,而UE里的Viewport和GameView则共用一个窗口,按F8 eject可以切换SceneView和GameView。原创 2023-12-08 17:12:51 · 1436 阅读 · 2 评论 -
Hazel引擎学习(十一)
我自己维护引擎的github地址在这里,里面加了不少注释,有需要的可以看看参考视频链接在这里很高兴的是,引擎的开发终于慢慢开始往深了走了,前几章的引擎UI搭建着实是有点折磨人,根据课程,接下来的引擎开发路线是:不过由于我对某些章节比较感兴趣,所以实现模块的顺序可能跟Cherno课上的顺序略有不同之前在学Unity的时候,我就对这一块特别感兴趣,因为我在没有完全了解C#、Mono和C++之间的交互原理之前,去看Unity的源码是一件非常费劲的事情,所以把这几课的内容提前实现了。参考:Mono Embeddin原创 2023-03-22 13:49:57 · 1734 阅读 · 0 评论 -
Hazel引擎学习(十)
我自己维护引擎的github地址在这里,里面加了不少注释,有需要的可以看看参考视频链接在这里经过了漫长的过程,终于把无聊的UI部分结束了,接下来主要是搭建引擎的基础部分,包括:具体以下几点:Unity把场景存成了Yaml格式的文本文件,GameObject与Components之间的信息、以及每个Component在inspector上显示的内容,都会存在Scene文件里;而UE里的场景对应文件为格式,貌似并没有完全把场景存为文本文件,如下图所示:其实还可以用JSON来存储,但是这种格式在merge的时原创 2022-09-22 17:22:10 · 2232 阅读 · 8 评论 -
Hazel引擎学习(九)
我自己维护引擎的github地址在这里,里面加了不少注释,有需要的可以看看参考视频链接在这里Entity Component SystemEntity-Component-System (ECS) is a software architectural pattern mostly used on video game development for the storage of game world objects. An ECS follows the pattern of “entities原创 2022-08-08 17:58:41 · 3047 阅读 · 1 评论 -
Hazel引擎学习(八)
我自己维护引擎的github地址在这里,里面加了不少注释,有需要的可以看看参考:https://www.youtube.com/watch?v=Yw7RpvmqvSE&list=PLlrATfBNZ98dC-V-N3m0Go4deliWHPFwT&index=65&t=120s&ab_channel=TheChernoTesting Hazel’s Performance这节课主要是对当前的Hazel游戏引擎进行性能测试,拿了网友的一个Demo进行测试,整体来说,性能原创 2022-04-18 15:19:06 · 3924 阅读 · 1 评论 -
Hazel引擎学习(七)
Making a GAME in ONE HOUR using MY ENGINE参考:https://www.youtube.com/watch?v=qITIvVV6BHk&ab_channel=TheCherno这个视频是看了看Unity里别人做类似Flappy Bird的视频,不过这里的Bird换成了Rocket,来看看用Hazel来实现对应的游戏,需要什么额外的功能:需要Particle System来代表火箭后面的喷射装置需要碰撞检测,判断Rocket是否撞到了墙上重力模拟一原创 2022-04-05 19:54:22 · 5406 阅读 · 2 评论 -
Hazel引擎学习(六)
# How to Build a 2D Renderer不管是3D还是2D的游戏引擎,都需要渲染2D的东西,因为一个游戏里是必须有UI的。## 渲染架构目前引擎里Render的代码是这样的:```cpp// 把Camera里的VP矩阵信息传到Renderer的SceneData里Hazel::Renderer::BeginScene(m_Camera);{ glm::mat4 scale = glm::scale(glm::mat4(1.0f), glm::vec3(0.1f));原创 2022-03-22 23:09:24 · 1304 阅读 · 0 评论 -
Hazel引擎学习(五)
Render Flow And Submission背景在Hazel引擎学习(四),从无到有,绘制出了三角形,然后把相关的VerterBuffer、VertexArray、IndexBuffer进行了抽象化,也就是说目前Application里不会有具体的OpenGL这种平台相关的代码,不过还剩下一个DrawCall没有进行抽象化,也就是里面的glDrawElements函数。Begin Scene为了搭建一个Renderer,先要从Scene的环境搭建起,在Begin Scene阶段,会设置其周原创 2022-02-11 00:17:44 · 3355 阅读 · 0 评论 -
Hazel引擎学习(四)
Rendering在视频的第23课,开始讲到了游戏引擎最核心的部分——RenderingIntroductionRenderging负责在屏幕上的绘制工作,同时接受与外部Input的交互,为了表现更好的画面效果,需要使用Graphics Processing Unit(GPU),GPU的主要优点是:能并行处理、能很快的进行数学运算(比如矩阵的运算)Design Architecture如何Draw API Line,举个例子,不同的平台上渲染的方式都不同,那么如何设计出那些通用的API方法,也就是原创 2021-04-18 14:13:46 · 1748 阅读 · 3 评论 -
Hazel引擎学习(三)
一. Layer设计完Window和Event之后,需要创建Layer,Layer这个概念比较抽象,可以类比画画时候的Layer,具体在游戏里,比如游戏画面可能是离摄像机最远的Layer,然后依次可能会有UI Layer和Debug Layer,游戏里的Layer应该具备最基本的两个功能:可以在该Layer上渲染一些东西和接受外部的Event,所以Layer类需要有以下内容:OnUpdate:用于处理渲染的loopOnEvent:用于处理事件的大概代码如下在游戏里经常会有多个Layer,当原创 2020-11-12 23:15:49 · 2234 阅读 · 10 评论 -
Hazel引擎学习(二)
Precompiled Headers为了避免头文件被反复编译,需要加上pch文件,主要有以下几点需要在VS工程里添加hzpch.h和hzpch.cpp文件,前者放所有常用的库的头文件,对于后者,一般的pch是不需要cpp文件的,但是VS工程里需要这个东西,所以得加上,然后让他引用hzpch.h然后在premake5.lua文件里进行修改,添加两个参数,pchheader “…” 和 pchsource “…” ,后者一般只是VS工程需要,其他平台会忽略这个,再次Build工程后,项目属性配置里会显原创 2020-07-30 12:55:16 · 3970 阅读 · 3 评论 -
Hazel引擎学习(一)
两课的内容需要去做第一课1.SetUp项目,生成的文件在bin目录下,生成的intermediate文件在bin-int目录下2.两个工程,一个叫Hazel,作为引擎,一个叫SandboxApp,作为实际使用的例子, 一个是dll,一个是exe3.可能要编辑solution的顺序,让sandboxApp在最上面,最为setup project4.只保留64位平台第二课建立宏,来实现dllimport和dllexport建立Apllication文件,然后在exe里实现public继承定义原创 2020-07-04 23:55:33 · 4501 阅读 · 4 评论