The data generation components of The Talos Compendium, a text database for The Talos Principle
For the UI and web app component of the project, see ygunayer/talos2
For a more detailed explanation on the project, see the README at ygunayer/talos2/README.md
- Gradle (tested w/ 2.5)
- JDK 8
- An Elastic installation
To compile, test and then build a single JAR file of the project, run the following command:
gradle distZip
This will place a compressed file under build/distributions/talos-decoder.zip
. Unzip this file to a folder of your choice, and then navigate to the bin
folder located inside. There, run the batch file named talos-encoder.bat
or the Bash script named talos-encoder
. The application will need the path to the root folder of the game, and this can be provided in two ways:
When running the app, you can specify the path to a properties file which may contain the following properties:
- game.path: The path to the root folder of the game. No default value. The
game.path
JVM argument overrides this value. - game.locale: The 3-letter code of the language to extract the data in. Default value:
enu
. All possible values are:- chs: Chinese (Simplified)
- cht: Chinese (Traditional)
- deu: German
- enu: English
- esp: Spanish
- fra: French
- hrv: Croatian
- itl: Italian
- jpn: Japanese
- kor: Korean
- plk: Polish
- por: Portugese
- rus: Russian
- elastic.hostname*: The hostname of the Elastic node to connect to. Default value:
localhost
- elastic.port*: The port of the Elastic node to connect to. Default value:
9200
So, an example properties file may go like this:
game.path=D:\Games\Steam\common\The Talos Principle
game.locale=enu
elastic.hostname=localhost
elastic.port=9200
Example
talos-encoder some-props.properties
The game path can also be set by the game.path
JVM argument. If a properties file is specified, the game.path
value exposed by that file will be overridden by this value.
When running the talos-encoder
batch file or Bash script, this argument can be specified by setting the TALOS_ENCODER_OPTS
or JAVA_OPTS
environment variable to a value such as -Dgame.path=<some-path>
.
Example
export TALOS_ENCODER_OPTS=-Dgame.path=/Path/To/Steam/common/The Talos Principle; bash talos-decoder
To send feedback, request a feature or to report an error, please open an issue. To contribute code-wise, feel free to fork the project and send a pull request.
- Not enough tests
- Very little documentation
- Even though the code itself does not contain anything from the game itself, I'm not sure about which license to use, so there's no license yet
- I originally planned to allow users to change the input and output methods, of which the relevant classes are still located in the project, but then I decided to postpone it until later
- Both original and decoded texts as well as the file names and the key they're stored in the game assets as are all indexed in Elastic, but the search only operates on the filename field as a
prefix
search - The encoded text segments are captured blindly, so some texts might have been decoded unnecessarily, incorrectly, or might not even have been decoded at all. To address this issue, the extraction process might be improved, or some manual or pre-defined post processes might be constructed to patch the data in Elastic
- Texts in different languages should be stored in different indices or index types in Elastic