Games104(0·课程目录、文件解读、编译运行、主要功能)
games104 目录
课程分为3部分,共22节课
- 架构概述
- 导论
- 分层
- 渲染中的数学
- 各核心系统原理
- 大气和云
- 渲染管线
- 后处理
- 动画技术
- 物理系统
- 粒子
- 工具链
- gameplay
- 网络
- 前沿领域简述
- 动态GI
- GPU
- piccolo源码解读
v0.09
文件解读:
配套的Piccolo_迷你引擎共有9个版本迭代,核心代码是c++,版本控制工具是git,构建工具是cmake
- 以‘ . ‘开头的文件/文件夹,是各个工具的配置文件
- cmake和cmakelists.txt是cmake用于生成构建文件的配置文件
- scripts和build + 平台 开头的文件,bat批处理文件,为了方便构建写的脚本文件
- LICENSE,README,releasenotes自述等
- engine引擎相关:
- 3rdparty 第3方库的源码/2进制文件
- glfw 管理窗口、图形API上下文、输入和事件循环 的跨平台库
- glm 数学库
- imgui 用户ui库
- json11 数据序列化库
- spdlog 日志库
- stb 实用工具库
- tinyobjloader 轻量级OBJ模型加载器
- vulkanmemoryallocator Vulkan内存分配库(简化GPU内存管理)
- vulkanSDK 图形APISDK
- asset 引擎默认关卡相关资产
- bin 包含parser解析器文件,是构建时为模板文件生成功能性代码
- configs引擎启动时需要的配置文件
- jolt-asset物理库相关的shader
- shader引擎启动需要的shader
- template c++模板文件
- source引擎源码
- _generated为模板文件生成功能性代码
- editor编辑器源码
- meta_parser解析器源码
- precompile包含camke脚本和配置文件,使得cmake在构建前使用parser解析源码
- runtime核心源码
- core核心层:提供软件系统常用模块
- 基础库 base (宏、哈希)
- 色彩 color
- 数学库 math
- 元数据系统 meta
- 反射 reflection
- 序列化/反序列化 serializer
- 日志系统 log
- function功能层:提供引擎功能模块。分为框架和子系统两部分
- 框架framework:运行时功能核心框架
- 世界管理器 world_manager 负责管理世界的加载、卸载、保存,和tick下属当前关卡。
- 关卡 level 负责加载、卸载、保存关卡。同时关卡也管理下属GO的tick、创建和删除。
- 游戏对象 object 负责加载、保存GO。同时GO也管理下属组件
- 组件component全都继承自 component.h 中的 Component 类,目前组件包括:
- 动画 animation
- 相机 camera
- 网格 mesh
- 运动 motor
- 粒子 particle
- 刚体 rigidbody
- 变换 transform
- 组件component全都继承自 component.h 中的 Component 类,目前组件包括:
- 游戏对象 object 负责加载、保存GO。同时GO也管理下属组件
- 关卡 level 负责加载、卸载、保存关卡。同时关卡也管理下属GO的tick、创建和删除。
- 世界管理器 world_manager 负责管理世界的加载、卸载、保存,和tick下属当前关卡。
- 子系统
- 动画 animation
- 角色 character
- 控制器 controller
- 全局上下文 global
- 输入 input
- 粒子 particle
- 物理 physics
- 渲染 render
- UI ui
- 框架framework:运行时功能核心框架
- platform平台层:提供操作系统/平台相关的底层功能
- 文件系统 file_service
- 路径 path
- resource资源层:提供各种资产加载、保存功能,资产的结构化数据定义和相关路径配置等
- 资产系统 asset_manager
- 配置系统 config_manager
- 结构化数据定义 res_type
- 全局数据 global
- 全局粒子设置 global_particle
- 全局渲染配置 global_rendering
- 通用数据 common
- 世界 world
- 关卡 level
- 对象 object
- 组件数据 components
- 动画 animation
- 相机 camera
- 粒子发射器 emitter
- 网格 mesh
- 运动 motor
- 刚体 rigid_body
- 其他数据 data
- 动画片段 animation_clip
- 动画骨骼节点 animation_skeleton_node_map
- 基本形状 basic_shape
- 动画混合状态 blend_state
- 相机配置 camera_config
- 材质 material
- 网格数据 mesh_data
- 骨骼 skeleton_data
- 骨骼掩膜 skeleton_mask
- 全局数据 global
- engine文件引擎入口点
- core核心层:提供软件系统常用模块
- test用于存放测试代码
- 3rdparty 第3方库的源码/2进制文件
runtime文件夹下文件内存分布
function > core > resource > engine > platform
构建运行
确保cmake已安装和path配置成功
打开vscode执行下列指令:
- cmake . -B build 指定当前文件夹为工程根目录,生成构建文件到build文件夹里面
- cmake –build build 使用编译器构建项目
- bin/PiccoloEditor 运行可执行文件
注:此处运行v0.02
主要功能:
- game engine 游戏界面
- 渲染场景
- 天空盒
- 光照模型
- 实时阴影
- 纹理
- 模型导入
- editormode
- 编辑器摄像机移动,旋转视角,缩放视角
- 鼠标点击选择物体,并在物体位置出现Gizmos,具体出现什么点击上方的trans,rotate,scale切换
- game mode
- 游戏摄像机视角
- 鼠标被限制在窗口
- 骨骼动画
- 碰撞体
- 渲染场景
- file content 资产文件
- 关联工程的asset文件夹,目前只是可读
- world objects 世界中的对象
- 和世界中的对象关联
- components details 组件的细节
- 每个对象都有名称
- transformComponent组件,可以实时修改世界位置,旋转,缩放
- meshComponent显示网格体资产的路径
- RigidBodyComponent刚体组件,碰撞
- animationComponent骨骼资产路径,混合动画路径
- MotorComponent运动组件,包含speed
- CameraComponent相机组件,可以修改相机的forward,up,left轴
- menu 菜单(序列化)
- reload current level重新加载当前关卡
- save current level保存当前关卡
- exit退出
其他功能:
- 用户界面可以拖放和停靠
- pilot窗口的大小
本文由作者按照 CC BY 4.0 进行授权