我一直发现,我从事过的最激动人心的项目是那些将我的几个兴趣结合在一起的项目……那么,我可以将自己的兴趣与不断增长的编程技能相结合吗? 好吧,我玩过《英雄联盟》已有好几年了,但是直到现在还没有使用Riot API的能力。
很难不被API可以访问的所有东西所淹没。 当您对使用API为您提供的数据想要构建的内容不太了解时,尤其如此。 虽然令人生畏,但对自己想做的事情没有很深的了解也可以被视为一件好事。 在某种程度上,它使我们容易接受更具创造性,自发的想法。 这是我在尝试这个小型项目时试图拥有的心态。
英雄联盟社区(以及整个游戏社区)最有趣的方面之一是专业彩带和玩家的广泛观看。 英雄联盟是流行的流媒体平台Twitch.tv上流媒体最广泛的游戏之一,自2011年诞生以来,观看人数一直在持续增长。
该游戏的专业电竞联盟由于忠实的粉丝群而吸引了大批观众,但许多人涌向受欢迎的视频流,以从游戏退伍军人那里获取技巧和打法。 但是,问题在于,一些最佳的职业选手经常因为忙碌的日程表而选择不播放。 如果您无法在专业广播之外观看玩家的游戏,该如何从最佳中学习?
尽管初学者级编码项目通常被归类为学习经验而不是有用的工具,但我还是想牢记功能性,因为我认为这对将来是一种很好的做法。 考虑到已确定的问题,我重新提出了API,并针对我希望程序执行的一些一般目标。 我知道英雄联盟很早就提供了自己的观众客户端,因此玩家可以观看好友名单上的人的游戏。 也许增加了观看任何玩家游戏的功能? 由于范围缩小,曾经令人生畏的API对刚起步的程序员的威胁变得小得多。
就像我在编程之外执行任何其他任务一样,我决定将这个项目分解为可以单独解决的核心问题。 首先,该程序需要做的是输入玩家的召唤者名称(您用来注册任何英雄联盟帐户的用户名),并检索我可以获得的任何有用信息。 从那里,我可能会使用该数据打开该玩家现场游戏的观众视图。 经过一些讨论线程的挖掘(当您尝试在陌生领域学习时,这是一种非常宝贵的工具),事实证明,如果您能够获得两个关键信息,那么观察任何玩家的游戏实际上非常简单:
1.游戏的“ encryptionKey”
2.游戏的“ gameId”
有了这两条信息,观众客户端就可以打开英雄联盟的任何实例。 大! 现在,我获得了完成项目所需的所有信息,我只需要添加一些Ruby魔术来将它们捆绑在一起即可。
总体而言,尽管我构建了一个可运行的应用程序,但我还是希望在将来实现一些功能。 首先,Riot API要求创建者每隔几天刷新一次API密钥,从而使该工具对于不想直接与代码进行交互的任何人都不方便。 其次,该应用程序仅适用于Windows。 不管出于什么原因,在MacOS上使用特定玩家的gameID和encryptionKey打开观众客户端的情况都没有得到很好的记录。 将来,我想解决这两个问题,并为希望将此应用程序用作英雄联盟的教育经验的用户实施其他数据分析。