哈Ha! 在将近15年的时间里,我们一直在创建和开发Web服务。 您可能认识其中的一些人,有使用经验,热情地爱过或有不同的感觉,但这不是现在。
因此,我们有2个在市场上广为人知的网站建设者-uCoz和uKit, 90 %以上的注册从未转换为创建自己的网站,雄心勃勃的愿望是至少挽救5 %的受众,并且团队中还有两个半人拥有类似的没有游戏开发经验。 并不是说这是发布有关网络行业的游戏的必要供应……嗯,您知道的。

缠绕路径的起点
后端有59845行代码,前端有65675行。 超过2年的开发,失败和死锁,7种接口选项。 所有这一切现在都在我们身后,尽管梦见某个团队成员可能要花很长时间。
人们和一家主要与网站建设者打交道的公司,突然之间采取了在线多人策略 (并且这样做了)。 即使是主题:关于网站和网站管理员?
在某个时候,我们意识到uCoz作为一种产品开始过时,这是创建uKit的动机之一。 一切都会好起来的,但是事实证明,这个问题更深了,其根源并没有遍及任何地方,而进入了人类心理学。 在全球范围内讨论哪个网站构建商都没有关系-uKit,uCoz,Wix,Tilda,Jimdo,LPmotor(请原谅我没有任命的所有其他同事,我们有数百名,我记得每个人,我爱每个人)。 绝大多数注册用户将永远不会创建网站 。 这是一个容易验证的事实;足以比较注册数量(不带漫游器的数量)和实际服务的域/活动客户端的数量。
为什么这样 这是一个很好的问题,在寻找答案时,我们不仅给用户打电话,而且给我们打电话。 因为明天 。 或下周。 一切都清楚,一切都很方便,但是没有时间。 就像去健身房。
那时,一个简单的想法就出现了-对于这些人,对于他们的吸引力,我们已经付出了,而不是试图通过让他们参与创建网站来拯救至少一部分观众?
“我相信,与互联网项目的创建有某种联系的每个人一定都应该将网站管理作为这一经济战略的一部分。 难怪他们说游戏可以教些东西。这是您真正了解一些管理网站团队的原则和在许多网站上工作的功能的少数情况之一。 对于那些即将涉足这个行业的人,必须研究游戏中呈现的机制!”
Dmitry G. aka Dimok (在Runet网站管理员的狭窄圈子中臭名昭著,博客)
每个人都想为自己做游戏。
没有人完全相信我,但这确实不是第一位的先决条件。 尽管历史与世界一样古老。 “我是音乐家,让我们为音乐家制作游戏!”,“我是游戏开发者,让我们制作Game Dev Tycoon!”-这类玩具的例子很多,尤其是在独立游戏类型中。
顺便说一句,Game Dev Tycoon显然是成功的。 一群克隆人在暴民身上发展证明了这一点。 平台。 我们的游戏本质上是不同的(其他机制,设置也不同),但Web Tycoon通常与它们进行比较。

初次痛苦
做出决定,我们做游戏。 他在开篇中谈到了团队的经验,此外,这些家伙已经在忙于正在进行的项目,这是不合理的。 那又怎样 因此,您需要将工作委托给专业人员。 这是我们的第一个真正的痛苦。
首先,最诚实的尝试是聘请一家发达的游戏开发工作室进行开发。 幸运的是,可以从研讨会上的同事朋友那里获得建议,最好向他们寻求帮助。 在创意层面上,每个人都喜欢这个项目,而工作室也准备着手进行这项工作。
以下是我们稍后遇到的一些方案:
- 是的,我们承认,我们的游戏玩家没有。 该项目祝您好运!
- 想要浏览器游戏吗? 让我们在Unity上做到,而不是一个问题。 用户需要将插件安装到浏览器中(当时只是这样)并不是一个问题,几乎每个人都要付出代价!
两个工作室支付的不是最便宜的diz。 码头。 收到了非常多的结果。 毫无疑问,已经完成了很多工作。 但是,这全都与其他游戏有关。 也许还不错,但又有所不同。 对于这种描述,民众最适合:“无论俄国人做什么,一切都变成了卡拉什尼科夫突击步枪。” 显然,人们已经习惯了它,并且想要以一种众所周知的,具有众所周知且发达的机械手的类型来进行操作,这就是为什么他们在diz中具有象征意义。 doc
但是,没有一线希望。 在从一个工作室到另一个工作室的漫长过程中,我们提出了一个但非常有价值的名字。 原始代码是uWebmaster(游戏是关于网站管理员的,我们习惯用字母U来调用所有内容)。 提出了一个显然更相关的选项-Internet Tycoon,然后将其转换为Web Tycoon。
第二种痛苦,自己动手
当我们不得不承认与我们(或与我们)的工作室没有任何关系时,我们决定盖房。 游戏设计师开始为该过程选择一系列基本人员。 谁会想到这个想法,最初对类似类型的游戏感兴趣,拥有必要的能力等。
我不想长时间讨论一个非常困难的话题,这些游戏设计师是谁。 如何以及是否编写diz。 码头。 游戏设计师应该玩自己的游戏,与观众交流,成为经理。 这是一个非常独立且全面的对话。 我要说的一件事:今天,由于完全不同的原因,该项目和团队幸存了4位游戏设计师(包括一名初级游戏设计师)。
各个方面的招聘都不容易。 长期以来,它的唯一代表就是一个孤独的游戏玩法(上述4个游戏之一)。 造成这种情况的主要原因是要求很高的“剩余原则”。 也就是说,首先,开发人员需要主项目,并且在那里他们被成功聘用。 并且游戏的技术目录没有明确化。 当然,这是不可能做到的。 决定去做-去做。 但是我们做了很长一段时间了。
甚至当techdir最终出现时,他仍然很长一段时间是自己的团队负责人,架构师,并且从整体上来说还是一个表演者。 纠正员工胡说八道。 组成一个完整的团队花了大约六个月的时间。 奇怪的是,他们正在寻找插图画家。 突然,我们的办公室经理成了他们。
总结这部分故事的某些结果,可以说两年前我们的游戏团队开始真正工作了。 是为谁绘制界面,为谁编写代码,甚至是稍后才引入scrum的,这已经成为整个公司的既定做法。
设计与介面
现在我们看起来像这样:

这对于游戏来说是很不寻常的,甚至可以说它很无聊而且不好玩。 但这是一个有意义的选择。 乍一看,它看起来更像是门户网站,而不是游戏。
人们喜欢:

在向熟人显示屏幕截图时,我经常听到类似的声音:“所以这是管理面板”,“我认为这是某人的统计信息,而不是游戏。” 那些作为我们听众的人立刻大跌眼镜。 他们想要真正地道的东西,而不是香椿。 也许由于选择的样式,我们失去了一些随便的球员,但我们相信它的简洁。
他最终说服了这款游戏不必看起来像典型的游戏,而是《足球经理》。 模拟器可能看起来不太好玩,但可以成功。 这是流派。
在所选样式中,有多种视觉效果选项。 以下是来自不同设计师的不同解决方案。






如果添加AI,一切都会更好
玩家喜欢化妆品。 我们尚未实现它,但是已经学习了如何根据照片为玩家生成化身。 最有趣的是,这种情况发生在非常创新的,无需数据集的机器学习和模型训练专用方法中。
它是根据我们的头像设计师的元素生成的,而不是根据Prisma的照片进行样式化的。 尽管这台机器在质量上并没有赢得任何人,但在质量上却赶上了他,考虑到这项任务,这被认为是成功的。

该技术本身有发展计划。 这个故事值得一个单独的帖子,甚至一个都不要,而且肯定会在哈布雷上发表。 如果某人非常急躁,请敲一下PM,我们将为您提供亲自体验的机会。
英文优先,手机优先
我们离发行版越近,就越意识到我们的游戏非常适合移动设备。 比台式机更好的地方。 同时,在测试期间,我们的浏览器播放器使观众非常满意。 他们在游戏的聊天室进行了活跃的IT对话,编写了使游戏自动化的机器人,并选择了我们未公开的API。
最初,游戏的开发是基于我们当前正在使用浏览器的想法,我们在其中测试机制,平衡性,然后借助嵌入式API来快速收集本机应用程序。 现实已经作出调整。
这项出色的计划没有时间或预算了。 同时,几乎所有与我们交谈的发行商都对移动设备感兴趣,并在我们拥有移动设备时主动找他们。
必须做出妥协,因为在Cordova上几个月,我们将iOS和Android应用程序放在一起。 显然,它们不是标准的(虽然很不错),但是您可以玩得很舒服。 而且有可能绝对准确地检验假设的“进展如何”。
App Store的问题
在Apple和App Store的主持下,我不得不费力。 最初,有一个起草工作的动机是:“您是一个Web应用程序。 “ Apple设备具有Safari,并且可以在其中使用,不必理会。” 但是我们赢了。
然后,不幸的是,由于苹果的要求,我不得不将引人注目的游戏货币比特币改名为Webcoin。 公平地说,他们是对的,错失确实是可能的。 尽管对我们来说感觉并不相同。
至于本地化,我们已经完全准备好开始讲英语的听众。 但是,对我们来说,磨练和测试我们的俄语母语市场更为容易和便宜。 因此,到目前为止,我们仅在俄罗斯开始,但是一两个星期后,我们预计将返回英语优先。
技术要点
从React和Redux迁移到Vue和Vuex
我知道,现在我们正踩在可能的工具上,因此,我将立即保留一点,即我们不施加任何要求或主张任何事情,我们明知同意“您根本不知道如何烹饪它们”。 这只是对我们的道路,选择理由和经验的描述。
在创建游戏过程中的第一个革命,尽管很柔和,却是从React和Redux过渡到Vue和Vuex。
我们公司尝试在几乎相同的技术堆栈上开发所有产品。 这主要是积累的专业知识,在这种情况下,开发团队之间可以轻松转移。 今天对我们来说很基本:NodeJS,React和MongoDB。
最初,使用NoSQL编写具有大量数据和连接的游戏是愚蠢的。 结果,我们所有人迁移到这里都流血了一个星期,但首先是第一件事。
为什么从React转变为Vue了一半?
新游戏设计师的到来改变了中央游戏机制,从而导致游戏中大多数界面的严重变更。 新技术很快在Vue上原型化,选择的标准是进入该技术的门槛低。 在同一时期,我们提出并开始引入交通增长,利润和能源的向量系统。 在此之前,他们只是及时地写数据,却没有按照变化的速度进行操作。
最初,我们与React一起使用Redux。 传播速度非常快-游戏中每个用户在网站上的操作都会创建一个新条目。 因此,整个故事变了,吸气剂被重新叙述,他们对流量和利润进行了复杂的计算,结果-所有这些都大大减慢了速度。 当然,您可以使用MobX,重做计算逻辑,但是此刻恰好是中心机制发生了重大变化,这是以前不存在的。 或星辰重合。 他们尝试通过连接多个方来解决Redux中的问题,而在Vuex中,一切都可以立即使用,并被分成任意数量的子模块,而没有不必要的手势。
Vue的语法糖和灵活性确实“打击”了我们。 例如,现在,为了定期更新组件中的值,我们代替了计算属性
foo() { return bar + baz; }
写
foo() { return (this.oneTick, bar + baz); }
this.oneTick属性中隐藏了一点魔力,该属性是反应性的,每秒更新一次,如果表达式bar + baz的结果发生变化,则会导致呈现组件。
数据库迁移
从后端开始,我们进行了一小笔大迁移。 最初,该项目是在MySQL上完成的。 既然很快,就以为我们需要接力赛和其他乐趣。 在那之后,我们稍微成熟了一点,并且很轻松地切换到了PostgreSQL。
迁移到MongoDB更为广泛和复杂。 该决定是由于易于扩展和相对更高的性能。 尽管存在ORM,但在第二步中仍然存在更多问题。 但是,标准ReplicaSet和AutoFailOver的设置仅花了我们一个小时。
关于出版商的几句话
首先,我们在等待他们。 到目前为止,只有Mail.Ru充满信心地相信我们。 谢谢你的同事。 很快我们将了解我们的浏览器版本如何吸引他们的受众。
他们在智能书籍和播客中说,出版商需要走到一半,而不是在发布阶段。 我们这样做了,提前开始了交谈,包括11月去DevGamm。
我们期望什么:
“是的,好的,只需重做一次,这就是我们以及我们的专业知识!”
我们得到了:
“这很酷,有些新鲜,不标准,有趣的设置,但是您如何开始,就会有货币化技术-来吧。”

一般而言,该理论使我们失败了。 试图理解为什么会发生这种情况,给出了答案:“您的标准不规范,所以就在这里。”
亲切地说,我认为没有那么多非标准,但他们知道得更多。
总的来说,游戏开发者的代表会对我们产生积极的反应。 可以看出,市场已经厌倦了下一个“杀龙”和“征服城堡”。 尽管这可能是从内部对人的一种扭曲的看法。
决赛
沿着这条崎,不平的小路,我们吃了顿午餐。 如果不对获胜者进行评判,就不是这种情况,而且还不能称为胜利。 因此,我们在评论中等待您的反馈和问题。 我们会及时响应一切!
如果您准备提供合作,我们甚至愿意考虑。