<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <atom:link href="https://jacek.zlydach.pl/blog/tags/ogre-feed.xml" rel="self" type="application/rss+xml"/>
    <title>Posts tagged: Ogre - Jacek Złydach - blog</title>
    <link>https://jacek.zlydach.pl/blog/tags/ogre.html</link>
    <lastBuildDate>Tue, 25 Jan 2022 12:54:25 +0100</lastBuildDate>
    <description>Blog of Jacek Złydach - a programmer and science enthusiast.</description>
    <generator>Regenerate2</generator>
    <managingEditor>temporal.pl@gmail.com (Jacek Złydach)</managingEditor>
    <webMaster>temporal.pl@gmail.com (Jacek Złydach)</webMaster>
    <ttl>1440</ttl>
    <copyright>© 2017, 2018, 2019, 2020, 2021, 2022, Jacek Złydach</copyright>
    <item>
      <title>Programowanie gier w Javie i LWJGL</title>
      <link>https://jacek.zlydach.pl/blog/2009-03-01-programowanie-gier-w-javie-i-lwjgl.html</link>
      <guid isPermaLink="true">https://jacek.zlydach.pl/blog/2009-03-01-programowanie-gier-w-javie-i-lwjgl.html</guid>
      <pubDate>Sun, 01 Mar 2009 23:51:44 +0100</pubDate>
      <category domain="https://jacek.zlydach.pl/blog/tags/old-blog.html">Old blog</category>
      <category domain="https://jacek.zlydach.pl/blog/tags/tworzenie-gier.html">Tworzenie gier</category>
      <category domain="https://jacek.zlydach.pl/blog/tags/java.html">Java</category>
      <category domain="https://jacek.zlydach.pl/blog/tags/lwjgl.html">LWJGL</category>
      <category domain="https://jacek.zlydach.pl/blog/tags/opengl.html">OpenGL</category>
      <category domain="https://jacek.zlydach.pl/blog/tags/openal.html">OpenAL</category>
      <category domain="https://jacek.zlydach.pl/blog/tags/irrlicht.html">Irrlicht</category>
      <category domain="https://jacek.zlydach.pl/blog/tags/ogre.html">Ogre</category>
      <description><![CDATA[Java jest językiem, który zdaje się nie mieć zbyt dobrej opinii wśród programistów gier komputerowych. Kwestie <a href="http://forum.gamedev.pl/index.php/topic,5069.0.html">porównywania wydajności tych języków</a> są dość ciekawe, ale ostatecznie w tym miejscu interesuje nas praktyczna możliwość użycia ich do tworzenia gier. O ile język C++ ma pod tym względem niekwestionowaną pozycję lidera, o tyle Java wciąż przez swą złą opinię zdaje się być mało rozwinięta w dziedzinie gamedevu. Powoduje to, że ktoś kto chce napisać grę (lub aplikację graficzną) w Javie nie za bardzo wie, czego szukać.

Chciałbym w tym miejscu polecić wszystkim bibliotekę <a href="http://www.lwjgl.org/">LWJGL</a> (<em>Lightweight Java Game Library</em>). W dużym uproszczeniu składa się ona z bindów OpenGL i <a href="http://connect.creativelabs.com/openal/default.aspx">OpenAL</a> pod Javę, funkcji do obsługi wejścia z klawiatury i myszy oraz garści drobnych klas narzędziowych. Wspiera tworzenie gier zarówno jako aplikacji jak i apletów. Główną zaletą jest przede wszystkim uporządkowanie wejścia, audio i grafiki w jednej bibliotece, dzięki czemu możemy szybko zabrać się za tworzenie gry z pomocą dobrych, wieloplatformowych bibliotek. Więcej informacji, przykłady, dokumentacja zamieszczone są na stronie projektu: <a href="http://www.lwjgl.org/">http://www.lwjgl.org/</a>. Testowałem, działa świetnie ;) (niedługo wrócę do tego tematu, bo zamierzam opublikować projekt zaliczeniowy z Programowania Obiektowego, którym była gra pisana w Javie z pomocą LWJGL).

Jeśli Czytelniku niepokoisz się kwestią wydajności języka, proponuję Ci zagrać w grę, która mnie ostatecznie przekonała do sensowności pisania gier w tym języku i mocno zareklamowała LWJGL:
<a href="http://fabiensanglard.net/Prototyp/index.php">http://fabiensanglard.net/Prototyp/index.php</a>
Osobiście nie spodziewałem się zobaczyć tyle <abbr title="Frames Per Second">FPS</abbr> w JAKIEJKOLWIEK grze opartej o Javę, ale na szczęście nie jest tak źle jak kiedyś mi się wydawało.

Mimo wszystko jednak Java jest językiem różniącym się od C++ w koncepcji zarządzania pamięcią, co w przypadku programowania gier ma duże znaczenie. Trzeba pisać kod dużo ostrożniej i w sposób przemyślany, żeby unikać niepotrzebnego kopiowania obiektów (w miarę możliwości unikać go w ogóle - wszystko alokowane dynamicznie) oraz aliasowania się nazw zmiennych (plątające się przypadkiem po różnych obiektach referencje do składowych innego obiektu; jest to ogólna, dla mnie upierdliwa, cecha wielu języków nowszych od C++, np. PHP5). Niewątpliwie niewygodny jest też brak możliwości przeciążania operatorów.

Dla tych, którzy szukają całych silników graficznych mam dobrą wiadomość - istnieją porty <a href="http://jirr.sourceforge.net/">Irrlicht'a</a> i <a href="http://ogre4j.sourceforge.net/">Ogre</a> pod Javę :).
]]></description>
    </item>
  </channel>
</rss>