# THUAI3.0 选手接口
THUAI3.0 原电子系第21届队式程序设计大赛
## 设计思路(参考)
目标框架:.Net Core 2.1
- 游戏建模:
- 合理地抽象与组织整个游戏逻辑(有限状态机?)
- 基于事件驱动实时更新游戏信息
- 写回放文件(增量更新)
- 注意与通信、玩家交互的交流合作
- (饼)提供合适的debug接口,比如可以手动调整游戏场景
- 重点:
- Protobuf的使用
- 事件驱动的程序设计
- 资源的互斥访问(避免不同线程同时使用数据)
- 难点(饼):
- 设计良好的debug接口
## 开发组成员
## 9.26提交(走路,基本框架)
- 提交两个cs文件分别是客户端和服务器
- cs文件中的注释比下面的东西更详细一点
### 通信
- 目前用的通信是从网上抄来的,等通信组完成后看情况进行修改
- 初步的想法是发送全量信息,服务器每次更新完信息把整体信息编辑成一个长字符串发送给各客户端,客户端再将信息拆开处理
- 服务器启动后输入游戏人数,然后启动客户端输入服务器上显示的ip地址以进行连接
### 走路
- 目前的人工控制版本用wasd控制移动,改变方向会有一下停顿。。
- 加入了碰撞,判断规则就是一个人占一格,同一格不能站2个人
- 地形方面,现在是200*200的大平原
- 走路速度测试的时候设的是5m/s
### 多线程
- 客户端3线程,一个用来控制走路,一个从服务器接收信息,一个用来在控制台显示信息
- 服务器一个线程用来更新信息与向客户端发送信息,另外每个客户端对应一个线程用来接收信息
## 10.8提交
## 常量
- 把所有常量和预定义结构体放到Constant.cs文件里
- 常量里定义了地图大小、帧率等等。
- 目前地图大小300*300,中间有一个障碍物。
- 帧率设置为20帧,人物速度为5m/s
## 物品类型
- 所有的人、墙、物品、食物都属于object,定义在OBJECT_TYPE枚举里面。
- 定义了方块,方块不可动、不可穿越、不可破坏,有墙壁、工作台、砧板等
- 定义了物品、包括
### 消息
- 实现了消息队列控制
- 在Const.cs里定义了两种消息格式,一种是客户端传给服务器,另一种是服务器传给客户端。
- 两种消息都重载了ToString(),可直接转换为字符串发送。
## 10.9更新
### 地图数据结构
- 把地图按格点处理,每个格点放置一个链表,用来储存这个格点的物品或玩家
- 经过理论分析,碰撞检测的算法可以做到O(1),只需要检测四个角有无障碍物就行
### 物品定义
- 重新定义了物品、人、食物、方块的继承和派生关系
- 地图上所有物品继承自Obj类,该类拥有坐标等基础属性
### 消息编码
- 重新定义了消息的编码方式
- 新的编码方式不再需要经过string,直接由消息结构体转为byte[],实测大大提高效率。
## 11.3 更新
### 实现了逻辑与通信的对接
### 编写了简单界面
- 为了兼顾有界面和无界面两者的同步开发,我开了两个Client。Logic.Client 是有界面的,Logic.ClientConsole 是无界面的。
- 界面的运行需要 .Net Core 3.0 请老板考虑是否要把整个项目升级到 .Net Core 3.0 版本。
### 玩法介绍
- 先运行THUAI3.0下的runServer.bat,然后运行runAgent.bat,然后运行两次runClient.bat(因为现在程序里写入的人数是2)
- 注意,运行之后一定要把所有控制台窗口的所有“编辑选项”和“文本选择”全部取消掉,不然会很卡
- 问题:目前只有Debug版本可以玩,Release版本不能玩(原因是Release版本的Communication.Server不能发送信息),请通信组解决一下。
### 后续想法
- 道具、食材、烹饪工具的属性用Dictionary来记录,然后放上github,所有人一起来编辑。
没有合适的资源?快使用搜索试试~ 我知道了~
THUAI3.0原电子系第21届队式程序设计大赛.zip
共257个文件
cs:74个
cpp:27个
csproj:17个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 128 浏览量
2023-10-23
10:17:02
上传
评论
收藏 538KB ZIP 举报
温馨提示
THUAI3.0原电子系第21届队式程序设计大赛.zip
资源推荐
资源详情
资源评论
收起资源包目录
THUAI3.0原电子系第21届队式程序设计大赛.zip (257个子文件)
AgentDockerfile 297B
ProjectSettings.asset 18KB
InputManager.asset 6KB
QualitySettings.asset 5KB
GraphicsSettings.asset 2KB
Physics2DSettings.asset 1KB
NavMeshAreas.asset 1KB
DynamicsManager.asset 1KB
UnityConnectSettings.asset 853B
PresetManager.asset 797B
EditorSettings.asset 622B
TagManager.asset 392B
AudioManager.asset 360B
EditorBuildSettings.asset 360B
VFXManager.asset 273B
TimeManager.asset 196B
NetworkManager.asset 151B
ClusterInputManager.asset 114B
win_make.bat 156B
runAgent.bat 154B
runServerToFile.bat 146B
runServer.bat 135B
runAgent.bat 132B
runClientConsole.bat 115B
runClient.bat 98B
runServer.bat 86B
genall.bat 78B
runall.bat 68B
MessageToClient.pb.cc 71KB
MessageToServer.pb.cc 39KB
ChatMessage.pb.cc 14KB
PingPacket.pb.cc 12KB
AgentId.pb.cc 12KB
app.config 898B
packages.config 419B
packages.config 308B
App.config 184B
App.config 178B
player2.cpp 96KB
player1.cpp 92KB
player1.cpp 87KB
player2.cpp 87KB
player2.cpp 70KB
player1.cpp 67KB
player1.cpp 62KB
player2.cpp 62KB
player2.cpp 48KB
player1.cpp 48KB
player1.cpp 36KB
player1.cpp 31KB
player2.cpp 27KB
player1.cpp 21KB
player2.cpp 16KB
CAPI.cpp 12KB
player1.cpp 11KB
Message.cpp 5KB
player1.cpp 5KB
player2.cpp 5KB
player.cpp 4KB
structure.cpp 4KB
API.cpp 2KB
main.cpp 1KB
debug.cpp 701B
Sema.cpp 232B
OS_related.cpp 180B
MessageToClient.cs 36KB
Map.cs 35KB
Player.cs 33KB
Client.cs 22KB
MessageToServer.cs 21KB
Form1.Designer.cs 20KB
Form1.cs 19KB
ManagerScript.cs 18KB
GameObject.cs 17KB
Program.cs 15KB
Server.cs 13KB
Form1.cs 13KB
Form2.cs 12KB
MapInfo.cs 10KB
ItemManagerScript.cs 10KB
Timer.cs 8KB
Form2.Designer.cs 8KB
Block.cs 8KB
IDServer.cs 7KB
Form1.Designer.cs 7KB
Program.cs 6KB
CharacterScript.cs 6KB
CommunicationImpl.cs 6KB
Program.cs 6KB
ChatMessage.cs 6KB
PlayerToken.cs 6KB
MapCell.cs 5KB
PingPacket.cs 5KB
AgentId.cs 5KB
CameraFollow.cs 5KB
IDClient.cs 5KB
Form1.Designer.cs 5KB
API.cs 4KB
Form2.Designer.cs 4KB
Tools.cs 4KB
共 257 条
- 1
- 2
- 3
资源评论
天天501
- 粉丝: 606
- 资源: 4665
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功