# Gamebox_flutter **Repository Path**: gaopengyue/gamebox_flutter ## Basic Information - **Project Name**: Gamebox_flutter - **Description**: 个人毕设项目gamebox前端 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-06-15 - **Last Updated**: 2026-06-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Nakama Lite Flutter 跨平台客户端 本项目提供了一个基于 **Flutter** 的全平台“通用对局容器”,支持编译为 Android, iOS, Web, Windows, macOS 和 Linux 应用。 --- ## 1. 核心架构:SDUI (服务端驱动 UI) 本客户端采用了高度解耦的 **服务端驱动 UI (Server-Driven UI)** 架构: - **通用容器 (Flutter)**: 预置标准组件库(Slot, Button, Text 等),仅负责渲染。 - **动态逻辑 (Go + Lua)**: 具体的对局玩法、界面布局、交互指令完全由后端的 Lua 插件动态定义。 - **盲执行协议**: 客户端不感知业务逻辑,仅负责透传 Action 协议,实现玩法的热插拔。 --- ## 2. 开发者文档 (Index) 为了方便开发新玩法或理解现有架构,请参考 `doc/` 目录下的详细文档: - **[玩法界面开发手册 (SDUI 协议)](doc/UI_DEVELOPMENT_MANUAL.md)**: 核心文档!指导如何通过 Lua 编写界面布局、定义组件属性以及处理用户交互。 - **[客户端通信说明](lib/match_client.dart)**: 了解 WebSocket 消息管线及“盲执行”模式的具体实现。 --- ## 3. 快速开始 ### 环境要求 - 安装 [Flutter SDK](https://docs.flutter.dev/get-started/install) (>= 3.0.0) - 确保 Go 后端 `nakama_lite` 正在运行(默认监听 `7350` 端口) ### 运行步骤 1. 获取依赖: ```bash flutter pub get ``` 2. 运行项目: - **Web**: `flutter run -d chrome` - **Android**: `flutter run -d ` - **Desktop**: `flutter run -d macos` (或 windows/linux) --- ## 4. 关键文件说明 - **[main.dart](lib/main.dart)**: 应用程序入口,包含基于 SDUI 协议的通用组件渲染引擎。 - **[match_client.dart](lib/match_client.dart)**: 封装了与 Go 后端的 WebSocket 通信逻辑,实现“盲执行”消息转发。 --- ## 5. 毕设亮点 (面向老师) - **真正的一码多端**:一套 Dart 代码覆盖手机、桌面和网页。 - **端云同构与解耦**:前端只负责渲染和输入,所有的对局判定、机器人 AI 逻辑全部由嵌入或远程的 Go 后端(及 Lua 插件)驱动。 - **极致的可扩展性**:通过 Lua 插件实现玩法热插拔,无需更新 App 即可体验全新游戏。 --- ## 6. 进阶:如何彻底脱离服务器? 如果你希望在“完全无网”环境下运行(手机作为服务器): 1. 使用 `gomobile bind` 将 `nakama_lite` 编译为移动端库(参考后端目录下的 `MOBILE_GUIDE.md`)。 2. 在 Flutter 中通过 `dart:ffi` 或 `MethodChannel` 调用 Go 启动本地服务。 3. Flutter 客户端连接到 `127.0.0.1`,即可实现纯本地/局域网联机。