1 poin oleh GN⁺ 2023-09-21 | 1 komentar | Bagikan ke WhatsApp
  • Kisah “Thank you for playing Wing Commander” di Wing Commander I sering diceritakan sebagai kasus penggantian pesan error saat keluar game lewat hex editor, tetapi itu bukan bug yang dibiarkan tetap ada di versi rilis
  • Catatan yang paling dekat dengan sumber asli adalah komentar Ken Demarest pada artikel Gamasutra tahun 2009, Dirty Coding Tricks, yang menceritakan bagaimana ia sempat menutupi error keluar dari EMM386 selama pengembangan
  • Pengujian di DOSBox, pada perangkat keras era tersebut, dan pencarian string di biner menunjukkan bahwa frasa itu tidak muncul saat keluar secara normal, sementara jalur keluar lewat airlock barak memang menampilkan pesan lelucon yang terpisah
  • Dari source code Wing Commander I yang tidak lengkap namun disimpan oleh Electronic Arts, pesan airlock dipastikan sebagai bagian dari kode game yang normal, berbeda dari kasus pengeditan hex pada pengelola memori
  • Ken Demarest menjelaskan bahwa peretasan itu sendiri memang nyata, tetapi dihapus sebelum rilis setelah penyebab error ditemukan, sehingga kisah ini lebih tepat disebut trik rekayasa sementara ketimbang produk rilis yang asal jadi

Asal-usul kisah “Thank you for playing Wing Commander”

  • Kisah yang beredar luas menyebut bahwa pengembang Wing Commander tidak berhasil memperbaiki error pengelola memori EMM386 saat game ditutup, lalu mengganti string error lewat hex editor menjadi “thank you for playing Wing Commander”
  • Selama 10 tahun terakhir, kisah ini menyebar di internet sebagai contoh “peretasan perangkat lunak yang lucu”, dan mulai dipakai sebagai contoh untuk makna “dirty-but-functional hack”
  • Beberapa penggemar Star Citizen bahkan membawa contoh ini dalam konteks kritik terhadap kemampuan Chris Roberts
    • Kaitan yang dipakai adalah bahwa Roberts, tidak seperti CEO lain, masih terus menulis kode juga di Star Citizen
  • Penggemar Wing Commander I mencurigai screenshot yang ikut beredar
    • Jalur instalasi bawaan Wing Commander I bukan c:/wc1
    • Game versi rilis tidak menampilkan “Thank You for Playing Wing Commander!” saat keluar

Komentar Gamasutra tahun 2009 paling dekat dengan sumber asli

  • Setelah melacak asal frasa dan screenshot tersebut, ditemukan komentar pada artikel Gamasutra karya Brandon Sheffield tertanggal 20 Agustus 2009, Dirty Coding Tricks
  • Inti komentarnya adalah sebagai berikut
    • Di Wing Commander 1, saat keluar dari game muncul pengecualian pengelola memori EMM386
    • Jika layar dibersihkan, akan tampil satu baris seperti “EMM386 Memory manager error...”
    • Karena game harus segera dirilis, string error di dalam pengelola memori diedit lewat hex editor menjadi “Thank you for playing Wing Commander”
  • Gamasutra adalah situs yang dulu populer di kalangan pengembang game, dan pada 2021 berganti merek menjadi Game Developer
    • Artikel aslinya masih ada di situs baru, tetapi komentarnya tampaknya hilang dalam proses migrasi
  • Penulis komentar itu adalah Ken Demarest
    • Ken Demarest III bekerja di Origin Systems sebagai software engineer untuk Wing Commander pertama, lalu menjadi lead programmer Ultima VII serta Director of Technology di perusahaan itu
    • Penulis Wing Commander, Jeff George, pernah menilai bahwa selain Chris Roberts, Demarest adalah orang yang paling besar kontribusinya dalam memastikan game itu bisa dirilis

Kesalahpahaman yang dibuat versi Reddit dan screenshot

  • Versi yang menyebar di Reddit /r/shittyprogramming pada 2015 berbeda dari komentar asli tahun 2009 dalam dua hal
    • Komentar asli tidak menyertakan screenshot
    • Frasa pesan keluar sedikit diubah sehingga terlihat seperti punchline yang lebih kuat
  • Versi Reddit tampaknya beredar lewat unggahan LinkedIn pihak ketiga pada 2012
  • Screenshot yang ditambahkan belakangan membuat bug ini tampak seolah masuk ke versi rilis, padahal komentar aslinya tidak pernah membuat klaim itu
  • Karena itu, meskipun sumber kisah aslinya terdengar masuk akal, klaim bahwa ini adalah “error yang tersisa di versi rilis” tetap perlu diverifikasi secara terpisah

Hasil verifikasi pada Wing Commander I versi rilis

  • Wing Commander I tidak menampilkan “thank you for playing Wing Commander” saat keluar secara normal
    • Diuji di DOSBox dan pada perangkat keras era tersebut
    • Seluruh biner game ditelusuri untuk string itu, tetapi tidak ditemukan
    • Menekan ALT-X hanya mengembalikan pemain ke prompt DOS
  • Sebagai pengecualian, jika pemain menekan pintu airlock di barak Tiger’s Claw untuk keluar, alur yang berbeda akan dijalankan
    • Muncul prompt konfirmasi y/n
    • Game kembali ke DOS sambil menampilkan pesan “You step out of the airlock and into…”
    • Frasa ini adalah lelucon yang terhubung langsung dengan cara keluar tersebut
  • Pesan airlock ini memang benar-benar ada di biner game
  • Ken Demarest juga terhubung dengan layar barak tersebut
    • Ia dikenal sebagai orang yang membuat efek tetesan air yang jatuh ke ember
    • Efek ini sering dikutip sebagai contoh pengejaran imersi ala Chris Roberts

Source code dan jawaban Ken Demarest

  • Source code Wing Commander I yang tidak lengkap namun disimpan oleh Electronic Arts dipakai untuk verifikasi
    • File-file source ini digunakan untuk build rilis Wing Commander I, lalu kemudian juga diberikan ke tim pengembang port FM Towns
    • Sebagian materi, termasuk rutinitas pengelolaan memori, sudah tidak tersisa
  • Meski hanya dengan kode yang masih ada, asal-usul pesan airlock tetap bisa dipastikan
    • BARRACKS.C mengatur fungsi layar alur permainan di barak
    • Game melepas memori, lalu mencetak pesan airlock dan baris baru
    • Ini cocok dengan hasil eksekusi nyata, dan bukan kasus pengeditan hex pada pengelola memori
  • Jalur keluar lain berada di COCKPIT.C dan tidak menampilkan pesan apa pun
  • Darren Xczek mengajukan kemungkinan bahwa kebingungan ini terkait Ultima VII
    • Ultima VII memang menampilkan pesan “thank you for playing Ultima VII” saat kembali ke DOS
    • Ken Demarest adalah lead programmer Ultima VII
    • Ultima VII terkenal dengan masalah pengelolaan memori, sampai-sampai nama sistem internalnya adalah “Voodoo Memory Manager”
  • Setelah dikonfirmasi langsung kepada Ken Demarest, peretasan lewat hex editor itu dipastikan memang benar terjadi selama pengembangan
    • Ia menjawab bahwa ia bahkan sempat ingin merilis game dengan peretasan itu tetap ada, tetapi setelah menemukan penyebab error, ia merasa secara moral tidak bisa membiarkannya tetap tinggal
    • Ia juga mengatakan bahwa proses pengeditan manual membuat waktu penyelesaian build menjadi lebih lama dan tidak efisien
  • Pada akhirnya, kisah ini adalah trik sementara selama pengembangan, dan tidak tersisa di versi rilis
    • Ini bukan bukti bahwa produk yang dijual dibuat secara asal, melainkan lebih dekat pada peretasan pengembangan sementara yang dihapus sebelum rilis

1 komentar

 
GN⁺ 2023-09-21
Pendapat Hacker News
  • Ini mengingatkan pada hack yang dimasukkan Traveller's Tales di Sonic 3D Blast untuk Sega Genesis/Megadrive
    Jika kartrid digoyang atau dipukul cukup keras saat konsol masih menyala, layar "secret level select" akan muncul. Lama dianggap sebagai easter egg, tetapi sebenarnya itu adalah custom crash handler yang mencegat interrupt error CPU utama dan mengarahkannya ke layar pemilihan level
    Itu dibuat untuk menghindari build ditolak oleh QA Sega dan rilis tertunda; karena QA memakan waktu beberapa minggu, satu crash saja berarti harus mulai lagi dari awal. Menggoyang kartrid membuat kontak terputus sesaat sehingga prosesor mengalami error
    Sumber, video YouTube 3 menit: https://www.youtube.com/watch?v=ZZs2HUW9tDA
    Kanal YouTube "Coding Secrets" yang ditautkan punya lebih banyak video tentang hack serupa, dan hal-hal yang dilakukan para developer saat itu agar game tetap berjalan di tengah keterbatasan hardware dan bisnis benar-benar luar biasa

    • Menarik bahwa bahkan pada masa struktur game jauh lebih sederhana daripada sekarang, QA adalah prosedur yang memakan waktu berminggu-minggu
      Sekarang kadang terlihat seolah penerbit atau produsen konsol game AAA bahkan melewatkan QA beberapa menit sekalipun
    • Video-video ini terasa menyegarkan karena singkat. Rasanya semua kanal YouTube yang saya subscribe sekarang membuat video berdurasi 45 menit
  • Dalam hal seperti ini, bisa sampai ke sumber primer terasa seperti kekuatan magis
    Terutama jika ada perbedaan usia atau jarak geografis seperti saya, kadang rasanya hampir mustahil
    Saya tumbuh besar di Swedia pada tahun 80-an dan waktu itu pun sudah sangat tergila-gila pada komputer. Saya memakai Commodore 128 lalu beralih ke Amiga; saya banyak bermain game dalam mode C64, dan tentu saja "Uridium" [1] dan "Paradroid" [2] nyaris seperti judul wajib yang diketahui semua orang
    Namun masih terasa aneh bahwa developernya, Andrew Braybrook, ada di feed Xitter saya [3], dan sampai sekarang masih mengembangkan game. Saat itu ia terasa seperti penyihir jauh yang tinggal di Inggris dan lebih dari 10 tahun lebih tua dari saya, tetapi sekarang setidaknya secara profesional saya merasa ia semacam rekan sejawat
    Hal seperti ini mungkin sudah ada sebelum internet, tetapi tampaknya jauh lebih sulit dan jarang
    [1]: https://en.wikipedia.org/wiki/Uridium
    [2]: https://en.wikipedia.org/wiki/Paradroid
    [3]: https://twitter.com/UridiumAuthor

  • Senang sekali ada situs berita Wing Commander yang masih terus diperbarui bahkan pada 2023

  • Saya pernah mendengar cerita tentang developer yang mengaudit kode misil. Ia cepat menunjukkan bahwa ada memory leak di mana-mana, tetapi ternyata itu desain yang disengaja, semacam misil melakukan garbage collection sendiri di akhir penerbangan
    Katanya masalah kehabisan memori ditangani dengan mengalokasikan perkiraan penggunaan memori selama penerbangan misil menjadi dua kali lipat

    • "Memori misil habis, beralih ke senjata api"
    • Jujur saja sulit dipercaya
  • Di thread Reddit yang ditautkan ada komentar seperti ini:

    Saya ingat pertama kali menjalankan Wing Commander I dan memainkannya berjam-jam... Setelah sesi panjang itu selesai lalu keluar, saya membaca kalimat itu dan berpikir, "wah, ramah sekali"
    Sekarang setelah tahu kebenarannya, saya jadi bertanya-tanya apakah itu bohong atau hanya ingatan yang keliru

    • Mungkin itu efek Mandela. Saya juga ingat pesan yang ternyata sebenarnya tidak ada itu
      Saya juga banyak memainkan Ultima VII, jadi seperti yang dikatakan artikel, mungkin ingatannya saling bercampur
    • Saya bisa mengecek apakah floppy saya masih berfungsi, lalu melihat apakah berbeda dari versi GOG/Kilrathi Saga. Tapi kemungkinan besar tidak bisa
    • Jelas itu ingatan yang keliru. Ingatan terkenal sangat tidak dapat diandalkan, dan jauh lebih labil daripada yang kita kira
      Pesan keluar semacam ini dulu tidak jarang, dan membaca cerita itu saja sudah cukup untuk menciptakan ingatan palsu atau ingatan yang tercampur
    • Kemungkinan besar ia memakai rilis yang jauh lebih baru. Versi yang paling mudah ditemukan online adalah versi yang keluar jauh belakangan
  • Cerita ini pada akhirnya terbukti tidak benar, tetapi saya ingat pernah menginstal launcher game multiplayer Half-Life 1 pada 1999/2000
    Saat menekan "install", sebuah dialog muncul kira-kira berbunyi, "Jangan khawatir jika installer mengatakan instalasi gagal. Program sudah terinstal dengan benar"
    Saya bahkan mengambil screenshot dan menyimpannya selama beberapa tahun. Mungkin sudah hilang, atau ada di suatu komputer lama di rumah orang tua saya, tetapi saya berani bersumpah itu nyata
    Pesan error memang benar-benar muncul, dan programnya memang terinstal dengan benar
    Saya pernah menceritakan ini di Twitter, lalu seseorang menjawab bahwa itu masalah yang dikenal, dan kalau ingatan saya benar, ada kaitannya dengan pembaruan registry Windows 97

    • Jika menghapus Sierra Utilities yang disertakan di Half-Life 1, ia akan menghapus direktori satu tingkat di atas lokasi instalasinya
      Biasanya seluruh Program Files ikut terhapus
    • Windows 97
      Sepertinya kita sudah menemukan masalahnya

  • Aneh, karena saya merasa cukup yakin pernah melihat pesan "Thank you for playing Wing Commander!" saat kecil. Hanya saya?

    • Pesan "thank you for playing" itu sepertinya memang ada di Wing Commander 2
    • Saya juga merasa sangat familiar saat pertama membacanya
      Jika dipikir lagi, saya memang banyak memainkan game DOS, jadi mungkin tercampur. Menampilkan sesuatu saat keluar tidak terlalu jarang
    • Saya juga jelas ingat pernah melihat kalimat terima kasih itu. Tentu saja efek Mandela langsung terlintas, tetapi ingatannya begitu jelas sampai merinding
  • Cerita yang menyebar lalu sedikit demi sedikit terdistorsi bisa sangat menjengkelkan. Dalam kasus ini memang tidak berbahaya

  • Saya cukup yakin pesan ini ada di Wing Commander 2, bukan di game aslinya