JGame

Ostatni post napisałem na temat prób pracy z grafiką w czystej Javie bez dodatkowych bibliotek. Okazało się, że proste gry, w których grafiki zbyt wiele nie ma, dadzą się napisać nawet w taki sposób, jednak wszyscy wiemy, ze im szybciej tym lepiej. W poszukiwaniu prędkości rozpocząłem poszukiwania silników i frameworków do gier 2D w Javie. Natrafiłem na projekt SLICK, ale oblał egzamin zaraz po ściągnięciu na dysk – okazało się, że w paczce DLL-ki dla windowsa były, a SO dla Linuxa nie…  Zdegustowany ruszyłem w dalszą podróż…

Następna biblioteka na jaką trafiłem to JGame. Strona internetowa była dość mało zachęcająca, ale trzeba było dać jej chociaż szansę. Obejrzałem ubogą stronę z Tutorialami oraz aplety dla każdego z nich. Chwilę później zaczynałem już „testowanie”.

Już przy pierwszej „próbie” sił zostałem miło zaskoczony. Wrzuciłem na okienko 100 wykorzystywanych wcześniej obrazków PNG 40×40 z kanałem Alpha. FPS wyniósł 60. Nietrudno było się domyśleć, ze to wina v-sync, a nie prędkości. Postanowiłem więc zwiększyć nieco obciążenie dostawiając jeszcze jedno zero, czyli renderując 1000 tych obrazków. FPS wciąż był równy 60. Pomyślałem, że po dostawieniu jeszcze jednego zera efekt już powinien być widoczny. I był… Podczas renderowania 10 000 tych obrazków FPS spadł do ~10.

Kiedy już wiedziałem, ilu obrazków lepiej NIE rysować przyszedł czas aby znaleźć „optymalne” rozwiązanie… Okazało się, że przy 3000 obrazków prędkość umiejscowiła się około ~30 FPS, a to już wystarczy aby gra chodziła w miarę płynnie.

Dodam jeszcze, że wszystko sprawdzałem w rozdzielczości 640×480 oraz 800×600 i wyniki były niewiele gorsze w drugim przypadku.

Javę uruchamiam na moim laptopie z procesorem 2×1,8 GHz i kartą graficzną GeForce GO 7300 z użyciem systemu Ubuntu Linux 9.04. Jak widać da się osiągnąć całkiem zadowalające efekty na komputerach nie będących najnowszymi osiągnięciami techniki.

Pokombinuję jeszcze trochę z JGame bo ciekawie się zapowiada. Oprócz nienajgorszej wydajności oferuje jeszcze wiele „wspomagaczy” do tworzenia gier 2D. Polecam zapoznanie się z tym projektem.

Reklamy

2 myśli nt. „JGame

  1. Juz kilka dni sledze Twoje wpisy o Javie i jestem ciekawe co na to fanboye Javy. W sieci szybko mozna znalesc benchmarki udowadniajace wieksza szybkosc Javy w porowananiu do jezykow kompilowanych typu C++.
    Wychodzi z tego z Java nie jest zla ale jednak troche wydajnoscia ustepuje innym.
    Na szczescie przyjemnosc i szybkosc kodowania jest znacznie wieksza.
    Czekam na dalsze wpisy w temacie Java.

    Pozdr.
    Greg

  2. Z moich doświadczeń i obserwacji to ja bym powiedział, że wydajność Javy jest wystarczająca do bardzo wielu rzeczy. Jak się ostatnio okazuje daje się nawet pisać w tym niewielkie gry. Ciekawe czy większa gra też by chodziła 🙂

Skomentuj

Wprowadź swoje dane lub kliknij jedną z tych ikon, aby się zalogować:

Logo WordPress.com

Komentujesz korzystając z konta WordPress.com. Wyloguj / Zmień )

Zdjęcie z Twittera

Komentujesz korzystając z konta Twitter. Wyloguj / Zmień )

Facebook photo

Komentujesz korzystając z konta Facebook. Wyloguj / Zmień )

Google+ photo

Komentujesz korzystając z konta Google+. Wyloguj / Zmień )

Connecting to %s