Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 | 2 |

 

  Вопрос: Потестите игру! Добавлено: 05.06.14 17:14  

Автор вопроса:  vito | Web-сайт: softvito.narod2.ru

Ответить

  Ответы Всего ответов: 26  

Номер ответа: 16
Автор ответа:
 Mikle



Вопросов: 5
Ответов: 133
 Профиль | | #16 Добавлено: 16.06.14 09:52
А была бы PC версия, да ещё с настройками управления, особенно инверсии - по крайней мере от меня бы был фидбэк в теме :)

Ответить

Номер ответа: 17
Автор ответа:
 vito



Разработчик Offline Client

Вопросов: 23
Ответов: 879
 Web-сайт: softvito.narod2.ru
 Профиль | | #17
Добавлено: 19.06.14 19:44
РС версия обновлена. Только инверсию еще не успел.
Сейчас добавляю «ума» ботам. В основном аппарат «Теории игр».
Дифференциальные игры - преследование нарядом (группой ботов).
Матричные игры для выбора ботом оптимального расстояния для стрельбы.
 Так же ограничиваю ботам область зрения(сейчас они видят вас в любом месте). Поиск в глубину и ширину, возможно эвристический.
В общем воевать будет непросто, но интересно.

Ответить

Номер ответа: 18
Автор ответа:
 Mikle



Вопросов: 5
Ответов: 133
 Профиль | | #18 Добавлено: 20.06.14 05:49
инверсию еще не успел

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

Можно сделать, чтобы с расстоянием уменьшалась вероятность того, что бот вас увидит, если ещё сделать, чтобы вероятность так же уменьшалась, если не двигаться - будет почти как с живым соперником.

Ответить

Номер ответа: 19
Автор ответа:
 vito



Разработчик Offline Client

Вопросов: 23
Ответов: 879
 Web-сайт: softvito.narod2.ru
 Профиль | | #19
Добавлено: 20.06.14 20:40
Инверсию проще всего делать, выставляя отрицательное значение чувствительности мыши по Y.

Кнопку лениво рисовать. :) Сделаю.

Можно сделать, чтобы с расстоянием уменьшалась вероятность того, что бот вас увидит, если ещё сделать, чтобы вероятность так же уменьшалась, если не двигаться - будет почти как с живым соперником.


Интересная идея.
Тогда расстояние можно реализовать обычным методом Монте –Карло.
Область видимости бота пусть представляет некий квадрат(не принципиально). Чем вы дальше, тем меньшую площадь в нем занимаете (перспективная поекция).
Потом генерируем, допустим 100 случайных равномерно распределенных точек (количество точек определяет точность зрения, скорректируем в процессе игры).
Если точки попали в площадь занимаемую вами, то вас увидели. Понятно, что при движении эта вероятность будет повышаться(распределение равномерное).

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

Как такой подход?

Попробую реализовать, посмотрим как это будет выглядеть в игре.

Ответить

Номер ответа: 20
Автор ответа:
 AWP



ICQ: 345685652 

Вопросов: 96
Ответов: 1212
 Web-сайт: xawp.narod.ru
 Профиль | | #20
Добавлено: 21.06.14 11:59
Зачем так сложно делать? Сделай, действительно, на вероятности. Там уже какие угодно коэффициенты можешь подставлять.

Ответить

Номер ответа: 21
Автор ответа:
 vito



Разработчик Offline Client

Вопросов: 23
Ответов: 879
 Web-сайт: softvito.narod2.ru
 Профиль | | #21
Добавлено: 21.06.14 12:50
Зачем так сложно делать? Сделай, действительно, на вероятности. Там уже какие угодно коэффициенты можешь подставлять.


Это не сложно. Реализация элементарная. Но аппроксимация несравнимо выше.
Только генераторы случайных чисел в Unity кривые - не равномерное распределение. Примерно половина величин близко к среднему, как при нормальном распределении. И доступа к родной библиотеке Net нет (точнее есть, для PC, но как и предупреждают разработчики один большой глюк получается).
Завтра думаю выложу. Посмотрим что вышло.

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

Ответить

Номер ответа: 22
Автор ответа:
 Mikle



Вопросов: 5
Ответов: 133
 Профиль | | #22 Добавлено: 21.06.14 14:11
Этот метод может и прост, но сильно нагрузит проц - проверка 100 лучей на пересечение в каждом кадре.
Я бы сделал так:
1. Проверка на попадание ГГ в пирамиду видимости бота, если не попадает - не видит, иначе дальше.
2. Проверка луча зрения ГГ-бот, если пересекает ландшафт, то не видит, иначе дальше.
3. Если флаг того, что ГГ замечен, установлен - бот действует соответственно, иначе дальше.
4. Вычисляем:
  1. kR*kS*Rnd-kT/T

T - время с предыдущей проверки в секундах.
kR - коэффициент зависимости заметности от расстояния от 0 (вдали) до 1 (вблизи).
kS - коэффициент зависимости заметности от скорости от минимума, когда не движемся, например 0.3, до 1, когда движемся максимально быстро.
kT - среднее время реакции бота в секундах.
Rnd - случайное число от 0 до 1.
Если полученный результат >0, то бот нас заметил, выставляем соответствующий флаг. Флаг будет снят после того, как не будет пройден тест на видимость (пп. 1 или 2). После потери видимости можно временно уменьшать kT и постепенно плавно возвращать его к норме - это бот после потери цели становится на время более внимателен.
Если нужно случайное число от 0 до 1, вот мой вариант:
  1. Dim Ri As Double
  2.  
  3. Function Rand() As Single
  4.   Ri = 1.314 * Ri + 1.737
  5.   If Ri > 983732.3456 Then Ri = Ri * 0.3141
  6.   Rand = Ri - Int(Ri)
  7. End Function
  8.  
  9. Sub RandInit(ByVal r As Single)
  10.   Ri = r
  11. End Sub


RandInit - начальная инициализация, Rand - случайное число.

Ответить

Номер ответа: 23
Автор ответа:
 vito



Разработчик Offline Client

Вопросов: 23
Ответов: 879
 Web-сайт: softvito.narod2.ru
 Профиль | | #23
Добавлено: 23.06.14 00:44
Попробуем Mikle. Сейчас готова первая реализация(только для робота- цифра 4). Единственное что не успел, сканирование ботом при потере цели. Много с глюками движка боролся, но так все и не устранил.

Обновлены: Web и PC для Windows.
https://afternoon-tundra-8474.herokuapp.com/duelbeta.html
https://afternoon-tundra-8474.herokuapp.com/Dec/DuelWin.zip

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

Ответить

Номер ответа: 24
Автор ответа:
 Mikle



Вопросов: 5
Ответов: 133
 Профиль | | #24 Добавлено: 24.06.14 10:14
vito, а что ты не разместишь эту тему где-нибудь на GameDev.ru? Там будет больше отзывов.

Ответить

Номер ответа: 25
Автор ответа:
 vito



Разработчик Offline Client

Вопросов: 23
Ответов: 879
 Web-сайт: softvito.narod2.ru
 Профиль | | #25
Добавлено: 24.06.14 17:45
Вы мне помогли гораздо больше. Серьезно.
А отзывы от разработчиков игр ожидаемы. Есть определенные игровые стандарты и все отзывы будут указывать на отклонение от них. Это малоинтересно.

Были интересны возможности движка. Слишком на многое они замахнулись в плане физики. Ожидаемо получился один большой глюк. Сейчас мы как раз это на форуме Unity обсуждаем.
Там конечно объясняют(пытаются), что все хорошо, только что – то делаю не так.
Но итог – физики в движке нет. Более точно, она реализована столь криво, что единственный вариант практически все делать вручную.
Остается от движка лишь средненькая графика.
Unity неплох для 2D, в 3D там что-то серьезное писать смысла нет никакого. DX+VS представляет не меньше возможностей. Про устойчивость можно и не говорить.

Ответить

Номер ответа: 26
Автор ответа:
 vito



Разработчик Offline Client

Вопросов: 23
Ответов: 879
 Web-сайт: softvito.narod2.ru
 Профиль | | #26
Добавлено: 29.06.14 00:43
https://afternoon-tundra-8474.herokuapp.com/duelbeta.html
Для уровня 2 (цифра 2) добавил известную Р- стратегию. Она является основой ракет – перехватчиков и систем противоракетной обороны.
Немного сложно, но реалистично. Есть возможность попрактиковаться в «противоракетных» маневрах. :)
Модель реальная, не ждите от нее «приятного геймплея».

Ответить

Страница: 1 | 2 |

Поиск по форуму





© Copyright 2002-2011 VBNet.RU | Пишите нам