Войти
ПроектыФорумКонкурсы

Конкурс ИИ, управляющего автомобилем [ИТОГИ].

Advanced: Тема повышенной сложности или важная.

Страницы: 1 2 336 37 Следующая »
#0
(Правка: 12 окт. 2019, 8:48) 10:16, 20 сен. 2019


Описание.
Имеется программа, имитирующая вождение автомобиля. Управление сведено к минимуму - руль, тормоз и газ. Физика и визуализация трёхмерные, но трасса плоская. На трассе нет развилок и самопересечений, это ломаная, заданная набором вершин, у которых Y=0. Трасса - это множество точек плоскости XoZ, лежащих от ломаной на расстоянии не более R. Управление дискретное (нажато-не нажато), но внутри программы оно фильтруется к float величине от 0 до 1 для газа и тормоза (глубина нажатия педали) , для руля диапазон значений от -1 (влево) до 1 (вправо) - это угол поворота передних колёс в радианах. Управляется с клавиатуры, кнопки описаны в ReadMe.
Но ручное управление нужно только для знакомства с динамикой машины!

Задание.
Вам предстоит написать ИИ (искусственный интеллект), управляющий этим автомобилем. ИИ оформляется в виде нативной Win32 dll, экспортирующей всего три функции:
Init
  Эта ф-ция вызывается однократно при старте гонки, здесь можно расположить тяжёлые расчёты, связанные с прокладкой маршрута и т. п.
Tick
  Эта ф-ция вызывается 50 раз в секунду, здесь вы получаете от основной программы информацию о текущем состоянии автомобиля и отправляете в неё информацию об управлении, которое полностью имитирует ручное управление, описанное выше.
Term
  Эта ф-ция вызывается однократно при окончании гонки. Это в первую очередь для уничтожения созданных в Init объектов и освобождения памяти.

Ниже есть ссылка на архив с программой и готовым шаблоном для написания dll на VS2008. Вы можете выбрать свою среду разработки и ЯП, написание шаблонов для них приветствуется и ссылки на них будут так же выложены ниже.

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

<font color=red><b>Релиз:</b></font>
Получается: Релиз:
Далее ссылка на ваш вариант ИИ. Его можно выкладывать сколько угодно раз, я буду обновлять ссылку в списке участников.
Рекомендуется называть свои dll своими никами на gamedev.ru, заменяя пробелы символом подчёркивания.
Рекомендуется выкладывать работы на файлообменник с минимумом рекламы и возможностью перезаливать закачки без изменения ссылки, например на Яндекс-диск.

Сроки.
Первый финал назначен на 21:00 14 октября 2019 г., но конкурс бессрочный, можно будет улучшать свои достижения, текущий рекорд будет обновляться.

Определение победителя.
Трассы генерируются, сид трассы для выявления победителя будет определён непосредственно перед соревнованием, чтобы не было возможности заточить ИИ под конкретную трассу. Победит тот, кто пройдёт трассу быстрее, то есть победителя определит программа, судьи не требуются.
Для определения № карты все участники, выдавшие рабочий ИИ, шлют мне в личку (не в тему!) любое целое число от 0 до 1 000 000, я своё число не даю, чтобы не мог повлиять на результат. Я смешиваю ваши числа с помощью XOR - получаем № карты. Тестируем на 10 картах подряд от № до №+9, по 1-й попытке на карту.

Шаблон для написания своего варианта ИИ и программа для запуска: https://yadi.sk/d/x8I4J3CAOixqxw
Может понадобиться для запуска под Вайн: msvbvm60.dll
Порт для freebasic от AWPStar: https://yadi.sk/d/_E0IfAOSPGl0Pw
Порт на Lua с исходниками на Си для codeblocks/mingw от romanshuvalov: https://gamedev.ru/files/?id=141780

Пример простейшего ИИ:

+ код модуля AI.cpp шаблона:
#1
(Правка: 20 окт. 2019, 8:51) 10:16, 20 сен. 2019

Список участников с релизами:

01 AWPStar
  https://yadi.sk/d/3NvLjLzL7d7ZqQ

02 Mikle
  https://yadi.sk/d/CbcKe4QuhtSBzQ

03 romanshuvalov
  ai_rs1_v1 for AI contest

04 Tiranas
  DLL_AIRace_v50

05 Adler
  Adler_v45


Архив с работами участников:
https://yadi.sk/d/-v7ntjgH9RzM1Q


14.10.2019 проведено соревнование на картах от 17387047 до 17387056 включительно.
Результаты:

AIRes | Конкурс ИИ, управляющего автомобилем [ИТОГИ].


Бессрочный топ ботов для нулевой карты:

romanshuvalov - 30.44 сек.
  ai_rs1_crazy_zero_v1 for AI contest

Adler - 30.64 сек.
  Adler_v88

Mikle - 33.8 сек.
  https://yadi.sk/d/Sp4yfA7bxzc6jw

#2
(Правка: 10:53) 10:52, 20 сен. 2019

Mikle
Ложи, плиз, msvbvm60.dll в свои проекты.

Mikle
> Я делаю вызывающую сторону для dll
TCP/UDP не будет?

Mikle
> Демо
Физика дикая. Графика приятная

#3
11:02, 20 сен. 2019

BEETON
> TCP/UDP не будет?
Такую обёртку собирался делать Вий, я сам не сделаю.

> Ложи, плиз, msvbvm60.dll в свои проекты.
https://yadi.sk/d/-HtgaMCt3MvXQo

> Физика дикая. Графика приятная
Графика для такого проекта большого значения не имеет, сделал простейшую, рад, что нравится.
Физику старался сделать реалистичной, а не аркадной, для ИИ это интереснее.

#4
11:42, 20 сен. 2019

Будет tcp будет udp, я ж обещал

#5
12:07, 20 сен. 2019

Вий
мое почтение

#6
(Правка: 12:11) 12:09, 20 сен. 2019

Mikle
> Физику старался сделать реалистичной, а не аркадной, для ИИ это интереснее
не сказал бы, что сейчас реалистично, больше напоминает на управление звездолетом в космосе с большой инерцией.
Думаю, это из-а того что нет небольшого дрифта

#7
12:46, 20 сен. 2019

BEETON
Думаю, это из-за отсутствия звука, ты не слышишь, что начинается занос или пробуксовка. Просто попробуй ехать осторожно, сильно не газовать и не тормозить.
Кстати, для ИИ можно передавать громкость звука срыва колеса в занос, ведь именно по этому признаку определяет занос человек. А направление ИИ и так определит - ведь у него есть вектора скорости и направления машины.
BEETON
> Думаю, это из-а того что нет небольшого дрифта
Он есть, и бывает и большим, и небольшим.

#8
15:20, 20 сен. 2019

Под вайном не завелось :( Тачка есть, ездит, но трассы не видно.

AI Race Wine | Конкурс ИИ, управляющего автомобилем [ИТОГИ].

#9
(Правка: 16:01) 16:00, 20 сен. 2019

romanshuvalov
> Под вайном не завелось
У меня все норм. Какая версия вайна?
wine-4.12.1 (Staging) полет нормальный

#10
16:12, 20 сен. 2019

wine-4.0 (Debian 4.0-2).
Но оно потребовало 32-битных либ, выполнил dpkg --add-architecture i386 и apt-get install wine32, потом не завёлся OpenGL (не найден libgl1.so.1 или чё-то там такое), вылечил через apt-get install libgl1-nvidia-glx:i386.

Возможно, OpenGL не пробрасывается в аппаратную реализацию, а эмулируется Мезой, этого я не знаю. И как вылечить - не знаю.

#11
16:32, 20 сен. 2019

romanshuvalov
> потом не завёлся OpenGL
У меня там Direct3D9...

#12
16:43, 20 сен. 2019

Симулятор физики нужен. Или в виде исходников или в виде формул. Я правда не уверен что буду участвовать, но без возможности предсказывать положение на Н тиков вперёд ии не ии.

#13
16:59, 20 сен. 2019

Mikle
> Физику старался сделать реалистичной
Эм, вообще не реалистичная. Даже я с моим не шибко большим опытом вождения, я могу утверждать 100% - физика вообще яд.

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

Далее. Если трасса плоская, какого хрена машина сама едет сразу же? Ну это вообще плохо же.

В общем, физика пока крайне сырая. Ждем фиксов.

#14
17:06, 20 сен. 2019

Mikle
> У меня там Direct3D9...
В вайне всё пробрасывается в OpenGL.

kipar
> без возможности предсказывать положение на Н тиков вперёд ии не ии.
Как раз-таки ИИ. Ты когда за руль реального автомобиля садишься - тебе же формулы никто не даёт, едешь и сам чувствуешь, насколько сильно надо руль повернуть. Вот и ИИ так должен уметь.

Страницы: 1 2 336 37 Следующая »
ПроектыФорумКонкурсы