Robocode
游戏主页:http://robocode.sourceforge.net/
资源库:http://robowiki.net/
游戏口号:Build the best - destroy the rest!
游戏语言:Java .Net
这款游戏最初是IBM公司开发的,举办过几次比赛。后来在貌似是2010年前后,公开源代码,成为了一个开源社区项目。
游戏提供了一套API,作为游戏者,遵循这套API来撰写自己的机器人,然后将机器人投入战场与其他机器人拼杀。换句话说,这不是一个你PK他人的游戏,而是你的造物去PK他人的造物的游戏。
真正体验一次做上帝的感觉吧!
游戏支持单兵作战和组队战斗。单兵作战又分为单挑和群殴两种,显然两者的策略是截然不同的;组队战斗就更需要仔细规划和设计,将队员的分工做好合理分配:有管侦查的、有管战斗的、有管统筹规划的、有管送死的……不太清楚有没有管加血的。(组队的我还没仔细研究过。)
这个游戏,想浅尝辄止也行,想往深里玩亦可。在网上看到有人用这款游戏研究机器学习算法,写了一个机器人,最初什么也不会,历阵数万局甚至数百万局之后变得所向披靡……
最近在公司帮忙组织一个Robocode大赛,考察了一下比赛方法。除了传统的大家提交代码,然后比赛之外,还有一种现场赛,火药味很足,通常适用于最终的半决赛或决赛。具体方法是公开所有参赛选手的源代码,让大家现场限时修改代码,然后组织战斗。其中的阴毒之处,各位可以自行想象。
这里放两个我为比赛所做教程中包含的两个战斗视频。
RoboCup Soccer World Cup
RoboCup相对复杂一些,下属很多子项目,有RoboCup Soccer World Cup、RoboCup@Home、RoboCup Rescue、RoboCup Junior……(参考:RoboCup)
其中可以作为游戏来玩的,是RoboCup Soccer World Cup。
如果说Robocode只是自娱自乐,小规模玩玩的话,RoboCup Soccer World Cup则是每年都有世界比赛,可以借此扬名立万于江湖的。
此游戏顾名思义,写一段程序来指导一个足球队,与其他足球队抗衡,最终夺取机器人足球世界杯。如果我没记错的话,游戏分为虚拟赛和实体赛——虚拟赛就是没有实体机器人,使用虚拟的程序来进行比赛,没有实际物理世界的误差和影响,相对容易;实体赛则不仅要书写程序,还要建造真正能踢球的机器人……这个难度和投入,你懂的。
貌似很多大学也会组织高手组队参加国际比赛,纵观历届冠军,我国代表队夺魁次数也不在少数。
这款游戏,我没怎么研究过,具体细节只能请各位高人自行学习了,这里只给出一个虚拟游戏平台的主页:SourceForge.net: sserver,至于实体赛……给几个古怪机器人的比赛照片作参考吧。
其他
IBM在开发了Robocode的同时或者那前后,也开发过其他几款基于eclipse的编程游戏。
我所知道的有CodeRally和CodeRuler。
Code Rally到现在貌似仍然存活,是一款编程控制赛车的赛车游戏。
游戏主页:Welcome to the Code Rally community site! (Code Rally)
游戏者需要编写一个治国策略来统治一个王国,与同一片土地上的其他王国抗衡。
这一款游戏,我正经疯狂地玩过一段时间,所以稍微详细地说一下规则,算作慰藉其在天之灵吧。
游戏开始时,每个王国有且只有一个城堡,城堡可以产人,城堡产人的速度与王国土地面积成正比。人分两种——农民和骑士。农民负责占地,文绉绉地说法是开垦荒地,农民经过的地则为本国领土,当然一度成为本国领土的土地,如果被敌人的农民趟过就变成了敌人的领土;骑士负责杀戮,骑士见农民,见一个宰一个,本身没有任何损耗,骑士见骑士则是互砍,掉血点数听天由命(由系统随机数决定)。骑士经过的土地无法变成本国国土。骑士还可以攻占城堡,城堡比较难砍,但没有防备的城堡本身无法反击。
当整块土地上不再有敌人存在,你的程序就胜出了。
C++Robots
据说是Robocode的灵感来源,顾名思义,使用C++语言,对战平台建立在*nix上。战斗方式与Robocode类似,由于年代久远,规则已经记不清了。各位可以自行到主页查阅。
C-Robots
C++Robots的主页中提到,它的前身则是Crobots,同样顾名思义,是基于C语言的机器人对战游戏。由于更加久远,我有些搞不清哪个才是最原始的原创版本,有兴趣的朋友可以自己去找找。
RobotWar
在某版本CRobots的网站(http://corewar.co.uk/crobots/)上,作者提到CRobots是受到RobotWar这个游戏的启发开发而成的。在页面左侧菜单里就可以找到这个RobotWar的网址:RobotWar: the Battlefield of the Future。同时,还可以看到众多类似的游戏,这些实在太文物级,简单看过几个说明我就丧失了去学习和玩弄一番的兴趣,有考古爱好的朋友可以去挑战一下。
在Wikipedia上,有一个编程游戏的目录:Category:Programming games,里面列举了大多数知名的或者历史悠久的编程游戏。高端大气上档次的程序员们,把它们玩起来吧!
0