DrumHero:我是如何制作人生中第一款游戏的

今年,社会和教育项目 IT SCHOOL SAMSUNG 迎来了 5 岁生日(了解 IT SCHOOL 这里),这次我们邀请我们的毕业生谈论他们自己以及他们在创建移动应用程序方面的经验。 我们相信,只要有足够的渴望,每个人都可以取得成功!

本部分的第一位嘉宾是 Shaamil Magomedov,他是 SAMSUNG IT SCHOOL 2017 届毕业生,现在是 MIEM NRU HSE 的学生。 Shaamil,非常感谢您在百忙之中抽出时间来写这篇文章!

您好!
今天我想谈谈我是如何通过这款游戏从“有条件录取”到三星IT学校,进入全俄移动开发大赛决赛的 鼓英雄.

DrumHero:我是如何制作人生中第一款游戏的

史前

我在 10 年级时进入 IT 学校。 从训练的第一天起,我就落后于其他人,这甚至在课程开始之前就可以预见(我的入学考试成绩极低就证明了这一点)。 所有这些编程原理、Android平台的结构和Java语言,如何理解呢?

幸运的是,我拥有成功掌握开发技能所需的一切:前进而不是停止的无限渴望。

投入大量时间做作业,经常在老师弗拉基米尔·弗拉基米罗维奇·伊林(Vladimir Vladimirovich Ilyin)(我非常幸运和他在一起)下课后熬夜,我开始适应快节奏的学习并思考我的毕业设计。

DrumHero:我是如何制作人生中第一款游戏的

与老师 - V.V. Ilyin

寻找一个想法

很多人认为,在创建项目时,无论是初创公司还是积累经验的小项目,所有的困难都在于开发:编写一堆代码,学习新库,不断测试 - 恐怖! 相信我,这根本不是真的。 我以完全相同的方式推理,直到我自己面临选择和实施一个想法的需要;结果证明这是最困难的阶段之一。

在学习初期选择一个想法最困难的事情是确定实现的复杂性:很长一段时间我都无法想出一个我可以做并且同时喜欢的应用程序。

最重要的是,我想编写一款音乐游戏,但对我能力的怀疑确实阻碍了我。 似乎无法完成工作了,为此我不止一次地改变了自己的选择:移动台球、保龄球、跑步机等。 最终,我从中吸取了一个教训: 困难总会出现,无论应用想法如何,因此 最重要的是选择自己喜欢的并走到最后.

DrumHero:我是如何制作人生中第一款游戏的

我一直很喜欢吉他英雄这个游戏

游戏逻辑的实现

《吉他英雄》等应用程序背后的基本理念是随着音乐的节奏点击屏幕。
首先,我开始实现游戏逻辑:

  1. 创建笔记类、按钮和笔记将沿其移动的条纹。
  2. 我将画布放置在应用程序的整个屏幕上,并在其上描述了所创建类的对象的位置。
  3. 实现了同时启动歌曲的 mp3 文件和从数据库获取的一系列音符,瞧! 游戏的初稿已经在我的智能手机上:)

DrumHero:我是如何制作人生中第一款游戏的

共 XNUMX页XNUMX条记录

是的,它看起来“令人印象深刻”,但这几乎足以测试游戏了! 最后一个必要的步骤是歌曲的音符列表,我不得不花很多时间来实现它。
原理非常简单:程序使用数据库表的值创建“Note”类的对象,并将生成的注释添加到数组中。 该表由两列组成:

  • 注释应位于的行号 1 到 4 以及
  • 它应该出现在屏幕上的时间。

如果一切都这么简单,为什么我要花很多时间? 填充这个数据库!
不幸的是,当时我无法弄清楚如何自动从歌曲的 mp3 文件中获取所需格式的乐谱,因此我不得不手动根据耳朵填写这些列。

DrumHero:我是如何制作人生中第一款游戏的

用笔记填充数据库的过程

这种方法使我能够尽早开始开发和测试游戏,但很明显我需要想出一些不同的东西。 在这里,我的老师 Ilyin Vladimir Vladimirovich 给了我很多帮助,他谈论了 MIDI 格式的存在,解释了它的结构,并帮助我找出了我找到的用于处理 MIDI 文件的库。

这种格式的美妙之处在于,其中每个乐器都已经是一个单独的轨道,其中某些“音符”位于其上。 这样,您可以轻松地循环浏览所有笔记,并根据曲目和时间自动将它们添加到数据库中。 这是一个非常重要的属性,因为正是有了它,我才能够解决此类游戏的问题:无法添加自己的歌曲。 诚然,MIDI 格式有一个很大的缺点 - 声音(我们都记得复古游戏中的旋律,对吧?)。

在逐渐改进游戏玩法的过程中,我使程序达到了完全运行的状态,添加了许多“功能”:能够从设备内存或云目录中添加自己的歌曲、选择难度级别、初学者模式等等。
最后我来到了“蛋糕上的樱桃”......

设计

这就是我对游戏的“愿景”的体现的开始。 首先,我开始选择一个绘图程序。 我没有任何图形设计经验,所以我需要一个易于学习的程序(顺便说一句,Photoshop),但也灵活方便(Paint,对不起)。 选择落在了 Inkscape——一个编辑矢量图像(主要是 svg 格式)的好工具。

对这个程序更加熟悉后,我开始绘制游戏的每个元素并将其保存为不同的分辨率,以适合不同的设备屏幕尺寸。 还尝试实现音符爆炸的动画,尽管最终的设计不合适,但我很高兴。 当然,在完成项目的同时,我继续进行设计,添加新的颜色(渐变“一见钟情”)。

DrumHero:我是如何制作人生中第一款游戏的

第一个版本的设计(两个屏幕,无动画,旧名称)

DrumHero:我是如何制作人生中第一款游戏的

第二版设计(4个屏幕,初始屏幕平滑地脉动着不同的颜色,到处都是渐变)

我完成了期末项目的答辩,当我发现自己已经通过资格赛并受邀参加 IT SCHOOL 申请大赛的决赛时,我非常高兴。 距比赛还有大约一个月的时间,我认真考虑聘请一位在设计领域更专业的人。 寻找并没有白费:事实证明,我哥哥的密友是一位出色的设计师! 她立即​​同意帮助我,现在的游戏设计都是她的功劳。

DrumHero:我是如何制作人生中第一款游戏的

最终设计

发布

完成发布版本的工作后,我立即开始准备在 Google Play 市场上发布该应用程序。 标准流程:获取开发者账号、创建应用页面等。 但本节不是关于这个的。

这个故事中最令人惊讶的是下载统计数据。 起初,DrumHero的下载量逐渐增加,在一些欧洲国家、美国和独联体国家几乎均匀增长,但一个月后,下载量达到了100万次! 一个有趣的事实是,大部分下载来自印度尼西亚。

结论

DrumHero 是我学习编程的第一个严肃项目。 他不仅带我参加了 SAMSUNG IT SCHOOL 项目竞赛的全俄决赛,还给了我很多平面设计、GameDev、与 Play Market 服务交互等方面的经验。

DrumHero:我是如何制作人生中第一款游戏的

当然,现在我看到了游戏的很多缺点,虽然今天下载量已经接近200万了,我的计划是发布一个新版本,关于如何增加稳定性、改善游戏性和增加下载量有想法。

常见问题解答:
SAMSUNG IT SCHOOL 是针对高中生的免费全日制附加教育计划,在俄罗斯 25 个城市运营。
学生的毕业设计是一个移动应用程序。 它可以是一款游戏、一款社交应用程序、一款计划工具,无论他们想要什么。
您可以从 2019 年 XNUMX 月开始申请培训: 在线 节目。


来源: habr.com

添加评论