这个项目能做什么
Permafrost Engine 是一个用 C 语言编写的 OpenGL 3.3 即时战略游戏引擎。它旨在模拟经典 RTS 游戏,同时融入现代理念。该引擎是 EVERGLORY 的基础,这是一款在 Steam 上发布的旗舰 RTS 游戏,提供免费演示版,包含所有游戏脚本的访问权限,供学习和修改。
主要特性包括:
- OpenGL 3.3 可编程管线,在可用时使用现代扩展
- 自定义文本模型格式以实现工具互操作性,以及用于快速运行时加载的烘焙二进制格式
- 骨骼动画与 GPU 蒙皮,将动画姿态数据批处理到纹理中,以高效渲染大量动画实体
- Phong 反射模型与材质、定向光阴影映射、凹凸/法线/视差映射
- 地形纹理泼溅、天空盒、基于距离的网格 LOD 渲染、使用动态批处理的批量渲染、基于环形缓冲区的 GPU 流式传输
- RTS 和 FPS 摄像机、基于瓦片的地图渲染与自定义文件格式
- 水面渲染,具有反射、折射和软边缘效果
- 使用 Image Quilting 进行程序化纹理合成,使用 Wang Tiling 进行非周期性平铺
- 引擎内部暴露给 Python 2.7 以进行脚本编写,嵌入式交互式 Python 控制台、事件系统、基于 Nuklear 的 UI 框架
- 高效射线投射、地图/场景编辑器、暂停/恢复系统、大型地图的快速渲染
- 地图导航图/网格生成、boids 转向/群集、分层流场寻路、动态障碍物处理
- 使用 Hybrid Reciprocal Velocity Obstacles 和 ClearPath 算法进行动态碰撞避免,基于编队的单位移动,使用匈牙利算法进行最优编队重组
- 使用导航层为不同单位类型/大小进行寻路,陆地/水面/空中单位,并行化移动和寻路计算
- 基于 GPU 的群体模拟与计算着色器,SIMD 加速的位图网格空间索引,实时跟踪实体对动态空间区域的归属
- 音频系统,具有位置效果和多个全局效果通道
- RTS 特性:小地图、单位选择、战斗、战争迷雾、基地建设、工人/生产自动化、资源采集/运输、驻军/运输机制、带弹道物理模拟的远程战斗
- 支持不同分辨率和宽高比,可配置的图形设置
- 整个 Python 解释器状态的序列化/反序列化,保存/恢复任何引擎会话,包括 Python 定义的状态
- 在 2 阶段管线中进行多线程模拟和渲染,高级调试可视化和性能分析工具,轻量级内存核算
- 纤程系统,用于在用户空间调度的轻量级任务,纤程支持的 Python 任务以实现协作式多任务,使用页级写时复制语义的零拷贝分叉
- 跨平台(Linux 和 Windows),Windows 启动器可在错误时自动捕获 minidump 和日志
依赖项包括 SDL2、GLEW、Python 2.7、OpenAL Soft、mi-malloc、stb_image、khash 和 nuklear。所有这些都可以从源代码构建,并与游戏二进制文件一起分发。
提供了 Linux 和 Windows 的构建说明(使用 mingw-w64 或 MSYS2,也提供 Visual Studio 2022 解决方案)。该引擎在 GPLv3 下获得许可,并带有特殊链接例外,替代许可可根据具体情况授予。
开发过程通过一系列 YouTube 开发日志进行记录,涵盖保存 Python 解释器、群体寻路、战争迷雾、性能优化、纤程、基地建设等主题。该项目有一个活跃的 Discord 社区供讨论。
评论
0 评分人数达到10人后显示
登录后参与讨论。