Chris Sawyer'de toplayıcıda rollercoaster tycoon'un çoğunu yazan ne kadar karmaşıklık olurdu?


14

Bu sorudan başka bir sorum daha var ...
Chris Sawyer'de toplayıcıda rollercoaster tycoon'un çoğunu yazan ne kadar ve ne tür bir karmaşıklık olurdu?

Bu soruyu belirtmek ve yıkmak için ilgileniyorum;

  1. Yaklaşık olarak kaç adam saat (tahmin var) Chris'in oyunu kendi başına yazması gerektiğini tahmin ediyor musunuz? Veya alternatif olarak, her şeyi C / C ++ 'da yazarak, montajcı kodlama saatlerinin oranının yaklaşık yüzdesini verin.

  2. Montajcıyı bilen programcılar bunu böyle düşük seviyeli bir dil soyutlaması için aşırı karmaşık bir görev olarak mı düşünüyor? Performans avantajlarının yanı sıra, bu Chris'in sahip olduğu garip bir doğal yetenek mi yoksa bu ölçüde öğrenmeye değer bir beceri mi? İnsanlar karmaşıklık / performans şey (iyi yazmak için) montajcı öğrenmeye değer olduğunu düşünüyor veya montajcı (muhtemelen donanım ile çalışmaktan çok doğal olarak gelişmiş becerileri varsa sadece "buna değer" olup olmadığını merak ediyorum / donanım sürücüleri / elektronik / vb.).


1
C ile yazarak başlayabilir ve sonra performans için gereken şekilde parçalarını birleştiriciye değiştirebilir mi?
Jon Onstott

1
Ha, ha, ha, bu eski yorumlarımı okuyan birinden gelen bir soru gibi.
Mark C

Yanıtlar:


12

Onun kaba biyografisini okumaktan iki yıl gibi görünüyor (1997 başı ile 1998 sonu) 'Her seferinde tek bir proje' gibi göründüğü ve araç seti ve zaman dilimi 'takım geliştirme' için harika olmadığı göz önüne alındığında, 24 ay boyunca düz bir programcı varsayıyorum.

Bu noktada, 1983'ten beri mecliste çalışan profesyonel bir oyun programcısıydı, bu yüzden "iki Chris yıl" ı "iki ben yıl" ile eşit yapmam.

Çoğu profesyonel oyunun bir takımın gelişmesi için yaklaşık 25 kişi sürdüğü göz önüne alındığında, endüstri lideri bir oyun için iki kişilik yıl inanılmaz bir başarıdır ve sözlere inanç katmaktadır:

Peki bu durumda Chris C veya Java ya da Javascript ya da ... kullansaydı Rollercoaster Tycoon ne kadar hızlı yazılacaktı? Muhtemelen 14 yıllık tecrübesi olmayan daha üst düzey bir dil kullanarak biraz daha yavaş olmasının dışında bir önemi olmazdı ...


harika noktalar, böyle düşünebilirim.
İsimsiz Tür

4

C'yi bir "yüksek seviyeli" montajcıdan biraz daha fazla düşünürseniz ve Chris'in her rutinte montaj koduna deli optimizasyon yapmadığını varsayarsak , o zaman% zaman daha uzun olarak hayal edeceğim, o zaman yetenekli bir montaj programcısı için bu kadar fazla olmayabilir.

Montaj, C'den yapamayacağınız tüm bu çılgın optimizasyonları (vektörleme işlemleri, özel talimat setleri (SSE, vb.) Biraz döndürme vb.) Yaparken karmaşıklaşır. o zaman gerçek kodlamada değil, "bu parçayı kemanla, birleştir, ölç ... bu parçayı kemanla, birleştir, ölç ..." döngüsünde. İyi bir makro birleştirici ve yetenekli bir programcı ile, yazma derleme C kodu yazmaktan büyük bir adım değildir .

Yine de, bunu yapamazdım! DirectX'i doğrudan montajda başlatmaya çalışmayı düşünmek için ürperiyorum! ( Düzenleme: Wikipedia bana "Windows işletim sistemi ile arayüz" C bazı bölümleri yazdığını söylüyor , bu yüzden sanırım montajda DirectX başlatmak değildi ... vay!)


Evet, başlangıçta anlayamadığım biraz buydu. Ama sonra DirectX için C'yi kullanma konusunu biraz okudum. Çok ilginç olan optimizasyonlar hakkında bilgi için teşekkürler.
İsimsiz Tür

3

Montajcıda çok sayıda Windows programı yazdığı bilinen başka bir kişi SpinRite, ShieldsUp'ın yazarı Steve Gibson! ve diğer yardımcı programlar. Burada montaj diline olan sevgisini tartışıyor .

Randy Hyde (ikimiz de Apple II için 6502 montaj kodu yazarken eskiden bildiğim), Montaj Dili'nde Windows Programlama adlı yeni bir çevrimiçi kitaba sahip . Montaj programlamasını daha üst düzey bir dil kullanmak gibi yapmak için süslü makrolar (döngü yapıları dahil) kullanmanın büyük bir savunucusudur. Sawyer muhtemelen daha üretken olmak için benzer bir yaklaşım kullandı.

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.