Размер шрифта:
Пара советов для начинающих gamedeveloper'ов от начинающего gamedeveloper'а
Play

Пара советов для начинающих gamedeveloper'ов от начинающего gamedeveloper'а

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

Будучи раздосадованным полным (почти) отсутствием каких-либо ресурсов с игровой тематикой, будь то youtube каналы или же блоги в соц. сетях, мне захотелось поделиться парой мыслей, которые я приобрел за столь короткое времяпрепровождение в сфере геймдева. Не поймите меня неправильно, информации по игровой сфере как таковой в русскоязычном сегменте интернета полным-полно, но довольно посредственного качества. С большим трудом можно найти те крупицы, которые натолкнут абсолютных новичков на какую-либо тропу, всё приходится приобретать в процессе, что довольно сложно. Данная статья призвана, пусть и немного, но всё же осветить путь геймдева для абсолютных новичков. Возможно, для кого-то данные мысли не будут откровением, моё почтение. Вы могли бы также добавить в комментарии и свои мысли, я с интересом почитаю (всё-таки, я тоже начинающий). Думаю, для тех, кто просто хотя бы задумывался о том, чтобы увязнуть в этой прекрасной индустрии, разработка игр представляет собой нечто загадочное, особенно для тех, кто ни разу не пересекался с программированием. Начнём с рассмотрения вопроса: что из себя представляет создание игры? Кратко: 10-20% времени — разработка механики (написание кода), остальное – создание контента. Под созданием контента подразумевается визуальный и музыкальный аспекты игры, также создание уровней, продумывание сюжета (это, конечно же, индивидуально) и т.п. То есть игра – это не столько написание кода, сколько сама идея, которую вы вкладываете в своё детище. Отсюда исходит одна из ключевых мыслей: код – второстепенное. Без сомнения, он является неотъемлемой частью разработки игры, но каким бы хорошим он ни был, безыдейная игра — не более чем пустышка.

Немножко вспомогательной теории (только для тех, кто в принципе «не в теме»): Как заставить двигаться квадратик на экране? Ваш экран – это координатная плоскость (вспоминаем школу), горизонталь – ось Ох, вертикаль – ось Оу. Квадратик имеет свои координаты, соответствующие его позиции на экране, допустим (4, 2) (х = 4, у = 2). Формально, двигать квадрат – просто изменять его координаты. Чтобы двигать его вверх(вниз), нам необходимо прибавлять(отнимать) какое-то число при нажатии соответствующей клавиши, которое назовём вертикальной скоростью передвижения, к его второй координате, то есть у. Таким образом мы будем поднимать и опускать квадрат. С горизонтальным передвижением всё аналогично, прибавляем(отнимаем) некоторое число при нажатии соответствующей клавиши, которое назовём горизонтальной скоростью, к первой координате, то есть х. Поздравляю, вы двигаете квадратик по экрану! Всё довольно просто. Но при создании более сложных вещей вам, соответственно, понадобятся более продвинутые знания математики.

Попытаюсь ответить на довольно популярный вопрос: какой игровой движок стоит выбрать? И одновременно свяжу это с первым советом:

  • определитесь с игровой нишей, в которой хотите работать

Почему именно этому я придал такое внимание, а не, например, жанру? Здесь я плавно веду ко второму совету:

  • создавайте то, что можете создать, а не то, что хотелось бы

Небольшая ремарка по поводу кода — учитесь писать код (неожиданно, не правда ли?). Не стоит пугаться и представлять себе, что написание кода подобно магии, требует особых навыков и тому подобное — нет. Вот пример кода Game Maker Language:

Примерно так выглядит код одного из скриптов в моём проекте. Попытаемся разобраться, что тут происходит. Данный скрипт определяет направление «взгляда» объекта в игре(равносильно тому, как вы смотрите направо или налево). В качестве аргумента он принимает градусную меру «направления взгляда» и записывает её в локальную переменную _direction. После мы делим — таким образом мы фрагментируем воображаемую тригонометрическую окружность на четыре кусочка — четыре направления — записанное значение на 90 (градусов), округляем (функция round()) и записываем в переменную direction_facing_. Каждому из направлений соответствует своё число: 0 — право, 1 — верх, 2 — лево, 3 — низ. Может быть такая ситуация, что угол будет больше 215 градусов, из-за чего в direction_facing_ запишется число 4, но нас такая ситуация не устраивает, поскольку 4 в нашем случае равносильно 0.

Решаем данную проблему при помощи оператора if: если direction_facing_ равно 4, то записываем в него 0. Готово! Капля математики и небольшая доля кода, никакой магии. Для чего это? Данный код полезен для того, что понимать, какую именно анимацию отрисовывать во время движения (бег вправо, бег вверх и тому подобное).

Примитивно, но полезно. Для абсолютных новичков написание кода поначалу будет довольно трудным занятием, но лишь поначалу. Практика — ваш лучший друг. Спустя непродолжительный промежуток времени вы уже без труда будете сочинять свой код, главное просто начать.

«Плавно» переходим к следующей рекомендации — капелька кэпа:

  • занимайтесь регулярно

У многих возникнет резонный вопрос: где брать нужный материал для этого дела? Как начать обучаться? Самый просто ответ – гайды на youtube, коих бесчисленное множество. И это всё? В общем плане – да, но отчасти. Спустя некоторое время, когда вы минимально освоите выбранную вами среду разработки, нужда в прямых наставлениях отпадёт, поскольку вы уже будете в состоянии корректно сформулировать интересующий вас вопрос (тут то гугл и форумы станут вашими родными братьями). Естественно, голой технической информации будет недостаточно, дабы наиболее полно осознавать процесс и уже без труда ориентироваться в сфере геймдева. Посему следующая рекомендация:

  • читайте материал по теме, очень много материала (почти всё)

И, наконец, последнее:

  • не отступайтесь

Надеюсь, данная статья была полезна для вас. Возможно, вам также есть что-либо добавить, жду вас в комментариях.

📎📎📎📎📎📎📎📎📎📎