Java Mobile 3D Oyun Projem : Araba ile checkpoint toplamaca

Yaklaşık 7 ay önce başladığım 2 ay sürede tamamladığım bu projeyi sizlerle paylaşmak istiyorum. Java Mobile (Java Me) yani cep telefonlarında 3D oyunlar yapmak için tasarlanan M3G API (JSR_184) paketini kullarak yaptığım bu oyunda telefonun yön tuşlarıyla arabayı kontrol ederek checkpoint topluyoruz ve oyunu en kısa sürede tamamlıyoruz. Yandaki resimde oyunun çalışır halini görebilirsiniz. Bu projenin içeriğini, kodlarını ve M3G API ile ilginenler için yardımcı olabilecek dökümanları paylaşıyorum.

Önce oyunun özelliklerinden daha sonra yapım aşamasında kullandığım araçlardan kısaca bahsedeceğim.

3D araba oyunun özellikleri

Oyunun amacı yolu takip ederek en kısa sürede checkpointleri toplamak.

Oyun içeriği:
  • Araba sayısı: 1
  • Checkpoint sayısı : 5
  • Maximum zaman : sınırsız.
  • Farklı türde karmaşık 3D model sayısı: 7
Kontrol tuşları:
  • Hızlanmak için: Yukarı ok tuşu
  • Fren yapmak için: Aşağı ok tuşu
  • Sağa dönmek için: Sağ ok tuşu
  • Sola dönmek için: Sol ok tuşu
Oyundan bir kaç kare:

3d-java-mobile-m3g-oyun kare 1 3d-java-mobile-m3g-oyun kare 2
Start Point'e girerken Start Point'e girdikten sonra
3d-java-mobile-m3g-oyun kare 3 3d-java-mobile-m3g-oyun kare 4
Finish noktasına yaklaşırken Tüm checkpointleri topladıktan sonra

M3G ile oyunu tasarlarken kullandığım araçlar

Oyundaki 3D modelleri tasarlamak için en büyük Open source 3D modelleme aracı olan Blender'dan yararlandım.
Oyunun mantıksal kodlamasını (hızlanma, kontroller, algoritma v.b.) yaparken NetBeans IDE kullandım.
Tabii en enemlisi M3G API (JSR-184 diye kodlanır) 3D bilgisayar grafiği geliştirme paketinden yararlandım.
Bunun dışında 3D modelleri Blender aracı ile tasarladıktan sonra modeli M3G API'nin anlayabileceği bir formata (.m3g) çevirmek için Blender built-in M3G Export scrtiptini kullandım.
Dokuluları (texture) tasarlamak için Open Source resim editör programı Gimp'ten yararlandım.

Oyunla ilgili diğer bilgiler

Oyunun en zor kısmı arabanın duvara çarpartığını simule etmek için yazdığım algoritma oldu. Oyunu bu haliyle orta seviye ve 3D Java oyun destekli bir cep telefonunda (mesela SONY ERICSSON K790i) çalıştırdığımda oldukça kastı. Saniyede sadece 1 kere ile çalıştığından oldukça yavaştı. Çünkü oyunun kesintisiz çalışması için en az 500 MHz işlemci gerekiyordu. Sırf bu yüzden oyunun kodunu ve bazı modelleri değiştirmek zorunda kaldım. Özellikle fazla CPU işlemi gerektiren döngüleri, fazla memory harcıyan dokuları (textures) kaldırıp oyunu biraz daha sadeleştirdim. Modifiye edilmiş halin için aşağıdaki karelere bakabilirsiniz.

3d-java-mobile-m3g-oyun-basit kare 1 3d-java-mobile-m3g-oyun-basit kare 2
Beyaz topları toplarken Son topu da aldıktan sonra.

Esasında aldığım "Mobile Phone Programming with Java" dersi için yapmıştım bu projeyi. Projenin sunumu , M3G API'ye giriş ve 3D modellemeye yeni olanlar için hazırladığım pdf formatındaki proje dökümanını buradan indirebilirsiniz.

Ayrıca projenin yavaş çalışan halini buradan hızlı çalışan halini de buradan indirip kodları inceleyebilirsiniz. Kodun uzunluğu yaklaşık olarak 1500 satır. Fakat genel hatlarına incelerseniz 3D Mobil oyun programlamayla ilgilenenler için faydalı olabilir. Projeyi çalıştırabilmeniz için NetBeans IDE (Java Me destekli ) programını kurmanız gerekiyor. NetBeans IDE kurulum dosyalarına resmi sitesi www.netbeans.org'dan ulaşabilirsiniz.
yazan Zülküf Küçüközer tarih   25th October 2009
primary key words  Java | Java me | Mobile | 3d oyun programlama okunma  10429
secondary key words  3d modelleme | M3g api | Phone chech point | Araba
writing coders writing 17th December 2009
Beğendim gayet güzel java girersek inş yaparız.
writing zülküf küçüközer writing 25th December 2009
Beğendiğinize sevindim.
writing 4d oyunlar writing 22nd September 2011
bu oyunun siz mi yaptınız?