Skip to content
Timothy Liu edited this page Jul 21, 2024 · 4 revisions

THUAI7 Wiki

概述

THUAI7,即清华大学第七届人工智能挑战赛电子系赛道,为原清华大学电子系第 25 届队式程序设计大赛(teamstyle25),比赛名为“星际指挥官:AI 前线”。THUAI7 是 THUAI6 的后继之作,在 THUAI6 的基础上重新制定了游戏规则,重新设计了游戏界面,进一步完善了游戏机制,优化了用户体验。

THUAI7 比赛于 2024 年 4 月 ~ 2024 年 6 月举行,取得了圆满成功!

历史沿革

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

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

游戏背景

在不久的未来,随着 AI 技术的飞速发展,人类探索太空的步伐也大大加快。太空安全对于国家安全的重要性与日俱增,因此,太空建设也成为了各国的重要任务。在这个全新的赛场上,由 AI 控制的高度自动化的太空舰船成为了竞技的主力。它们可以在太空中自由穿梭,执行各种任务,如资源采集、建筑建造、太空战斗等。 新领域的探索总是伴随着风险,太空中的舰船也不例外。在太空中,舰船之间的距离遥远,通讯延迟巨大,因此,舰船之间的冲突往往是在瞬息之间决定胜负。在这个竞技场上,AI 的控制能力、决策速度、战术策略等都将成为决定胜负的关键。

在远离地球的太空中,为了建立起牢固的防线,保卫美好的家园,一场激烈的战斗即将打响。你将扮演舰队指挥官,带领你的舰队在太空中展开一场激烈的战斗,为了最终的胜利,你需要制定合理的战术策略,部署舰船,利用资源,应对敌人的进攻,最终摧毁敌人的基地,夺取最终的胜利。

游戏玩法

详见 https://docs.eesast.com/docs/contests/THUAI7/

游戏界面

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

星际指挥官:AI 前线

游戏特色

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

产品构成

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

Server

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

选手接口

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

选手 C++ 接口

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

选手 Python 接口

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

图形界面客户端

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

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

Unity 界面客户端

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

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

下载器

THUAI7 提供了下载器工具,用于获取新的游戏更新、启动服务器与客户端,给参加比赛的选手提供更大的便利。

实际上,下载器在 THUAI3.0 便存在,但是由于一些原因,THUAI4 并没有提供下载器。在 THUAI5 中,下载器才被重新提上日程。在 THUAI7 中,下载器结合更新、启动等功能于一体,同时使用 MAUI 得到更精美的界面,带给选手更好的体验。

比赛网站及在线回放

THUAI7 的赛事于 EESAST 网站上举办,集选手代码提交、选手代码版本管理、选手发起对战、历史对战记录保存与查看、天梯排行榜等一系列功能。

源代码仓库

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

开发团队

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

EESAST Software Center

screenshot

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

Clone this wiki locally