Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
git clone git@github.com:icoz/evo.git
cd evo
qmake
make
./evo
Прочитал вот про вашу Evo, решил написать.
Я сам уже больше года в свободное время что-то подобное делаю.
Правда, изначальный подход отличается. Не клеточный автомат, а
попытка работать на уровне инстинктов/условных рефлексов и осознания
окружения. Соответственно особи должны не «разрабатываться в коде»,
а «воспитываться с детства».
Особенно повеселило то, что особей про себя я тоже «живностью»
называю. :)
Отличий, конечно — много. Все же я с этим, думаю, побольше сидел — уже под полмегабайта исходников написано.
Поле намного больше (с масштабированием), плотное использование
многопоточности, в т.ч. отрисовка в отдельном потоке. (Да, кстати, для
отрисовки я почти сразу использовал OpenGL — скорость значительно
выше.) Есть то самое «зрение», причем просчитывается (не)видимость за
препятствиями/стенами (и в сочетании с плавным, «не по клеткам»,
движением особей, это порядочно жрет ресурсы).
Кстати, еще совет насчет скорости — в какой-то момент понимаешь, что
все же «маловато будет». :) Я вот для некоторых блоков пытаюсь
использовать OpenCL. Но там тоже свои подводные камни — и логика
программирования другая, и нужно хранить как можно больше в памяти
видеокарты, т.к. перекачка в системную память и обратно очень
медленная (единицы гб/сек).
Ну и, у меня с самого начала была идея заточки под онлайн. :)
И те самые идеи, что сейчас пошли уже в комментах — межнодовое
распределенное взаимодействие, лабиринты, отбор лучших особей для
заселения… :))
И ощутимая часть уже написана. (Например, погонять особь по случайному
лабиринту размером с футбольное поле довольно интересно — она ведь
помнит путь, где уже ходила!)
Надеюсь, что я все же осилю это до какого-то вменяемого результата,
ибо рутины — как правильно замечено — море.
«Результаты вообще» публиковать еще рано. Не во что пока поиграть.
Есть только части, которые я в основном по отдельности тестирую.
Из того, что можно показать — вот, например, полугодовой давности
сборка с лабиринтом. Можете погонять живность, если интересно.
«Результаты вообще» публиковать еще рано. Не во что пока поиграть.
Большую статью про разработку я сейчас точно писать не буду. Хотя бы потому, что эта разработка не дошла хотя бы до альфа-версии.
И с камнями я сталкиваюсь до сих пор и постоянно. (Главный — «памяти мне дайте, памяти, да побольше»! 2ГБ на процесс катастрофически мало. Но может в рабочей версии на динамически изменяемое поле хотя бы в несколько «квадратных километров» и на полсотни особей этой памяти хватит...)
Думаю, можно будет написать статью тогда, когда тестовая версия будет доступна для скачивания — тогда материала будет побольше и он будет более предметным.
Аналог игры «Жизнь» — Evo