kutejnikov

kutejnikov

3d-artist / indie game developer
Пикабушник
647 рейтинг 11 подписчиков 5 подписок 11 постов 8 в горячем
100

Апотекарий Ливси: Жадность - это скверна! (Песня о жадности)

ЛЛ: картинка лапками, песня - suno ai.

Давно собирался нарисовать доктора нашего Ливси в образе доблестного апотекария, но как-то всё не получалось. Месяца два назад, тестируя сервис suno ai, сгенерировал довольно неплохой трек по мотивам "Песни о жадности", решил к нему и обложку сделать. Вкратце о suno ai. В день даётся пять бесплатных генераций, на выходе две версии. Каких-то особых настроек нет, можно задать текст и жанр, в остальном дикий рандом. Всю песню сгенирировать сразу не получилось, потому что сетка выдаёт куски по 40-80 секунд, тоже случайным образом, иногда обрывая на полуслове. Есть функция продолжить фрагмент, таким образом получилось три части куплет+припев. Больше всего времени потратил на третий фрагмент, около недели, результаты были плохенькие, часто срезались последние строки, но потом повезло.

Самого доктора и туманный фон рисовал в CLIP Studio Paint.

Апотекарий Ливси: Жадность - это скверна! (Песня о жадности) Warhammer 40k, Wh humor, Кроссовер, Доктор Ливси, Остров сокровищ, Рисунок, Музыка, Апотекарий, Видео, Советские мультфильмы, YouTube

Всем здоровья и настроения как у доктора Ливси!

Показать полностью 1
43

Пулемёт Фёдорова-Шпагина обр. 1922 года

На днях закончил 3д-модель по довольно интересному прототипу пулемёта, созданному 101 год назад знаменитыми оружейниками - Владимиром Федоровым и Георгием Шпагиным.

Пулемёт Фёдорова-Шпагина обр. 1922 года 3D, 3D моделирование, Blender, Оружие, Пулемет, Прототип, СССР, Marmoset Toolbag, Substance painter, Георгий Шпагин, 3D графика, Вооружение, Красная Армия, Pbr, Рендер, Видео, YouTube, Длиннопост
Пулемёт Фёдорова-Шпагина обр. 1922 года 3D, 3D моделирование, Blender, Оружие, Пулемет, Прототип, СССР, Marmoset Toolbag, Substance painter, Георгий Шпагин, 3D графика, Вооружение, Красная Армия, Pbr, Рендер, Видео, YouTube, Длиннопост
Пулемёт Фёдорова-Шпагина обр. 1922 года 3D, 3D моделирование, Blender, Оружие, Пулемет, Прототип, СССР, Marmoset Toolbag, Substance painter, Георгий Шпагин, 3D графика, Вооружение, Красная Армия, Pbr, Рендер, Видео, YouTube, Длиннопост
Пулемёт Фёдорова-Шпагина обр. 1922 года 3D, 3D моделирование, Blender, Оружие, Пулемет, Прототип, СССР, Marmoset Toolbag, Substance painter, Георгий Шпагин, 3D графика, Вооружение, Красная Армия, Pbr, Рендер, Видео, YouTube, Длиннопост
Пулемёт Фёдорова-Шпагина обр. 1922 года 3D, 3D моделирование, Blender, Оружие, Пулемет, Прототип, СССР, Marmoset Toolbag, Substance painter, Георгий Шпагин, 3D графика, Вооружение, Красная Армия, Pbr, Рендер, Видео, YouTube, Длиннопост
Пулемёт Фёдорова-Шпагина обр. 1922 года 3D, 3D моделирование, Blender, Оружие, Пулемет, Прототип, СССР, Marmoset Toolbag, Substance painter, Георгий Шпагин, 3D графика, Вооружение, Красная Армия, Pbr, Рендер, Видео, YouTube, Длиннопост
Пулемёт Фёдорова-Шпагина обр. 1922 года 3D, 3D моделирование, Blender, Оружие, Пулемет, Прототип, СССР, Marmoset Toolbag, Substance painter, Георгий Шпагин, 3D графика, Вооружение, Красная Армия, Pbr, Рендер, Видео, YouTube, Длиннопост

Сетка делалась в Блендере + Substance Painter для текстур. Рендер в основном - Мармосет, кадры с асфальтом - Blender Cycles.

Получилось 42 тысячи треугольников - 12 из них за счёт радиатора воздушного охлаждения. Текстуры 4k для пулемёта, 2к - сошки, 1к - магазин с патронами.

Скачать можно здесь: https://gamebanana.com/models/4980

Показать полностью 6 1
38

Немного бесплатных предметов для инвентаря (public domain)

Всем привет. За некоторое время практики в рисовании предметов накопилось немного работ - зелья, оружие, свитки, etc. В будущем, возможно, буду использовать это для какой-нибудь своей игры, но что бы сейчас это не пропадало зря, решил публиковать работы в свободном доступе на условиях CC0 (любое использование, без указания авторства).

Немного бесплатных предметов для инвентаря (public domain) Разработка, Gamedev, Инди игра, Ассет, Props, Инди, Арт, Бесплатно, Оружие, Зелье, Рисование, 2D, Digital, Длиннопост
Немного бесплатных предметов для инвентаря (public domain) Разработка, Gamedev, Инди игра, Ассет, Props, Инди, Арт, Бесплатно, Оружие, Зелье, Рисование, 2D, Digital, Длиннопост
Немного бесплатных предметов для инвентаря (public domain) Разработка, Gamedev, Инди игра, Ассет, Props, Инди, Арт, Бесплатно, Оружие, Зелье, Рисование, 2D, Digital, Длиннопост
Немного бесплатных предметов для инвентаря (public domain) Разработка, Gamedev, Инди игра, Ассет, Props, Инди, Арт, Бесплатно, Оружие, Зелье, Рисование, 2D, Digital, Длиннопост
Немного бесплатных предметов для инвентаря (public domain) Разработка, Gamedev, Инди игра, Ассет, Props, Инди, Арт, Бесплатно, Оружие, Зелье, Рисование, 2D, Digital, Длиннопост
Немного бесплатных предметов для инвентаря (public domain) Разработка, Gamedev, Инди игра, Ассет, Props, Инди, Арт, Бесплатно, Оружие, Зелье, Рисование, 2D, Digital, Длиннопост
Немного бесплатных предметов для инвентаря (public domain) Разработка, Gamedev, Инди игра, Ассет, Props, Инди, Арт, Бесплатно, Оружие, Зелье, Рисование, 2D, Digital, Длиннопост
Немного бесплатных предметов для инвентаря (public domain) Разработка, Gamedev, Инди игра, Ассет, Props, Инди, Арт, Бесплатно, Оружие, Зелье, Рисование, 2D, Digital, Длиннопост
Немного бесплатных предметов для инвентаря (public domain) Разработка, Gamedev, Инди игра, Ассет, Props, Инди, Арт, Бесплатно, Оружие, Зелье, Рисование, 2D, Digital, Длиннопост
Немного бесплатных предметов для инвентаря (public domain) Разработка, Gamedev, Инди игра, Ассет, Props, Инди, Арт, Бесплатно, Оружие, Зелье, Рисование, 2D, Digital, Длиннопост

Все эти картинки (и некоторые другие) с прозрачным фоном в формате .png можно скачать здесь:

https://opengameart.org/users/kutejnikov

Успехов!

Показать полностью 9
114

Процедурная генерация простого подземелья в 150 строк (C#)

Всем привет. Решил поделиться кодом для создания подземелья, который я использую в своём рогалике. Код опубликовал год назад, но добавить пояснения и комментарии для начинающих руки дошли только сейчас.

Процедурная генерация простого подземелья в 150 строк (C#) Gamedev, Разработка, Unity, Компьютерные игры, Инди, Процедурная генерация, Рогалик, Roguelike, Туториал, Инди игра, Видеоигра, Csharp, Программирование, Steam, Демо, Длиннопост

Линк: https://gist.github.com/Kutejnikov/bc89aee11330ae44c27d74c0ba4172fd

Примеры генерации, как настроить канвас и прикрепить скрипт (первая минута): https://www.youtube.com/watch?v=_Vz9FDigioU

В игре есть тропический остров, на котором расположены руины, после обнаружения которых игрок спускается в подземелье состоящее из нескольких этажей (есть опция начать сразу с подземелья). Собственно с помощью кода создаётся основа для каждого этажа (но можно использовать и для создания интерьеров в наземных прямоугольных строениях). Работа алгоритма построения проста - сначала строится горизонтальная или вертикальная стена и в ней отмечается дверь (или несколько), таким образом пространство делится на две части, в каждом из которых происходит последующее разделение на две части и т.д. За основу взят метод построения правильных лабиринтов “Recursive Division”, посмотреть интерактивные примеры (в том числе и для десятка других алгоритмов) и код для ruby можно здесь: http://www.jamisbuck.org/mazes/

Чтобы в подземелье были «комнаты» и возможность нарезать круги добавлено ограничение на минимальный размер комнаты (int roomMinHorizontal, roomMinVertical) и шанс построения дополнительной двери (int extraDoorChance, minLengthForExtraDoor - минимальная длинна стены для дополнительной двери). В коде всего три метода, давайте посмотрим что они выполняют.

CreateDungeon() - главный метод, вызывается по нажатию пробела, строит подземелье и отрисовывает его на спрайте. В начале метода происходит проверка размера карты - по горизонтали и вертикали должны быть только нечётные числа. Затем идёт инициализация двумерного массива int[,] maze в котором и будет храниться карта. Далее - вызов метода разделения начальной пустой области Division(). Отрисовка полученной карты идёт с 39 по 56 строку - создается текстура и спрайт, текстуре присваивается цветовая информация (стены, пол, двери). Этот фрагмент можно использовать для отображения в игре мини-карты.

Division(int startX, int endX, int startY, int endY) - определение как надо разделить переданную область от стартовых координат (int startX, int startY) до конечных (int endX, int endY) на две части. В методе производится проверка габаритов области и если она слишком мала то выходим из метода через return - в этом случае дальнейшие действия в этом прямоугольнике не производятся. Если нет - создаём новую область через CreateRoom().

CreateRoom(bool isHorizontal, int startX, int endX, int startY, int endY) - непосредственно построение стены и дверей в определенной «комнате». isHorizontal - область по горизонтали шире чем по вертикали, т.е. будет ли построена вертикальная или горизонтальная стена. Сделано для того, чтобы комнаты не были слишком растянуты в одном из направлений. Это определяется в предыдущем методе через if (endX - startX > endY - startY), для квадратных комнат используется рандомное расположение стены. После этого проводится стена в массиве maze[verticalWall, i] = 1 (0 - пол, 1 - стена, 2 - дверь), через int doorNumbers определяем количество дверей в ней - как минимум должна быть одна дверь (но вы можете усложнить не добавляя на этом этапе дверей и создав телепорты для несвязанных частей подземелья). Затем вызывается Division() для каждой из двух областей разделённых стеной и происходит дальнейшее деление, пока не останется неразмеченных областей, после чего продолжится выполнение метода CreateDungeon() и будет визуально отрисована карта получившегося подземелья.

Итак, какие есть плюсы и минусы данного алгоритма. Построение комнат элементарно, при этом они все связаны и при дополнительных дверях появляется нелинейность прохождения. Также игровое пространство используется по максимуму, а с получившимися прямоугольниками в дальнейшем легко работать, расставляя в них мобов и дополнительный интерьер. В то же время, простота алгоритма определяет и его недостатки - некоторая однообразность и предсказуемость - в подземелье будет как минимум одна стена идущая от края до края. Более интересных и «пещеристых» подземелий можно добиться с помощью модификации этого алгоритма под названием "Blobby" Recursive Subdivision Algorithm (в ссылке выше примеры идут сразу после Recursive Devision). Однако, для своего проекта решил остановиться на первом варианте, поскольку мне удобнее работать с прямоугольниками, а вот внутри уже них я применял другие алгоритмы для создания самых разнообразных помещений, пещерок и коридоров. Вот примеры того как таким образом можно усложнить подземелье (игрок на карте отмечен зелёным кружочком):

Процедурная генерация простого подземелья в 150 строк (C#) Gamedev, Разработка, Unity, Компьютерные игры, Инди, Процедурная генерация, Рогалик, Roguelike, Туториал, Инди игра, Видеоигра, Csharp, Программирование, Steam, Демо, Длиннопост
Процедурная генерация простого подземелья в 150 строк (C#) Gamedev, Разработка, Unity, Компьютерные игры, Инди, Процедурная генерация, Рогалик, Roguelike, Туториал, Инди игра, Видеоигра, Csharp, Программирование, Steam, Демо, Длиннопост

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

Пару слов о рогалике Tzakol in Exile. Разработку веду с 2021 года, планировал опубликовать в прошлом году, но притормозил и отодвинул дату до лучших времён. Сейчас периодически добавляю новый контент и то, что раньше было демоверсией постепенно повышаю до уровня lite - бесплатной версии. В ней есть два режима - с мета-прогрессией и в стиле традиционных рогаликов (доступны за исключением нескольких последний этажей и сражения с финальным боссом). Планирую добавить ещё блиц-режим, который будет представлен в lite-версии полностью. Скачать демо можно в стиме: https://store.steampowered.com/app/1764840/Tzakol_in_Exile/

Если есть вопросы по коду или по игре - пишите в комментариях, постараюсь ответить.

Показать полностью 2
22

Приключения Валуна - опыт публикации на отечественных площадках

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

О самой игре - это небольшой казуальный платформер, в котором я реализовал давнюю задумку с персонажем, которым довольно трудно управлять - он может либо совершать рывок, либо тормозить. При этом рывок можно совершать с определённой периодичностью, так что следует учитывать инерцию и другие факторы. Цель простая - добраться до синего портала, не коснувшись опасных объектов и не свалившись в кислоту. В качестве условий безупречного прохождения уровня может быть ограничение по количеству рывков или сохранение в целости ваз. Вся игровая механика присутствует в трейлере:

Сама игра на VKPlay: https://vkplay.ru/play/game/boulder/

Разработка велась на Unity, из внешних ресурсов - звуки+музыка купленные в разное время в пакетах Humble Bundle и ofl шрифт Rubik. Часть спрайтов из игры (включая главного героя и текстуры стен) опубликовал под лицензией CC0/Public Domain: https://opengameart.org/users/kutejnikov (из-за сбоя сайта некоторые последние загруженные спрайты пока что не отображаются).

Теперь немного по площадкам. Яндекс-игры как площадка (для меня) представляется не очень перспективной - нет возможности публиковать десктопные версии, каталог переполнен, нет доступа к детальной статистике по игрокам, доход с рекламы сейчас мизерный (вместо рекламы часто вылазит неоплачиваемая заглушка "вы сейчас находитесь на яндекс-играх, тысячи бесплатных игр здесь, etc"). Помимо всего прочего нет и ачив-системы (но есть лидерборды). Из плюсов - невысокий порог вывода средств, 3к. VKPlay - для десктопных проектов российских разработчиков сейчас это одна из немногих площадок по функционалу сопоставимая (условно) со стимом (как вариант ещё keyga.me но там просто загружаемые/скачиваемые архивы, он ближе к itch). Порог вывода 50к, что не радует. Некоторый функционал в кабинете не реализован или в фазе "напишите нам письмо, вышлем документацию". С проблемами загрузки/размещения релизов и материалов не столкнулся, были некоторые траблы с системой ачивок, но с помощью техподдержки разобрался. Для ачивок (и другого функционала) надо использовать API Steamworks (заменив оригинальный dll). Выглядит странно, но работает. То есть, даже если ваша игра не выходила в стиме всё равно будете использовать SteamUserStats()-GetAchievement().

Некоторую несерьёзность с которой подходили к разработке платформ можно проиллюстрировать отношением к тегам. Разработчику вписать свои теги нельзя, а следует выбирать из списка, многие пункты в котором вызывают недоумение (яндекс сверху):

Приключения Валуна - опыт публикации на отечественных площадках Разработка, Gamedev, Компьютерные игры, Видеоигра, Инди игра, Unity, Инди, Видео, YouTube

На этом всё, всем успехов.

Показать полностью 1
16

Приключения неуклюжего слизня

На днях выпустил обновленную версию одной из первых своих игр и решил вкратце рассказать о процессе разработки. Заодно опубликовал часть ресурсов из игры в свободном доступе: https://opengameart.org/users/kutejnikov

Создание игры началось с прохождения небольшого (примерно 50 минут) туториала.  Затем появилась идея, что не плохо бы вместо линейного движения объектов проверяющих на прочность построенную конструкцию разместить персонажа, который сможет свободно передвигаться и прыгать. А чтобы ему жизнь мёдом не казалась на некоторых уровнях присутствуют противники - они не наносят урон игроку, но могут заблокировать его движение или сломать построенную конструкцию. Игровой процесс на уровне с "врагами":

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

Сама игра: https://yandex.com/games/app/187913

Показать полностью
23

Кораблик

Кораблик Pixel Art, Инди игра, Gamedev, Видеоигра, Unity, Компьютерные игры, Разработка, Инди, Steam

Босс (рабочее название "летучий шайтанец") для арканоид-подобной игры, всего 16 цветов. Вот как выглядит на уровне (несколько упростил геометрию):

Кораблик Pixel Art, Инди игра, Gamedev, Видеоигра, Unity, Компьютерные игры, Разработка, Инди, Steam

Через несколько дней допилю баланс и выпущу обновление с новым idle-режимом, где данный "персонаж" будет обитать на 101 уровне: https://store.steampowered.com/app/1349920/Caterpillarnoid/

Показать полностью 1
Отличная работа, все прочитано!