学生的移动应用开发之路

您好,我想谈谈我是如何为iOS和Android创建我的第一个相对认真的游戏的。

背景知识


回到高中时,我和我的朋友非常擅长计算机科学课程,我喜欢编码和使用编程解决各种问题。 此外,我一直很喜欢游戏,而我和许多粉丝一样,都被自己编写游戏的机会所吸引。

确实应该,我对其他编程语言产生了兴趣,因此我决定从臭名昭著的Pascal中“成长”。 我的选择取决于臭名昭著的Python,因为我听说过它广泛的应用程序和相对容易的开发。 稍微阅读一下相关文献,为进行实践,我解决了Euler项目中的问题。

实际上,一直以来,我都想开始做一件非常严肃的事情,在某个阶段,我觉得如果不是现在,那就永远不会。
正如您可能已经猜到的,这种“严重”的游戏成为了。

找到本课的PyGame库后,我开始工作。 首先,我决定练习一些平庸的东西。 尽管如此,俄罗斯方块并没有这么做,但是尽管不是马上,但他意识到,他很高兴的是一款出色的老游戏“生活”。

生活



然后他们加入了我的作品:几乎完成的DX-Ball,我在叔叔的电脑上零度地玩过它,复制了Supaplex的雏形(怀旧),并且在相同的状态下,受到了相对现代的The Binding启发以撒。

Dx球'



以撒



学生的开始和创建自己的项目的第一动力



随着时间的流逝,我意识到自己不愉快的事情:尽管起初有足够的热情,但我没有完成项目的任何工作。 事情就这样了:我越来越少地返回到旧的开发项目,有时热情地接受了新的开发项目,但是结果却是一个。

然后,所有学生一生中最恐怖的时期开始了:考试。 编程逐渐淡出背景,但是通过考试并进入圣彼得堡理工学院的“电子和纳​​米电子学”后,我又回到了编程领域。 而且,学生生活让我有些震惊,教会了我责任感,这就是为什么我决定从现在开始我要完成所有项目的原因。

因此,我决定为Android编写一些东西。 一切都停止在同一个Python上,因为这是我唯一知道的东西以及我可以坚持的东西。 开始学习Kivy框架。 不幸的是,就我所愿,Python + Kivy并不是Android开发的最佳选择,而且我意识到我无法朝这个方向发展。

结果,我花了相当多的时间在这样一个简单的应用程序上作为测试,并给出了最终结果的几个选项,因此,我仍然把这个微不足道的项目拖到了最后,甚至上传到了GooglePlay。 然后,在两次著名的说唱战之战的流行之后,我的朋友主动提出对该主题进行测试并为他准备问题。 因此,我们的第一个完成的项目出现了,一个由两个人组成的团队出现了,取名为“ Aspid Dynamics”。



大部分时间都花在了解Kivy和另一个提供Google Material Design元素的KivyMD库上。 剩下的时间都花在了绘制图标和大量重新设计上(最终结果不是很多,但是可能会更糟)。 由于我不是一个人工作,这使开发过程变得容易一些,并激励了我。

新起点


结果不是我想要的,但我决定继续前进。 我为我仔细研究了一个新的开发工具,即著名的Unity引擎。 最终选择了进一步的开发方向,它仍然(只是)与C#熟悉并探索Unity本身的功能。 因此,我们接近了最近发生的事件。

和以前一样,我决定不立即解决一些不可能的事情。 这个想法很简单:创建一个游戏,人们可以写出适合预定条件的单词。 一个简单的示例:“输入包含三个字母“ o”的单词,然后输入“ bell”。 最初,这个主意似乎没有什么新意,但是在查看Play市场后,我没有找到这种游戏,这最终使我相信了这个主意的成功。

项目“词专家”


在为游戏选择了琐碎但易记的名称“ Word Expert”之后,我开始仔细考虑开发过程。 至少经过表面分析之后,该实现似乎并不复杂。 也许是这样,如果我们仅对基本机制进行形式化,但经过详细考虑,功能会不断增长并得到显着扩展。

在完成了项目描述之后,我热情地开始逐点实施。 主要思想很快就实现了:添加了基于多个模板创建关卡的功能。

模板是单词必须满足的某些条件的基础,其中包括:“子字符串”上单词的开头,即 字母或字母序列,单词中“子字符串”的内容,N个字母的内容,单词中字母数量的奇数/奇数等。

此外,检查玩家输入的单词是否符合模板以及字典中的存在。 根据单词的出现频率来授予分数,然后我开始根据5分钟内获得的分数来设置及格水平。 在游戏的标准级别中,一个人需要输入尽可能多的单词,才能通过以下级别。

文字专家



新问题和意外解决方案


一切都会好起来的,但事实证明,要使许多彼此不同的关卡非常困难。 再一次,我的朋友承担了帮助我的任务,到了我四十多岁的时候,问题不仅出在人们难以想象的水平上,而且由于人类感知的某些语言特征,我们经常选择某些字母和模式,固执地无视他人。

我们及时注意到了这一点,并试图加强对自己的控制,但是并没有达到预期的效果,因此我不得不计算并记录我们在关卡中使用字母和图案的频率。 此后,照顾自己变得容易得多,但最终只完成了60个级别。

由于需要提出级别会阻碍开发,并且由于上述问题,因此我决定实现一个级别生成器,该级别生成器将基于我们的模板创建合理的任务。 我找不到对应于作业的单词数量,其频率和获得多少分之间的相关性(这意味着水平也必须手动平衡)。

显然,这是由于这样的事实:即使在某些情况下,单词在某些情况下也更容易使用。 例如,在意识中,单词很简单地弹出,条件是从某个子串开始,例如,取单词“ ba”。 好像我们在对自己说这种初始状态“ ba”一样,大脑很容易用很多单词来完成它:“坦克”,“银行”,“香蕉”等。

但是,如果条件中包含不超过4个元音和正好8个字母,那么即使此类单词的数量增加了6倍,选择速度也会明显降低。 在某些模板上,当我们找到一个单词时,就会发现自己处于一个整体集群中(例如:以“ spruce”结尾),如果我们想到了教师一词,则可以看到许多职业最终像:“ builder”,“ driver”和等)。 如果没有任何联系,这些词就不会统一,那么只要在我们的脑海中进行一次简单的搜索,我们就会猜到更少。

抛光,新模式,修饰


创建的生成器确实极大地促进了关卡的创建,并逐渐增加了关卡的数量,我和我的朋友已经达到了数百个。 它的灵感来自生成器的成功创建,我们决定引入新的游戏模式。

这是“生存”,您需要输入单词直到计时器到期。 与经典模式的不同之处在于,玩家必须根据给定条件在N秒内输入单词。 成功满足条件后,将生成新任务,并扩展计时器。

后来,我们决定要不断维护内容,我们需要添加多人游戏。 当然,与处于困境的朋友测量词汇量或在线与陌生人玩耍会更加有趣。 “经典”多人游戏模式意味着一定时间内获得的积分数量存在竞争。 我花了很长时间在网络上进行游戏的实施,但我仍然想出并完成了2种相应的多人游戏模式。

开发过程中的许多问题为我们带来了设计。 主要的收获是,我本人远非一名设计师,我的朋友也不具备必要的技能,所以我想拍一张合适的照片。 第三位熟人同意为我提供帮助,但是在几笔草稿没有付诸表决之后,他无法继续。

结果,通过反复处理并收集朋友的反馈,我自己开发了设计的最终版本。

游戏发布,未来计划


最初,Word Expert只能由于有限的预算而进入Play市场,但我的朋友帮助我在AppStore上获得了99美元的发行费用。

我们计划补充和更新游戏。 额外的关卡,成就,玩家评分等等。 也许我们将进行英语本地化,这在这个游戏的背景下有点昂贵。

非常感谢您对阅读此长篇文章的所有人的关注。

真诚的你的
Aspid Dynamics团队。

Source: https://habr.com/ru/post/zh-CN459928/


All Articles