Karakter güdümlü bir oyun motorunu komut dosyası yazma / programlama öğrenmenin gereksiz olduğu noktaya kadar basitleştirmek iyi bir fikir mi?


9

Hatırlıyorum ve hala düşünüyorum da, birlik gibi devasa araçlar kullanmadan veya kapsamlı C ++ programlama, tasarım desenleri, iyi veya temel bir 3D motor vb.

Şimdi merak ediyorum, programlamayı bildiğim için, bir şeyi nasıl yapacağımı bilmeden önce programlamayı öğrenmek zorunda olanlardan daha şanslı olup olmadığımı. Unity gibi senaryolu motorlar bile çocuklar için değildir ve bence bir şeyler yapma yollarını dikte etme eğilimindedirler. Ogre veya Irrlicht gibi motorlarda durum böyle değil.

Şimdi karakter odaklı oyunların oyun pazarının büyük bir bölümünü işgal ettiğini düşünüyorum. Sadece AI yapmayı başka bir şeyin dışlanmasına izin veren bir karakter kontrol odaklı oyun motoru yapmak iyi bir fikir mi?

Prototip derken, sahne yöneticisi, oynatıcının kamera POV'si, kontroller, bazı çok temel çarpışmalar / fizik ve entegrasyon gibi bir dizi oyun parametresinden hızlı bir şekilde seçim yapabilmek açısından "genel" demek istiyorum. temel direksiyon (örneğin OpenSteer). Ana fikir bir AI sanal alanı yapmak, ancak 3D'de, böylece 2D kısıtlamaları olmadan gösterilebilir (ve ayrıca 2D yerine bir 3D proje için 3D prototipine daha uygun hale getirilebilir).


'Temel' bir 3D motor çok büyük değil ve C ++ prototipleme için korkunç. Bunun için Python'u deneyin.
Komünist Ördek

Yanıtlar:


6

Blender'daki takdir edilmeyen oyun motorunu gerçekten seviyorum. (http://www.blender.org) Sensör-kontrolör-aktüatör modelini programcı olmayanlar için bile takip etmek gerçekten kolaydır ve makul derecede eksiksiz bir oyun yapmak (animasyonlu bir karakter taşımak, bir silahı ateşlemek, hedefleri yok etmek) mümkündür , puanı gösterme, sağlığı takip etme, seviyeyi sıfırlama veya yenisine geçme).

Tabii ki, bazı şeyler programlama gerektirir (özellikle bir FPS için fare girişi almak.) Ancak, blender zaten Python'u içerir ve Python komut dosyaları modele çok güzel bağlanmıştır, bu nedenle sensör aktüatörlerini asla Python ile değiştirmenize gerek yoktur. Bunun yerine, çok basit bir 'doğrudan' denetleyiciden, sahnedeki tüm sensörleri okuyabilen ve kontrolü tüm aktüatörlere geçirebilen eksiksiz bir Python betiğine geçersiniz.

Blender'da birkaç gün içinde bir oyun prototipi oluşturmak oldukça mümkün (geçen yıl yerel bir çocuk müzesinde bir proje için yaptım.)

Tabii ki, hiçbir şey eski programlama bilgisinin yerini almaz ve sonunda bir geliştiricinin programlamayı anlaması gerekmez.


Bu oyun motorunu kutular yerine kodla kullanmak oldukça güzel olurdu ... belki de kullanmak için yeterince temiz değil, ama merak ediyorum ...
jokoon

4

Giriş mekanizmasından bağımsız olarak, günün sonunda oyuna mantığın ne olduğunu söylemenin bir tür yolunu ayarlamanız gerekir. "Scripting" bunun için iyi bir konuşma dilidir. Yani temelde, "betik" bilmeniz gerekmediği noktaya bir şeyi basitleştirebileceğiniz iddiasına katılmıyorum.

Bununla birlikte, tüm komut dosyalarının metin tabanlı bir programlama diliyle yapılması gerekmez. Görsel bir betik sistemi yapmak için bazı çalışmalar yapıldı (ancak çok fazla değil). Unreal'ın seviye komut dosyası aracı Kismet, oldukça iyi bir örnek. Kaynak motor benzer bir tamirciye sahiptir, ancak düz bir düzlemde değil, dünyadaki varlıkları kullanır.

Temelde, giriş ve çıkışlara sahip bir çeşit ortamda sürüklediğiniz kutular vardır. Bir çeşit dallanma çıktısına ihtiyacınız varsa, bir giriş ve çoklu çıkışlara sahip bir kutunuz vardır. Bu çıktılar, kendilerine bağlı veriler içeren eylemlere gidebilir (yani "bu noktaya git", "bu satırı söyleyin", "bu soruyu sor" vb.). Anahtar kelimeleri veya sözdizimini bilmeniz gerekmediğinden, bir şeyin görsel bir dilde yayınlanması ve çalıştırılması genellikle girişin önündeki bariyerin azalmasıdır, hepsinin tanımlanmış davranışlara sahip olduğu sınırlı bir kutu kümeniz vardır ve onları birbirine bağlayın.

Ancak bence görsel betik motorları gerçekten belaya değmez. Motora ne yapmak istediğinizi başarılı bir şekilde anlatmak için yapılandırılmış ve mantıklı düşünebilmeniz gerekir. Eğer böyle düşünebiliyorsanız, giriş / çıkışlı kutulardan temel dallanma ifadelerine ve kodlama dilinde fonksiyon çağrılarına atlamak o kadar büyük bir şey değildir. Aslında, bir süre sonra görsel kısmı muhtemelen bir engeldir. Ayrıca, şeylerin motor tarafında çok daha fazla iş var. Uygulamayı geri al, kopyala / yapıştır gibi şeyler yapmanız gerekir, belki de komut dosyalarınızı düzenlemek için daha üst düzey özelliklere sahip olabilirsiniz. Metin tabanlı bir dil ile tüm bunları IDE'ye bırakabilirsiniz.


Unreal Kismet gibi mi demek istiyorsun?
DeadMG

1

Genelde bir takas olacaktır. Gerçekten herhangi bir komut dosyası yapma ihtiyacını ortadan kaldırmak istiyorsanız, genellikle komut dosyalarını arka planda bir araya getirecek bir tür arabirim yapmaktan bahsedeceksiniz (veya sadece mantık nesnelerini bağlayın veya ne yapmayın). Tüm oyunların tam olarak burada olduğu nokta, oyunların nasıl etkileşime girdiğini görmek için sürükleyip bıraktığınız iyi tanımlanmış bir ortam.

Ancak günün sonunda, her zaman bir işlem olacaktır .. Arayüzü daha basit hale getirmeye çalıştığınızda, arayüz üzerinden oluşturulan şeyler daha basit hale gelir.

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.