Привет, недавно сделал один пост и там пару людей спросили что за игр и прочее. Поскольку у игры уже появилась страничка в стиме , то я решил рассказать подробнее с какими трудностями столкнулся во время разработки.
Страница игры в Steam: https://store.steampowered.com/app/958090/
School of the dead: Anastasia - моя первая игра в жизни, если не считать примитивных текстовых квестов. Моя профессия это веб-разработчик, веду Youtube канал и пару блогов про игры, где просто делюсь мнениями о различных играх.
В игры играю с самого детства, в 3 года мне подарили мой первый компьютер и да, уже в тот момент я проходил far cry (самый первый), если кто-то думает, что 3х летние не могут понимать и играть в полноценные игры, а не в мобильные и примитивные, то я полное доказательство обратному. Когда у меня появился интернет, то первая моя регистрация прошла в STEAM, где я активировал привезенный отцом из Москвы диск с Counter-strike. С того самого момента появилась небольшая, но очень настойчивая мечта - сделать свою, пускай небольшую, но игру и чтобы она появилась в стиме. Мечту я вспоминал редко, однако вспомнил её снова в 18 лет и понял, что это реализовать не так сложно. Тогда в Стиме был гринлайт, но навыков никаких не было. Сейчас мне 19 и моя игра выходит через 11 дней на моё день рождение и это мой подарок себе. Последние пол года я учился рисовать с 0, понимать скриптовый язык на котором делаю игру (он очень простой, об этом дальше). С рисовкой дело не задалось, из-за чего я попал на круглую сумму. Сейчас расскажу об основных трудностях с которыми столкнулся, а дальше немного про игру.
Трудность #1 - Меня кинули на 15.000 рублей
Накопив 15 тысяч рублей мне нужно было заказать хотя бы паршивого уровня анимации для игры, ибо мои навыки плохие в этом деле и в рисовке тоже. Заказ я делал на фриланс бирже, нашёл вроде крутого чувака с реально крутым портфолио, сделал заказ и поскольку сам фрилансер, то прекрасно понимаю что пред.оплата в этом деле - хорошо, если видно со стороны, что человек не кидала. Про безопасную сделку в тот момент не подумал.. Это было ошибкой.
Заказ оформлен, я радостный бегу делать игру дальше (это было месяц назад) и ждать новостей от него. Парень начинает кормить меня завтраками.
Кормит на протяжении недели, поскольку это дело не легкое, то я всё прекрасно понимаю и включаю режим ждуна. Прождал я так до начала этого месяца, в итоге.. ЧС. Предсказуемо. Хорошо, что я в этот момент делал всю работу сам на случай ЧП, ибо моя задача была уложиться в сроки и действительно выпустить игру на свой день рождения. Радует лишь одно - отдал я ему 8 тысяч рублей из 15. Плюнув на фриланс и поняв свою тупость побежал судорожно доделывать игру.
Этого красавца зовут Antonl, например и мне он нравится)
Вывод: Работайте по безопасной сделке и с проверенными людьми, а ещё лучше готовьте план отступления на случай чрезвычайной ситуации.
Мини-Трудность #2 - Движок
Игру я делал на простеньком движке GMS, вопреки всеобщим убеждениям это не только кривенький конструктор, но и вполне себе движок, на котором вполне можно было реализовать мои идеи. Да, безусловно можно было использовать более мощный движок. Но я подумал “Зачем мне забивать гвозди кувалдой?”, но на будущее стоит присмотреться к другим движкам, здесь ваш потенциал ограничен очень сильно.
Моя любимая игра - Hotline miami и она была сделана именно на этом движке, поэтому решил поступить точно так же. Список неплохих игр на GMS можно найти тут - https://www.yoyogames.com/showcase
В движке используется свой скриптовый язык GML (Game Maker Langue) подробнее рассказывать не буду, вся информация есть в Google.com, в целом синтаксис довольно простенький и понятный, смахивает на С плюсы.
Но возникла небольшая проблема, этот пункт скорее подводка к следующему.
Трудность #3 - Оптимизация
Оптимизация - Это одно из самых сложных в работе разработчика. Например, я не понимал раньше, почему пиксельные игры могут тормозить, там же вроде нет ничего, что может не вытягивать мой ПК. Но, если разработчик не учел следующих правил, то ещё как может:
1. Прозрачные пиксели.
Да они делают картинку более приятной, но злоупотреблять этим не стоит и по возможности их стоит избегать.
2. Текстурный атлас
Вся графика, которая есть в игре, хранится на текстурных атласах. Если у вас накопилось 10 текстурных атласов, то стоит в начале и конце комнат, выгружать все из видеопамяти. И загружать лишь те атласы, что хранят графику на данном уровне (комнате). Я же делал так: у меня несколько уровней, в которых объекты и оппоненты не повторяются, для них, я создал отдельную группу., чтобы сократить количество текстурных карт которые хранятся в памяти. Ведь нам в самой игре не нужна графика из комикса в начале игры. Это мы делаем не только для экономии видеопамяти, но и сокращаем нагрузку на видеокарту. Т.К. если в на одном экране, находится много объектов, и их спрайты/тайлы, находятся на разных атласах, то видеокарте придётся выполнять неоправданно много свапов, чтобы отрисовать один кадр.
Данный движёк сам записывает графику на атлас и порой текстурный атлас выглядит примерно так:
3. Вроде бы очевидная вещь, но её часто игнорируют. Тайл на много легче объекта. Допустим, у нас есть трава, она статична, и её много. Зачем на её делать объектом, ведь объект, хранит в себе много свойств, в отличии от тайла. Поэтому, любым удобным способом, меняем статичные объекты на тайлы.
Это далеко не всё, но всё же стоит озаботиться оптимизации и попробовать различные приёмы, ведь 2D часто запускают именно на очень слабых железяках.
Трудность #4 - Арты для игры
Если вы не хороший художник, то арты для игры (например для обложки), займут у вас очень много времени и лучше отдать их на аутсорс, если потянете конечно или просто попросить помочь друзей. Мне повезло найти на пикабу человека, который сейчас мне рисует несколько картинок, спасибо Black Rock). На ранних стадиях разработке, достаточно сделать подобные раскадровки:
Трудность #5 - Перевод
Если вы хотите перевести игру на несколько языков, то будьте готовы раскошелиться, переводы стоят довольно дорого, но всё зависит от количества текста в вашей игре. Если бюджет ограничен - текст тоже стоит ограничить или количество языков. Перевод игры на английский почти всегда обязателен, если только вы не делаете локальную игру для себя. От себя могу порекомендовать студию перевода LocNLoader - ребята постараются найти самую меньшую цену за переводчиков и всегда в игровой теме, терминах и прочим. + Прямо у них можете поискать актёров озвучки. Это не реклама, просто знаю что они не кинут и работал с ними.
Трудность #6 - Релиз в STEAM
Если вы любитель заполнять миллион полей, налоговых данных и прочего, то вам однозначно понравится. А ещё если вы любите ждать проверки каждого своего пшиха по несколько дней. В целом не затруднительно, релиз стоит 6 тысяч рублей за игру, если игра собирает 1000$ на продажах, то ваши 100$ возвращаются вам. Самое главное - заполняйте всё подробно подробно, в целом стим предоставляет инструкции и всё хорошо.
Ссылка для регистрации вашего приложения - https://partner.steamgames.com
На этом ещё не всё, если будет востребовано - опишу подробную инструкцию релиза в стиме, как лучше всё заполнять или расскажу про нюансы оптимизации на моём поверхностном уровне.
Теперь про саму игру:
School of the Dead: Anastasia - это игра про маленькую девочку, которая оказалась в школе заполненной монстрами, ей повезло выжить и теперь она ищет своего брата и пытается выбраться отсюда, чтобы узнать что с её родителями и что случилось ВООБЩЕ. В игре много пасхалок и прочих вещей, весь геймплей это динамичное месилово зомби. В игре две альтернативные концовки в зависимости от ваших действий и последовательности действий и к концу игры вы узнаете что случилось с миром.
Всем добра)