Skip to content
This repository has been archived by the owner on Apr 17, 2024. It is now read-only.
Timothy Liu edited this page Apr 27, 2023 · 16 revisions

THUAI5


概述

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

比赛中,选手可以自由组队,并采用 C++ 语言编程,操控自己的角色进行游戏。

历史沿革

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

目前队式程序设计大赛最早的可考版本是第十六届。自第十六届起,队式程序设计大赛主要逻辑和界面均采用 Python 语言编写。自 THUAI3.0(队式二十一)起,游戏主要逻辑改用 C# 编写,界面采用 Unity 编写,项目规模更加宏大。

名称由来

THUAI5 最初命名“神机妙算”,后应校科协请求,为了与自动化系、软件学院的比赛共同组成“挑战杯”三个字而改名“机算挑魁”。

比赛主题

THUAI5 游戏背景为校科协创立 40 周年举办的一场科技竞赛,选手在游戏中的任务是升级己方机器人的部件,从而提升其算力,最终游戏以总算力大小决定胜负。

游戏玩法

THUAI5 是一项多人实时在线竞技游戏。游戏在一定程度程度借鉴了荒野乱斗的玩法,并进行了大胆的创新。游戏每场有 2 支队伍进行对抗,每支队伍 4 人。比赛中,在地图中央的 CPU 工厂会随机产生 CPU,玩家需要收集 CPU,并将收集到的 CPU 集成到机器人上提升自己的算力。同时,击败敌方机器人可以收集其掉落的零件,集成到己方机器人也可以提升算力,并可以让敌方机器人休整一段时间而无法参与对抗。最终,总算力高的队伍获胜。

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

游戏界面

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

机算挑魁游戏截图

游戏设计

THUAI5 没有采取 THUAI4 中职业系统的设计,而代之以可以自定义的技能系统代替(游戏中体现为自定义机器人预先装配的软件和硬件)。同时,THUAI5 还含有道具系统、得分系统(即算力)、通信系统、复活系统等多种设计以增加游戏的难度、可玩性和趣味性。

游戏特色

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

产品构成

THUAI5 由 Server、选手 C++ 接口、图形界面客户端、Unity 界面客户端、下载器几大部分组成。

Server

THUAI5 联机采用 C/S 模型,Server 即服务器端,基于 .NET 5 框架。Server 是游戏的真正运行位置。

Server 还支持游戏回放文件的生成和读取,以支持游戏结束后重新观看比赛。

选手 C++ 接口

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

图形界面客户端

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

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

Unity 界面客户端

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

与 THUAI3.0 与 THUAI4 采用 Unity 3D 不同,THUAI5 的客户端采用 Unity 2D 编写,这与游戏本身的 2D 逻辑更加契合,比赛状况也更加直观,给观众更好的视觉感受。同时,THUAI5 的 Unity 客户端增加了背景音乐和音效,观众在观看比赛之时能感受到更加紧张、激烈的比赛气氛。

下载器

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

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

源代码仓库

THUAI5 采用 Git 进行源代码管理,且已经在 Github 开源。源代码链接:https://github.com/eesast/THUAI5

开发团队

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

EESAST

screenshot

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

Clone this wiki locally