Bagaimana cara mengurai file replay StarCraft 2 ( .sc2replay )? Apakah ada API?
Saya tahu Sc2gears , tetapi tidak cukup memenuhi kebutuhan saya.
Bagaimana cara mengurai file replay StarCraft 2 ( .sc2replay )? Apakah ada API?
Saya tahu Sc2gears , tetapi tidak cukup memenuhi kebutuhan saya.
Jawaban:
Replay Starcraft 2 disimpan sebagai MPQ format file terkompresi yang dikembangkan dan digunakan oleh Blizzard. Di bagian bawah halaman Wiki Anda juga akan menemukan tautan ke parser MPQ.
Mungkin Anda juga ingin melihat proyek open-source berikut: WARP (parser replay Starcraft 2 yang ditulis dalam Java) atau phpsc2replay (parser replay yang ditulis dalam PHP).
Pembaruan: Sampai sekarang, ada juga perpustakaan Python di luar sana yang dapat membaca banyak data replay: sc2reader . Ini kemungkinan besar merupakan opsi terbaik yang saat ini tersedia (per Maret 2013).
Pembaruan 2018: sc2reader sekarang dikelola oleh
ggtracker
. Pokoknya disc2reader
-host sekarang di PyPi jadi mungkin cara terbaik adalahpip install sc2reader
dan menemukannya di halaman sc2readers pypisumber
Pengungkapan: Saya penulis Scelight dan Sc2gears.
Blizzard merilis perpustakaan parser file sumber terbuka SC2Replay resmi yang disebut s2protocol yang ditulis dengan python:
https://github.com/Blizzard/s2protocol
Itu adalah parser ulangan resmi yang paling lengkap, mutakhir. Itu dianggap implementasi referensi . Levelnya cukup rendah.
Ada proyek lain yang disebut Scelight (yang merupakan penerus Sc2gears ). Dalam Scelight ada pengaturan (combobox):
Skill level
. Jika Anda mengatur ini menjadiDeveloper
(ini membutuhkan tugas pemrograman kecil yang harus diselesaikan terlebih dahulu untuk membuktikan keterampilan pengembang Anda untuk membukanya), sejumlah besar informasi baru ditampilkan untuk replay yang dibuka di Inspektur tab Penganalisis Putar Ulang yang ditujukan untuk pengembang hanya termasuk struktur internal replay termasuk setiap bit terakhirnya, hex viewer dan banyak lagi.Scelight juga memiliki antarmuka ekstensi yang disebut External Module API yang memiliki API yang terdokumentasi dengan baik. API Modul Eksternal menyediakan akses ke parser SC2Replay dan juga datastruktur dan alat internal replay tingkat rendah dan tinggi. Javadoc API Modul Eksternal juga tersedia online di sini:
https://scelightop.appspot.com/scelight-ext-mod-api/
Edit:
Baik Scelight dan Sc2gears telah bersumber terbuka, Anda dapat melihat dengan tepat bagaimana mereka melakukannya (kedua proyek menghitung lebih dari 100.000 baris kode):
https://github.com/icza/scelight
https://github.com/icza/sc2gears
sumber
Saya bermain dengan parsing file replay SC2 beberapa waktu lalu. Anda dapat melihat apa yang telah saya lakukan dan apa yang dapat saya lakukan untuk merekayasa balik (serta banyak tautan ke situs bermanfaat di bagian bawah):
http://wiki.spectralcoding.com/project:sc2inspector
sumber