Slick

W jednym z poprzednich postów napisałem, że Slick udostępnia biblioteki natywne tylko dla Windowsa. Otóż dzisiaj przyjrzałem się temu dokładniej i okazało się, że po prostu Windowsowe nativy są w głównym katalogu natomiast pozostałe są popakowane w archiwa JAR i wrzucone do katalogu lib. Wcześniej ich po prostu nie zauważyłem.

W związku z poczynionym odkryciem uruchomiłem netbeansa na nowo zainstalowanym OpenSUSE i rozpocząłem poszukiwanie tutoriali w internecie. Tutaj niestety nie jest tak fajnie jak w GTGE. Dostępne są głównie przykładowe kody źródłowe. Udało mi się jednak znaleźć jeden tutorial ( http://thejavablog.wordpress.com/2008/06/08/using-slick-2d-to-write-a-game/ ), który pozwala załapać jak to mniejwięcej wygląda.

Prawdę mówiąc sam szkielet jest prawie taki sam jak to było w przypadku GTGE. Mamy metody init, update, render, których znaczenia i funkcji raczej nie trzeba tłumaczyć 😉

Slick jest pierwszym silnikiem 2D w Javie, w którym odkryłem możliwość dowolnego obracania obrazków. Dodatkowo przeglądając API zauważyłem, że posiada różne algorytmy wyszukiwania trasy, silnik cząsteczkowy (wraz z edytorem) oraz wsparcie dla tile-map rysowanych w programie Tiled.

Myślę że spędzę na tym silniku kilka ładnych godzin ponieważ zamierzam wziąć udział w tegorocznym WSOC! To chyba będzie pierwsza praca na WSOC napisana w Javie 😉

Golden T Game Engine

Postanowiłem wczoraj przetestować jeszcze jeden nieźle zapowiadający się silnik: Golden T Game Engine. Właściwie był to jedyny, który znalazłem (oprócz JGame) oferujący możliwość używania OpenGL jako backendu do renderowania.

Początkowo tutorial dostępny na stronie GTGE był dla mnie „nieprzyjazny” ponieważ ja tylko chciałem zobaczyć trochę kodu i pokombinować. Później jednak zmusiłem się aby go przeczytać i muszę przyznać, że jest to najlepszy tutorial wprowadzający do używania biblioteki jaki w życiu widziałem. Przyczyną tego stanu rzeczy jest niewielka ilość kodu obudowana w dość obszerną dawkę wiedzy na temat wewnętrznego działania konkrentych części silnika. Dzięki temu po przeczytaniu tutoriala znacznie łatwiej połapać się w dokumentacji.

Sama dokumentacja również zawiera przykłady użycia różnych klas. Dzięki temu nie trzeba czytać więcej tutoriali. Na dowód tego napisałem dziś (po raz kolejny) swoją wersję ponga o wiele mówiącej nazwie Jong. Niektórzy z was na pewno znają już to „boisko” 😉 Wykorzystałem trochę starej grafiki, ale stworzyłem nowe paletki oraz piłkę.

Podczas pisania nauczyłem się wielu rzeczy o tym silniku i muszę przyznać, że jest to najlepsze z badanych przeze mnie ostatnio wyjść. Najciekawsze jest to, że do rysowania można używać klasy java.awt.Graphics2D! Było to dla mnie miłe zaskoczenie po tym co widziałem w JGame…

Dodatkowo w silniku dostępne są klasy do obsługi różnego rodzaju obiektów tła. Domyślnie mamy dostępne klasy jak ColorBackground, ImageBackground, a nawet takie jak TileBackground, IsometricBackground oraz ParallaxBackground! A jest to tylko część silnika. Na prawdę zachęcam do obejrzenia i przetestowania tej biblioteki gdyż tworzenie gier z jej pomocą to prawdziwa przyjemność 🙂

Mała uwaga: Aby używać OpenGL należy ściągnąć ze strony jeszcze GTGE Add Ons. Można je znaleźć na TEJ stronie razem z kilkoma innymi dodatkami takimi jak system GUI dla GTGE.

Na koniec dam wreszcie link do tego Jonga. Nie jest to produkcja na miarę Obliviona czy nawet Mario Bros…. Tak czy inaczej… chodziło bardziej o przetestowanie niż zrobienie czegoś wartościowego 🙂 Grę można ściągnąć tu:

http://www.mediafire.com/?sharekey=cb92a7ab0b4a9246cb36451a58fbe7c44b232d45b6124d0e

U siebie sprawdziłem działanie na Ubuntu Linux 9.04 oraz Windows XP. Ta wersja jest „domyślną” i nie wykorzystuje OpenGL jednak radzi sobie świetnie w obu systemach.