Instancing (продовження)

Коротке повторення

Instancing має багато корисних застосувань. Завдяки йому ви маєте:

  • Можливість розподілити сцени та полегшити керування ними.
  • Інструмент для управління та редагування декількох екземплярів вузлів одночасно.
  • Спосіб організації та вбудовування складних ігрових потоків, або, навіть, інтерфейсів користувача (у Godot елементи інтерфейсу також є вузлами).

Стиль проектування

Але найбільша сила використання екземплярів сцен, полягає в тому, що це чудовий стиль проектування. Це відрізняє Godot від усіх інших редакторів. Godot був розроблений з нуля саме навколо цієї концепції.

При створенні ігор з Godot, рекомендується відмовитись від найбільш поширених моделей проектування, таких як діаграми MVC, або Entity-Relationship, а замість цього продумати свої сцени більш природним чином. Почніть з уявлення видимих елементів у вашій грі, тих, які може назвати не просто програміст, а будь-хто.

Наприклад, ось як можна уявити просту гру стрілялки:

../../_images/shooter_instancing.png

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

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

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

Давайте розглянемо ще один, дещо складніший, приклад гри відкритого типу з великою кількістю ресурсів та вкладених елементів:

../../_images/openworld_instancing.png

Погляньте на елемент кімнати. Скажімо, ми там почали. Ми могли б зробити кілька різних сцен кімнати з різним розташуванням меблів (також сцен) в них. Пізніше ми могли б зробити сцену будинку, з'єднавши кімнати, щоб скласти його інтер'єр.

Потім ми могли б зробити сцену цитаделі, яка зроблена з багатьох екземплярів будинків. Далі ми могли б почати працювати над місцевою картою світу, додавши на неї цитадель.

Пізніше ми могли б створити сцени, які представляють охоронців (та інших NPC) і додати їх до цитаделі. Як результат, вони будуть опосередковано додані до загального ігрового світу.

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

Інформаційне перевантаження!

Тут було дуже багато нової інформації, яка звалилася на вас вся відразу. Однак важливою частиною цього уроку було створення усвідомлення того, як сцени та вставка їх екземплярів використовуються в реальних проектах.

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