Instancje (kontynuacja)

P:odsumowanie

Instancjonowanie ma wiele przydatnych zastosowań. Na pierwszy rzut oka, z instancją masz:

  • Możliwość podziału scen i ułatwienia zarządzania nimi.
  • Narzędzie do zarządzania i edytowania wielu węzłów jednocześnie.
  • Sposób na organizację i osadzenie złożonych elementów gry a nawet interfejsu użytkownika (w Godot, elementy interfejsu są również węzłami).

Język projektu

Największą zaletą instancjonowania scen jest ich przydatność w projektowaniu gry. To właśnie odróżnia Godot od innych silników, został zaprojektowany wokół idei instancjonowania scen.

Podczas tworzenia gier z Godot, zalecane jest, aby odrzucić najbardziej powszechne wzorce projektowe, takie jak MVC lub diagramy Entity-Relationhip, a zamiast tego myśleć o swoich scenach w bardziej naturalny sposób. Zacznij od wyobrażenia sobie elementów widocznych w grze, które mogą być nazwane nie tylko przez programistę, ale przez każdego.

Na przykład, oto jak można sobie wyobrazić prostą grę strzelecką:

../../_images/shooter_instancing.png

Możesz wymyślić taki schemat dla prawie każdego rodzaju gry. Zapisz części gry, które możesz wizualizować, a następnie dodaj strzałki, aby reprezentować własność jednego komponentu przez drugi.

Gdy masz już taki schemat, zalecanym procesem tworzenia gry jest stworzenie sceny dla każdego z elementów wymienionych na diagramie. Użyjesz instancjonowania (za pomocą kodu lub bezpośrednio w edytorze) dla relacji własnościowych.

Podczas tworzenia gier (i oprogramowania w ogóle), wiele czasu poświęca się na projektowanie architektury i dopasowywanie do niej komponentów. Projektowanie w oparciu o sceny zastępuje to podejście i znacznie przyspiesza i ułatwia cały proces, pozwalając skupić się na samej logice gry. Ponieważ większość komponentów gry oddziałuje bezpośrednio na scenę, konstrukcja projektu na bazie instancji sprawia, że potrzeba tylko niewielkiej ilości innego kodu.

Przyjrzyjmy się jeszcze jednemu, nieco bardziej złożonemu przykładowi gry typu open-world z dużą ilością zasobów i elementów zagnieżdżonych:

../../_images/openworld_instancing.png

Przyjrzyj się pokojowi. Powiedzmy, że właśnie tutaj zaczynamy. Mogliśmy wykonać kilka różnych scen pokojów, z różnymi aranżacjami mebli (także scen) w nich. Potem mogliśmy stworzyć scenę dom, łączącą pokoje i tworzącą jej wnętrze.

Wtedy moglibyśmy stworzyć scenę cytadeli, która składa się z wielu instancji domów. Wtedy moglibyśmy zacząć pracę na mapie świata, dodając do niej cytadelę.

Później mogliśmy tworzyć sceny reprezentujące strażników (i innych NPC-ów) i dodawać je do cytadeli. W rezultacie zostałyby one pośrednio dodane do całego świata gier.

Z Godotem, łatwo jest tworzyć grę w ten sposób, ponieważ wszystko co musisz zrobić to stworzyć i wyświetlić więcej scen. Ponadto, interfejs użytkownika edytora jest zaprojektowany tak, aby był przyjazny dla programistów, jak i dla innych użytkowników. Typowy proces tworzenia może obejmować artystów 2D lub 3D, projektantów poziomów, projektantów gier i animatorów, którzy współpracują z interfejsem edytora.

Przeciążenie informacjami!

To było wiele informacji na wysokim poziomie które spadły na wszystkich na raz. Ważną częścią tego samouczka było jednak uświadomienie sobie, jak sceny i instancje są wykorzystywane w rzeczywistych projektach.

Wszystko, o czym tutaj rozmawiamy, stanie się dla Ciebie drugą naturą, gdy zaczniesz grać i wdrażać te koncepcje w życie. Na razie nie martw się tym za bardzo i przejdź do następnego samouczka!