Создание экземпляра (продолжение)

Резюме

У экземпляров есть много полезных применений. С помощью экземпляров вы можете:

  • Возможность разделить сцены и сделать управление ими проще.
  • Инструмент для управления и редактирования нескольких экземпляров узлов одновременно.
  • Способ организации и внедрения сложных игровых потоков или даже пользовательского интерфейса (в Godot элементы пользовательского интерфейса тоже являются узлами).

Дизайн

But the greatest strength that comes with instancing scenes is that it works as an excellent design language. This distinguishes Godot from all the other engines out there. Godot was designed from the ground up around this concept.

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

Например, вот как можно представить себе простую игру-шутер:

../../_images/shooter_instancing.png

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

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

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

Рассмотрим еще один, несколько более сложный пример игры открытого типа с большим количеством ресурсов и вложенных элементов:

../../_images/openworld_instancing.png

Взгляните на такой элемент как комната. Допустим, мы начнем от туда. Мы могли бы сделать несколько различных сцен комнат, с различными расположениями мебели (также сцены) в них. Позже мы могли бы сделать сцену дома, соединяя комнаты, чтобы создать его интерьер.

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

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

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

Информационная перегрузка!

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

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