Czy profesjonaliści z branży budujący gry przy użyciu UE4 w ogóle korzystają z Blueprints, czy też używają wyłącznie C ++?

15

Jako nauczyciel modułu tworzenia gier zwykle nalegałem, aby użytkownicy używali C ++, ponieważ jest to bardziej pożądana umiejętność w branży, ale wsparcie online i informacje o C ++ w Unreal Engine 4 wydają się być stosunkowo słabe. Czy profesjonaliści używają teraz również Blueprints , czy nie?

Mark Green
źródło
11
Dokumentacja nie będzie dobrym wskaźnikiem tego, ile zużywa się czegoś.
MichaelHouse
Brakuje dokumentacji na temat Unreal Engine 4 C ++, ponieważ sam idziesz czytać kod. Nie potrzebujesz ściśle dokumentacji, jeśli możesz uzyskać dostęp do kodu źródłowego. Jednak byłoby miło mieć to.
Oxy,
1
@Oxy Kod źródłowy nie zastępuje dokumentacji. Kropka. Z definicji źródło jest znacznie trudniejsze do odczytania niż dokumentacja, ponieważ celem dokumentacji jest destylowanie tego, co funkcja robi, do czytelnego formatu. Jest to podwójnie prawdziwe w przypadku wysokowydajnego, niezwykle wydajnego kodu, takiego jak Unreal.
Pozew Fund Moniki z
1
Wyjaśniam, co się dzieje, nie uzasadniając. „Jednak byłoby miło mieć to”. I lepiej przeczytaj kod używanych funkcji, nawet tych udokumentowanych, ponieważ niektóre ważne mają złote samorodki jako „foo (x) {/ * foo Nie zaimplementowane, zamiast tego działa bar (x), ponieważ zwykle działa jak foo (x ) zostało zrobione * / bar (x);}. Muszę jeszcze zobaczyć system dokumentacji w działaniu, który nadąża za ewolucją kodu. Inna niż zautomatyzowana dokumentacja, która nie robi nic więcej niż wyrzucanie typów parametrów i typów zwracanych, tak jak czyta nagłówek
Oxy

Odpowiedzi:

25

Tak, profesjonalne gry wykorzystują plany.

Niektóre używają kombinacji C ++ i Blueprints. Używamy obu w Dead by Daylight.

Jedną z wielkich zalet Blueprints jest to, że nieprogramiści mogą uzyskać dostęp do możliwości zachowania się w skryptach. Nie każdy projekt wykorzysta je w ten sposób, ale jest to jeden z powodów, dla których zostały zaprojektowane. Zastąpili UnrealScript jako sposób zmiany zachowań bez dotykania C ++, a także zastąpili Kismet, który był wizualnym systemem skryptowym Unreal 3.

Almo
źródło
Czy potrafisz rozwinąć? Czy tylko programiści używają Blueprinków, czy tylko „nietechniczni” pracownicy, czy może tylko jedno i drugie? Czy jest używany do określonych celów, czy do jakichkolwiek innych celów?
KABoissonneault,
7
@KABoissonneault To bardzo mieszanka. Przez większość czasu nie ma łatwego sposobu na wyraźne rozróżnienie między tym, nad czym pracują programiści, a tym, nad czym pracują nie-programiści. Jest to szczególnie prawdziwe, jeśli masz projektanta, który prawdopodobnie będzie chciał ulepszeń w całym kodzie. Plany są również często używane do szybkiego prototypowania i niekoniecznie są konwertowane na C ++, jeśli wydajność tego nie wymaga. Różni się również znacznie w zależności od studia i projektu, więc nie ma jednej odpowiedzi.
Pozew Fund Moniki z
9

Mała anegdota spoza branży gier: używamy UE4 do wizualizacji architektury w VR.

Chociaż wolę mieć większość rzeczy wbudowanych w C ++, używamy również Blueprints do wszelkiego rodzaju „dodatkowej logiki”, takich jak włączniki światła, drzwi itp.

Tak było już od ponad dwóch lat i byłem jedynym programistą na początku tego przedsięwzięcia. Oto moje spostrzeżenia:

  • To zadziwiające, co nie-programiści mogą zrobić z Blueprints!
  • Mogę być przerażający, co początkujący programiści robią z Blueprints;)
  • Nawet jeśli ostatecznie przekonwertuję go na C ++, Blueprints są dobre na szybką fazę RnD

I największa dla mnie: w wielu rozmowach stało się dla mnie jasne, że Blueprints przywoływało chęć zostania programistami w moich nie-technicznych kolegach. Głównym powodem takiego stanu rzeczy było to, że mogli zaimplementować dość złożoną logikę, jednocześnie będąc w stanie debugować ją wizualnie.

Nauczyli się kilku trudnych lekcji o architekturze oprogramowania i pułapkach (a raczej koszmarach) ogromnych planów spaghetti. Ale dopiero po tym, jak po drodze poczułam mnóstwo małych sukcesów! Nie byli więc wcale zniechęceni, ale raczej zmotywowani do robienia czegoś lepszego i samodzielnego dowiedzenia się, jak to zrobić.

Od tego czasu wzięli udział w kursach w C ++, Python i C #, ogólna jakość naszych Blueprints stała się znacznie lepsza, ale przede wszystkim: teraz mam trochę pomocy przy tworzeniu naszych podstawowych bibliotek :)

TLDR;

Tak, używamy Blueprints, a nawet sprawili, że moi początkowo nietechniczni rówieśnicy byli lepszymi programistami.

Xceno
źródło
1
Jedną z fajnych rzeczy w językach wizualnych, takich jak Blueprints, jest to, że nie musisz się martwić o składnię, i są one na ogół tak abstrakcyjne, że możesz zrobić wiele przy bardzo niewielkiej płycie. Ułatwiają naukę kodowania bez konieczności zagłębiania się w składnię. Są też zwykle zbyt wysoko poziomowi, aby wykonywać jakiekolwiek działania magiczne , ale wiesz, to kompromis, który chcę zrobić, aby osoby, które nie potrafią kodować, mają bezpośredni wpływ na zachowanie gry.
Pozew Fund Moniki z
@NicHartley spróbuj zrobić myVector.x += otherVector.xw Blueprints. : o
Almo
1
@Almo Jestem w około 90% pewien, że to możliwe, chyba że naprawdę chcesz, aby była to jedna „linia”. Po prostu (get myVector x) (get otherVector x) -> (+) -> (assign myVector x)(wow, trudno jest napisać plany w tekście ...). Jednak nie mam kopii Unreal do przetestowania. Lub, jeśli wektory są niezmienne, to po prostu stwórz nowy(myVector.x + otherVector.x, myVector.y, myVector.z)
Pozew Fund Moniki
1
Jest to zdecydowanie możliwe, ale jest bałagan. Linia wektorowa do pola Break, które ma wyjścia x, y, z. Zrób to dwa razy, jeden, aby pobrać myVector.x, a drugi, aby uzyskać otherVector.x, dodaj je i skieruj do pola przypisania.
Almo
1
Nie powiedziałem, że nie możesz. Po prostu to ohydne.
Almo