Zapoznaj się z dobrymi praktykami w zakresie różnych aspektów transakcji na wyspach oraz wskazówkami, które ułatwią testowanie i debugowanie witryny twojego sklepu.
Korzystanie z urządzenia transakcji na wyspie Verse
Urządzenie transakcji na wyspie Verse zawiera szablon transakcji na wyspie. Zawiera ono wszystkie implementacje kluczowych aspektów modułu rynku w interfejsie API Verse. Znajdują się w nim przedmioty, oferty, oferty zestawów oraz procedura zakupu z wykorzystaniem domyślnego UI sklepu. Korzystanie z tego kodu jako przewodnika może pomóc w szybkim skonfigurowaniu witryny sklepu.
Aby uzyskać dostęp do tego urządzenia:
Przejdź do Eksploratora Verse.
Kliknij prawym przyciskiem myszy nazwę projektu.
Wybierz opcję Dodaj nowy plik Verse do projektu.
Wybierz pozycję Urządzenie transakcji na wyspie.
Aby skorzystać z gotowego kodu, przejdź do kodu Verse i zmień w pliku następujące dane:
Nazwy przedmiotów
Opisy
Ikony
Zastąp domyślne nazwy w kodzie nazwami odpowiadającymi twoim uprawnieniom i ofertom.
Dobre praktyki przy pisaniu kodu
Możesz doprecyzować swój kod Verse, aby poprawić jego skalowalność oraz wydajność wyspy.
Porządkowanie przepływu pracy
Dobrą praktyką często stosowaną przy programowaniu jest rozdzielanie zagadnień. Chcesz, aby pliki i funkcje były skoncentrowane na wykonaniu konkretnego zadania, dzięki czemu łatwiej będzie utrzymać je w przyszłości, gdy projekt będzie się rozrastał.
W rezultacie powstają mniejsze, przejrzyście zorganizowane pliki kodu, które są łatwiejsze do odczytania i zrozumienia, co ułatwia debugowanie.
W przypadku transakcji praktyki te można zastosować w następujący sposób:
Umieszczać definicje przedmiotów w odrębnym pliku.
Umieszczać oferty i oferty zestawów w odrębnym pliku.
Utworzyć urządzenie, które będzie obsługiwało wszystkie statyczne, wstępnie zdefiniowane oferty.
Utworzyć urządzenie, które będzie obsługiwało tylko oferty dynamiczne.
Utworzyć urządzenie, które będzie obsługiwało tylko zakupy.
Porządkowanie przy użyciu modułów
Moduły to niepodzielne jednostki kodu, które można wielokrotnie wykorzystywać w wielu plikach. Moduły można z czasem modyfikować bez przerywania zależności w plikach, w których dany moduł jest już używany. Pozwalają one oddzielić długie i powtarzalne jednostki kodu, takie jak definicje uprawnień, do innego pliku, a następnie zaimportować je za pomocą instrukcji using.
Dużą zaletą korzystania z modułów jest to, że w jednej lokalizacji wystarczy tylko raz zdefiniować zmienną dla elementu członkowskiego modułu. Umożliwia to udostępnianie tych samych danych w różnych plikach kodu Verse poprzez zaimportowanie modułu i utworzenie odwołania do zmiennych. W przypadku wystąpienia błędów związanych z danymi zawartymi w module ogranicza to miejsca potencjalnego występowania błędu, które trzeba sprawdzić, jedynie do samego modułu, a nie każdej lokalizacji, w której wykorzystano jego zawartość.
Poniższy fragment kodu przedstawia, w jaki sposób zdefiniować informacje o uprawnieniu dla CornSeedPacket w module.
EntitlementInfo<public> := module:
CornSeedPacket<public> := module:
Name<public><localizes> : message = "Corn seed pack"
Description<public><localizes> : message = "A pack of corn seeds. Opening a pack yields 10 corn seeds for planting."
ShortDescription<public><localizes> : message = "Contains 10 corn seeds for planting."EntitlementInfo i CornSeedPacket są zdefiniowane jako moduły i umożliwiają zaimportowanie wszystkich informacji na temat uprawnienia oraz bezpośredni dostęp do zmiennych składowych CornSeedPacket, takich jak zmienna Name.
Ten fragment kodu przedstawia sposób importowania modułu EntitlementInfo w celu ułatwienia zdefiniowania uprawnienia corn_seed_pack.
Warto zauważyć, że nie ma potrzeby ponownego wpisywania ciągów tekstowych dla zmiennych, takich jak Name, gdyż bezpośrednio z poziomu modułu CornSeedPacket można utworzyć odwołanie do zmiennej. Ogranicza to ryzyko powstawania błędów wizualnych, takich jak literówki.
Entitlements<public> := module:
using { EntitlementInfo }
# Using custom entitlement class to distinguish your entitlements.
my_island_entitlement<public> := class<abstract><castable>(entitlement){}
corn_seed_pack<public> := class<concrete>(my_island_entitlement):
var Name<override> : message = CornSeedPacket.Name
var Description<override> : message = CornSeedPacket.Description
var ShortDescription<override> : message = CornSeedPacket.ShortDescription
Instrukcja using wymaga podania ścieżki pliku do modułu, który ma być zaimportowany. W przypadku tej instancji ścieżka pliku nie jest wymagana, ponieważ przyjmujemy, że moduł znajduje się w tym samym folderze.
Poprawa wydajności wyspy
Responsywność działania rozgrywki można poprawić poprzez definiowanie metod zakupu i przyznawania przedmiotów z zastosowaniem efektu <suspends> i wywołanie ich za pomocą instrukcji spawn.
Umożliwia to wykonywanie TryBuyOffer w sposób asynchroniczny w trakcie ciągłego wykonywania innych aspektów logiki gry. Zapobiega to również wstrzymywaniu gry do momentu zrealizowania transakcji.
TryBuyOffer(Player:player, Offer:offer)<suspends>:void=
Result := BuyOffer(Player, Offer)
OnButtonInteraction(Agent:agent):void=
if (Player := player[Agent]):
spawn{TryBuyOffer(Player, OfferType)}
Dobre praktyki dotyczące ikon
Aby tekstury gry były renderowane prawidłowo w trakcie gry, muszą spełniać określone wymagania. Podczas tworzenia tekstur w UEFN za pomocą importowanych obrazów upewnij się, że wysokość i szerokość obrazu źródłowego w pliku są potęgą dwójki. Zwiększa to kompatybilność i stabilność wyspy na różnych platformach.
Potęga dwójki jest również wykorzystywana w streamingu tekstur w celu obniżenia rozdzielczości tekstur na platformach z mniejszą ilością pamięci.
Streaming tekstur pomaga w:
Zmianach rozdzielczości tekstury
Określaniu szybkości ładowania gry
Zwiększaniu jakości wizualnej gry
Oszczędzaniu pamięci GPU
Więcej informacji na temat zasady stosowania potęg dwójki oraz zmiany rozmiaru tekstur zawiera sekcja Zmiana rozmiaru tekstur.
Informacje na temat importowania niestandardowych zasobów do UEFN zawiera sekcja Importowanie zasobów. Informacje na temat uwidaczniania zasobów, takich jak tekstury, w Verse zawiera artykuł Uwidacznianie zasobów.
Testowanie i debugowanie uprawnień
Zarówno sesja edycji na żywo, jak i sesja prywatnego testu gry, są sesjami debugowania. Sesje debugowania wpływają na zachowanie transakcji, uprawnień i ofert w następujący sposób:
Transakcje nie powodują odliczania V-dolców od stanu konta.
Przyznane i zakupione uprawnienia są usuwane na końcu sesji debugowania.
W trakcie sesji debugowania dostępne jest menu Polecenie debugowania.
Oferty muszą być dostępne w wersji prywatnej oraz wersji przeznaczonej do testów gry wyspy, a wszyscy członkowie drużyny muszą mieć do nich dostęp w fazie testowania. Oferowane przedmioty są traktowane jako nieaktywne. Oferty będą aktywne dopiero po opublikowaniu i upublicznieniu wyspy.
Dostęp do menu Polecenie debugowania
Aby uzyskać dostęp do menu Polecenie debugowania, naciśnij klawisz Esc na klawiaturze komputera lub przycisk Start/Opcje na kontrolerze, po czym wybierz z menu opcję Polecenia debugowania.
Polecenia debugowania sklepu
Polecenia debugowania witryny sklepu można znaleźć w sekcji Polecenia debugowania sklepu, gdzie masz dostęp do następujących poleceń:
Nazwa polecenia | Opis |
Otwórz sklep | Wyświetla dynamiczny UI sklepu, który oferuje wszystkie dostępne uprawnienia, umożliwiając graczom zakupienie ich pojedynczo. Można w ten sposób bezpośrednio wybrać uprawnienie do przetestowania. |
Przyznaj wszystkie uprawnienia | Zapełnia ekwipunek gracza, tak aby posiadał on maksymalną liczbę wszystkich dostępnych uprawnień. Można również przetestować zachowanie tej opcji w trakcie gry, aby sprawdzić, czy gracze mają dostęp do przedmiotu w obszarze, gdzie nie powinno go być. |
Przyznaj jedno uprawnienie | Przyznaje graczowi po jednej sztuce każdego uprawnienia. Pozwala to przyznać graczowi dużą liczbę uprawnień, a jednocześnie zostawić w jego ekwipunku miejsce na dalsze zakupy testowe uprawnień innych niż trwałe, bez osiągania limitu maksymalnej ilości. Jeśli przyznanie uprawnienia będzie kolidowało z ustawieniem Można również przetestować zachowanie tej opcji w grze, aby sprawdzić, czy gracze mają dostęp do przedmiotu w obszarze, gdzie nie powinno go być. |
Wymuś usunięcie uprawnień | Usuwa wszystkie posiadane uprawnienia z ekwipunku gracza. Umożliwia zresetowanie ekwipunku gracza, aby móc dalej testować zakup ofert. Polecenie to bywa przydatne przy testowaniu przypadków To polecenie może być również przydatne w celu przyspieszenia powtórzeń przy testowaniu poprzez szybkie resetowanie ekwipunku. |
Eksportuj posiadane uprawnienia | Eksportuje wszystkie posiadane uprawnienia do loga wyjściowego. |
Stałe niepowodzenie zakupów | Domyślnie WYŁĄCZONE. Po WYŁĄCZENIU zakupy zachowują się w zamierzony sposób. Po WŁĄCZENIU zakupy zawsze będą kończyć się niepowodzeniem, nawet jeśli warunki wskazywałyby na pomyślną realizację. Opcja Stałe niepowodzenie zakupów przydaje się do testowania przypadków |