FOGOK

FOGOK

Пикабушник
поставил 2 плюса и 0 минусов
Награды:
5 лет на Пикабу
209 рейтинг 1 подписчик 1 подписка 1 пост 1 в горячем

Как делают игры среднего масштаба разработчики одиночки)

Моя личная история про разработку игры на android, пара кейсов, и граблей, на которые наступать крайне не рекомендуется) Разработка велась и ведётся на языке java с помощью фреймворка libgdx.

Итак, всё началось с идеи и диздока. Так как разрабатывать игру я собрался один, то диздок я решил сделать "мега информативным" :D

Идея игры проста: в углу сидит червяк, к нему идут рыбы на плавниках, и ты этих рыб мочишь, не подпуская к червяку.

Как делают игры среднего масштаба разработчики одиночки) Libgdx, Gamedev, Мобильные игры, Длиннопост

После трех бессоных ночей и 5 чашек кофе я сделал тестовый билд, выглядил он так:


Так изначально выглядела "резалка" для рыб. В определённые моменты времени смотрелись последние точки, на которых находился палец, и по ним строились линии.

Как делают игры среднего масштаба разработчики одиночки) Libgdx, Gamedev, Мобильные игры, Длиннопост

А вот будущие рыбы:

Как делают игры среднего масштаба разработчики одиночки) Libgdx, Gamedev, Мобильные игры, Длиннопост

Первая рыба))

Нарисовал ботинок, а рыбы ещё нет :D

Как делают игры среднего масштаба разработчики одиночки) Libgdx, Gamedev, Мобильные игры, Длиннопост

А вот она уже готова) Ждёт своего часа :D

Как делают игры среднего масштаба разработчики одиночки) Libgdx, Gamedev, Мобильные игры, Длиннопост

К этому времени прошло два месяца, я разобрался с примерным будущим видом игры, и стал активно добавлять в игру новых врагов.

А так же, внимание, взялся за второй проект с напарником (никогда, повторюсь, !никогда! не беритесь за два проекта сразу, из-за этого я потратил на разработку в два раза больше времени, + очень сложно переключаться с проекта на проект. Если вы работаете в команде, будет проще переключение, а когда делаете всё сами, то сильно будет падать скорость)


Дальше пришло времени рыбу анимировать. Сначала я нарисовал четыре кадра руками, с нуля (рисовал всё в векторе), потом понял, что получилось убого, и стал искать варианты в интернете. Нашёл интересную программу, называется Anime Studio. В ней можно из одной картинки сделать анимацию с помощью инверсной кинематики. В итоге всё выглядело следующим образом:

Как делают игры среднего масштаба разработчики одиночки) Libgdx, Gamedev, Мобильные игры, Длиннопост

Потом я написал свою систему частиц, для крови (в будущем ещё для ряда "спецэффектов"). Я знал про стандартную libgdx`овскую систему, однако хотелось написать её самому.

Как делают игры среднего масштаба разработчики одиночки) Libgdx, Gamedev, Мобильные игры, Длиннопост

Пришло время для новых героев и оружия, представляю один из макетов (в данном случае медузы):

Как делают игры среднего масштаба разработчики одиночки) Libgdx, Gamedev, Мобильные игры, Длиннопост

А теперь как всё выглядело после:
Система частиц для огнемёта использована та же, что и для крови)

Как делают игры среднего масштаба разработчики одиночки) Libgdx, Gamedev, Мобильные игры, Длиннопост

Важный момент (этот текст для программистов): я сделал два класса, один персонажа двигает, другой отрисовывает и имеет внутри себя определённый набор данных. Делайте разделение так же, так вы сможете один раз описать например движение прыжками, и использовать его для всех прыгающих персонажей. Тоже самое для ходящих :D И т.п.

Ещё один рабочий момент с червяком)

Как делают игры среднего масштаба разработчики одиночки) Libgdx, Gamedev, Мобильные игры, Длиннопост

Потом я нарисовал ещё 10 врагов, оружие к ним, вот некоторые скриншоты процесса (на втором скрине босс, о котором немножечко позже):

Как делают игры среднего масштаба разработчики одиночки) Libgdx, Gamedev, Мобильные игры, Длиннопост
Как делают игры среднего масштаба разработчики одиночки) Libgdx, Gamedev, Мобильные игры, Длиннопост
Как делают игры среднего масштаба разработчики одиночки) Libgdx, Gamedev, Мобильные игры, Длиннопост

Внимание - мой самый лучший скетчик морской звезды:

Как делают игры среднего масштаба разработчики одиночки) Libgdx, Gamedev, Мобильные игры, Длиннопост

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

Как делают игры среднего масштаба разработчики одиночки) Libgdx, Gamedev, Мобильные игры, Длиннопост

После того, как я закончил делать врагов, оружия к ним, надо было сделать интерфейс. Ниже можете видеть мой прогресс)

Первый вариант интерфейса (на примере GUI):

Как делают игры среднего масштаба разработчики одиночки) Libgdx, Gamedev, Мобильные игры, Длиннопост

Финальный вариант:

Как делают игры среднего масштаба разработчики одиночки) Libgdx, Gamedev, Мобильные игры, Длиннопост

Теперь о боссе: т.к. в игре постоянно статичная камера, я решил сделать уровень с боссом немного особенным, и добавил туда динамичную камеру

Как делают игры среднего масштаба разработчики одиночки) Libgdx, Gamedev, Мобильные игры, Длиннопост

В общем, уровни с боссами (их 6) достаточно интересными вышли, обязательно зацените)

Настало время делать уровни, и тут я встал в небольшой тупик) Сделал формат общий для каждого уровня, всё в формате JSON. Однако вручную пилить очень тяжело, постоянно путаешься, и решено было сделать редактор. Делал его около 13 часов в сумме, использовал для разработки язык C# с WPF. Этого того стоило) В редакторе помимо основных параметров врагов (тип, здоровье, время появления) можно задавать кастомные параметры для каждого врага.

Как делают игры среднего масштаба разработчики одиночки) Libgdx, Gamedev, Мобильные игры, Длиннопост

Что получилось в итоге можете посмотреть по ссылке в google play:
https://play.google.com/store/apps/details?id=com.fogok.tlfi...

Резюмируя хочу дать некоторые наставления совсем совсем зелёным в геймдеве:
1) никогда не пренебрегайте идее делегирования, одному все сделать идеально невозможно, а вот влиться в команду или сделать свою, и стать крутым в одной более узкой специализации возможно. На моем примере: много задач я решал очень долго, много много раз всё переделывал, и в итоге разработка этой игры заняла год (правда с учётом того, что большую часть времени я участвовал в команде в разработке инди игры с одним человеком, однако для года работы результат слишком скромен).
2) Как бы банально это не звучало - никогда не сдавайтесь! В разработке игр, как и в любом творчестве, нужно пробыть очень долго, чтобы добиться чего-то действительно стоящего (вам может и повезти, но это, увы, большая редкость). На этом длинном пути будет ооочень много фейлов, и очень важно уметь сохранять позитив. Это сложно, однако, если вы по настоящему любите своё дело, то у вас обязательно всё получится!!!

Всем спасибо за внимание, с уважением, Олег Карловский.

Показать полностью 19
Отличная работа, все прочитано!