|
Proces renderu
ruchów jest bardzo czasochłonny ale pozwala zawrzeć w siatce ścieżki
elementy zachowania bardzo bliskie naturalnym zachowaniom człowieka oraz
zwierząt. Podstawowa funkcja siatki ruchu jest zawarcie informacji o
kształcie mapy oraz położeniu kluczowych obiektów w pamięci postaci.
Dodatkowe możliwości są jednak bardzo rozlegle a należą do nich: zdolność
do określenia miejsc bezpiecznych, słabiej oświetlonych, optymalnych do
obrony oraz ataku. Nawiesza zaleta siatki ruchu jest możliwość implementacji
procesu uczenia się strategii walki która mamy nadzieje zaimplementować w
przyszłości.
2.2 Dobór
aktualnej akcji oraz synchronizacja ruchów postaci.
Dobór aktualnej
akcji. Algorytmy behawioralne maja za zadanie nadanie jak największego
realizmu zachowań postaci sterowanych przez komputer. Wymieniony w tym
punkcie moduł programu odpowiada za sposób w jaki zachowuje się symulowana
postać. Program ten jest bardzo złożony i wymaga niezwykle starannego
oprogramowania oraz starannego doboru parametrów pracy.
2.3 Dobór
ekwipunku.
- Rozważenie doboru
ekwipunku. Algorytmy selekcji zachowania postaci na bieżąco analizują
również szereg uwarunkowań dotyczących doboru ekwipunku. Do najważniejszych
z nich należą: Czy Warto podnieść bron, jeśli jest to bron silniejsza od
niesionej? Czy warto podnieść apteczkę i elementy osłon? Czy w czasie
podnoszenia narazimy się na atak?
2.4 Dobór
aktualnie używanego narzędzia.
- Dobór aktualnie
używanego narzędzia. Przeciwnicy widza, jaka bron posiada adwersarz i
dostosowują strategie. Jeśli bron jest skuteczna na niewielkie dystanse to
należy się oddalić i zmienić broń na skuteczną z dużej odległości. Jeśli
adwersarz niesie bron o dużym polu rażenia najlepiej starać się zbliżyć i
uniemożliwić skuteczne wykorzystanie tego narzędzia.
2.5 Współpraca
pomiędzy postaciami.
- Współpraca
pomiędzy postaciami. Potrafią wzywać posiłki i czekać na ich nadejście a
następnie atakować w grupie. Dzięki takiemu rozważaniu poczynania
przeciwników przypomina bardziej naturalnie zachowanie człowieka.
3 Implementacja Zróżnicowanych materiałów
pokrywających powierzchnie.
Rożne elementy postaci mogą
być pokryte materiałem o zróżnicowanych parametrach optycznych. Dzięki
takiemu rozwiązaniu skóra postaci może inaczej odbijać światło niż elementy
zbroi oraz. Noszone przez postać ubranie mogą być wykonane z przezroczystych
materialow a wypolerowane elementy uzbrojenia może odbijać światło tła.
Technika różnicowania materiałów równie dobrze nadaje się do przedstawianie
dodatkowych efektów jak przykładowo dymienie i iskrzenie. Zróżnicowanie
materiały otwierają nowe możliwości wizualizacji obiektów.
4 Implementacja
oświetlenia Specular Highlights.
Czymże byłaby
współczesna gra komputerowa bez oświetlenia specular. W naszej grze dajemy
graczowi możliwość wyboru sposobu przedstawienia odblasków. W pierwszym z
nich, proces obliczenia niezbędnych parametrów został tak zoptymalizowany,
że obciążenie czasu procesora jest minimalne. Druga metoda umożliwia
przedstawienie odblasków jednocześnie z możliwością przedstawiania bitmapy
wichrującej, o której można przeczytać więcej w następnym punkcie tego
dokumentu.
4.1 Implementacja
bitmapy środowiskowej.
Bitmapa środowiskowa
jest pewnym uzupełnieniem świateł typu Specular Highlights jednak w pewnych
okolicznościach (przede wszystkim podczas wizualizacji otwartych przestrzeni)
pozwala ona dostarczyć niezwykłych doznań estetycznych. Jest to także bardzo
prosty sposób na prezentacje powierzchni pseudo lustrzanych. Nasze
oprogramowanie pozwala na wykorzystanie bitmap środowiskowych które podnoszą
realizm prezentowanej sceny nie sa jednak tak wymagające pod względem
zapotrzebowania na moc procesora jak światła specular lub prawdziwe lustra.
4.2 Implementacja
przestrzennej mgły (volumetric fog).
Przestrzenna mgła pozwala
określić miejsca w których przejrzystość powietrza jest mniejsza.
Rozwiązanie to otwiera szereg możliwość dla twórców świata gry. Ten efekt
pojawił się w grach komputerowych po raz pierwszy wiele lat temu. jednak
nadal wiele z obecnych na rynku gier nadal nie wykorzystuje tej technologii.
5 Implementacja Bitmapy
wichrującej(Bump-Map).
Współczesne karty
grafiki ułatwiają zastosowanie bitmap wichrujących w grze. Zamierzamy w
pełni wykorzystać te możliwość tworząc wiele pięknych efektów jak na
przykład falowanie powierzchni wody. Efekt bitmapy wichrującej doskonale
nadaje się do podniesienia walorów wizualnych niemal każdej powierzchni...no
może oprócz doskonale gładkiej powierzchni talerzy twardego dysku.
Oto przykładowe
zastosowania efektu bitmapy wichrującej.
- trójwymiarowe ślady po pociskach.
- trójwymiarowe odciski stop na śniegu lub piasku.
- realistyczne ornamenty.
- niewielkie animowane obiekty, takie jak insekty, pająki i karaluchy.
- realistyczne grymasy twarzy.
- tuziny widowiskowych efektów świetlnych.
5.1 Niezwykle
realistyczny model powierzchni wody.
Dzięki wykorzystaniu
bitmapy wichrującej możliwe jest stworzenie symulacji niezwykle
realistycznych fal na powierzchni wody. Kształt oraz kierunek rozchodzenia
się fal uwzględnia rozmiary zbiornika oraz przedmiotu będącego źródłem fali.
5.2 Prezentacja
powierzchni lustrzanych i częściowo lustrzanych.
Nasze oprogramowanie
umożliwia umieszczanie luster oraz powierzchni częściowo lustrzanych,
takich jak posadzki. Renderowane odbicie jest generowane wspólnie z
obiektem odbijanym podczas jednego wspólnego procesu wyświetlania. Opisane
rozwiązanie daje bardzo efektywny i sposób wyświetlania odbić lustrzanych a
dzięki temu proce ten nie powoduje widocznego wpływu na wydajnosc.
6 Starannie
zaimplementowana fizyka komponentów.
Dobrze zaimplementowana
fizyka obiektów nie daje tak spektakularnych i widowiskowych efektów jak na
przykład cieniowanie, w wielu produktach pojawiających się na rynku wydaje
się być niedbale zaimplementowana a przecież jest to element silnie
wpływający na grywalność.
W tym produkcie
zaimplementujemy technologie umożliwiające realistyczne przedstawienie
zjawisk fizycznych. Najbardziej spektakularnymi przykładami są: Powierzchnia
wody (opisana w punkcie 5.1) oraz efekt tłuczenia szkła (opisany w punkcie
12.1) poza tym w grze będzie można zaobserwować pływające lub tonące
przedmioty, realistyczny upadek do wody. Realistyczna zmiana gęstości i
lepkości środowiska. efekty toczących się kamieni oraz wiele, wiele innych.
7 Pełna implementacja
realistycznych dynamicznych cieni.
Nasza technologia
umożliwia wyświetlanie dynamicznych cieni w czasie rzeczywistym, w
przyszłości chcielibyśmy te technologie jeszcze udoskonalić. Udoskonalenie
to nie jest jeszcze obecne w obecnych na rynku silnikach, generalnie opiera
się ono na dwóch zasadach:
- w realnym świecie, cienie rzucane przez przedmioty nigdy nie są ostre, z
powodu rozproszenia światła.
- jeżeli nie możesz policzyć czegoś szybko, staraj się stworzyć pozory ze
potrafisz a rezultat będzie podobny.
8 Animowana Architektura.
Technologia Animowanej Architektury
pozwala na zmianę wyglądu całej sceny tak jak ma to miejsce w programach do
renderingu.( 3D Studio itp.) Technologia Animowanej Architektury umożliwia
lub ułatwia stworzenie przykładowych efektów:
- realistyczne
uszkodzenia budynków.
- płynna wizualizacja zmiany pory dnia lub nocy w czasie rzeczywistym.
- mgła, liście, kurz, papiery poruszane przez wiejący wiatr.
- dynamiczne cienie od ruchomych elementów architektury, takich jak windy i
drzwi.
- ruchome schody.
- trzęsienia ziemi.
- olbrzymie pracujące i ruchome maszyny jak dźwigi, statki turbiny.
- tornada, ogromne fale wody i inne dramatyczne anomalia pogodowe.
- oraz wiele innych. Upraszczając, silnik gry jest przystosowany do
odtwarzania niemal dowolnej wcześniej przygotowanej sceny. Twórca gry ma
możliwość aktywacji sekwencji animacji w dowolnym momencie. Takie rozwiązane
pozwala przygotować na przykład następującą scenę. Gracz detonuje ładunek w
pobliżu tamy -> tama pęka-> Woda wylewa się z za uszkodzonej tamy -> fala
wody zmywa żołnierzy przeciwnika.
Oczywiście technika
ta ma pewne ograniczenia.
- zapotrzebowanie pamięci. Dane zmian w poszczególnych ramkach animacji są
kompresowane, lecz pomimo tego mogą zajmować znaczne obszary pamięci.
przeciętnie jest to około 30-100KB na ramkę animacji.
- Czas niezbędny do policzenia cieniowanie statycznego i optymalizacji
wyświetlania.
Jest to czynnik
bardzo istotny podczas tworzenia sceny, ponieważ wydłuża on czas pracy
twórców i podnosi koszty produkcji.
Prace nad
stworzeniem środowiska animowanej architektury trwają od pewnego czasu i są
już znacznie zaawansowane jednak do zupełnego ukończenia tego
przedsięwzięcia niezbędne będą dodatkowe środki.
8.1 Płynna zmiana pory
dnia.
Zmiana pory dnia polega
na zmianie warunków oświetlenia sceny w czasie gry. Rozwiązanie to daje
możliwość nie tylko zmian strony wizualnej gry. Pozwala ono także urozmaicić
profile zachowania występujących w grze postaci, a także uzaleznic cala
fabule od pory dnia. Zmiana pory dnia ma przebiegać dwunastokrotnie
szybciej niż ma to miejsce w znanej nam rzeczywistości.
8.2 Płynna zmiana
warunków pogodowych.
Zmiana warunków
pogodowych ma na celu stworzenie złudzenia maksymalnej realności
przedstawianego świata. Polega ona na rozwiązaniu które pozwala płynnie
rozpoczynać emisje opadów. Rozwiązanie to pozwala również płynnie zmieniać
charakter opadu np. opad jesiennego deszczu może przejść w deszcz ze
śniegiem a następnie w opady śniegu i wszystko będzie przebiegać zupełnie
naturalnie.
9 Implementacja
Dynamicznej Zmiany Poziomu Detali.
Dynamiczna zmiana
poziomu detali polega na przedstawianiu obiektów położonych dalej przy
pomocy mniejszej ilości trójkątów. Analogicznie obiekty położone blisko
obserwatora przedstawione są przy pomocy większej ilości trójkątów.
Zastosowanie takiego rozwiązania pozwala na tworzenie scen zawierających
więcej detali, przy zachowaniu nie zmienionej prędkości odświeżania obrazu.
Wzrost dokładności
jest nieproporcjonalnie większy do wzrostu zapotrzebowania na wydajność
sprzętu potrzebnego do obsługi tego świata.
10 Doskonała jakość
połączeń Internetowych w grze sieciowej.
Poświęciliśmy wiele
miesięcy na dopracowanie technologii gry sieciowej. Nasze prace zaowocowały
opracowaniem technik wygładzania ruchu obrazu gracza sieciowego, oraz
rozwinięciem algorytmów przewidywania położenia obrazu gracza sieciowego w
przypadku opóźnienia w przesyłaniu danych z serwera.
Aby uzyskać lepsza
przepustowość łączy stosujemy złożone algorytmy kompresji pakietów danych.
Serwer gry sieciowej jest osobnym programem o stosunkowo skromnych
wymaganiach sprzętowych, mogącym działać pod wieloma systemami operacyjnymi
i wymagający niewiele miejsca na dysku. Skromne wymagania serwera sieciowego
pozwalają na łatwe tworzenie amatorskich serwerów przez fanów.
Oprogramowanie nazywane Serwerem Matka jest przystosowane do odszukiwania
amatorskich i komercyjnych serwerów posiadających połączenie z Internetem.
Serwer Matka jest w stanie dostarczyć graczom z całego świata listę adresów
gier aktualnie dostępnych w Internecie.
11 Obsługa bardzo małych
obiektów (particles).
Ogromna cześć obiektów
występujących w grze jest tak mała ze w trakcie symulacji ich zachowania
można rozważać je jako obiekty punktowe. Dzięki zastosowaniu takiego
podejścia można w znakomity sposób uprościć algorytmy modelujące to
zachowanie. Uproszczenie rozważań do obiektu punktowego, powoduje, że możemy
obsłużyć znacznie więcej takich obiektów w jednostce czasu. Duża ilość
drobnych obiektów pozwala natomiast zapewnić graczowi doznania wizualne,
których nie można doświadczyć w produktach nie przygotowanych do specjalnego
traktowania bardzo małych obiektów.
11.1 Ultra-realistyczne
modele organiczne.
Zastosowanie obiektów
punktowych ułatwią wizualizacje organicznych elementów sceny a w
szczególności drzew krzewów zarośli i traw. Wymienione elementy
przedstawione w formie grupy obiektów punktowych tworzą złudzenie
niezwykłego podobieństwa to świata realnego.
12 Sekwencje „Bulet
time” oraz regulacja upływu czasu.
W grze korzystamy z
możliwości regulacji tempa upływu czasu do zaakcentowania lub podkreślenia
wydarzeń które dzieją się tak szybko ze mogły by uciec uwadze obserwatora.
12.1 Niezwykle
realistyczny model fizyczny tłuczonego szkła.
W Ta technologia
została przez nas zaimplementowana już jakiś czas temu i wykorzystania w
wcześniejszych produkcjach. Poza tym wiele obecnych na rynku gier daje
możliwość stworzenia złudzenia rozbicia szyby. Jednak w zadym wydanym
dotychczas produkcie fizyka elementu kruchego nie jest zasymulowania tak
precyzyjnie. Nasz engine może przedstawiać proces kruszenia szyby w trybie
bulet-time w którym dokładnie widac jak rozchodzą się naprężenia w materiale
oraz w jaki sposób rozpraszana jest energia kruszących się fragmentów
elementu. Jak dotąd nikt jeszcze nie przygotował podobnej technologii na
potrzeby gier komputerowych.
13 Pełna implementacja
architektonicznego systemu dźwiękowego.
W chwili obecnej nasz
silnik zapewnia trójwymiarowy dźwięk. poprzez biblioteki DirectSound ™.
Aktualnie rozwiązanie to pozwala zapewnić słuchaczowi niezwykłej jakości
doznania słuchowe.
Wymieniony system
zapewniają dobrej jakości dźwięk, zarówno podczas odtwarzania jako dźwięk
kwadrofoniczny, poprzez słuchawki czy poprzez klasyczny układ stereofoniczny.
Obecnie nasze
wysiłki koncentrują się nad implementacja pogłosów towarzyszących dźwiękom,
których siła i opóźnienie będzie miała związek z kształtem i wielkością
pomieszczenia.
14 Zróżnicowanie
poziomów trudności gry.
Gracze komputerowi
reprezentują bardzo zróżnicowanie poziomy umiejętności pokonywania przeszkód
występujących w grze. Jest to bardzo ważny aspekt, który należy mięć na
uwadze podczas dopracowywania grywalności produktu. Zróżnicowanie trudności
nie powinno polegać na umieszczeniu większej lub mniejszej ilości
przeciwników na danym obszarze. W naszych produktach stosujemy bardziej
wyszukane techniki dostosowania stopnia trudności do wymagań odbiorcy.
Oto najważniejsze z
nich:
- czas reakcji przeciwnika na zobaczenie gracza.
- stopień prawdopodobieństwa dostrzeżenia lub usłyszenia gracza przez
komputerowych przeciwników.
- współczynnik rozrzutu pocisków wystrzelonych przez przeciwników.
- profil zachowania i wybranej strategii.
- zdolność do używania opatrunków oraz innych gadżetów.
15 Rozbudowany
nowoczesny język skryptowy.
Podstawowa różnica
pomiędzy stworzonym przez nas silnikiem a innymi silnikami dostępnymi na
rynku, jest fakt ze w naszym silniku modelowanie zjawisk, jak na przykład
zachowanie występujących w grze postaci, przebiega za pomocą języka
skryptowego. W innych silnikach, zewnętrzni programiści musza dołączać
samodzielnie napisane element kodu źródłowego. Na przestrzeni wieloletniej
praktyki przekonaliśmy się ze jest to częstym źródłem kłopotów.
Język skryptowy
został stworzony, aby ułatwić prace studiom, które nie posiadają armii
wykwalifikowanych programistów. Dzięki takiemu rozwiązaniu możliwe było
powstanie programu Mortyr. Wydaje się ze wybór języka skryptowego okazał
się trafny, w przyszłości mamy nadzieje rozwinąć te koncepcje, a sam język
uczynić bardziej elastycznym.
16 Skalarność.
Wiele gier wcześniej
Poprzez slowo „skalarność” rozumiemy umiejętność dostosowania się
oprogramowania do możliwości sprzętu na jakim zostało uruchomione. Ta cecha
oprogramowania jest bardzo ważnym czynnikiem decydującym o tym jak szerokie
grono odbiorców może potencjalnie cieszyć się produktem optymalnie
dostosowanym do możliwości użytkowanego sprzętu. Podczas procesu tworzenia
gry komputerowej znaczna uwagę przykładamy do tego aby nasz produkt pracował
płynnie i oferował wysokiej jakości rozrywkę na zróżnicowanych platformach
sprzętowych.
Poniżej wymienione
zostały podstawowe czynniki mające największy wpływ na tzw. skalarnosc
produktu:
Rozmiar tekstur
zależny od przepustowości portu AGP oraz pojemności karty video.
- Oświetlenie
specular.
- Symulacja
ruchu fal wody.
- Jakość
odtwarzanego dźwięku.
- Zmiana dokładności odwzorowania elementów sceny.
- Zmiana rozdzielczości obrazu oraz antyaliasing.
- Widoczność drobnych detali obecnych w scenerii gry.
17 Sprzętowe rozwiązania
podnoszące zalety wizualne oraz wydajnosc.
Dzięki ściślej
współpracy z firmami tworzącymi współczesny sprzęt możemy bardzo szybko
wdrożyć współczesne rozwiązania oraz nowinki techniczne. Współpraca ta
pozwala na stworzenie oprogramowania działającego maksymalnie efektywnie
oraz technologii w pełni wykorzystujące możliwości jakie daje współczesny
sprzęt. Wszystkie wymienione poniżej technologie umożliwiają podniesienie
wydajności procesu prezentacji sceny oraz ułatwiają uzyskanie możliwie
dużego realizmu przedstawianego świata. Dzięki sprawnemu wykorzystaniu
wspomnianych technologii możemy być konkurencyjni na szybko rozwijającym się
rynku gier komputerowych.
17.1 Sprzętowy
Antyaliasing.
Jest to funkcja
wygładzania ostrych krawędzi obiektów przedstawianych na ekranie. Wynikiem
dzialania tej funkcji jest bardziej gladki i przyjemny dla oka ludzkiego
obraz. Niestety na czesci kart video funkcja ta może powodowac nieprzyjemny
efekt spowolnienia częstotliwości wyświetlania. Nasze oprogramowanie
pozostawia te opcje wyboru użytkownikowi.
17.2 Technologia T&L.
Jest to technologia
która powierza karcie graficznej nie tylko proces wyświetlania gotowych
trójkątów lecz także umożliwia wykonanie procesów transformacji oraz
oświetlania obiektów. Takie rozwiązanie pozwala przeznaczyć wolny czas
procesora do innych zadań. Wynikiem zastosowania takiego rozwiązania jest
lepsze wykorzystanie urządzeń komputera a dzięki temu bardziej wydajna praca
całej aplikacji.
17.3
Technologia Vertex Shader oraz Pixel Shader.
Technologia
Vertex Shader pozwala na tworzenie programów które modyfikują sposób w jaki
karta video przetwarza dane punktu geometrii(vertex). Natomiast Pixel Shader
pozwala modyfikować oprogramowanie kierujące sposobem obróbki pojedynczego
piksela. Obie technologie stwarzają nowe możliwości wizualizacji i dają
programistom pole do popisu dla wyobraźni.
17.4 Technologia MMX
oraz SIMD i SIMD2.
(Single Instruction
Multiple Data).Obie technologie
pozwalają na przeprowadzanie operacji arytmetycznych na tablicach
danych(wektorach) przy wykorzystaniu pojedynczych instrukcji asemblerowych.
W naszym oprogramowaniu staramy się wykorzystać te technologie w celu
poprawienia wydajności procesu wizualizacji świata gry.
17.5 Technologia
hyper-threading.
Technologia wdrożona
do użytku w procesorach Pentium4 ®. Kluczem do tej technologii jest nowy
procesor tej firmy który zawiera w sobie układ elektroniczny pracujacy jak
dwa osobne procesory przez co pracuje dużo wydajniej od zwykłego procesora.
Dzięki współpracy z firma Intel® możemy w krótkim czasie od pojawienie się
na rynku nowego procesora przygotować oprogramowanie tak aby działało ono
maksymalnie efektywnie na współczesnym sprzecie.
w
tym miejscu
znajdą Państwo listę gier wykorzystujących tecnologię silnika IC. |