WIADOMOŚCI

PROJEKTY

PLIKI

O STUDIO

 

SPOŁECZNOŚĆ

POMOC

O SILNIKU IC

PRACA

KONTAKT

 

OSTATNIO STWORZONE   

 

Tajemnicza Wyspa

Tytus Romek i A'Tomek
 

 

 

 

 

OBECNIE W PRODUKCJI   

 

Wolfschanze 1944

 

 

 

 

 

 

 

IC Engine history

 

                Zalety silnika IC

 

 

 

Zalozenia techniczne

 

 

 

1 Ogólny opis.
U rozdziale tym postaramy się przybliżyć założenia, na których opieraliśmy się podczas projektowania silnika przedstawiającego grafikę trójwymiarowa. Oprogramowanie to potocznie nazywane silnikiem należy do najbardziej wydajnych systemów dostępnych obecnie na rynku. Dzięki starannie przygotowanym narzędziom możemy tworzyć grę sprawnie i bardzo efektywnie.

 

2 Sztuczna Inteligencja Przeciwników.
  Procesy zachodzące w ludzkim mózgu fascynują naukowców od bardzo dawna. Pomimo to sposób działania mózgu pozostaje wciąż wielka tajemnica. Z uwagi na konieczność symulacji zachowania postaci w środowisku gry, z wielka uwaga śledzimy postępy w pracach nad zrozumieniem czynników kierujących zachowaniem człowieka. Naturalnie prowadzimy również (na dużo mniejsza skale oczywiście) nasze własne badania mające na celu opracowanie algorytmów, które przy rozsądnym nakładzie czasu procesora, będą w stanie generować zachowanie maksymalnie zbliżone do ludzkiego.

 W chwili obecnej praca nad Sztuczna Inteligencją polega na dobraniu parametrów sterujących wyborem niżej opisanych funkcji. Funkcje te wchodzą w skład modułu który nosi nazwę Algorytmy behawioralne.

2.1 Staranny dobór ścieżki ruchu(siatka ruchu).
- Staranny dobór ścieżki, po której będzie poruszać się postać. Ścieżki ruchu postaci  opierają się na gęstej siatce ruchów renderowanych podczas procesu tworzenia gry.

 

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.

 
 
 
 

Copyright © 2005, Calaris Studios. All rights reserved.