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 ?
„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 nie są formalne . 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. :)
„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.
@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.
„Dynamiczny” oznacza
(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.
źródło
Oto krótki przegląd.
źródło