Мой эксперимент в генетических алгоритмах + исходный код

Здравствуйте, товарищи.
Увидел я, значит, недавний пост посвящённый генетическому алгоритму, и загорелся идеей повторить его - http://pikabu.ru/story/geneticheskiy_algoritm_v_deystvii_463...


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

Алгоритм повторял исключительно по информации, описанной в видео, исходные коды не смотрел.

Мой эксперимент в генетических алгоритмах + исходный код Программирование, Генетический алгоритм, Эксперимент, Видео, Гифка, Длиннопост

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

Сначала боты были очень тупыми, тыкались в стены и умирали стоя на месте

(Прошу прощения за качество гифок, очень сильно сожралось при уменьшении размеров до разрешённых на пикабу)

Мой эксперимент в генетических алгоритмах + исходный код Программирование, Генетический алгоритм, Эксперимент, Видео, Гифка, Длиннопост

После одной ночи работы программы стали заметны первые зачатки "разума":

Мой эксперимент в генетических алгоритмах + исходный код Программирование, Генетический алгоритм, Эксперимент, Видео, Гифка, Длиннопост

После двух ночей "разум" заметно улучшился, вместе с продолжительностью жизни ботов:

Мой эксперимент в генетических алгоритмах + исходный код Программирование, Генетический алгоритм, Эксперимент, Видео, Гифка, Длиннопост

Для особо упоротых товарищей (вроде меня), и для желающих поржать над моим кривым кодом, выкладываю исходник всей этой истории. Откомментировал в коде всё, что смог.
Ссылка на исходник - http://almostgames.ru/games/evol.gmz
Спасибо за внимание.

P.S. Однажды наступит день, когда я вернусь к этой затее и напишу полноценный гибкий, расширяемый симулятор на каком-нибудь нормальном языке...

Мой эксперимент в генетических алгоритмах + исходный код Программирование, Генетический алгоритм, Эксперимент, Видео, Гифка, Длиннопост

Лига Разработчиков Видеоигр

6.7K поста22.1K подписчиков

Добавить пост

Правила сообщества

ОБЩИЕ ПРАВИЛА:

- Уважайте чужой труд и используйте конструктивную критику

- Не занимайтесь саморекламой, пишите качественные и интересные посты

- Никакой политики


СТОИТ ПУБЛИКОВАТЬ:

- Посты о Вашей игре с историей её разработки и описанием полученного опыта

- Обучающие материалы, туториалы

- Интервью с опытными разработчиками

- Анонсы бесплатных мероприятий для разработчиков и истории их посещения;
- Ваши работы, если Вы художник/композитор и хотите поделиться ими на безвозмездной основе

НЕ СТОИТ ПУБЛИКОВАТЬ:

- Посты, содержащие только вопрос или просьбу помочь
- Посты, содержащие только идею игры

- Посты, единственная цель которых - набор команды для разработки игры

- Посты, не относящиеся к тематике сообщества

Подобные посты по решению администрации могут быть перемещены из сообщества в общую ленту.

ЗАПРЕЩЕНО:

- Публиковать бессодержательные посты с рекламой Вашего проекта (см. следующий пункт), а также все прочие посты, содержащие рекламу/рекламные интеграции

- Выдавать чужой труд за свой

Подобные посты будут перемещены из сообщества в общую ленту, а их авторы по решению администрации могут быть внесены в игнор-лист сообщества.


О РАЗМЕЩЕНИИ ССЫЛОК:

Ссылка на сторонний ресурс, связанный с игрой, допускается только при следующих условиях:

- Пост должен быть содержательным и интересным для пользователей, нести пользу для сообщества

- Ссылка должна размещаться непосредственно в начале или конце поста и только один раз

- Cсылка размещается в формате: "Страница игры в Steam: URL"

12
Автор поста оценил этот комментарий
Иллюстрация к комментарию
6
Автор поста оценил этот комментарий

Если хотите обратной связи с другими программистами - научитесь работать с Github. Там Вы можете найти огромное количество других интересных решений (правда не видел delphi не самый популярный язык).

раскрыть ветку
3
Автор поста оценил этот комментарий

Очень круто!

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

Конечно надо это дело усложнять.

Я бы предложил создать модель небольшого биома: трава - зайцы - волки.

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

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

раскрыть ветку
1
Автор поста оценил этот комментарий
В итоге на последней гифке последний бот жил так долго просто потому, что шел напролом и жрал все подряд. И умер он, потому что стена.
раскрыть ветку
Автор поста оценил этот комментарий

а что читал ?

раскрыть ветку