Devilution: Diablo proyek rekayasa terbalik

gambar

Seperti yang telah ditunjukkan tahun-tahun sebelumnya, kita praktis tidak memiliki kesempatan untuk melihat kode sumber asli - atau setidaknya sebuah remake - dari bagian pertama Diablo (acara The Darkening of Tristram di Diablo III untuk menghormati peringatan 20 tahun rilis bagian pertama, tentu saja, bagus, tapi masih sedikit bukan yang diharapkan penggemar). Dan biarkan pembaruan terakhir untuk permainan keluar pada tahun 2001, dan Blizzard sendiri telah lama berhenti mendukung dan menjualnya - memori itu masih hidup di hati kita. Yang sekali lagi dikonfirmasi oleh GalaXyHaXz tertentu, yang memutuskan untuk merekayasa balik permainan.

Kode sumber tersedia di Github . Proyek Devilution, yang penulisnya GalaXyHaXz dijuluki "Diablo Devolution," membutuhkan lebih dari 1.200 jam - 4 bulan kerja. Juga, jangan lewatkan komentar tebal penulis yang menjelaskan kode sumber permainan, dan terletak di repositori lain . Kode itu sendiri tampaknya tidak penting sejauh ini, tetapi akan terus ditertibkan saat pekerjaan berlanjut pada modul-modul lain dari gim.

Gagasan rekayasa balik proyek besar seperti itu pada mulanya tampak tugas yang fantastis, jika bukan karena kecelakaan yang beruntung - atau, dengan kata lain, pengawasan kecil yang terjadi 20 tahun lalu.

Pada tahun 1998, Blizzard memberikan kode sumber Diablo ke dua studio: Synergestic Software, yang mengembangkan add-on Hellfire, dan Climax Studios, yang bekerja pada port untuk Playstation. Ini bukan pertama kalinya departemen QA Sony di Jepang β€œsenang” dengan bocorannya , mereka juga membedakan diri mereka kali ini - dalam port versi Jepang, file simbol secara tidak sengaja dilupakan, termasuk fungsi, data, tipe, dan banyak lagi. Ini memungkinkan kami untuk mengembalikan fungsi asli, variabel global, struktur data, dan banyak lagi. Versi beta port untuk Playstation juga bocor, dan berisi file serupa lainnya, yang sangat menyederhanakan tugas.

Sebagai tambahan, build debug versi PC game selalu terletak langsung di disk game Anda, tersembunyi di arsip DIABDAT.MPQ -> D1221A.MPQ -> DIABLO.EXE. Build berisi alat debugging yang tidak tersedia dalam versi rilis, serta sejumlah besar pernyataan garis, berkat yang memungkinkan untuk membuat kembali nama file, fungsi - bahkan nomor baris kode sedekat mungkin dengan aslinya.

Pengembangan Diablo dimulai sekitar waktu Windows 95 keluar. Dengan demikian, permainan dioptimalkan untuk itu. Untuk mengkompilasi game, Microsoft Visual C ++ 4.20 digunakan, yang dalam tambalan berikutnya diperbarui ke versi 5.10 . Untuk mereproduksi kode asli secara akurat, proyek mempertahankan kompatibilitas dengan versi kompiler ini, namun Makefile tersedia untuk kompiler modern. Binari yang dapat dieksekusi yang dihasilkan dari kompilasi, menurut laporan, dijalankan pada Windows 7, Linux-WINE dan Windows 10.

Ini adalah fakta yang terkenal bahwa gim ini berubah secara serius di seluruh proyek, dan banyak ide yang dikeluarkan tepat sebelum rilis - dan multiplayer ditambahkan dengan tergesa-gesa.


Banyak pencipta modifikasi untuk gim (misalnya, penulis The Hell mod) telah melangkah cukup jauh dalam penelitian mereka pada penelitian kode, termasuk melalui penerapan memori proses; Namun, mereka tidak mempublikasikan hasil pekerjaan mereka, dan banyak dari mod ini ditinggalkan di tengah jalan. Jika Devilution dapat dibawa ke tingkat kesiapan tertentu, masalah yang sama dapat dihindari - ditambah belajar sesuatu yang baru tentang permainan itu sendiri.

Saat ini, reverse-engineering Diablo.exe. Masih ada beberapa perpustakaan untuk ditangani: Battle.snp (outdated Battle.Net protocol), DiabloUI.dll (kode menu utama untuk game, seluruhnya berbasis Windows dan ditulis dengan buruk), Standard.snp (kode multipemain lokal, ketinggalan jaman, mirip dengan yang digunakan di Starcraft) dan beberapa modul lainnya.

Secara teoritis, dalam waktu dekat (setelah membalik DiabloUI.dll ), permainan dapat menjadi lintas platform - kecuali, tentu saja, Blizzard bergegas untuk menutup toko sebelum penulis dapat menarik cukup banyak penggemar untuk menyelesaikan masalah ini.

PS Dan untuk Diablo II, semuanya tidak begitu jelas: permainan terus dijual dan didukung oleh Blizzard, basis kodenya sekitar 8 kali lebih besar dari aslinya, dan ada desas-desus bahwa remaster resmi hanya ada di tikungan - jadi pembalikan penuh rekayasa di masa mendatang tidak harus menunggu.

Source: https://habr.com/ru/post/id414577/


All Articles