unity

Постов: 8 Рейтинг: 14422
565

Симулятор эволюции на Unity + исходный код

Развернуть
Здравствуйте, товарищи.
Так уж сложилось исторически, что я люблю разного рода извращения. И вот к чему меня это привело в этот раз:
Я написал симулятор эволюции, используя Unity.
Симулятор эволюции на Unity + исходный код GIF
Суть происходящего:
В замкнутую среду помещается клетка, обладающая собственным геномом, состоящим из 64 случайных команд, расположенных в случайном порядке. Клетка выполняет все свои действия в соответствии с геномом. В зависимости от результата выполнения очередной команды, заложенной в гене, клетка переключается на команду в другом гене. Клетки живут в аквариуме, на который светит солнце. Клетки могут фотосинтезировать, чтобы восстанавливать свою энергию. Когда клетка накопит достаточное количество энергии - она делится. Если клетке пора делиться, но она со всех сторон окружена (нет свободного места) - клетка умирает, превращаясь в питательный трупик, который могут сожрать другие клетки.
Если у клетки заканчивается энергия - она умирает, не оставляя за собой трупа. Клетки могут жрать друг друга, и распознавать, родственник перед ними, или нет. При рождении каждой новой клетки есть 25% шанс, что один из её генов мутирует (одна из команд в алгоритме поведения изменится на другую случайную команду). Когда клетка фотосинтезирует - она зеленеет, когда жрёт органику - краснеет.

Всего клетка может выполнять 7 команд:
1 - смотреть прямо перед собой
2 - поворачиваться
3 - двигаться вперёд
4 - жрать объект перед собой
5 - фотосинтезировать
6 - проверять, сколько осталось энергии
7 - размножаться


На следующей гифке изображён аквариум, в котором живёт одна клетка, все гены которой заполнены одной командой - фотосинтез, поэтому она бесконтрольно размножается, оставляя за собой кучи задавленных трупов. Но в какой-то момент появляются клетки-мутанты, которые начинают двигаться и питаться органикой:
Симулятор эволюции на Unity + исходный код GIF
На следующей гифке изображён авариум, почти полностью заваленный трупами "веганов", которые бесконтрольно размножались, и почти довели популяцию до полного вымирания. Но, случайная мутация исправила ситуацию, и в аквариуме появились мясоеды:
Симулятор эволюции на Unity + исходный код GIF
На следующей гифке я поэкспериментировал с гравитацией, сделал так, чтобы трупы опускались на дно. От затеи пришлось отказаться, потому что fps, который и так довольно сильно проседал, сморщился ещё сильнее, как-будто его в ледяную воду опустили:
Симулятор эволюции на Unity + исходный код GIF
Ну и посделедняя гифка. На ней в аквариуме практически сразу появились хищники:
Симулятор эволюции на Unity + исходный код GIF
Как оказалось, наблюдать за развитием о поведением виртуальных клеток - очень увлекательное занятие. Для всех, кому это интересно - оставлю ссылку на репозиторий в комментариях.

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

Сегодня на моём компьютере отвалилась программа ФСБшной слежки

Развернуть
Сегодня на моём компьютере отвалилась программа ФСБшной слежки
Я даже растерялся и не знал, чего бы такого погуглить, пока они не видят.
1138

Не, ну как назвать фирму? Ну, не знаю... Че делать то... ***... О!

Развернуть
С последней презентации Unity.
P.S. В Unity ожидается интеграция Октан рендера.
Не, ну как назвать фирму? Ну, не знаю... Че делать то... ***... О!
1342

Полная версия офигенной технодемки на движке Unity

Развернуть
3 месяца назад был вот этот фрагмент, для тех, кто пропустил


1321

Офигенное технодемо движка Unity

Развернуть
1950

Создаем игру с нуля в Unity3D

Развернуть
Не прибегая к программированию!
Создаем игру с нуля в Unity3D
1311

Наша игра "The Uncertain"

Развернуть
Первый демо шоурил, который мы сегодня показали на конференции #unitykrd в Краснодаре. Надеемся вам понравится :)
1719

Путешествие по жёсткому диску

Развернуть
Игра, в которой можно бегать по файловой системе своего компьютера.
Путешествие по жёсткому диску