Wątek przeniesiony 2021-12-14 19:07 z Kariera przez cerrato.

Silniki gier (Unreal Engine, Unity , ...) a umiejętność programowania

0

Mam takie pytanie bo ogólnie wiadomo, że do pisania systemów operacyjnych jest wymagana dużo większa znajomość programowania logicznego myślenia i matematyki.
Nie wiem za bardzo jak to jest w grach typu worms, unreal, fifa

Ale wracają do tematu gier to od czego w tworzeniu gier zależy znajomość języków takich jak c++,c#, itp. i jeszcze ogólnie znajomość silnika gry i tworzenia graficznych obiektów.

Jak ma to się do gier 20 lat temu a jak dziś ?

3
tomixtomi0001 napisał(a):

Mam takie pytanie bo ogólnie wiadomo, że do pisania systemów operacyjnych jest wymagana dużo większa znajomość programowania logicznego myślenia i matematyki.

Niby piszesz, że masz pytanie, a zamiast je zadać, piszesz swoją opinię. ;)

Logiczne myślenie jest potrzebne do programowania wszystkiego prócz pralek. Natomiast matematyka w ogóle nie jest jakoś szczególnie potrzeba w przypadku systemów operacyjnych, natomiast w przypadku gier już jak najbardziej. Chyba że masz narzędzia, którymi możesz sobie takie rzeczy wyklikać.

Nie wiem za bardzo jak to jest w grach typu worms, unreal, fifa

W przypadku gier, matematyka jest potrzebna choćby do obliczeń ścieżek ruchu obiektów. Biorąc za przykład Wormsy — strzelasz z bazuki i pasuje obliczyć trajektorię ruchu, uwzględniając siłę strzału, wiatr itd. Jeśli chodzi o gry, to ważna jest też algorytmika, czyli dobieranie najlepszych rozwiązań dla konkretnych problemów, aby wydajność była jak najlepsza.

Ale wracają do tematu gier to od czego w tworzeniu gier zależy znajomość języków takich jak c++,c#, itp. i jeszcze ogólnie znajomość silnika gry i tworzenia graficznych obiektów.

Dziwne pytanie. Od znajomości tych rzeczy zależy to, czy dasz radę stworzyć grę czy nie. Wszystko zależy od tego, w jaki sposób ma ona powstać — czy napiszesz ją w opraciu o jakąś bibliotekę graficzną, czy może skorzystasz z dużego (gotowego) silnika, a jeśli tak, to czy część funkcjonalności postanowisz wyklikać w edytorze, czy może zdefiniować własnym kodem.

Im więcej będziesz chciał zrobić z poziomu własnego kodu, tym większą wiedzę potrzebujesz, aby wykonać zadanie. Silniki pokroju Unity pozwalają dużo rzeczy wyklikać w edytorach, obniżając ilość potrzebnego kodu do napisania. Tak więc odpowiedź na to pytanie jest taka — to zależy, bo pytasz zbyt ogólnie.

Jak ma to się do gier 20 lat temu a jak dziś ?

20 lat temu większość gier tworzonych było od podstaw. Były gotowe silniki, ale raczej posiadały je duże firmy i stosowały tylko do swoich produkcji. Tak więc dawniej trzeba było mieć większą wiedzę niż dziś, bo dziś dużo rzeczy masz gotowych — do wyklikania.

0

W przypadku gier, matematyka jest potrzebna choćby do obliczeń ścieżek ruchu obiektów. Biorąc za przykład Wormsy — strzelasz z bazuki i pasuje obliczyć trajektorię ruchu, uwzględniając siłę strzału, wiatr itd. Jeśli chodzi o gry, to ważna jest też algorytmika, czyli dobieranie najlepszych rozwiązań dla konkretnych problemów, aby wydajność była jak najlepsza.

Ale ten elementu chyba załatwia engine gry czyli wzory matematyczne.

1

Ale ten elementu chyba załatwia engine gry czyli wzory matematyczne.

A wzory matematyczne to nie matematyka?

1

Kiedyś ludzie robili silniki z konieczności. Jak ktoś chciał zrobić grę, to musiał zrobić całość (co najwyżej użyć jakiejś biblioteki do samej grafiki).

A teraz jest tak, że hobbyści/indie developerzy albo:

  • używają gotowych silników typu Unity3D w myśl, że lepiej robić grę, gameplay i zrobić/znaleźć assety niż babrać się w szczegółach silnika.
    Tylko, że potem te gry często są na jedno kopyto. Chociaż jak ktoś chce zrobić grę niewiele umiejąc, to pewnie najszybsza opcja.

  • robią własne silniki dla funu, jeśli ich to kręci. Bo to może być fajne, ta cała matematyka, algorytmy, rendering.
    Niby sztuka dla sztuki, ale potem patrzy się na to, co ludzie robią sobie przez rok, dwa i jest podziw, oryginalność itp.

3
LukeJL napisał(a):
  • robią własne silniki dla funu, jeśli ich to kręci. Bo to może być fajne, ta cała matematyka, algorytmy, rendering.
    Niby sztuka dla sztuki, ale potem patrzy się na to, co ludzie robią sobie przez rok, dwa i jest podziw, oryginalność itp.

Wątpię, aby ktoś wybierał tworzenie silnika od podstaw tylko po to, aby mieć z tego radochę. Według mnie powody są konkretne, a niektórymi z nich mogą być:

  • chęć nauki i rozumienia jak wszystko działa,
  • chęć wykonania silnika w taki sposób, aby zaimplementować to co jest faktycznie potrzebne do danego projektu, bez konieczności godzenia się z ograniczeniami obecnych silników czy rozgryzania w jaki sposób te ograniczenia obejść,
  • chęć wykorzystania znanej technologii, a nie tej, która jest popularna,
  • chęć odcięcia się od dodatkowych kosztów licencyjnych itp.

Tego typu powodów jest znacznie więcej.

1
furious programming napisał(a):

Wątpię, aby ktoś wybierał tworzenie silnika od podstaw tylko po to, aby mieć z tego radochę. Według mnie powody są konkretne, a niektórymi z nich mogą być:

  • chęć nauki i rozumienia jak wszystko działa,
  • chęć wykonania silnika w taki sposób, aby zaimplementować to co jest faktycznie potrzebne do danego projektu, bez konieczności godzenia się z ograniczeniami obecnych silników czy rozgryzania w jaki sposób te ograniczenia obejść,
  • chęć wykorzystania znanej technologii, a nie tej, która jest popularna,

No, w sumie to miałem na myśli pisząc (i używając skrótu myślowego), że "robią własne silniki dla funu, jeśli ich to kręci. Bo to może być fajne, ta cała matematyka, algorytmy, rendering." oraz "potem patrzy się na to, co ludzie robią sobie przez rok, dwa i jest podziw, oryginalność itp.".

No ale dzięki za doprecyzowanie :)

2
furious programming napisał(a):
  • chęć odcięcia się od dodatkowych kosztów licencyjnych itp.

Oprocz tego wszystko sie zgadza, gotowy silnik wybiera sie, bo jest tani, czesto nie ma kosztow licencyjnych, ale np. Epic pobiera procent od zysku powyzej jakiejs tam granicy (co i tak jest tansze, ale nie mam zadnego linka z porownaniem hajsow).

2
LukeJL napisał(a):

No, w sumie to miałem na myśli pisząc (i używając skrótu myślowego), że "robią własne silniki dla funu, jeśli ich to kręci. Bo to może być fajne, ta cała matematyka, algorytmy, rendering." oraz "potem patrzy się na to, co ludzie robią sobie przez rok, dwa i jest podziw, oryginalność itp.".

Planuję w najbliższej przyszłości rozpocząć prace nad własną, dużą grą, oczywiście w stylu retro — dużą jak dla mnie, bo jakoś szczególnie wielkim molochem nie będzie (góra 100-150k LoC, razem z potrzebnymi narzędziami). Silnik planuję stworzyć własnoręcznie, bo chcę użyć Free Pascala (z wielu sensownych powodów), chcę go znać jak własną kieszeń i zaimplementować tylko to co będzie mi potrzebne, a także dlatego, że aby uzyskać zamierzony efekt końcowy, trzeba do tego tematu podejść nieszablonowo. No i oczywiście chciałbym skorzystać z SDL-a, bo jest lekki i efektywny jak cholera.

Taki silnik jestem w stanie machnąć w pół roku w znanej mi technologii (Free Pascal + SDL), a gdybym miał użyć np. Unity, to obstawiam, że więcej czasu zajęło by mi nauczenie się C++/C# na potrzeby tego narzędzia, a także na ogarnięcie tego jak się w ogóle z nim pracuje (już nie wspominając o tym, jak zaimplementować to co sobie wymyśliłem). Wydaje się, że w moim przypadku, znacznie więcej zalet ma właśnie stworzenie silnika od podstaw, niż wykorzystanie już istniejącego.


tmk3 napisał(a):

Oprocz tego wszystko sie zgadza, gotowy silnik wybiera sie, bo jest tani, czesto nie ma kosztow licencyjnych, ale np. Epic pobiera procent od zysku powyzej jakiejs tam granicy (co i tak jest tansze, ale nie mam zadnego linka z porownaniem hajsow).

Jeśli chodzi rynek komercyjny i tworzenie konkretnych produktów, to największe silniki raczej nie są za friko — każdy ma jakieś limity. Na szybko sprawdziłem i okazuje się np., że UE4 ma limity zarobkowe, a wersja darmowa nie może być używana do tworzenia pełnoprawnych produktów. Podobnie jest w przypadku Unity — też są limity zarobkowe na danym produkcie, a ich przekroczenie wiąże się z obowiązkiem zakupienia licencji na konkretną liczbę stanowisk. Jeśli jesteście zainteresowani, to przeglądnijcie sobie te dokumenty.

Tak więc to nie jest tak, że wybór gotowego silnika nie wiąże się z dodatkowymi opłatami, bo to nie jest prawda. Natomiast darmowe wersje, których nawet jeśli można użyć do stworzenia produktów, często zawierają predefiniowane intro z nazwą i logo silnika — a nie każdy chce, aby jego oprogramowanie cuchnęło biedą i atakowało użytkowników np. ekranem z logo Unity przy każdym starcie gry. :D

0

@furious programming: tak, sa platne, mi chodzilo po prostu o to, ze to sa pomijalne kwoty w stosunku do tworzenia swojego silnika (jedna duza polska firma nazywala ten wybor "cost effective"). Cala reszta jest git, ja sie z toba zgadzam

0

No cóż — rynek jasno pokazuje, że tworzenie silnika od podstaw w dzisiejszych czasach jest dużą rzadkością. Oczywiście jeśli chodzi i duże produkcje działające w 3D, bo silnik dla małej gry działającej w 2D czy 2.5D można naklepać samotnie w kilka miesięcy (o ile ma się stosowną wiedzę, niekoniecznie wybitną).

Po prostu narzędzia i ścieżkę dewelopmentu trzeba sobie dobrać według wymagań projektowych i budżetu, nie na odwrót. W moim przypadku, napisanie silnika od podstaw będzie znacznie bardziej opłacalne czasowo i fonansowo (z czasem i tak wyjdę na plus, a budżetu nie będę potrzebował w ogóle). A jak się sprawa ma w przypadku tysięcy innych indie-deweloperów to już raczej trzeba sprawdzić, bo nie mam takich statystyk pod ręką.

1

Cześć,
w odpowiedzi na pytanie, czy jest wymagana znajomość programowania, żeby zrobić grę - to nie.
Pytanie tylko, jakie to będą gry i jak będą pracowały.
Jeśli bardzo chcesz zrobić grę a nie potrafisz programować, jednak (co jest warunkiem) posiadasz zdolność logicznego myślenia, to BP w UE4 są dla Ciebie i je pokochasz.
Poniżej link do gry, którą samodzielnie zrobiłem (no dobra, którą już prawie zrobiłem) tylko na bazie dokumentacji i tutoriali z YT.

0

UE5 to zapewne najładniejszy silnik graficzny, chciałbym, żeby nowy Wiedźmin 4 i Gothic 5 tak wyglądał.

0

@joim: Heh, jeśli nowy Skyrim będzie tak wyglądał, to trzeba będzie wziąć mały urlop.

1
joim napisał(a):

UE5 to zapewne najładniejszy silnik graficzny […]

Kwestią nie jest to co potrafi sam silnik, kwestią jest co potrafią z nim zrobić programiści i artyści. ;)

1 użytkowników online, w tym zalogowanych: 0, gości: 1