Çoğu iyi motor ve çerçeve, ihtiyacınız olan işlevselliği sağlar ve asla yolunuza çıkmaz.
Onlar mı? Bu, grafiksel olarak konuşursanız, tam olarak ne yaptığınıza bağlıdır.
Birçok oyun türü için grafik soruların standart cevapları vardır. Ortalama bir 2D oyun, örneğin XNA / MonoGame'in 2D kahramanlığı ile gayet iyi bir şekilde ele alınabilir. Sadece arazi için gruplar halinde gelebilen spritelar döndürülebilir, vb.
Ama oyun ne olur eskiden ortalama 2D oyun, o zaman böyle ekrana derinlik göreli görünüme sahip taklitçi inşa etmek için bir yükseklik haritası kullanarak gibi bazı serin tekniği hakkında okuyun. Ve bunu yapmak istiyorsun.
Şimdi normal haritalama ve hatta paralaks haritalaması kullanıyorsunuz. Hepsi aynı "render sprite" bağlamında, ancak çok daha fazla saf 2D motorlar gerektirebilir. Özellikle, birçok 2D motorun yapabileceği bir şey olmayan, çok katlı "sprite blitting" gerektirir.
Motorunuz sizinle uyum sağlayamazsa ne yaparsınız? Bu, biri renk için diğeri normal harita ile aydınlatma için birden fazla geçiş yapmanız gerektiği anlamına gelir. Ancak bu işe yaramaz, çünkü renk aramasına paralaks eşlemesi uygulamak için normal haritanın yükseklik alanına ihtiyacınız vardır. Peki ... şimdi ne olacak? Şeffaflık için alfaya ihtiyacınız var, bu yüzden alfa çalamazsınız. Ve motor sadece çoklu dokuları desteklemiyor.
Yani aşağıdakilerden birini seçmelisiniz:
- Bu fikirden vazgeç. Bu, oyununuzun motorunuz tarafından işlevsel olarak sınırlı olduğu anlamına gelir.
- Çok damarlı olması için motoru hackleyin. Kaynak koduna erişiminiz olduğunu varsayarsak, şimdi başkasının kodunu sormak için kendiniz de alıyorsunuz. Bu aynı zamanda onu korumanız ve tökezlemenizle kırmamanız gerektiği anlamına gelir .
- Motorun sınırlamaları dahilinde mümkün olan en iyisini yapın. Böylece normal haritalarda paralaks elde edebilirsiniz, ancak renklerde değil. Tam olarak istediğiniz şey olmayabilir, ama hiç yoktan iyidir.
Örnek olarak Geometri Savaşlarını ele alalım. Çoğu 2D motor bu tür görselleri emerdi, çünkü çoğu çizgi değil sprite çiziyordu. Bu çok özel bir tür oluşturucuya ihtiyaç duyan bir oyun.
Günün sonunda, oyununuzun, oyununuzun ihtiyaçları için önemli olan unsurları için sorumluluk almanız gerekir . Oyununuzun görsel görünümü öncelikle belirli efektlerden ziyade kullandığınız resim ve modellerin sanat tarzı tarafından geliştiriliyorsa, önceden paketlenmiş bir çözüm kullanmak iyidir. Ancak oyununuzun görsel stili özel oluşturma kodu ile önemli ölçüde tanımlanmışsa, kutunun dışında bir şey yapmaya karar verirseniz standart bir motorun ciddi bir sınırlama olabileceği ihtimali yüksektir.
Ayrıca, çok pratik bir sorun var: tüm oyun motorları eşit derecede taşınabilir değildir.
Son zamanlarda mobil platformların yükselişiyle, oyun pazarı çok sayıda işletim sistemi ve kullanıcı arabirimi cihazına yayıldı. Tüm motorlar tüm cihazlarda çalışmaz. Motorunun platformda çalışmıyor eğer, kesinlikle için zaman ayırın etmeyeceğiz yapmak o birinde çalışır. Sonuçta, bu yüzden ilk etapta bir motor kullandınız, değil mi?
Oyununuzun belirli bir platformda işlev görmesi sizin için önemliyse, bunun için tekrar sorumluluk almanız gerekir. Ve bununla başarıyı sağlamanın "en kolay" yolu, bunu kendiniz yapmaktır. Birden fazla platformda çalışabilecek bir motor oluşturmak için, belki de bazı düşük seviyeli ayrıntıları işlemek için gerektiğinde platforma özgü daha basit çerçeveler kullanabilirsiniz. Bu şekilde, eğer kırılırsa, kodunuz; düzeltmek için en iyi kişisin.