零编码英雄? 测试SkookumScript

在视频游戏构成每年近$ 100B的市场且有18亿自称游戏玩家(加上我们都认识一个或两个壁橱游戏者)的世界中,得知仍然没有创建一种广泛使用的编程语言令人惊讶特别是考虑到视频游戏。 Agog Labs的团队希望对此进行更改。 在过去的13年中,他们开发了SkookumScript,这是一种新的编程语言和工具套件,他们希望它将成为新的行业标准。

当我在一个下雨的星期四下午冲进Tectoria堡时,经过入口处迎接我的火箭飞船,我在进入市区之前先仔细阅读了有关SkookumScript的笔记。 SkookumScript是一种脚本语言,专门用于创建游戏性 (即玩游戏的整体体验)。 柯南于2004年开始开发SkookumScript,并于2016年正式发布,成功地将其与Unreal Engine集成,全球25%的游戏开发人员都在使用它。 它在联合阵线用于创作《 睡狗》和《 睡狗:权威版》的所有游戏玩法,而Agog Labs计划将SkookumScript与其他主要游戏引擎集成。

我今天在Agog Labs的任务是找出SkookumScript是否真的像柯南及其团队所说的那样容易学习。 在图形设计和品牌建设领域度过了过去的五年,我拥有使用Adobe Creative Suite以及使用基本HTML和CSS的经验。 我最接近于编写将要呈现的游戏玩法的东西,但是,它是制作30到40秒的动画。 因此,我是SkookumScript的独特用例。 实际上,游戏开发团队中的大多数人将至少具有使用集成开发环境(IDE)的经验。 其中包括声音工程师,艺术家和质量检查测试人员,这些是您传统上不会与编码相关联的角色。 有关游戏开发团队的典型角色的列表,请单击 此处

当我到达Agog办公室时,我看到的第一件事是两台非常宽的显示器,里面装满了数量惊人的代码。 SkookumScript的创始人和创建者Agog Labs的柯南·里斯(Conan Reis)接近我握手并给我喝水。 我在VIATEC的年度体验组织期间的一次推销活动中第一次遇到了柯南。 从那时起,我就以他的善良和温柔的态度去记住他,减去他那令人敬畏的疯狂科学家服装。 (坦率地说,我什至不知道疯狂的科学家们甚至都不办公室休闲。)柯南在人工智能领域的背景和开发AAA游戏已有24年的历史,这使他成为了他目前的专长-设计游戏开发和游戏开发的AI方面。

我一直非常尊重理智的科学,但疯狂的科学一直是我的呼唤”柯南·里斯

我一坐下,Agog Labs从阿姆斯特丹招募的Shadi Dadenji就向我介绍了屏幕上出现的不同窗口。 我们首先快速看一下Microsoft Visual Studio中的C ++代码,柯南和Shadi正是用它来创建和完善SkookumScript集成开发环境(SkookumIDE)本身。 然后,我们看一下IDE面向用户的一面,看看它如何插入虚幻引擎3D World编辑器中。 Shadi告诉我,我实际上将使用柯南为首次用户创建的演示世界自己创建一些命令和脚本动作:一个金属的多房间区域,其中包括英雄角色和三个机器人,我只能假设是坏家伙。

几分钟后,屏幕的流动开始变得很有意义。 在SkookumIDE中,Shadi向我介绍了SkookumScript的语法。 我们介绍了一些用于选择和控制某些字符的类,变量和表达式。 我们使用不同的命令,包括使机器人朝着角色奔跑,相互竞赛, 狂奔奔跑 是的,这些是SkookumScript真正使用的术语。 Shadi向我展示了如何仅用几行就可以创建实时命令,而这些命令原本需要C ++的段落。 而且,有人告诉我,如果我们不使用SkookumScript,则每次重置机器人以尝试新的东西时(通过使用“ robo_reset”并按F4键),我们通常都必须关闭,重新编译并重新启动。

对我们插入的代码行最吸引我的是可读性。 尽管我没有参考其他脚本语言,但是代码似乎读起来很粗糙。 例如,以下代码用于将机器人角色之一移向英雄:

同样,此代码将随机机器人发送给角色:

所以现在我不禁要问:如果SkookumScript真的是如此可集成,简单且高效,那么为什么以前没有做过呢? 在一个像电子游戏这样庞大的行业中,肯定会有其他疯狂的科学家投入时间寻找可行的解决方案,如果他们还没有的话。

作为回应,有人告诉我,另一种流行于游戏脚本的脚本语言是Lua,它是1993年为巴西石油工业而创建的。虽然Lua简单易行,但缺少内置的游戏概念,本机编辑器或调试器,以及一家提供更新和支持的统一公司。 此外,要使用Lua,每个工作室都需要从根本上创建Lua技术的自定义副本,并将其私有化。 因此,当熟悉Lua的人开始在另一间工作室工作时,他们需要学习新工作室的独特用法。 Agog Labs希望通过确保SkookumScript是通用的并得到完全支持来弥补Lua的缺点。

作为我的大结局,Shadi让我负责SkookumIDE。 我写了几行命令,将每个机器人设置为同时向英雄运行,并在到达所有目的地后使英雄爆炸:

因此,尽管SkookumScript可能不适合IDE和3D世界编辑器的新手使用,但人们可以相对轻松地掌握一般原则。 这使我怀疑在视频游戏工作室工作的那些人可能完全拥有这种体验,无论他们的角色是什么。 使用所有团队成员都可以遵循的语言,这意味着每个成员都不必等待工程师帮助他们进行小的更改。 这样可以节省大量时间和成本。

我不禁想到SkookumScript的另一个独特之处,那就是电子游戏之外的潜力:它在学术上的应用潜力。 尽管我只能在SkookumIDE中呆两个小时,但可以想象一个充满热情的孩子的房间在自由统治下可以做什么。 在过去的几年中,编码读写已经成为世界各地学校的优先事项。 柯南说,像SkookumScript这样的语言几乎可以用在任何需要实时控制的领域(例如交互式自动化,机器人技术,航空技术,物联网或大数据),这可以证明是一种了不起的,引人入胜的学习工具。

因此,事实证明,视频游戏的幕后场景也很有趣。 下次当您花费大量时间进行激烈的游戏时,您可能会想知道自己正在玩的游戏背后的科学是否有点疯狂。