阻止游戏生存和软件开发-铁杆!

程序员是如何组成的? 他们中的一些人一直梦想着成为一名,因此他们完成了适当的课程,并最终找到了理想的工作。 有些人没有计划这样做,但最终厌倦了他们的工作,并决定走这条新路。 某些人…玩了一个关于打破和放置积木的视频游戏

我叫Daniel Wegner,我是退休的主持人,是/ r / ultrahardcore subreddit(http://www.reddit.com/r/ultrahardcore)的主持人。 在本文中,我想介绍一下我在该社区三年中所做的一些观察。

UltraHardcore社区

但是,让我们不要从头开始。 提到的社区聚集在一个名为Minecraft的游戏中的非常特定的游戏模式下。 在详细介绍之前,让我快速解释一下Minecraft到底是什么。

《我的世界》是一款游戏,玩家在一个由块组成的世界中开始游戏(该游戏试图使其看起来像真实世界)。 他必须通过与怪物战斗,收集资源,制作工具等来生存。游戏中没有真正的最终目标。 它带来了很多创造力-许多玩家创造了复杂的游戏装置或结构。 多人游戏功能使玩家可以合作……或互相搏斗。 许多服务器都是基于玩家对玩家的战斗,很多玩家都喜欢。

UltraHardcore(简称UHC)社区基于游戏模式,这使游戏更具挑战性。 在标准的《我的世界》中,玩家不饿时(他的食物栏已满或几乎已满)会自动恢复健康。 但是,在UHC中,它不是-您必须手工制作称为“金苹果”的物品,这要求您首先找到黄金。 这是由一群名叫Mindcrack的YouTuber发明的,起初是一个真正的挑战。 在根据想法观看了其系列的3个季节之后,一些观众决定创建一个可以定期玩类似游戏的地方。 那是/ r / ultrahardcore subreddit第一次启动的时候。

它的工作方式是:有人购买服务器,进行设置,在特定时间打开服务器,然后游戏很快就会开始。 大多数时候,都会使用Minecraft服务器的修改版本-Bukkit或Spigot。 两者都实现相同的API,并允许用户创建服务器端插件。 最初,我们每周约有1场比赛,约有10–20名玩家。 如今,每小时有几个游戏,其中一些游戏玩家超过100名。 一个典型的游戏持续60-100分钟。

在经典(所谓的“香草”)版本中,玩家分散在同一世界中,并且必须相互竞争才能成为最后一个(或团队)成员。 要为此设置服务器,可以使用一些公开可用的插件。 大多数主持人决定以一种或另一种方式自定义他们的游戏,这就是本文的主题。

客制化

为了给您提供这种定制的示例,让我提出社区提出的最古老的游戏模式之一-Moles。 在这种情况下,每支球队中的一名球员成为一颗痣(大约15–20分钟后),他的目标是杀死他的老队友。 他可以选择一组可能的物品来帮助他实现这一目标,并且可以与其他痣进行交流。 他团队中的球员不知道谁是黑痣,他们不得不猜测要摆脱他。

为了实现这种服务器行为,可以自动选择痣,可以选择一个工具包并进行通信,因此必须为服务器制作一个Java插件。 尤其是,这是由用户以Bergasms的名义制作的,当时他已经是一名全职程序员。 但是,这只是一种游戏模式,到目前为止,subreddit的用户已经提出了数百种。 同时,以Java创建插件所需的知识来社区的人并不多。 同样,游戏模式是一回事,主机商还希望以其他方式自定义其服务器(例如:创建PvP练习场,在玩家去世时播放特殊声音,让游戏世界自动准备自身等)。 这是其他玩家自己处理事情的地方。

Skript的第一步

然而,Java对于青少年来说并不是一种简单的语言(我们谈论的是通常13至18岁的玩家)。 他们通常乍一看就将其丢弃,因为他们想在短时间内实现简单的目标。 这是一种叫做Skript的语言开始发挥作用的地方。 Skript实际上是一个自己的Java插件,它允许玩家使用自己的脚本语言来控制服务器。 让我给你一个简单的例子。

 右键单击: 
消息“轰!”

这个简短的脚本使得如果玩家右键单击它会向他发送消息。 仅此一项就需要Java插件中的许多代码行。 当然,大多数Skript脚本(简称为“ Skripts”)也不是那么简单。 一个很好的例子是用户以Camaro6460的名称制作的散点图。 使用单个命令,您可以将服务器上的玩家(全部或选择一个)分散到具有特定半径,特定坐标和特定玩家之间最小距离的特定世界中。 这还考虑到玩家不应在熔岩或水下产卵这一事实。 最后,它是一个非常复杂的软件。 就像大多数skript制造商一样,Camaro6460不是专业程序员,而是一个在UHC社区期间学习该语言的少年。 我向社区询问了他们为什么开始使用这种语言,让我们看一些回应:

“我最初开始使用Skript的原因是,与使用Java为Minecraft服务器在这里和那里制作很少的功能相比,使用Skript似乎更容易。 当您只用3或4行编写内容,而这在插件中占用了15-20行时,这是很好的。 它比Java更快,更容易,并且在学习曲线方面也比Java低得多,因而更加方便。” — HunterWolf105

“大约3/4个月前,我创建了服务器。 我不知道Skript是如何运作的,所以我自学了它。 最初我不是很好,我只是从subreddit(…)复制了skripts。 但是,随着我的进步,我的知识得到了极大的发展,我更加享受它。 一直以来都是我发挥自己的才能并加以运用的旅程。” — OrganizedMadness_

“我开始使用skripts,因为如果需要进行任何更改,它们会更容易修改或修复。 我决定自学一些速滑法,这样我就不必依靠别人为我做速滑法了。” — 016Nojr

“我对游戏模式,迷你游戏和其他东西有想法,我真的很想实现。 我手上有很多时间,所以我觉得这是一个学习的好时光!” — bjrs493

一般而言,平均回应提到使用起来非常容易,以及主机希望以一种或另一种方式自定义游戏。 此次调查中,skript制造商的年龄介于15至19岁之间,其中大多数人称自己在这一领域非常熟练。 我还问他们是否考虑过在Skript之后学习Java。 只有一个答复完全放弃了这种可能性,其他答复至少考虑了该想法或已经在学习中。

更进一步

尽管Skript是实现游戏模式和自定义游戏的最流行方式,但Java插件仍然存在,我已经提到了Mole插件。 社区中一些最古老的插件是由Bergasms和Ghowden的2位用户创建的。 与上一组不同,他们因为在社区中的时间而没有学习新的语言(或根本没有编程)-他们以前已经是熟练的程序员。 一个名叫LeonTG77的用户就是一个很好的例子,这个人专门学习Java专门用于插件,并在其服务器上大量使用他的技能。 在16岁那年,他已经自己实现了许多现有方案,并且服务器主要在自己的代码上运行。 让我们看一下他学习Java背后的原因。

“我曾经拥有一个生存/ pvp网络,当时我的计划是在其上拥有每种服务器类型,而我厌倦了从未找到能满足我需求的插件。 我想自己做一个,我也想尝试编码一段时间,所以在2014年2月的一天,我就像“操,尝试可能会出错吗?”,并开始观看编码教程。”里昂TG77

LeonTG77还表达了他有兴趣成为一天的专业程序员。 并非所有的Skript制造商都是如此,但其中一些人认为这是生活中的潜在途径。 只有两个用户直截了当地说他们不感兴趣,其中一个是不想学习Java的同一个人。

压力,截止日期和团队合作

还有另一件事需要提及。 成为一名熟练的程序员是一回事,而在IT环境中工作则是另一回事。 通常,由于截止日期或某些事情在最可能的时间破裂而使我们承受很大压力。 当您为UHC社区托管游戏时,没有什么不同。 打开游戏并且服务器上有100多个人之后,您最好确定自己已经准备好了一切。 有许多主机实例没有测试其插件/ skripts并在以后支付费用。 球员通常不太耐心,如果出现问题,他们将开始抱怨,使您的工作变得比以往更加困难。 在这一点上,您基本上正面临着愤怒的暴民,紧随其后的是手电筒和干草叉。 许多人都经历过这样的经历,并了解了两件事的重要性:测试代码和在压力下工作(因为有时您可以在不慌乱的情况下随时修正错误)。 错误的代码或服务器的配置不是造成上述压力的唯一原因-还有作弊手段,服务器受到DDoSed攻击,有时只是玩家抱怨。 我之前引用的HunterWolf105是一些Minecraft服务器网络的系统管理员。 尽管还比较年轻(18岁),但他已经面临管理员的通常挑战。

“我确实每天都感到很大的压力。 即使是最轻微的故障或性能问题,对于网络来说也是一个严重的问题,您猜谁能解决这个问题? 我基本上整天都在待命,因此,如果发生任何问题,我将被我的监控系统唤醒,因此必须对其进行修复。” — HunterWolf105

我提到了Minecraft服务器网络。 一些主机决定,他们买不起自己的服务器,不想设置它,或者只是喜欢与他人合作。 他们组建了这样的网络并以通用名称主持游戏。 仅举几个例子:北极,港口,迷幻,三甲地。 如果某人是这种网络的一部分,则需要他与他的团队一起工作,同时每个人都有各自的职责-观看作弊者,制作插件/盗版,托管等。当然,也有人来管理这些团队,这为他们在未来提供了许多有用的经验。

如您所见,/ r / ultrahardcore社区的许多年轻人发展了技能,如果他们选择生活中的IT途径,这将对他们有帮助。 他们中没有多少人打算学习与编程相关的任何东西,但是当他们只是想按照自己希望的方式玩自己喜欢的游戏时,事情就“独自发生了”。 他们是青少年,这为他们提供了巨大的开端和大量的时间来学习更多。 我敢肯定,如果他们开始从事IT事业,那么由于他们在社区中的参与,他们将拥有更轻松的时间。 有一天,有人会问他们关于编程的兴趣,他们的答案将是:“我玩了一个关于打破和放置积木的游戏”。

___

最初由Daniel Wegner于2016年9月22日在neoteric.eu/blog上发布。