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

Конкурс ККИ: Gonna catch them all! [Закончен] (7 стр)

Страницы: 13 4 5 6 7 8 Следующая »
#90
21:44, 16 окт. 2016

Порядок
> коль уж нет обучения, напиши правила в ридми. половина читать не станет, зато вторая половина будет благодарна)
все же, на кое что есть :) на все туториалы увы не успел сделать.
там есть значок "?" в режиме боя, большинство нюансов раскрыто.
там довольно простой геймплей, легко методом втыка разобрать :)
завтра сделаю правила, сегодня уже никак..

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

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

> пс: провёл 3 боя, получил карту ***
а-я-я-й :)

+ Показать

> как только преимущество на твоей стороне, он уже ничего не может сделать)
угу. тоже заметил :)

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

- обновл сейчас сборку
- последнее обновление на сегодня. сейчас обновлю пост
WildCard_Demo_16_10_2016_06.zip глюк с обжорой ИИ исправил :)

#91
23:57, 16 окт. 2016

К сожалению из задуманного ничего толком не успел. Лишь сделал кат.сцены ко всем уровням. Гемплей начал делать примерно в 22:00, нагородил костылей, как работает ИИ самому не понятно. Надеюсь пройти можно. Играбельно не вышло. Ну, хоть кат.сцены можно посмотреть :) Скачать

#92
0:58, 17 окт. 2016

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

#93
8:13, 17 окт. 2016

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

эх.. думал бенедикт и хотя бы один клон хса до релиза доживут)

#94
8:18, 17 окт. 2016

Слился. Бросил сразу после того, как подал заявку :\
Вот демка: https://yadi.sk/d/FMjNDhliwyKfQ

#95
8:29, 17 окт. 2016

Голосуем по самой простой системе, выбираем 1 место, 2 и третье, отсылаем мне в личку.
Голосовать могут все, кто зарегался до 16.10.2016. Землю - рабочим, фабрики - крестьян, всю власть - народу!

#96
10:00, 17 окт. 2016

Kaps
Я ничего не понял. В какой-то момент становится нельзя ни по колоде кликнуть, ни карту выложить, ни даже "пропуск хода нажать". Один раз так было когда у меня 0 очков(хп?), второй раз - когда 51. Так что второй уровень так и не видел, но в первом катсцена прикольная.

Zegalur
А тут сразу разобрался. Ну как сразу, цена карт неочевидна и другие ньюансы есть, но после пары боев все ясно стало. Вот если бы я в MtG не играл - наверное фиг бы разобрался. Сначала не мог понять почему новые карты затемнены, но на четвертом враге открыл таки магазин и накупил всякой фигни, в результате чуть не слил, когда осталось 7 хп стал играть аккуратнее и все потихоньку его 50 хп расковырял. Дальше уже ночь была так что закрыл, жалко сейвов нет.
Механика простенькая, но всё на месте - и выбор есть (тащить\не тащить из колоды и бить\блочить\пропускать) и баланс. ИИ правда тупит, такое ощущение что все бои выигрываю потому что ИИ половину раз не атакует когда имеет возможность и гробит карты когда имеет. Ну а арт на высоте - карты, начальные экраны, всё красиво сделано. В общем хотя остальные еще не все смотрел, но по-моему победитель ясен.

#97
12:48, 17 окт. 2016

kipar
Спасибо за ревью :)
ИИ наверника реально подтянуть. Сейчас там чистый Monte Carlo Tree Search
Достаточно в дереве решений группировать аналогичные действия и тогда, теоретически, сила ии вырастет в разы :)

#98
14:03, 17 окт. 2016

kipar
> Kaps
> Я ничего не понял. В какой-то момент становится нельзя ни по колоде кликнуть,
> ни карту выложить, ни даже "пропуск хода нажать". Один раз так было когда у
> меня 0 очков(хп?), второй раз - когда 51. Так что второй уровень так и не
> видел, но в первом катсцена прикольная.

Есть видимо баг с зависанием "ИИ".

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

Как пройти все уровни:
В меню нажать на "колоду".
Перетащить из нижних рядов карт в верхние самые мелкие карты.
Из верхней части перетащить вниз самые крупные (главное взять две 50 синяя и красная)
Нажать кнопку "Сохранить" и идти играть.
В игре, сразу же брать карту и кидать её на зелёное игровое поле.
Дальше ждать как противник будет бить своими картами ваши, ну и потом уничтожить оставшиеся карты.
Если зависнет, то можно перезапустить игру нажатием Ctrl+R.

P.S. Немного о разработке. Слишком много я потратил оставшегося времени на эти катсцены, если бы не делал их, то на геймплей хватило бы времени с лихвой.
Так же ошибку допустил в том, что прошлые выходные ничего вообще не делал. А по будням над игрой работать не мог и/или не хотел.
В игре уже заложена возможность различных способностей у карт, оставалось лишь их просто добавить. Так же зачем-то делал поддержку английского языка, но опять же не успел перевести всё и озвучить, титры так же отключил, некогда было возиться со шрифтами, хотя титры есть.
Так же ещё хотел сделать разные вещи вроде, украсть карту у противника, или отойти от игрового стола и ходить по тюрьме, прямо в момент партии, и можно было бы где-нибудь в туалете найти хорошую карту. А так же хотел сделать, чтобы в момент игры можно было менять козыри, должны были вылезать разные штуковины, куда можно было бы закидывать карты и получать с них дополнительные очки. Эх! Недельки не хватило. Ну и недельку на мультиплеер.

#99
14:07, 17 окт. 2016

Kaps
да по итогу всегда не хватает недельки на одно, недельки на другоей, да и тут бы надо бы переделать, ещё б недельку...)

#100
14:37, 17 окт. 2016

Zegalur
>Сейчас там чистый Monte Carlo Tree Search
О, а порассказываешь детали реализации?

#101
15:27, 17 окт. 2016

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

#102
19:25, 17 окт. 2016

FordPerfect
> О, а порассказываешь детали реализации?
С удовольствием :)
Тем более очень краткого и доступного описания я не нашел.
Я опишу только ИИ читера, а потом, возможно более честное ИИ :)

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

+ Рис. 1.

Каждый узел, кроме состояния игры, хранит еще два вспомогательных числа:
+ N(s) - суммарное количество сыгранных случайных игр из состояния s.
+ W(s) - суммарное количество выигранных (для активного игрока) случайных игр из состояния s.
N(s) >= W(s), а так же, по рис. 1.
N(S0) = N(S1) + N(S2) + N(S3)

Процесс построения дерева решений для одной итерации состоит из 4-х этапов:
1) Выбор (Selection) - спускаемся по дереву в поисках узла, в которого есть ветки, для которых мы еще не смоделировали случайный бой.

+ Рис. 2.

При спуске, выбор действия (ребра) можно осуществлять по разному.
Для поточного состояния S ищем действие ai, где
а) классика UCT: i = arg maxi ( Vi / Ni + c * sqrt((ln N) / Ni) )
b) UCT + эксперт: i = arg maxi ( Vi / Ni + c * sqrt((ln N) / Ni) + Ei)
c) другое, много их..

здесь:
N - количество сыгранных случайных игр из поточного состояния S
Ni - количество сыгранных случайных игр после выполнения действия ai
Vi - количество выигранных для поточного игрока случайных игр после выполнения действия ai
c - некоторый коэффициент. здесь возможны вариации, c=0,7 или, например, с=sqrt(2).
Ei - экспертная оценка действия ai.
я использовал вариант b)

2) Расширение (Expansion)
Здесь также возможны варианты.
Для выбранного узла находим множество доступных действий.
а) Далее, для каждого действия, достраиваю дерево решений.
б) Или для некоторых действий, достраиваю дерево решений.
(у меня вариант а) )

+ Рис. 3.

3) Симуляция (Simulation)
С каждого нового состояния (узла) осуществляю быстрое моделирование боя/игры.
(здесь вроде можно и не одну а несколько случайных боев смоделировать, но не уверен)
Гугловцы в AlphaGo, на данном этапе, вроде, использовали нейросеть, у меня же очень простая эвристика.

+ Рис. 4.

4) Отдача (Backpropagation)
Распространяем результаты моделирования вверх по дереву.

+ Рис. 5.

Далее все очень просто :)
У вспомогательном потоке итеративно, по данной схеме, расширяю дерево решений пока время для раздумий в ИИ не истечет.
Тогда из корневого узла, в качестве действия, выбираем действие, для которого смоделировано небольшие количество случайных боев - действие a_I.
А вот здесь внимание! Не удаляем все дерево - вместо этого, в качестве корневого узла выбираем узел S_I. И продолжаем достраивать дерево!
(аналогично, если активный игрок - человек, выбираем то действие a_I которое сделал игрок)

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

Линки по теме (второй и третий линк про более чесное ИИ, которое не знает карты/(полное состояние) противника):
http://www.cameronius.com/cv/mcts-survey-master.pdf
http://etheses.whiterose.ac.uk/8117/1/Feb%2016%20-%20FINAL.pdf
https://pure.york.ac.uk/portal/files/13014166/CowlingPowleyWhitehouse2012.pdf
http://airesearch.com/wp-content/uploads/2016/01/deepmind-mastering-go.pdf
https://en.wikipedia.org/wiki/Monte_Carlo_tree_search

Потратил час но не жалею :)
Русский не мой родной язык, извиняюсь за возможные ошибки..
#103
21:55, 17 окт. 2016

Zegalur
О спасибо.

http://www.cameronius.com/cv/mcts-survey-master.pdf я бегло проглядывал. Формулка sqrt(ln) знакомая.

"Экспертная оценка" - это в шахматных терминах (статическая) оценочная функция позиции?

>А вот здесь внимание! Не удаляем все дерево - вместо этого, в качестве корневого узла выбираем узел S_I. И продолжаем достраивать дерево! (аналогично, если активный игрок - человек, выбираем то действие a_I которое сделал игрок)
Это то, что шахматные движки называют pondering?

Вроде вкусный алгоритм, может он заслуживает статьи на gamedev.ru?

#104
8:45, 18 окт. 2016

FordPerfect
> "Экспертная оценка" - это в шахматных терминах (статическая) оценочная функция позиции?
Угу. Можно и позицию оценивать (но позицию уже после действия, которое оценивается).
Но лучше всего (универсальнее) оценивать именно само действие + его результат :)
То есть, например, если а_i - действие "походить" картой Х, то нужно оценить само действие
("походить" картой Х) а так же, если есть возможность, результат S_i, который данное действие
принесет (например, та же оценочная функция позиции). Просто, для шахмат оценочная функция
известна, а для какой-то MtG или Go уже не очень :)

Например, действие "скинуть карту" для некой игры Z, которое практически всегда, кроме
нескольких случаев, будет гораздо хуже других действий. Тогда и оценка действия
"скинуть карту" будет ниже чем для других и т.д. :)

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

> статьи на gamedev.ru?
Отличная мысль! Правда я сначала доделаю ИИ для моей ККИ (сделаю группирование действий и т.д.) что бы
в статье кроме теории еще и конкретное решение подать :)

Страницы: 13 4 5 6 7 8 Следующая »
ПроектыФорумКонкурсы

Тема в архиве.