|
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- # Logic
-
- ## 简介
-
- 游戏逻辑与选手简易调试GUI客户端
-
- ## 目标
-
- ### 基本目标
-
- - 实现底层游戏逻辑,生成 .NET 类库
- - 使用`gRPC`实现`Server`,使`Server`能够持续收发信息、处理信息,并生成 .NET 控制台应用程序`Server`。`Server`至少应实现:
- - 游戏的组队与正常运行
- - 生成回放文件,保存游戏结果
- - 制作用于简易调试的`Client`,并实现基本GUI功能。可使用`WPF`、`WinForm`或其他技术。用于简易调试的客户端应至少实现:
- - 游戏直播与观战
- - 播放回放文件
-
- ### 重要目标
-
- - 完全分离游戏引擎、游戏逻辑与通信逻辑,使得游戏引擎和通信逻辑可以供日后复用
- - 简易调试客户端支持玩家手动对战
- - 简易调试客户端应尽量清晰整洁,运行流畅
- - 编写`MSTest`测试程序,设计测试样例,测试游戏逻辑
-
- ### 提高目标
-
- - 使用`MAUI`制作简易调试客户端,实现跨平台的功能
- - 使用`MVVM`或其他模式开发简易调试客户端
-
- ## 统一约定
-
- - 目标平台规定使用 .NET 6,建议使用 VS 2022 进行开发。
-
- ## 注意事项
-
- - 注意程序的鲁棒性与异常安全性,保证程序在任何极端情况下都不会崩溃。因此要求开发者对各种极端操作进检查,避免因异常导致`Server`崩溃、游戏中断。常见的错误包括:浮点数的`NaN`与`Inf`、枚举类型值非法、运算溢出、死锁、`foreach`中修改被迭代对象等。
- - 注意游戏引擎、游戏逻辑、通信逻辑的相互分离,便于代码维护与复用
- - 提前规划好代码架构与分工,分工应尽量均匀合理
- - 设计良好的调试接口,在开发中做好测试工作,避免BUG的积累
- - 考虑程序的通用性与可拓展性,降低各模块的耦合性
- - 小组成员间应多多交流,了解各自的工作进度,协调好各自的开发工作
-
- ## 特别说明
-
- - 历年的经验表明,并发问题是最容易被忽略的问题。今年在编写多线程的程序时,必须非常关注并发问题,尽量保证程序在高并发下安全运行
-
- ## 开发人员
-
- - ......(自己加)
|