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

14

Dari pertanyaan ini , saya punya pertanyaan lain tentang ...
Berapa lama dan jenis kompleksitas apa yang akan terlibat dalam Chris Sawyer menulis sebagian besar taipan rollercoaster di assembler?

Untuk menentukan dan memecah pertanyaan ini, saya tertarik;

  1. Kira-kira berapa banyak jam kerja (tebakan) menurut Anda yang akan membuat Chris harus menulis sendiri game itu? Atau sebagai alternatif, berikan perkiraan persentase rasio jam pengkodean assembler untuk mengatakan, menulis semuanya dalam C / C ++.

  2. Apakah programmer yang mengenal assembler dengan baik menganggap ini sebagai tugas yang terlalu rumit untuk abstraksi bahasa tingkat rendah? Terlepas dari manfaat kinerja, apakah ini hanya kemampuan alami aneh yang dimiliki Chris, atau keahlian yang layak dipelajari sejauh itu? Saya tertarik jika orang berpikir kompleksitas / kinerja layak dipelajari assembler dengan baik (untuk menulis), atau hanya "sepadan" jika Anda memiliki banyak keterampilan yang dikembangkan secara alami dalam assembler (mungkin dari bekerja dengan perangkat keras / driver perangkat keras / elektronik / dll).

Jenis Anonim
sumber
1
Bisakah dia memulainya dengan menuliskannya dalam C, dan kemudian mengubahnya menjadi assembler sesuai kebutuhan untuk kinerja?
Jon Onstott
1
Ha, ha, ha, ini seperti pertanyaan dari seseorang yang telah membaca komentar lama saya.
Mark C

Jawaban:

12

Dari membaca miliknya 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 jangka waktu tidak bagus untuk 'pengembangan tim', saya akan mengasumsikan 24 programmer-bulan lurus.

Pada saat itu ia telah menjadi programmer game profesional yang bekerja di perakitan sejak tahun 1983, jadi saya tidak akan menyamakan "dua tahun Chris" dengan "dua tahun saya" pekerjaan.

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

Jadi dalam hal ini seberapa cepat Rollercoaster Tycoon akan dituliskan jika Chris menggunakan C atau Java atau Javascript atau ...? Mungkin itu tidak akan jadi masalah selain fakta bahwa dia mungkin sedikit lebih lambat menggunakan bahasa tingkat yang lebih tinggi bahwa dia tidak memiliki pengalaman 14 tahun dengan ...

Jay Beavers
sumber
poin bagus, saya agak berpikir itu mungkin terjadi.
Jenis Anonim
4

Jika Anda menganggap C sebagai sedikit lebih dari assembler "tingkat tinggi", dan kami membuat asumsi bahwa Chris tidak membuat optimisasi gila ke kode assembly di setiap rutinitas, maka saya akan membayangkan dalam hal% waktu lebih lama, maka itu mungkin tidak terlalu banyak untuk programmer perakitan yang terampil.

Majelis menjadi rumit ketika Anda melakukan semua optimisasi gila itu (operasi vektorisasi, memanfaatkan set instruksi khusus (SSE, dll) sedikit memutar-mutar, dll) yang tidak bisa Anda lakukan dari C. Jika Anda melakukan hal itu, maka waktu sebenarnya dalam "biola bit ini, assemble, ukur ... biola bit ini, assemble, ukur ..." loop dan tidak dalam coding yang sebenarnya. Dengan assembler makro yang baik dan pemrogram yang terampil, maka menulis perakitan bukanlah hal yang besar langkah untuk menulis kode C.

Tetap saja, aku tidak akan mampu melakukannya! Saya ngeri memikirkan untuk mencoba menginisialisasi DirectX langsung dalam perakitan! ( Sunting: 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 kemudian ... Fiuh!)

Dean Harding
sumber
YEah itu agak aku tidak tahu awalnya. Tapi kemudian saya membaca sedikit tentang menggunakan C untuk DirectX. Terima kasih atas info tentang optimisasi yang sangat menarik.
Jenis Anonim
3

Orang lain yang dikenal karena menulis banyak program Windows dalam assembler adalah Steve Gibson, penulis SpinRite, ShieldsUp! dan utilitas lainnya. Dia membahas kecintaannya pada bahasa majelis di sini .

Randy Hyde (yang dulu saya kenal jauh ketika kami sama-sama menulis 6502 kode perakitan untuk Apple II) memiliki buku online baru yang disebut Windows Programming in Assembly Language . Dia adalah pendukung besar menggunakan macro mewah (termasuk konstruksi perulangan) untuk membuat pemrograman perakitan lebih seperti menggunakan bahasa tingkat tinggi. Sawyer mungkin menggunakan pendekatan serupa untuk menjadi lebih produktif.

tcrosley
sumber