Как динамика спортивной игры моделирования работает?

Для PHP:

Класс DateTimeZone в PHP> 5.2 уже основан на базе данных Olson, которую упоминают другие, поэтому, если вы выполняете преобразование часовых поясов в PHP, а не в DB, ​​вы освобождаетесь от работы с (трудными для понимания) файлами Олсона.

Однако PHP обновляется не так часто, как БД Olson, поэтому простое использование преобразования часовых поясов PHP может привести к устаревшей информации о летнем времени и повлиять на правильность ваших данных. Хотя это не ожидается часто, это может случиться, и произойдет, если у вас будет много пользователей по всему миру.

Чтобы справиться с вышеуказанной проблемой, используйте пакет timezonedb pecl , функция которого заключается в обновлении данных часового пояса PHP. Установите этот пакет так часто, как он обновляется. (Я не уверен, что обновления этих пакетов следуют точно за обновлениями Олсона, но, похоже, они обновляются с частотой, по крайней мере, очень близкой к обновлениям Олсона.)

6
задан Victor 28 July 2009 в 06:03
поделиться

7 ответов

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

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

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

конечно, часть игры, потому что, как вы так сказали, вы не Не хочу, чтобы игры были слишком предсказуемыми. Очень просто сделать так, чтобы виртуальные кубики бросали против игрока и статистику команды, когда они выполняют определенное действие (например, бросание мяча).

Редактировать: Я предполагаю, что мы говорим об управленческих играх например Hattrick , где вы управляете составом и моделируете результаты игры, а не графическое моделирование 2D / 3D.

12
ответ дан 8 December 2019 в 02:27
поделиться

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

Это ваша игра, вы должны составлять правила.

1
ответ дан 8 December 2019 в 02:27
поделиться

Вы говорите о бейсболе, в который вы играете, или о игровом симуляторе? Бейсбольные игры могут быть похожи на аркады, фэнтези-виды спорта или их смесь.

Я был в Dynamix, когда была создана Front Page Sports Baseball. Он был основан на статистике, что означало, что вы могли играть в игры и сезоны, используя статистику различных игроков. Это означало лицензирование данных Высшей лиги. Он использовал статистику, чтобы влиять на результаты.

Существовал обычный режим и режим "fast-sim", которые могли быстрее проходить игры.

1
ответ дан 8 December 2019 в 02:27
поделиться

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

Например: шанс попадания основан на среднем уровне ударов, ERA Питчера и т.д. к «менеджеру» при выборе составов должно иметь какое-то влияние на игровой процесс - в противном случае менеджер принимает решения на основе недостоверной информации.

1
ответ дан 8 December 2019 в 02:27
поделиться

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

Упрощенный пример: предположим, что в вашей игре есть Бэйб Рут, который делает хоум-ран в 8,5% случаев, и какой-то более слабый игрок, который попадает в 4% случаев. Это те атрибуты, которые вы проверяете. Поэтому для каждого имитируемого шага выбирайте случайное число от 0 до 100%. Если он меньше или равен атрибуту, отбивающий получает хоум-ран, если он больше атрибута, они этого не делают. После нескольких питчей вы начнете видеть качественное шоу Бэба Рута по сравнению с другим парнем, так как он, как правило, делает в два раза больше хоум-ранов.

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

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

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

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

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

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

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

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

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

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

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

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

14
ответ дан 8 December 2019 в 02:27
поделиться

Обычно время плюс случайность, чтобы сделать игру воспроизводимой. РЕДАКТИРОВАТЬ. Чтобы прояснить, я имею в виду, когда на вас подступает подача, если бы это было точно, вы могли бы научиться играть идеально, вам бы потребовалось небольшая случайность вокруг точного времени, которое вы качаете, чтобы у игры был шанс). ИИ играет в этом большую роль, если вы делаете такие вещи, как кривые шары, добавляете возможность воровать базы и т. Д.

"Правильное" решение игры не столько фактор дизайна или математики, сколько ощущение. Вы попробуете что-нибудь, поиграете и посмотрите, было ли это весело. Если нет, попробуйте другие алгоритмы или игровой процесс, пока не добьетесь нужного результата.

4
ответ дан 8 December 2019 в 02:27
поделиться

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

http://cplus.about.com/b/2008/05/31/nathans-zombie-simulator-in-c.htm

] Найдите здесь модель на основе агента: http://www.montemagno.com/projects.html

3
ответ дан 8 December 2019 в 02:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: