Category Archives: OpenGL

Backgammon – odbicia kostek

Dziś udało mi się ukończyć prawie w całości etap związany z samą grą (przenoszeniem  i zbijaniem pionków, “wyrzucaniem pionków poza planszę itd.). Jestem lekko znużony ciągłą refaktoryzacją kodu i pisaniem czegoś, czego efektów nie widać na pierwszy rzut oka.

Zająłem się więc dodawać efekty 🙂

Efektem, który znacznie podnosi realizm gry są odbicia. Jako, że plansza będzie lekko wypolerowania, będzie w niej widać delikatne odbicia kostek. Poniżej krótki filmik pokazujący na zwykłej płaszczyźnie odbicia kostek.

Docelowo odbicia będą tylko na planszy. Pomyślę też nad “polerowaniem” pionków i innych elementów 🙂

Odbicie to jest prostym do osiągnięcia efektem, polegającym na przekształceniu elementów (w tym przypadku kostek), względem pewnej płaszczyzny, a następnie odrysowanie tej płaszczyzny z włączonym mieszaniem kolorów (GL_BLEND), czyli wykorzystaniem przezroczystości. W rzeczywistości każda kostka renderowana jest dwukrotnie (oryginalny obiekt + odbicie).

Miałem to zrobić jutro, ale z powodu bezsenności udało mi się przenieść efekt odbicia pionków na docelową planszę. Aktualnie odbicia są może zbyt widoczne, ale to tymczasowe rozwiązanie, żeby zaprezentować efekt 🙂 Zapraszam do obejrzenia poniższego filmiku.

Nvidia PhysX Visual Debugger

Dotychczas moje debugowanie Physx’a ograniczało się do debugowania kodu c++ i ręcznego dopasowywania brył otaczających obiekty, które chciałem uwzględnić przy obliczaniu kolizji.

Dziś wpadł mi w ręce PhysX Visual Debugger firmy NVidia. Aplikacja ta zdalnie debuguje scenę stworzoną przy użyciu silnika Physx. Wizualizuje ona zarówno aktorów (obiekty, z którymi liczone są kolizje) jak i wiele innych parametrów, w tym:

  • bryły otaczające – bryły, z którymi przeprowadzane są uproszczone testy kolizji
  • wektory prędkości
  • stan obiektu – pokazuje, czy obiekt jest uśpiony, czy występuje kolizja z innym obiektem itd.
  • itd.

Dodatkowo debugger pokazuje wszystkie parametry aktorów, dzięki czemu możemy w łatwy sposób wychwycić błąd.

Dzięki tej aplikacji udało mi się zauważyć błąd w tworzonej obecnie grze backgammon, którego nie dało się zauważyć inaczej, a który powodował dziwne zachowywanie się pionków.

Poniżej krótkie wideo z testowania gry z wykorzystaniem Physx Visual Debugger.

PhysX Remote Debugger dostępny jest do ściągnięcia na stronie: http://developer.nvidia.com/object/pvd_home.html

Backgammon – kolizje z planszą

Zaimplementowałem mechanizm Mesh Materials silnika Physx pozwalający na definicję skomplikowanych obiektów, z którymi kalkulowane będą kolizje. Mechanizm ten posłużył do detekcji kolizji kostek do rzucania z planszą w grze Backgammon. Efekt znajduje się na poniższym filmiku.

Back to Backgammon :)

Rok temu zacząłem tworzyć grę w oparciu o OpenGL. Grą tą był Backgammon, jedna z najstarszych gier świata. Chciałem stworzyć wszystko w 3d i zachować jak największy realizm, co okazało się trudnym zadaniem dla początkującego programisty tego typu aplikacji.

Po kilku miesiącach przerwy zasiadłem do pracy ponownie. Zacząłem bawić się silnikiem Physx firmy NVidia, aby gra była bardziej realna. Jak to bywa, co chwilę napotykam na problemy, z którymi męczę się przez kilka godzin, a rozwiązanie okazuje się banalne 🙂 Poniżej 2 filmiki z etapów tworzenia gry 🙂 To dopiero sam początek, więc za bardzo nie ma czym się zachwycać, ale pokazują one mniej więcej, jak będzie wyglądać gra.

Poniższe filmiki pokazują działanie silnika fizycznego do obsługi kostek. Na razie nie są brane pod uwagę kolizje z planszą, a jedynie pomiędzy kostkami. Kolejnym etapem są kolizje z planszą oraz z pionkami.


Etap 1


Etap 2

Nie wiem kiedy powstanie etap 3, ale mam nadzieję, że niedługo..