Skip to content

Tencent/AILightGame

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 

Repository files navigation

AILightGame

面向 AI 辅助生成的轻量级游戏框架与模板库。基于 Lua(UnLua + Unreal Engine),提供一套数据驱动的游戏核心框架(FrameScript)与开箱即用的完整游戏模板(GameTemplates)。

AILightGame 的目标是:让 AI(或开发者)能够根据自然语言需求,快速匹配到最合适的游戏模板,并通过数据配置 + 逻辑脚本的方式,低成本地定制出一款可运行的轻量游戏。


特性

  • 数据驱动:角色、技能、子弹、Buff、关卡、交互物、UI 等全部通过 *Configs.lua 配置声明,逻辑与数据分离。
  • 配置热覆盖:通过 unified_data_control_config.json + DataManager 在不改动模板配置源码的前提下覆盖数值。
  • 完整子系统:内置角色、AI、主动/被动技能、子弹、物理、Buff、装备、关卡、交互物、UI、网络、排行榜、云存储等系统。
  • UE 能力封装LightGameLib 将引擎能力(相机、粒子、音频、动画蓝图、样条线、浮动文字等)封装为易用的 Lua 库。
  • AI 友好index.json 提供带关键词与权重的模板匹配索引;每个模板附带 template.json(匹配提示)、GameDesignDoc.md(设计文档)与 code_summary.md(代码摘要),便于 AI 理解与二次开发。
  • 6 套完整模板:涵盖动作、生存、自走棋、回合制、射击、塔防等主流玩法原型。

目录结构

AILightGame/
├── FrameScript/                 # 游戏核心框架(引擎侧 Lua 运行时)
│   ├── Main.lua                 # Lua 环境启动入口,加载全局模块
│   ├── Launcher.lua             # 逻辑启动器,初始化所有子系统 & 分发输入/Tick
│   ├── Global/                  # 全局基础设施
│   │   ├── EventSys.lua         # 事件系统
│   │   ├── LogicScriptMgr.lua   # 逻辑脚本管理器(驱动 LogicTick)
│   │   ├── InputMgr.lua         # 输入管理(键鼠分发)
│   │   ├── GlobalEnums.lua      # 全局枚举
│   │   ├── Utils.lua / json.lua # 工具与 JSON 解析
│   │   └── ...
│   ├── GameData/                # 数据驱动的各功能子系统
│   │   ├── Character/           # 角色系统(Sys / Proxy / Structs / Enums / ConfigMaker)
│   │   ├── Skill/               # 主动/被动技能系统
│   │   ├── Projectile/          # 子弹系统
│   │   ├── Buff/                # Buff 系统
│   │   ├── AI/                  # AI 系统
│   │   ├── Level/               # 关卡系统
│   │   ├── Interactor/          # 可交互物系统
│   │   ├── Equipment/           # 装备系统
│   │   ├── Physics/             # 物理系统
│   │   ├── AnimBlueprint/       # 动画蓝图系统
│   │   ├── CharacterAppearance/ # 角色外观系统
│   │   ├── UI/                  # UI 管理
│   │   ├── Net / Rank / CloudStorage / ProjectSettings/
│   │   ├── ConfigTemplates/     # 各类配置模板(供生成新配置时参考)
│   │   └── DataManager.lua      # 配置数值覆盖管理器
│   └── UE_Package/
│       ├── LightGameLib/        # UE 引擎能力的 Lua 封装库
│       │   ├── Camera / Particle / Audio / Video / FloatText / WorldText
│       │   ├── Character / Skill / Projectile / Buff / Interactor / Level
│       │   ├── UI/              # UI 组件库
│       │   └── ...(数学、字符串、数组、样条线等工具)
│       └── Custom/              # 自定义扩展加载
│
├── GameTemplates/               # 可复用游戏模板库
│   ├── index.json               # 模板匹配索引(关键词 + 权重,供 AI 选型)
│   ├── third_person_action/     # 第三人称动作
│   ├── vampire_survivors/       # 类吸血鬼幸存者(自动开火生存)
│   ├── auto_chess/              # 自走棋
│   ├── turn_based_battle/       # 回合制战斗
│   ├── topdown_shooter/         # 俯视角射击
│   └── tower_defense/           # 塔防
│
└── LICENSE.txt                  # MIT 协议

核心框架(FrameScript)

启动流程

  1. Main.lua:Lua 环境启动后最先执行,加载全局枚举、设置、工具、类定义与 UE 扩展包。
  2. Launcher.lua:作为逻辑世界上下文(G_WorldContext),按序 require 并初始化所有子系统,随后:
    • Init() / InitOver():两段式初始化,解决子系统间依赖。
    • LogicTick(DeltaTime):每帧驱动逻辑脚本管理器。
    • OnKeyDown/UpOnMouseButton*OnMouseMove/Wheel:输入事件分发到 G_InputMgr

全局单例(部分)

全局对象 职责
G_EventSystem 事件订阅 / 派发
G_LogicScriptMgr 逻辑脚本注册与 Tick 驱动
G_InputMgr 输入管理与分发
G_CharacterSystem 角色生成与管理
G_ActiveSkillSystem / G_PassiveSkillSystem 技能系统
G_ProjectileSystem 子弹系统
G_BuffSystem Buff 系统
G_LevelSystem 关卡系统
G_InteractorSystem 可交互物系统
G_EquipmentSystem 装备系统
G_UIManager UI 管理
G_NetSystem / G_RankSystem / G_CloudStorageSystem 网络 / 排行榜 / 云存储

数据驱动与配置覆盖

  • 每个子系统的数据以 *Configs.lua 的形式声明(返回一张配置表)。
  • 配置在 return 处交由 DataManager.Resolve(...) 处理,合并 unified_data_control_config.json 中用户/AI 覆盖的数值,无需改动模板源码即可调参
local DataManager = require("GameData.DataManager")
local Configs = {}
Configs["Hero"] = { MovementData = { MoveSpeed = 600 } }
return DataManager.Resolve("CharacterConfigs", "Configs", Configs)

游戏模板(GameTemplates)

内置 6 套完整、可运行的游戏模板,覆盖主流玩法原型:

模板 ID 名称 玩法要点
third_person_action 第三人称动作 3D 动作 / 连招 / 极限闪避时停 / Boss 战 / 角色切换
vampire_survivors 类吸血鬼幸存者 自动开火 / 无尽怪潮 / 经验升级三选一 / 生存
auto_chess 自走棋 六边形棋盘布阵 / 三合一升星 / 羁绊 / 商店经济
turn_based_battle 回合制战斗 回合行动 / 技能点 / 充能大招 / 单群攻目标选择
topdown_shooter 俯视角射击 WASD + 鼠标射击 / 弹夹换弹 / 清场闯关 / 武器切换
tower_defense 塔防 建塔 / 固定路径 / 波次进攻 / 塔升级 / 基地保卫

模板选型(index.json)

GameTemplates/index.json 为每个模板定义了若干系统标签 + 关键词 + 权重,供 AI 根据用户的自然语言需求进行加权匹配、自动选出最合适的模板。

单个模板的结构

vampire_survivors 为例,每个模板均遵循统一结构:

<template>/GameScript/
├── GameDataConfigs/                  # 数据层:各子系统配置
│   ├── Character/  CharacterConfigs.lua
│   ├── Skill/      ActiveSkillConfigs.lua
│   ├── Projectile/ ProjectileConfigs.lua
│   ├── Buff/  Interactor/  Level/  Audio/  CharacterAppearance/ ...
│   └── ResourceTable.lua             # 资源引用表
├── LogicScripts/                     # 逻辑层:各子系统行为脚本
│   ├── Character/  AI/  Skill/  Projectile/
│   ├── Buff/  Interactor/  Level/  UI/
│   └── CustomSys/                    # 模板自定义系统(如升级/波次刷怪)
├── Language/                         # 多语言文本
├── template.json                     # 模板元信息 + AI 匹配提示(strong/weak/noMatch)
├── unified_data_config.json          # 统一数据配置
├── unified_data_control_config.json  # 数值覆盖配置(DataManager 读取)
├── GameDesignDoc.md                  # 游戏设计文档(核心循环 / 系统 / 输入)
└── code_summary.md                   # 代码摘要(各子系统关键实现,供差异分析)
  • 数据层(GameDataConfigs) 声明"有什么":角色属性、技能 CD、子弹速度、Buff 效果、关卡布局等。
  • 逻辑层(LogicScripts) 定义"怎么做":AI 追击、技能释放、子弹命中、UI 交互等行为。
  • 文档(GameDesignDoc.md / code_summary.md) 为 AI 与开发者提供设计意图与实现细节,便于精准定制。

技术栈

  • 语言:Lua
  • 运行环境:Unreal Engine + UnLuaUnLua.Class() 定义逻辑类,UE.* 访问引擎能力)
  • 数据格式:Lua 配置表 + JSON(unified_data_*.jsonindex.jsontemplate.json

快速上手

  1. 选择模板:参考 GameTemplates/index.json 与各模板的 template.json / GameDesignDoc.md,选出最贴合需求的模板。
  2. 调整数据:修改模板 GameDataConfigs/ 下的 *Configs.lua,或通过 unified_data_control_config.json 覆盖数值(角色属性、技能、波次难度等)。
  3. 定制逻辑:在 LogicScripts/ 中扩展或修改行为脚本;如需全新系统,可在 CustomSys/ 下新增。
  4. 复用框架能力:通过 LightGameLib(相机、粒子、音频、浮动文字等)与 GameData 各子系统(G_CharacterSystemG_ActiveSkillSystem 等)快速实现功能。
  5. 参考配置模板FrameScript/GameData/ConfigTemplates/ 提供了各类配置的标准写法。

许可证

本项目基于 MIT 协议开源。

Copyright (C) 2026 Tencent. All rights reserved.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages