598

Пишу игрушку на c++

сам концептик Fox Kingdom Tech и всякие зарисовки на тему

Давно были идеи сделать какой-нибудь небольшой проект со своими персонажами и сеттингом + отсылками на портал. Поскольку раньше изначально программировал только под микроконтроллеры (esp32 \ esp8266), какого-то опыта именно в разработке игр по сути не было, но был опыт портирования проектов написанных на SDL, потому пока остановился на данный момент на нем и для своего проекта.

Для физики пока сделал апи для тестирования разных физ. движков \ сохранения возможности реализации через упрощенные функции расчета коллизий. Пока в основном читаю про Box2D и пробую плавно интегрировать его в проект.

Сами персонажи реализованы через составные части. Раньше подобный способ анимации не пробовал, да в целом как и любой другой. Изначальный концептик пробовал анимировать в блендере через разбивку на полигоны с текстурами и привязку их к костям, но потом оставил эту затею по скольку такой анимированный спрайт получилось было бы перенести в игру только в "запеченном" виде, а хотелось оставить динамику для перемещения рук \ изменения взгляда головы

Пробовал еще под это дело Spine \ Live2d, но это все коммерческие решения со скудными вариантами экспорта. В итоге пока остановился на небольшом кастомном решении конкретно под sdl; еще несколько раз перерисовал сам концептик персонажа под более "физично-аркадные" пропорции - чтоб было проще вписать в физ. объект капсулы или прямоугольник. весь персонаж в "движке" все еще состоит из отдельных сегментов которые можно включать / выключать / анимировать отдельно. Добавил несколько базовых анимаций, проработал контроллер движения и смены анимок. движения рук делал через пресет так же по кадрам положений оружия под разные углы поворота, потом совмещаю динамически с основной анимацией бега / бездействия, так получается миксовать части. Эмоции сделал через принудительное скрытие / отображение частей спрайта.

Еще некоторые скриншоты с актуальной версии

И просто всякие концептики, зарисовки объектов и элементов которые пока не задействованы или в работе.

Звуковым сопровождением пока не занимался, но думаю должно быть что-то амбиентное без лишнего акцентирования. Думаю сделать возможность пока просто закидывать что-то для радиоприемника, чтобы можно было слушать \ ловить свое без привязки к копирайтам ну или возможно кто то согласится добавить свои треки в игру в дальнейшем по мере того как буду спрашивать понравившихся авторов \ то что вписывается в игру...вобщем буду думать.

На этом пока все. Спасибо за внимание

nradiowave

171 пост489 подписчиков

Вы смотрите срез комментариев. Показать все
4
Автор поста оценил этот комментарий

Понимаю, что совета никто не просил, но все же - если ты хочешь сделать именно игру, а не просто "поковыряться", то крайне настоятельно рекомендую взять готовый движок. Хоть бы тот же Годот, он тебе идеально должен подойти. Иначе ты просто утонешь в ворохе мелких и не очень проблем, которые в движках за тебя давно сделали и отладили. А так сможешь сконцентрироваться именно на игровых механиках и дизайне персонажей / окружения.


В любом случае, желаю удачи! Будем следить.

раскрыть ветку (2)
6
Автор поста оценил этот комментарий

> сможешь сконцентрироваться именно на игровых механиках и дизайне персонажей / окружения

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

Простой пример из того что тестирую сейчас

например чистое api box2d предоставляет функциональный метод b2World_SetPreSolveCallback который позволяет динамически определять какие объекты когда и с чем должны коллайдировать на этапе update тика - это необходимо например чтобы отсеять все объекты за порталом когда игрок будет находится в состоянии crossing - чтобы при прохождении портала не напороться например на стену \ объект стоящие за портальной стеной.
В godot это нужно будет решать через set_collision_mask_value или add_collision_exception_with у PhysicsBody2D но вариант с масками мне изначально казался не достаточно универсальным т.к. приходилось бы все объекты постоянно по маскам перетасовывать в зависимости от контекста. А add_collision_exeption по сути тоже нужно постоянно удалять через remove_collision_exception_with \ добавлять объекты при изменении окружения туда-сюда. и надо изучать как устроен изнутри - т.к. возможно он перестраивает стейты всех физических объектов и я не представляю на сколько адекватно делать это при каждом апдейте если объектов много даже если это кое как заработает в итоге. Смогу более детально проверить когда доработаю тестовое окружение.

по этому утверждать что можно концентрироваться чисто на механиках и рисовашках очень наивно. Годот отличный движок, просто я еще не достаточно про него знаю и не умею с ним работать в полной мере чтобы иметь возможность что то на нем эффективно писать. Я и сам не особо верю что можно без опыта написать полноценную игру, просто нарабатываю те инструменты и решения которые можно в любом случае потом применить

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

> движок сам за тебя логику игры не напишет,


Безусловно, но написать логику гораздо проще, когда есть весь необходимый фундамент (пусть даже и не полностью идеально подходящий).


> в некоторых моментах и застопорит на неопределенный срок если не имеет достаточной гибкости в кастомизации


Почему я и предложил годот - он максимально удобен в кастомизации, если не брать коммерческих монстров.


> Простой пример из того что тестирую сейчас


Я бы просто раскидал объекты разных типов по слоям и все, и включал / выключал сразу их (вряд ли за порталом будут сразу две стены, с одной из которых нужно сталкиваться, а с другой нет). Вообще оба твоих варианта, по-моему, довольно дешёвые, ибо кроме кучки флагов и пары векторов под капотом ничего не меняют.


Впрочем, это уже не совсем мое дело, не буду лезть с советами по технической части.


> просто нарабатываю те инструменты и решения которые можно в любом случае потом применить


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


Ладно, фиг с ним :) Главное, что тебе интересно!

Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества

Недвижимость и ремонт

Теги

Популярные авторы

Сообщества