Parsing file .sc2replay [ditutup]

8

Bagaimana cara mengurai file replay StarCraft 2 ( .sc2replay )? Apakah ada API?

Saya tahu Sc2gears , tetapi tidak cukup memenuhi kebutuhan saya.

Gpx
sumber
3
Saya memilih untuk menutup pertanyaan ini sebagai di luar topik karena ini bukan tentang mengembangkan permainan.
Vaillancourt

Jawaban:

15

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 di sc2reader-host sekarang di PyPi jadi mungkin cara terbaik adalah pip install sc2readerdan menemukannya di halaman sc2readers pypi

bummzack
sumber
8

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 menjadi Developer(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

icza
sumber
2

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

Caesar Kabalan
sumber
Banyak tautan di satu tempat sangat bagus.
Kirilloid