本仓库已归档,后续将不再更新或维护。
所有开发工作已迁移至此项目,新项目在架构上进行了重大优化,核心改进如下:
- 核心逻辑封装:
将
ECS框架、SDL3交互逻辑及其他基础功能, 抽象为独立的core模块,形成类似游戏引擎的底层支撑。 - 多游戏支持:
core模块可支持快速开发不同类型的游戏。 未来计划基于该模块开发多款游戏, 涵盖survivor(类幸存者)、RPG(角色扮演类)、MOBA(多人在线战术竞技类)、RTS(即时战略类)等类型。 - 可视化编辑器: 计划开发一款类似《魔兽争霸 3》编辑器的可视化编辑工具, 旨在辅助编程工作,更便捷地创建游戏内容。
欢迎关注新仓库,获取最新开发进展!
演示:
game_v0.1.2.mp4
这是基于 SDL3 和我的 ECS 框架开发的一个简单的Roguelike游戏。
这款游戏是一个2D顶视角的Roguelike生存游戏。 目标是在无尽的敌人波次中生存下来。 在每个波次开始之前,你需要升级敌人。 然后,你有半分钟的时间来抵御敌人的猛烈攻击。 在此期间,你可以升级自己,收集资源,并建立强大的防御结构。
由于游戏基于高度可扩展的 ECS 框架,
并且主要的游戏信息可以通过 JSON 配置,
你可以轻松地添加更多的怪物、物品以及修改AI等内容。
项目使用了以下技术:
-
ECS(实体-组件-系统)架构,提供高度可复用的模块和高效的执行速度 -
QuadTree加速碰撞检测 -
SceneGraph管理对象之间的逻辑关系和渲染顺序 -
BehaviorTree管理敌人和防御塔的AI逻辑 -
Lazy Theta*寻路算法,提供比A*更平滑的移动效果 -
使用
JSON配置游戏设置、怪物信息、物品信息、升级奖励、怪物升级信息、行为树等 -
ECS依赖我的 ECS 库。 -
QuadTree和其他模块主要依赖我的 wheel 库。 更多细节请参考该库的文档。
该项目使用 C++23 编写,并使用 CMake 构建。
目前仅在我自己的电脑(Arch Linux)上进行了测试。
如果你使用其他操作系统,可能需要修改 CMakeLists.txt 以满足你的需求。
- 克隆项目
git clone --depth=1 https://github.com/m1dsolo/game.git
cd game
git submodule update --init --depth=1- 编译
cmake -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build -j4- 运行
./build/game游戏控制如下:
- 移动
- 使用
WASD键移动角色
- 使用
- 战斗
- 选择枪支后使用
左键射击 - 选择枪支后使用
R键重新装弹 - 选择消耗品后使用
空格键使用 - 使用
F键闪现 - 使用
G键丢弃选中的物品
- 选择枪支后使用
- 快捷栏
- 使用
1、2、3等键选择物品 - 使用
QE键切换物品 - 按住
左键交换物品
- 使用
- 菜单
- 使用
ESC键显示退出菜单1键退出游戏2键继续游戏
- 使用
I键切换背包菜单- 控制与快捷栏相同
- 使用
MIT © m1dsolo