Java Oyun Yapımı – Oyun Motorları,Kütüphaneler ve Sık Sorulan Sorular

Java Oyun Yapımı - Oyun Motorları,Kütüphaneler ve Sık Sorulan Sorular

Merhaba arkadaşlar. Amatör olarak hep oyun yapımıyla uğraşmak istedim. Uğraşabildiğim zamanlar sırf unity için c# öğrendim, uluslar arası bir etkinlik olan Global Gaming Jam adlı etkinliğe katılıp 2 gün boyunca uykusuz kod yazdık, ortaya bir şeyler çıkarmaya uğraştık. Fakat c# yerine Java’ yı tercih ettikten sonra hiç oyun yapımına ayırabilecek vaktim olmadı maalesef. Dün ve önceki gün boş vaktim oldu ve oturup Java oyun motorlarını araştırdım. Araştırmalarımın sonucunu bu yazımda;

Java ile oyun yapılabilir mi ? Java’ da kullanabileceğimiz oyun motorları ve kütüphaneler hangileri? Bu oyun motoru ve kütüphanelerin artıları eksileri neler?

gibi soruların cevaplarıyla beraber sizlerle paylaşıyorum, iyi okumalar :)

 

Sık Sorulan Sorular

1.Soru : Java’ da oyun yapmak mümkün mü ?

Cevap: Elbette! C#, C++, Python ve daha birçok dilde olduğu gibi bu dilde de oyun yapabilmek mümkündür.

2.Soru: Peki Java’ da oyun yapabilmek kolay mı ?

Cevap: Hah işte şimdi güzel bir soru. Bence tüm dillerde oyun yapımı zor, fakat diller ve bu dilleri destekleyen araçlar arasında kıyaslama yapılabilir. Buna göre -cevabın kişisel bir yorum olduğunu unutmayın- bence Java’ da oyun yapmak diğer dillere nazaran (Örneğin: C# ve Unity) daha zor. Tabiki imkansız değil. Ne demişler azimli sıçan(fare olan sıçan :D), taşı delermiş.

3.Soru: Java’ da kullanabileceğimiz oyun motorları ve kütüphaneler hangileri?

Cevap: Java’ da da diğer dillerde olduğu gibi birden çok oyun motoru ve çatıları mevcut. Bunlara örnek vermem gerekirse, jMonkeyEngine, LibGDX, LwJGL

4.Soru: Oyun çatısı(Framework) yada kütüphane nedir?

Cevap: Aslında cevap çok açık. Elimizde bir dil var -mesela java olsun- , bir de editör yada IDE var -mesela Netbeans IDE- , oyun çatısı bir diğer adıyla kütüphane ile oyun geliştirebilmek için o dilde profesyonel olarak kod yazabilmemiz, bunun yanında kütüphaneyi kullandığınız programlama dili ile editörde yada IDE de oluşturduğunuz projenize dahil etmeniz gerekir. Bu sayede oyun çatısında bulunan hazır methodlar ve araçlar ile beraber oyun geliştirebilirsiniz.

5.Soru: Oyun motoru nedir?

Cevap: Oyun Motoru, kişilerin veya şirketlerin oyun yapmak amacıyla kullandığı ücretli veya ücretsiz olan programlara verilen isimdir. Bu program, esasında kütüphanelerden oluşmuş bir yapıdır. Bu kütüphanelerin içinde bilgisayar programlama dilleri ile tanımlanmış fonksiyonlar, sınıflar vb. veriler bulunmaktadır.(Vikipedi). Yani kütüphanelerin kullanıldığı program gibi düşünebilirsiniz. Örneğin jMonkeyEngine adındaki oyun motoru Netbeans IDE programının temellerini kullanarak üretilmiştir ve default renderer olarak LwJGL kullanmakta bunlar ne ki derseniz yazının devamında detayları mevcut.

6.Soru: Peki hangi oyun motoru yada kütüphaneyi seçmeliyim?

Cevap: Bu sorunun cevabı kişiye bağlı -mesela hiç ingilizce bilmeyen biri için bol dökümantasyonlu bir araç gerekir- olduğu için , cevabı kendiniz belirlemelisiniz. Oyun motorunu yada kütüphanesini seçmek için ince eleyip sık dokumanızda fayda var. Zira ileride ben bunu beğenmedim bu olmamış derseniz, başka bir araca geçmek sizi geriye atabilir. Bu soruya yardımcı olması açısından aşağıda bazı oyun motoru ve kütüphanelerinden, artılarından ve eksilerinden bahsettim.

 

LibGDX

LibGDX, bir oyun motoru değil bir kütüphane. Bu oyun çatısını(game framework) kullanarak cross-platform(Windows, Linux, Mac OS, Android, iOS, HTML5, Blackberry) yani işletim sisteminden bağımsız olarak 2d(iki boyutlu) yada 3d(üç boyutlu) oyun geliştirebilirsiniz.

Websitesi: https://libgdx.badlogicgames.com/index.html

Artıları / Eksileri

+Cross-platform

+Açık kaynak

+Tamamen ücretsiz ve lisans ücreti yok

+Bol dökümantasyon ve yeterince Türkçe kaynak

+Bol eklenti(fizik motorları vs)

-OOP bilmek kesinlikle şart

-Çok değişken(-Kullananların söylediklerine göre- fonksiyonlar güncellemelerle değişiyormuş)

 

Lwjgl(Lightweight Java Game Library)

Lwjgl ‘ de bir oyun kütüphanesi. Bu kütüphanenin farkı opengl, slick2d, openal, opencl gibi bir çok gerekli kütüphaneyi bir araya getirip java için uygun hale getirmiş bir paket olması.

Websitesi: https://www.lwjgl.org/

Artıları / Eksileri

+Açık kaynak

+Tamamen ücretsiz ve lisans ücreti yok

+İsterseniz oyun yerine programlar da yapabilirsiniz.

+Cross-platform

-Yetersiz dökümantasyon

-Türkçe kaynak yok denecek kadar az

 

JMonkeyEngine

Yukardakilerin aksine bu bir oyun motoru. Ve gayet de profesyonel, kullanılabilir, verimli bir oyun motoru. Bu oyun motoruyla terrainler, fizikler, sinematikler, çok oyunculu ve gui olan 2d yada 3d oyunlar yapabilirsiniz. Netbeans IDE temellerini kullanıyor. Dikkat çekmek isterim ki bu motor default renderer olarak LWJGL kullanıyor. Tabi başka rendererda kullanabiliyorsunuz.

Websitesi: http://jmonkeyengine.org/

Artıları / Eksileri

+Açık kaynak

+Cross platform

+Terrain editörü

+Detaylı dökümantasyonlar

+Netbeans IDE kullananlara çok yakın arayüz

-Türkçe kaynak çok fazla değil(Hiç yok değil, yorumdan isterseniz bir kaç kaynak atabilirim)

-Dökümantasyon bol ama sıfırdan başlayan birisine göre kolay değil

jPCT

Son olarak bir de jPCT var fakat bu 3d motoru hakkında çok fazla bilgiye sahip değilim. Zaten üstünkörü bir araştırma yaparak hakkında bilgi sahibi olmak mümkün değil zira kendisi hakkında hiç(Yanlış duymadınız hiç!) Türkçe kaynak yok! :D Güzele benziyor aslında, belki ileride bunun hakkında bir yazı yazabilirim. Yinede ben bir bakayım derseniz buyrun ;

Websitesi: http://www.jpct.net/

 

 

Yazımı okuduğunuz için teşekkürler :) Yazı hakkındaki düşüncelerinizi, istek öneri ve şikayetlerinizi yada sorularınızı yorum yaparak bana ulaştırabilirsiniz . Yada mailde atabilirsiniz hakkımda sayfamda mail adresim mevcut.

Fırat Üniversitesi Yazılım Mühendisliği öğrencisi, bilgisayar ve internet bağımlısı, arada(!) oyun da oynamıyor değil.

Yorum yapmak istemez misin?

  1. 29 Temmuz 2016, 20:04

    Hocam arayüz kütüphaneleri hakkında da bir yazı paylaşır mısınız?

  2. 31 Temmuz 2016, 16:39

    Oyun yapmak için unity’e(vs diğer oyun motorlarına) ihtiyaç duymadan, nesnesel dillerin en iyisi olan Java ile oyun geliştirmek güzel olur. Yararlı bir paylaşım olmuş teşekkürler :)

  3. 26 Kasım 2016, 20:06

    Libgdx’i araştırdım, tam tatmin edici sonuçlar alamadım o yüzden Jmonkey’e bakıyorum şuan. Yazı için teşekkürler :)

Yorum yapmak istemez misin?

Serdar için bir cevap yazın


Mesajınız onaylanmadan önce yönetici tarafından incelenecektir.