2010-06-08 4 views
8

Я сделал уже несколько простых игр: введите уровень, встаньте до конца, переходите на следующий уровень.
Но мне все еще интересно, как «настоящие» разработчики игр создают игры с историей.Разработка игр: как вы играете в историю?

Вот несколько вещей, что история игра имеет (и где я задаюсь вопросом о том, как они делают это):

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

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

  • Игрок сделал в первый раз ....
  • Игрок входит в десятый раз, что расположение
  • игрок говорил на ### й раз к этому человеку
  • и т.д.

Когда я говорю о сюжетных играх, Подумываю:

  • Легенда о Zelda (все игры из серии)
  • Okami

И это лишь несколько примеров из уровня в уровне отказа игры:

  • Марио
  • Braid
  • Crayon Physics

Благодаря

+4

«Но, я не думаю, что у них есть файл save с большим количеством логических элементов и целых чисел для хранения вещей». Какова цель файла сохранения? Что бы вы сохранили в файле сохранения, если не в статусе мира игры? – JAB

+0

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

ответ

5

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

  • FSM отслеживает «прогресс» конкретного квеста - что переключатели выбрасываются, какие разговоры проводятся, и т.д.
  • Каждый NPC имеет FSM отслеживать «информационное состояние этого NPC - каждое государство КОРРЕЛЯТЫ к определенной фазе в дуге ВСНП в игре, как правило, заканчивается в случайной цитатой состоянии.
  • Сохраненная игра может, в качестве примера, отслеживать состояние каждого объекта в игровой вселенной.

Важная часть состоит в том, чтобы проектировать не только состояния, но и переходы, чтобы ey как можно проще подключить.

+0

В какой момент использование FSM станет слишком громоздким?Я бы подумал, что если ваши объекты обладают множеством свойств, может быть точка, в которой вы столкнетесь со слишком многими состояниями, чтобы справляться с ними легко. – JAB

+0

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

1

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

1

Я никогда не работал над чем-либо подобным, но я бы предположил, что общий подход заключается в загрузке/сохранении/запросе структуры «GameState», которая содержит всю необходимую информацию для игры для выполнения соответствующих действий.

например.

if(GameState.Player.Karma < 0 && GameState.NPCs.BillyTheInnocentLamb.KilledByPlayer) 
{ 
    GameState.NPCs.FredTheShephard.HatesPlayer == true; 
} 

Теперь сделайте это миллион раз, и у вас есть RPG.

+1

'GameState.NPCs.BillyTheInnocentLamb.Killer.equals (GameState.Player)' будет иметь для меня больше смысла, если вы не хотите иметь отношения между NPC, и поэтому не волнует, кто убил ягненка, если он не был " t игрок. – JAB

+0

@ JAB: Кто-то может быть убит только один раз. И это будет игрок в этом примере. Поэтому я не понимаю, в чем проблема. –

0

Если вам удастся взглянуть на Oblivion (фантастическая игра!), Вы можете попробовать и использовать их Construction Set, которая позволяет полностью персонализировать игру, создавая дополнительные карты квестов и т.д.

С его помощью вы увидит, что механизм по существу то, что говорили другие: например, у вас есть несколько предложений, которые может сказать NPC, и он скажет одно или другое в зависимости от определенных условий. Например, будь вы добрыми или злыми, насколько вы хороши, чтобы убедить его в чем-то или о том, насколько хороши вы его подкуп, конкретные предметы, которые у вас есть/нет, но даже такие вещи, как время суток!

Как вы можете видеть, любая из этих вещей может быть легко выражена с помощью значения (например, хорошее/плохое может быть значением от 0 до 100, то же самое для вашего навыка подкупа и т. Д.), А затем просто вопрос наличия много МФСА :)

0

«Но, я не думаю, что у них есть сохранить-файл с большим количеством булевых и целых числами для проведения вещей»

Я думаю, что они делают. :)

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

Смежные вопросы