Bahasa Pemrograman – Berapa lama dan jenis kompleksitas apa yang akan terlibat dalam Chris Sawyer menulis sebagian besar rollercoaster taipan di Assembler? Pertukaran Stack Engineering Perangkat Lunak, Rollercoaster Tycoon: Game Terbaik yang Dioptimalkan Sepanjang Masa? | Pcgamesn

. . . “Loop dan bukan dalam pengkodean yang sebenarnya. Dengan assembler makro yang baik dan programmer yang terampil, kemudian perakitan menulis bukanlah a sangat besar mundur dari menulis kode C.

Berapa lama dan jenis kompleksitas apa yang akan terlibat dalam Chris Sawyer menulis sebagian besar rollercoaster taipan di Assembler?

Bisakah dia mulai dengan menulisnya di C, dan kemudian mengubah bagiannya menjadi perakit sesuai kebutuhan untuk kinerja?

.

3 Jawaban 3

Dari membaca bio kasarnya, sepertinya dua tahun (awal 1997 hingga akhir 1998). Mengingat bahwa ia tampaknya menjadi orang ‘satu proyek pada satu waktu’ dan set alat dan kerangka waktu tidak bagus untuk ‘pengembangan tim’, saya akan menganggap 24 programmer-months langsung.

Pada saat itu dia telah menjadi programmer game profesional yang bekerja di Majelis sejak tahun 1983, jadi saya tidak akan menyamakan “dua tahun chris” dengan “dua tahun kerja” kerja “.

Mengingat bahwa sebagian besar permainan profesional membutuhkan waktu sekitar 25 orang tahun untuk dikembangkan tim, dua orang tahun untuk permainan terkemuka industri adalah pencapaian yang luar biasa, memberikan kepercayaan pada perkataan:

  • Seorang programmer hebat 10x lebih produktif daripada programmer yang baik
  • Programmer lebih penting daripada bahasa untuk produktivitas

. Mungkin itu tidak masalah selain fakta bahwa dia mungkin sedikit lebih lambat menggunakan bahasa tingkat yang lebih tinggi yang dia tidak memiliki pengalaman 14 tahun.

Dijawab 18 Nov 2010 jam 23:02
2.331 2 2 Lencana Emas 18 18 Lencana Perak 17 17 Lencana Perunggu
Poin bagus, saya pikir itu mungkin terjadi.

Jika Anda menganggap C sebagai assembler “tingkat tinggi”, dan kami membuat asumsi bahwa Chris tidak membuat optimisasi gila ke kode perakitannya rutin, maka saya akan membayangkan dalam hal % waktu lebih lama, maka mungkin tidak lebih untuk programmer perakitan yang terampil.

Majelis menjadi rumit ketika Anda melakukan semua optimasi gila (operasi vektorisasi, memanfaatkan set instruksi khusus (SSE, dll) bit twiddling, dll) yang tidak bisa Anda lakukan dari C. Jika Anda melakukan hal itu, maka waktunya sebenarnya ada di “biola ini, rakit, ukur. mengutak -atik bit ini, rakit, ukur. “Loop dan bukan dalam pengkodean yang sebenarnya. sangat besar .

Tetap saja, saya tidak akan bisa melakukannya! Saya ngeri berpikir tentang mencoba menginisialisasi DirectX secara langsung dalam perakitan! (EDIT: Wikipedia memberi tahu saya bahwa dia menulis beberapa bagian dalam C untuk “berinteraksi dengan sistem operasi windows” jadi saya kira dia tidak menginisialisasi directx dalam perakitan saat itu. Fiuh!)

Rollercoaster Tycoon: Game terbaik yang dioptimalkan sepanjang masa?

. Pada akhir Maret, taipan rollercoaster perdana telah mendarat di rak -rak di Amerika Utara yang menetes dengan cinta menular Sawyer terhadap taman hiburan, dan sesuatu tampaknya telah menjadi salah serius.

Di forum, pemain mengatakan permainan entah bagaimana kehilangan kemajuan mereka dan mengirim mereka kembali ke Square One dalam skenario permainan, yang maju secara berurutan seperti level. Setelah bertahun-tahun bekerja dengan cermat, permainan tampaknya telah menghancurkan diri sendiri karena alasan misterius. Tapi Sawyer punya firasat: tadi malam, waktu penghematan siang hari mulai berlaku.

. Dalam beberapa jam, dia telah menemukan koneksi. Stempel waktu yang disesuaikan pada file simpan game, di sana untuk melindungi dari merusak atau korupsi, tidak cocok. “Secara memalukan, itu adalah serangga terang -terangan di pihak saya,” kata Sawyer. “Atau apakah itu?”

. “Hanya untuk beberapa alasan,” katanya, “itu telah melakukan mengubah!“Dia dengan cepat mengkodekan tambalan dan kemudian utilitas untuk memperbaiki file Simpan Game.

Ironi yang lebih besar adalah bahwa taipan rollercoaster jika tidak berdiri sebagai monumen untuk apa yang dapat dicapai oleh satu orang dalam pemrograman. Ditulis hampir seluruhnya dalam kode perakitan (seperti taipan transportasi Sawyer sebelumnya), rollercoaster taipan dan sekuelnya diperas dan meracuni prosesor waktu untuk mensimulasikan wahana, ekonomi, dan hingga ribuan pengunjung dan keadaan pikiran mereka. Mengaduk-aduk begitu banyak angka secara real-time tanpa menuntut pendekatan ramping dan tanpa kompromi dan bukan keluarga bahasa C yang lebih lambat dan lebih ramah pengguna. .

Ini adalah bahasa yang sangat sulit untuk dipelajari dan telah keluar dari gaya sejak pengembangan Fortran di tahun 1950 -an. Di masa-masa awalnya, Sawyer merilis beberapa game dengan kode Z80 pada pertengahan 1980-an dan kemudian menjadi pendukung di Conversi Game Amiga menjadi DOS, termasuk Elite Klasik II.

Tampan dan sigap, dia kemudian pergi ke bisnis untuk dirinya sendiri dan menciptakan taipan transportasi sambil memegang haknya, kebiasaan yang telah memberinya sumber pendapatan yang stabil. . Dia sekarang menunggang lebih dari 700 coaster. Favoritnya, Taron at Phantasialand di Jerman, terlihat seperti sesuatu dari permainan taipan.

Sawyer tertarik pada perakitan x86 secara alami, menghargai presentasi bersih dan kompilasi petir-cepat, dan ketika ia berangkat untuk membuat rollercoaster tycoon, ia mencurangi dua PC: yang cepat untuk pengkodean dan yang lebih lambat untuk pengujian. (Persyaratan sistem permainan kemudian menyerukan Intel Pentium 90MHz dengan setidaknya 16 megabyte RAM.. Ini sudah cukup baginya; Meskipun manual penuh mencapai ribuan halaman, dia akan menghafal sebagian besar dari apa yang dia butuhkan.

“Saya sudah pemrograman di x86 begitu lama saya jarang perlu melihat segalanya,” katanya.

Permainan paling awal menyerupai taipan transportasi tetapi dengan roller coaster, dan seniman grafisnya Simon Foster menciptakan sistem yang lebih fleksibel dan fotorealistik sehingga coaster akan melihat bagiannya. . Tapi yang terpenting, Sawyer harus memprioritaskan kinerja. Fitur -fitur baru berarti beban yang lebih besar pada PC yang lambat dan guinea, dan sementara beberapa dari mereka dapat dipinjamkan dari kode, yang lain harus tetap tinggal.

Pathfinding adalah salah satunya, dan itu menjadi sakit kepala terbesar. “Sangat mudah untuk memprogram algoritma pencarian rute yang bekerja dengan sempurna,” kata Sawyer, “tetapi tidak ada gunanya jika menghentikan permainan selama beberapa detik atau menit pada saat ia perlu membuat keputusan.”

Dia menyerang algoritma, mengantarkan banyak pria dan wanita kecil di semak -semak dan menyusuri jalan dekoratif yang salah. . “Jadi saya pikir mungkin benar bahwa para tamu di rollercoaster taipan juga berjuang […] jika tata letak taman dirancang dengan buruk.

. . Dan meskipun Daylight Savings Time Hiccup, Rollercoaster Tycoon kemudian menjadi game PC terlaris tahun 1999.

Untuk sekuelnya, Sawyer ditambahkan ke basis kode asli, mendekati visi utamanya. “Saya masih menyukai permainan itu dan segalanya tentang itu,” katanya kepada Eurogamer pada tahun 2016. Sawyer terus pergi dengan perakitan, menggunakannya hampir secara eksklusif untuk mengkode penggerak Chris Sawyer pada tahun 2004, permainannya yang paling ambisius hingga saat ini dan juga judul desktop utama terakhirnya. Sejak itu ia mundur dari pengembangan game dan melisensikan hak untuk permainan taipan rollercoaster baru ke Atari – upaya yang tidak pernah mendekati keberhasilan dua yang pertama.

Sawyer tidak cocok dengan industri seperti sekarang, meskipun dia menghargai kebangkitan baru -baru ini dalam sims manajemen. Ada sedikit kebutuhan untuk pembuat kode perakitan akhir -akhir ini (seperti yang dia setujui), dan bekerja sebagai serigala yang lebih sulit. “Saya juga merasa saya sekarang membuat semua game yang ingin saya buat,” katanya, termasuk versi ponsel dari permainan klasiknya, “dan mengerjakan desain game orang lain tidak menggairahkan saya.”

.