Russian AI Cup

Расширенный поиск  

Просмотр сообщений

В этом разделе можно просмотреть все сообщения, сделанные этим пользователем.

Сообщения - mortido

Страницы: [1] 2
1
Russian AI Cup 2018: CodeBall / Re: Идеи для следующего AI cup
« : Февраля 07, 2019, 05:44:08 pm »
Я за 3d файтинг, в котором надо управлять всеми суставами. Чтобы их можно было разгибать, сгибать, напрягать, расслаблять:
Шея, поясница, плечи, локти, кисти, ягодицы, колени, ступни
Цель - нанести как можно больше урона или вытолкнуть за круг соперника.

Это же целая куча вариантов действий каждый тик. А под всех соперников не подстроиться. Реально можно изменить таблицу ежегодных финалистов

Нейроночки глядишь подтянутся

2
Russian AI Cup 2018: CodeBall / Re: Идеи для следующего AI cup
« : Февраля 05, 2019, 01:04:38 pm »
Напоминает "грабить корованы" :)
что за жанр игры то предлагаете?

Вообще без разницы, я просто высказываю идеи, которые чисто теоретически могут разнообразить подходы, которые применяются в решении РАИКов.

3
Russian AI Cup 2018: CodeBall / Re: Идеи для следующего AI cup
« : Февраля 05, 2019, 01:00:43 pm »
Еще идея на примере стратегии: ввести автобой, когда армии сражаются как в героях или в карточной игре, но порядок всегда одинаковый, разве что можно добавить рандом на криты/промахи.

Это уберет сильное влияние микро стратегии (когда выигрывает тот, кто насимулировал точный бой глубже) и добавит влияние амакро решениям (куда пойти, что строить).

Такое можно попробовать применить и не только на стратегии.

4
Russian AI Cup 2018: CodeBall / Идеи для следующего AI cup
« : Февраля 05, 2019, 12:49:56 pm »
Столько интересного мелькало в чате, но может потерятся от организаторов.

Запишу свои тут, присоединяйтесь:

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


5
Russian AI Cup 2018: CodeBall / Запуск С++ клиента Clion, Windows
« : Декабря 17, 2018, 05:56:55 pm »
Кто осилил, подскажите, что делали?

6
Russian AI Cup 2018: CodeBall / Вопросы по запуску Local Runner'a
« : Декабря 17, 2018, 01:31:06 pm »
Давайте обсуждать их на форуме, а то в чате они потеряются, а их много и они похожие.

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

Вот у меня возникала мысль, что раз мини планировался чаще и менее хардкорным (для новичков), а из-за сроков подготовки выходит пока только хардорнее и менее массово, т.к. приходится разбираться в сложной системе тестирования и прочего. Может быть делать его так же раз в год как раик, только летний. Больше времени на задачу, оформление правил, тест и прочее. Summer AI Cup и Winter AI Cup.

8
Очень много предложений проскакивает в чате как альтернативные решения проблемы (кстати я не совсем понял какой именно проблемы). Но они пролетают мимо из-за потока негодований. Было бы здорово, если тут высказались люди со своими идеями, некоторые было интересно почитать.

Например, идея со сдвигающимися стенами карты =)

9
Кто-то любит нажимать разные галочки при заливке стратегии.
(http://russianaicup.ru/forum/index.php?topic=277.0)

10
Флудилка / Re: Форумный движок
« : Ноября 21, 2017, 11:39:01 pm »
Что-то меня торкнуло и я за пару дней набросал форумный движок, и вот ещё пару дней его пилил, сейчас стало уже получаться что-то вразумительное,
потому приглашаю потестировать и высказать свои замечания и предложения https://forum.russiancoders.ru/
Заранее спасибо всем откликнувшимся.
"привет, я занет, давай потом"

11
Russian AI Cup 2017: CodeWars / Re: АоЕ
« : Ноября 11, 2017, 09:30:32 pm »
Никогда не поздно добавитьядерный взрыв!

12
В правилах, вроде, однозначно написано

То, что я написал, не противоречит правилам.

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

14
Russian AI Cup 2017: CodeWars / Re: Танковый балет
« : Ноября 08, 2017, 01:42:46 am »
Очень не хватает возможности послать всех в одну точку, или приказать сформировать прямоугольник.

А Вот это было бы интересно, команда "принять формацию" как раз бы помогала востанавливать нарушенный строй или принимать построение для защиты/атаки не тратя 100 ходов (сейчас это не реально).

15
Russian AI Cup 2017: CodeWars / Полезные ссылки
« : Октября 23, 2017, 03:07:15 pm »
Репозиторий с полезными ссылками по Russian AI Cup чемпионату: https://github.com/core2duo/RHC-AI
Файлик с полезными ссылками на текущий год: https://github.com/core2duo/RHC-AI/blob/master/2017.md

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

16
Russian AI Cup 2017: CodeWars / Re: Cледующий raic 2017
« : Октября 20, 2017, 07:12:04 pm »
А название так и останется CodeXXX?)

17
Игрался с SFML фреймворком, запилил визуализатор со спрайтами Warcraft 2

Это шедевр!)

18
Итак. Все началось с 2х фейлов за неделю до старта беты :) Я начал писать свой визуализатор на базе того, что увидел у Ромки в последне видео за прошлый год, а также свой оптимизатор констант. и даже довел это до более менее рабочего состояния, но я не был готов к 20 000 тикам и стольким объектам :) Визуализатор крешил браузер из-за огромных файлов логов. Оптимизатор не отыгрывал достаточное количество матчей и я их забросил.

Основа алгоритма - потенциальные поля: смотрим 32 точки вокруг + под собой, идем в лучшем направлении. Первые 1,5 недели просмотривал разные материалы/научные работы по ботам для RTS, смотрел игры, разобирался в локал раннере (тогда еще лелеял надежду на моделирование миьнов, но лимиты по времени слишко жесткие).

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

Чтобы не попадать в локальный минимум при ходьбе (в бою отключал) добавлял "холмы" своим прошлы позициям, идея взята из видео: https://www.youtube.com/watch?v=22rG3IRuV5U
В принципе всего у меня было 4 вида полей: текущая "цель" (вейпоинт, бонус), "препядствия" - поле росло быстро около них, но почти не росло на расстоянии, "опасность" и "мишень". Последнее поле отключало поле "цель" и представляло из себя хитрую формулу учитывающую положение цели и точки оступления (чтобы не забегать в лес).

Опасность вычислялась для всех юнитов по разному но учитывала мою скорость, их кд, дальность атака, текущие таргеты миньонов, текущие таргеты башен (ведь зная как они выбирают цель можно бегать под ними довольно смело, хотя только уже после финала научился определять, что база врага на КД если я ее не вижу - очень помогло рашить), для магов еще и время поворота на меня.


Т1 - точка отступления, Т2-цель к которой тянется + ее опасность

Как многие для оптимизации мир "обрубал" оставляя только существенные препядствия и объекты.
Ходил по вейпоинтам + дейкстра, но проапгрейдил их до точек, которые имели "влияние" комманд и "владельца". Чтобы захватить точку нужно было удерживать влияние над ней определенное время с определенной силой.



Увороты: самое интересное и проблемное. У меня было 3 версии:
1 - На Потенциальных полях - добавлял отталкивающее поле опасности в каждое будущее положение прожектайла. Основная проблема - если в тебя летит 2 прожектайла, то маг встает по середине и ловит оба :)

2 - моделировал отход в 32 направления + стоть на месте пока не увернусь/подставлюсь/упрусь, брал то где меньше дамага получаю (для ледышек дамаг завышал). Оставшиеся направления подавал в ф-юю хождения по потенциальным полям и жил так радостно до конца второго раунда. Основная проблема - не оценивает еще не выпущенные прожектайлы. + поля опасности от магов учитывали каст ренж, но они не учитывали, что если я очень быстрый то могу подойти ближе и все еще уворачиваться от всего. Эту версию уворотов я потом использовал для оценки стрелять во врага или нет, если он дамаг по нему до добавления "вероятностной" ММ в мир меньше чем после, то я стрелял. Потом стал добавлять туда еще прожектайлы от союзных визардов, готовых выстрелить в ближайшие 5 тиков - это слегка повысило кучность и хитрость стрельбы в группах. Стрелял не  центр, а в точку от которой бежать во всех направлениях одинаковое время:

public static V2d getShootPoint(V2d aimPos, V2d aimAngle, double projectileRadius) {
    return aimAngle.copy().mul((projectileRadius + 35.0d) / 7.0d).add(aimPos);
}

3 версия... примерно тоже самое, что и вторая, только теперь я в коллекцию прожектайлов добавлял те, что могут быть выпущенны магами в ближайшие 50 тиков, для каждого направления они генерировались свои, чтобы маг как бы всегда стрелял в самую неудобную точку. перебиралось примерно так:
- сначала пытался увернуться от всех реальных снарядов в 32(+1) направлениях, при это создавая снаряды "вероятностные" по мере движения
- если снаряд попадал в меня в этом направлении добавлял его дамаг
- если попад в поле вышки и я был та таргетом и кд =0 добавлял еще дамаг от вышки
- если ни один снаряд в меня больше не попадает, то из этого направления я начинал новый перебор опять в 32(+1) направлениях до тех пор пока уже не "вероятностных" снарядов или пока не увернусь от всех них или не столкнусь с препядствием.
А, и дамаг от "вероятностных" снарядов я добавлял с экспотенциальным затуханием по расстоянию которое пролетит снаряд - чтобы со временем маг убегал от слишком приблизишихся магов, а не считал "какая разница, что тут попадут, что на границе в 1 пиксель от безопасной зоны" - ведь раг мог и не выстрелить :)

Это самая сложная и сама костыльная часть проекта, т.к. приходилось ного чего править, допиливать, убирать лишнюю пугливость, проверять когда можно поворачиваться для выстрела, а когда надо 100% уворачиваться (если не мог увернуться от реальных прожектайлов, то я даже не рыпался). Делать костыли на то, что маг может слегка подбежать.



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

Наверное это самая основа алгоритма, разуеется было куча твиков, я падал по времени с 3ми уворотами, было куча ошибок и багов в константах, некоторые баги в константах заставляли меня подниаться буквально моментально мест на 10-20 выше (в топ-100)

Получилось много и субурно, если что-то не понятно или какая-то конкретика нужна - спрашивайте.

P.S. с первого раунда научился добивать своих (даже с бешенныи рейтами на Френдли фаер в первом раунде это можно было сделать чередуя дубинку и ММ), это иногда помогало не "кормить" врагов + давало немного больше опыта в перво раунде, но это не так значимо, как удовольствие от очередного союзника которого увел в лес и забил под сосной...

19
Russian AI Cup 2017: CodeWars / Re: Cледующий raic 2017
« : Декабря 25, 2016, 11:01:57 pm »
У меня появилась вот такая идея...

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

Еще предложение по поводу песочницы: можно ли сделать чтобы волны были для всех одного типа? А может даже просто чередовать типы игр по очереди: сначала все играют как в первом раунде, потом волна игр по правилам 2го раунда и т.д.?

20
а что же топик кастер скромничает?
Кастовал в торопях, дайте мне пару едениц времени и я попробую максимально кратко описать, на мой взгляд, самые интересные вещи или проблемы которые мне удалось решить.

21
До конца песочницы осталось всего несколько системных игр. Скоро будут результаты, а так же начнут появляться статьи от победителей. Но ведь участников было много, и было много интересных решений/алгоритмов.
Я предлагаю максимально кратко рассказать об основных вещах которые вы реализовали или вещах, которые вы сделали лучше, чем другие (кто-то там у нас самый шустрый в лесу бегает? ;) ). Если кто-то писал на языках, вроде python, то я бы почитал как они обходили проблемы с производительностью.

(тему создал сейчас пока еще читают форум, но если боитесь за беспорядок, то лучше начать делиться после окончания борьбы в песочнице)

22
Russian AI Cup 2017: CodeWars / Re: Cледующий raic 2017
« : Декабря 23, 2016, 01:55:10 pm »
Еще не раз всплывала тема, что надо бы уже сделать возможность грабить корованы...

23
Russian AI Cup 2017: CodeWars / Re: Cледующий raic 2017
« : Декабря 23, 2016, 11:23:43 am »
Если все-таки будет пошаговая (хотя может и для не пошаговой можно что-то придумать), то можно взять механику из настолок (Каркасон), где каждый игрок кроме самого взаимодействия с миром и другим участниками генерирует карту/мир. Или же карта раскрывается по кусочку каждый ход.
Можно попробовать давать разные роли игрокам (как в гномах вредителях - одни строят, другие запутывают, но никто не знает у кого какая роль, отсылочка к игре "мафия"), но тут проблема - надо их балансировать.

24
Russian AI Cup 2017: CodeWars / Re: Cледующий raic 2017
« : Декабря 23, 2016, 09:43:08 am »
В этом году кстати не хватало зрелищности от взрыва файерболов, можно было бы отбрасывать визардов и миньонов взрывной волной.

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

25
Russian AI Cup 2017: CodeWars / Re: Cледующий raic 2017
« : Декабря 19, 2016, 08:09:53 pm »
Если все-таки будет что-то не как предложил Green Tea (и кстати у него в прошлый год было интересное предложение про нинзя), и будет опять 1-5 юнитов. То хотя бы "развитие" правил хотелось бы больше как в хоккее - там сразу было 2 игрока и с первого дня все пилили взаимодействие их между собой (защита/атака) это было очень интересно. В вариантах последних двух лет сначала все учатся управлять 1 машинкой/магом а потом костылят взаимодействие. Пусть оно будет простое, но с самого начала.

26
78-ую версию у Antmsu сильно глючит.

78-я как раз настроенна на сильну агрессию, по его словам.
Если уж попытаться играть в защиту, то можно попробовать 1+4*75 против 5*78...

27
Не очевидно, надо проверять. Башня сейчас намного слабее 1 волшебника.
Попробовал так:
http://russianaicup.ru/game/view/98629 - тут без шансов
и так:
http://russianaicup.ru/game/view/98628 - ошибка позиционирования в бою команды с 5 мид

28
Что-то мне кажется, что сейчас будут доводы про то, что если очень-очень захотеть, то можно придумать контр-меру. Но я тоже за то, чтобы придумывать защиту от заходов в тыл/окружения и тим файт комбо, чем пытаться хоть какими-нибудь костылями предотвратить врыв по миду.

Еще одна идея: ограничить входной дпс по башне - чтобы ограничить время ее сноса и сделать его одинаковым для случаев сноса в 5 и в 2 мага.

29
1. Yes, it sadly but we should calculate all auras and skills to get speed/rotateSpeed. Except castRange - it's already calculated properly.
2. No. It's better think of projectile that every tick it flies continuously from %current_position% to %current_position% + %speed% and disappears in the middle in case it went beyond castRange.

Also please take into account that:
- Wizards moves differently - they are teleported from one position to another.
- Every tick wizards are moved before projectiles, so you can actually step onto magicMissile and be damaged by it.

30
Автор треда, добавь, пожалуйста, голосование стоит ли банить Commandos или нет. Вопрос сложный, но мы же в цивилизованном обществе находимся. :D

31
Попробовал выстрелить так, чтобы снаряд попадал на границу мага и в момент попадания делать шаг. Если урон наносился бы, то это означало, что сначала двигается снаряд. Но урона маг не получает в таком случае. Попробуйте сами, может я ошибаюсь и тогда буду рад, если меня исправят: https://dl.dropboxusercontent.com/u/15020766/projectiles-test.7z (там примитивный код на питоне, посмотреть можно просто запустив локал раннер батник)

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

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

Не совсем. Я просто попробовал сделать тест, где снаряд прилетает на границу юнита и он отходит в этот же тик. Урона не было => сначала перемещаются маги, затем снаряд. Кто-то другой проверил, что визарды перемещаются телепортируясь не задевая за объекты по пути, а пули нет (что вполне логично, учитывая их скорость). И по мне так это просто особенность реализации, с которой можно жить. Баг возможно тут есть, если в точке где пуля остановилась она проверяется на столкновение два раза. Вот тут по мне так логичнее на следующем тике брать уже пулю со смещением на 0,1скорости.

~tl;dr~
Маги должны двигаться как можно проще, чтобы не моделировать физику не полного шаг. Пули слишком быстрые и можно считать их движение плавным.

33
Попробуй посмотреть вот тут: http://russianaicup.ru/forum/index.php?topic=728.0

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

35
Russian AI Cup 2016: CodeWizards / Re: Fireball render - Chrome
« : Ноября 28, 2016, 12:32:07 pm »
Быстро!  :o
Спасибо.

36
Russian AI Cup 2016: CodeWizards / Fireball render - Chrome
« : Ноября 28, 2016, 12:05:33 pm »
При запуске фаербола любым магом визуализатор виснет и в консоле:
jsrenderer-min.js:8917 Uncaught TypeError: Cannot read property 'set' of undefined(…)GamePlayer.createProjectileHitEffect @ jsrenderer-min.js:8917GamePlayer.customEffect @ jsrenderer-min.js:11247GamePlayer.update @ jsrenderer-min.js:9104GamePlayer.render @ jsrenderer-min.js:9202Player.render @ jsrenderer-min.js:8675(anonymous function) @ jsrenderer-min.js:8685

UPD: чинится включением Particles

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

38
Russian AI Cup 2016: CodeWizards / Re: Выбор цели башней
« : Ноября 22, 2016, 04:14:03 pm »
Учитывает ли эта функция защиту волшебника от щита и прокачанных умений?
Насколько мне известно - нет. Просто по HP.

39
Russian AI Cup 2016: CodeWizards / Re: объезд препятствий
« : Ноября 22, 2016, 12:07:15 pm »
...было бы ещё интересно взглянуть на код выбора цели для атаки у миньонов...
Не уверен, но вроде всегда ближайшего + кейс с ближайшим деревом у диких лесорубов.

40
Russian AI Cup 2016: CodeWizards / Re: Random seed
« : Ноября 16, 2016, 04:30:55 pm »
Это имеет смысл. Т.е. при одном сиде локалраннера стратегия получит один и тот же сид, но не будет знать сид локал раннера. И теоретическая возможность полностью смоделировать положения бонусов/миньонов/деревьев отпадает.

41
Russian AI Cup 2016: CodeWizards / Re: Быстрый старт Python 3
« : Ноября 15, 2016, 04:33:41 pm »
Самая главная ошибка это в расчет расстояния для точки, два раза используется Х координата.
На коленке написано, но вот от меня вариант квикстартгая на py3: http://pastebin.com/5Ls7zY7C

42
Russian AI Cup 2016: CodeWizards / Re: Определение гибели
« : Ноября 14, 2016, 02:20:55 pm »
Мне кажется по тикам самое удобное. В принципе зная время своего прошлого перерождения можно однозначно определить количество тиков после смерти, которое ты пропустишь если умрешь в прошлый тик.

А зачем вообще надо знать что был убит?

Рискну предположить, что могут быть стратегии на конечных автоматах и им нужно перейти в стартовое положение.

43
Russian AI Cup 2016: CodeWizards / Re: numpy/scipy для python
« : Ноября 13, 2016, 09:35:05 pm »
Где-то в коментариях SladeThe вроде писал что numpy есть. Попробуй импортировать оба модуля и залить тестовую стратегию, если не упадет - значит точно есть) Но по хорошему эту информацию надо вынести на страничку языковых пакетов.

44
Russian AI Cup 2016: CodeWizards / Re: Время жизни снаряда.
« : Ноября 13, 2016, 05:13:02 pm »
Или наоборот, поверяет minDistance в момент первого соприкосновения, а если снаряд начал уже внутри башни дествовать, то он игнорит, т.к. эта пара объектов уже помечена, как "не пересекающиеся" (тут надо получше чем я рабираться в методе BeforeCollisionStart у https://github.com/Russian-AI-Cup/notreal2d/blob/475188b716234b09db3fec1b67866314c6d88aaf/src/main/java/com/codegame/codeseries/notreal2d/listener/CollisionListener.java т.к. именно там проверяется minCastDistance)

45
Russian AI Cup 2016: CodeWizards / Re: Время жизни снаряда.
« : Ноября 13, 2016, 04:34:10 pm »
Цитировать
Кто-то писал, что возможно из-за того, что за тик снаряд пролетает сразу 40 единиц, и возможно оно округляет до int(distance/40.0)*40
Проверял. Иногда, он пролетает и больше.

Я сам еще не добрался до полноценной проверки этого, но может дело в минимально дистанции? интуитивно мне кажется, что проверка минимальной дистанции могла бы проходить раз в тик, а вот колизии 10 раз за тик. Т.е. снард просто не успевает "включится" если его минимальная дистанция 481, например.

46
В соседней теме обсуждается, что максимальное растояние, которое не делится на скорость снаряда на цело вроде как приводит к тому, что последний тик (когда снаряд до него еще не пролетел свой предел, а после уже за пределами своей жизни) может не наносить урона. Может это как-то связано?

Upd:
Скорость там 40 у снарда.
т.е. можно провеить, если реальная дальность полета будет не 500, а 480, т.е. в текущем случае + радиус рокеты + радиус башни = 540 растояние от башни, то теория верна.

47
Russian AI Cup 2016: CodeWizards / Re: Время жизни снаряда.
« : Ноября 12, 2016, 11:00:35 am »
Эксперимент показал что исчезает без нанесения урона (если у меня нет багов). В правилах поведение вроде не описано.

Интересно. Я бы предположил, что там опять тик делится на 10 микротиков, где в каждый момент проверяются столкновения.

48
Russian AI Cup 2016: CodeWizards / Re: Тимплей
« : Ноября 10, 2016, 04:33:18 pm »
up, добавил опрос

49
Повторил, за 2000 тиков стоит на месте

50
Russian AI Cup 2016: CodeWizards / Re: Время жизни снаряда.
« : Ноября 09, 2016, 07:01:16 pm »
Тоже не нашел, видимо надо самим. Веоятно сделано, что бы нельзя было по снаряду узнать где был потивник в момент запуска. Ну и по логике если ты не видишь момент запуска - ты не знаешь о снаряде ни владельца, ни дальность (которая вроде от характеистик владельца тоже зависит).

Страницы: [1] 2