Czytam książkę Proceduralnego generowania treści online i w rozdziale 1 na stronie 2 jest jeden przykład tego, czym jest PCG, a inny tego, czym nie jest PCG i nie mogę ich rozróżnić.
Według nich jest to PCG:
oprogramowanie pośrednie silnika gry, które szybko zapełnia świat gry roślinnością
Według nich NIE jest to PCG:
silnik gry zdolny do integracji automatycznie generowanej roślinności
Również na stronie 1 wyraźnie powiedzieli, że nie uważają silnika gry PCG
Kluczowym terminem jest tutaj „treść”. W naszej definicji zawartość jest w większości zawarta w grze: poziomy, mapy, zasady gry, tekstury, opowieści, przedmioty, zadania, muzyka, broń, pojazdy, postacie itp. Sam silnik gry nie jest uważany za treść w naszej definicji.
Domyślam się, że przykładem PCG jest kod w grze (lub może to być kod, który dostosowuje się do każdej gry), który rozpoznaje mapę gry i zapełnia ją roślinnością zgodnie z nią. Dla mnie przykład inny niż PCG byłby jak opcja dostępna w silniku gry, gdyby deweloper mógł dodać roślinność offline za pomocą interfejsu użytkownika.
Ten ostatni jest ode mnie bardzo szalony, jestem całkiem pewien, że się mylę, ponieważ na pierwszy rzut oka oba brzmią jak PCG. Pomóż mi je rozróżnić.
Odpowiedzi:
Przez analogię
Obwód nie wytwarza energii. Żarówka nie wytwarza energii. Bateria nie wytwarza energii. Żadna z rzeczy, które wykorzystują lub przechowują wytworzoną energię , nie są generatorami energii.
Generator napędzany benzyną jest generatorem mocy . Układ paneli słonecznych to generator prądu . Oni można spodziewać się spontanicznie generować gdy są skopany. Z generowanej przez siebie energii mogą korzystać także inne rzeczy : lodówki i telewizory oraz komputery PC, grzejniki i żarówki.
Podobnie, dowolnym kodem lub programem, który faktycznie generuje treść w czasie wykonywania, jest PCG. Reszta to tylko użytkownicy tej proceduralnie generowanej treści (PGC). Teraz,
Generowanie treści proceduralnych
to nie to samo co
Treści generowane na podstawie procedur
PGC to wynikowy artefakt procesu (programu), który angażuje się w PCG.
PCG jest opracowywany (programowany) do tego stopnia, że może autonomicznie wytwarzać treści według niektórych lub innych specyfikacji, ale w (zazwyczaj) niezliczonych odmianach; W ten sposób PGC jest generowany jako jedna odmiana nieograniczonych możliwych przestrzeni treści w ramach tej szerszej specyfikacji algorytmicznej. Po wygenerowaniu PGC są skończone i statyczne . PCG radzą sobie z nieskończonością (lub wystarczająco blisko).
Adresy szczegółowe
„Proceduralne generowanie treści” odnosi się do kodu / aplikacji generujących treść.
Każdą grę można uznać za grę PCG, jeżeli w czasie wykonywania dynamicznie generuje nową zawartość za pomocą części zestawu instrukcji.
Jeśli ty (lub twój silnik) korzystasz (-aś) z innego kodu programu, który generuje zawartość, dołącz tę zawartość jako część gry w czasie kompilacji / kompilacji , wtedy twoja gra (i jej kod) NIE jest PCG. W związku z tym:
... nie jest PCG, ponieważ sam silnik nie wytwarza nowych treści w czasie wykonywania, po prostu wykorzystuje wygenerowaną treść z innych źródeł, które zostały ręcznie dołączone przez artystów, projektantów lub programistów.
PCG nie ma nic wspólnego z rozpoznawaniem. Ma to związek z wykonywaniem aktywnej pracy polegającej na tworzeniu treści. Zasadniczo aplikacje PCG generują własny format danych, który są już w stanie zrozumieć i z nimi pracować. Zazwyczaj nie czytają w źródłach zewnętrznych, chociaż kiedy to robią, jest to po prostu stara logika programu ... nie PCG jako taka. PCG to generacja . Stąd PCG, a nie PCR :)
Perspektywy historyczne
To, co uważamy za „treść” w tym kontekście, ogólnie obejmuje te rzeczy, które w przeszłości ludzie musieli sami wytwarzać. Na przykład w latach 70. i 80. prawie każda gra (z wyjątkiem kilku wyjątkowych) musiała mieć swoją sztukę, historię, muzykę, charakter i planety, i tym podobne, wyprodukowane przez człowieka . To było biegunowe przeciwieństwo PCG.
PCG zaczęło się, gdy programiści gier zdali sobie sprawę, że zamiast rygorystycznego zatrudniania artystów, muzyków, pisarzy itp. - a następnie nadal muszą zintegrować swoją pracę z kodem, lub jeszcze gorzej, wykonując całą tę pracę samodzielnie, a także kodowanie - mogą zamiast tego pisz programy, które wygenerują dla nich wszystkie te rzeczy. Te wysiłki były jednymi z pierwszych prawdziwie PCG funkcji, modułów i programów. Doskonałym przykładem jest oryginalny XCom / UFO , w którym kod gry generuje całkowicie unikalny poziom przed walką. Wcześniej (1979) istniała Świątynia Apshai .
Elita była inną sprawą: część jej zawartości została wygenerowana, gdy gra była w fazie rozwoju; nie tylko ten kod został napisany przez tych samych autorów, ale również, że wstępnie wygenerowana treść była zwykle używana w czasie wykonywania
elite.exe
(tj. kiedy gracz uruchomił grę) przez kolejne generatory, które były częścią kodu gry , tworząc świat, który grał w.Nowszym przykładem jest Minecraft (i inne zainspirowane nim gry), w których świat dosłownie generuje się wokół ciebie, idąc w kierunku horyzontu, w dużej mierze dzięki nowoczesnej mocy obliczeniowej. Porównaj to z Rogue lub Morią graną na PC-XT w latach 80., na które być może będziesz musiał czasem usiąść i czekać na wygenerowanie poziomu! (w zależności od wybranych ustawień gry).
Nie wszystkie PCG są historycznie zakorzenione w branży gier. Na przykład są tacy, którzy piszą generatory fikcji. Na przykład Ken Perlin w dziedzinie grafiki i geometrii obliczeniowej stworzył algorytm Perlin Noise, za który później otrzymał nagrodę akademicką. Na przykład muzyk Brian Eno od dawna zajmuje się generowaniem proceduralnych partytur muzycznych. I jako kolejny przykład, inne niż cyfrowe gry planszowe, takie jak HeroQuest / Warhammer Quest, dawno temu wymyśliły dynamikę proceduralną do tworzenia różnych plansz dla każdej gry.
źródło