Skip to content

FunGame 开发文档回合制游戏开发库

基于 C#.NET 的轻量回合制战斗框架:行动顺序表、决策点、六乘区伤害、技能与特效系统开箱即用

FunGame

📖 项目简介

FunGame.Core 是一套基于 C#.NET 设计的轻量、可扩展的回合制战斗系统类库,旨在打造充满策略趣味的战棋回合制游戏。

它围绕以下几个设计目标构建:

  • 轻量零依赖:纯 BCL 实现,不依赖任何第三方库,dotnet add package FunGame.Core 即可接入任何 .NET 项目
  • 策略深度:行动顺序表、决策点、六乘区伤害、技能/特效/驱散/免疫等机制开箱即用,为战棋玩法提供完整的战斗底层
  • 接口驱动、极易扩展IGamingQueue 定义全部契约,继承 GamingQueue 即可定制游戏模式;31 个事件覆盖整个游戏循环,UI、AI、网络层可独立介入
  • 实体可动态化:Factory 工厂 + JSON 配置文件支持免编码动态创建角色、技能、特效与物品,模组化分发游戏内容
  • 数据可观测:回合记录以不可变快照沉淀,支持即时外发到专用服务器,用于观战、回放与战斗状态重建

库的安装与引用方式见 快速开始

🚀 快速上手

csharp
using FunGame.Core.Entity;
using FunGame.Core.Model.Queue;

// 1. 创建角色
Character player = new()
{
    Name = "角色1",
    InitialHP = 80,
    InitialATK = 20,
    InitialSPD = 120
};

Character enemy = new()
{
    Name = "角色2",
    InitialHP = 60,
    InitialATK = 25,
    InitialSPD = 100
};

// 2. 创建混战队列
MixGamingQueue queue = new([player, enemy], Console.WriteLine);
queue.InitActionQueue();
queue.SetCharactersToAIControl(cancel: false, [player, enemy]);

// 3. 游戏循环
while (queue.NextCharacter() is Character actor)
{
    if (queue.ProcessTurn(actor)) break;
    queue.TimeLapse();
}

完整示例见 快速开始完整示例

📚 文档导航

模块内容入口
规则书回合制 / 行动顺序表 / 决策点 / 伤害计算 / 角色 / 技能 / 特效 / 物品 全机制详解游戏机制 · 角色系统 · 技能系统 · 特效系统
开发者指南快速开始 / 自定义角色·技能·特效·物品 / 事件驱动 / 模组开发 / 即时外发快速开始 · 事件模式 · 模组开发 · 即时外发
API 参考核心类与接口的完整代码级 API:GamingQueue / Character / Skill / Effect / Item / 外发通道等 33 个页面API 参考

✨ 核心能力

  • 接口驱动IGamingQueue 定义全部契约,继承即可定制游戏模式
  • 事件总线:31 个事件覆盖整个游戏循环,UI / AI / 网络可独立介入
  • 可扩展实体:Factory 工厂 + JSON 配置文件,免编码动态创建角色、技能、特效与物品
  • 数据外发:回合记录实时 POST 到专用服务器,支持观战、回放与状态重建
  • 零依赖:纯 BCL 实现,dotnet add package FunGame.Core 即可接入

基于 LGPL-3.0 许可证发布