Hangi özellikler motora, hangileri bir oyuna aittir?


19

Şu anda, kendimi 2D oyun motorum için yeni özellikleri uygulayıp test ederken, onları doğrudan motora kodlayarak buluyorum. Eşzamanlı olarak, motor işlevlerini çağırması gereken komut dosyası desteği olan bir vitrin oyunum var. Örneğin, oyun için özel olarak senaryo yazmak yerine motordaki Entity sınıfına sabit bir döşeme hareketi ekliyorum. Bu kesinlikle birden fazla oyun için kullanılan genel bir motor fikrini kırıyor.

Doğru parçalarda doğru uygulamaya odaklanmaya devam edecek en iyi uygulamalar var mı (motor ve oyun)?

Yanıtlar:


25

Bunu düşünmenin birkaç yolu var. Birincisi, motorun sahip olması gereken özellikleri listelemektir (burada sorduğunuz şey.) Ancak diğer yol, "motor" hakkında çok fazla endişelenmeden oyun yapmaya başlamaktır ve daha sonra bulduğunuz özellikler çoklu oyunlar (özellikle her oyunda kullanılan özellikler ) belirli bir oyunun kaynağından "motor" adı verilen paylaşılan bir kod tabanına geçmeniz gerekir.

Çünkü nihayet, neden oyun yerine motorda belirli bir özellik istediğinizi, birden fazla oyun arasında paylaşılması. Genellikle bu çizim komutları, giriş kontrolörleri ve ağ kodu gibi şeyler olacaktır. Bir 2D oyun motoru, görüntüleri yüklemek, z-düzenine sahip bir ekran hiyerarşisi, sprite sayfaları, ara doldurma vb. Gibi birçok 2D grafik özelliğine sahip olacaktır. Diğer yandan pek çok oyun fizik simülasyonuna ihtiyaç duymaktadır. Bu arada, hemen hemen her oyunda kullanılan daha fazla "kaputun altında" şeyler zamanlayıcıları, olay mesajlarını ve hatta oyun geliştirmeye özgü matematik işlevlerini içerir (örn. DistanceToTarget ()


Uzun lafın kısası:

A) Motor, çoğu oyun tarafından paylaşılan özelliklere sahip olmalıdır.

B) Bir grup oyun yaparak hangi özelliklerin paylaşıldığını öğrenirsiniz.


7
+1 -just start making games without worrying too much about the "engine"
JCM

1
Peki just start making games without worrying too much about the "engine"kesinlikle güzel bir öneri.
Christian Ivicevic

3
Yukarıdaki iki yoruma katılıyorum, ancak "sadece motor hakkında endişelenmeden oyun yap" ifadesi bağlamdan çıkarıldı ve geri kalanı olmadan anlamsız: "ve sonra bulduğunuz özellikler birden fazla oyun arasında yeniden kullanılıyor (özellikle , her oyunda kullanılan özellikler) belirli bir oyunun kaynağından "motor" adı verilen paylaşılan bir kod tabanına geçmelisiniz. Kısacası, mümkün olduğunca çok oyun yapın, böylece bir motorun altında ne yapılması gerektiğini ve nelerin olmaması gerektiğini öğrenin. t.

2
Bu harika bir fikir çünkü oyunlarınızda gerçekten ihtiyacınız olmayan motor özelliklerini uygulamanızı da engelliyor.
Zachary Yates

2
Üç Kural'ın ruhunu korumak için +1 .
Joshua Drake
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.