W trakcie rozwijania algorytmów na potrzeby pracy magisterskiej pojawiło się zapotrzebowanie na zdecydowane przyspieszenie jednego z nich. Algorytm polegał na liczeniu pewnych własności dla każdego punktu regularnej siatki. Zrównoleglenie było naturalnym rozwiązaniem, ponieważ elementy nie zależały od siebie nawzajem. Zdecydowałem się na użycie Parallel Extensions (Wiki, MSDN) ze względu na prostotę. Przedstawię szkielet rozwiązania, które […]
W przeważającej większości content gry stanowią modele przygotowane przez grafików. Bez gotowego pliku z siatką też da się coś na ekranie wyświetlić. Do dzieła.
Kolejną ze struktur danych, jakie przydadzą się podczas tworzenia gry, jest graf sceny. Graf sceny będzie grafem dość specyficznym (acyklicznym i spójnym), co w teorii sprowadzi go do drzewa.
Tak, jak wspominałem w ostatnim wpisie, kontynuujemy dzisiaj zmagania z interakcją Gracza z modelami znajdującymi się na scenie. Najpierw zamkniemy każdy z nich w „bańce”, którą następnie będziemy nękać promieniami (ang. rays) i domagać się odpowiedzi na najważniejsze z pytań: „Było przecięcie, czy nie?” (co najlepsze, odpowiedzią może być 42 :)).
Podstawowym elementem zaznaczania jest ustalenie pozycji myszy na ekranie. Przy pracy nad tą funkcjonalnością pewien delikatny niuans sprawił, że zajęło to zdecydowanie dłużej, niż zakładałem.
Wszystko, co chcemy w grze zobaczyć, z czym ma następować interakcja trzeba jakoś narysować. Natomiast wszystko, co chcielibyśmy narysować składa się z trójkątów – to dla tego prymitywu graficznego dostępne jest od lat sprzętowe wsparcie rysowania, wypełniania kolorem i teksturowania. Bez obaw, nie porywam się na ręczne tworzenie całej graficznej zawartości gry i potem ręczne […]
Skąd taki tytuł? Deus ex machina (łac.) – Bóg z maszyny adfectus (łac.) – stan Za Eurypisesem wprowadzę do Theme Festival coś, co szybko rozwiąże problem zarządzaniem grą, „aby akcja nie trwała zbyt długo” (za Wikipedią). Ten wpis poświęcę koncepcji menedżera stanów, „Boga z maszyny stanów”.
Bardzo ważnym elementem gry jest kamera. Można ją sobie rzeczywiście wyobrazić jako kamerę przekazującą obraz z konkretnego miejsca sceny, pod odpowiednim kątem i wysyłającą obraz na ekran. Pod spodem siedzi jednak kilka macierzy. Każdy wierzchołek jest przez te macierze mnożony, a finalnym wynikiem jest pozycja (ważne, dwuwymiarowa) na ekranie.
Kolejna, po wpisie o eksporcie danych, notka o Excelu. Zauważyłem, że ostatnio sporo czasu traciłem na eksporcie danych z Excela do ustalonego z góry formatu tekstowego (wartości z poszczególnych kolumn rozdzielone backslash’em). Gdy kolumn było mało (2-3) wpisanie formuły: zajmowało chwilę, gorzej gdy ilość kolumn zaczęła przekraczać 30..
XNA 4.0 jest bardzo przyjemnym frameworkiem do programowania gier: ma bogatą bibliotekę matematyczną, kilka predefiniowanych efektów (shaderów), dzięki którym można po krótkiej chwili zobaczyć efekt swojej pracy na ekranie. Brakuje jej natomiast bardzo według mnie istotnego elementu, jakim jest biblioteka do obsługi graficznego interfejsu użytkownika (Graphical User Interface, dalej będę posługiwał się skrótem GUI). Z […]