JGD | Розробка ігор
422 subscribers
121 photos
27 videos
2 files
69 links
Роблю ігри та пишу про це

Для зв’язку: @stelf

Instagram: http://instagram.com/a.vasylevskyi

Facebook: https://m.facebook.com/anton.vasilevsky.7

TikTok: https://www.tiktok.com/@a.vasylevskyi
Download Telegram
Ищу в команду начинающего геймдизайнера с опытом или без, желающего поработать над большим и сложным проектом.

Научим и поделимся знаниями.

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

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

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

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

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

Правда уж если очень очень хотите делать игры, то ладно.

Пишите @stelf
👍2😐2
Media is too big
VIEW IN TELEGRAM
Сразу две вещи покажу. Первое это в игре наконец-то появился режим от 3-го лица. Ну а второе это боль и страдание последних двух недель, иными словами строительство базы, которое находится на очень ранней стадии, но уже выглядит впечетляюще.

А вообще у нас еще появился крафт, новая механика воскрешения, сейф (аля сундук эндера из MC), восполнение емкостей в инвентаре и много чего другого, может тоже покажу как-нибудь.
4🔥2
This media is not supported in your browser
VIEW IN TELEGRAM
Небольшой, но полезный шейдер, который я собрал в Shader Graph. Позволяет отрисовать прямоугольник с одинаковым размером границ независимо от размера.

Ниже скину граф, если захотите себе в проект такой же.
👍71
ResizableRectangleShaderGraph.png
404.3 KB
Граф, можно настраивать размер и цвет границ. Прямоугольник рисуется процедурно, поэтому текстура не нужна.
This media is not supported in your browser
VIEW IN TELEGRAM
Пригодился GPU Instancing для рендера десятков тысяч схожих объектов в одном кадре. GPU Instancing позволяет отправлять параметры напрямую видеокарте и не использует компоненты Unity.

Скрипт создаёт матрицу позиции и поворота объектов, а Graphics.DrawMeshInstanced принимая мэш и материал рисует объекты. Максимальный предел 1023 объекта за один вызов.

На моей сцене стабильный FPS начинает падать примерно после 70 000 объектов. На других сценах при меньшем количестве освещения и постэффектов можно спокойно рисовать до миллиона объектов.

Сейчас разбираюсь почему наличие Point Light в кадре умножает количество прорисовок примерно в 5 раз даже при отсутсвии вблизи объектов, которые попадают в GPU Instacing.

Ссылка на скрипт, который делает магию.
👍8
Media is too big
VIEW IN TELEGRAM
Про коллизию и дальность прорисовки инстанс рендера. Для прорисовки каждый объект попадает в чанк небольшого размера. В каждом чанке есть список мэшей, которые будут отрисованы с одинаковым материалом. Помимо обычного материала, есть прозрачный, который используется когда чанк сменяется с видимого на невидимый.

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

Коллизия реализована с применением паттерна ObjectPool, хотя мне нравится перевод бассейн объектов. Для большей части объектов необходим коллайдер примитивной формы, мы заранее спавним тысячи GameObject’ов с разным типом компонентов коллизии.

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

Когда объект пропадает из зоны видимости мы сбрасываем его параметры и отключаем. Таким образом мы практически лишаемся необходимости лишний раз вызывать Instantiate и Destroy методы, которые как многие знают выделяют много памяти и работают медленно.

Сейчас разбираюсь почему AmbientOcclusion постэффект не накладывается на прозрачные материалы, его вызов происходит сразу после отрисовки непрозрачных объектов. На дальней дистанции этот артефакт не будет сильно заметен, особенно если прятать его за туман к примеру, но хотелось бы более элегантного решения. Возможно наш технический художник поможет исправить этот недостаток.
6❤‍🔥2
Большая часть кода с пояснениями. Здесь основные моменты по разделению на чанки, рендеру и пула коллизии. Весь я не отправлю, потому что он у вас не соберется без точной копии архитектуры. В текстовом виде тоже не отправлю, если хотите можно считать текст с картинки, это не сложно делается, ну и взять какие-то идеи или части кода для себя тоже не сложно переписав текст. Часть кода уже была в позапрошлом посте.
👍10🔥1
Вам не душно от последних постов?
❤‍🔥14
Media is too big
VIEW IN TELEGRAM
Сделал такой вот бублик для выбора построек. Его часто используют как способ выбора предметов/оружия в играх.

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

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

Ну а моим навыкам пиксель-арта и художественному вкусу завидовать не приходится, но я еще учусь!

Поделюсь кодом этой прелести - Selection Wheel Script. Настоящий скарб, если хотите. Может секономить пару дней прототипирования.
👍81
Media is too big
VIEW IN TELEGRAM
🔥8
Media is too big
VIEW IN TELEGRAM
А как вам такой шейдер?
🤩72
Media is too big
VIEW IN TELEGRAM
Сделал ещё такой вариант
🔥4
This media is not supported in your browser
VIEW IN TELEGRAM
Разрушение построек
👍41
ResizableCursorShader.unitypackage
31.8 KB
Поделюсь исходником материала с шейдером. Внутри текстура аля Perlin Noise, вместо которой можно использовать другие вариации.
👍4