? Yazılım Mühendisliği Stack Exchange, Rollercoaster Tycoon: Tüm zamanların en iyi optimize edilmiş oyunu? | Pcgamesn
Rollercoaster Tycoon: Tüm zamanların en iyi optimize edilmiş oyunu
C’den yapamayacağınız tüm bu çılgın optimizasyonları (vektörleştirme işlemlerini (vektörleştirme işlemlerini (SSE, vb.) Bit twiddling, vb.) Yaparken yaparken montaj karmaşıklaşır. . Bu parçayı kuşat, monte et, ölç. “Döngü ve gerçek kodlamada değil. büyük C Kodu Yazmaktan Çıkın.
?
C’de yazarak başlayabilir mi ve sonra bir parçasını performans için gerektiği gibi montajcıya değiştirebilir mi??
Ha, ha, ha, bu eski yorumlarımı okuyan birinden bir soru gibi.
3 Cevap 3
Kaba biyografisini okumaktan iki yıl gibi görünüyor (1997 başından 1998’in sonlarına kadar). ‘Bir seferde bir proje’ olarak göründüğü ve araç seti ve zaman aralığı ‘takım geliştirme’ için harika olmadığı göz önüne alındığında, düz bir 24 programcı-ay olduğunu varsayarım.
Bu noktada 1983’ten beri Meclis’te çalışan profesyonel bir oyun programcısı olmuştu, bu yüzden “iki Chris yılını” “iki yıl” işine eşitlemezdim.
Çoğu profesyonel oyunun bir takımın gelişmesi için yaklaşık 25 kişilik yıl sürdüğü göz önüne alındığında, endüstride lider bir oyun için iki kişilik yıl, inanılmaz bir başarıdır ve sözlere inanç ödünç verir:
- Harika bir programcı, iyi bir programcıdan 10 kat daha üretkendir
- Programcı, verimlilik dilinden daha önemlidir
Bu durumda, chris C veya Java veya JavaScript kullanmış olsaydı, ne kadar daha hızlı rollercoaster kralı yazılır veya . Muhtemelen, 14 yıllık deneyime sahip olmadığı daha yüksek seviyeli bir dil kullanarak biraz daha yavaş olabileceği gerçeğinden başka önemli olmazdı.
18 Kasım 2010’da 23:02
2.331 2 2 altın rozet 18 18 Gümüş Rozet 17 17 Bronz Rozetler
Harika noktalar, durumun böyle olabileceğini düşündüm.
Her rutin, o zaman % zaman daha uzun bir şekilde hayal ediyorum, o zaman yetenekli bir montaj programcısı için çok daha fazla olmayabilir.
C’den yapamayacağınız tüm bu çılgın optimizasyonları (vektörleştirme işlemlerini (vektörleştirme işlemlerini (SSE, vb.) Bit twiddling, vb.) Yaparken yaparken montaj karmaşıklaşır. . Bu parçayı kuşat, monte et, ölç. “Döngü ve gerçek kodlamada değil. İyi bir makro montajcı ve yetenekli bir programcı ile, montaj yazmak bir büyük C Kodu Yazmaktan Çıkın.
Yine de yapamazdım! ! (Düzenlemek: Wikipedia bana C’de bazı parçaları yazdığını söylüyor “Windows İşletim Sistemi ile Arayüz” için yazdı, bu yüzden montajda DirectX’i başlatmıyor sanırım o zaman. yama!)
Rollercoaster Tycoon: Tüm zamanların en iyi optimize edilmiş oyunu?
Nisan 1999’da Pazar sabahı erken saatlerde, oyun tasarımcısı Chris Sawyer, 90’ların teknolojisi olan bir koleksiyon olan oturma odası komuta merkezinde tünemişti, forumlara çevrimiçi tarama forumları. Mart ayı sonlarında, açılış rollercoaster kralı, Sawyer’ın bulaşıcı tema parkları sevgisiyle damlayan Kuzey Amerika’daki raflara inmişti ve bir şeylerin ciddiye alındığı görülüyordu.
Forumlarda, oyuncular oyunun bir şekilde ilerlemelerini kaybettiğini ve onları oyunun senaryolarında Square’e geri gönderdiğini söylüyorlardı, bu da sırayla seviye gibi ilerledi. Yıllarca süren dikkatli çalıştıktan sonra, oyun gizemli nedenlerle kendini yok etmiş gibi görünüyordu. Ama Sawyer’ın bir önsezi vardı: Dün gece, gün ışığı tasarruf süresi yürürlüğe girmişti.
Belki de bir tesadüfden daha fazlasıydı. Birkaç saat içinde bağlantıyı ortaya çıkarmıştı. Oyun dosyalarındaki ayarlanmış zaman damgaları, kurcalamaya veya yolsuzluğa karşı korunmak için orada, eşleşmiyordu. Sawyer, “Utanç verici bir şekilde, benim açımdan açık bir hata oldu” diyor Sawyer. “Yoksa?”
Kullandığı sistem çağrısı, gün ışığı tasarrufu ile değişmeyen UTC’de zaman vermiş olmalı, sorun yaratmadı. “Sadece bir nedenden dolayı” diyor, “ yaptı değiştirmek!”Hızlı bir yama ve daha sonra oyun dosyalarını düzeltmek için bir yardımcı programı kodladı.
Daha büyük ironi, rollercoaster kralı, aksi takdirde tek bir kişinin programlamada neler başarabileceğine dair bir anıt olarak duruyordu. Neredeyse tamamen montaj kodunda (Sawyer’ın önceki nakliye kralı gibi) yazılmıştır, Rollercoaster Tycoon ve devamı, binlerce ziyaretçiyi ve onların zihin durumlarını simüle etmek için zamanın işlemcilerini sıktı ve yeniden sıkıştırdı. Otostop yapmadan gerçek zamanlı olarak bu kadar çok sayıdan çalkalanmak, daha yavaş, daha yavaş, daha kullanıcı dostu C dil ailesi değil, yalın, ödün vermeyen bir yaklaşım gerektirdi. Ve harflerin ve sıfırlar için mektupların durduğu ultra Lean montajında, biri doğrudan işlemciye konuşuyor.
1950’lerde Fortran’ın gelişiminden bu yana öğrenilmesi son derece zor bir dildir ve tarzdan çıkmıştır. Sawyer, ilk günlerinde 1980’lerin ortalarında bir avuç Z80 kodlu oyun yayınladı ve Klasik Elite II de dahil olmak üzere Amiga oyunlarını DOS’a dönüştürmede bir karar verdi.
. Bazıları, Ohio’daki Cedar Point gibi yerlerde roller bardak altlarına binmek için Avrupa ve ABD’ye seyahat etti. Şimdi 700’den fazla bardak altına bindi. En sevdiği, Almanya’daki Phantasialand’da Taron, bir kralı oyunundan bir şeye benziyor.
Sawyer, temiz sunumunu ve yıldırım hızlı derlemesini takdir ederek x86 montajına doğal olarak çekildi ve rollercoaster kralı yapmak için yola çıktığında, iki adet hizaladı: kodlama için hızlı ve test için daha yavaş olanı. (Oyunun sistem gereksinimleri daha sonra en az 16 megabayt RAM ile Intel Pentium 90MHz çağrısında bulundu.) Ayrıca komut yazısının üstünde bir nokta matris yazıcısı (inanıyor), bir faks makinesi, x86 montaj kodu için cep kılavuzu ve 500ish sayfa masaüstü referansı vardı. Bu onun için yeterliydi; Tam kılavuzlar binlerce sayfaya girmesine rağmen, ihtiyaç duyduğu şeylerin çoğunu ezberlemişti.
“X86’da çok uzun zamandır bir şeyleri incelemem gerekiyordu” diyor.
En eski oyun nakliye kralı andırdı, ancak roller bardak altlıklarıyla ve grafik sanatçısı Simon Foster daha esnek ve fotogeriyel bir sistem yarattı, böylece bardak altlıkları parçaya bakacak. İlk tasarım sürecinin çoğu serbest ve birkaç bariz selefinden ilham aldı: Will Wright, Peter Molyneux, Sid Meier. Ama en önemlisi, Sawyer performansa öncelik vermek zorunda kaldı. Yeni özellikler, yavaş, kobay PC’de daha büyük bir yük anlamına geliyordu ve bazıları koddan bağlanabilirken, diğerleri kalmalı.
. “Mükemmel çalışan bir rota arama algoritmasını programlamak kolaydır,” diyor Sawyer, “ancak bir karar vermesi gereken bir seferde oyunu saniyeler veya dakikalar boyunca durdurursa faydası yok.”
Algoritmalara yontuldu, çalılardaki birçok küçük erkek ve kadını ve yanlış dekoratif yolda. “O zamana kadar ABD’de birkaç büyük tema parkını ziyaret ettim ve bazılarında kendim kaybolmayı başardım” diyor. “Bu yüzden Rollercoaster Tycoon’daki konukların da mücadele etmesinin doğru olduğunu düşündüm […] Park düzeni kötü tasarlanmışsa.”
Oyun Ramshackle Wish listesinden bir SVGA tapınağına tema parklarına dönüştüğünde, Sawyer onu çok olumlu yanıtlayan arkadaşlara, komşulara ve komşuların çocuklarına yayıldı. Yayıncı Hasbro, profesyonel hata avı playtesters için düzenledi ve Sawyer kendi sonsuz soruşturmasını yaptı. .
Devam filmi için Sawyer, orijinal kod tabanına eklendi ve nihai vizyonuna yaklaşarak. 2016’da Eurogamer’a “Bu oyunu ve onunla ilgili her şeyi hala seviyorum” dedi. Sawyer, Meclis ile devam etti, neredeyse sadece Chris Sawyer’ın 2004’teki Locomtiess’i, bugüne kadarki en iddialı oyunu ve aynı zamanda son büyük masaüstü unvanını kodlamak için kullanmaya devam etti. O zamandan beri oyun geliştirmesinden geri döndü ve yeni rollercoaster kralı oyunlarının haklarını Atari’ye lisansladı – ilk ikisinin başarısına asla yaklaşmayan çabalar.
Sawyer, şu anda olduğu gibi endüstri ile geçinmiyor, ancak yönetim Sims’teki son yeniden dirilişi takdir ediyor. Bugünlerde bir montaj kodlayıcısına çok az ihtiyaç var (kabul ettiği gibi) ve yalnız bir kurt olarak çalışmak her zamankinden daha zor. “Şimdi oluşturmak istediğim tüm oyunları yarattığımı da hissediyorum,” diyor, klasik oyunlarının mobil versiyonları da dahil olmak üzere “ve başkasının oyun tasarımları üzerinde çalışmak beni heyecanlandırmıyor.”
Matt Hrodey Matt Hrodey, Pcgamesn için Rollercoaster Tycoon 2’yi kapsayan bir oyun yazarıdır.