Kaynak Motorun kaynak kodu var mı?


Yanıtlar:


35

Hayır öyle değil. Valve'den bir kaynak lisansı alabilirsiniz, ancak Kaynağın kendisi açık kaynak değildir.


Ayrıca, mevcut motorların tamamını , bu motorun geliştirilmesinde yoğun bir şekilde yer alan birinden rehber olmadan öğrenme materyali olarak kullanmak genellikle çok tehlikeli bir yaklaşımdır .

Kaynak kodu tek başına sadece belirli tasarım kararlarının nasıl olduğunu gösterir, yazılım mühendisliğinde birçok seçeneğin genellikle eşit derecede geçerli seçenekler arasında olduğu göz önüne alındığında, genellikle son derece önemli olan kararların çoğunun nedenini değil . Bir seçimin neden iyi olduğunu anlamak için içeriğe ihtiyacınız var ve sadece bir motorun kaynağına bakarsanız ve tekniklerini ve deyimlerini papağan ederseniz, yararlı bir şey öğrenemezsiniz.

Dahası, kodun bir oyunla birlikte gönderilmesi bu kodu iyi yapmaması nedeniyle (özellikle kaynak , örneğin, C ++ ve OO ile ilgili olarak çok modası geçmiş tasarım kararlarının çoğuna yatkındır ). En başarılı AAA başlıklarının bile motor kod tabanlarında yaşayan birçok korku hikayesi var. Etkileyici bir neofit olarak, iyi kodu kötülükten nasıl anlatacaksınız?

Kaynak kodunu bir öğrenme kaynağı olarak kullanırken çok dikkatli olun ve olabildiğince ek bilgilerle eşleştirdiğinizden emin olun.


3
"Kaynak kodu tek başına sadece belirli tasarım kararlarının nasıl yapıldığını anlatıyor, yazılım mühendisliğindeki birçok seçeneğin genellikle eşit derecede geçerli seçenekler arasında olduğu göz önüne alındığında, genellikle son derece önemli olan kararların nedenini değil." Cevap.
Sad CRUD Developer

@BDillan, bazı insanlar bunu zor yoldan öğrenir .. şirketler anlayamaz büyük motor kod yığınları ile çalışmak için işe rağmen, ve sadece hata ayıklama için zaman var ve sonunda.
teodron

Kimlik yazılımının motorlarının birkaçını
pjc50

1
Hafif bir teğet olarak, "bu kod iyidir" ve "bu kod eskisi için gerekli olan çirkin bir hack'tir, arasındaki farkı açıklamak için bir profesyoneliniz varsa, ticari bir motorun koduna bakmak çok eğitici olabilir. gün "; örneğin -> fabiensanglard.net
Shish

5

tl; dr: Bir motorun nasıl yapıldığını öğrenmek, oyununuzu yapmak için kendi bilgisayarınızı ve işletim sisteminizi sıfırdan oluşturmayı öğrenmek kadar faydalıdır. Alanında uzman değilseniz, muhtemelen bir motor yapmak istemezsiniz. Bunun yerine bir oyun yapın, motor kısmı zaten var. Daha sonra, oyun tasarımınız için ölçütleri karşılamak için erişiminiz olmayan motorlardan hiçbiri yoksa, belirli bir yönü oluşturmaya odaklanabilir ve yeni bir şey oluşturduğunuz ve daha az sağlam bir sürümü yeniden şekillendirmediğiniz için başkaları için de yararlı olabilir. insanların zaten binlerce saat yatırım yaptığı bir şey.

Uzun versiyon: Bir motorun nasıl yazılacağını gerçekten öğrenmek istiyorsanız, mevcut bir motora henüz bakmayın. Motor yapan parçalar (algoritmalar) yerine renderleme, fizik veya yol bulma vb.

Üstün bir alternatif yoksa normal olarak doğrudan kaynaktan öğrenmek istemezsiniz. Deneyimli programcılar bile normalde ondan öğrenmek için tüm bir motorun kaynağına bakmazlardı (eğer yardımcı olabilirlerse), muhtemelen belirli bir bölümünü inceleyecek veya belirli bir kısmını değiştireceklerdir. Saf öğrenme amacıyla kaynağa bakmaya çalışmak, motor kodunun arkasındaki prosedürü ve düşünce sürecini ortaya çıkarmaz; Bu, nasıl inşa edileceğini öğrenmek için iç kısımlarını görmek amacıyla bir binayı parçalamak gibi bir şey olurdu. Josh'un cevabına katılırken, bir adım daha atacağım, birçok açıdan "Nasıl" olduğunu bile öğrenmiyorsunuz (alana aşina değilseniz); Örneğin, programlama ekibi tarafından hangi metodoloji kullanıldı? Çalışma kodunu uygulamak için hangi ilkelere güvendiler? Hata ayıklama için hangi araçları ve teknikleri kullandılar? Tüm bu sorular bazen kodun kendisinden daha önemlidir (öğrenme amaçlı).

Kaynağından öğrenmek istiyorsanız, iyi belgelenmiş ve etrafında güçlü bir topluluğa sahip olan kaynağı arayın. Kendiniz yazmış olsanız bile, okuma (motor) kodu genellikle kafa karıştırıcıdır.

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.