今年,针对IT中学三星高中生的社交和教育计划已经5岁了( 在此处了解有关IT SCHOOL的信息 ),这次我们邀请毕业生谈论他们自己以及创建他们的移动应用程序的经验。 我们相信,每个人都能怀着极大的愿望取得成功!大家好!
我的名字叫Shamil Magomedov,我是2017年SAMSUNG IT SCHOOL的毕业生,目前我是MIEM NRU HSE的学生。 今天,我想谈一谈我如何通过“
DrumHero ”游戏,从
三星IT-学校的“有条件归功 ”转变为全俄移动开发竞赛的决赛入围者。

背景知识
我在10年级时进入了IT SCHOOL。 从培训的第一天开始,我就落后于其他人,这在课程开始之前是可以预见的(这是我入学考试的极低分数所表明的)。 所有这些编程原理,Android平台的设备和Java语言,如何理解所有这些?
幸运的是,我拥有成功开发技能所需的一切:无限的前进欲望和不停的追求。
花了很多时间做作业,并在与老师弗拉基米尔·弗拉基米罗维奇·伊林(Vladimir Vladimirovich Ilyin)夫妇在一起后一直徘徊(我对他非常幸运),我开始适应快速的培训,并考虑了毕业项目。
和老师-V.V. Ilyin搜寻想法
许多人认为,在创建项目时,无论是初创公司还是获得经验的小项目,整个困难都在于开发:编写一堆代码,学习新库,不断进行测试是可怕的! 相信我,这根本不是真的。 我以完全相同的方式进行推理,直到我自己面临选择和实施想法的需求之前,结果证明这是最困难的阶段之一。
在培训的初始阶段选择一个想法时,最困难的事情就是确定实现的复杂性:很长一段时间以来,我一直想不出能够负担得起的,同时又喜欢的应用程序。
我最想写音乐游戏,但对我的能力的怀疑却非常困扰。 似乎无法完成这项工作,因此,我不止一次更改了选择:移动式台球,保龄球,跑步者等。 最后,我从中学到了一个教训:无论应用程序的想法如何,
总会出现困难 ,因此
最重要的是选择自己喜欢的东西并结束 。
我一直喜欢游戏《吉他英雄》游戏逻辑实现
诸如Guitar Hero之类的应用程序的主要思想是点击屏幕以适应音乐的节奏。
首先,我开始实现游戏逻辑:
- 创建了笔记,按钮和条纹的类,笔记将在其上移动。
- 我将画布放在应用程序的整个屏幕上,在其上已经绘制了所创建类的对象的位置。
- 实现了歌曲的mp3文件和从音符数组数组中接收的音符的同时启动! 游戏的初稿已经在我的智能手机上:)
游戏的第一个版本是的,它看起来“令人印象深刻”,但这足以测试游戏! 最后一个必要步骤是列出这首歌的音符,我不得不花很多时间来实现它。
原理很简单:根据数据库表的值,程序创建“ Note”类的对象,并将接收到的注释添加到数组中。 该表由两列组成:
- 从1到4的行号,音符应该沿着该行号
- 它应该出现在屏幕上的时间。
如果一切都这么简单,我花了很多时间? 要填充此数据库!
不幸的是,那时我还没有想到如何自动化从歌曲的mp3文件中接收所需格式的音符的过程,因此我不得不手动填写这些栏。
用注释填充数据库的过程这种方法使我一开始就可以开始开发和测试游戏,但是很明显,我需要提出其他建议。 然后我的老师Ilyin Vladimir Vladimirovich帮助了我很多,他们讨论了MIDI格式的存在,解释了它的结构,并帮助我弄清楚了我找到的用于处理MIDI文件的库。
这种格式的优点在于,每种乐器中已经有一条单独的轨道,某些“音符”位于该轨道上。 因此,您可以轻松地循环处理所有笔记,并根据曲目和时间将它们自动添加到数据库中。 这是一个非常重要的属性,因为多亏了他,我才得以解决这种类型的游戏问题:无法添加自己的歌曲。 没错,MIDI格式有很大的缺点-声音(我们都记得怀旧游戏中的音乐,对吧?)。
我逐渐改善了游戏玩法,使程序进入了完全可操作的状态,并添加了许多“功能”:可以从设备的内存或云目录中添加歌曲,可以选择难度级别,还可以使用初学者模式等等。
最后,我来到了“蛋糕上的樱桃” ...
设计方案
这就是我对游戏的“愿景”开始体现的地方。 首先,我开始选择绘图程序。 我没有图形设计方面的经验,因此我需要简单易学(Photoshop-by),但同时又要灵活方便的程序(绘画,对不起)。 选择权在于Inkscape-一种用于编辑矢量图像(主要是svg格式)的好工具。
我已经习惯了该程序,因此我开始绘制游戏的每个元素并将其保存为不同的分辨率,以适合不同屏幕尺寸的设备。 还尝试实现音符爆炸的动画效果,尽管最终的设计不合适,但我还是很高兴。 当然,在项目完成的同时,我继续进行设计工作,添加了新的颜色(渐变是“一见钟情”)。
设计的第一个版本(两个屏幕,没有动画,旧名称)
设计的第二个版本(4个屏幕,初始屏幕以不同的颜色平滑地脉动,到处都是渐变色)我为毕业设计辩护,当我发现自己已经通过了资格赛并被邀请参加IT SCHOOLS应用程序竞赛的决赛时感到非常高兴。 比赛还剩下一个月的时间,我认真考虑过要吸引一个更专业的设计领域的人。 搜索没有白费:事实证明,我兄弟的密友是一位出色的设计师! 她立即同意为我提供帮助,而当前的游戏设计是她的优点。
设计的最终版本过帐
完成发行版本的工作后,我立即开始准备该应用程序,以便在Google Play市场上发布。 标准程序:获取开发人员帐户,编译应用程序页面等。 但是本节与之无关。
这个故事中最令人惊讶的是下载统计信息。 最初,DrumHero的下载量在欧洲,美国和独联体国家的某些国家逐渐并且几乎均匀地增加,但是一个月过去了,下载量达到了100,000个下载量! 一个有趣的事实是,大多数下载来自印度尼西亚。
结论
DrumHero是我学习编程的第一个主要项目。 他不仅将我带到了SAMSUNG SCHOOLS IT项目竞赛的全俄决赛,还为我在GameDev中结合Play Market服务等提供了丰富的图形设计经验。

当然,虽然今天的下载量已达到近20万,但现在我看到了游戏中的许多缺点,我计划发布一个新版本,我对如何提高稳定性,改善游戏玩法和增加下载数量有想法。
帮助:
IT SCHOOL SAMSUNG是针对高中生的免费全日制附加教育计划,它在俄罗斯的25个城市中工作。
学生毕业项目是一个移动应用程序。 它可以是游戏,社交应用程序,调度程序-他们想要的一切。
您可以从2019年9月开始在计划网站上申请培训。