Jonathan Blow, ünlü bağımsız şifre çözme oyunları "Braid" ve "The Witness" ın yazarıdır. Son zamanlarda, C ++ 'nın gerçekten korkunç bir dil olduğunu söyledi, o kadar korkunç ki, programcıları geliştirmek için işini durdurmak ve yeni bir dil icat etmek istiyor Yaşam kaliteleri. C ++ için, oyun geliştirme sürecinde aşırı karmaşık katmanlı ekosistemin farklı sorunları çözme karmaşıklığını artırdığına inanıyor. Sonuç olarak, bu sorunu çözmek için Jai adında bir dil geliştirdi.Jai şu anda geliştirme aşamasındadır ve halka açıklanmamıştır.
2014'te bir noktada, Jonathan Blow "The Witness" oyununu geliştiriyordu ve aniden kod yazmanın trajik bir deneyim olabileceğini hissetti.
Neden? Blow'dan söz etmek gerekirse, "Bunun nedeni C ++ 'nın" çok kötü ve berbat bir dil "olmasıdır. "
Gamelab Barcelona'da yakın zamanda yaptığı bir konuşmada, yaygın olarak kullanılan programlama dillerine inandığı sorunları ve kendi geliştirdiği bir alternatif Jai aracılığıyla beklenen geliştirme hedeflerine ulaşma umudunu açıkladı.
Blow, C ++ 'nın ana kusurunun, çok karmaşık ve katmanlı bir ekosistem olduğuna ve farklı problemleri çözme sürecinde gittikçe daha karmaşık hale geldiğine inanıyor; ne kadar fazla katman, yığın o kadar yüksek olur ve aynı zamanda Ne kadar istikrarsızsa, anlamak o kadar zor.
Jonathan Blow
Blow, "İnsanlar programlama dillerinin karmaşık bir ekosistem olması gerektiğini düşünüyor" dedi. "Ekosistemi bir yıl boyunca incelemek ve oraya bir 3B grafik koymak istemiyorum."
Jai'nin geliştirilmesinin nedeni, Blow üç şeye ulaşmayı umuyor:
Şu anda Jainin üretkenliği yaklaşık% 15 arttı, ancak Blow zamanla bunun% 50 -% 80e çıkabileceğine inanıyor.
Dile ilişkin tahmini doğruysa, bağımsız ve 3A düzeyinde oyun geliştirmeyi yeniden şekillendirmek hemen köşede.
The Witness oyununun ekran görüntüsü
C ++ kafa karışıklığı
C ++ 1970'lerde doğmuştur ve C diline dayanmaktadır. Onlarca yıllık geliştirmeden sonra, C ++ muazzam değişikliklere uğradı. "Tarihsel kalıntılar ve tuhaf" tanımların katmanları, gelişimini engelliyor ve C ++ giderek daha kaotik hale geldi.
Blow, "C ++ öğrenmeye yeni başladıysanız, belki de öğrendiğiniz şeylerin çoğu parçalanmıştır. C ++ bir dereceye kadar güçlü bir dildir, çünkü bizim oyun yapmak için anahtar dildir. Ama şimdi sürecimizi daha da zorlaştırıyor. "
Projeler büyüdükçe ve büyüdükçe, değişiklikleri düzeltmek daha uzun sürüyor ve programlamanın doğası gereği "hantal işler" için çok zaman ayrılıyor.
Böylece Blow, herhangi birinin bunu değiştirip değiştirmeyeceğini düşünmeye başladı. Ama kısa süre sonra, bu saçma fikri reddetti, sonuçta herkesin birçok farklı seçeneği var. Bir oyun geliştiricisi olarak Blow, oyun geliştirmek için yalnızca C ++ dilini kullanırken, diğer geliştiriciler diğer programlama dillerini seçebilir.
Pek çok insan dil gelişiminin de değiştirilebileceğini söyleyebilir. Ancak gerçek şu ki, şirketin çok büyük bir oyun motoru var ve değiştirme maliyeti çok yüksek. Birkaç yıl önce, "Assassin's Creed" gibi bir oyunun 10 milyon satırlık kaynak kodu vardı ve şimdi daha büyük olabilir.
Ve endüstride atalet yaratan da bu tür bir "statüko önyargısı". Geliştiriciler, süreç ne kadar zahmetli olursa olsun, eksiksiz bir görev setine sahip olduktan sonra tüm sistemleri yeniden yazmayacaklar. Pek çok insan artık yenilgici bir tavra sahip. "Aslında biliyorum ve bu küçük gerçekçi ses bana bunu değiştiremeyeceğimi söylüyor." Blow dedi. Ama bazı nedenlerden dolayı şu soruyu sormaya karar verdi: Değiştirmek gerçekten imkansız mı?
"Ne kadar çok sorguladıysam, o kadar çok 'aslında bu değişebilir. Sanırım burada yaptığımız belirli şeyleri gördüm' dedim. Bunu değiştirmenin bir yolu olduğunu anladığımda, aniden günlük işimle ilgilenmeye başladım. Çok mutlu hissediyorum çünkü birdenbire bir çıkış yolu oluyor. "
Şimdiye kadar, Blow ve ekibi "The Witness" oyununu derinden geliştiriyorlar, bu yüzden Jai hala bir yardımcı proje ve hala bir geliştirici. Ancak önümüzdeki yıllarda Blow ve ekibinin Thekla'daki ana odak noktası bu olacak. Şu anda, "gerçeklikle ilgili fikirleri test etmek" için Jai kullanılarak inşa edildiğini söylediği habersiz bir oyun projesi var.
Jai gerçek mi yoksa rüya mı?
Birçok yönden, Blow'un yeni programlama dilleri geliştirmede benzersiz avantajları vardır. Büyük stüdyolardan ve yayıncılardan bağımsızdır, çok uzun projelere katılmıştır (Şahit yaklaşık yedi yıl sürmüştür) ve deneyimli bir programcıdır.
Blow, bir tasarımcı olarak deneyimin oyun oluşturmak için kullanılabilecek bir dil geliştirmek için de çok önemli olduğunu söyledi ve Jai'nin C ++ 'nın birçok tuzağından kaçınabileceğini umduğunu söyledi. Blow aynı zamanda Jai'nin de "moloz yığını" olma tehlikesiyle karşı karşıya olduğunu fark etti.
"Tüm bu zamanı daha iyi olduğunu düşündüğünüz şeyi tasarlamak için harcayabilir ve sonunda aynı veya daha kötüsü olabilir. Bu olabilir. Ama bir tasarımcı olarak benim deneyimim de budur.
Tasarladığım oyun büyük ve karmaşık, aynı programlama dilini, estetiğe odaklanarak tasarlayabilirsiniz. "Önce basit tutmaya çalışın, ancak ikinci olarak karmaşıklığı artırdığınızda (çünkü her zaman daha karmaşık gereksinimler olacaktır), bu karmaşıklığın ne kadar fayda sağladığını düşünmelisiniz? Anlaması ne kadar kolay (oyuncular için) her zaman sahip olduğumuz Oyun tasarımında ele alınan konular. Birisi bu odaya girerse ... ne olduğunu anlayacaklar mı, anlamalarına nasıl yardımcı olabiliriz?
"Aynı beceriler programlama dili tasarımına dönüştürülebilir. Bunun çok tartışmalı olduğunu düşünmüyorum. Çoğu zaman, programlama dilleri tasarlanırken tasarımcılarımız tarafından tasarlanmazlar. Teknik sorunları çözmeye çalışanlar tarafından yaratılırlar. Programcılar için tasarlandı. "
Sonunda, Blow, Jai'nin en büyük AAA oyunlarını güçlü bir şekilde programlayabileceğini umuyor, ancak şimdi yeni oyunuyla "ara köprü" konumunda.
"Bu gerçek bir oyun, biz sadece yapması daha kolay bir tasarım seçtik. Bittiğinde ve çalıştığında, grafik motorunu genişletebiliriz ve benzeri."
Jai henüz açık kaynaklı olmasa da, Blow kapalı testi bu yılın sonundan önce tamamlamayı umuyor. Potansiyelini gerçekleştirebilsin ya da kişisel umutlarını gerçekleştirebilsin, daha gidecek çok yol var.
C ++ gerçekten "korkunç bir programlama dili" midir?
Bunu sadece Jonathan Blow söylemedi.Linux'un babası Linus Torvalds, ilk yıllarda C ++ 'nın dehşet verici bir dil olduğunu ve hatta pek çok vasıfsız programcının kullanmasından daha da korkutucu olduğunu gösterdi. Öyleyse, işletmenin proje gereksinimlerini bir kenara bırakırsanız, C ++ gerçekten kendi başına bir "korkunç programlama dili" midir? Bu bağlamda, birçok netizen şunları söyledi:
Ne düşünüyorsun?
referans:
"Belgeler için çağrı"
CSDN kamu hesabı, "on milyonlarca teknik insanla büyüme" kavramını destekler. Teknik insanların ilk kez ilgilendiği endüstri odak olaylarını teknik insanların benzersiz bakış açılarından açıklamak için yalnızca "inek başlıkları" ve "konuşma" sütunlarını kullanmakla kalmaz, aynı zamanda "Teknik Başlıklar" sütunu, sektördeki popüler teknolojilerin ve uygulamaların derinlemesine bir yorumunu sunarak, tüm geliştiricilerin teknolojik trendlere ayak uydurmasına, uyanık bir teknolojik anlayışı sürdürmesine ve sektör eğilimleri ve teknolojileri hakkında daha kapsamlı bir anlayışa sahip olmasına olanak tanır.
Yüksek kaliteli makaleleriniz veya endüstrinin sıcak olayları, teknoloji trendleri hakkında içgörüler veya derinlemesine uygulama uygulamaları, senaryolar vb. Hakkında yeni içgörüleriniz varsa, lütfen gönderimler için CSDN ile iletişime geçin. İletişim: WeChat (guorui_1118, lütfen gönderim + ad + şirket pozisyonunu not edin), e-posta (guorui@csdn.net).