«Живое слово», наша первая игра | Тесты, арты, голоса#2
Салют!
Итак, продолжаю понемногу (хотя посты оказываются что-то слишком уж большими) рассказывать про разработку нашей маленькой jRPG. Чуть подробнее про игру мы рассказывали здесь. Знаю, посты бывают редко, но сами знаете: днем работа, ночью — разработка :)
Сегодня я расскажу про персонажей и дам послушать еще парочку голосов, покажу всякие тестовые штуки и вброшу еще немного чудовищ.
Начнем по порядку.
Новые голоса
(про предыдущие можно почитать вот здесь)
Кузьма Милославский
Нет, не родственник. Младший сын древнего дворянского рода, который прославился успехами в военном деле. Вот только сам Кузьма избрал несколько иную стезю — политику. 18 лет назад, еще мальчишкой, он был писарем при идолах во время «Царской дележки» — конфликта, в котором Склавиния и Царство Хань делили спорные территории. Тогда все решилось миром, а Милославский обрел множество неожиданных и полезных знакомств, которые позволили ему подняться по «карьерной лестнице».
Умный, веселый и открытый человек с множеством невероятных баек и историй. Что называется «душа нараспашку». Лучший друг Ратмира и Ляна Цзии.
Воплотить столь яркого персонажа согласился громогласный Станислав Олейников, который некоторым из вас будет скорее известен как Evilborsh.
Ярослав
Случай, что называется, «из ряда вон». Наша замечательная художница MW буквально сразу же «ухватила» персонажа, и явился он нам практически в финальном своем виде. И-и-и немного заглянем в будущее — покажу вам еще и кусочек его «взрослой» и потрепанной версии из основной части игры.
Так вот, Ярослав. Последний из основной четверки идолов и избранник Даждьбога. Яркий, открытый, буквально пылающий изнутри молодой человек. Он очень... вспыльчивый и падкий на девичью красоту, чему не очень-то рада его жена... Пардон, не жена, а невеста. Ярослав про нее говорить не любит, да и мы тоже не станем.
Во время войны основной удар от Аккаданской Империи принимали на себя южные земли, родные для Ярика, поэтому особой любви к зарубежным гостям не питает.
Что ж, а теперь перейдем, собственно, к голосу. Как я уже говорил, тут все интересно. Еще во время набросков сюжета мы со сценаристом поглощали килотонны видеоигровой информации, в том числе и через ютуб. Когда мы обговаривали Ярика, то где-то на фоне был включен один из роликов на канале StopGame. «Именно так он и должен звучать!» — решили мы, махнув в сторону экрана. В этот момент невероятно харизматичный Дмитрий Бурдуков рассказывал, что же не так с саундтреком Cyberpunk 2077...
Хотелось бы еще рассказать о каком-нибудь женском персонаже, но видео от актрисы мы еще не получили... Но неважно вот вам...
Мира
Дочь идола Стрибога и баронессы Арверны. Пока отец был на войне, они с братом росли в огромном холодном замке под строгим надзором суровой прислуги, которая запрещала все «опасные и недопустимые по статусу» штуки. Несмотря на это, Мира выросла бойкой, любознательной и открытой ко всему новому.
Да, у девочки не такая уж большая роль в прологе, но... она ведь еще и главная героиня одной из кампаний игры. Поэтому нам нужна была актриса, которая сможет озвучить и стеснительного ребенка, и бойкую молодую девушку. И тут нам попалась абсолютно невероятная Анна Мосолова, которую вы можете знать как одну из ведущих актрис Студийной Банды.
Тесты всякого
В данный момент у нас идет активная сборка демки, поэтому мы активно продолжаем вылизывать разные части игры.
Например, меню:
Диалоговую систему:
Голоса мы еще не вставили, но на фоне вы можете услышать одну из ранних версий саундтрека.
Это же касается и тестов перемещения:
Чудовища
Про наших чудовищ мы уже немножко рассказывали вот здесь. Продолжаем.
Сегодня у нас на очереди «последняя из бук», этакая правительница всего этого темного народца (о том, кто такие буки, мы уже писали). Названия мы ей пока не придумали, у нас она проходит как «Царица бук», так что если хотите предложить свой вариант — с радостью послушаем.
Следом за ней я покажу вам куляшат — маленьких болотных чертиков. Вообще, он на арте один, но я просто не знаю, как обозвать его в единственном числе. Куляшонок? Куляш? Пусть будет куляш.
И последним на сегодня станет... болотный огонек.
На сегодня пока все. Спасибо, что досмотрели до конца :)
Наша группа VK: https://vk.com/lockongames (тут сразу же публикуется все самое свежее и интересное)
Будем крайне рады всем)
Godot. Ищем потерянные ноды
Утречка! Давно ничего не писал, были причины. Немножко расскажу, так получилось что 31го декабря, за несколько часов до НГ мы взяли и релизнулись. Не скажу что это эпохальное событие, игра и сейчас сырая, но в целом даже на довольно нишевой платформе более 2000 юзеров, какой-никакой ретеншн и длина сессии очень больше 15 минут, что очень даже неплохо. Это небольшой айдл, приложу маленький видосик с процессом.
Не буду тут рассказывать что это несет великую ценность для геймдева, но для меня как Godot-разработчика большая веха. Полностью кроссплатформа, один билд собирается и в apk и html5, который более менее ровно работает и на пк и с мобилки, наподключали всего чего только можно и appsflyer с devtodev и платежку и рекламу, в качестве бекенда используем Nakama, офигенная вещь и с Godot работает прекрасно, даже есть свой самописный сервер на Godot, мы его используем теперь для сбора своей статистики на этапе загрузки html через вебсокет. Брат у меня из геймдизайнера прям матерым линкусоидом стал, докеры там какие-то разворачивает на VPS, и интерфейсы ваяет, я больше все же клиентской логикой занимаюсь.
Короче это я к чему, Godot офигенно работает во всем, но кривые ручки разработчика могут все подпортить. Самое всеми любимое это конечно же - Утечки памяти, они же Memory Leak.
Как я напортачил сильно не буду углубляться, там очень много кода придется демонстрировать, но это из-за разлетающихся конечностей получилось, эффект прикольный и сделал его быстро, буквально за вечер, но потом долго искал и правил)
Из-за чего может получиться, самое простое и частое, это remove_child вы вызвали, а queue_free() для ноды не вызвали, вот и болтается она в памяти неприкаянная, в языках со сборщиком мусора типа Java, AS3 и тп, они бы почистились в определенный проход, но в Godot нету сборщика мусора, так что лучше не расслабляться. Покажу на немножко утрированном примере, но он практически идентичен тому, как сам натолкнулся на эту проблему и уже начал проверять.
Маленькая ремарка - знакомый играл сказал что на третьем часу игры у него начали подтормаживания, я потом затестил там больше 300000 объектов в памяти накапливалось, что конечно плюс Godot, но минус моим кривым рукам.
Ну ладно меньше текста, немножко покодим, для примера возьму ещё одну полезную в хозяйстве вещь такую как HTTPRequest. Начну прям с этого туториала.
https://docs.godotengine.org/en/stable/tutorials/networking/http_request_class.html#preparing-scene
Сцена
Скрипт
Все хорошо работает, но есть одно но, если быстро кликнуть на кнопку, появится ошибка.
Потому что предыдущий запрос не успел выполнится, а уже новый шлём.
А нам вот надо кровь из носу слать сколько угодно запросов, задудосить может хотим кого(Осуждаю), идем в следующий тутор.
https://docs.godotengine.org/en/stable/classes/class_httprequest.html#class-httprequest
Переписываем код, чтобы при нажатии на кнопку спавнился новый реквест и уже он пускай и отрабатывает, подправим немножко код.
Вроде бы все как надо, но теперь появилась другая проблема.
И все как бы логично, мы же создаем новые реквесты, но никуда их не деваем, они свое сделали и висят балластом. Блин не могу найти странное решение, которое видел на форуме, но оно сводилось к удалению всех потомков на сцене. Не суть, напишу сейчас похожее, внимание не повторяйте это. Но для образовательных целей пойдет. Заодно ознакомимся с очень замечательным методом print_stray_nodes()
потыкаем на кнопочку 10 раз пока она не пропадет и посмотрим на результат.
В профайлере появились беспризорные ноды, у которых нет родителей. Подмывает Лилу с футурамы вставить, тренд же, но не буду. Вообщем это самое первое смотрите всегда, если чувствуете что проекту плохеет со временем, ну и теперь глянем что же показывает тот чудесный метод.
а тут список всех потерянных нод с именами, можно даже наколхозить свой сборщик мусора и периодически вызывать это в проекте, чтобы чистить потеряшек, но я этого делать не буду и вам не советую используйте class_name для своих нод, они тут будут нормальные названия иметь, найти утечку уже дело плевое совсем.
Вот такие дела, пользуйтесь на здоровье.
Ну наверное может у тех кто только осваивает ещё все это дело возникнуть вопрос, а как по уму то сделать, чтобы удалялись только неиспользуемые?
Отличное решение будет сделать пул реквестов, чтобы использовать ранее созданные, но уже отработавшие свое, а если в пуле нет свободных то расширять пул созданием новых, это будет оптимально, так вы не тратите процессорное время на создание и удаление объектов, но это к настоящим программистам, мне лень это писать, там писечная выгода будет, для каких-то высоконагруженных систем мб, в любом случае это тема для отдельного поста.
Я покажу пример попроще и он расширит удобство сигналов заодно, мало-ли кто не знает, что так тоже можно)
Ну и скрин профайлера
Вот таким нехитрым образом можно получить доступ к сцене которая вне зоны видимости, может где и пригодится кому, способ простой. Я его использовал для пулек, ну потому что у нас в проекте не используется физика и коллизии, пулька летит в заранее просчитанное место столкновения, все по прямой же движутся)
Всем спасибо за внимание.
P.s. Жена занялась Cutout анимацией, немножко в кодинг тоже начала тыкаться. Так что очень возможно запилю серию новичковую заново с более продуманным планом. Опыта опять же прибавилось, какие-то вещи пересмотрел, в каких-то укоренился напротив, все во благо скорости. Пусть и не топовый программист, но за три дня могу сделать любой прототип и 90% работы, а потом уже месяцами делать оставшиеся 90% работы)
«Живое слово» | Голоса нашей первой игры
Салют!
Итак, решил я вам сегодня немножко рассказать о персонажах и актерах, которые их озвучивают. Изначально озвучка в нашей маленькой RPG не планировалась вовсе (ну, то есть планировалась, но на уровне «Хм-м-м?» и «Ах!»), а потом мы познакомились с руководителем школы озвучания и студии Voice Band. И тут понеслось.
Сивер
Сивер — главный герой демоверсии и одной из кампаний. Ох, и натерпелся же этот персонаж: перевоплощения, переименования, понижение, повышение, смена дарующего силу божества и куча чего еще. Именно на нем мы отрабатывали стилистику игры, стараясь совместить «западное» с «восточным» и «крутое» с «классическим».
Так… что же это за персонаж такой? Сивер — молодой идол… Хм, надо бы словарик завести, а то нам-то терминология понятна, а вот вам придется тяжелее.
Первое отступление. Кто такие «идолы» в мире нашей игры?
Когда-то давно десятки богов сотворили из тьмы землю и все сущее — людей, животных и... хтонь. Затем они ушли, оставив после себя своих избранников. В каждом государстве нашего мира избранники богов зовутся по-разному: где-то это могучие «энси», где-то мудрые «ши», а в Склавинии, в которой наша история берет начало, — «идолы». Каждый из идолов приписан к определенному богу и получает часть его силы, которая поступает от... об это как-нибудь потом :).
Кхм, возвращаемся. В общем, Сивер — молодой идол Стрибога. Он совсем недавно получил силы от почившего отца (про наследование сил мы тоже расскажем, но в другой раз), но уже успел повоевать с Аккаданской Империей. В его сердце пылает пламя самоотверженности и желания сделать мир лучше. То пламя, которое все труднее поддерживать с годами...
Заговорил Сивер голосом чудесного Владимира Дорды. У него своя студия и школа дубляжа Voice Band. В его проектах звучат в тандеме профессиональные актеры озвучания и талантливые новички. А некоторые герои вовсе говорят его голосом.
Как выходец из театральной профессии и педагог с более чем десятилетним стажем (преподавал 8 лет актерское мастерство и 2 года искусство дубляжа), он уделяет большое внимание созданию голосового образа и интересного звучания.
Но что еще важнее — Владимир наш звукорежиссер и руководит всем процессом озвучания. На счету у него до встречи с нами было пять игровых проектов и часть из них в сотрудничестве с российскими разработчиками.
Ратмир
Ратмир — избранник Перуна. Статный и суровый, он прошел через множество битв. В Аккаданской Империи его со страхом и уважением помнят как Стального ворона Склавинии. Ратмир — надежная опора царя и всей страны. Похоронив жену (между прочим, баронессу Арверны), он стал мягче, а с завершением Склавино-аккаданской войны собирается повесить меч на гвоздь и посвятить всего себя воспитанию детей — Миры и Ратислава.
Такому грозному персонажу и голос нужен соответствующий. И тут появляется брутальный Константин Тихомиров. (Серьезно, когда сценарист увидела актера, то сразу же радостно завопила: «Так это ж прям Ратмир в молодости!».)
Профессиональный актер и режиссёр озвучания, уже успевший отметиться в громких проектах. Звучит как на русском, так и на английском языках.
Постоянный актер студии TrueDubbing и Red Head Sound.
Илина
Я упоминал, что мы долго подбирали дизайн и стиль для персонажей, так вот, началось все именно с персонажа Илины. Ох, и натерпелась же она... Взять хотя бы то, что изначально мы хотели отталкиваться от стиля америме (как пример — анимация по серии Castlevania), но потом прошло какое-то время, и мы поняли, что это совершенно не то, что мы искали.
Так вот, Илина — идол Мокоши. С этим связана довольно интересная особенность: весь род идолов этой богини состоит, грубо говоря, из одного и того же человека. А все потому, что у представительниц этого рода рождаются только дочери, которые являются их полными копиями.
Илина серьезная и ответственная женщина «немного за 30». Она через много прошла, но умудрилась не растерять внутреннюю нежность. Как единственной женщине среди старших идолов Илине приходится присматривать за юнцом Сивером и непоседой Яриком, которые постоянно во что-то влипают. А ведь ей еще собственную дочь воспитывать нужно.
Дать голос этому персонажу согласилась прекрасная актриса и певица Юлия Чуракова. Вы можете ее знать по множеству фильмов, которые она озвучивала (а может, кто-то даже ходил на мюзиклы с ее участием), но большинство из вас точно слышало ее в... Ой, да во множестве хитовых игр.
Лян Цзии
Поговорим о юго-восточном соседе Склавинии — Царстве Хань. С избранниками богов там дела посерьезнее: богов было значительно больше, чем где бы то ни было, потому их избранники имеют четкую иерархию. Об одном из «идолов среднего звена» и пойдет речь.
Лян Цзии — ши (именно так называются божественные избранники его ранга в Царстве Хань) бога Шоу-син и по совместительству летописец. Ши, в отличие от избранников рангом повыше, не имеют собственных земель, а потому вольны скитаться где пожелают. Это и божественный дар бессмертия делают из Цзии идеального летописца. Вот уже много веков он странствует по землям Царства, совершает подвиги во имя своей чжу (высшие избранники) и записывает все происходящее. Судьба завела его и на нашу церемонию передачи власти. Кстати, в основную игру он тоже обязательно заглянет.
Несмотря на свой возраст, Цзии сохранил юношеский задор и, что не менее важно, внешнюю молодость. Идеальным кандидатом на то, чтобы подарить ему голос, стал молодой и перспективный актер Олегъ Океевъ . Стоило нам услышать его бархатный голос, как мы сразу поняли, — идеально.
Рассказчик
Ну и на очереди основа всего повествования игры — тот, кто проведет вас через всю игру и поведает множество историй, идол Числобога. Рассказчик, чье настоящее имя стерлось в веках. Своим голосом, картами и какой-то сомнительной выпивкой он позволит вам перенестись в Склавинию и узнать будущее, которое ожидает эту страну.
Разумеется, на столь важную роль мы не могли взять абы кого. Нам нужен был тот самый Голос. И им стал несравненный Дмитрий Зубарев , голос замечательного канала TVG (и много чего еще). Честно скажу, когда мы подбирали актеров (а пробы были довольно объемные), то Дмитрий был подходящим кандидатом почти на все мужские роли, но именно как Рассказчик он стал эталонным.
На сегодня пока все. Если будет интересно, то обязательно расскажу еще, персонажей и актеров в основной игре у нас будет под добрые полсотни.
Наша группа VK: https://vk.com/lockongames (тут сразу же публикуется все самое свежее и интересное)
Будем крайне рады всем)
Поиграем в бизнесменов?
Одна вакансия, два кандидата. Сможете выбрать лучшего? И так пять раз.
Субботник отчет по CoreBot
Всем привет!
Решил сегодня добавить видео по игре. В этот раз решил выложить видео с нарезкой, в который можно увидеть некоторых боссов + видео, как игра играется на телефоне, а то обычно виндовую версию показываю (сори за качество, немного торопились😁)
Небольшой отчет по проделанной работе:
- теперь враги не спавнятся при появлении босса;
- в некоторых местах криво отображались спрайты (в магазине и при уничтожении босса);
и прочие мелкие изменения. Честно говоря, даже лень вспоминать)
По планам:
- отработать баланс;
- добавить боссам еще по 2 атаки, т.к. на данный момент у каждого по одной;
- добавить секреты и возможность открывать новых ботов и новое оружие не только через магазин, но и просто нахождением разнообразных частей;
- при паузе сейчас открывается просто список оружий, вместо инвентаря. Также надо будет что-то придумать, может простенький инвентарь, может еще что-то, пока хз)