面向 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 协议
Main.lua:Lua 环境启动后最先执行,加载全局枚举、设置、工具、类定义与 UE 扩展包。Launcher.lua:作为逻辑世界上下文(G_WorldContext),按序require并初始化所有子系统,随后:Init()/InitOver():两段式初始化,解决子系统间依赖。LogicTick(DeltaTime):每帧驱动逻辑脚本管理器。OnKeyDown/Up、OnMouseButton*、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)内置 6 套完整、可运行的游戏模板,覆盖主流玩法原型:
| 模板 ID | 名称 | 玩法要点 |
|---|---|---|
third_person_action |
第三人称动作 | 3D 动作 / 连招 / 极限闪避时停 / Boss 战 / 角色切换 |
vampire_survivors |
类吸血鬼幸存者 | 自动开火 / 无尽怪潮 / 经验升级三选一 / 生存 |
auto_chess |
自走棋 | 六边形棋盘布阵 / 三合一升星 / 羁绊 / 商店经济 |
turn_based_battle |
回合制战斗 | 回合行动 / 技能点 / 充能大招 / 单群攻目标选择 |
topdown_shooter |
俯视角射击 | WASD + 鼠标射击 / 弹夹换弹 / 清场闯关 / 武器切换 |
tower_defense |
塔防 | 建塔 / 固定路径 / 波次进攻 / 塔升级 / 基地保卫 |
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 + UnLua(
UnLua.Class()定义逻辑类,UE.*访问引擎能力) - 数据格式:Lua 配置表 + JSON(
unified_data_*.json、index.json、template.json)
- 选择模板:参考
GameTemplates/index.json与各模板的template.json/GameDesignDoc.md,选出最贴合需求的模板。 - 调整数据:修改模板
GameDataConfigs/下的*Configs.lua,或通过unified_data_control_config.json覆盖数值(角色属性、技能、波次难度等)。 - 定制逻辑:在
LogicScripts/中扩展或修改行为脚本;如需全新系统,可在CustomSys/下新增。 - 复用框架能力:通过
LightGameLib(相机、粒子、音频、浮动文字等)与GameData各子系统(G_CharacterSystem、G_ActiveSkillSystem等)快速实现功能。 - 参考配置模板:
FrameScript/GameData/ConfigTemplates/提供了各类配置的标准写法。
本项目基于 MIT 协议开源。
Copyright (C) 2026 Tencent. All rights reserved.