Back / 文章

2026/7/17 · 项目日志

LanBoard 归档记录

LanBoard(桌域)是大一下学期 Qt/QML 多游戏联机平台小组大作业,现已归档。

LanBoard(桌域)是大一下学期完成的小组大作业。随着课程结束,项目现已进入归档状态。我们旨在构建一个基于 Qt6 + QML 的多游戏联机平台,而非简单的单机页面集合。核心目标在于统一导航、房间管理以及多控制器生命周期协调。最终仓库包含五子棋、斗地主、飞行棋及 Survivor MVP 等入口,支持本地运行、局域网演示与 ECS 在线大厅连接。工程上实现了桌面端构建与 Android APK 打包,并附带部署文档。

架构与取舍

架构分为 QML Shell、App 协调层、房间规则层、网络层和游戏层五部分。我们放弃了各游戏独立逻辑的写法,转而通过 AppController 统一调度导航与事件桥接。RoomManager 负责座位与状态快照,NetworkManager 并行处理 UDP 发现与 ENet 会话。这种分层虽增加了复杂度,但保证了模式切换(本地、局域网、在线)的一致性。ServerApp 作为独立服务端入口,为每个房间维护独立的 RoomState 实例,让在线模式下的不同房间拥有各自的状态与游戏控制器。网络层同时承载 Host/Client 直连及在线大厅连接,Survivor 二进制快照与输入包走专用链路。

Survivor MVP 是项目里最完整的子系统之一,已打通本地战斗、房间流转及在线联机链路,包含渲染快照导出与二进制网络编解码。归档时仍有一些同步细节可以继续打磨,但现有完整度已经满足课程大作业的目标。局域网发现使用 UDP 广播,房间实时消息依赖 ENet/UDP,设置通过 QSettings 持久化保存。房主可在房间内切换当前游戏,系统按目标人数规则自动整理座位。构建流程支持桌面端与 Android APK 输出,回归测试也覆盖了连接断开处理及游戏结算逻辑。

归档

课程和项目都已经结束,后续不再继续开发。仓库会保留下来,作为这次小组课程实践的记录与技术参考。对于 Qt/QML 多端应用、局域网通信或房间状态管理,这套代码仍然能提供一些直观示例;开发日志和架构资料也保留了我们从页面、控制器到服务端逐步整合项目的过程。归档并不意味着否定它,而是为这次大一下学期的小组大作业画上一个明确的句号。