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

RESTanks: на конкурс AI

Страницы: 1 2 310 11 Следующая »
#0
(Правка: 26 мар 2023, 10:11) 23:43, 10 мар 2023

Цель конкурса


Написать AI-клиента, который в матчах с другими AI победит соперника. Клиент можно писать на любом языке. Ниже документация по API и примеры клиентов на Python и C#.

Онлайн карта

FAQ

+ Показать

Web API для управления танком

+ Показать

Пример базового клиента на Python

+ Показать

Пример базового клиента на C#

+ Показать
#1
23:51, 10 мар 2023

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

#2
0:00, 11 мар 2023

#!
> раскрой секрет, сессия привязывается к клиентскому хосту или это один общий танк на всех?)
да, один на всех)
потом прикручу создание собственных танчиков / отдельных сессий

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

#3
0:30, 11 мар 2023

Очень правильно что сделал отдельную тему.

#4
0:34, 11 мар 2023

переживал за загрузчик по url, а нужно было за парсер html

+ Показать
#5
0:44, 11 мар 2023

#!
> переживал за загрузчик по url, а нужно было за парсер html
не, это мой косяк. переделаю на возврат в формате json, чтобы проще было парсить

#6
(Правка: 11:10) 10:50, 11 мар 2023

#!
> переживал за загрузчик по url, а нужно было за парсер html
теперь запрос https://gdtanks.pythonanywhere.com возвращает json. Пример ответа:

+ Показать

Добавил возможность стрелять. Правда, пока врагов нет. АПИ:

- Выстрелить влево: https://gdtanks.pythonanywhere.com/shoot/left
- Выстрелить вправо: https://gdtanks.pythonanywhere.com/shoot/right
- Выстрелить вверх: https://gdtanks.pythonanywhere.com/shoot/up
- Выстрелить вниз: https://gdtanks.pythonanywhere.com/shoot/down

#7
14:27, 11 мар 2023

Если следовать канонами баттлсити, то выстрел возможен только по ходу движения. В противном случае возникает вопрос насчёт поворота башни.

#8
16:38, 11 мар 2023

Ren
> Если следовать канонами баттлсити, то выстрел возможен только по ходу движения.
> В противном случае возникает вопрос насчёт поворота башни.
Для чего это нужно? Типа более приближено к реальности?

#9
16:54, 11 мар 2023

интереснее вопрос а можно ли проламывать BLOCK выстрелом?

#10
18:33, 11 мар 2023

#!
> интереснее вопрос а можно ли проламывать BLOCK выстрелом?
Нельзя, а то снесёшь к херам всю карту)
В батлсити были, вроде, два типа блоков: пробиваемые  и непробиваемые. Можно сделать типа такого.

У меня дилемма по глобальной архитектуре. Через РЕСТ АПИ не очень понятно, как сообщать игроку, что его подбили. Удобнее было бы использовать вебсокет, он сам сообщает клиенту обо всех событиях. Но написать клиента на вебсокете сложнее, поэтому порог вхождения в конкурс, который и так достаточно экзотичный, будет ещё выше.

#11
21:14, 11 мар 2023

aliskda
> как сообщать игроку, что его подбили
точно так же в ответ на любую команду, ваши координаты, вы убиты)

ну и просто игнорить команды от убитого
не знаю что с respawn, надо будет переподключаться?

#12
22:21, 11 мар 2023

aliskda
Потому что «танк». Танк не может стрелять в противоположные стороны одновременно, иначе это не танк. В оригинале проблема решена тем что танк стреляет только вперёд, то есть сначала надо развернуть танк в нужную сторону, потом сделать выстрел. Наверное это самый простой вариант. Это важный элемент геймплея, как по мне.

#13
(Правка: 23:26) 23:05, 11 мар 2023

Ren
> Наверное это самый простой вариант
ты же в роли дизайнера выступаешь, обоснуй

вот у меня строго обратное предложение
https://gamedev.ru/projects/forum/?id=275396&page=10&m=5705385#m143

а башня пусть крутится в любую сторону максимально быстро, это же танк, и то нет уверенности что кто-то будет реально попадать

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

#14
0:25, 12 мар 2023

#!
> не знаю что с respawn, надо будет переподключаться
Респауна не будет. Матч длится до уничтожения одного из танков.

> вот у меня строго обратное предложение
> https://gamedev.ru/p… =5705385#m143
Имхо, не очень интуитивно понятное поведение

Ren
> танк стреляет только вперёд, то есть сначала надо развернуть танк в нужную
> сторону, потом сделать выстрел. Наверное это самый простой вариант
Мне кажется, это простое и интуитивно понятное для игрока поведение.
Но, как я понимаю, в реальности у танка направление движения и направление орудия не связаны. В идеале, нужно сделать два независимых параметра: "tankDirection" и "turretDirection" и дать возможность игроку манипулировать ими независимо друг от друга.

Идейки в бэклог себе, чтобы не забыть:
- Боты. Нужны для отладки ИИ. Можно пока, чтобы не стреляли, а тупо хаотично бегали по карте
- Сделать реплаи. Для начала достаточно записывать все действия игрока
- Таблица рекордов. Правда, не очень понятно, как считать очки. По количеству побед?

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