GithubHelp home page GithubHelp logo

xentrick / cpprp Goto Github PK

View Code? Open in Web Editor NEW

This project forked from bakkes/cpprp

0.0 0.0 0.0 892 KB

Fast C++ Rocket League replay parser

License: Mozilla Public License 2.0

C++ 99.24% Python 0.64% C 0.03% Makefile 0.07% Batchfile 0.02%

cpprp's Introduction

CPPRP

Rocket League replay parser written in C++. The project has been tested on Ubuntu (only tested 64 bit) and Windows (32 and 64 bit).

CPPRPTest currently contains only internal test things/benchmarking, so probably not very relevant.

CPPRP

The core library is CPPRP, and should be built as a dynamic/static library so it can be included in other projects. From testing, the library should be able to parse all replays up to and including Rocket League v1.66. I've ran tests on a set of 10k replays from between mid 2017 till august 2019. Out of this set, 6 could not be parsed (for unknown reasons). I've also ran some random sampling tests on the (now defunct) RocketLeagueReplays replay dump, and on those there seems to be 99.6% coverage.

CPPRPJSON

Uses CPPRP to parse the replay and then serializes the replaydata to JSON. Currently, it is able to serialize any and all fields, except for some relating to the client's loadout (WIP). Also the code's a mess but it's still a WIP.

Functionality

CPPRPBM is a BakkesMod plugin which will be able to play certain parts of the replay back ingame (unfinished). CPPRPTest contains some tests and is probably not set up to work on other computers at the moment. LoadoutExtractor is a binary which prints out camera settings for all the players in the replay as well as share codes for the loadouts which can be imported in BakkesMod.

Scripts

Since C++ doesn't have reflection, but we still need to generate a lot of code for the parsing/serialization logic, I wrote some preprocessor scripts which outputs code to automatically parse certain classes/properties.

Usage

The CPPRPJSON accepts the following arguments

-i  --input     Path to the input file
-o  --output    Path to write output json to
-ho --header    When passed, will only parse and output the header
    --stdout    Will print the JSON output to the terminal
    --print     Same as --stdout

Some notes: if -i or --input isn't specified, it will take the first loose argument, so you can do CPPRPJSON test.replay if -o or --output is not given, it will automatically print json output to the terminal.

TODO

  • Better organize this readme

cpprp's People

Contributors

bakkes avatar pixelinc avatar kcolton avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.