Poodletooth-iLand/doc/building/prepare-client.md

55 lines
3.2 KiB
Markdown
Raw Normal View History

2015-03-03 16:10:12 -06:00
Client Build Preparation
========================
The first step in building a distributable Toontown Infinite client is building ```GameData.bin```. ```GameData.bin``` is an encrypted blob of frozen Python code. It contains all of the code necessary to run the game. There are three steps to building this file:
* **Prepare for building**
* [Build the frozen Python module](build-client.md)
* [Encrypt the frozen Python module](encrypt-client.md)
This document outlines how to accomplish the first task.
- - -
Preparing the client for building is quite simple when using the ```prepare_client.py``` utility. What it does is it creates a build directory with all of the necessary files for running a client. All server-specific files get removed. Next, it removes all ```__debug__``` blocks from the code, as they may pose a security risk, or be highly developer specific. After that, a file called ```game_data.py``` is generated. This file contains the PRC file data, (stripped) DC file, and time zone info. If a ```REVISION``` token was provided in the ```--server-ver``` option, it gets replaced in the PRC file data with the first 7 characters of the GitHub revision. Finally, if ```--build-mfs``` is provided, any phase files that were modified get compiled.
## Usage ##
usage: prepare_client.py [-h] [--distribution DISTRIBUTION]
[--build-dir BUILD_DIR] [--src-dir SRC_DIR]
[--server-ver SERVER_VER] [--build-mfs]
[--resources-dir RESOURCES_DIR] [--include INCLUDE]
[--exclude EXCLUDE]
[modules [modules ...]]
positional arguments:
modules The Toontown Infinite modules to be included in the
build.
optional arguments:
-h, --help show this help message and exit
--distribution DISTRIBUTION
The distribution token.
--build-dir BUILD_DIR
The directory in which to store the build files.
--src-dir SRC_DIR The directory of the Toontown Infinite source code.
--server-ver SERVER_VER
The server version of this build. REVISION tokens will
be replaced with the current Git revision string.
--build-mfs When present, multifiles will be built.
--resources-dir RESOURCES_DIR
The directory of the Toontown Infinite resources.
--include INCLUDE, -i INCLUDE
Explicitly include this file in the build.
--exclude EXCLUDE, -x EXCLUDE
Explicitly exclude this file from the build.
## Example ##
ppython -m prepare_client --distribution devdist --build-dir build --src-dir ..
--server-ver infinite-REVISION --build-mfs
--resources-dir ../resources
--include NonRepeatableRandomSourceUD.py
--include NonRepeatableRandomSourceAI.py
--exclude ServiceStart.py
otp toontown