从0开发游戏引擎之 序言(引擎内主要模块)

简介: 从0开发游戏引擎之 序言(引擎内主要模块)

大概是17年9月刚毕业工作的时候花了6个多月写的一个游戏引擎,当时是参照的nehe的openGl教程和网上的许多资料一步步写出来的,当时技术水平比较菜,有不少代码是参考别人的,主要完成了:


UI库、


音乐库(Audio4Bass)、


视频播放器、


基础数学库、


几何碰撞库、


几何绘制库、


粒子发射器、


事件系统、


assimpModel库、


2d序列帧动画、


2d序列帧动画局部碰撞、


地图编辑器、


格子地图、


地形、八叉树分块优化、


自由相机、第一人称相机、天空盒、 高斯模糊等着色器效果。


音乐库和assimpModel库都是网上找的,使用Audio4Bass的主要原因是开源的不收费,用于学习感觉开源工具比较好,模型库当时找了一段时间但是也没找到开源的就使用了assimpModel库。      


其他的基本上都是自己堆出来的。具体的在每一章里面详细的说。到时候文章完结了之后会把源码放到github上去。


后续文章会以结果为导向,先讲干了什么,在一步步的讲每一个函数是干啥的,最后贴完整代码。

相关文章
|
人工智能 安全 Unix
游戏编程之九 设计工具之游戏引擎
游戏编程之九 设计工具之游戏引擎
78 0
|
开发框架 开发者 JavaScript
HarmonyOS学习路之方舟开发框架—学习ArkTS语言(状态管理 三)
子组件中被@Link装饰的变量与其父组件中对应的数据源建立双向数据绑定。
|
17天前
|
JavaScript 数据管理 编译器
揭秘 ArkTS 与 TypeScript 的神秘差异:鸿蒙系统开发者的必备知识与实战技巧
【10月更文挑战第18天】ArkTS 是华为为鸿蒙系统(HarmonyOS)推出的开发语言,作为 TypeScript 的超集,它针对鸿蒙系统的分布式特性和需求进行了优化和扩展。ArkTS 强化了分布式数据管理、类型系统、编译与运行时性能,并支持声明式 UI 和专为鸿蒙设计的 API,使开发者能够更高效地开发跨设备协同工作的应用。
46 6
|
2月前
|
开发框架 JSON 缓存
震撼发布!Python Web开发框架下的RESTful API设计全攻略,让数据交互更自由!
在数字化浪潮推动下,RESTful API成为Web开发中不可或缺的部分。本文详细介绍了在Python环境下如何设计并实现高效、可扩展的RESTful API,涵盖框架选择、资源定义、HTTP方法应用及响应格式设计等内容,并提供了基于Flask的示例代码。此外,还讨论了版本控制、文档化、安全性和性能优化等最佳实践,帮助开发者实现更流畅的数据交互体验。
74 1
|
6月前
|
Android开发
Android游戏引擎AndEngine入门资料
Android游戏引擎AndEngine入门资料
40 3
|
6月前
|
开发框架 编译器 定位技术
探索游戏开源世界:引擎与框架的宝库
本文介绍了多个开源游戏引擎和框架,如 Bevy(用 Rust 构建)、Mach、Axmol、Cocos、Open 3D Engine、KorGE、Tiled、OpenRA 和 Godot。这些工具降低了游戏开发的门槛,支持跨平台开发,并推动了游戏行业的发展。
|
6月前
|
前端开发
开发指南017- 移动前端结构
移动前端采用uniapp架构,主要目录如下:
HarmonyOS学习路之方舟开发框架—学习ArkTS语言(状态管理 四)
被@Observed装饰的类,可以被观察到属性的变化;子组件中@ObjectLink装饰器装饰的状态变量用于接收@Observed装饰的类的实例,和父组件中对应的状态变量建立双向数据绑定。这个实例可以是数组中的被@Observed装饰的项,或者是class object中是属性,这个属性同样也需要被@Observed装饰。单独使用@Observed是没有任何作用的,需要搭配@ObjectLink或者@Prop使用。
|
存储 算法 前端开发
GIS前端编程-Leaflet前端扩展开发实践
GIS前端编程-Leaflet前端扩展开发实践
142 0
GIS前端编程-Leaflet前端扩展开发实践
|
存储 开发框架 JavaScript
HarmonyOS学习路之方舟开发框架—学习ArkTS语言(状态管理 五)
LocalStorage是ArkTS为构建页面级别状态变量提供存储的内存内“数据库”。应用程序可以创建多个LocalStorage实例,LocalStorage实例可以在页面内共享,也可以通过GetShared接口,获取在UIAbility里创建的GetShared,实现跨页面、UIAbility内共享。组件树的根节点,即被@Entry装饰的@Component,可以被分配一个LocalStorage实例,此组件的所有子组件实例将自动获得对该LocalStorage实例的访问权限;