Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Я хочу получать рассылки с лучшими постами за неделю
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
Создавая аккаунт, я соглашаюсь с правилами Пикабу и даю согласие на обработку персональных данных.
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam
Пикабу Игры +1000 бесплатных онлайн игр Новый хит для любителей игры жанра Соедини 3! Кот Ученый уже прячет предметы по таинственному лесу, чтобы вы получили удовольствие от поиска вещей и заработали как можно больше изумрудов. Котик рад новым гостям!

Северное слияние - тайна леса

Казуальные, Приключения, Логическая

Играть

Топ прошлой недели

  • AlexKud AlexKud 38 постов
  • Animalrescueed Animalrescueed 36 постов
  • Oskanov Oskanov 7 постов
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

Нажимая кнопку «Подписаться на рассылку», я соглашаюсь с Правилами Пикабу и даю согласие на обработку персональных данных.

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Помощь Кодекс Пикабу Команда Пикабу Моб. приложение
Правила соцсети О рекомендациях О компании
Промокоды Биг Гик Промокоды Lamoda Промокоды МВидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
0 просмотренных постов скрыто
27
CyberCook
1 месяц назад
Лига Разработчиков Видеоигр

Раздача процедурного генератора мира Gaia for Unity 6 на asset store Unity⁠⁠

Раздача процедурного генератора мира Gaia for Unity 6 на asset store Unity Разработка, Инди игра, Gamedev, Инди, Раздача, Unity, Процедурная генерация, Мир, 3D моделирование, Местность, Халява, Видео, YouTube, Длиннопост
Раздача процедурного генератора мира Gaia for Unity 6 на asset store Unity Разработка, Инди игра, Gamedev, Инди, Раздача, Unity, Процедурная генерация, Мир, 3D моделирование, Местность, Халява, Видео, YouTube, Длиннопост

ЗАБРАТЬ

Промо код : PROCEDURALWORLDS2025

Gaia 2023:

Ускоренная штамповка и создание на GPU

  • Поддержка многорельефных сред для более крупных сред

  • Настройка, управляемая мастером, оптимизированная для целевой платформы

  • Модульная конструкция, используйте столько, сколько хотите

  • Водная система Gaia с шейдерами воды и подводными эффектами

  • Стандартный подход Unity для максимальной совместимости с другими инструментами

  • Интеграция контроллера Unity от первого и третьего лица (с сенсорным управлением)

  • Мощная система маскирования: контролируйте, где отображаются активы, по высоте, наклону и т. д.

  • Используйте наш контент или принесите свой собственный, чтобы настроить свой внешний вид с помощью нашей мощной и расширяемой системы биомов

  • Создайте свой мир, смешивая и сопоставляя штампы с предпросмотром в реальном времени

  • Включает шейдеры сеток и растительности с поддержкой погоды

  • World Designer — полностью процедурный генератор мира

  • Интеграция системы HDRP Water Unity

  • Преобразование сетки — рельеф в сетку

  • Встроенная поддержка URP и HDRP

  • Освещение, постэффекты, звуковые эффекты

Связанные ключевые слова

  • world здание карта высот природа Процедурный Ландшафт Skybox Gaia Трава

  • Вода Деревья дерево Окружающая среда Рельеф Здание Дизайн уровня

ЗАБРАТЬ

Промо код : PROCEDURALWORLDS2025

Показать полностью 2
Разработка Инди игра Gamedev Инди Раздача Unity Процедурная генерация Мир 3D моделирование Местность Халява Видео YouTube Длиннопост
1
16
androidKot
androidKot
8 месяцев назад
Лига программистов

Процедурная анимация фона в стиле Матрицы⁠⁠

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

Сделал для своего приложения такую красоту, внизу код на Kotlin (Android+Compose), пользуйтесь кто желает (нейросетью можете перевести на свой язык под свою платформу). Сразу после списка символов идут переменные управления потоками, вынес их вместе, чтобы регулировать скорость, частоту и прочее.



import androidx.compose.foundation.background

import androidx.compose.foundation.layout.*

import androidx.compose.material3.Text

import androidx.compose.runtime.*

import androidx.compose.ui.Modifier

import androidx.compose.ui.graphics.Color

import androidx.compose.ui.platform.LocalConfiguration

import androidx.compose.ui.platform.LocalDensity

import androidx.compose.ui.unit.dp

import androidx.compose.ui.unit.sp

import kotlinx.coroutines.delay

import kotlinx.coroutines.isActive

import kotlin.random.Random

object MatrixAnimationSettings {

val symbols = listOf(

'ア', 'ィ', 'イ', 'ゥ', 'ウ', 'ェ', 'エ', 'ォ', 'オ', 'カ', 'ガ', 'キ', 'ギ', 'ク', 'グ', 'ケ', 'ゲ', 'コ', 'ゴ',

'サ', 'ザ', 'シ', 'ジ', 'ス', 'ズ', 'セ', 'ゼ', 'ソ', 'ゾ', 'タ', 'ダ', 'チ', 'ヂ', 'ッ', 'ツ', 'ヅ', 'テ', 'デ',

'ト', 'ド', 'ナ', 'ニ', 'ヌ', 'ネ', 'ノ', 'ハ', 'バ', 'パ', 'ヒ', 'ビ', 'ピ', 'フ', 'ブ', 'プ', 'ヘ', 'ベ', 'ペ',

'ホ', 'ボ', 'ポ', 'マ', 'ミ', 'ム', 'メ', 'モ', 'ャ', 'ヤ', 'ュ', 'ユ', 'ョ', 'ヨ', 'ラ', 'リ', 'ル', 'レ', 'ロ',

'ヮ', 'ワ', 'ヰ', 'ヱ', 'ヲ', 'ン', 'ヴ', 'ヵ', 'ヶ', 'ヷ', 'ヸ', 'ヹ', 'ヺ', '・', 'ー', 'ヽ', 'ヾ'

)

const val rows = 15 // количество дорожек с символами

const val maxVisibleSymbols = 70 // Максимальное количество видимых символов

const val symbolDelay = 200L // Задержка между появлениями символов

const val fadeStep = 0.1f // Шаг уменьшения альфы

const val alphaStart = 1f // Начальное значение альфы

const val maxYOffset = 100 // Максимальное вертикальное смещение

const val maxXOffset = 10 // Максимальное горизонтальное смещение

const val maxDelay = 10000L // Макс задержка

const val fontSize = 12 // Размер шрифта

var symbolPadding = 1.dp // Вертикальный отступ между символами

}

@Composable

fun MatrixBackground() {

Box(

modifier = Modifier.fillMaxSize().background(Color.Black)

) {

for (i in 0 until MatrixAnimationSettings.rows) {

MatrixColumn(MatrixAnimationSettings.symbols, i, MatrixAnimationSettings.fontSize)

}

}

}

@Composable

fun MatrixColumn(symbols: List<Char>, columnIndex: Int, fontSize: Int) {

var symbolList by remember { mutableStateOf(listOf<MatrixSymbol>()) }

var animationRunning by remember { mutableStateOf(true) }

val screenWidth = LocalConfiguration.current.screenWidthDp

val screenWidthPx = with(LocalDensity.current) { screenWidth.toInt() }

val randomXOffset = (Random.nextInt(1, 21) * 20)

val randomStartDelay = Random.nextLong(100L, MatrixAnimationSettings.maxDelay)

LaunchedEffect(Unit) {

delay(randomStartDelay)

while (animationRunning && isActive) {

delay(MatrixAnimationSettings.symbolDelay)

val newSymbol = MatrixSymbol(

symbol = symbols.random(),

index = Random.nextInt(0, 1000),

alpha = MatrixAnimationSettings.alphaStart,

yOffset = symbolList.size * 20,

xOffset = randomXOffset

)

symbolList = symbolList + newSymbol

symbolList = symbolList.mapIndexed { index, symbol ->

symbol.copy(alpha = symbol.alpha - MatrixAnimationSettings.fadeStep)

}

if (symbolList.size > MatrixAnimationSettings.maxVisibleSymbols) {

symbolList = symbolList.drop(1)

}

if (symbolList.all { it.alpha <= 0f }) {

animationRunning = false

symbolList = emptyList()

}

}

}

symbolList.forEach { symbol ->

Text(

text = symbol.symbol.toString(),

color = Color.Green.copy(alpha = symbol.alpha),

fontSize = fontSize.sp,

modifier = Modifier

.padding(MatrixAnimationSettings.symbolPadding)

.offset(x = symbol.xOffset.dp, y = symbol.yOffset.dp)

)

}

}

data class MatrixSymbol(

val symbol: Char,

val index: Int,

val alpha: Float,

val yOffset: Int,

val xOffset: Int

)

Показать полностью
[моё] Программирование Код Процедурная генерация Kotlin Видео Вертикальное видео Длиннопост Матрица (фильм)
0
33
CyberCook
11 месяцев назад
Игровые скидки и раздачи

Раздача игры пиксельного космического экшна Terrene на Itch.io до 1.10.2024 10:00 утра МСК⁠⁠

UPD:

Разраб повторно раздаёт до 28.04.25

Раздача до 1.10.2024 10:00 МСК

Разраб. продлил раздачу до вторника .

Раздача игры пиксельного космического экшна Terrene на Itch.io до   1.10.2024 10:00 утра МСК Инди игра, Разработка, Gamedev, Раздача, Инди, Pixel Art, Ретро, Научная фантастика, Космос, Приключения, Процедурная генерация, Квест, Шутер, Виртуальный питомец, Видео, YouTube, Длиннопост, Itchio, Не Steam, Короткие видео
Раздача игры пиксельного космического экшна Terrene на Itch.io до   1.10.2024 10:00 утра МСК Инди игра, Разработка, Gamedev, Раздача, Инди, Pixel Art, Ретро, Научная фантастика, Космос, Приключения, Процедурная генерация, Квест, Шутер, Виртуальный питомец, Видео, YouTube, Длиннопост, Itchio, Не Steam, Короткие видео
Раздача игры пиксельного космического экшна Terrene на Itch.io до   1.10.2024 10:00 утра МСК Инди игра, Разработка, Gamedev, Раздача, Инди, Pixel Art, Ретро, Научная фантастика, Космос, Приключения, Процедурная генерация, Квест, Шутер, Виртуальный питомец, Видео, YouTube, Длиннопост, Itchio, Не Steam, Короткие видео

ЗАБРАТЬ

Terrene — это пиксельная космическая приключенческая игра, в которой вы исследуете процедурно сгенерированные планеты, сражаетесь с роями врагов и создаете уникальное оружие и инструменты. В игре представлено множество игровых механик, включая исследование, создание, добычу, сюжет, кооперативную игру на диване(Couch co-op), полет на корабле и многое другое.

В Terrene вы будете:

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

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

  • Создавать новое оружие, инструменты и другие предметы, которые помогут вам в вашем путешествии.

  • Добывать ресурсы, чтобы улучшить свой корабль и персонажа игрока.

  • Изучать историю вселенной с помощью различных элементов истории.

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

  • Выполнять процедурные миссии за добычу.

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

  • Посадить свой собственный сад для зарабатывания денег.

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

  • Отправляйтесь на своем корабле с орбитальной космической станции на поверхность планет, а затем отправляйтесь пешком.

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

  • Охотьтесь и сражайтесь с большими инопланетянами и боссами, чтобы получить мощные награды.

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

Дополнительная информация

  • Обновлено 1 день назад

  • Опубликовано 10 мая 2020 г.

  • Статус Выпущен

  • Платформы Windows

  • Дата выпуска 03 мая 2020 г.

  • Рейтинг 4,1 из 5 звезд

  • Автор Albatross Wirehead

  • Жанр Экшен, Выживание

  • Создано с помощью GameMaker

  • Теги 2D, Приключенческий экшен, Пиксель-арт, Процедурная генерация, Ретро, Научная фантастика

  • Средняя сессия Несколько часов

  • Языки Английский

  • Ввод Клавиатура, Мышь, Контроллер Xbox

  • Ссылки Steam

  • ЗАБРАТЬ

Показать полностью 2
Инди игра Разработка Gamedev Раздача Инди Pixel Art Ретро Научная фантастика Космос Приключения Процедурная генерация Квест Шутер Виртуальный питомец Видео YouTube Длиннопост Itchio Не Steam Короткие видео
3
34
CyberCook
11 месяцев назад
Игровые скидки и раздачи

Раздача игры Death Rings of Jupiter на itch.io игра также выпущена на Steam⁠⁠

Death Rings of Jupiter раздача до утра воскресения

Раздача игры Death Rings of Jupiter на itch.io  игра также выпущена на Steam Инди игра, Инди, Gamedev, Разработка, Раздача, Экшн, Ролевые игры, Ретро, Roguelike, Космос, Невесомость, Процедурная генерация, Itchio, Не Steam, Pixel Art, Видео, YouTube, Длиннопост
Раздача игры Death Rings of Jupiter на itch.io  игра также выпущена на Steam Инди игра, Инди, Gamedev, Разработка, Раздача, Экшн, Ролевые игры, Ретро, Roguelike, Космос, Невесомость, Процедурная генерация, Itchio, Не Steam, Pixel Art, Видео, YouTube, Длиннопост

ЗАБРАТЬ

Death Rings of Jupiter — это 2D ретро-шутер с элементами пуль-ада, действие которого происходит в густых астероидных полях, составляющих кольца Юпитера.

В игре оригинальный игровой процесс, сочетающий классические гравитационные игры и платформеры.

Где-то в кольцах Юпитера спрятано сокровище, которое охраняется ордой инопланетных монстров.

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

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

Ни один человек, побывавший в кольцах Юпитера, не возвращался.

Теперь доступна на Itch, портативной версии игры, пропатченной до последней версии 1.07. Игра была первоначально выпущена в Steam в декабре 2017 года. Эта версия продается по сниженной цене в 1 доллар, так как в ней нет достижений Steam.

Особенности игры

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

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

  • Ретро-пиксельная графика, включающая 200 странных и красочных инопланетян в пикселях, которые превращаются в пиксели, когда умирают. Ощущение классических игр, но с плавным управлением и частотой кадров 60 кадров в секунду.

  • Чувствуйте себя как дома в пустом космосе с большим научно-фантастическим саундтреком синтезатора и барабана от VI-RES. И зловещие заголовки и экраны побед от иллюстратора Джойуса Колли.

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

  • Вдохновлено классическими играми, такими как Gravity Force, Exile, Soldat и Abuse.

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

  • Встроенный автоматический огонь, не требуется хаков памяти!

  • Найдите больше музыки Vi-Res на discocinematic.bandcamp.com

Дополнительная информация

  • Опубликовано 09 июля 2019 г.

  • Статус Выпущено

  • Платформы Windows

  • Рейтинг 3,9 из 5 звезд

  • Автор Albatross Wirehead

  • Жанр Экшн

  • Теги Процедурная генерация, Ретро, Roguelite, Космос, Невесомость, Процедурная генерация, Ретро, Roguelite, Космос, Невесомость

  • Ссылки Steam

ЗАБРАТЬ

Показать полностью 2
Инди игра Инди Gamedev Разработка Раздача Экшн Ролевые игры Ретро Roguelike Космос Невесомость Процедурная генерация Itchio Не Steam Pixel Art Видео YouTube Длиннопост
1
DELETED
1 год назад

КТО ХОЧЕТ ПОСТРОИТЬ ТУТ ДОМИК???⁠⁠

Версия 1.20.51.01, скачана с трешбокса. Сид: –8233229637757359021

КТО ХОЧЕТ ПОСТРОИТЬ ТУТ ДОМИК??? Вопрос, Minecraft, Постройки, Компьютерные игры, Мобильные игры, Сиды, Процедурная генерация

Под САМУРАЙСКИЙ ЗАМОК самое то)

КТО ХОЧЕТ ПОСТРОИТЬ ТУТ ДОМИК??? Вопрос, Minecraft, Постройки, Компьютерные игры, Мобильные игры, Сиды, Процедурная генерация

HD координаты)

Название сида по спауну: «Тайга близ Океана».

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

Показать полностью 1
[моё] Вопрос Minecraft Постройки Компьютерные игры Мобильные игры Сиды Процедурная генерация
2
26
CyberCook
1 год назад
Игровые скидки и раздачи

Раздача бета-версии пиксельной песочницы Grain на itch.io⁠⁠

Раздача бета-версии пиксельной песочницы Grain на itch.io Pixel Art, Игры, Инди игра, Gamedev, Раздача, Разработка, Itchio, Не Steam, Песочница, Процедурная генерация, Крафт
Раздача бета-версии пиксельной песочницы Grain на itch.io Pixel Art, Игры, Инди игра, Gamedev, Раздача, Разработка, Itchio, Не Steam, Песочница, Процедурная генерация, Крафт

ЗАБРАТЬ

Grain — это игра на выживание в песочнице, основанная на физике, которая в настоящее время находится в стадии бета-тестирования.

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

Больше информации

Обновлено 3 дня назад

Опубликовано 22 августа 2021 г.

Статус В разработке

Автор Pixel Fist Games

Жанр Выживание

Теги 2D, Атмосфера, Крафтинг, Фермерство, Открытый мир, Пиксельное искусство, Процедурная генерация, Песочница, Для одного игрока

Средняя сессия Несколько часов

Ввод Клавиатура, Мышь

ЗАБРАТЬ

Показать полностью 1
Pixel Art Игры Инди игра Gamedev Раздача Разработка Itchio Не Steam Песочница Процедурная генерация Крафт
3
4
AlexWiserax
AlexWiserax
1 год назад

Идеальная симуляция или как хаос делает мир интересным⁠⁠

Введение

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

Ещё Марк Аврелий, римский император и философ подмечал:

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

Современные симуляции часто стремятся к идеалу, но теряют важный аспект реальности — её несовершенства.

Природа протекающих процессов

Но что такое несовершенства, как и природные процессы, которые они нарушают, по самой сути?

Стивен Вольфрам, автор небезызвестного Wolfram Alpha, известный своими работами в области вычислительных систем, однажды сказал: "All the wonders of our universe can in effect be captured by simple rules," что можно перевести как "Все чудеса нашего мира можно описать простыми правилами."

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

Для упрощения понимания, давайте рассмотрим такой процесс, как рост папоротника.

Основные элементы L-системы:

  1. Аксиома: Начальная строка, с которой начинается процесс.

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

Пример L-системы для папоротника:

  • Аксиома: X

  • Правила:

    • X → F-[[X]+X]+F[+FX]-X

    • F → FF

Каждый символ "X" заменяется более сложным узором, а "F" заменяется на "FF", что удлиняет линии.

Процесс:

  1. Начнем с аксиомы "X".

  2. Применим правила преобразования.

  3. На следующем шаге заменим каждый "X" и "F" согласно правилам.

  4. Повторяем процесс несколько раз.

Визуализация: В результате этих итераций получается сложный фрактальный узор, похожий на листья папоротника. Компьютерные алгоритмы, такие как turtle в Python, могут визуализировать этот процесс.

Пример на Python:

import turtle

def draw_fern(iterations, axiom, rules, angle, length):

stack = []

for i in range(iterations):

next_axiom = ''

for char in axiom:

next_axiom += rules.get(char, char)

axiom = next_axiom

for char in axiom:

if char == 'F':

turtle.forward(length)

elif char == '+':

turtle.right(angle)

elif char == '-':

turtle.left(angle)

elif char == '[':

stack.append((turtle.position(), turtle.heading()))

elif char == ']':

position, heading = stack.pop()

turtle.penup()

turtle.goto(position)

turtle.setheading(heading)

turtle.pendown()

# Параметры папоротника

iterations = 5

axiom = 'X'

rules = {'X': 'F-[[X]+X]+F[+FX]-X', 'F': 'FF'}

angle = 25

length = 5

turtle.speed(0)

draw_fern(iterations, axiom, rules, angle, length)

turtle.done()

Идеальная симуляция или как хаос делает мир интересным Виртуальная реальность, Симуляция, Процедурная генерация, Игры, Компьютерные игры, Искусственный интеллект, MMORPG, RPG, Длиннопост

Результат визуализации

Идеальная симуляция или как хаос делает мир интересным Виртуальная реальность, Симуляция, Процедурная генерация, Игры, Компьютерные игры, Искусственный интеллект, MMORPG, RPG, Длиннопост

Цветные 3д варианты визуализаций похожи на реальные растения

Хаос и порядок

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

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

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

Порядок встречает хаос и порождает вариации

Проблема симуляций

Современные симуляции часто стремятся к идеалу, что делает их неестественными и предсказуемыми. Процедурная генерация контента и физические движки как Unity или Unreal Engine позволяют создать красивые миры, но они часто лишены той случайности, которая делает наш мир таким интересным. Реальность симуляций слишком гладкая и предсказуемая, и это становится проблемой.

Идеальная симуляция или как хаос делает мир интересным Виртуальная реальность, Симуляция, Процедурная генерация, Игры, Компьютерные игры, Искусственный интеллект, MMORPG, RPG, Длиннопост

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

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

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

Мой интерес к продвинутым симуляциям

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

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

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

Атмосферные явления:

  • Моделирование ветра: Ветер влияет на рост растений, движение объектов и климат. В современных играх, таких как "The Legend of Zelda: Breath of the Wild", ветер влияет на движение листьев, травы и даже на полет стрел.

  • Осадки и климат: Дождь, снег и другие погодные условия должны влиять на окружающую среду. В игре "Red Dead Redemption 2" погодные условия динамически меняются, влияя на поведение персонажей и животных.

Гидрологические процессы:

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

  • Текущие и стоячие воды: Моделирование течений рек и озер, а также испарения и осадков.

Биологические взаимодействия:

  • Экосистемы: Взаимодействие различных видов растений и животных, конкуренция за ресурсы.

  • Пищевые цепи и хищничество: Как хищники и жертвы влияют на популяции друг друга. В игре S.T.A.L.K.E.R. используется система искусственного интеллекта A-Life, которая делает мир более динамичным и непредсказуемым. Например, мутировавшие собаки могут сбиваться в стаи и нападать на банды бандитов, что иногда приводит к тому, что игрок приходит в совершенно пустую деревню, потому что всех бандитов уже убили. Это создает уникальные сценарии, где экосистема и различные фракции взаимодействуют без вмешательства игрока, добавляя реализма и динамичности в игровой процесс

Физические взаимодействия:

  • Эрозия и отложения: Влияние ветра и воды на изменение ландшафта со временем.

  • Тепловое расширение и сжатие: Влияние температуры на материалы и их свойства. В игре "Frostpunk" игрокам приходится учитывать экстремальные погодные условия и их влияние на город и жителей.

Идеальная симуляция или как хаос делает мир интересным Виртуальная реальность, Симуляция, Процедурная генерация, Игры, Компьютерные игры, Искусственный интеллект, MMORPG, RPG, Длиннопост

Комплексный подход к разработке симуляций делает миры более реалистичными и живыми

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

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

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

Заключение

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

Ещё 60 лет назад компьютеры, такие как IBM System/360, занимали целые комнаты и могли выполнять только простейшие вычисления. Сегодня наши смартфоны обладают мощностью, о которой тогда можно было только мечтать. Что уж там, мой первый компьютер 15 лет назад имел 256 мегабайт оперативки, а сейчас на моем самсунге s23 ultra умещается 12 гб, что в 48 раз больше и в тысячи раз больше чем на старых ЭВМ. Прорывы в области искусственного интеллекта, машинного обучения и вычислительных мощностей за последние годы поразительны. Технологии, которые позволяют создавать реалистичные 3D-игры даже на мобильных устройствах, сегодня доступны каждому.

Идеальная симуляция или как хаос делает мир интересным Виртуальная реальность, Симуляция, Процедурная генерация, Игры, Компьютерные игры, Искусственный интеллект, MMORPG, RPG, Длиннопост

IBM System 360

Прогресс технологий идет такими темпами, что то, что кажется невозможным сегодня, становится реальностью уже завтра. Первые транзисторы, изобретенные в 1947 году, были размером с человеческую руку, а сегодня миллиарды транзисторов помещаются на одном чипе. Например, NVIDIA недавно выпустила новый чип для машинного обучения Blackwell, который содержит 208 миллиарда транзисторов на одном чипе. Я пытался графически изобразить разницу между 208 000 000 000 и цифрой 1, но потерпел сокрушительное поражение, поэтому полагаюсь на ваше воображение.

Идеальная симуляция или как хаос делает мир интересным Виртуальная реальность, Симуляция, Процедурная генерация, Игры, Компьютерные игры, Искусственный интеллект, MMORPG, RPG, Длиннопост

Дженсен "Куртка" держит в руках мощности целого завода

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

Понравилась статья?
Подпишись на меня - https://t.me/vrmmogame

Показать полностью 6
[моё] Виртуальная реальность Симуляция Процедурная генерация Игры Компьютерные игры Искусственный интеллект MMORPG RPG Длиннопост
0
6
SucArch
SucArch
1 год назад

Делаем процедурный панельный дом в Blender⁠⁠

Всем привет!

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

Начнём

Т.к. мои познания в Blender находятся на низком уровне, то, для основы, использовал данный ролик. Для начала импортировал модели, которые делал давно в SketchUp:

Делаем процедурный панельный дом в Blender Blender, Процедурная генерация, Панельный дом, 3D моделирование, Длиннопост

Модели этажей

И на каждой модели необходимо точку Origin (оранжева точка) установить на одном и том же уровне и внизу, если ширина одинаковая, то можно воспользоваться одни углом на модели, я делал все по центру. Для этого заходим в редактирование (TAB), выбираем грани (клавиша 2) и выделяем как минимум 2 противоположные, после нажимаем сочетание Shift+S, и выбираем в низу Cursor to select:

Делаем процедурный панельный дом в Blender Blender, Процедурная генерация, Панельный дом, 3D моделирование, Длиннопост

Выделяем по низу моделей

Она устанавливает 3D курсор посередине, между двумя гранями, после выходим из редактирования (TAB) и нажимаем на модели ПКМ и выбираем Set Origin -> Origin to 3D Cursor:

Делаем процедурный панельный дом в Blender Blender, Процедурная генерация, Панельный дом, 3D моделирование, Длиннопост

Необходимо это делать по нижней части модели, т.к. Blender будет на неё ориентировать при процедурном построении этажей. Чтобы 3D Cursor встал на начало координат, т.к. на нём будут создаваться модели, необходимо нажать Shift+C.

Создаём простой куб (Shift+A -> Mesh -> Cube), после наведите курсор мыши на нижний левый угол, пока не появится перекрестие, зажимаем ЛКМ и подымаем его, после чего выбираем Geometry Node Editor и после нажимаем New:

Делаем процедурный панельный дом в Blender Blender, Процедурная генерация, Панельный дом, 3D моделирование, Длиннопост

После чего появляются 2 Нода:

Делаем процедурный панельный дом в Blender Blender, Процедурная генерация, Панельный дом, 3D моделирование, Длиннопост

Создаём Нод Math (Математический), с помощью Shift+A, в верху нажимаем на Search и вводим Math. В нём выбираем значение Subtract (вычитание), из Нода Group Input выбираем пустую ячейки и переносим связь от неё, к верхней пустой ячейки. После чего в Group Input ячейка приобретёт имя Value, но её можно задать и любое другое, для этого в правой части окна нажимаете на Group и там посредством двойного нажатия ЛКМ переименовываете:

Делаем процедурный панельный дом в Blender Blender, Процедурная генерация, Панельный дом, 3D моделирование, Длиннопост

Далее создаёте Нод Math, который можно сделать посредством копирования предыдущего Shift+D, и выбираем значение Multiply (умножение), даём ему нижнее значение, равное высоте модели, а верхнее соединяем с предыдущем Нодом. Т.к. последующие этажи будут по линии, а отсчёт начинается с 0, то при перемножении высоты моделей, точки уходят дальше и появляется разрыв между этажами:

Делаем процедурный панельный дом в Blender Blender, Процедурная генерация, Панельный дом, 3D моделирование, Длиннопост

После создаём Combine XYZ, соединяем с Z, далее Curve Line, соединяем с End, после Resample Curve, из предыдущего Нода соединяем ячейки Curve, из Group Input значения с этажами и Count.

Далее создаём/копируем Нод Math Subtract и соединяем верхнюю ячейку и Group Input с этажами. Далее создаём Нод Index и Compare со значениями Integer и Not Equal, соединяем Subtract с B, Index с A. Далее создаём Separate Geometry, Not Equal соединяем с Selection, а Resample Curve с Geometry.

Делаем процедурный панельный дом в Blender Blender, Процедурная генерация, Панельный дом, 3D моделирование, Длиннопост

После Instance on Points, и добавляем нашу модель, а именно крыши, посредством переноса объекта из меню Object на рабочий стол Geometry Nodes. Соединяем значение Geometry из модели с Instance в Instance on Points. От Separate Geometry значение Inverted соединяем с Point, Selected с другим созданным Separate Geometry.

Делаем процедурный панельный дом в Blender Blender, Процедурная генерация, Панельный дом, 3D моделирование, Длиннопост

От Separate Geometry от Inverted будет идти связь к Instance on Points с 1 этажом:

Делаем процедурный панельный дом в Blender Blender, Процедурная генерация, Панельный дом, 3D моделирование, Длиннопост

А от Selected к этажам. С той лишь разницей, что к ней уже будет идти связь от Compare, а к нему от Index. В общем далее так же, как на скриншоте:

Делаем процедурный панельный дом в Blender Blender, Процедурная генерация, Панельный дом, 3D моделирование, Длиннопост

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

Делаем процедурный панельный дом в Blender Blender, Процедурная генерация, Панельный дом, 3D моделирование, Длиннопост

И в конце создаём Нод Join Geometry и связываем с ним все Instance on Points.

В итоге вот что получилось, если обращать внимание на козырьки и высоту
балконов (по ним смотрел есть рандом или нет):

Делаем процедурный панельный дом в Blender Blender, Процедурная генерация, Панельный дом, 3D моделирование, Длиннопост

Итого

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

Показать полностью 13
[моё] Blender Процедурная генерация Панельный дом 3D моделирование Длиннопост
0
Посты не найдены
О нас
О Пикабу Контакты Реклама Сообщить об ошибке Сообщить о нарушении законодательства Отзывы и предложения Новости Пикабу Мобильное приложение RSS
Информация
Помощь Кодекс Пикабу Команда Пикабу Конфиденциальность Правила соцсети О рекомендациях О компании
Наши проекты
Блоги Работа Промокоды Игры Курсы
Партнёры
Промокоды Биг Гик Промокоды Lamoda Промокоды Мвидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии