Phân tích tệp .sc2replay [đã đóng]


8

Làm cách nào để phân tích các tệp phát lại StarCraft 2 ( .sc2replay )? Có API không?

Tôi biết về Sc2gears , nhưng nó không đáp ứng đủ nhu cầu của tôi.


3
Tôi đang bỏ phiếu để đóng câu hỏi này ngoài chủ đề vì nó không phải là về việc phát triển một trò chơi.
Vaillancourt

Câu trả lời:


15

Replay Starcraft 2 được lưu trữ dưới dạng MPQ một định dạng tệp nén được phát triển và sử dụng bởi Blizzard. Ở dưới cùng của trang Wiki, bạn cũng sẽ tìm thấy các liên kết đến trình phân tích cú pháp MPQ.

Có lẽ bạn cũng sẽ muốn xem qua các dự án nguồn mở sau: WARP (trình phân tích cú pháp phát lại Starcraft 2 được viết bằng Java) hoặc phpsc2replay (trình phân tích cú pháp phát lại được viết bằng PHP).

Cập nhật: Hiện tại, có một thư viện Python ngoài đó có thể đọc rất nhiều dữ liệu phát lại: sc2reader . Đây rất có thể là tùy chọn tốt nhất hiện có sẵn (kể từ tháng 3 năm 2013).

Cập nhật 2018: sc2reader hiện được duy trì bởi ggtracker. Dù sao sc2readerbây giờ cũng được lưu trữ trên PyPi, vì vậy có lẽ cách tốt nhất là pip install sc2readertìm nó trên trang pypi của sc2readers


8

Tiết lộ: Tôi là tác giả của Scelight và Sc2gears.


Blizzard đã phát hành một thư viện trình phân tích cú pháp tệp SC2Replay mã nguồn mở chính thức có tên s2protatio được viết bằng python:

https://github.com/Blizzard/s2protatio

Đó là trình phân tích cú pháp phát lại chính thức, đầy đủ nhất, cập nhật nhất. Nó được coi là thực hiện tham khảo . Nó là khá thấp mặc dù.

Có một dự án khác gọi là Scelight (là sự kế thừa của Sc2gears ). Trong Scelight có cài đặt (hộp tổ hợp) : Skill level. Nếu bạn đặt điều này thành Developer(điều này đòi hỏi một nhiệm vụ lập trình nhỏ phải được giải quyết trước tiên để chứng minh các kỹ năng nhà phát triển của bạn để mở khóa), toàn bộ thông tin mới được hiển thị cho các replay mở trong tab Inspector của Trình phân tích phát lại dành cho nhà phát triển chỉ bao gồm cấu trúc bên trong của replay bao gồm mọi bit cuối cùng của nó, trình xem hex và nhiều hơn nữa.

Scelight cũng có một giao diện mở rộng được gọi là API mô-đun bên ngoài có API được ghi chép tốt. API mô-đun bên ngoài cung cấp quyền truy cập vào trình phân tích cú pháp SC2Replay và cả các công cụ và cơ sở dữ liệu nội bộ ở mức độ thấp và mức độ cao. Javadoc của API mô-đun bên ngoài cũng có sẵn trực tuyến tại đây:

https://scelightop.appspot.com/scelight-ext-mod-api/

Biên tập:

Cả Scelight và Sc2gears đều có nguồn mở, bạn có thể thấy chính xác cách họ làm điều đó (cả hai dự án đều tính hơn 100.000 dòng mã):

https://github.com/icza/scelight

https://github.com/icza/sc2gears


2

Tôi đã chơi với phân tích cú pháp các tập tin phát lại SC2 một lúc trước. Bạn có thể xem những gì tôi đã làm và những gì tôi có thể đảo ngược kỹ sư (cũng như một loạt các liên kết đến các trang web hữu ích ở phía dưới):

http://wiki.spectralcoding.com/project:sc2inspector


Một loạt các liên kết ở một nơi là thực sự tốt đẹp.
kirilloid
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.