8 December 2014

Как «незнайка» игру делал

Development for AndroidC#Unity3D
Sandbox

Предисловие


Доброго времени суток, уважаемые читатели. Я – учащийся с кучей свободного времени и желания. Решил поделиться своим опытом в создании простейших игр и написать об этом на Хабрахабр. Надеюсь, я смогу ответить на чьи-либо вопросы, или хотя бы занять минутку вашего времени интересным рассказом. Итак, поехали.

Задумка


О том, что нужно сделать что-нибудь свое, я задумался года два тому назад, однако первые действия начал предпринимать совсем недавно, осенью этого года. Все началось с того, что в моей голове родились идеи а-ля «надо бы что-нибудь сделать». Хотелось сделать игру, которая позволяла бы мне скоротать время. Также, я думал о том, что воплощение ее не должно занять много времени и сил. Стоит упомянуть тот факт, что до этого времени я никогда не видел никаких языков программирования и вообще не знал, как это работает.

image

Я был где-то на уровне обычного юзера, который просто жал кнопки и радовался магией 21-ого века. К слову сказать, это была моя первая ошибка, которая заставила меня понервничать в то время, когда я перешел к решительным действиям. Всем моим требования идеально отвечала игра для мобильных телефонов в жанре «endless run». Я не хотел делать что-то трудное, типа Subway Surfers, хотел сделать что-то вроде игры под названием «Run» ( к слову, она не была так популярна). Подумал, что мне по силам сделать проект таких маленьких масштабов.

Воплощение


После принятия необходимых решений я набросал несколько концепт-артов (честно сказать – ни один из этих «концептов» не был использован). После чего начал штурмовать просторы интернета и, в частности, гугла. В первую очередь мне нужно было решить вопрос движка – какой использовать? Был выбран движок – открытый, бесплатный, легкий в освоении и использовании Unity3D. Чтобы начинать работу не с пустой головой, мною было принято решение посмотреть и прочитать несколько уроков по тому, как и что надо жать в Unity, чтобы в итоге получилась игра. Следует упомянуть, что по наставлению моих знакомых я выбрал для программирования C#, а не JS. Почему? Я не знаю.

image
И советую не пренебрегать этим правилом


Начинать создавать игру, полагаясь на знания, которые были получены из нескольких видео-уроков и письменных источников из гугла – было моей ужасной ошибкой. Однако, раз дело начато – я его доведу до конца. Спустя несколько дней упорных сражений с компилятором, который непрерывно орал о каких-то новых ошибках в коде, я получил первые результаты: мой персонаж уже непрерывно бежал (перемещался по оси, т.к. анимации еще нет), я мог подпрыгнуть нажав «пробел», а табличка сверху экрана показывала количество моих очков.

image
Первый геймплей моей «игры» выглядел ну очень нелепо, но все же я радовался и тому...


Следующей проблемой для меня, которая казалась непреодолимой, было заставить игру создавать и удалять платформы, чтобы мой раннер был действительно «endless». Конечно же, после какого-то количества попыток, убитого времени и нервов эта система была сделана, однако в ней еще была уйма багов. Естественно, это мне не понравилось. Поэтому систему пришлось кардинально переделать.

Уже в конце недели игра меня полностью устраивала в плане всех основных систем. Я сделал так, чтобы мой персонаж ускорялся, платформы строились и исчезались и даже смог добавить монетки, которые давали игроку дополнительные очки. Это меня все очень радовало, но все же еще оставались мелкие баги и недочеты, которые требовали срочного исправления – для этого потребовался холодный математический расчет.

image
Добрая часть программистов желает мне мучительной смерти за мой код.


Внешнее оформление


Не менее сложной (а то и более) оказалась задача внешнего оформления моей самопальной игры. Вся проблема в том, что навык моего рисования "равен 0 и стремится к минус бесконечности" и это, безусловно, помешало мне проделать качественную работу. Также, я не мог закрыть глаза на то, что не могу рассчитать расстояние между платформами без учета размеров моего персонажа. Поэтому мне пришлось использовать Simple Assets. И по сей день визуальное оформление моей игры остается для меня главной проблемой, так как я все еще не пришел к оформлению, которое могло бы соответствовать моим желаниям. Для создания всех моделек, текстур и спрайтов (Sprite) я использую программы от фирмы Adobe (в частности и Фотошоп) – идеальный вариант.

Заключение


В заключении хочется сказать о том, что процесс создания игры – крайне интересный, захватывающий и познавательный. Само собой, придется приложить определенное количество своих сил, а также убить не мало времени. В особенности это относится к таким людям, как я, которые не знают никаких языков программирования и впервые сталкиваются с этим делом. На пути к созданию даже самой простой игры у вас будут трудности, но зато результат все это «окупит» много раз. Итак, подведем итоги:

  1. Перед воплощением своих идей изучите хотя бы базовый уровень какого-нибудь языка программирования, иначе у Вас будут большие трудности;
  2. Не ставьте перед собой больших целей, начинайте с маленьких проектов;
  3. Делайте свой продукт качественным, не жалейте время на исправления маленьких недочетов. Ведь порой с маленьких дел начинаются большие;
  4. Не стесняйтесь обратиться за помощью в интернете, тут много добрых и отзывчивых людей!


Всем спасибо за внимание!
Tags:разработка игрandriodunity2d игры
Hubs: Development for Android C# Unity3D
-17
6.5k 28
Comments 10
Top of the last 24 hours