61
Цифровые бактерии - миниапдейт(много текста)
194 Комментария  

Начало: http://pikabu.ru/story/i_snova_o_nelyogkoy_zhizni_tsifrovyik...


Дратути. Я смотрю, тема зашла :D Было дофига предложений, испытания на разных процах, фанфик от лица бактерии и даже онлайн-стрим! Если честно, я в ахуе xD Сделал тэг "цифровые бактерии" для хейтеров/лаверов, буду теперь постить эту фигню под ним.


Итак, краткие итоги:

Дофига народу просило исходники, так что ВОТ ОНИ: https://github.com/unrecovered/bacs

Залил сразу все, ковырять советую из папки 1.12 release, потому что в src сейчас песец и ахтунг. Также жду советов по управлению проектами на гитхабе, никогда этого не делал и слабо представляю чокак. Я бы конечно сам об этом почитал и разобралсо, но мой моцк ещё не отошел от вчерашних эротических рассказов про OpenCL.


Кстати о нём. Переход на OpenCL будет, но хз когда, потому что тема сложная, с наскока не взялась. Только начинаю понимать что к чему. Так что владельцы топовых видюх терпите пока, ещё покажете свою могучую письку :)


Про многопоточность. Треды в данный момент работают плохо, поскольку забивают весь доступный проц и мешают системе, рантайм-среде и основному процессу делать свою работу. Пока что оптимальная производительность(судя по многочисленным тестам) достигается при количестве тредов меньше либо равном половине ядер процессора. Будут переделаны, я уже примерно представляю как. Также, если есть специалисты по яве, отпишитесь, будет ли иметь смысл замена клонирования объекта на перезапись его свойств? По идее, количество объектов при этом станет постоянным, и нагрузка на сборщик мусора упадёт в разы.


Про предложения:

- Сделай динамическое освещение!

Будет


- А сделай броню, уклонение, криты, резайленс, удачу, шанс дропа

Господа, я честно скажу: это ВАЩЕ не тот вектор развития, который я вижу =) Базовых статов не должно быть много, и они не могут быть ни плохими, ни хорошими.


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


- А сделай вирус-убийцу, извержение вулкана, метание молний с неба, вампирш-лесбиянок...

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


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

Топ-каммент, так что я задумаюсь над этим. Но скорее всего, не раньше ввода OpenCL, потому что это потребует ЗНАЧИТЕЛЬНОГО увеличения масштаба. Ну и, минимальное влияние внешних условий, как я писал выше.


- Сделай многоклеточных.

Думаю над этим, но это несколько усложняет механику.


- Сделай изменение цвета не таким резким, чем сильнее мутировал, тем сильнее меняется цвет.

Насчёт этого... сделал, и сразу вспомнил, почему я ввёл рандомную генерацию:

Цифровые бактерии - миниапдейт(много текста) программирование, java, Эволюция, цифровые бактерии, гифка, длиннопост

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


- Сделай возможность создавать гифки.

Учитывая количество всякой фигни, которая планируется, гифки я буду вводить пару лет :D Есть внешние инструменты, я вот пользуюсь LICECup(гифка выше сделана как раз в нём, плюс ресайзена гимпом)


- Сделай поддержку CLI(консоли)

Стандартный терминал имеет разрешение 80х24 символа, как вы себе это представляете? :D


О текущем прогрессе:

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


Однако теперь атаковать можно и родственников тоже(раньше действие атаки возвращало неудачу при применении на родственника). Уже есть очень весёлые результаты =)


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


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


Алсо, если есть желающие помочь:

- запилите ГУЙ! :D Обязательно кнопки старт/пауза/сохранить/загрузить, поля для статов бактерии и тыпы. Если не ломает - можете и функционал прикрутить. Всё в отдельный класс и отдельный файл (:

- запилите трансляцию логов в читаемый формат(из цифр в названия команд), можно вообще в xls

- ваще изи, сделайте нормальный разворот во весь экран! :D


я это всё могу и сам, но меня ломает (:

Показать полностью 1
632
И снова о нелёгкой жизни цифровых бактерий(длиннопостЪ)
320 Комментариев  

Ссыль на саму программу(уже собранную, ставить ничо не надо, только распаковать) - в конце поста



Спасибо аффтару поста http://pikabu.ru/story/simulyator_yevolyutsii_na_unity__iskh... . Засадил сцуко мне занозу в моцк.


Дело в том, что я тоже любитель всякого накодить, и даже постил там своё творение(http://pikabu.ru/story/simulyator_yevolyutsii_na_unity__iskh... было заброшено по причине полной предсказуемости подопытных. И вот, две недели спустя я понял, что больше не могу сдерживаться.


Итак, встречайте: очередной симулятор лоскутного одеяла эволюции:

И снова о нелёгкой жизни цифровых бактерий(длиннопостЪ) программирование, java, длиннопост, Эволюция, гифка

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


Организмы жрут солнечный свет либо друг друга(либо оба сразу), накапливают таким образом энергию.


Когда организм накопит достаточное количество энергии - он делится. Если места для потомка нет - умирает, оставляя труп.


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


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



Это у нас с @Neptun общее. Теперь различия:


1. К программе прикручен КОНФИГ!(config.ini), где можно менять всякую разную фигню: размер поля, количество команд, шанс мутации и даже задать набор команд для начальной бактерии. Развлекайтесь! :D


2. Я упоролся и написал эту фиговину на яве. Почему на яве? Ну... я никогда до этого ничего не писал на яве, решил попробовать :D В общем, это несколько увеличило производительность. Теперь даже слабые компы без проблем обсчитывают поля размером 150х150.


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


4. Определение родственников. Бактерии не смотрят в код, они смотрят на ЦВЕТ :D Цвет отличается не больше, чем на 5 - родственник. Нет - подраться и захавать.


5. Консервативное общество

И снова о нелёгкой жизни цифровых бактерий(длиннопостЪ) программирование, java, длиннопост, Эволюция, гифка

Картина Репина: родительская клетка убивает своего потомка


Суть в том, что в случае мутации бактерия меняет цвет на СЛУЧАЙНЫЙ(отсюда этот эффект лоскутного одеяла). Учитывая п.4 выше, это означает, что родитель может захавать своего едва родившегося потомка. Нетолерантно тут относятся к мутантам...


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

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


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


Теперь об игропроцессе. Всё начинается вот с этого засранца:

И снова о нелёгкой жизни цифровых бактерий(длиннопостЪ) программирование, java, длиннопост, Эволюция, гифка

Увеличим:

И снова о нелёгкой жизни цифровых бактерий(длиннопостЪ) программирование, java, длиннопост, Эволюция, гифка

Ещё немного:

И снова о нелёгкой жизни цифровых бактерий(длиннопостЪ) программирование, java, длиннопост, Эволюция, гифка

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

После этого начинается бурное развитие разнообразных мелких группировок.


Также, длительные тесты выявили, куда стремится этот искусственно сгенерированный мирок. Он стремится к миру, гармонии и грёбаному мирному сосуществованию :D


Зато по результатам наблюдения я могу точно ответить, как добиться мира во всём мире:

Шаг 1:

И снова о нелёгкой жизни цифровых бактерий(длиннопостЪ) программирование, java, длиннопост, Эволюция, гифка

То есть буквально, уничтожить всех, кто может атаковать


Шаг 2: Если потом появится кто-то, кто может атаковать - ДРУЖНО ПИЗДИТЬ ЕГО ПАЛКАМИ ПОКА НЕ СДОХНЕТ. Всё. Мир достигнут :D


Но я не смирился так просто. Я подумал, что они прекратили соперничество потому, что им нечего делить. И добавил механику освещения :3


Теперь чем дальше от центра, тем меньше энергии даёт солнцеедение. С аццким хохотом я собрал и запустил новый мир: 64 команды, 300х300, четверть миллиона итераций! Надо сказать, бои за центр были лютые, ни одна группировка не могла одержать верх надолго. Я с интересом смотрел, как они бьются за существование, жуя бутерброд. И думал о том, что кто-то может сейчас точно так же смотреть сверху на нашу человеческую возню...


Однако 250000 итераций спустя:

И снова о нелёгкой жизни цифровых бактерий(длиннопостЪ) программирование, java, длиннопост, Эволюция, гифка

...бля :D Опять мир и гармония. У кого есть идеи как сделать борьбу - предлагайте!


Что я планирую добавить:


- Показ характеристик бактерии при наведении мыши, как в первой моей программе.

- Старение(отключаемое в конфиге)

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

- Поскольку это чудо отлично грузит проц, можно добавить бенчмарк

- Бактерии смогут оценивать силу противника и действовать в зависимости от этого

- Призыв сильнейших - возможнось вытащить наиболее развитых особей для заселения нового мира

- Раздельный мутшанс для статов и поведения(сейчас общий)

- Квирки! Особенности, влияющие на механику(например, квирк "Мясоед" увеличивает энергию от поедания мяса и уменьшает от солнца)

- Шаблоны... сложная тема. Меня напрягает, что организмы аццки близорукие, они видят только непосредственное окружение. В древней игрушке про боевых змей "Snake Battle"(одна из первых игр непрямого контроля) была тема шаблонов. Каждый ход змея осматривала пространство вокруг себя(7х7 клеток) и сравнивала с шаблонами, заданными программистом. Если ни один не подходил - действие выбиралось случайно. Если находилось соответствие - действие выбиралось по шаблону. Не уверен, что введу, потому как сложно и сильно замедлит работу.


Что я не планирую:


- 3д. Не нужно.

- Гравитация. Не имеет смысла, мы сверху смотрим.

- Хексы. НЕТ СПАСИБО.

- Показывать исходники. Стыдно xD


И немного о лог-файле endgame.txt Он генерится после выполнения программы в её папке, содержит лог 30 случайных бактерий. А также время, за которое программа была выполнена. Так что можно меряться письками :D


Также внимание! Владельцы топовых i7 и особенно 8-ядерных амд! Если не в падлу, запустите программу 200х200 20000 итераций на 8 потоках. Мне интересно, как отработает и какое будет время :3


Ссыль на сие творение:


http://178.141.253.94/bacs.zip

Показать полностью 6
2534
72 п%здецтвенницы
723 Комментария  

Зашёл я тут на лурк, про ислам почитать, ибо лурк информативнее чем вики бывает. И попалась мне там любопытная ссылка на относительно серьёзный исламский ресурс: http://ru.wikiislam.net/wiki/72_девственницы


В статье идёт речь о тех самых 72 девственницах, которых получит правоверный мусульманин в загробной жизни. Дальше я просто приложу скрин из статьи:

72 п%здецтвенницы ислам, гурии, пиздец, религия

То есть мало того, что эти гурии в 15(!!) раз больше нормально человека, что делает половой контакт с ними несколько затруднительным, так они ещё и прозрачные целиком, кроме костного мозга! И если вы думаете, что это фигура речи такая, то там же приложен источник:


они будут настолько красивы, чисты и прозрачны, что костный мозг их голеней будет виден сквозь кости и плоть — Сахих аль-Бухари, 4:54:476

Я знаю, на пикабу разная аудитория, может и мусульмане найдутся. Я хочу их спросить: вы сами-то понимаете, как этот пиздец будет выглядеть? =)

В Сан-Диего арестовали Фаппи, маскота Христианской организации против мастурбации, за мастурбацию в неположенном месте
Неет, он не просто дрочил. Он пришел в парк Sea World, нырнул в аквариум с дельфинами, надев ТОЛЬКО башку от своего костюма, плавал там и дрочил в процессе!
38 Комментариев  
В Сан-Диего арестовали Фаппи, маскота Христианской организации против мастурбации, за мастурбацию в неположенном месте Неет, он не просто дрочил. Он пришел в парк Sea World, нырнул в аквариум с дельфинами, надев ТОЛЬКО башку от своего костюма, плавал там и дрочил в процессе!
4959
Фотошоп? Пфф!
Правильная композиция, правильный ракурс...
161 Комментарий  
Фотошоп? Пфф! Правильная композиция, правильный ракурс...
548
Хорошо идёт :)
26 Комментариев  
336
Самое русское фото
По мотивам http://pikabu.ru/story/_3192422
59 Комментариев  
Самое русское фото По мотивам <a href="http://pikabu.ru/story/samoe_amerikanskoe_foto_3192422">http://pikabu.ru/story/_3192422</a>
1246
Время "однажды"-постов прошло, и только тут я вспомнил...
25 Комментариев  
Однажды, отдыхая в Геленджике, я видел Надежду Кадышеву, поющую свои собственные песни в КАРАОКЕ
2037
76мм снаряд, который почти смог
227 Комментариев  
76мм снаряд, который почти смог
День стирки
Пост про oblomoff в образе Сейлор Мун напомнил. Видео старое, но зач0тное =)
1 Комментарий  


Пожалуйста, войдите в аккаунт или зарегистрируйтесь