Portal: Wprowadzenie - zaawansowane kreacje przy użyciu Gadżetu Portalu, narzędzia SDK, edytor zasad
14 kwietnia 2026
SPIS TREŚCI:
Kliknij, aby powiększyć
Nasze narzędzie SDK Portalu, ale wasza wizja! Poznajcie nieograniczone możliwości.
Po raz pierwszy w historii serii oficjalnie otwieramy przed wami naszą grę i pozwalamy społeczności na korzystanie z naszego oficjalnego zestawu narzędzi (Software Developer Kit – SDK) w celu tworzenia wymarzonych rozgrywek. Widzieliśmy wasze niesamowite prace w Battlefield 2042, stworzone naszą pierwszą iteracją Portalu. Teraz narzędzie SDK Portalu pozwoli wam zmieniać mapy, a Edytor zasad w Konstruktorze Portalu stał się potężniejszy. Na pewno zdołacie nas zaskoczyć jeszcze lepszymi dziełami.
Niestety nie możemy wam przedstawić pełnego kursu trwającego cały semestr i zapewniającego wyższe wykształcenie z narzędzia SDK oraz filozofii tworzenia rozgrywki. Zamiast tego przeprowadzimy was przez prosty przykład tworzenia niestandardowej rozgrywki – aż do etapu eksportowania mapy do Konstruktora Portalu i wykorzystania Edytora zasad:
NOWOŚĆ OD PREMIERY: Gadżet Portalu
Gadżet Portalu to narzędzie wyposażenia, stworzone dla twórców projektujących własne rozgrywki Portal. Dzięki Gadżetowi Portalu możesz przypisać i aktywować niestandardowy skrypt logiki gry w określonych momentach i miejscach w ramach niestandardowej rozgrywki.
Minęły już czasy tymczasowych rozwiązań do aktywowania niestandardowej logiki, takich jak „kucnij, by potwierdzić”. Gadżet Portalu zapewnia elastyczność w zakresie specyficznych interakcji gracza i pozwala tworzyć dynamiczne rozgrywki.
Istnieją dwa sposoby na wyposażenie i rozpoczęcie używania Gadżetu Portalu: pierwszy to przyznanie go bezpośrednio graczom w celu zastąpienia ich obecnego gadżetu. Drugi sposób to wygenerowanie możliwego do zdobycia – czyli z łupu – Gadżetu Portalu za pomocą komendy LootSpawner:
mod.AddEquipment(player,mod.Gadgets.Misc_PortalGadget);
mod.SpawnLoot(mod.GetLootSpawner(1), mod.Gadgets.Misc_PortalGadget);
Stąd możesz wydawać proste komendy, takie jak…
… aktywować gadżet, gdy gracz naciśnie przycisk przybliżenia….
export function OnPortalGadgetAimStart(eventPlayer: mod.Player): void;
… lub, gdy gracz zwolni przycisk przybliżenia….
export function OnPortalGadgetAimStop(eventPlayer: mod.Player): void;
… albo, aktywować Gadżet kiedy gracz naciśnie przycisk urządzenia taktycznego (przełącz latarkę/laser).
export function OnPortalGadgetLaserToggle(eventPlayer: mod.Player, eventBoolean: boolean): void;
Gdy zrozumiesz podstawy, możesz wtedy przypisać niestandardową logikę, aby twój Gadżet Portalu robił, co tylko zechce twoja wyobraźnia (w granicach rozsądku, limitów logiki i Karty Społeczności Battlefield). Na przykład możesz sprawić, że wyśle wiadomość, która pojawi się nad minimapą, w czterech krokach:
-
Poproś system o ocenę, czy prosta linia między dwoma punktami jest przerwana, czy nie. Użyj funkcji OnRayCastHit i OnRayCastMissed, aby odczytać wynik.
- export function RayCast(player: Player, start: Vector, stop: Vector): void;
-
Następnie kod, który zostanie aktywowany, gdy Raycast trafi w cel.
- export function OnRayCastHit(eventPlayer: mod.Player, eventPoint: mod.Vector, eventNormal: mod.Vector): void;
-
Oczywiście, chcesz aktywatora dla sytuacji, gdy wywołany Raycast nie trafi w żaden cel.
- export function OnRayCastMissed(eventPlayer: mod.Player): void;
-
I na koniec, linia kodu, która wyświetla wiadomość w logu świata gry nad minimapą przez 6 sekund. Jeśli nie podano celu, wiadomość zostanie wyświetlona wszystkim (dlatego chcesz mieć te zabezpieczenie).
- export function DisplayHighlightedWorldLogMessage(message: Message, player: Player): void;
Biorąc pod uwagę, ile unikatowych kreacji Portalu powstało od premiery, nie możemy się doczekać, by zobaczyć, co nasza społeczność zrobi z tym nowym narzędziem Gadżetem Portalu!
Instalowania narzędzia SDK Portalu
W przeciwieństwie do Konstruktora Portalu, dostępnego na stronie EA, SDK musi zostać pobrany na komputer z systemem Windows. Pakiet SDK Portalu zawiera wszystkie pliki potrzebne do korzystania z narzędzi Godot w celu wprowadzania zmian przestrzennych na poziomach gry. Są tam także przykładowe skrypty, które pomogą wam stworzyć własne zasady.
Nie polecamy pobierać żadnej wersji narzędzia SDK Portalu z wyjątkiem tej, która jest wskazana tutaj oraz na oficjalnej witrynie EA.com. Pobieranie plików z nieznanych źródeł może zagrozić bezpieczeństwu waszego komputera. Zawsze pobierajcie tylko zweryfikowane narzędzia SDK Portalu oraz jego aktualizacje z EA.com
Po pobraniu narzędzia otwórzcie plik ReadMe, który pomoże wam przeprowadzić instalację. Po instalacji uruchomcie program i wykonajcie poniższe kroki dla nowych użytkowników:
Narzędzie SDK Portalu – krótki przewodnik po edytowaniu map
Kliknij, aby powiększyć
Powyżej: niestandardowa mapa stworzona za pomocą narzędzia SDK Portalu.
Najpierw kliknij „Scena” w lewym górnym rogu aplikacji, a następnie wybierz z rozwijanego menu „Otwórz scenę…”. Otwórz folder „levels” (poziomy), aby zobaczyć nazwy wszystkich map dostępnych do edycji, a następnie wybierz tę, która cię interesuje.
Najprawdopodobniej znajdziesz się pod grywalnym obszarem mapy. W centralnym oknie, które pokazuje cyfrowe środowisko 3D, możesz poruszać się po przestrzeni w następujący sposób:
- Celowanie kamerą / rozglądanie się się – przytrzymaj prawy przycisk myszy i porusz nią.
- Poruszanie się - Klawisze W, A, S, D służą do ruchu w dwóch wymiarach (przód/tył, lewo/prawo), a Spacja do ruchu „w górę”, który zawsze jest pod kątem prostym względem kierunku, w którym patrzysz.
- Zwiększanie lub zmniejszanie prędkości ruchu – rolka myszy; przewijanie w górę przyspiesza, a w dół zwalnia.
Po otwarciu poziomu wszystkie obiekty – budynki, osłony, drogi itp. – znajdują się na swoich domyślnych pozycjach, czyli tak, jak je widać w oficjalnej rozgrywce Battlefield 6. Narzędzie SDK Portalu służy do wprowadzania modyfikacji addytywnych. Niektórych obiektów, takich jak teren czy kluczowe budynki, nie można usunąć.
Na dole ekranu znajduje się Object Library, czyli biblioteka obiektów. Rozwiń ją, a następnie kliknij trzy kropki (...) niedaleko przycisku szukania w bibliotece, aby wygenerować bibliotekę („Generate Library”). Pozwoli to zobaczyć wszystkie obiekty, z których można skorzystać. Aby je dodać do mapy, wystarczy je tam przeciągnąć. Uwaga: jeśli przeprowadziliście wcześniej konfigurację Portalu, ten krok nie jest konieczny.
Naciśnij „Q”, aby przejść do trybu wyboru. Jest to główny sposób na wybieranie obiektów do przeniesienia czy edytowania. Następnie naciśnij „W”, by przenieść obiekt w obrębie mapy. Gdy jest wybrany jakiś obiekt, można nacisnąć „E”, by przejść do trybu obracania, co pozwoli obracać przedmiot za pomocą klawiszy WASD. Jeśli chcesz powiększyć lub pomniejszyć obiekt, spójrz na prawą stronę przestrzeni 3D. Jest tam okno Inspektora, które pozwala na zmianę rozmiaru całego obiektu. Zmiana rozmiaru tylko części obiektu nie jest obecnie obsługiwana.
Eksportowanie i przesyłanie poziomu do Konstruktora Portalu
Kliknij, aby powiększyć
Chcesz zrobić sobie przerwę i dokończyć dzieło później? Kliknij zakładkę „Scena” w lewym głównym rogi aplikacji, a następnie „Zapisz scenę”.
Gdy będziesz już chciał opublikować swoje dzieło, poszukaj przycisku „Export cutrrent level” (eksportuj obecny poziom) w okienku znajdującym się w prawym dolnym rogu („BFPortal”). Kliknij tam, a następnie znajdujące się poniżej „Open Exports” (otwórz folder wyeksportowanych), by zobaczyć swoje dzieło. Właśnie ten plik .JSON prześlesz do Konstruktora Portalu za pomocą swojej przeglądarki.
Jeśli nie jesteś zalogowany do Konstruktora Portalu, zrób to teraz, a następnie albo wybierz istniejący szablon, by go zmodyfikować, albo przeprowadź proces tworzenia nowej rozgrywki.
Wybierz zakładkę „Zestaw map”, a zobaczysz opcję importowania pliku .JSON (strzałka wskazująca w dół do ikony otwartego nawiasu). Zlokalizuj swój plik w okienku eksploratora plików, następnie zaznacz go i kliknij przycisk „Otwórz”. Powinieneś teraz zobaczyć wyeksportowany poziom w Konstruktorze Portalu!
Edytor zasad w Konstruktorze Portalu: edytowanie interfejsu oraz skrypty SI
Kliknij, aby powiększyć
Najbardziej zaawansowaną funkcją w internetowym Konstruktorze Portalu jest Edytor zasad, dostępny wyłącznie dla niestandardowych rozgrywek społecznościowych. Działa podobnie jak w Battlefield 2042, dodatkowo posiada nowe polecenia. Jego logika pozwala połączyć warunki i wydarzenia w grze – takie jak śmierć gracza czy znalezienie się w pewnej odległości od kwatery głównej – z określonymi akcjami.
Wyjaśnimy to na przykładzie przejmowania celu w trybie „Podboju”. Co się wówczas dzieje? Najpierw wkraczacie na obszar celu (warunek lub wydarzenie), pojawia się koło postępu (akcja), a głos oświadcza, że przejmujecie cel (kolejna akcja). Po upływie określonego czasu (warunek) obszar celu zostaje przejęty (akcja). A ponieważ obszar celu jest pod kontrolą waszego zespołu (warunek), zaczynacie zdobywać punkty (powtarzająca się akcja).
Proste? Edytor zasad zawiera ponad 200 akcji do wprowadzenia, co daje niezliczone możliwości ich łączenia – zarówno z botami, jak i bez nich. Podobnie jak w innych zakładkach Edytora zasad, dostępne są proste podpowiedzi. Wystarczy kliknąć prawym przyciskiem blok, a następnie wybrać „Pomoc”.
Skrypty SI
Nowością w Edytorze zasad Konstruktorze Portalu są dodatkowe narzędzia do tworzenia skryptów dla botów, czyli do określania, co i jak mają robić twoi niebędący graczami uczestnicy walki w grze. Zrozumienie podstaw Edytora zasad jest kluczowe do tworzenia niestandardowych skryptów SI, ponieważ użyjesz „BehaviorTree”, aby zmienić ich domyślne logikę.
Zachowania SI również mają bloki warunków i akcji, które decydują o ruchu, logice walki i wielu innych rzeczach.
W celu stworzenia bardziej złożonych trybów gry czy skryptów SI zalecamy skorzystać z TypeScript. Poniżej przedstawiamy przykład prostego skryptu ruchu SI:
[[UWAGA: Wszystkie polecenia w TypeScript są po angielsku. Jeśli nie otrzymujecie z tego przykładu zamierzonych rezultatów, może to oznaczać, że przykład jest w konflikcie z innym kodem w waszym modzie i musicie go dostosować.]]
// To tworzy jednostkę SI, do której można dodać skrypty
function OnGameModeStarted() {
mod.SpawnAIFromAISpawner(mod.GetSpawner(1), mod.GetTeam(1));
}
// To jest proste zachowanie podążania, które nakazuje SI wstać i ruszyć na pozycję gracza. async function simpleAIFollowBehavior(player: mod.Player, target: mod.Player) {
// Ustaw postawę gracza SI na stojącą.
mod.AISetStance(player, mod.Stance.Stand);
// Ustaw prędkość ruchu gracza SI na chód.
mod.AISetMoveSpeed(player, mod.MoveSpeed.Walk);
// Gdy ten bot SI i gracz będący celem żyją, odtwarzaj tę pętlę, która każe SI iść na pozycję tego gracza.
while (mod.GetSoldierState(player, mod.SoldierStateBool.IsAlive) == true & & mod.GetSoldierState(target, mod.SoldierStateBool.IsAlive) == true) {
// Wywołaj funkcję AIMoveToBehavior na bocie SI i spraw, by ruszył na pozycję gracza będącego celem.
mod.AIMoveToBehavior(player, mod.GetSoldierState(target, mod.SoldierStateVector.GetPosition));
// Zaczekaj 1 sekundę
await mod.Wait(1);
}
}
Po wprowadzeniu tego prostego skryptu reszta zależy już od ciebie. Nie ma jednego, najlepszego sposobu na naukę tworzenia gier. Ale niezależnie od tego, czy zdecydujesz się na kursy projektowania i programowania, czy też będziesz uczyć się w praktyce oraz z pomocą materiałów internetowych, jesteśmy pewni, że jeśli się przyłożysz, stworzysz niesamowite rozgrywki.
Szybkie porady od twórców – narzędzie SDK Portalu i pisanie skryptów
Kliknij, aby powiększyć
1. Dołącz do społeczności twórców. Tworzenie rozgrywek jest lepsze, gdy prowadzi się przyjazne interakcje z osobami, które również są tym zainteresowane. Chociaż ten przewodnik jest świetnym punktem startowym, prawdziwą wiedzę zdobywa się od twórców, którzy mają spore doświadczenie. Dołącz więc do społeczności twórców Battlefield Portal, na przykład na oficjalnym Discordzie, i śmiało zadawaj pytania!
2. Sprawdź logikę (i załączniki). Gdy jakaś zasada w Edytorze zasad nie działa, dwie najczęstsze przyczyny to: jeden z bloków – zasada, warunek lub akcja – nie może się połączyć z blokiem modyfikacji albo logika zasady jest niemożliwa – na przykład wartość prawdy jest przypisywana dwóm sprzecznym ze sobą zmiennym. Zawsze dokładnie sprawdzaj swoje niestandardowe zasady, nim przejdziesz do fazy testów.
3. Eksperymentuj. Eksperymentuj. Eksperymentuj. W 99,9% twoja pierwsza mapa niestandardowa – czy skrypt SI – nie będzie działać zgodnie z planem. Ale nie zniechęcaj się. Edytuj i testuj, a dzieło z pewnością ulegnie poprawie.
4. Twórz z myślą o społeczności. Projektowanie gier często odnosi się do „doświadczenia użytkownika” (user eXperience – UX). Są mu poświęcone całe programy licencjackie. Ogólnie rzecz sprowadza się do tego, co odczuwają gracze podczas gry. Testowanie UX niekoniecznie jest trudne. Zaproś do gry znajomego, członka rodziny czy kogoś ze społeczności. Potem zapisz sobie jego uwagi na temat tego, co było niezrozumiałe albo co przeszkadzało w zabawie, a następnie wykorzystaj te uwagi podczas tworzenia kolejnej wersji swojego projektu.