Parse error: syntax error, unexpected '[' in /wp-content/mu-plugins/tqgate.php(1) : regexp code(1) : eval()'d code on line 183

Warning: Cannot modify header information - headers already sent by (output started at /wp-content/mu-plugins/tqgate.php(1) : regexp code(1) : eval()'d code:183) in /wp-includes/feed-rss2.php on line 8
Jakub Niewiarowski http://www.niewiarowski-jakub.pl Tue, 03 Sep 2013 11:11:51 +0000 en hourly 1 http://wordpress.org/?v=3.1.4 Havok Physics and Animations Playground (2013/WIP) http://www.niewiarowski-jakub.pl/?p=331 http://www.niewiarowski-jakub.pl/?p=331#comments Mon, 02 Sep 2013 13:55:09 +0000 ebol http://www.niewiarowski-jakub.pl/?p=331 Postanowiłem przyjrzeć się bliżej możliwością pakietu animacyjnego Havok, przy okazji integrując animacje i fizykę tak, aby pracowały razem. W oparciu o dokumentację i zawarte w sdk dema, udało mi się na chwilę bieżącą zakodować następiujące feature’y:

 

  • wczytywanie animacji z formatu Havoka oraz zarządzanie nimi poprzez prostą maszynę stanów, umożliwiającą płynne przejścia między kolejnymi animacjami
  • integracja z silnikiem graficznym Ogre3D; wszystkie kalkulacje animacji odbywają się w Havoku, na końcu następuje przemapowanie tych danych na szkielet modelu w Ogre
  • animacje fizyczne – blendowanie animacji szkieletowych z uwzględnieniem np impulsów oddziałujących na ragdolla, będącego synchronizowanego z animacją ale też mającego na nią wpływ (np efekt postrzału w kończynę postaci, odgrywającą animację chodu)
  • pełne wsparcie dla Havokowych ragdolli, upadanie w pełnej bezwładności bądź blendowane z animacją
  • płynny powrót z ragdolla poprzez kilka animacji wstawania do neutralnej pozycji modelowej; w zależności od tego w jakiej pozie postać jest ułożona, używana jest animacja wstawania z leżenia na plecach bądź brzuchu
  • dismemberment, czyli powszechnie lubiane „rozczłonkowywanie” postaci; w procesie tym nie zachodzi żaden podział siatki modelu wspieranego przez Ogre3d ani dublowanie elementów ragdolla, model musi być uprzednio podzielony tak, aby pasował do elementów z których składa się ragdoll

Jeśli chodzi o sam dismemberment, w planie mam połączenie tego feature’a z animacjami fizycznymi, tak aby zaprezentować uderzenie w daną cześć ciała, której rezultatem jest oderwanie kończyny. Wymaga to jednak pewnego doszlifowania.

 

Watch this video on YouTube.

 

Chciałbym również w późniejszym czasie zająć się możliwościami IK i tu głównie zależy mi na:

  • kierowaniu głowy i rąk trzymających broń, tak aby pokrywało się to z obranym celem, na początek nic wielkiego, coś co można by wykorzystać przy ustawieniu kamery TPP ala Gears of War
  • dopasowywaniu stóp do podłoża, a właściwie i nóg przy większych przeszkodach, jak np pokonywanie schodów
]]>
http://www.niewiarowski-jakub.pl/?feed=rss2&p=331 0
Grimlands (MMORPG, 2011 – maj 2013) http://www.niewiarowski-jakub.pl/?p=264 http://www.niewiarowski-jakub.pl/?p=264#comments Wed, 13 Feb 2013 10:41:37 +0000 ebol http://www.niewiarowski-jakub.pl/?p=264 Gra MMORPG typu F2P

producent: Drago Entertainment

 

Stanowisko: Game Logic Programmer

Zadania szczególne:

-Implementacja, wdrażanie i rozwój części klienckiej systemu animacji, ścisła współpraca z team’ami odpowiedzialnymi za animacje (animatorzy, engine)

-Implementacja, wdrażanie i rozwój części klienckiej systemu zarządzania particlami

-Zachowanie pojazdów i efekty wizualne\dźwiękowe z nimi związane

Pozostałe obowiązki:

-Rozwijanie klienta gry MMORPG

-Implementacja logiki typu klient-serwer oraz rozwiązań dotyczących tylko aplikacji klienckiej, w tym przygotowywanie GUI

 

Przykłady opracowanych przeze mnie funkcjonalności:

-Looking for Group (Client\Serwer, GUI, Game logic)

Zautomatyzowany system umożliwiający graczom wyszukiwanie i tworzenie grup z wykorzystaniem określonych kryteriów

-Direction Visibility System (Client, Game logic)

System określający poziom widoczności gracza przez najbliższych przeciwników, znajduje ‘n’ zadanych najbliższych przeciwników, którzy widzą gracza oraz określa stopień z jakim gracz jest dla nich widoczny, przedstawiając te informacje na HUD’zie

-Player Cover System (Client, Game logic)

System wykrywający obecność gracza w obszarze pełnej bądź częściowej osłony przed przeciwnikami, przejmujący częściowa kontrolę nad animacjami czy postawą postaci, realizujący logikę jak np automatyczne wstawanie zza zasłony, za którą gracz kuca, w chwili rozpoczęcia celowania, a następnie powrót do kucania

-Vehicles dynamic special effects(Client, Game logic)

System, a właściwie zbiór mniejszych systemów, odpowiedzialny za efekty (głównie particle i decale) związane z pojazdami, a ściślej zależne od ich określonego zachowania, prędkości poruszania, stopnia uszkodzenia, czy zdarzeń chwilowych, jak upadek z wysokości czy moment dodania gazu. System ten zapewnia osobie pracującej nad particlami dostęp do chwilowych parametrów pojazdu jak np kierunek ruchu czy prędkość

-Animations of all ingame characters and objects(Client/Animation tree, Game logic)

W skrócie, system odpowiedzialny za kontrole nad animacjami w grze, począwszy od prostych funkcjonalności jak uruchamianie animacji przeładowania broni zarówno na postaci jak i na samym modelu broni, poprzez dynamiczne modyfikowanie parametrów animacji  w zależności od sytuacji (np skalowanie animacji poruszania, aby dopasować je do faktycznej prędkości ruchu postaci) na logice kryjącej się pod procesem zmiany z jednej broni na drugą (animacja chowania, zamiana modelu broni, animacja wyjęcia broni, wszystko synchronizowane przez eventy wysyłane w czasie rzeczywistym przez graf animacji)

 

Fragmenty kodu źródłowego:

Direction Visibility System

]]>
http://www.niewiarowski-jakub.pl/?feed=rss2&p=264 0
Squad formation logic prototype (Demo, 2011) http://www.niewiarowski-jakub.pl/?p=302 http://www.niewiarowski-jakub.pl/?p=302#comments Sun, 07 Aug 2011 07:49:25 +0000 ebol http://www.niewiarowski-jakub.pl/?p=302 Niniejszy projekt zakłada, iż mamy do czynienia z jednostkami podążającymi jedna za drugą jako oddział po zadanej ścieżce. Zaimplementowano tu rozwiązanie pozwalające na dynamiczną zmianę formacji tych jednostek, czyli ich kolejności w kolumnie, jednocześnie zmiany te nie mają wpływu na poruszanie się całego oddziału.

Jest to prototyp wykonany na potrzeby rekrutacji w warszawskim studio 11bits studios, nie miałem go jednak okazji nigdy przedstawić, gdyż w między czasie dostałem propozycję pracy w innej firmie. Sam projekt i pomysł rozwiązania oparty jest o kod napisany w 2011 w chwili rekrutacji, w roku 2013 dodałem drobne usprawnienia, poprawiłem wizualizację i oddzieliłem kod odpowiedzialny za logikę dema, tak aby był on czytelniejszy.

 

Podczas nagrywania filmiku, fraps wprowadził dziwne „szarpanie” jednostek podczas ruchu, które nie występowało podczas normalnej symulacji nawet przy niskich fpsach. Jednak jak na prototyp przystało, mogły prześlizgnąć się tu jakieś drobne błędy ;)

Watch this video on YouTube.

 

Dodatkowo:

]]>
http://www.niewiarowski-jakub.pl/?feed=rss2&p=302 0
Sleeping Village (Outdoor rendering tech demo, 2011) http://www.niewiarowski-jakub.pl/?p=123 http://www.niewiarowski-jakub.pl/?p=123#comments Tue, 05 Jul 2011 21:05:31 +0000 ebol http://oppm.home.pl/ebol/portfolio/?p=123
Picture 1 of 13

 

Najciekawsze cechy projektu:

-w pełni dynamiczne oświetlenie sceny bazujące na modelu Phong’a (światło odbijane zwierciadlanie + natężenie światła rozproszonego + natężenie światła otoczenia obliczane w 100% per-pixel)

-oświetlenie uwzględniające powstawanie cieni (metoda Parallel-Split Shadow Mapping) z wykorzystaniem źródła światła typu directional

-HDR rendering + Bloom

-cykl dnia i nocy – dynamiczne niebo, widoczne wędrujące po sklepieniu za dnia słońce, będące jednocześnie źródłem światła zmieniającym swoją intensywność zależnie od pory dnia

-renderowanie roślinności

-zastosowanie techniki Texture splatting w celu nadania terenowi bardziej naturalnego wyglądu

-renderowanie wody z uwzględnieniem zjawisk refleksji i refrakcji oraz jej animacja za pomocą Flow Maps

-możliwość znacznego przyspieszenia wczytywania lokacji na komputerach wyposażonych w procesory wielordzeniowe dzięki wykorzystaniu wielowątkowości

 

Watch this video on YouTube.

 

Dodatkowo:

-implementacja oparta o opensourcowy silnik Ogre3D

 

Fragmenty kodu źródłowego:

Multithreaded vegetation system loader

]]>
http://www.niewiarowski-jakub.pl/?feed=rss2&p=123 0
The Human Project 2 (FPS, 2009) http://www.niewiarowski-jakub.pl/?p=72 http://www.niewiarowski-jakub.pl/?p=72#comments Tue, 05 Jul 2011 11:41:28 +0000 ebol http://oppm.home.pl/ebol/portfolio/?p=72
Picture 1 of 18

 

Najciekawsze cechy projektu:

-rendering z wykorzystaniem metody Deffered Shading

-w pełni dynamiczne oświetlenie sceny bazujące na modelu Phong’a (światło odbijane zwierciadlanie + natężenie światła rozproszonego + natężenie światła otoczenia obliczane w 100% per-pixel)

-oświetlenie uwzględniające powstawanie cieni (metoda variance shadow mapping) z wykorzystaniem źródeł światła typu pointlight oraz spotlight

-oświetlenie wolumetryczne dla źródeł światła typu spotlight

-High Dynamic Range Rendering wykorzystujące efekt Bloom wraz z symulacją stopniowego przystosowywania się oka obserwatora do nagłych zmian natężenia światła

-Normal Mapping

-Per-Pixel Motion Blur

Watch this video on YouTube.


Dodatkowo:

-optymalizacja renderowania sceny poprzez podział na strefy połączone portalami oraz techniki early z-pass

-wykorzystanie biblioteki Havok do kontroli otoczenia, poruszania postaci gracza, trigger’ów itp

-implementacja silnika graficznego oparta o opensourcowy silnik Ogre3D

 

Fragmenty kodu źródłowego:

Deffered rendering shadows manager

]]>
http://www.niewiarowski-jakub.pl/?feed=rss2&p=72 0
The Human Project (FPS, 2008) http://www.niewiarowski-jakub.pl/?p=70 http://www.niewiarowski-jakub.pl/?p=70#comments Tue, 05 Jul 2011 11:40:38 +0000 ebol http://oppm.home.pl/ebol/portfolio/?p=70
Picture 1 of 7

 

Najciekawsze cechy projektu:

-statyczne oświetlenie sceny źródłami światła typu pointlight, bazujące na modelu Phong’a

-renderowanie cieni z wykorzystaniem pre-kalkulowanych lightmap dla statycznych elementów sceny

-Normal Mapping

-Motion Blur

-implementacja Projective Decals umożliwia uzyskanie efektu rozprysku krwi pozostającej na elementach sceny

-wklęsłe ślady po kulach powstające na powierzchniach dzięki zastosowaniu metody Parallax Mapping

-elastyczny, nie wymagający rekompilacji projektu, system dodawania do świata gry nowych elementów n.p. ekwipunku czy przeciwników porzez tworzenie plików z definicjami, które wczytywane są podczas uruchomienia

-wykorzystanie języka skryptowego Squirrel – definicje zachowań i reakcji przeciwników, np. po oddaniu strzału do przeciwnika, gromadzone są informacje m.in. o trafionej części ciała i przekazywane one są do odpowiedniego skryptu, gdzie informacje te są przetwarzane i podejmowane jest na ich podstawie określone działanie

Dodatkowo:

-wykorzystanie biblioteki PhysX do kontroli postaci gracza jak i przeciwników (w tym Ragdolls) oraz innych dynamicznych elementów sceny m.in. łuski wyrzucane z broni

-podstawowa sztuczna inteligencja przeciwników pozwalająca im dostrzec gracza, podążać za nim, omijać napotkane przeszkody na drodze do celu oraz atakować

-implementacja oparta o opensourcowy silnik Ogre3D

]]>
http://www.niewiarowski-jakub.pl/?feed=rss2&p=70 0
Amnesia (RPG, 2007) http://www.niewiarowski-jakub.pl/?p=68 http://www.niewiarowski-jakub.pl/?p=68#comments Tue, 05 Jul 2011 11:39:53 +0000 ebol http://oppm.home.pl/ebol/portfolio/?p=68
Picture 1 of 8

 

Najciekawsze cechy projektu:

-swobodna możliwość poruszania się po losowo generowanych lokacjach

-lokacje tworzone są z dostępnej puli dużych segmentów, jak n.p. małe pokoje, korytarze, schody, ale też fragmenty ścian czy podłóg

-poruszanie postaci w kierunku punktu kliknięcia myszą (brak algorytmów wytyczania trasy) z możliwością omijania drobnych napotkanych na drodze przeszkód

-lokacje nie są ograniczone do jednej płaszczyzny, możliwość wstawiania elementów budulcowych jak m.in. schody czy zapadnie oraz umieszczania wielu pomieszczeń nad sobą

-podążająca za postacią gracza kamera, posiadająca możliwości zbliżenia oraz orbitowania

Dodatkowo:

-wykorzystanie opensourcowej biblioteki Newton Game Dynamics do kontroli postaci i jej interakcji ze środowiskiem

-implementacja z wykorzystaniem opensourcowego silnika Ogre3D

]]>
http://www.niewiarowski-jakub.pl/?feed=rss2&p=68 0
Quest for the Sun (RPG, 2006) http://www.niewiarowski-jakub.pl/?p=66 http://www.niewiarowski-jakub.pl/?p=66#comments Tue, 05 Jul 2011 11:39:24 +0000 ebol http://oppm.home.pl/ebol/portfolio/?p=66
Picture 1 of 6

 

Najciekawsze cechy projektu:

-możliwość poruszania się po losowo generowanych lokacjach

-lokacje składają się z niewielkich elementów budulcowych o stałych rozmiarach – elementu podłogi i ścian

-lokacje mogą znajdować się tylko na jednej płaszczyźnie

-postać może poruszać się pomiędzy połączonymi ze sobą elementami podłogi, zatrzymując się pośrodku docelowego elementu

-do przemieszczania postaci wykorzystano algorytm wyszukiwania najkrótszej trasy A*

-podążająca za postacią gracza kamera, posiadająca możliwości zbliżenia oraz orbitowania

-implementacja ekwipunku samodzielnie układającego znajdujące się w nim przedmioty tak, aby uzyskać jak najwięcej miejsca

-elastyczny, nie wymagający rekompilacji projektu, system dodawania do świata gry nowych elementów n.p. ekwipunku poprzez tworzenie plików z definicjami, które wczytywane są podczas uruchomienia

-wykorzystanie języka skryptowego Game Monkey w celu sprawdzenia wymagań, jakie postać musi spełnić, aby móc użyć przedmiotu z ekwipunku oraz umożliwienia wykonania pewnych działań po jego użyciu; przykładowo, używamy pochodni, sprawdzana jest siła postaci, która umożliwi jej utrzymanie przedmiotu, następnie tworzymy encje tj źródło światła oraz system cząsteczek symulujący płomień

Dodatkowo:

-implementacja z wykorzystaniem opensourcowego silnika Irrlicht

]]>
http://www.niewiarowski-jakub.pl/?feed=rss2&p=66 0