The versatility of the CGA Rules and the fact that every detail can be processed by hand makes CityEngine a rapid and effective tool for game development.
Historia sukcesu
Zniszczone miasto
Cel projektu: proceduralne projektowanie poziomów gry
Aby zademonstrować praktyczne zastosowania swojej pracy naukowej dotyczącej proceduralnego generowania architektury w grach komputerowych, Christian Holzer i pięcioosobowy zespół studentów zdecydowali się na opracowanie trójwymiarowej, komputerowej gry akcji z elementami RPG. W trakcie realizacji projektu twórcy szybko doszli do wniosku, że głównym poziomem gry powinno być mroczne, postapokaliptyczne, środkowoeuropejskie miasto. Zdefiniowano następujące wymagania produkcyjne:
- Ze względu na małą liczebność zespołu, proces modelowania całego środowiska miejskiego musi przebiegać w ograniczonym czasie
- Projekt musi zawierać zniszczone budynki, a także rozmieszczone w wielu miejscach zniszczone zasoby
- Nie należy przekraczać ograniczonego budżetu poligonów
Rozwiązanie: modelowanie proceduralne w aplikacji CityEngine
Oczywiste było, że to szczególne środowisko, które było celem Holzera i jego zespołu, wymaga utworzenia dużego, środkowoeuropejskiego miasta przy zastosowaniu niewielkiej liczbie poligonów, które zostaną wygenerowane w krótkim czasie. Ponadto zespół potrzebował skutecznego sposobu modelowania zniszczeń, ponieważ ponad 60 procent miasta powinno być choć w części zniszczone. Holzer potrafił wykorzystać gramatykę kształtów CGA w sposób pozwalający na proceduralne zaimplementowanie zniszczeń architektury.
„Przed utworzeniem reguł dla domów i parków po prostu wydzieliliśmy przecznicę, aby zbadać efekt architektoniczny. Dla naszego projektu ważne było utrzymanie równowagi między wąskimi uliczkami i otwartymi przestrzeniami lub parkami. Gracz powinien mieć możliwość swobodnego poruszania się po całym poziomie gry, a jednocześnie korzystania ze specjalnego układu ulic, przecznic i ważnych budynków, które będą pełniły rolę wskazówek prowadzących do bardziej zaawansowanych obszarów gry. Reguły CGA są bardzo zróżnicowane, nie tylko w odniesieniu do procesu generowania budynków i ulic, ale także np. parków z przypadkowo rozmieszczoną roślinnością. Przy odrobinie praktyki można zaoszczędzić wiele czasu, szczególnie w porównaniu z innymi metodami”.
Zastosowany proces produkcyjny
Christian Holzer był głównym twórcą poziomów i środowiska w grupie składającej się z pięciu deweloperów. Do modelowania proceduralnego budynków, parków i ulic oraz do rozmieszczenia pozostałych modeli wykorzystano aplikację CityEngine i reguły CGA. Wszystkie zasoby gry zostały utworzone i pokryte teksturami w aplikacji Autodesk® Maya®. Oto stosowana przez zespół procedura wykonywania zadań:
- Rysunek koncepcyjny podstawowego układu budynków i ulic został utworzony w programie Adobe® Illustrator® i zawierał ulice w formie ścieżek wektorowych.
- Wektory ulic zostały zaimportowane do aplikacji CityEngine i wykorzystane jako główna sieć ulic. Następnie zostały wygenerowane mniejsze drogi i osiedla za pomocą narzędzi do edycji ulic i działek.
- Wczytana mapa przeszkód została użyta do wyznaczenia obszarów, które nie są przystosowane do ruchu pieszego.
- Użyto reguł CGA do wygenerowania architektury i ulic, zastosowano na przykład tekstury ulic zmieniające się w zależności od ich długości.
- Lampy uliczne, śmietniki i inne elementy zostały automatycznie rozmieszczone w sposób losowy.
- Model miasta został wyeksportowany z aplikacji CityEngine w formacie FBX® z użyciem połączenia według materiałów. Model został zaimportowany do programu Maya®, gdzie został dopracowany (obejrzyj obraz).
Do wygenerowania całego poziomu gry i rozmieszczenia wszystkich zasobów została użyta aplikacja CityEngine. Parametryczne niszczenie budynków również zostało zrealizowane za pomocą reguł CGA napisanych w aplikacji CityEngine. Końcowy poziom gry został ostatecznie wyeksportowany z programu Maya® i zastosowany w silniku Ogre3D-Engine.
Fakty dotyczące produkcji
- Użyte oprogramowanie: CityEngine®, Maya®, Photoshop®
- Czas proceduralnej produkcji wszystkich elementów: 200 osobogodzin
- Czas generowania proceduralnego całego obszaru w aplikacji CityEngine: ~25 s
- Obszar wygenerowany proceduralnie: 10 km2
- Łączna liczba ostatecznie wytworzonych poligonów proceduralnych: 300 tys.
- Liczba budynków i poszczególnych obiektów terenowych: ~50
Udostępniający zasoby
Modelowanie proceduralne: Christian Holzer
Zespół: Stefan Grassberger, Ivo Brunnbauer, Lukas Meindl, Nico Harather i Christian Holzer
Projekt: praca licencjacka, Dark Realm Game, FH Hagenberg