Форум РУССКО-ЯПОНСКАЯ ВОЙНА
Форум РУССКО-ЯПОНСКАЯ ВОЙНА
Цусима.SU

ВНИМАНИЕ!!!
Форум переехал на новый адрес http://tsushima.su/forums.
Этот форум больше не поддерживается



АвторСообщение
Мичманъ



Рапорт N: 15
Рейтинг: 0
ссылка на сообщение  Отправлено: 31.10.06 09:48. Заголовок: Формулы для компьтерной игры


Доброго времени суток.

Мы делаем wargame, где время разбито по турам. Каждый игровой тур - пять минут реального времени. За этот тур одно орудие среднего калибра в состоянии выпустить до 15 снарядов в бою (беру статистику РЯВ). Мы не можем разделять каждый выстрел из каждого орудия в тур - игра должна быть не только реалистичной, но и простой в управлении и освоении для неспециалиста. Поэтому в интерфейсе игрок будет выбирать цель, а далее AI будет отсчитывать по секторам обстрела, те пушки, что могут стрелять в цель. Для баллистической траектории важен угол ствола орудия - как нам его задать для 15 различных вариантов, только одного орудия? Усреднять и брать всегда один для всех на одинаковой дальности?

Самое сложное это распределение попаданий по частям корабля. Мы разделили 3D модель на 30 частей, где каждая имеет влияние на общие характеристики корабля - скорость, скорострельность пушек и т.д. Мы знаем сектор, в котором находится та часть корабля, которая может получить попадание снарядом. Как правильнее задать формулу распределения этих случайностей.

С уважением Максим Ф. Пернатый Змей. www.totemgames.ru


Спасибо: 0 
Личное дело Цитата Ответить
Новых ответов нет [см. все]


Адмиралъ



Рапорт N: 1477
Корабль: ЭБр Ретвизанъ
Откуда: Россия, Москва
Рейтинг: 3
ссылка на сообщение  Отправлено: 01.11.06 13:32. Заголовок: Re:


Здравствуйте.

Проблема моделирования арт.стрельбы в целом давно решена.
И Ваш вариант мало чем отличается от остальных.

Пернатый Змей пишет:

 цитата:
Для баллистической траектории важен угол ствола орудия - как нам его задать для 15 различных вариантов, только одного орудия? Усреднять и брать всегда один для всех на одинаковой дальности?

Это непонятно. Почему они РАЗНЫЕ? Из-за движения корабля в течение "тура"? Так берите по любой точке (мы вот берем на середину), или усредняйте. Или уменьшайте длину "тура".

Пернатый Змей пишет:

 цитата:
Самое сложное это распределение попаданий по частям корабля.

Это безусловно. Даже не само распределение а последующая обработка.

Пернатый Змей пишет:

 цитата:
Мы знаем сектор, в котором находится та часть корабля, которая может получить попадание снарядом. Как правильнее задать формулу распределения этих случайностей.

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

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

Спасибо: 0 
Личное дело Цитата Ответить
Мичманъ



Рапорт N: 16
Рейтинг: 0
ссылка на сообщение  Отправлено: 01.11.06 20:01. Заголовок: Re:


Спасибо, что ответили, очень хотел с Вами пообщаться.

1. Значит усреднение угла ствола орудия вполне возможно. Это многое упрощает.
2. Представьте себе сетку, где на некоем расстоянии друг от друга и под разными углами носового вектора друг другу расположены два корабля. Атакующий корабль с помощью AI проверяет дальность до корабля-цели. Затем сравнивает эту дальность с максимальной дальностью каждого орудия и отсеивает, те, что могут стрелять. После чего перебором оставшихся орудий среднего калибра или башен главного калибра проверяет, какие из них могут повернуться в сторону цели (геометрический сектор на плоскости). Отсеивает лишние. Оставшиеся орудия одновременно выпускают в сторону цели количество снарядов, определяемое боевой скорострельностью (с учётом выучки и состояния корабля и орудия). Скажем, для 6” пушки это будет 15 снарядов. Затем с учётом дальности до цели делаем поправку на точность (баллистический калькулятор мне сбросили – осваиваем). Пусть точность составила 5%, значит, в цель попало 0,75 снаряда. Конечно, такого не может быть, но мы считаем, что попал полный снаряд, однако нанёс только 75% от своего полного повреждения, если его бронепробиваемость равна и более брони той части корабля, куда он попал. Далее аналогично для всех оставшихся орудий.
3. Поскольку модель корабля математическая, а не физическая, то реальный снаряд не будет вылетать в сторону цели, и из ствола орудии не будет исходить луч, и мы будем знать лишь начальный и конечный угол для определения сектора обстрела. В течение пяти минут канониры не могут не изменять положения пушки (или могут?). Они будут целиться более в сторону корабля, нежели в его конкретную часть. Итак, по сектору стрельбы мы знаем, что 1 из 15 снарядов может попасть в 5 из 30 частей корабля. Равномерно распределить 1 снаряд на 5 частей мы не можем. Что делать?
4. Я придумал следующий вариант. Самая малая по площади часть корабля берется за единицу и ей присваивается номер 1. Все остальные части определяются по площади в нашей самой маленькой для определения, сколько цифр им нужно присвоить для моделирования площади это части. К примеру, часть, имеющая в два раза большую площадь получит цифры-номера 2 и 3. То есть если бы наш снаряд мог попасть только в две вышеуказанные части, получился бы случайный выбор из 3, но поскольку большей части присвоены две цифры, то вероятность попадания в них получается в два раза больше, чем в меньшую по площади единичку.

Надеюсь, что не очень запутанно. С уважением.


Спасибо: 0 
Личное дело Цитата Ответить





Рапорт N: 17
Рейтинг: 0
ссылка на сообщение  Отправлено: 01.11.06 23:28. Заголовок: Re:


А почему бы не использовать ГСЧ (генератор случайных чисел) - например от 1 до 100

например в Seekrieg 4:

для малых дистанций
01-08 - палуба
09-40 - пояс
41-55 - рубка
56-65 - артиллерия
66-85 - надстройки ...

расположение попадания также можно определить через ГСЧ




Спасибо: 0 
Личное дело Цитата Ответить
Мичманъ



Рапорт N: 17
Рейтинг: 0
ссылка на сообщение  Отправлено: 02.11.06 09:59. Заголовок: Re:


Значит я написал действительно путанно. Речь идёт именно о системе о которой Вы (Neil) пишите. Только деление корабля на большее количество частей, с учётом правого и левого бортов.

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

С уважением.

Спасибо: 0 
Личное дело Цитата Ответить
Адмиралъ



Рапорт N: 1481
Корабль: ЭБр Ретвизанъ
Откуда: Россия, Москва
Рейтинг: 3
ссылка на сообщение  Отправлено: 02.11.06 11:41. Заголовок: Re:


Пернатый Змей пишет:

 цитата:
Значит я написал действительно путанно.

Есть такое дело.

Вы ведь уже выбрали свою процедуру (алгоритм) обработки. Как в любой модели, он предполагает пренебрежение теми или иными факторами. Какими именно - выбирает создатель.

Пернатый Змей пишет:

 цитата:
1. Значит усреднение угла ствола орудия вполне возможно. Это многое упрощает.

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

Пернатый Змей пишет:

 цитата:
Пусть точность составила 5%, значит, в цель попало 0,75 снаряда. Конечно, такого не может быть, но мы считаем, что попал полный снаряд, однако нанёс только 75% от своего полного повреждения, если его бронепробиваемость равна и более брони той части корабля, куда он попал.

Лучше в случае появления таких "дробей" использовать ГСЧ с выводм на выходе 0 или 1.

Пернатый Змей пишет:

 цитата:
Самая малая по площади часть корабля берется за единицу и ей присваивается номер 1. Все остальные части определяются по площади в нашей самой маленькой для определения, сколько цифр им нужно присвоить для моделирования площади это части. К примеру, часть, имеющая в два раза большую площадь получит цифры-номера 2 и 3. То есть если бы наш снаряд мог попасть только в две вышеуказанные части, получился бы случайный выбор из 3, но поскольку большей части присвоены две цифры, то вероятность попадания в них получается в два раза больше, чем в меньшую по площади единичку.

Вполне нормальная (в принципе!) система. Лучше взять "самую маленькую часть" (мы ее называем "отсек") стандартной для всех кораблей. Т.е., как бы накладывать стандартную "сетку".

Пернатый Змей пишет:

 цитата:
Кстати генератор случайных чисел на компьютере пишется ручками и не такой уж он случайный как кубик на полу.

Вообще-то можно пользваться и встроенными генераторами языков и приложений. Они достаточно "случайные" при дополнительном перемешивании (например, за счет привлечения одной и той же последовательности из ГСЧ для разных задач). Не забывайте так же почаще переинициализировать ГСЧ.

Пернатый Змей пишет:

 цитата:
Даже для хорошего программера нужен алгоритм или формула,

Этих формул - как собак нерезанных. Все они основаны на операциях с простыми числами и имею свойство "циклиться" после генерации определенного кол-ва псевдослучайных чисел. Однако, при переинициализации и доп.перемешивании более или менее подходят.

Спасибо: 0 
Личное дело Цитата Ответить





Рапорт N: 18
Рейтинг: 0
ссылка на сообщение  Отправлено: 03.11.06 01:22. Заголовок: Re:


И не забудьте про вероятность случайного попадания снаряда в соседний от цели корабль при перелете или недолете ;)


Спасибо: 0 
Личное дело Цитата Ответить
Мичманъ



Рапорт N: 18
Рейтинг: 0
ссылка на сообщение  Отправлено: 03.11.06 11:09. Заголовок: Re:


2 vov\

Спасибо, Вы очень помогли определить что, иду в правильном направлении.

2 Neil\

Боюсь, что для wargame-а - это будет крутовато. Симулятор мы не тянем :))

С уважением.

Спасибо: 0 
Личное дело Цитата Ответить
Лейтенантъ




Рапорт N: 1467
Корабль: Полтава
Откуда: Украина, Одесса
Рейтинг: 1
ссылка на сообщение  Отправлено: 05.11.06 20:38. Заголовок: Re:


Пернатый Змей пишет:

 цитата:
генератор случайных чисел на компьютере пишется ручками и не такой уж он случайный как кубик на полу

С кубиками тоже не всё просто - очень сильно зависит от «астрального» потенциала играющих.
И это фактор, с которым надо считаться!

Каждая большая война представляет отдельную эпоху в развитии военного искуства
Клаузевиц
Спасибо: 0 
Личное дело Цитата Ответить
Ответ:
1 2 3 4 5 6 7 8 9
видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 56
Права: смайлы да, картинки да, шрифты нет, голосования нет
аватары да, автозамена ссылок вкл, премодерация вкл, правка нет



Создай свой форум на сервисе Borda.ru
Форум находится на 82 месте в рейтинге
Текстовая версия

© 2002-2006, Форумы ВМИ Rambler's Top100