You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

README.md 2.2 kB

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