Воскресенье, 17 Ноября 2024, 18:49

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Клон игры Battle City (танчики) на Unity
8Observer8Дата: Четверг, 17 Декабря 2015, 16:24 | Сообщение # 1
заслуженный участник
Сейчас нет на сайте
Всем привет,

Речь пойдёт об этой игре: https://ru.wikipedia.org/wiki/Battle_City



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

Первое, что мне хочется узнать, случайно ли движение врагов? Каково ваше мнение?

Я не могу понять какой алгортм у врагов и как человеку, который сделал игру по ссылке выше, удалось так точно воспроизвести поведение врагов из оригинальной игры?


Сообщение отредактировал 8Observer8 - Четверг, 17 Декабря 2015, 16:39
Jon®Дата: Четверг, 17 Декабря 2015, 16:54 | Сообщение # 2
Painter
Сейчас нет на сайте
И зачем делать копию)
8Observer8Дата: Четверг, 17 Декабря 2015, 17:03 | Сообщение # 3
заслуженный участник
Сейчас нет на сайте
Цитата Jon® ()
И зачем делать копию)

В плане самообучения. Хочу повторить максимально близко. Тот же парень смог повторить.

Добавлено (17 декабря 2015, 17:03)
---------------------------------------------
Надеюсь, меня не забанят из-за ссылки на хабр: http://habrahabr.ru/post/142126/

Там есть описание поведения врагов в разделе Интеллект противников

Цитата
Существует три периода поведения танков: сначала они движутся хаотично, затем они преследуют игроков, и, в конце концов, начинают атаковать штаб. Длительность первых двух периодов одинакова и равна восьми периодам респауна. Т.е., поделив время респауна на 8, мы получим длительность в секундах (или, умножив на 8, получим то же самое время в кадрах) — например, для первого уровня и одного игрока это будет 23 секунды. Третий же период будет длиться до тех пор, пока счётчик секунд не обнулится (достигнув 256), и цикл периодов не начнётся заново.

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

При пересечении вражеским танком границы тайла (когда обе коодринаты становятся кратны восьми), существует вероятность 1/16, что для танка будет вызвана эта функция. Если же координаты танка не были кратны восьми, либо же не была вызвана функция смены направления, и при всём этом танк упирается в препятствие, то с вероятностью 1/4 произойдёт следующее: танк сменит направление на противоположное, если хотя бы одна из координат не кратна восьми, в ином случае танку будет дана команда смены направления.

При выполнении команды смены направления происходит несколько другое: с вероятностью 1/2 вызывается описанная выше функция, иначе с равными вероятностями циклически берётся либо предыдущее, либо следующее направление из списка: вверх, влево, вниз, вправо (т.е. танк поворачивается либо по часовой, либо против часовой стрелки).


Сообщение отредактировал 8Observer8 - Четверг, 17 Декабря 2015, 17:06
seamanДата: Четверг, 17 Декабря 2015, 23:02 | Сообщение # 4
старожил
Сейчас нет на сайте
Ты ж уже делал ее для обучения. Снова?
При буквальном повторении этого алгоритма - танки у меня вели себя неадкватно. Как я понимаю из-за того, что там все расчеты дискретны - по пикселям и столкновения определяются не коллайдерами, а как-то иначе. Вот тут определяется столкновение:
else if (!tank.isPlayer && frontTile.isBarrier&& rand() % 4 == 0)
У меня же все на коллайдерах и расчеты идут float. Пришлось отходить от оригинального алгоритма, правда не очень сильно.
ЗЫ. НЕ уверен, но возможно на новогодних каникулах я все же себя заставлю снять урок по ИИ в танчиках, тем более, что все уже готово, даже текст.


Сообщение отредактировал seaman - Четверг, 17 Декабря 2015, 23:09
8Observer8Дата: Четверг, 17 Декабря 2015, 23:21 | Сообщение # 5
заслуженный участник
Сейчас нет на сайте
Цитата seaman ()
Ты ж уже делал ее для обучения. Снова?

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

Цитата seaman ()
При буквальном повторении этого алгоритма - танки у меня вели себя неадкватно.

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

Цитата seaman ()
Пришлось отходить от оригинального алгоритма, правда не очень сильно.

Я постараюсь, чтобы получилась точная копия оригинальной игры. Это мой принцип.

Цитата seaman ()
НЕ уверен, но возможно на новогодних каникулах я все же себя заставлю снять урок по ИИ в танчиках, тем более, что все уже готово, даже текст.

Пожалуйста, запишите, так как в интернете кроме статьи с хабра ничего нет. Пусть ваша версия ИИ будет отличаться от оригинала и будет упращённой, но это лучше, чем ничего.


Сообщение отредактировал 8Observer8 - Пятница, 18 Декабря 2015, 00:03
TLTДата: Пятница, 18 Декабря 2015, 00:07 | Сообщение # 6
Сейчас нет на сайте
8Observer8, движок оригинальной игры на NES давно дизассемблирован и прокомментирован моим знакомым, который знает об игре всё. Его сырец с комментариями доступен в сети. Если хочешь, то дам мыло или другие контакты, чтобы ты мог задать ему вопрос и он тебе ответил про самые каверзные детали оригинала.

Дао, выраженное словами, не есть истинное Дао.
8Observer8Дата: Пятница, 18 Декабря 2015, 00:13 | Сообщение # 7
заслуженный участник
Сейчас нет на сайте
Цитата TLT ()
Если хочешь, то дам мыло или другие контакты

Да, конечно, хочу! Я не буду его сильно мучить вопросами.
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг