Сегодняшняя нарезка из тестов. Каждый день что-то меняю и обновляю демо в Стиме. (обновил прицел и стрельбу в целом) Хорошо, что модераторская проверка проходится один раз, иначе было бы тяжко.
Я создаю RTS - Empires Edge. И каждый раз мне приходится пройти большой путь развития, чтобы добраться до нужной фичи и проверить как Бот противника себя ведет. Это отнимает очень много времени в разработке.
Тогда я сделал режим ИИ против ИИ и ускорил игру в 30 раз. Это очень круто. Как я раньше до такого не додумался?!
Игра только на начальной стадии, но кому интересно, можете за ней следить в Steam.
Ну что. Ты дочитал. Ты остался. Молодец. Почти. Ты ведь уже выбрал, да? Пока глаз бегал по изображению - мозг уже решил, кто тебе “ближе” Сначала чувство, deinde cogitare. Второе, кстати, у многих не наступает вовсе.
Стороны - Фракции. Хорошие. Плохие. Флаг, цвет, символ - чтобы можно было спорить, не понимая, о чем споришь. Ха. Ты хочешь понять, кто здесь за кого. Какой банальный запрос. Какой человеческий. И слегка жалкий (не обижайся - обижайся, мне все равно, а может нет). В этом мире нет сторон. Есть только оправдания - Они зовут себя так громко, будто это важно: “мы - порядок”, “мы - сила”, “мы - истина”, “мы - очищение”… Verba volant, scripta manent! (Слова улетают, написанное остается), смертный. В мире Unlikely Apocalypse слова улетают, кровь - остается. И запах. (фу… опять вспомнил). И ты, конечно, спросишь: “Ликаэль, а ты к кому?” Ты правда думаешь, что я могу быть на чьей-то стороне? Я не за них. Я не против них. Я между. Я внутри. Я - то, что остается, когда вы в очередной раз решаете в этот раз мы все сделаем правильно.
И я живу у тебя в голове, пока ты читаешь… Если читаешь вовсе.
14 месяцев назад я начал разрабатывать гонку. Идея была простой - с дедлайном 4 месяца сделать простую игру без пафоса. Ну, любой разработчик знает, что произошло дальше - без пафоса не вышло.
Истоки
У меня есть глупый принцип делать как можно больше задач самостоятельно. Этот принцип применяется и к игровым движкам - я их не использую. Давным давно попробовал делать игры с нуля на языке Rust и с тех пор упорно продолжаю. Каждый год что-то новое, первым проектом был чат для VR шлемов, потом космосим... 3 космосима. И вот сейчас гонка.
Идея гонки у меня была давно, я просто люблю этот жанр и всегда знал, что в нем есть незанятая ниша. Нишей этой является некий единорог - аркадная гонка которая ощущалась бы как симулятор. Такие игры как-бы есть но они не совсем попадали в мои критерии. Мне очень хотелось, чтобы любой мог начать играть в игру без опыта, но не хотел типичный картинг или аркаду без веса автомобиля.
Было решено сделать комбат-рейсер с элементами ремонта автомобилей. Чтобы сделать моего единорога - двигатель и трансмиссия должны были симулироватся относительно реалистично(Присуствовало бы сцепление, переключение передач, кривая момента у двигателя), а покрышки относительно аркадно.
В основе "ядра" гонки встал как раз таки заброшенный космосим, от него перешел простой рендер на API Vulkan и редактор уровней, а так же система ввода, звука, и общая организация проекта.
Редактор уровней в космосиме
Через пару дней удаления всего связанного с космосом у меня получилось чистое "ядро" из которого можно было начинать лепить гонку
"Чистое" ядро без космоса
А через неделю, когда я только-только вник в основы симуляции покрышек, у меня уже ездила машинка по сцене
Кто бы мог подумать, что симуляция шин будет сложной? Ведь цель-то - сделать просто! Было решено использовать модель динамики шин Ханса Б. Пасейки. Эту модель использует большая часть гонок, кроме совсем серьезных симуляторов. Итог - первые месяцы разработки игры ушли в тонкую настройку шин. Оказалось, что внедрять эту модель в игру задача не простая. Есть множество различных способов интерпретации параметров этой модели, и каждый будет работать по разному. Особой сложностью обладает задача совмещения сил по двум осям - в оригинале модель работает только в одном направлении, а в игре шины подвергаются различным силам с разных сторон. Разные игры решают эту задачу по разному, я могу похвастатся, что метод который я использую относительно уникален - правда получен он скорее методом проб и ошибок а не наукой.
Пример ранней симуляции шин. Заметно что машина тяжело поворачивается. Финальная версия значительно отличается
Графика. Формирование внешнего вида игры
1/3
Ранние вариации графики и эксперементы с шейдерами
Графика игры развивалась по мере развития моих собственных способностей. В начале тематика игры крутилась вокруг пустынь и чего-то постапокалиптического, вроде серий игр motorstorm, но в конце органически пустыни поменялись на леса и избушки.
1/3
Первая машина оставшаяся в финальной версии игры. Узнаёте чем она была вдохновлена?
Внешний вид игры на данный момент
Развитие игры. Сложность создания игровых механик
Изначально игра планировалась только для сетевой игры с друзьями. Но по мере разработки увеличивался и масштаб, появилось желание добавить одиночную компанию. Вместе с одиночной компанией родилась и основания тематика игры - ремонт автомобилей. Вместе с ремонтом появилась и экономика, игроку нужно зарабатывать деньги с гонок, чтобы себе его позволить. Элементы комбат-рейсинга были забыты. На бумаге все просто, на практике продумывать как и что будет делать игрок оказалось тяжелой задачей.
1/2
Развитие карты города
В момент разработки я играл в Neon White, и мне очень понравилось оформление главного меню игры ввиде карты города с локациями которые можно посетить. Клянусь, я не копировал Gran Turismo! Быстро появилась идея с гаражем, где игрок бы чинил свой автомобиль, магазином автозапчастей, дилером, и свалкой старых автомобилей(Которая сейчас лишь в планах). В первом прототипе можно заметить, что вместо дилера стоит парк, в нем игроку планировалось встречать квестовых персонажей - увы, тоже идея которая не дожила до текущей версии игры.
Планировалось, что каждая гонка будет случайной. Со случайной картой и соперниками, сложность которых возрастала бы со временем. В итоге было решено отказатся от такой системы, и вместо этого иметь режим карьеры, состоящий из предустановленных мероприятий, которые игроку постепенно предстоит пройти.
Позже в игре появились и первые диалоги с персонажами. В будущем планируется развить взаимодействие с ними, но и сейчас им можно задать вопросы, вызвать на дуэль или одолжить их автомобиль
Сетевая игра
Я уже упоминал, что игра планировалась только для игры с друзьями. Эту идею я не оставил, и как только одиночная игра стала меня устраивать - я начал разработку игры по сети.
Лобби в сетевой игре
Я решил оставить элементы карьеры и в ней. При игре по сети игрок так же зарабатывает деньги как и в одиночной игре, а запчасти автомобиля имеют такой же износ. Теоретически одиночная игра является опциональной.
Первые версии сетевой игры работали уже через неделю после начала её разработки, но мелочи приходится исправлять до сих пор.
При выпуске игры в Steam так же пришлось добавить поддержку Steam Networking Sockets, для простых людей - возможность пригласить друга в игру через клиент Steam без необходимости открывать порты. Хочу отметить мой исключительно позитивный опыт с Steam SDK, разработчикам планирующим добавить сетевую игру в свои игры могу смело сказать, что боятся его не нужно.
API Vulkan - не для слабых. Я понял, что я слаб
Главной ошибкой для меня стало использование API Vulkan. Я уже упомянал ранее что в основу ядра гонки лег мой прошлый проект. Этот проект во многом я начинал ради изучения Vulkan, по этому и в гонке большую часть времени оставался он. Но лично у меня сложился негативный опыт. Во первых разработка любой фичи связанной с графикой занимала в 10 раз больше времени. Физически больше нужно писать кода, куда больше пространства для ошибок. Во вторых я постоянно натыкался на проблемы возникающие только на определенном железе. Если все работает хорошо на NVidia - далеко не факт, что код будет функционировать на картах Intel или AMD. И даже если код работает на одной видеокарте AMD - не факт, что он будет работать на другой. Это встало мне боком на первом выпуске демо версии игры - на некоторых системах игра просто не запускалась, даже не выдавала ошибку, а на других системах игра крашилась через 30 минут. Как это исправлять я не знал, а иметь в запасе 15 видеокарт для тестирования на каждой не практично. В итоге за 3 дня перевел всю графику на OpenGL и забыл про Vulkan как страшный сон. Хотя в будущем возможно постараюсь вернуть его опционально.
До выпуска демо-версии в Steam я выложил игру на itch.io. Игра не получила широкой огласки, и на момент написания статьи имеет 370 загрузок. Но польза определенно была - решение перевести игру на OpenGL было принято как раз после выпуска на itch.
График просмотров и загрузок на itch.io Заметно что в первую неделю было больше всего трафика, релиз демо версии в Steam 5го февраля никак не повлиял на количество загрузок
Выпуск демо-версии в Steam
Для выпуска демо-версии в Steam нужна была страница. Для начала нужно заплатить пошлину в 100$, это даст возможность получить доступ к личному кабинету разработчика где можно начать оформление страницы.
Поначалу я очень боялся заниматся оформлением, казалось, что это задача, к которой стоит подходить с наивысшей ответственностью. В реальности же я бы не рекомендовал разработчикам сильно нервничать по поводу оформления на ранних этапах разработки, Valve фактически пропускает все у чего есть скриншоты и внятное описание, а видимость страницы в любом случае будет низкой без дальнейшего маркетинга.
Страницу в магазине я выложил в публику в тот же день как и выпустил демо версию на itch. А вот демо версию в Steam я выпустил уже через 3 месяца, когда был уверен, что игра находится в достойном для этого виде.
Запуск оказался весьма успешным, некоторые проблемы конечно всплыли - например некоторые игроки принимали экран выбора автомобиля за экран загрузки, из за чего пришлось добавить подсказку. За неделю после запуска 400 человек добавили игру в список желаемого
Добавленные подсказки на экран выбора автомобиля
Демо версия была выпущена 5го февраля. На графике можно видеть резкий рост количества человек, добавивших игру в свой список желаемого
Про Rust
Вообще я не вижу огромного смысла говорить о языке програмирования. Честно и в заголовке он больше для того чтобы вызвать интерес. Но раз уж упомянул - скажу пару слов. Мне он просто нравится. Я пишу игры на Расте уже 10 лет и своими глазами видел развитие экосистемы. Мне нравится, что мой код работает на всех платформах без модификаций. Мне очень нравятся библиотеки и их авторы. Отдельное спасибо Ralith за библиотеку hecs(ECS система), SamiP за fundsp(Звук, высокий уровень), а так же спасибо всем, кто участвует в разработке библиотек gilrs(Ввод), cpal(Звук, низкий ровень), разработчикам nalgebra и parry(Математика и коллизия), и многим другим(Полный список используемых библиотек можно узнать скачав игру и посмотрев файл THIRDPARTY_LICENSES)
Мы - независимая игровая студия из Беларуси Sector 13. И за месяц у нас много чего поменялось: команда выросла аж до 32 человек, а игры...
PsyPro (игра про ПА, ОКР, Тревожность и другое) готовилась на стим фест. И мы столкнулись с проблемой: ни один игрок не смог пройти на хорошую концовку. Где-то не понимали как работают механики, где-то ошибались слишком часто, а игра в свою очередь не прощала никого, добавляя сильно больше хоррора. Мы исправили сложность, починили некоторые баги, но ничего не изменилось. Оказалось, что всё дело в розетке. Мини игре, критерии прохождения которой говорили режиссёру быть игре страшнее, сложнее и навязчивее, были равны 999 🙃
PsyPro уже в стим! добавляйте в вишлист
Dicer (игра про создание игровых костей и дальнейшим pvp/pve) Эта игра получила много критики с точки зрения ГД, из-за чего пошла на доработку в планей геймдизайна. Команда этого проекта оказалось в простое, и им дали задачу - сделать играбельный ремейк одной из популярных игр. И сделать это за две недели. Вот что у них сейчас получается: Как думаете, что за игра?
Исправления, которые скучно читать: PsyPro получила обновлённую локацию для демо на фесте, и новый сюжет. Теперь страх пропитан соком детектива и мыслей: что здесь вообще блин происходит? Lost in получила оптимизацию и готовится к выходу в стим. Запустили тик ток :0
Как вам наш прогресс? Мы хотим изменить наш подход к контетну на пикабу, и хотелось бы услышать ваше мнение и критику!
С момента последнего поста, прошло много изменений, игра фактически прошла путь от пары механик до полноценной демки. Про все эти изменения я расскажу отдельно в постах, а сейчас предлагаю посмотреть, насколько сильно правильный свет влияет на восприятие окружения:
До
После
Ну и конечно предлагаю оценить новый UI. Да, он слегка перегружен, но для игры по тиму Секиро и Вуконга нужно много клавиш. Вот они слева направо:
Пришёл чтобы найти людей для создания своей игры. Это будет странная визуальная новелла про сверх крутую девушку...
А вдруг и тут кому-то будет интересно? Пришёл, чтобы найти людей для создания своей игры. Это будет странная визуальная новелла про сверх крутую девушку, которая преуспела в сотне историй. Я уже делал подобные, но я не могу их выпустить в свет. Большую часть буду делать я, но мне нужны люди, что смогут создать музыку похожую на ту, что я буду скидывать. Я не особо умею рисовать, но нарисую как смогу, если найдется и художник, что перерисует - будет круто. Может кто-то ещё озвучить захочет? Почему бы и нет... Деньги я платить не буду, объём работы будет для вас скорее всего не большой, игра будет полностью бесплатной, отзывайтесь, если хотите этим заниматься как хобби. Нужно будет поиграть что-то вместе с теми, кто захочет помогать, мне нужно постараться найти общий язык с людьми. Любая другая помощь будут кстати. ❤️😁❤️
Пишите в телеграм @DarkCrisArma или на почту dark2000qwe@gmail.com