Начало: http://pikabu.ru/story/i_snova_o_nelyogkoy_zhizni_tsifrovyik...
Дратути. Я смотрю, тема зашла :D Было дофига предложений, испытания на разных процах, фанфик от лица бактерии и даже онлайн-стрим! Если честно, я в ахуе xD Сделал тэг "цифровые бактерии" для хейтеров/лаверов, буду теперь постить эту фигню под ним.
Итак, краткие итоги:
Дофига народу просило исходники, так что ВОТ ОНИ: https://github.com/unrecovered/bacs
Залил сразу все, ковырять советую из папки 1.12 release, потому что в src сейчас песец и ахтунг. Также жду советов по управлению проектами на гитхабе, никогда этого не делал и слабо представляю чокак. Я бы конечно сам об этом почитал и разобралсо, но мой моцк ещё не отошел от вчерашних эротических рассказов про OpenCL.
Кстати о нём. Переход на OpenCL будет, но хз когда, потому что тема сложная, с наскока не взялась. Только начинаю понимать что к чему. Так что владельцы топовых видюх терпите пока, ещё покажете свою могучую письку :)
Про многопоточность. Треды в данный момент работают плохо, поскольку забивают весь доступный проц и мешают системе, рантайм-среде и основному процессу делать свою работу. Пока что оптимальная производительность(судя по многочисленным тестам) достигается при количестве тредов меньше либо равном половине ядер процессора. Будут переделаны, я уже примерно представляю как. Также, если есть специалисты по яве, отпишитесь, будет ли иметь смысл замена клонирования объекта на перезапись его свойств? По идее, количество объектов при этом станет постоянным, и нагрузка на сборщик мусора упадёт в разы.
Про предложения:
- Сделай динамическое освещение!
Будет
- А сделай броню, уклонение, криты, резайленс, удачу, шанс дропа
Господа, я честно скажу: это ВАЩЕ не тот вектор развития, который я вижу =) Базовых статов не должно быть много, и они не могут быть ни плохими, ни хорошими.
Пример, который я приводил в оригинальном посте: сила увеличивает шанс успешной атаки, но при этом также увеличивает энергопотребление. Для охотников или войнов, которые в основном питаются трупами, имеет смысл высокий показатель силы. Для солнцеедов наоборот, чем ниже - тем лучше.
- А сделай вирус-убийцу, извержение вулкана, метание молний с неба, вампирш-лесбиянок...
НЕТ. То есть, когда-нибудь, возможно, что-то из этого будет введено. Но пока что жизнь/смерть бактерий должна зависеть только от них самих, с минимальным влиянием внешних условий.
- Сделать карты земля/вода, области там где холодно/жарко, зоны с повышенной радиацией (для ускорения мутаций).
Топ-каммент, так что я задумаюсь над этим. Но скорее всего, не раньше ввода OpenCL, потому что это потребует ЗНАЧИТЕЛЬНОГО увеличения масштаба. Ну и, минимальное влияние внешних условий, как я писал выше.
- Сделай многоклеточных.
Думаю над этим, но это несколько усложняет механику.
- Сделай изменение цвета не таким резким, чем сильнее мутировал, тем сильнее меняется цвет.
Насчёт этого... сделал, и сразу вспомнил, почему я ввёл рандомную генерацию:
Не знаю, как ваши глаза, а мои натурально вытекают Х_Х. Пока не знаю, что с этим делать
- Сделай возможность создавать гифки.
Учитывая количество всякой фигни, которая планируется, гифки я буду вводить пару лет :D Есть внешние инструменты, я вот пользуюсь LICECup(гифка выше сделана как раз в нём, плюс ресайзена гимпом)
- Сделай поддержку CLI(консоли)
Стандартный терминал имеет разрешение 80х24 символа, как вы себе это представляете? :D
О текущем прогрессе:
Делаю раздельный шанс мутации, думаю над механикой цвета. Вероятно будет изменена механика определения родственников, бактерия будет "помнить" цвет предка и потомка, и считать эти цвета родственными даже при сильном отличии.
Однако теперь атаковать можно и родственников тоже(раньше действие атаки возвращало неудачу при применении на родственника). Уже есть очень весёлые результаты =)
Также будет изменение количества доступных команд при мутации.
И переработка движка - дело довольно муторное, поэтому не скажу, когда точно следующий апдейт.
Алсо, если есть желающие помочь:
- запилите ГУЙ! :D Обязательно кнопки старт/пауза/сохранить/загрузить, поля для статов бактерии и тыпы. Если не ломает - можете и функционал прикрутить. Всё в отдельный класс и отдельный файл (:
- запилите трансляцию логов в читаемый формат(из цифр в названия команд), можно вообще в xls
- ваще изи, сделайте нормальный разворот во весь экран! :D
я это всё могу и сам, но меня ломает (: