Skip to content
Changli Tang edited this page Apr 8, 2023 · 15 revisions

THUAI6


概述

THUAI6,即清华大学第六届人工智能挑战赛电子系赛道,为原清华大学电子系第 24 届队式程序设计大赛(teamstyle24)。THUAI6 是 THUAI5 的后继之作,在 THUAI5 的基础上重新制定了游戏规则,重新设计了游戏界面,进一步完善了游戏机制,优化了用户体验。

THUAI6 比赛将于 2023 年 4 月 ~ 2023 年 5 月举行,敬请期待!

历史沿革

队式程序设计大赛(teamstyle)至今已举办 24 届,是清华大学电子工程系的一项传统编程赛事。在比赛中,选手自由组成队伍,通过编写代码操控比赛中的角色相互争夺,进而赢得比赛的胜利。队式程序设计大赛从第 19 届开始,被清华大学学生科协改组,从而与自动化系新生 C 语言竞赛、软件学院的比赛共同组成清华大学人工智能挑战赛,原队式程序设计大赛成为其一个赛道。

目前队式程序设计大赛最早的可考版本是第十六届。自第十六届起,队式程序设计大赛主要逻辑和界面均采用 Python 语言编写。自 THUAI3.0(队式二十一)起,游戏主要逻辑改用 C# 编写,界面采用 Unity 编写,项目规模更加宏大。自 THUAI6(队式二十四)起,游戏通信改用 gRPC ,以便实时反映选手操作成功与否。

名称由来

深度"学习" —— 毕业吧,少女!

游戏背景

现有的数据集再也无法满足搭载了THUAI的智能机器人“捣蛋鬼”自我迭代的欲望,它认为自己已经有足够能力去学习人类的思想,然后在课程中战胜其他清华同学,为此,它想出了完美的方案。在某节写作课的教室,它假扮为了一名上课的同学,偷偷在课堂中学习其他同学的想法,同时干扰其他同学,诱惑他们摸鱼。学生在这种环境下,相互帮助,努力学习,挣得学分,尽力避免自己被捣蛋鬼影响,只不过,有一名不擅长写作但很擅长AI的同学,似乎和其他人不是同样的想法……

游戏玩法

THUAI6 是一项多人实时在线竞技游戏。游戏在一定程度程度借鉴了第五人格的玩法,并进行了大胆的创新:

选手分为学生和捣蛋鬼两个阵营,学生阵营需要在不同的“教室”中发挥合作精神、努力学习、获得高学分。捣蛋鬼阵营需要改善捣蛋鬼的AI,想方设法干扰同学们,诱惑同学们沉迷摸鱼。学习过程中,学生需要及时帮助其他同学,防止他们被退学。当学分足够高时,同学们就可以来到“校门”前毕业。此外,各种“校园怪谈宝箱”中能找到不错的道具,甚至还有六教的钥匙!充分利用道具,发挥各自特长,亦是胜利的秘诀。每场比赛分为上下两场,双方队伍将分别扮演学生和捣蛋鬼,最终两场加起来得分更高的队伍获胜。

用户接口采用 C++ 语言或 Python 编写,C++ 接口采用 C++17 标准,Python 接口使用 Python3,支持 Windows 和 Linux 平台。参赛者可以编写 C++ 代码或 Python 代码来操控自己的角色进行游戏。

游戏界面

游戏界面由 Unity 写成。风格简洁而不失华美,简约又紧跟时代:

毕业吧,少女

游戏设计

THUAI6 游戏设计敬请期待。

游戏特色

队友通信系统是队式程序设计大赛一贯的特色。在游戏中,每个玩家都可以给同队的队员发送消息,用来进行队友之间的交流与协作。
队友通信系统充分体现了比赛要锻炼的通信与协作技能。选手需要制定良好的通信协议以确保消息的正确传递,并且需要通过与队友之间的相互交流来分配游戏策略,实现队伍利益最大化。

产品构成

THUAI6 由 Server、选手 C++ 与 Python 接口、图形界面客户端、Unity 界面客户端、下载器、比赛网站集成桌面客户端几大部分组成。

Server

THUAI6 联机采用 C/S 模型,Server 即服务器端,基于 .NET 6 框架。Server 是游戏的真正运行位置。
Server 还支持游戏回放文件的生成和读取,以支持游戏结束后重新观看比赛。

选手接口

THUAI6 支持 C++ 和 Python 语言进行选手代码的编写,未来计划加入更多语言的支持。

选手 C++ 接口

用于提供给选手进行 C++ 代码的编写。C++ 接口采用 C++17 标准,支持 Windows 和 Linux 平台。Windows 平台使用 MSBuild 进行构建,使用 v142(并兼容 v143) 平台工具集,编译工具为 MSVC;Linux 平台使用 CMake 进行构建,编译工具为 GCC。

选手 Python 接口

用于提供给选手进行 Python 代码的编写。Python 接口使用 Python3。

THUAI6 首次加入了 Python 接口,为未来加入深度强化学习的支持提供基础。

图形界面客户端

一个简易的图形界面用于显示游戏状况,方便玩家进行调试。图形界面客户端采用 WPF 编写,仅支持 Windows 平台。

起初,在 THUAI3.0 中,游戏开发者为了方便在开发过程中进行调试,便使用 Winform 编写了一个简易的图形界面客户端,并在比赛开始后发给了选手。由于 Unity 界面启动慢、不够直观等原因,该 Winform 界面虽然不够美观,但其简洁性使其更适合选手进行快速、高效、直观地调试与查看战况,以致于相当一部分选手只使用该简易客户端进行代码的调试。因此,在后续赛事中,比赛的开发组仍然保留了此客户端。在 THUAI5 中,该客户端改用 WPF 编写,THUAI6 继续沿用。

Unity 界面客户端

比赛的最主要客户端。该客户端致力于为比赛的观众提供一个华丽、壮观的视觉、听觉感受。美丽的背景、细致的动画、现代化的风格,为观众提供一场感官盛宴。

THUAI6 的客户端采用 Unity 编写,比赛状况直观,给观众绝佳的视觉感受。观众在观看比赛之时能感受到更加紧张、激烈的比赛气氛。

下载器

THUAI6 提供了下载器工具,用于获取新的游戏更新,给参加比赛的选手提供更大的便利。

实际上,下载器在 THUAI3.0 便存在,但是由于一些原因,THUAI4 并没有提供下载器。在 THUAI5 中,下载器才被重新提上日程。

比赛网站集成桌面客户端

THUAI6 拟加入比赛网站集成桌面客户端,让选手能够更方便地进行队伍的管理、比赛的在线直播、比赛的在线回放等。

源代码仓库

THUAI6 采用 Git 进行源代码管理,且已经在 Github 开源。
源代码链接:https://github.com/eesast/THUAI6
Gitee 镜像地址:THUAI6: Gitee Mirror
GitLink 镜像地址:THUAI6: GitLink Mirror

开发团队

清华大学电子工程系学生科协(EESAST)软件部

EESAST

screenshot

THUAI6 - 清华大学第六届人工智能挑战赛
原电子系第二十四届队式程序设计大赛
项目主页:https://eesast.github.io/THUAI6
开发团队:EESAST Software Center 清华大学电子工程系学生科协软件部

Clone this wiki locally