Обычно в разработке игр линейная разработка ( модель водопада ) изобилует препятствиями, которые истощают разум программиста (игра оказалась ужасной, не может быть переработана). Введите итеративный дизайн . Итеративный дизайн позволяет создавать прототипы различных возможностей в игровом пространстве. К сожалению, у этого есть главный улов. Как только размер проекта увеличивается, итерации становятся утомительно длинными, убивая главное преимущество: быстрые результаты.
Как сократить итерации дизайна для крупномасштабных проектов?
design-patterns
development-speed
newton1212
источник
источник
Ответы:
Я думаю, что хорошая инфраструктура может помочь этому. Одним из примеров является хорошая, простая в использовании система данных, с помощью которой инженеры могут легко представлять новые данные, а дизайнеры могут быстро изменять данные и видеть их результаты. Еще один хороший пример - наличие языка сценариев, такого как lua, который программисты геймплея и даже дизайнеры могут использовать для быстрого создания прототипов.
Кроме того, имеется хороший конвейер искусства / ресурсов, который прост в использовании и легко вводит ресурсы в игру.
В основном, устраните препятствия для людей, выполняющих свою работу, и оптимизируйте их рабочие процессы.
К сожалению, готовых решений для таких вещей на самом деле не существует (даже в популярных игровых движках, это не все действительно решаемые проблемы), что означает, что вам придется потратить некоторое время на разработку, чтобы получить эту гибкость. Так что, к сожалению, ответ таков: вам нужно потратить время на то, чтобы сделать это, чтобы вы могли работать быстро, что побеждает цель. Как только вы проведете время, все будет хорошо. Если вы сможете повторно использовать свою работу для будущих проектов, дивиденды будут еще лучше.
источник
Timeboxing означает, что итерации не становятся длиннее
Вы спрашиваете, как сократить итерации. Но это означает, что они занимают больше времени, а значит, вы не применяете бокс времени. В любой итерации, когда сложность начинает весить больше (или у вас есть другие непредвиденные неудачи), вы не меняете длину итерации. Вместо этого вы отказываетесь от добавления, которое вы запланировали в начале итерации. Некоторые итерационные методы предлагают выполнять эту оценку в середине итерации (пока не стало слишком поздно). Узнайте больше о том, что предлагает OpenUP :
Если вы посмотрите на первый график, вы увидите, что на последующих итерациях добавленная стоимость меньше. Это означает, что итерации по-прежнему занимают столько же времени, что и раньше, но, возможно, в каждой итерации меньше (относительно) новых функциональных возможностей.
Как вы говорите, итеративная сила в том, чтобы снижать риск, часто получая обратную связь. Похоже, вы говорите о сложности проекта, преследующей вас на последующих итерациях? Я не согласен, что это слабость итеративного. Это слабость плохо управляемой сложности.
Теоретически, вы ставите самые большие риски проектов на первое место. Это означает, что у вас очень нестабильный проект, но поскольку вы управляете большими рисками, он должен стабилизироваться. Сложность, конечно, является одним из рисков.
Языки сценариев и автоматизированные процессы помогают снизить риск сложности, который можно назвать «случайной» сложностью (и обсуждается в другом ответе). Высоко итеративные, но сложные проекты (хороший пример - Chromium, даже если это не игра) имеют много инфраструктуры для управления сложностью. Посмотрите на https://www.chromium.org/developers множество примеров таких вещей, как советы по кодированию для BuildBot .
На этом рисунке не показана стабильность проекта, которая выглядит примерно так:
Пока технические риски не будут хорошо поняты, вы имеете дело с простыми прототипами
источник