Apestol

Apestol

Пикабушник
поставил 2656 плюсов и 89 минусов
проголосовал за 5 редактирований

Сообщества:

3155 рейтинг 33 подписчика 101 комментарий 23 поста 12 в горячем
17

Зеркала в играх

Зеркала в играх Gamedev, Зеркало, Юмор, Dungeons & Dragons
Показать полностью 1
12

Разговоры с самим собой

Разговоры с самим собой Комментарии, Шизофрения, Разговоры с самим собой, Скриншот, Разговор

#comment_219979615

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

Как я делаю Pixel-Perfect Текстурирование для своего рогалика

Как я делаю Pixel-Perfect Текстурирование для своего рогалика Blender, 3D, 3D моделирование, Pixel Art, Gamedev, Игры, Инди игра, Разработка, Компьютерные игры, Видео, Длиннопост

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


Для создания 3д моделей я пользуюсь 2 программами: Aseprite + Blender3d

Первая - Удобный инструмент для пиксель арта

Вторая - популярный 3д-редактор в открытом доступе, который я использую в сочетании с плагином Texel Density.


Сегодня я буду показывать пример текстурирования на неокрашенной модели будущего телепортера:

Как я делаю Pixel-Perfect Текстурирование для своего рогалика Blender, 3D, 3D моделирование, Pixel Art, Gamedev, Игры, Инди игра, Разработка, Компьютерные игры, Видео, Длиннопост

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

Как я делаю Pixel-Perfect Текстурирование для своего рогалика Blender, 3D, 3D моделирование, Pixel Art, Gamedev, Игры, Инди игра, Разработка, Компьютерные игры, Видео, Длиннопост

Для созданного материала вы можете внутри блендера настраивать много разных настроек, например:


Base Color - Цвет

Metallic - Металличность

Specular - яркость бликов

Roughness - Шероховатость\матовость

Emission - цвет свечения

Emission Strength - сила свечения

Но честно говоря, это не имеет смысла, если вы собираетесь экспортировать модельки в анрил или юнити. В этом случае имеет смысл только один параметр - Цвет


Вы можете либо выбрать какой-то конкретный цвет, либо переключить тип цвета на image texture, выбрав файл со своего компьютера

Как я делаю Pixel-Perfect Текстурирование для своего рогалика Blender, 3D, 3D моделирование, Pixel Art, Gamedev, Игры, Инди игра, Разработка, Компьютерные игры, Видео, Длиннопост

Конкретно у меня уже создан материал с подключенной вот такой картинкой.

Изначально это была просто пиксельная сетка, которую я постепенно заполняю различными текстурами. Это позволяет использовать на разных 3д моделях один и тот же материал, что сокращает нагрузку на компьютер

Как я делаю Pixel-Perfect Текстурирование для своего рогалика Blender, 3D, 3D моделирование, Pixel Art, Gamedev, Игры, Инди игра, Разработка, Компьютерные игры, Видео, Длиннопост

Когда мы подключим материал к нашей модельке, мы получим примерно такой результат:

Как я делаю Pixel-Perfect Текстурирование для своего рогалика Blender, 3D, 3D моделирование, Pixel Art, Gamedev, Игры, Инди игра, Разработка, Компьютерные игры, Видео, Длиннопост

Тут наглядно видно, зачем я использую конкретно текстуру с пиксельной сеткой. Она хорошо показывает, где текстуры растянуты, и как сильно. Конечно же, нас такой вариант совсем не устраивает, но сначала нужно понять логику, как именно работает текстурирование в 3д-графике. Сейчас речь пойдет о базовых принципах UV-развертки.


Как вы наверное знаете - вся 3д графика это полигоны. Плоскости, состоящие из 3+ точек. И для каждой такой плоскости хранится информация, какую часть текстуры она использует.


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

Как я делаю Pixel-Perfect Текстурирование для своего рогалика Blender, 3D, 3D моделирование, Pixel Art, Gamedev, Игры, Инди игра, Разработка, Компьютерные игры, Видео, Длиннопост

Но, не всегда геометрия нашей модели соответствуют ее UV-координатам на текстуре.


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


Самый банальный способ изменения UV - это перетаскивание отдельных полигонов на UV-карте. Но, это процесс болезненный, медленный и неэффективный.

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

Как я делаю Pixel-Perfect Текстурирование для своего рогалика Blender, 3D, 3D моделирование, Pixel Art, Gamedev, Игры, Инди игра, Разработка, Компьютерные игры, Видео, Длиннопост

Я распишу принципы некоторых алгоритмов.


Самый контролируемый и точный в работе является простой алгоритм Unwrap. Он по факту является функцией для ручного развертывания. Возьмем для примера вот эту деталь:

Как я делаю Pixel-Perfect Текстурирование для своего рогалика Blender, 3D, 3D моделирование, Pixel Art, Gamedev, Игры, Инди игра, Разработка, Компьютерные игры, Видео, Длиннопост

Как можно видеть, развертка этой дуги скомкана впринципе в одну точку, в один пиксель. Именно поэтому она выглядит, словно ее залили темным цветом полностью. Если мы выделим всю нашу модель и попробуем нажать Unwrap, у нас ничего не получится. Blender выдаст ошибку:


Unwrap failed to solve 1 of 1 island(s), edge seams may need to be added.

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


Если все швы указать правильно, то наша текстура развернется на плоскость, как разрезанная в некоторых местах картонная коробка


Для того, что бы добавить шов, необходимо выделить определенные ребра, и тыкнуть Mark Seam. Clear Seam - логично, удаляет швы с выделенных граней.

Как я делаю Pixel-Perfect Текстурирование для своего рогалика Blender, 3D, 3D моделирование, Pixel Art, Gamedev, Игры, Инди игра, Разработка, Компьютерные игры, Видео, Длиннопост
Как я делаю Pixel-Perfect Текстурирование для своего рогалика Blender, 3D, 3D моделирование, Pixel Art, Gamedev, Игры, Инди игра, Разработка, Компьютерные игры, Видео, Длиннопост

Для примера я указал швы в следующих местах, попробуем теперь развернуть при помощи Unwrap

Как я делаю Pixel-Perfect Текстурирование для своего рогалика Blender, 3D, 3D моделирование, Pixel Art, Gamedev, Игры, Инди игра, Разработка, Компьютерные игры, Видео, Длиннопост

Посмотрим на результат. Если приглядеться, то внутрянняя сторона дуги развернулась идеально, и без искажений. А вот в этих местах есть проблемы

Как я делаю Pixel-Perfect Текстурирование для своего рогалика Blender, 3D, 3D моделирование, Pixel Art, Gamedev, Игры, Инди игра, Разработка, Компьютерные игры, Видео, Длиннопост

Здесь развертка исказилась, что выражается в деформированной текстуре на модели. Это произошло, потому что не хватает еще пары швов, вот тут:

Как я делаю Pixel-Perfect Текстурирование для своего рогалика Blender, 3D, 3D моделирование, Pixel Art, Gamedev, Игры, Инди игра, Разработка, Компьютерные игры, Видео, Длиннопост

Без них, ровно развернуть нашу модель Bledner не смог, и он решил эту проблему искажением UV развертки. Добавленные 2 шва исправили эту проблему, и теперь развертка выглядит так:

Как я делаю Pixel-Perfect Текстурирование для своего рогалика Blender, 3D, 3D моделирование, Pixel Art, Gamedev, Игры, Инди игра, Разработка, Компьютерные игры, Видео, Длиннопост

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


Cube Projection. Принцип работы следующий - Алгоритм создает "куб" из выбранного материала, размер которого определяется размером выделенной области. После чего проецирует текстуру с этого куба на те грани, которые смотрят наружу.

Как я делаю Pixel-Perfect Текстурирование для своего рогалика Blender, 3D, 3D моделирование, Pixel Art, Gamedev, Игры, Инди игра, Разработка, Компьютерные игры, Видео, Длиннопост

Как видим, текстура на нашей детали стала куда красивее - больше никаких искажений Давайте посмотрим на ее UV развертку.

Как я делаю Pixel-Perfect Текстурирование для своего рогалика Blender, 3D, 3D моделирование, Pixel Art, Gamedev, Игры, Инди игра, Разработка, Компьютерные игры, Видео, Длиннопост

Алгоритмы Cylinder Projection и Sphere Projection работают по такому же принципу, но проекцируют текстуру на модель не кубом, а цилиндром и сферой соответственно. Это бывает полезно, когда вы делаете округлые модели, но моя максимально угловатая, и мне эти алгоритмы не подходят.

Но почему же если развертывание через проекции такое простое, все не пользуются ими, и мучаются со швами? Все просто - такие алгоритмы конечно просты, но и подходят они только для простых моделей. Развернуть что-то очень сложное автоматически можно разве что  при помощи Smart UV Project, но это тема другого поста.


Сейчас же перед нами стоит следующая задача - превратить нашу красиво развернутую модель в красиво развернутую модель, но с pixel-perfect-ом. Тут стандартные фукнкции Блендера разводят руками, не предоставляя необходимомо инструментария, и нам нужно воспользоваться тем самым аддоном Texel Density.

Что бы воспользоваться аддоном, нужно в его настройках ввести размеры нашей текстуры (у меня это 160 на 160 пикселей), каким-то шаманским методом рассчитать TD (каюсь, я искал нужное значение методом тыка), и после этого нажатие на кнопку Set My TD масштабирует развертку выделенных граней до необходимого значения.

Как я делаю Pixel-Perfect Текстурирование для своего рогалика Blender, 3D, 3D моделирование, Pixel Art, Gamedev, Игры, Инди игра, Разработка, Компьютерные игры, Видео, Длиннопост
Как я делаю Pixel-Perfect Текстурирование для своего рогалика Blender, 3D, 3D моделирование, Pixel Art, Gamedev, Игры, Инди игра, Разработка, Компьютерные игры, Видео, Длиннопост

Собственно, все что нам остается - это развернуть все детали, и разместить их на нашей развертке в нужные места.

Как я делаю Pixel-Perfect Текстурирование для своего рогалика Blender, 3D, 3D моделирование, Pixel Art, Gamedev, Игры, Инди игра, Разработка, Компьютерные игры, Видео, Длиннопост

Вот, например, как я развернул пол телепортера. Я схитрил, и использовал для всех 4 четвертей детали одну и ту же часть развертки, секономив много места. Когда я закрашу эту часть текстуры, весь пол окажется закрашен. Минус данного подхода - мы не сможем нарисовать что-то на левой части пола телепорта, что бы оно не появилось на правой. Иначе говоря, зеркальность текстуры.  Иногда это очень бросается в глаза.


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


Несколько советов:

1)Вы можете в окне UV-развертки включить функцию прилипания точек к пикселям - это упростит работу.

2)Вы можете настроить сетку своего 3д-вида так, что бы она соответствовала 1 пикселю. И так же при моделировании работать с большей точностью

3)Если вы ошиблись, и ваша точка слетела с сетки - вы можете выделить ее и горячими клавишами Shift-S открыть круговое меню, где выбрать "Snap to Pixel/Grid"


Теперь мы можем залить всю нашу модель сплошным цветом через режим раскраски в блендере.

Как я делаю Pixel-Perfect Текстурирование для своего рогалика Blender, 3D, 3D моделирование, Pixel Art, Gamedev, Игры, Инди игра, Разработка, Компьютерные игры, Видео, Длиннопост

И потом открываем наше изображение в любом 2д-редакторе. Фотошоп, Gimp, я например использую Aseprite. И ориентируясь на залитые контуры на нашей текстуре, включаем все свои графические способности, что бы получить конфетку.

Как я делаю Pixel-Perfect Текстурирование для своего рогалика Blender, 3D, 3D моделирование, Pixel Art, Gamedev, Игры, Инди игра, Разработка, Компьютерные игры, Видео, Длиннопост

Основной движ и больше инфы о моем проекте можно найти здесь:
https://vk.com/crystallpunk

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

Как я делаю свой рогалик на Unreal Engine

Как я делаю свой рогалик на Unreal Engine Gamedev, Игры, Компьютерные игры, Unreal Engine 4, Roguelike, Шутер, Инди игра, Разработка, The Binding of Isaac, Рандом, Уровень, Гифка, Длиннопост

Добрый день. Хочу поделиться историей о том, как я в течении месяца разрабатываю собственную игру, в которую решил собрать все, что я люблю. А именно - иммерсивный рогалик на основе The Binding of Isaac, поощряющий исследование и эксперименты.

В этом посте будут расписаны принципы рандомной генерации, сложности которые я встречал, и идеи, которые реализовываю. А так же много скринов, описания и лирики. Погнали.

Начну я с того, что всего месяц назад впервые открыл Unreal Engine 4. До этого я работал только в GameMaker Studio 2, и мой прошлый проект вы могли видеть около полугода назад. Поэтому какие-то встреченные мной проблемы вполне могут оказаться интересны новичкам.

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

Как я делаю свой рогалик на Unreal Engine Gamedev, Игры, Компьютерные игры, Unreal Engine 4, Roguelike, Шутер, Инди игра, Разработка, The Binding of Isaac, Рандом, Уровень, Гифка, Длиннопост

Взять очень запавшую мне в душу графику и атмосферу малоизвестного рогалика Delver. Пиксельные текстуры и несложная геометрия моделей + объемный свет, и узкие коридоры, полные секретов и врагов. Такая графика мне вполне под силу, учитывай бекграунд дизайнера.

Как я делаю свой рогалик на Unreal Engine Gamedev, Игры, Компьютерные игры, Unreal Engine 4, Roguelike, Шутер, Инди игра, Разработка, The Binding of Isaac, Рандом, Уровень, Гифка, Длиннопост

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

На этот момент я решил что в моей игре точно должна быть интересная вертикальность. Это будет выражаться в двухэтажных тайлах, из которых будет собираться уровень.


Генерация уровня - пожалуй, самая сложная вещь, которая была запланирована в этом проекте.

Я решил изучить то, как она работает в Айзеке, и вот принцип работы:


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

Как я делаю свой рогалик на Unreal Engine Gamedev, Игры, Компьютерные игры, Unreal Engine 4, Roguelike, Шутер, Инди игра, Разработка, The Binding of Isaac, Рандом, Уровень, Гифка, Длиннопост

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

В этой системе берется центральная комната, допустим, 55. Она считается как стартовая. Потом алгоритм проходится по соседним клеткам, заполняя их комнатами. При этом, он проверяет, что бы у комнаты было не больше 1 соседа при установке. Такое условие позволяет создать "коридорность" этажа, в котором отдельные коридоры комнат никогда не зацикливаются.

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

Более подробно о процессе генерации уровней в айзеке можно почитать Здесь.

Как я делаю свой рогалик на Unreal Engine Gamedev, Игры, Компьютерные игры, Unreal Engine 4, Roguelike, Шутер, Инди игра, Разработка, The Binding of Isaac, Рандом, Уровень, Гифка, Длиннопост

Воссоздание данного алгоритма заняло у меня суммарно больше недели, но результат того стоил. Хотя тут визуально сложно что разобрать...

Как я делаю свой рогалик на Unreal Engine Gamedev, Игры, Компьютерные игры, Unreal Engine 4, Roguelike, Шутер, Инди игра, Разработка, The Binding of Isaac, Рандом, Уровень, Гифка, Длиннопост

Мой вариант генерации несколько отличается, в основном по причине использования 3д-графики.


Изначально я планировал понаделать ассетов и собирать из них тайлы внутри анрила - но это оказалось очень неоптимально и медленно. К тому же были проблемы, что отдельные тайлы не успевали прогружаться при быстром повороте камеры.

Эта проблема решилась тем, что я начал моделировать всю основную геометрию уровня в Blender, а затем наполнять ее интерактивными элементами в анриле.

Как я делаю свой рогалик на Unreal Engine Gamedev, Игры, Компьютерные игры, Unreal Engine 4, Roguelike, Шутер, Инди игра, Разработка, The Binding of Isaac, Рандом, Уровень, Гифка, Длиннопост
Как я делаю свой рогалик на Unreal Engine Gamedev, Игры, Компьютерные игры, Unreal Engine 4, Roguelike, Шутер, Инди игра, Разработка, The Binding of Isaac, Рандом, Уровень, Гифка, Длиннопост

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

Второй этаж в игре - это довольно труднодостижимое место. Туда редко ведут прямые лестницы или подъемы, иногда можно забраться туда при помощи паркура или подлететь на инерции от взрыва, потеряв здоровье.
Но в награду игрока ждет большее количество ценного лута + иногда есть возможность пройти в особые комнаты без траты ключа. Но, если первый этаж всегда спроектирован так, что игрок может пройти куда угодно, гулять по второму этажу всего этажа не поулчится - его геометрия порой вовсе не соединена друг с другом.


Вот наглядный пример - тупиковый уголок с крайне ценным лутом, в который из своего тайла проходу вовсе нет. Но, есть шанс на генерацию соседней комнаты, которая позволит этот лут собрать. Каковы шансы? Довольно низки. Учитывая, что каждая комната может при генерации быть случайно повернутой, разнообразие такой генерации довольно велико.

Как я делаю свой рогалик на Unreal Engine Gamedev, Игры, Компьютерные игры, Unreal Engine 4, Roguelike, Шутер, Инди игра, Разработка, The Binding of Isaac, Рандом, Уровень, Гифка, Длиннопост

В целом, развивая тему "исследовательства" данжа, было понятно что от "комнатности" айзека придется уйти. Некоторые мои тайлы крайне коридорны, и как следствие возникла проблема - игрок мог пропетлять по длинному коридору, и упереться в стену, потому что там конец карты и вообще ничего нет. Неприятно удивленный бесполезностью коридора, игрок должен был топать обратно. Такие "безперспективные" коридоры встречались в каждом тайле, и это очень раздражало. Поэтому я внедрил систему динамических дверей - в каждой комнате они находились не в самом "краю" тайла, а в указанном месте, обычно - в самом начале такого коридора, просто обрезая его и делая незаметным для игрока. Вот пример:

Как я делаю свой рогалик на Unreal Engine Gamedev, Игры, Компьютерные игры, Unreal Engine 4, Roguelike, Шутер, Инди игра, Разработка, The Binding of Isaac, Рандом, Уровень, Гифка, Длиннопост

Вот эта стена с красной стрелкой - дверь, которая остается неразрушимой, если в конце коридора с той стороны конец карты. А если там есть комната - то при генерации стена убирается, открывая игроку проход.

Как я делаю свой рогалик на Unreal Engine Gamedev, Игры, Компьютерные игры, Unreal Engine 4, Roguelike, Шутер, Инди игра, Разработка, The Binding of Isaac, Рандом, Уровень, Гифка, Длиннопост
Как я делаю свой рогалик на Unreal Engine Gamedev, Игры, Компьютерные игры, Unreal Engine 4, Roguelike, Шутер, Инди игра, Разработка, The Binding of Isaac, Рандом, Уровень, Гифка, Длиннопост

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


В целом, если данный материал окажется интересным, я запилю продолжение, благо рассказывать есть много чего. И про методы генерации лута на основе весов, и про особенности и принципы геймдизайна и левелдизайна, навязываемые геймплеем, и про принципы реализации системы артефактов.
Могу так же более подробно углубляться в сам процесс реализации данных систем на блупринтах анрила - с примерами элементов кода и его описанием. Если интересно.

Если хотите следить за развитием проекта - основной движ происходит тут.
https://vk.com/crystallpunk Тут же можно найти много геймплейных роликов.


А на этом, спасибо вам за внимание, и вот вам немного скриношов текущего игрового процесса напоследок.

Как я делаю свой рогалик на Unreal Engine Gamedev, Игры, Компьютерные игры, Unreal Engine 4, Roguelike, Шутер, Инди игра, Разработка, The Binding of Isaac, Рандом, Уровень, Гифка, Длиннопост
Как я делаю свой рогалик на Unreal Engine Gamedev, Игры, Компьютерные игры, Unreal Engine 4, Roguelike, Шутер, Инди игра, Разработка, The Binding of Isaac, Рандом, Уровень, Гифка, Длиннопост
Как я делаю свой рогалик на Unreal Engine Gamedev, Игры, Компьютерные игры, Unreal Engine 4, Roguelike, Шутер, Инди игра, Разработка, The Binding of Isaac, Рандом, Уровень, Гифка, Длиннопост
Как я делаю свой рогалик на Unreal Engine Gamedev, Игры, Компьютерные игры, Unreal Engine 4, Roguelike, Шутер, Инди игра, Разработка, The Binding of Isaac, Рандом, Уровень, Гифка, Длиннопост
Показать полностью 15
62

Релиз моей первой игры

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

https://aksolotled.itch.io/cursed-island

За эти 4 месяца я собрал просто огромное количество фидбека, спасибо большое всем неравнодушным, и переписал игру почти что с нуля, исправляя как программные, так и геймдизайнерские косяки.

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

Из уникальных изюминок, в игре во первых реализована система игры в двух плоскостях. Половина игры проходит с видом сбоку, и почти неотличима от Террарии (любимая игра детства), разве что карта проработана вручную. В этой области больше упор на паркур и передвижение.
А вторая половина больше похожа на EtG, с видом сверху,  упором на боевку и исследование темных лабиринтов неосвещенных пещер.

Релиз моей первой игры Game maker, Game maker studio 2, Инди, Инди игра, Pixel Art, Gamedev, Видео, Длиннопост
Релиз моей первой игры Game maker, Game maker studio 2, Инди, Инди игра, Pixel Art, Gamedev, Видео, Длиннопост

Цель данной фичи... не была придумана изначально. Она была добавлена из-за бюрократической ошибки в институте, из-за которой тема моего диплома звучала как "Разработка видеоигры в жанре TDS", в то время как я уже сделал почти все в виде платформера. Тему менять было нельзя, а игру - можно. Как итог - ошибка стала некой уникальной фичей, и темные закоулки пещер ощущаются  вполне классно на констрасте с освещенными секциями платформера.

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

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

Релиз моей первой игры Game maker, Game maker studio 2, Инди, Инди игра, Pixel Art, Gamedev, Видео, Длиннопост

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


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


Как итог - версия 1.1 ощущается полностью новой игрой, в которой хватит контента на 3-4 часа. Она так и осталасть довольно хардкордной, но добавлено много вариантов как игрок может эту хардкордность сгладить.

Если вы дочитали до этого момента, значит моя работа реально вызывает хоть какой-то интерес и она была проделана не зря, спасибо вам большое. А если вы еще и пройдете ее, умудритесь найти все секреты, и оставите фидбек, так вообще прекрасно. Ссылка на проект:
https://aksolotled.itch.io/cursed-island

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

Операционные системы

- Привет, ты же в операционных системах разбираешься?

- Ну вроде бы, а что случилось?

- Почти тридцать лет пользуюсь ОС «X-tianstvo 88». Постоянно лагает, теряется связь с эгрегорами, жутко вирусится, драйвера барахлят и система требует лицензию на программное обеспечение.

- Не знаю, не знаю. Может дело в версии, она ж у тебя древняя как мамонт. Лично у меня «X-tianstvo 98» и нормально работает. Кстати, ты юзаешь местную локализацию или «Catol Edition»?

- Родители говорят, что ставили местную, а там как знать.

- Наверное, у тебя работает совковая версия, «X-tianstvo 88», как известно, было создано на основе «Ateism-SSSR», а там куча багов. Это уже после 1992 года добавили кучу годных патчей.

- И что же мне делать?

- Предлагаю обновить эгрегоры, установить антивирус «Blagoslovlenie ANTI-MALWARE», потому что ты мог заработать троян типа «Devil Strorm». Ты ж, наверное, крутил спиннер без защиты в режиме реального времени и нарушал лицензионные условия, закачивая «greh.exe»?

- Угу.

- Вот тебе и результат. Там небось куча дряни в операциоке. Лучше сходи в сервисный центр, пройди диагностику и пусть тебе «Prichastie defrag» сделают. Главное, помни, если айтишник будет проводить очищение кэша при помощи «Pokayanie tools», будь осторожен, операционка может нафиг слететь.

- И что тогда?

- Подбирать другую ось. Вот максимально совместим с твоей - ОС «Muslimux»: интерфейс похож и разработчики почти одни и те же. Удобно, просто, мануал хороший.

- Слышал у «Muslimux» нет совместимости с харамным оборудованием.

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

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

- А что ты знаешь про «MacBuddhism»?

- Неплохая операционка, но никто не знает, как она работает, толковых мануалов нет, сервисные центры далеко, а техподдержка постоянно молчит. Еще нужно проводить чистку, запускать файл «meditation.app», а он не на любом железе идет. В общем, много мороки.

- Согласен. Плюс, разработчиков нет. Был один, но давно эмигрировал в нирвану.

- Недавно на сайте юзеров читал про «Judaism kosher». Элитная и замороченная ось, при этом отличная поддержка эгрегоров. Жаль, для нее нужна заводская сборка машины от разработчика «Yahve Corporation», на других ПК идет очень туго. Может конфликтовать с некоторыми операционками. У нее, кстати, как и в ОС «Muslimux» недопустима термопаста на основе сала. Главное, не попутать её с ОС «Hinduism», это вообще другая система. Там тысяча сборок, хрен поймешь куда чего, три миллиона программ, и каждая отдельная – аналог «Shiva.app». В общем, сложно.

- Жаль поддержку ОС «Zorro-astro» прекратили. Годная вещь была до всех этих новомодных, не выдержала конкуренции и только парочка гиков и развивает. Эх.

- Не горюй, ОС «X-tianstvo» - отличная система, проверенная веками, главное следовать лицензии и почаще ходить в сервисный центр.

- Добрый вечер. Извините, что вмешиваюсь в разговор, слышал, вы ищете подходящую ОС. Не сочтите за наглость…у вас есть минутка, чтобы поговорить об операционной системе?

- Да, конечно. А вы кто?

- Я сотрудник техподдержки в компании «Svideteli Iehova» и хочу предложить установить наше программное обеспечение. Поверьте, вы будете приятно удивлены качеством продукта. Наша ОС устанавливается одним кликом, нужно всего лишь разархивировать файл «sekta.exe» и загрузить его на ПК, предварительно заплатив небольшой взнос. Вот, возьмите рекламный буклет, там подробно описана наша продукция.

- Спасибо, это очень интересно…

- Вася, ты что! Вася! Это же вирусные маркетологи и известные кидалы. Они почти кибертеррористы, у них нет официальной лицензии на территории нашей страны. Ты разве не знаешь, что «Svideteli Iehova» распространяют вредоносное программное обеспечение, которое шифрует файлы в системе и блокирует браузеры?! Их ОС – это вирус-вымогатель типа ransomware! Поверь, твоя лагающая «X-tianstvo-88» без обновлений и нормальной работы антивируса, покажется сказкой по сравнению с ОС «Sekta».

- Ты, прав. Пойдем отсюда.

- Эй, мы же не договорили!

- С Гаагским трибуналом договорите!


***

- Петя, а ты уверен, что Коля точно знает, какая операционка тащит?

- Конечно! Ты же помнишь, наш одноклассник Колян был лучшим на уроках информатики.

- Коля, привет. У меня проблемы с «X-tianstvo 88», может поменять на другую? Что посоветуешь?

- О! У меня стоит «Atheism: scientific edition». Тянет на любом железе, если винчестер не одеревенел. Я открыл для себя сплошные плюсы: вирусы кризиса веры не страшны и система сама регулярно обновляется.

- Я слышал про эту ересь, но она к процессорным мощностям требовательна, к тому же нет вообще никаких сервисных центров.

- Это всё мелочи. Один раз поставил и живешь без забот. «Atheism: scientific edition» не привязан к брендам, а главное – никаких лутбоксов и платных вымогательских схем. Для любителей агрессивных осей, рекомендую более упоротую версию «Atheism: UnholyWars edition». У нее стоит дополнительная защита, не поддерживается dual boot, всегда есть альтернатива для фич других ОС. И даже доступна техподдержка.

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

- Вася дело говорит. «Atheism: scientific edition» хоть и имеет удобный упорядоченный интерфейс, плохо поддерживает графику. Видеокарта довольно слабая, а картинка на мониторе теряет свою яркость.

- Ага, и не все игры идут. Только симуляторы и всякие там «Cosmosims». А вот «Crusader Kings» хрен запустишь.

- Вот вечно вы установите его криво, а потом критика. Я по Нилу Деграси ставил. Норм тянет.

- К кому ты меня привел, Петя? Он же совершенно не шарит в операционных системах.

- Согласен. Коля уже не тот, что раньше.

- Пойдем от этого нуба.

- Да, лучше сходим в сервисный центр!


P.S. Данный рассказ не имел намерения оскорбить создателей Windows, в частности Билла Гейтса. А также чувства Линуса Торвальдса, разработчика ОС Linux и конечно, программистов, которые изобрели MacOS. Пост вообще никого не хотел оскорбить.


(с) Ведьмы шутят

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

Проклятый остров

В результате дипломной работы, мною был создана инди-игра, проект-адвенчура на пару часиков

Бесплатно потрогать проект можно тут:
https://aksolotled.itch.io/cursed-island

Проклятый остров Gamedev, Инди игра, Платформер, Game maker studio 2, Pixel Art
Проклятый остров Gamedev, Инди игра, Платформер, Game maker studio 2, Pixel Art
Проклятый остров Gamedev, Инди игра, Платформер, Game maker studio 2, Pixel Art

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

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

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

Необычный гардероб

Необычный гардероб The Little Trashmaid, S0s2, Комиксы, Русалка, Загрязнение океана, Длиннопост
Необычный гардероб The Little Trashmaid, S0s2, Комиксы, Русалка, Загрязнение океана, Длиннопост
Необычный гардероб The Little Trashmaid, S0s2, Комиксы, Русалка, Загрязнение океана, Длиннопост
Необычный гардероб The Little Trashmaid, S0s2, Комиксы, Русалка, Загрязнение океана, Длиннопост
Необычный гардероб The Little Trashmaid, S0s2, Комиксы, Русалка, Загрязнение океана, Длиннопост
Необычный гардероб The Little Trashmaid, S0s2, Комиксы, Русалка, Загрязнение океана, Длиннопост
Необычный гардероб The Little Trashmaid, S0s2, Комиксы, Русалка, Загрязнение океана, Длиннопост
Необычный гардероб The Little Trashmaid, S0s2, Комиксы, Русалка, Загрязнение океана, Длиннопост
Показать полностью 7
30

Художник, опасный своим умом

Не так давно, к нам на работу пришла устраиваться Дама с большой буквы. Фирма занимается вышивкой, и все дизайнеры перед началом работы за ПК, как минимум месяц знакомятся с процессом производства, и особенностями работы конкретно на этой фирме. Дама оказалась КРАЙНЕ возмущена сложившейся ситуацией, возмущенно бегала на цеху, оря на всех сотрудников без разбору. После того, как охранники выпроводили ее подальше, через пару дней к нам пришла полиция с вот таким заявлением, заставив весь коллектив истерически кататься по полу.

Художник, опасный своим умом Абсурдное поведение, Абсурд, Работа, Вакансии, Длиннопост, Негатив
Художник, опасный своим умом Абсурдное поведение, Абсурд, Работа, Вакансии, Длиннопост, Негатив
Показать полностью 2
77

Дым и порох

Неофициальное дополнение для Dungeon and Dragons 5e, добавляющее новое огнестрельное оружие и механики, связанные с ним.

[pdf]

Дым и порох Dungeons & Dragons, Настольные ролевые игры, Оружие, Огнестрельное оружие, Длиннопост
Дым и порох Dungeons & Dragons, Настольные ролевые игры, Оружие, Огнестрельное оружие, Длиннопост

Истоник: https://vk.com/worldwanders

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