Set up a project | 2 - Upload your game

To upload your game assembly and use it to create a containerized game image, complete the following steps.

Step 1: Create an API key

Create an API key in the zeuz control panel (ZCP) and make a note of it.

WARNING: Create a new API key, even if there is one shown
If you have previously set up a project in zeuz, you will see an API key on this page already. Do not reuse the existing API key. Make sure that you create a new API key for this project.

To create an API key:

  1. In the ZCP, click your login name (or the three dots, if they appear instead) at the top right to open the drop-down menu, then click API Keys. This takes you to the API Keys page.

  2. Click CREATE.

  3. Enter an API key title using alpha-numeric characters. The API key title is your choice.

  4. Enter an API key password using alpha-numeric or special characters. The API key password is your choice and can be different to your account password.

    We recommend using different passwords for security reasons.

  5. Click SAVE.

TIP
Use a meaningful API key title so you can locate it when you have several API keys.

Step 2: Locate the project ID and environment ID

Locate the zeuz PROJECT ID and zeuz ENVIRONMENT ID on the zeuz control panel’s left pane.
Make a note of them, ready to use them with zeuz tool.

Step 3: Locate and prepare zeuz tool

  1. On your local development machine, locate zeuz tool:

    • Windows: bin/windows_amd64/zeuztool.exe
    • MacOS: bin/darwin_amd64/zeuztool
    • Linux: bin/linux_arm64/zeuztool or bin_linux_amd64/zeuztool
  2. If you are using macOS or Linux, make sure the zeuz tool file is an executable file.

Info: How do I make sure it’s an executable file?
  • Windows: zeuz tool is already executable, no action required.
  • macOS: See support.apple.com
  • Linux: In a terminal window, enter sudo chmod +x /path/to/zeuztool (replacing path/to with the correct path to the file).

Troubleshooting
  • (macOS only) my computer says this application is from an unidentified developer.

    Allow the application (file) to run. See support.apple.com

Step 4: Authenticate

Use zeuz tool to authenticate yourself.

To do this, use the auth_login command with your API key and the API key password. For example:

  • Windows:

    zeuztool.exe auth_login login="your_API_key" password="your_API_key_password" isapi=true endpoint="https://zcp.zeuz.io/api/v1"

  • macOS and Linux:

    ./zeuztool auth_login login="your_API_key" password="your_API_key_password" isapi=true endpoint="https://zcp.zeuz.io/api/v1"

Replace your_API_key and your_API_key_password with your project’s API key and password.

Troubleshooting
  • Getting a 400 error

    You might be using directional (curly) quotes. Replace them with non-directional (straight) quotes ( " ) (ASCII 34).

    You might have special characters (not alpha-numeric) in your API key password. Put an escape ( \ ) (backslash) before any special characters.

  • (macOS only) My computer says this application is from an unidentified developer.

    Allow the application (file) to run. See: support.apple.com

Success

You know it’s worked correctly when you see the following output in your terminal window (where xxxhashxxx is a hash string):

Zeuz Tool development version login: https://zcp.zeuz.io/api/x xxxhashxxx
Login Session: xxxhashxxx
Load LocalConfig: /Users/l<yourusername>/Library/ApplicationSupport/zeuz.io/zeuzcmd.json

Step 5: Upload (push)

Use zeuz tool to upload your project’s game assembly with the push command. Note that your project’s game assembly must be a directory.

In a terminal window, from the directory containing zeuz tool, run the following:

  • Windows:

    zeuztool.exe push proj="your_zeuz_PROJECT_ID" env="your_zeuz_ENVIRONMENT_ID" directory="path/to/your_project"

  • MacOS and Linux:

    ./zeuztool push proj="your_zeuz_PROJECT_ID_hash" env="your_zeuz_ENVIRONMENT_ID_hash" directory="path/to/your_project"

Replace your_zeuz_PROJECT_ID and your_zeuz_ENVIRONMENT_ID with the IDs you located on the zeuz control panel’s left panel.

Replace path/to/your_project with the relevant path to your project. Keep the double quotes (") around it.

Use non-directional (straight) quotes ( " ) (ASCII 34) with this command. Do not use directional (curly) double quotes.

Notes:

  • This might take a little time to upload, depending on your game assembly size and your internet access speed.
  • zeuz tool might output some text. It compares the hash of each file with its database of file hashes representing files already uploaded. It then uploads each file that isn’t already present in the database.
Troubleshooting
  • Getting an error?

    Make sure you specify the directory get_started_test_project and not the executable file inside it, server.sh.

    If you have renamed the get_started_test_project directory, you might have spaces in the new name. If so, make sure you’ve put non-directional (straight) quotes ( " ) (ASCII 34) around the directory name. For example: "test project".

    Make sure you have no trailing spaces in the command (spaces or line returns).

Success

You know it’s worked correctly when you see output in your terminal window similar to the example below, listing all the project files in your game image (where xxxhashxxx is a hash string):

Finished uploading my_project_file.* (xxxhashxxx)

Step 6: Create a containerized game image (push_publish)

Use zeuz tool with the push_publish command to create a containerized game image of the game assembly that you uploaded in the previous step.

Instances of the containerized game image that zeuz creates from your game assembly are your game’s payload.

In a terminal window, from the directory containing zeuz tool, run:

  • Windows:

    zeuztool.exe push_publish description="your-project-description" version="x.x.x"

  • MacOS and Linux:

    ./zeuztool push_publish description="your-project-description" version="x.x.x"

You can enter any alpha-numeric characters for the description and any numbers for the version. We recommend using semantic versioning (see semver.org for guidance).

Notes:

  • You don’t need to re-enter your proj and env IDs from the previous step. zeuz tool appends them automatically in your subsequent commands.

  • Depending on the size of your game, this may take some time. You know it’s working if it’s outputting strings like the example below to your terminal window:

    YYYY/MM/DD HH:MM:SS State: running

Troubleshooting
  • Getting an error

    Make sure you have no trailing spaces in the command.

Success

You know it’s worked correctly when you see the following output in your terminal window (where xxxhashxxx is a hash string):

YYYY/MM/DD HH:MM:SS Image published: xxxhashxxx


Now go to 3 - Create and configure allocations.


2021-jun-30 Page updated: updated url for ZCP

2021-may-05 Page updated with editorial review: clarified and updated terms

2021-mar-10 Page updated with editorial review: updated command syntax

2021-feb-05 Page created with editorial review


Last edited on: October 18, 2021 (66851b24)