Iron Heart: Проект «Iron Heart» или мой первый Gaminator
Во все игры поиграл (не прошёл только 3 игры), всем отзывы написал, проголосовал. Фух… это было нелегко, я в смысле баллы расставлять, игры классные, по-своему интересные. Теперь можно попробовать себя в текстоизлиянии и рассказать, как для меня прошёл Gaminator.
Начало
Я только начал отдыхать от «весеннего Jam`а» (смотреть ролики в youtube, спать), как узнаю о наступающем Gaminator`е. И, разумеется, захотелось поучаствовать. Заручившись согласием своего напарника, я начал следить за темой. Весело было разгадывать загадку Luca_Nia и радоваться, что я в этом участвую.
Тем временем, Rosko с другой командой участвовал в других конкурсах, и прислал мне музыку, которую написал для них (там была игра про робота), а на канале «Ностальгирующего критика» так же был месяц фильмов «Терминатор». Вот так, меня окружала тема роботов, в результате чего, главным персонажем игры и стал робот.
И вот тема объявлена, пора писать ТЗ. Когда ты не один, тебе необходимо объяснить человеку что и как будет. Поэтому я сразу начал его писать, накидывать reference
Перевёл его через Google-translate и отправил напарнику.
В нём было описание игрового процесса, наброски механик, сюжет, диалоги. После я уже в него добавил описание (ТТХ) персонажа и его модернизацию.
Когда работаешь один над проектом, тоже надо писать ТЗ, но часто этим все пренебрегают.
О команде
Я участвовал в конкурсе совместно с композитором Rosko Vair (https://roskovair.itch.io). Наше знакомство произошло на предыдущем Jam`е, когда в общий чат discord`а он написал, что готов поучаствовать в соответствующей роли в проекте. Я откликнулся на его предложение, и мы стали вместе работать тогда, ну, а потом, я его позвал на Gaminator. Поэтому мы не то, чтобы сплоченная команда, а объединившиеся люди по интересам над одним проектом.
Наше взаимодействие построено очень просто, я объясняю идею и тему игры, отправляю ТЗ, а Rosko пишет музыку и присылает её мне (иногда разные варианты). Получив отзыв, он занимается дальше. Я в свою очередь высылаю ему свои наработки, черновые механики и уровни. И также получают от него обратную связь. Он и за тестировщика, и за переводчика в результате. Так как он из США, то мы переписываемся либо утром, либо вечером и получается, что над проектом ведёт работа 24 часа в сутки (он спит, я работаю — я сплю, он работает).
Никаких рамок, требований, каждый из нас занимается в меру своих возможностей и своего видения проекта, поддерживая друг друга, если становиться сложно. =)
О главном персонаже
Сначала планировалось сделать робота, который ездит на гусеницах и может поднимать ящики, бочки. Тем самым можно было сделать головоломки на применение различных приборов, жидкостей
Например:
- на пути бассейн с водой, которые не перепрыгнуть. Нашёл «замораживатель», бросил его в воду, она застыла — проезжай;
- для работы двигателя, который откроет дверь, необходима топливо синего цвета, а на уровне резервуары с голубой, пурпурной и жёлтой жидкостью, и бочка. Робот берёт бочку, заливает из резервуара голубую жидкость, потом заливает пурпурную и получает синию (CMYK);
- надо «расчистить» проход от преграды — смешали все 3 цвета (получает чёрную жижу) и тикаем подальше, потому что она шипит и взрывается.
Вот такие идеи разбились о реальность. Но, что же, пошло не так?
- Мне показалось, что робот на гусеницах — это скучно, это будет обычный платформер. А ведь ещё гусеницы нужно было анимировать. А я вообще не художник. Решил поставить его на колёса, получилась машинка. Прикольно, можно теперь гонять по уровню разбрызгивая всё.
- Теперь надо сделать, чтобы робот красиво и без ошибок смог поднимать ящики, бочки, выливать из бочки. А с физикой платформы на колёсах это не просто. Даже платформы, на которые робот запрыгивает снизу, пришлось писать самому, потому что «стандартные» платформы хорошо работают только с кинетическими телами, а с rigidbody они не позволяют запрыгивать «сбоку».
Т. е. получается снизу запрыгиваем, а если едем сбоку, то врезаемся в преграду, а не как в обычных платформера пролетаем насквозь. Не забываем, что ещё робот везёт воду, которая является физическим объектом и тоже должна разливаться по платформам.
В результате, все описанные выше вопросы (и попытки их решить) с главным героем убили основную часть времени на разработку, изменили робота и превратили проект из платформера-головомки в платформер с покатушками.
Техническая сторона
Я решил сделать для себя персональное испытание — использовать на конкурсе другой движок. В результате, у меня 3 конкурсных проекта, на 3 разных движках. Зачем?
Так я могу испытать инструмент в «боевых» условиях. Я в поисках движка, который меня бы устраивал, на котором мне хотелось бы работать постоянно. В спокойном темпе к любому движку можно привыкнуть и если ты сталкиваешь с мелкими не удобствами, то это может происходить ну раз в неделю. А в режиме конкурса, ты будешь об это спотыкаться каждый день и не один раз. Веселюсь по полной.
Конечно, мои поверхностные знания дали свои плоды и игра могла быть лучше и интереснее. Но я об этом не жалею, потому что цель выполнена — мне было весело и я составил своё мнение об инструментах.
Итоги
Я очень рад, что смог закончить проект на конкурс. Что он получился целостным и завершенным. Я рад поучаствовать в самом GAMINATOR`е!
Спасибо большое Luca_Nia, за такую замечательную возможность! =)
Спасибо всем кто поиграл или поиграет в нашу игру! Понравилась она или нет, напишите, пожалуйста, отзыв. Ругайте, материтесь, кидайте помидора и ещё чем… это нормально, это настоящая оценка любого проекта и радость для меня. Это поможет мне стать лучше, как разработчику. Спасибо =)
P.S. Ну и за данный пост так же ругайте, должен же я знать как у меня всё плохо =)
Ну, а если кому-то невмоготу проходить нашу игру до конца самим, и готовы пройти её «на youtube», то могу предложить запись стрима с полным прохождением (~30 минут). Нюанс в том, что он на английском языке. Есть такой канал TigerJ на Twitch, где автор играет в игры с конкурсов по заявкам (пишешь ему в чат discord`а заявку и он стримит). Ссылка тут.
Заметил, что многие проекты сделаны на GameMaker Studio 1 или 2. Я теперь хочу его испытать, у меня куплена GMS 2: Mobile, а в придачу к ней, дали GMS 1.4 (если не ошибаюсь, открытую со многими платформами для экспорта). Раз тут много знатоков этих движков, подскажите какую версию лучше использовать?
Я знаю, что не всегда новое лучше старого и наоборот. Поэтому и интересно услышать от опытных пользователей мнение. Я не призываю к холиварам, а интересуюсь мнением каждого.
Мои требования к движку (поверхно) такие:
- Платформы: HTML5, Mobile, Desktop.
- Актуальные плагины, библиотеки для социальных сетей (VK, OK, FB для HTML5), для рекламных сервисов и магазинов.
- Субъективное Ваше мнение об удобстве, производительности
и т. п.
Понятно, что для GMS 2 необходимо купить версии с другими платформами, но вот об HTML5 версии я слышал плохие отзывы. Там, правда плохо или байки?
Благодарю за помощь!
- 07 мая 2021, 11:42
- 06
СЛАВА РОБОТАМ!
GMS2 как минимум поддерживается сейчас, а поддержка GMS1.4 прекращена уже. За HTML ничего не скажу. Очень быстро привык к ГМС2, теперь уже не представляю как в ГМС1 работать. Связано это не только с самой IDE, где много различий, но и структурой проекта (гмс2 ощущается куда быстрее).
СЛАВА РОБОТАМ!
Для gms2 надо монитор 2к - для удобства. Имхо.
Работаю на gms 1.4 - порт на gms2 осуществляется без проблем.
а колеса можно было поставить на joint'ы, чтобы получилась независимая подвеска а-ля луноход. на сложных поверхностях забавные "эффекты" получаются.
очень неясно, что имелось в виду, но видится мне, что использовав кинематик совместно с джоинтами получился бы похожий эффект попрыгунчика, без свистоплясок. и не совсем понятно, какие платформы стандартные и что пришлось переписывать...
Ну так там и есть joint, на которые один физических объект (робот) присоединяется в другому физическому объекту (колеса).
Колеса - это rigidbody. У "стандартных" физических объектов в движке GodotEngine сделано так, что они могут проходить насквозь (запрыгивать на платформу как в платформерах) только с одной стороны, с одной грани. Соответственно платформа прямоугольная, и если пытаться проходить не "снизу", а "сбоку", то ты останавливаешь о преграду. А в обычных платформерах, ты проходишь насквозь.
Странно, но я даже не задумывался о такой вощможности, надо будет опробовать. Видится мне, что это решается настройкой тела.
Форма платформы будет такой какую ты задашь, там есть выбор. Попробуй сделать ее достаточно узкой, чтобы другое тело могло пролететь. Правда такое работает когда скорость проходящего тела достаточно большая.
В любом случае надо будет посмотреть...
Будешь пробовать, расскажи о результатах. Мне это проверять, если честно, лень :)
Моя цель была не просто добавить кинетическое тело и настраивать похожее его движение (скольжение) по поверхности, а сделать "достоверные" колеса, которые бы и влияли на движение робота. Поэтому я и выбрал в качестве колес rigidbody.
Я может чего-то не понимаю, но джоинты хорошо имитируют амортизаторы. Для чего использовать ригид, не совсем понятно. Ригид это у очень "физический" объект: инерция, инпульс, отскок и т.д. или ты хотел их сделать "резиновыми". В целом по роботу я заметил, что он либо очень легкий, либо гравитация слабая, потому как его шарандашит мама не горюй.
При нажатии на кнопки движения, приходит вращение всех 3 колёс (через set_angular_velocity), за счёт чего робот и двигается. Я хотел, чтобы робот ездил на колёсах, за счёт трения, чтобы получились "настоящие колёса". И в результате, я просто плохо настроил физику. Мы при разработке привыкли к такому поведению, наш косяк.
Поэкспериментировал: вышло не совсем удачно или совсем не удачно, тут кому как =)