Знакомство
Здравствуйте, users! Мне уже можно считать 20 лет , это довольно мало, но хочу вместе с вами пройти путь от новичка до профи геймдизайнера.
Постараюсь объяснить коротко и ясно для кого эта профессия подходит, а, кому нет.
Перейдем сразу к делу.
Определение вашей будующей профессии/хобби
Многие будучи школьниками играют в игры, часть из них задумываются стать разработчиками игр, что вот они бы если бы могли, сделали бы лучшую игру. И с оптимизацией и с крутым миром и фишками...
Но к сожалению часто многие скачивают Unity, UE4, GoDoT и на этом их карьера gamedeveloper`а заканчивается.
Как понять, что действительно нужно начинать делать свою игру?
Во-первых, нужно определить, что это не делается за неделю. Действительно хорошая игра, на которой можно маломальски зарабатывать, в лучшем случае (Совмещая с учебой и работой) будет сделана за месяц, а то и больше.
Во-вторых, нужно абстрагироваться от ничего не знающих ютуберов вроде ХауДиХо, ничего против него не имею. Но три важных пункта я всё таки освящу:
- Английский - важная вещь
- Математика - важная вещь
- Информатика любого уровня - тоже важная вещь
Пока что на этом список закончится, потому что остальные вещи мы сможем догнать по пути.
Начнем с начала. И снова пунктики!
С места в GameDev
Игра не строится только на программировании. Его будет много, но не больше чем всего остального.
- Что это будет за игра?
- Подробное описание геймплея, механик, реиграбельности, монетизации, базовых алгоритмов
- Определение платформы, поскольку не любую игру вытянут мобилки и тд
- Определение языка, движка и тд.
- Базовый кодинг
- Базовый дизайн
- Альфа версия
- Продвинутый кодинг
- Продвинутый дизайн
- Бета версия
- Тестирование, багфикс
- Выбор дистрибьютора
- Релиз
- Обновления
Для начала нужна идея. В идеале записать ее в телефон\на листок и оставить на неделю.
Через неделю, перечитать и понять - интересно это или нет. Далее определить масштабы, если это openworld проект, шансы что вы его потянете в одиночку стремятся к 0 и не наберетесь опыта, об этом чуть дальше.
Далее подробно расписать то, как и что будет происходить в игре. Расписать каждую механику отдельно.
Описать внешний стиль. Расписать будет ли игра реиграбельной? Как, а главное почему?
Определив функционал и визуал, можно уже определять для чего мы будем делать игру? Телефоны подходят для простых игр с минимальным управлением, геймпады подходят под аркады, файтинги, гонки и тп. Мышь и клавиатура почти под все.
Определившись с платформой мы уже будем знать, какие движки желательнее всего использовать.
Не каждый движок поддерживает все платформы. При нулевых знаниях программирования рекомендую посмотреть небольшие гайды по C++, C#, Java для понимания главных концептов программирования.
Важно отличать функции, от полей, понимать для чего нужно ООП, посмотреть минимальный набор библиотек.
Но больше всего опыта вы получите начав делать свой проект. Мои первые 9 проектов умирали еще до того как я получу какой-то опыт. Сначала я пробовал разрабатывать игры на Unity, думал, ничего мне не надо, сейчас сделаю крутую игру и все дела. Первая проблема - английская документация, ничего не понял, забил. Дальше все упиралось в то что я не знал и не понимал математику. Но в этом году я поступил в ВУЗ самостоятельно и посидев на высшмате понял, что где-то я это уже все видел, а ну да, в гайдах по разработке игр. Минимальный набор для разработки выглядит так:
- Вектора и векторная алгебра
- Линейная алгебра
- Простые алгоритмы
- Английский на уровне выше среднего с пониманием IT терминов.
Я уже не говорю про производные, интегралы и тд...
Вы научились выводить Hello world? Поздравляю, самое время попытаться сделать что ни-будь в движке.
Я выбрала движок Unity. Попробовала не всё, но очень удобный движок. Не скажу, что лучше UE 4 , но не хуже. Unity простой в освоении, можно программировать на си Шарп. А в UE можно программирования и на си Шарп и на блюпринтах (об этом расскажу позже).
Я ещё не до конца познакомилась с движком и не пробовала программировать, но в ближайшее время сделаю гайд.
Вот теперь, создав проект в одном из движков, вы стоите на входе в огромный мир разработки, где вы потратите не одну сотню часов, но если вы дойдете до конца, будете наслаждаться тем что вы сделали.
Для начала можете использовать примитивы, в 3D это называется BlockOut
BlockOut - расстановка примитивов на сцене, для понимания габаритов и внешнего вида. Подбора цветовой стилистики
В нашем случае BlockOut будет в роли базовой геометрии, которая будет повторять размеры объектов и выполнять их логику.
Сделав играбельную логику и минимальный дизайн, скиньте свою игру друзьям\знакомым на пробу. Пусть скажут чего не хватает или что лишнее.
Это будет Альфа. Оттачивайте логику до идеала, оптимизируйте.
И выпускайте Бету, корректируйте замечания и можно идти в релиз.
Старайтесь начать с простых проектов и постепенно усложняйте себе задачу.
Если что-то не работает - гуглим ошибку - если не получилось просим друга выслушать, что делает твой код. "Эффект резиновой уточки"
Читайте как можно больше документацию в идеале на английском языке.
По мере создания игры, учите хоткеи, чем больше вы знаете про движок и его возможности редактирования тем быстрее вы делаете игру.
Важно понимать, делаю игру в одиночку уйдут тысячи часов, чтобы сделать и код и 3D модели и материалы для них. Поэтому здраво оценивайте свои возможности.
Статья не является гайдом, универсальным пособием.
Спасибо за внимание!