Крупные компании в наши дни используют игры как коммерческий продукт, в погоне за деньгами они зачастую забывают главное: игры - это проявление искусства.
Игры рассказывают историю, хорошая игра способна задействовать внушительный диапазон эмоций, заставить задуматься или подтолкнуть к действию.
Пока крупные компании купаются в деньгах, выпуская пустышки, находятся и энтузиасты, для которых игра - способ самовыражения, а не дойная корова.
В своих статьях я пишу о том, как работают игры, вопрос этой статьи :
Хочу создать свою игру, что для этого нужно?
Время. Львиная его доля приходится на создание ресурсов и в случае если вы тут впервые, то и на обучение.
Ресурсы
Если ваша игра будет не о прыгающих квадратиках (а еще дружбе, одиночестве и жажде свободы) как Thomas Was Alone Майка Бителла да еще и без звука, вам стоит узнать, из каких частей складывается восприятие игры.
Действующие герои, окружение
В независимости от того, какой формат игры вы выберете, 2D или 3D, процесс создания ресурсов - полностью творческий процесс.
Рисовать пробовали все, а для того чтобы заставить персонажа двигаться, нужно лишь понять как работают общепринятые и действенные методы анимации, заглянув в ютуб или почитав статьи.
С 3D чуть сложнее. На понимание фундаментальных понятий компьютерного представления трехмерного пространства и может уйти от пары часов, до пары дней. Или 5 минут.
После освоения основных функций софта, моделирование будет напоминать рисование, лепку из глины, но уж точно не путешествие по 9 кругам ада.
Гениальные люди и здесь упростили задачу, создав множество вспомогательных программ и порталов. Не говоря о сайтах, на которых можно бесплатно брать модели, создание красивого персонажа из вашей головы тоже может оказаться простым и интересным занятием.
Создание окружения так же может оказаться простой задачей: вытянуть куб, накинуть треугольную крышу и вырезать окна - простейший примитивный дом готов!
В отличии от рисования, модели нужна текстура, иначе она останется серой. Поняв как текстура взаимодействует с объектом, можно использовать уже готовые наборы из необъятных библиотек и сборников, разбросанных по всему интернету, либо создать текстуру самому. Благо сейчас этот процесс больше напоминает ковыряние в пейнте, где "холст" можно вращать.
Звуки
Важная часть игры, если она конечно не про тишину.
Звуковые эффекты, музыкальное сопровождение и озвучка на первый взгляд могут требовать серьезной подготовки, но и здесь есть лазейки.
Как обычно у нас два пути : интернет и руки.
В интернете существуют огромные библиотеки различных звуковых эффектов, 50 вариаций взрыва, звуки выстрелов или треск дерева? Пожалуйста!
Очевидно можно выйти с диктофоном на улицу, взорвать петарду, выстрелить из пистолетика и сломать ветку, но зачем такой вандализм, верно?
С музыкой всё чуть сложнее. Можно найти музыканта, который за упоминание в титрах и бочку забродившего сока выдаст хотя-бы что-то.
Можно самому написать шедевр, а можно и поковыряться в FL Studio, создать незамысловатый электронный бит который понравится вам и игрокам.
Программирование
Здесь я подразумеваю не только написание кода, но и сбор всех частей воедино.
Кажется все слышали о сложности программирования, как сложно собирать всё вместе и отлаживать взаимодействие, но на самом деле всё не так плохо.
Игровые движки стремятся воссоздать логику реального мира в себе, те же математические причуды, физические формулы и законы. Нажав пару кнопок мы можем получить подверженность объекта физическим законам гравитации и трения, написав пару простых строк кода мы можем толкать его в любом направлении и вот у нас получилась примитивная версия легендарной SuperMonkey Ball.
Само написание кода кажется сложной задачей, ведь там действуют свои правила, но и здесь разработчики игровых движков пошли навстречу популяризации геймдева, по сути дав возможность любому желающему безболезненно погрузится в разработку.
Четко и понятно написанной технической документацией? От части.
Сейчас набирает популярность визуальное программирование, вместо кучи текста, сотен строк, разработчику представляется возможность создавать блоки с задачами, компонентами, переменными и устанавливать взаимодействие между ними.
Постепенно эта разработка проникает в разных формах в игровые движки, само программирование взаимодействий в играх основано в основном на условиях, например :
if (player.hp == 0)
Death ();
Всё, кажется, понятно, если у персонажа 0 очков здоровья, движок выполняет функцию смерть, включающая в себя высвечивание меню, перезагрузку уровня, похороны или предложение выйти из игры.