末日引擎
这是末日引擎的源代码:一个可移植的、增强的id Software的Doom I/II和Raven Software的Heretic和Hexen的源代码移植版。源代码遵循GNU通用公共许可证(见doomsday/gpl-3.0.txt),但Doomsday 3库除外,它们遵循GNU较宽松通用公共许可证(见doomsday/lgpl-3.0.txt)。
库
libcore是末日引擎3的核心。它是一个C++类框架,包含文件系统、插件加载、末日脚本、网络通信和通用数据结构等功能。几乎所有内容都依赖或将依赖于这个核心库。
libgui在核心库的基础上添加了低级GUI功能,如OpenGL图形、字体、图像和输入设备。它还包含末日UI框架:小部件、通用对话框和抽象数据模型。
libgloom包含渲染器。
libdoomsday是一个应用程序级库,包含客户端、服务器和扩展共享的功能。
libdoomsdaygui扩展了libdoomsday,增加了仅GUI功能,如客户端和shell应用程序共享的小部件。
libgamekit包含游戏扩展库:Doom、Heretic和Hexen。
依赖项
CMake
末日引擎使用CMake编译。需要3.1或更高版本。
SDL 2
SDL 2提供窗口系统集成(窗口、图形API初始化、输入事件、游戏控制器)。此外,SDL2_mixer可用于音频输出。
the_Foundation
the_Foundation是一个用于低级功能(如多线程和Unicode文本处理)的C库。使用build_deps.py
脚本下载和编译。
glbinding
glbinding是一个C++ OpenGL绑定库。使用build_deps.py
脚本下载和编译。
Open Asset Import Library
libgui需要Open Asset Import Library来读取3D模型和动画文件。使用build_deps.py
脚本下载和编译。
FMOD Studio
可选的FMOD音频插件需要FMOD Studio低级程序员API。
FluidSynth
FluidSynth用于使用软件乐器渲染MIDI音乐。FluidSynth可以作为末日引擎主要构建的一部分,在这种情况下还需要GLib 2作为依赖项。