Sebuah game text adventure yang baru dirilis dan membutuhkan waktu 40 tahun untuk diselesaikan telah memicu diskusi menarik di kalangan developer tentang bug pemrograman aneh yang mengganggu game interactive fiction di masa awal. Komunitas telah berbagi cerita berkesan tentang kesalahan coding yang menciptakan situasi lucu atau merusak game secara tidak sengaja.
Konteks Sejarah:
- Era: Komputasi personal tahun 1980-an
- Platform umum: Atari 800 , Commodore 64 , IBM Jr
- Keterbatasan memori: RAM 64K pada umumnya
- Penyimpanan: Floppy disk dengan kapasitas terbatas
- Bahasa pemrograman: BASIC , kemudian Inform untuk petualangan teks
Masalah Klasik Put Bag in Bag
Salah satu bug paling umum melibatkan logika container yang bermasalah. Developer sering menghadapi masalah ketika pemain mencoba memasukkan objek ke dalam dirinya sendiri atau menciptakan loop containment yang tidak mungkin. Seorang programmer mengingat ketika mengetik put bag in bag hanya untuk melihat tas tersebut benar-benar menghilang dari dunia game. Ini terjadi karena logika game akan memindahkan tas ke dalam dirinya sendiri, menciptakan referensi yang merusak sistem pelacakan objek.
Logika container: Aturan pemrograman yang menentukan bagaimana objek dapat ditempatkan di dalam objek lain dalam sebuah game
Bug Pemrograman Petualangan Teks yang Umum:
- Kesalahan logika kontainer (objek menghilang ketika diletakkan di dalam dirinya sendiri)
- Spawn musuh tak terbatas karena tidak ada pemeriksaan kondisional
- Parser terlalu permisif (memungkinkan aksi yang tidak mungkin seperti memasukkan orang ke dalam inventori)
- Memory overflow dari game yang berkembang melebihi RAM yang tersedia
- Korupsi save ketika file melebihi kapasitas penyimpanan di tengah proses penulisan
Perkalian Musuh yang Tidak Terkendali
Sistem combat juga menghasilkan kegagalan spektakuler. Seorang developer menciptakan musuh yang akan memanggil dua sekutu ketika hampir mati, tetapi lupa menambahkan kondisi yang tepat. Ketika pemain menyerang, musuh yang sekarat akan masing-masing memanggil dua pejuang lagi, yang juga akan diserang dan memanggil bala bantuan mereka sendiri. Ini menciptakan masalah pertumbuhan eksponensial yang dengan cepat membuat seluruh server game berhenti.
Kebingungan Parser dan Aksi yang Tidak Diinginkan
Parser teks yang menginterpretasikan perintah pemain sering memiliki logika yang terlalu luas. Seorang beta tester menemukan bahwa mereka bisa mengetik get Aldwin dan berhasil memasukkan seluruh karakter manusia ke dalam inventori mereka, sama seperti mengambil pedang atau kunci. Sistem objek game memperlakukan semuanya dengan cara yang sama, yang mengarah pada situasi absurd di mana orang menjadi item yang dapat dibawa.
Keterbatasan Memori dan Penyimpanan
Selain bug logika, developer text adventure awal terus-menerus berjuang melawan keterbatasan hardware. Game akan menghabiskan semua RAM yang tersedia atau menjadi terlalu besar untuk floppy disk selama penyimpanan, terkadang merusak satu-satunya salinan ketika penyimpanan kehabisan ruang di tengah proses penulisan. Keterbatasan teknis ini memaksa solusi kreatif dan mengajarkan developer untuk berpikir hati-hati tentang manajemen sumber daya.
Diskusi ini mengungkapkan bagaimana tantangan pemrograman awal ini membantu membentuk praktik coding yang lebih baik. Banyak developer mempelajari konsep fundamental tentang object-oriented programming, struktur data, dan error handling melalui trial and error dengan text adventure mereka. Meskipun membuat frustasi pada saat itu, bug-bug ini menciptakan pengalaman belajar berharga yang mempengaruhi seluruh karir pemrograman.
Referensi: You can now play The Plot of the Phantom, the text adventure game that took me 40 years to finish