Skip to content

Latest commit

 

History

History
129 lines (93 loc) · 3.84 KB

File metadata and controls

129 lines (93 loc) · 3.84 KB

项目迁移说明

本仓库已归档,后续将不再更新或维护。

所有开发工作已迁移至此项目,新项目在架构上进行了重大优化,核心改进如下:

  • 核心逻辑封装: 将ECS框架、SDL3交互逻辑及其他基础功能, 抽象为独立的core模块,形成类似游戏引擎的底层支撑。
  • 多游戏支持core 模块可支持快速开发不同类型的游戏。 未来计划基于该模块开发多款游戏, 涵盖 survivor(类幸存者)RPG(角色扮演类)MOBA(多人在线战术竞技类)RTS(即时战略类)等类型。
  • 可视化编辑器: 计划开发一款类似《魔兽争霸 3》编辑器的可视化编辑工具, 旨在辅助编程工作,更便捷地创建游戏内容。

欢迎关注新仓库,获取最新开发进展!


一个简单的Roguelike游戏

(还没想好游戏名字。)

license

语言

目录

介绍

演示:

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 以满足你的需求。

  1. 克隆项目
git clone --depth=1 https://github.com/m1dsolo/game.git
cd game
git submodule update --init --depth=1
  1. 编译
cmake -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build -j4
  1. 运行
./build/game

使用

游戏控制如下:

  • 移动
    • 使用 WASD 键移动角色
  • 战斗
    • 选择枪支后使用 左键 射击
    • 选择枪支后使用 R 键重新装弹
    • 选择消耗品后使用 空格键 使用
    • 使用 F 键闪现
    • 使用 G 键丢弃选中的物品
  • 快捷栏
    • 使用 123 等键选择物品
    • 使用 QE 键切换物品
    • 按住 左键 交换物品
  • 菜单
    • 使用 ESC 键显示退出菜单
      • 1 键退出游戏
      • 2 键继续游戏
    • 使用 I 键切换背包菜单
      • 控制与快捷栏相同

许可证

MIT © m1dsolo