İlan
Oyun geliştirmek hiç bu kadar kolay olmamıştı. Unity gibi oyun geliştirme platformları, basit 2D platformerlerden tamamen ayrıntılı 3D birinci şahıs nişancılara kadar her şeyi yaratmayı mümkün kılar. Birlik küçük geliştiriciler için ücretsizdir ve fikirlerinizi prototiplemek için editörün en iyi nasıl kullanılacağına dair çok sayıda öğretici vardır.
Unity programını nasıl kullanacağınızı öğrenmek sizi şimdiye kadar elde edecektir. Oyununuzun asıl çekirdeği, davranışını belirleyen kod olacaktır. Oyun geliştirmek için hangi dili öğrenmenin zor olabileceğini anlamak - ancak Unity için bu basit.
1. En İyi Seçim: C #
Unity ile başlayan ya da daha önce nesne yönelimli programlama bilgisi olan herkes için C #, Unity için öğrenilecek doğru dildir. Aslında, C # platform için öğrenmeye değer tek dildir ve bunun iyi bir nedeni vardır.
Unity, Microsoft’un .NET çerçevesinin platformlar arası bir uygulaması olan Mono'yu kullanıyor. C #, .NET'in birincil dilidir ve tüm Unity kitaplıkları C # kodu kullanılarak oluşturulur. C # 'nin Birliğin dili olduğunu söylemek abartı olmaz. Unity, C # 'ın motor ilerlerken kullanılacak tek dil olduğunu düşündüklerini açıkça belirtti.
Bu iyi bir haber, çünkü C # güçlü bir dil ve öğrenmesi kolay. Birlik, birçok C # öğrenmek için iyi nedenler C # Programlamayı Öğrenmek için 7 Pratik NedenBirçok programlama dili vardır, o zaman hangisini öğrenmek için birini seçmelisiniz? İşte C # öğrenmek için birkaç neden. Daha fazla oku ve yeni başlayan biriyseniz, daha erişilebilir de bulabilirsiniz. Oyun geliştirmek öğrenmeye bir yapı kazandırır ve proje tabanlı hedefler yeni konuların daha iyi anlaşılmasını sağlar.
Tanıtımı ile C # iş sistemi ve ECS, Unity, C # ile yapılabilecekleri daha da ileriye taşıyor ve yeni Burst derleyicisi her zamankinden daha hızlı hale getiriyor.
2. Mevcut Alternatif: JavaScript
Unity ayrıca UnityScript olarak bilinen JavaScript'i de destekler. Sürümden bu yana JavaScript, tam özellikli Unity geliştirme dili olarak C # ile yan yana oturdu. Unity komut dosyası başvurusunda, kitaplığın çoğu öğesi için hem C # hem de JavaScript'te örnek kod vardı.
Bu, JavaScript'in arka planından gelen geliştiriciler için, kodun yapılandırılma biçimindeki farklılıklara rağmen, tanıdık sözdizimini kullanabildikleri için yararlıydı. Ancak bir sorun vardı.
UnityScript JavaScript'e benzer görünse de, öyle değil. UnityScript'in sınıfları vardır, JavaScript'in içermediği bir şey. Çok değişkenli bildirim ve isteğe bağlı noktalı virgül gibi JavaScript özellikleri UnityScript'te mevcut değildir.
Belki de en önemlisi, Unity projelerinde JavaScript yardımı aramak, çoğu insanın UnityScript yerine JavaScript olarak adlandırdığı için her zaman karışıklığa neden olmuştur. Hem web tasarımı hem de oyun geliştirme sonuçları birlikte bulanıklaştı ve diller arasındaki fark, saf JavaScript geliştiricilerine bir çekişme noktasıydı.
Belki de şaşırtıcı olmayan bir şekilde Unity, UnityScript desteğini çekeceklerini açıkladı ve şimdi hizmetten çıkarmak için zaman çizelgesi. JavaScript'i yine de Unity ile kullanabilirsiniz, ancak bunun sona ereceğini bilerek neden?
3. Eski Üçüncü Seçim: Boo
Unity'nin ilk günlerinde, Python benzeri bir dil olan Boo kullanma seçeneği vardı. Bu muhtemelen Rodrigo B kadar şaşırtıcı değil. De Oliveira, Boo’nun tasarımcısı, Birlik için çalıştı. Dil .NET ve Mono ile uyumludur ve oyun motoru ile tamamen uygulanır. Ne yanlış gitti?
Yeterince insan kullanmamış, muhtemelen sadece Python'u taklit etmeye çalıştığını varsayar. Zamanla, Unity Boo için desteği bıraktı ve UnityScript'te yapılacak değişiklikler Unity'de tüm eski Boo komut dosyalarını işe yaramaz hale getirecek. Boo, .NET programlama için Python benzeri sözdiziminde büyük bir girişim olduğu için bazıları bunu kaçırılmış bir fırsat olarak görebilir.
Ancak Python severlerin başka bir seçeneği var.
4. Garip Seçim: IronPython
Oyun geliştirmek istiyorsanız, Python muhtemelen sizin için bir dil değil Python'un Sizin İçin Programlama Dili Olmamasının 4 NedeniPython programlama dili son derece popülerdir, ancak burada Python'dan kaçınmak isteyebileceğiniz birkaç neden vardır. Daha fazla oku , ancak mümkündür. Microsoft Geliştirici Topluluğu blogunda, Charlie Calvert özetliyor C # Python nasıl çalıştırılır- ama bu yürekli değil. Neredeyse on yıl sonra, IronPython hala aktif bir gelişme içindedir.
Kısacası, GitHub'dan IronPython kütüphaneleri ve bunları C # projenizde referans alın. Bu, diğer kitaplıklarda olduğu gibi C # komut dosyalarından Python komut dosyalarını çağırmanıza izin verir. IronPython ayrıca Python'dan .NET kütüphanelerini çağırmak. Bu kadar faydalı olduğu için, Unity C # 'a dayandığından bu işlevsellik yardımcı olmuyor.
IronPython ve C # ile Ruby programlama dilini birbirine bağlayan kardeş proje IronRuby harika projelerdir, ancak Unity ile kullanım için pratik değildir.
5. İlginç Seçim: Lua
Birlik için harici bir dilin daha iyi uygulamalarından biri MoonSharp—A Lua yorumlayıcısı. Bu proje C # yerine dil olarak değil daha çok köprü görevi görecek şekilde tasarlanmamıştır. MoonSharp için mükemmel kullanım örneği, oyununuzun oyuncularının Lua dilinde oyun modları oluşturmasına bir şekilde eklemek olacaktır.
Ayrıca, temel oyun kodunuzdan nesneleri ve tasarım düzeylerini tanımlamak için de kullanabilirsiniz.
Zaten C # ile kod yazıyorsanız ve kodunuzla arayüz kurmak için ilginç bir yol arıyorsanız, MoonSharp dikkate değer. Üzerinde ücretsiz olarak mevcut olduğundan Unity’nin Varlık mağazası, doğrudan projelerinize aktarabilirsiniz.
6. Eklentiler için En İyi Dil: C / C ++
Sağlam Unity kütüphanesine ve C #'ın sunduğu tüm araçlara rağmen, bazen kendi eklentilerinizi isteyebilirsiniz. İnsanların eklentileri tercih etmesinin temel nedenleri, hızı veya başka bir dilde yazılmış bir kod tabanına erişimi içerir. Bu komut dosyalarını DLL eklentilerine oluşturmak, yeniden kodlamadan tasarruf sağlar ve bazı durumlarda performansı artırabilir.
Çoğu durumda, C ++ eklenti oluşturmak için kullanılan dil olacaktır, ancak C eşit derecede iyi çalışır. Kod bir DLL içine kurulduğu sürece, Unity'nin eklenti klasörüne yerleştirilebilir ve kodda referans gösterilebilir. Bununla birlikte, C / C ++ 'da zaten rahat kodlama yapıyorsanız, C # öğrenmenin nispeten basit bir görev olacağı olasılığıdır!
7. Eklentiler için Yeni Dil: Rust
Rust, etrafında çok fazla vızıltı olan bir dildir. Deneyimli programcılar, C ++ gibi daha az güvenli dillerde yazmanın tuzaklarından kaçınırken verdiği inanılmaz kontrol için onu sever. Rust, geliştiricilerin hızlı bir şekilde yüksek performanslı yazılım geliştirmeleri için bir yol olarak 2009 yılında Mozilla tarafından oluşturuldu.
Rust'u Unity'de doğrudan yazmak mümkün olmasa da, Rust'da yazılmış işlevlere ve yöntemlere Unity kodunuzdan erişebilirsiniz. Jim Fleming nasıl yapılacağını ayrıntılı olarak anlatıyor Medium'daki yazısında.
Bu tanıdık geliyorsa, bunun nedeni Yerel Eklentiler oluşturmanın başka bir yoludur. Rust’un diğer dillerle arayüz yeteneğinden yararlanarak, Rust işlevlerini Unity’yi kullanarak doğrudan C # kodundan çağırabilirsiniz. Dllımport özniteliği. Doğal olarak, ve arasında birkaç adım vardır. Jim’in takip yazısını okumak FFI'lerin (yabancı fonksiyon arayüzleri) iyi bir şekilde anlaşılması tavsiye edilir!
Basit Bir Seçim
Unity'nin C # olmayan herhangi bir dile karşı tutumu açıktır ve Unity'deki sürekli iyileştirmeler bu tek fikirliliğe dayanmaktadır. Bunu Microsoft’un dil olarak C # geliştirmesini geliştirmesiyle birleştirin ve Unity oyun geliştirme için C # öğrenmesi zahmetsizdir. Ve kontrol ettiğinizden emin olun Unity Learn oyun geliştirmeyi öğrenmenin daha kolay bir yolu Unity Learn, Oyun Geliştirmede Ustalaşmanın En Kolay YoluKendi oyunlarınızı geliştirmeye başlamak ister misiniz? Unity Learn, bilmeniz gerekeni öğrenmenin ve öğrenmenin en iyi ve en kolay yoludur. Daha fazla oku .
Yine de bu tek seçeneğiniz değil, Unity sadece bir motor ve çok sayıda oyun geliştirme yazılım seçenekleri 5 Ücretsiz Oyun Geliştirme Yazılım AraçlarıÜcretsiz oyun geliştirme yazılımı, video oyunu yapmaya başlamak için harika bir yoldur. Piyasadaki en iyi oyun yazılımını derledik. Daha fazla oku ndan şeçmek.
Ian Buckley, Berlin, Almanya'da yaşayan serbest bir gazeteci, müzisyen, sanatçı ve video yapımcısıdır. Yazmadığı veya sahnede olmadığı zaman, çılgın bir bilim adamı olma umuduyla DIY elektroniği veya koduyla uğraşıyor.