3D'den kaçının , çünkü 3D modellerin nasıl oluşturulacağını veya iyi modellerin nasıl bulunacağını bilmeniz gerekir, bu tür modellerin nasıl yükleneceğini (genellikle kendi başına epik bir görev) ve bunları ekranda nasıl çizeceğinizi (ör. OpenGL veya DirectX az kazanç için çok iş gerektirir ve jMonkeyEngine gibi bir motor bile temel 3D bilgisiyle birlikte motorun nasıl kullanılacağı hakkında bilgi gerektirir). 2D görüntüleri ekranda karıştırmak ve hareket ettirmek, köşeler, malzemeler, görünüm matrisleri, dönüşümler vb. İle uğraşmaktan çok daha basittir.
Yerleşik Java kitaplıklarına ve sınıflarına sadık kalın: Graphics2D, ImageIO, AWT fare ve klavye dinleyicileri, Canvas, Java Sound API, vb. Başka bir kütüphane bulmak yerine bunlara bağlı kalmanın faydaları şunlardır: zaten onları (bir dereceye kadar) tanıyorsunuz, iyi test edildiğini ve istikrarlı olduğunu biliyorsunuz ve genellikle mantıklı, çevrimiçi belgeler ve kaynaklar bol ve taşınabilirler. yerel kütüphanelerle ekstra kütüphaneler kurmaktan endişe etmenize gerek yok.
Önceden küçük bir kod parçacığı kütüphanesi oluşturun. Bunlar arasında görüntü yükleme, görüntüyü ekranda bir konuma çekme, görüntüyü ve diğer efektleri ölçekleme, ses çalma, arka plan müziğini döngüye alma, sınırlayıcı kutu çarpışma algılaması, metin çizme gibi şeyler bulunur. Ayrıca bir Çerçeve (veya Applet) açan, ona bir Tuval ekleyen bir iskelet uygulamasına sahip olun ve tuvalin boya ve boyama yöntemleri geçersiz kılınmalı ve bir iplik tuval boyama yöntemini (veya onu çağıran bir zamanlayıcı) döngüye sokmalıdır. Aradığınızda bu şeyleri öğrenebilirsiniz Java 2D game programming
. Üniversitenizin kütüphanesine erişiminiz olduğunu varsayarsak, emrinizde bir dizi iyi Java oyun kitabına sahip olmalısınız; onları kontrol edin ve yukarıda belirtilen parçacıklar için gözden geçirin ve kaçırdığım diğerleri.
Kaynak kontrolü ve iş bölümlerini önceden ekibinizle birlikte uygulayın.Subversion, Git, Mercurial veya başka bir şey mi kullanacaksınız? Herkesin bilgisayarları Java'nın aynı güncel sürümüne ayarlanmış mı? Deponuzu oluşturun, bazı dosyaları teslim edin / aktarın, herkesin deponun kullanıma alındığından ve sisteminize gitmeye hazır olduğundan emin olun. Belki bir 'merhaba dünya' uygulaması yapın ve herkesin onu çekip değiştirebildiğinden ve taahhüt ettiğinden emin olun; ve birleştirme işleminin nasıl yapıldığını bildiğinizden emin olun (iyi iletişim veya çift programlama ile tamamen kaçınmanızdan veya bir birleştirme aracını nasıl kullanacağınızdan emin olun). Veya, kaynak denetimine aşina değilseniz, işe yarayan bir çözüm bulduğunuzdan emin olun; üçüncü kişi sanat veya ses yaparken ya da başka bir şey yaparken çift programlama olsun, sadece başlangıçtan itibaren organize olduğunuzdan emin olun yoksa tonlarca zaman kaybedersiniz.
Yer işareti, ücretsiz medya sağlayan web sitelerine bağlantılar. Burada diğer sorularda listelenen bu tür sitelerden birkaçı vardır; freesound gibi sitelersıfırdan yapmak için zamanınız olmadığında oyununuzda kullanmak için yararlı medyaları hızlı bir şekilde bulmak için mükemmeldir. Elbette bu siteyi yer imlerine ekleyin, böylece bir şeye takılırsanız bir soru sorabilirsiniz. Cevapları arayabilmeniz için gamedev.net forumları gibi forumlara yer işareti koyun. Üçüncü taraf bir kitaplık kullanmayı tercih ederseniz, web sitelerine yer işareti koyun. Bu yer imlerini klasörler halinde düzenleyin ve mümkün olduğunca çok yer kapın ve üçünüzün de aynı yararlı yer imleri kütüphanesine sahip olması için paylaştığınızdan emin olun. Bu yer imlerini toplamak ve bunları türe / konuya göre düzenlemek çok zaman almaz, ancak projenizin ortasındaki tüm bu web sitelerini hatırlamanız gerekmediğinde size çok zaman kazandırır.
Daha fazla öneri için, "Oyun geliştirme yarışmasına nasıl hazırlanırım?" .
Sorunuzun geri kalanını ele almak için ... Genel tavsiye şudur: Yüksek hedef almayın . Bununla birlikte, ne kadar hazır olduğunuza (yani yukarıdaki önerilerim) ve Java'daki becerilerinize bağlı olarak büyük ölçüde değişebilir. Bu, büyük ölçüde geçmişinize dayanan kişisel bir yargıdır, ancak hiçbirinizin oyun yapma geçmişi olmadığından (ve dolayısıyla gerekli zamanı yargılayamazsınız), gerçekten çok düşük bir amaç hedefleyin . Gelişmiş konseptler olmadan 2D'de kolayca uygulanabilen gerçekten temel bir fikirle gel (örneğin piksel çarpışmalarından, çılgın fizik hesaplamalarından, parçacık efektlerinden vb. Kaçının). Ancak daha sonra öncelikli bir liste oluşturunOyunun özelliklerinden olabildiğince ayrıntılı olarak (örneğin, her özelliği mümkün olduğunca çok sayıda ayrı göreve ayırın). Bu şekilde, listeden mümkün olduğunca aşağıya doğru ilerlersiniz ve düşük öncelikli görevlere ulaşmazsanız, bu çok önemli olmamalıdır. Bu dikkatli bir şekilde yapılmalıdır (zamanın sonunda hala işlevsel bir oyuna ihtiyacınız vardır, bu yüzden yapılması gereken minimum görevler vardır ve bazı görevler diğer görevlere bağlıdır), ancak genel olarak bunun işlerin ne kadar süreceğini bilmediğinizde en iyi yaklaşım.