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

Предисловие


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

Задумка


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

image

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

Воплощение


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

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


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

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


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

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

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


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


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

Заключение


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

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


Всем спасибо за внимание!
AdBlock has stolen the banner, but banners are not teeth — they will be back

More
Ads

Comments 10

    +6
    Как-то из введения ждал хоть какого-то кода внутри (
    А все эти общие тезисы тут уже писаны-переписаны сотни раз :(
      –8
      Спасибо за мнение. Постараюсь исправить этот недочёт :)
      +6
      Тема «как» не раскрыта. Садись, два.
        +2
        Cool story, bro ©
          +4
          «Чтобы начать писать игры нужно сесть и писать игры» © Архиватор постов.
            +2
            — учащийся с кучей свободного времени и желания

            -Везет однако!

            А вообще, имея свободное время, изучать и делать что-то для себя новое — достойное занятие.
              0
              Очень похоже на сочинение «Как я провел лето осенние каникулы».
                +2
                я выбрал для программирования C#, а не JS. Почему?

                Да потому что нет в Unity JS, там есть C# в котором ключевые слова как в JS.
                P.S. Сори накипело, когда баловался с Unity и пробовал то что они у себя назвали JS.
                  +1
                  Кто только во времена студенчества не писал свои маленькие самопальные игры)
                  Прям ностальгия. У нас была стратегия прям на формочке ползал анимированный трактор и пахал поле )
                    0
                    Я сделал вывод, что для того, чтобы с комфортом делать игру на юнити, надо сначала изучить основы обычного c#, а не бросаться изучать по ходу. Я поступил почти как автор: с небольшими знаниями паскаля и алгоритмов кинулся сразу в юнити. В результате первые два проекта были брошены, т.к. вместо того, чтобы делать игру, я все время пытался понять, как ее делать. Если бы я сначала потрудился хотя бы изучить хоть несного ООП и посмотреть побольше уроков, то мне было бы легче. А так сейчас писать игру нелегко, но приятно: пишу код, вечером / в метро читаю книжку по шарпу и статьи по юнити, иногда на бумажке черчу схемы или геометрию в координатах, когда надо что-то сложное обсчитать. Медленно, но верно дело продвигается.
                    Из своих брошенных проектов сделал вывод, что главное даже не начальные знания, а просто не бояться объема работ. Сижу, не парюсь, через пару лет закончу. А заодно получу неплохие знания программирования и дизайна, что наверняка мне пригодится.
                    P.S. еще очень полезно параллельно коду держать большую схему связей между скриптами, а лучше что-нибудь вроде диздока Очень помогает.

                    Only users with full accounts can post comments. Log in, please.