Skip to main content

Rocket League replay parsing and analysis.

Project description

# carball
Various tools for decompiling / analyzing Rocket League replays.

## Requirements

- Python 3.6+
- Windows, Mac or Linux

## Install

`pip install carball`
`python init.py`

## Examples / Usage

Decompile and analyze a replay:
```Python
import carball

manager = carball.analyze_replay_file('9EB5E5814D73F55B51A1BD9664D4CBF3.replay',
output_path='9EB5E5814D73F55B51A1BD9664D4CBF3.json',
overwrite=True)
proto_game = manager.get_protobuf_data()

```

Just decompile a replay to a JSON object:

```Python
import carball

_json = carball.decompile_replay('9EB5E5814D73F55B51A1BD9664D4CBF3.replay',
output_path='9EB5E5814D73F55B51A1BD9664D4CBF3.json',
overwrite=True)
```

Analyze a JSON game object:
```Python
import carball
import os
import gzip
from carball.json_parser.game import Game
from carball.analysis.analysis_manager import AnalysisManager
# _json is a JSON game object (from decompile_replay)
game = Game()
game.initialize(loaded_json=_json)

analysis = AnalysisManager(game)
analysis.create_analysis()

# write proto out to a file
# read api/*.proto for info on the object properties
with open(os.path.join('output.pts'), 'wb') as fo:
analysis.write_proto_out_to_file(fo)

# write pandas dataframe out as a gzipped numpy array
with gzip.open(os.path.join('output.gzip'), 'wb') as fo:
analysis.write_pandas_out_to_file(fo)
```


## Pipeline
![pipeline is in Parserformat.png](Parser%20format.png)

If you want to add a new stat it is best to do it in the advanced stats section of the pipeline.
You should look at:

[Stat base classes](carball/analysis/stats/stats.py)

[Where you add a new stat](carball/analysis/stats/stats_list.py)

If you want to see the output format of the stats created you can look [here](api)

Compile the proto files by running in this directory
`setup.bat` (Windows) or `setup.sh` (Linux/mac)

[![Build Status](https://travis-ci.org/SaltieRL/carball.svg?branch=master)](https://travis-ci.org/SaltieRL/carball)
[![codecov](https://codecov.io/gh/SaltieRL/carball/branch/master/graph/badge.svg)](https://codecov.io/gh/SaltieRL/carball)


## Tips

Linux set `python3.6` as `python`:
```Python3
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.6 1
```
This assumes you already have 3.6 installed.

Linux Error (Potential):
`PermissionError: [Errno 13] Permission denied: 'carball/rattletrap/rattletrap-6.2.2-linux'`
Fix:
`chmod +x "carball/rattletrap/rattletrap-6.2.2-linux"`

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

carball-0.6.10.tar.gz (14.2 MB view details)

Uploaded Source

File details

Details for the file carball-0.6.10.tar.gz.

File metadata

  • Download URL: carball-0.6.10.tar.gz
  • Upload date:
  • Size: 14.2 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/39.1.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.6.4

File hashes

Hashes for carball-0.6.10.tar.gz
Algorithm Hash digest
SHA256 e83ee733e4e00c6d51fd40876335cdd2c80788eb6420983039a6dc34704a89fe
MD5 b442cb21df607bf8a4e28d82ceff0c68
BLAKE2b-256 b20fb820feafb08c37d29e8c37935958a70267be8ade801d0903d0c45288cb12

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page