Как реальное моделирование разработано?

11
задан Doug L. 26 September 2008 в 04:17
поделиться

5 ответов

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

Системная Динамика полностью отличается, она только имеет дело с суммами и общими количествами, нет никакого представления единственного объекта в системе. Самым легким примером этого является модель Predator и Prey.

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

FSMs и автоматы Celular являются другими путями в том, как моделировать системы в игре. Например, в основанном на агенте подходе Вы могли бы смоделировать поведение одного агента с FSM. Simcity использовал автоматы Celular, чтобы сделать часть моделирования.

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

8
ответ дан 3 December 2019 в 08:57
поделиться

Исходный код к исходному Simcity был открыт полученный как Micropolis. Это могло бы быть интересное исследование.

4
ответ дан 3 December 2019 в 08:57
поделиться

До самого последнего времени логика и управление игры были в единственном потоке в большом конечном автомате. Теперь, тем не менее, Вы склонны видеть различные части игры (аудио, графика, физика, логика 'моделирования', и т.д.) разделяемый на их собственный FSMs в потоках.

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

1
ответ дан 3 December 2019 в 08:57
поделиться

@Cody Brocious

Этот CodeProject использует Linq для демонстрации этой практики. (Linq к Жизни)

0
ответ дан 3 December 2019 в 08:57
поделиться

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

SourceForge

Также я рекомендую следующую книгу для основного обзора, В то время как она фокусируется на физике, она занимается проблемами моделирования.

Физика для разработчиков игр

0
ответ дан 3 December 2019 в 08:57
поделиться
Другие вопросы по тегам:

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