查看: 1645|回复: 0

从模拟飞行到星际争霸2,游戏接口初探

[复制链接]
发表于 2023-1-3 12:53:55 | 显示全部楼层 |阅读模式
小屋在很小的时候就开始接触游戏了,还记得5、6岁的一个下午,阳光正好,同一个院子的玩伴拿着一个神秘的光盘来到我家。安装、探索到熟练,小屋迅速迷上了这个游戏——星际争霸母巢之战高达版。

小屋曾一度以为,这就是星际争霸的正版~

谁曾料想,经过多年的发展,暴雪公司发布了星际争霸2,小屋也在第一时间进行了尝试,画面等效果果然有了大量的提升!

从模拟飞行到星际争霸2,游戏接口初探-1250

停!!!如果这篇文章再这么写下去,就要变成一个游戏介绍文啦......那么今天的主题到底是什么呢?小屋要带着大家尝试一下一个叫API的东东~

首先介绍两个术语:

API,是application programming interface的简称,指的是编程接口。

SDK,是software development kit的简称,指的是程序开发套件。

这二者什么关系呢?SDK主要指一些开发文件的集合,其中包含多个API。

在大家所熟悉的模拟飞行程序prepar3dxplane的网站上,都有包括SDK,请看截图和链接~

从模拟飞行到星际争霸2,游戏接口初探-6145

Prepar3D SDK:

https://www.prepar3d.com/support/sdk/

从模拟飞行到星际争霸2,游戏接口初探-2036

Xplane11 SDK:

https://www.x-plane.com/desktop/extend-it/development-tools/

小屋大约在2年前就已经使用过FSX,P3D和XPlane的接口了,因此,这次决定尝试一下新鲜的——星际争霸2API~

说干咱就干啊~

从模拟飞行到星际争霸2,游戏接口初探-1132

Google一下,找到SC2的C++API的github地址,使用TortoiseGit下载到本地。

从模拟飞行到星际争霸2,游戏接口初探-5680

感谢Blizzard,在提供API的同时,也给出了例子程序。只要按照示例编写代码并运行,就可以正常运行游戏,并进行测试啦!

在测试中,我们将要使用的地图已经在代码中显示了,KMapBelShirVestigeLE,让我们运行一下试试吧!

从模拟飞行到星际争霸2,游戏接口初探-9419

成功!

下面,我们要进行一点星际争霸背景知识的讲解,以及此次实验任务的介绍~

星际争霸2是一款即时战略游戏,也就是需要玩家不停的操作,运营3个种族互相掐架的游戏~一场胜利需要大量农民采矿、造建筑,而建筑负责生产空军、陆军征服对手。

从模拟飞行到星际争霸2,游戏接口初探-3886

在运营方面,玩家应尽量不让任何一个农民闲置(得干活啊!!)而在打仗方面,玩家应尽量保全自己的士兵,并解决更多的敌人~也正是基于这样的理念,本次的任务出现了——

1,当农民闲置时,自动寻找最近的矿并前往采矿。

2,当士兵受伤时,自动撤退。

我们将使用神族(Protoss)作为实验的种族~

从模拟飞行到星际争霸2,游戏接口初探-9119

从模拟飞行到星际争霸2,游戏接口初探-7814

实验要用到的对象为左侧的战士(追猎者,Stalker)和右侧的农民(探机,Probe)

任务一:当农民闲置时,自动寻找最近的矿并前往采矿。

任务分析:这个任务很清晰,主要分为以下步骤,

1)查找空闲的探机

从模拟飞行到星际争霸2,游戏接口初探-1072

2)寻找最近的矿产

从模拟飞行到星际争霸2,游戏接口初探-3628

3)命令探机采矿
从模拟飞行到星际争霸2,游戏接口初探-7005

让我们测试看看结果吧~

从模拟飞行到星际争霸2,游戏接口初探-998

video: https://mp.weixin.qq.com/mp/readtemplate?t=pages/video_player_tmpl&action=mpvideo&auto=0&vid=wxv_747293160925200384

非常棒!这样无论是控制农民建造建筑物,还是矿物采完了,农名再也不会休息了,只会不停的为我们服务~

任务二:当士兵受伤时,自动撤退

任务分析:这个任务比上个任务稍有难度,不同的士兵的技能不同,而我们选择的追猎者除了有正常行走模式之外,还具有每隔7秒自动恢复的闪烁技能,可以以当前位置为圆心,瞬间移动到一定距离之外。在战场上,可以将濒死的追猎者瞬间移动到队伍的后方,免除攻击,再上到前排继续输出,可以算是星际微操作中一个非常常用的做法。由于在操作上略显复杂,因此手动实施是需要一定练习的。而在本任务中,我们通过编程实现,可以大大减轻控制负担~

1)寻找受伤的追猎者

2)计算跳跃距离和朝向

3)给出跳跃命令

从模拟飞行到星际争霸2,游戏接口初探-2388

让我们测试看看结果吧~

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

本期的实验就是这样,大家如果有别的好想法,欢迎留言与小屋交流~
您需要登录后才可以回帖 登录 | 加入联盟

本版积分规则

快速回复 返回顶部 返回列表