Jaka jest różnica między „generowaniem dynamicznym” a „generowaniem proceduralnym”?

15

Kiedy myślę o dynamicznie generowanej grze, myślę o takich rzeczach jak Diablo z losowo generowanymi poziomami. Kiedy myślę o proceduralnie generowanej grze, myślę o takich rzeczach jak Flappy Bird i inni nieskończeni biegacze.

Ale oba z nich po prostu losują poziom. Czy gry generowane proceduralnie są ciągle generowane, a gry generowane dynamicznie są generowane z góry? Czy te warunki są wymienne?

Jaka jest różnica między grą generowaną dynamicznie a grą generowaną proceduralnie ?

Evorlor
źródło

Odpowiedzi:

21

„Procedura” oznacza, że ​​pewien algorytm utworzył treść. Jest to przeciwne ręcznemu tworzeniu treści przez człowieka.

„Dynamiczny” oznacza, że ​​treść zmienia się w czasie. Jest to sprzeczne z treściami „statycznymi”, które nie zmieniają się po utworzeniu lub zmieniają się tylko w określony sposób, np. Animacja postaci w ramce kluczowej.

Możesz także mieć zawartość stworzoną przez graczy w grze. Jest to funkcja gry, która pozwala graczom zmieniać poziomy lub grę podczas gry, zamiast używać zewnętrznych narzędzi do modyfikowania gry. Ze względu na kilka następnych akapitów zakładam, że nie mówimy o treściach tworzonych przez graczy.

Możesz użyć kodu, aby wygenerować coś, co nigdy się nie zmienia; taka treść jest statyczna i nie dynamiczna, mimo że ma charakter proceduralny. Wszystkie treści dynamiczne mają charakter proceduralny, ale nie wszystkie treści proceduralne są dynamiczne.

Możesz miksować treści manualne, proceduralne, statyczne i dynamiczne na różne sposoby. Na przykład artysta może ręcznie utworzyć model budynku, użyć narzędzia do proceduralnego generowania różnych map tekstur dla modelu, a następnie skonfigurować dane fizyki lub systemów rozgrywki, aby dynamicznie niszczyć budynek i odradzać statyczne szczątki podczas gry.

Uwaga : te definicje nieformalne . Można na zawsze spierać się o semantykę na temat tych słów. Prawdopodobnie spotkasz ludzi z różnymi definicjami tych słów i żadne z nas niekoniecznie się myli. Nawet żargon technologiczny jest znacznie bardziej płynny niż my, programiści, preferujemy. :)

Sean Middleditch
źródło
1
„Cała zawartość dynamiczna ma charakter proceduralny” - co z treściami utworzonymi z działań innych graczy? Na przykład w Eve Online istnieją ciągle zmieniające się placówki orbit, które są w całości tworzone przez graczy.
Mołot
1
@Molot: i jest pierwszy przykład mojego ostatniego akapitu. :) Wydaje mi się, że tak naprawdę myślałem tylko o treściach opublikowanych przez programistów dla tej odpowiedzi i przypuszczam, że można by uznać zawartość stworzoną przez programistów i graczy za kolejną oś poza dynamiczną / statyczną lub manualną / proceduralną. np. w wielu grach gracze mogą budować struktury w trybie budowania, ale wtedy mapa jest statyczna przez resztę gry, dzięki czemu możesz mieć statyczne treści tworzone przez graczy. Ale znowu nie jestem zbyt szczegółowy w terminologii. :)
Sean Middleditch
4

„Dynamiczny” oznacza

„(procesu lub systemu) charakteryzujący się ciągłą zmianą, aktywnością lub postępem”.

(mówi google.)

Aby rozróżnić te dwa pojęcia, wybrałbym „dynamiczne generowanie” oznaczające „utworzone w sam raz, w locie, podczas gry” ...

„Generowanie procedur” oznacza algorytm generowany albo z góry, albo w locie.

David Van Brink
źródło
1
Czyli przeciwieństwo mojej początkowej myśli?
Evorlor,
2
@Evorlor: Tak powiedziałbym. „Proceduralny” oznacza po prostu, że jakiś algorytm utworzył treść. „Dynamiczny” oznacza, że ​​treść zmienia się w czasie. Możesz użyć kodu, aby wygenerować coś tylko raz, aby był statyczny, a nie dynamiczny. Wszystkie treści dynamiczne mają charakter proceduralny, ale nie wszystkie treści proceduralne są dynamiczne. Możesz je mieszać na różne sposoby; np. poziom dynamiczny, który proceduralnie wypełnia się treścią statyczną. :)
Sean Middleditch
@SeanMiddleditch przekonwertować na odpowiedź proszę :-)
Evorlor
@Evorlor: gotowe, ale nie jestem pewien, czy powiedziałem coś więcej niż to, co zrobił David Van Brink.
Sean Middleditch,
@SeanMiddleditch może nie, ale twoje wyjaśnienie było dla mnie jaśniejsze. Dzięki!
Evorlor,
1

Oto krótki przegląd.

  • Generowanie dynamiczne

Słowo „dynamiczny” oznacza zmianę. Słowo „generacja” oznacza tworzenie rzeczy, dlatego „generacja dynamiczna” zmienia generację. Dlatego „generowanie dynamiczne” odnosi się do treści, które ciągle się zmieniają.

  • Generowanie proceduralne

Słowo „proceduralne” odnosi się do treści stworzonych przez algorytm komputerowy, a nie przez człowieka. Jak ustaliliśmy, „generowanie” oznacza tworzenie, dlatego „generowanie proceduralne” odnosi się do treści generowanych za pomocą algorytmu komputerowego.

Hyden
źródło