从模拟飞行到星际争霸2,游戏接口初探
小屋在很小的时候就开始接触游戏了,还记得5、6岁的一个下午,阳光正好,同一个院子的玩伴拿着一个神秘的光盘来到我家。安装、探索到熟练,小屋迅速迷上了这个游戏——星际争霸母巢之战高达版。小屋曾一度以为,这就是星际争霸的正版~
谁曾料想,经过多年的发展,暴雪公司发布了星际争霸2,小屋也在第一时间进行了尝试,画面等效果果然有了大量的提升!
停!!!如果这篇文章再这么写下去,就要变成一个游戏介绍文啦......那么今天的主题到底是什么呢?小屋要带着大家尝试一下一个叫API的东东~
首先介绍两个术语:
API,是application programming interface的简称,指的是编程接口。
SDK,是software development kit的简称,指的是程序开发套件。
这二者什么关系呢?SDK主要指一些开发文件的集合,其中包含多个API。
在大家所熟悉的模拟飞行程序Prepar3D和Xplane的网站上,都有包括SDK,请看截图和链接~
Prepar3D SDK:
https://www.prepar3d.com/support/sdk/
Xplane11 SDK:
https://www.x-plane.com/desktop/extend-it/development-tools/
小屋大约在2年前就已经使用过FSX,P3D和XPlane的接口了,因此,这次决定尝试一下新鲜的——星际争霸2API~
说干咱就干啊~
Google一下,找到SC2的C++API的github地址,使用TortoiseGit下载到本地。
感谢Blizzard,在提供API的同时,也给出了例子程序。只要按照示例编写代码并运行,就可以正常运行游戏,并进行测试啦!
在测试中,我们将要使用的地图已经在代码中显示了,KMapBelShirVestigeLE,让我们运行一下试试吧!
成功!
下面,我们要进行一点星际争霸背景知识的讲解,以及此次实验任务的介绍~
星际争霸2是一款即时战略游戏,也就是需要玩家不停的操作,运营3个种族互相掐架的游戏~一场胜利需要大量农民采矿、造建筑,而建筑负责生产空军、陆军征服对手。
在运营方面,玩家应尽量不让任何一个农民闲置(得干活啊!!)而在打仗方面,玩家应尽量保全自己的士兵,并解决更多的敌人~也正是基于这样的理念,本次的任务出现了——
1,当农民闲置时,自动寻找最近的矿并前往采矿。
2,当士兵受伤时,自动撤退。
我们将使用神族(Protoss)作为实验的种族~
实验要用到的对象为左侧的战士(追猎者,Stalker)和右侧的农民(探机,Probe)
任务一:当农民闲置时,自动寻找最近的矿并前往采矿。
任务分析:这个任务很清晰,主要分为以下步骤,
1)查找空闲的探机
2)寻找最近的矿产
3)命令探机采矿
让我们测试看看结果吧~
video: https://mp.weixin.qq.com/mp/readtemplate?t=pages/video_player_tmpl&action=mpvideo&auto=0&vid=wxv_747293160925200384
非常棒!这样无论是控制农民建造建筑物,还是矿物采完了,农名再也不会休息了,只会不停的为我们服务~
任务二:当士兵受伤时,自动撤退
任务分析:这个任务比上个任务稍有难度,不同的士兵的技能不同,而我们选择的追猎者除了有正常行走模式之外,还具有每隔7秒自动恢复的闪烁技能,可以以当前位置为圆心,瞬间移动到一定距离之外。在战场上,可以将濒死的追猎者瞬间移动到队伍的后方,免除攻击,再上到前排继续输出,可以算是星际微操作中一个非常常用的做法。由于在操作上略显复杂,因此手动实施是需要一定练习的。而在本任务中,我们通过编程实现,可以大大减轻控制负担~
1)寻找受伤的追猎者
2)计算跳跃距离和朝向
3)给出跳跃命令
让我们测试看看结果吧~
video: https://mp.weixin.qq.com/mp/readtemplate?t=pages/video_player_tmpl&action=mpvideo&auto=0&vid=wxv_747406902279176192
好极了,如此一来,玩家只需更关注大局即可,让你的战士更加智慧,进退自如~
在本次实验中,我们使用的是官方提供的C++API,除此之外,星际争霸2已经作为一个重要的AI测试平台,感性的小伙伴可以进入传送门,尝试自行设计AI用于控制电脑~
https://github.com/deepmind/pysc2
本期的实验就是这样,大家如果有别的好想法,欢迎留言与小屋交流~
页:
[1]