Git Product home page Git Product logo

protongraph-environment's Introduction

Custom engine builds for ProtonGraph

This is a dev repository. If you are simply looking for the latest releases of ProtonGraph, you can find them at this address: https://github.com/protongraph/protongraph

If you're trying to build the application yourself, keep reading.

ProtonGraph is a "Godot game" as it was made using this engine. It is built on Godot 3.2.3 (at least) with a custom module that handle gltf import and export. This means the export templates need to be recompiled as well.

This won't be necessary once we move to Godot 4.0 but until this next version is stable, we'll remain on 3.2.x.

Automated builds

The goal of this repository is to compile the custom engine and all the export templates automatically for all three platforms (Linux, Windows and MacOS). This is done through Github Actions and the binaries are then stored in their own release. The ProtonGraph CI can fetch these binaries and use them to export the project to all three platforms.

If you're developping new features for ProtonGraph and can't build the engine, you can download the binaries directly from here.

Building manually

Install dependencies

Refer to this page depending on which OS you're using https://docs.godotengine.org/en/stable/development/compiling/index.html

Get all the repositories

  • Clone ProtonGraph
    • The master branch is usually the latest stable release
    • develop is the bleeding edge, untested version
git clone --recurse-submodules https://github.com/protongraph/protongraph
  • Clone the engine repository and make sure you're on the 3.2 branch
git clone --branch 3.2 https://github.com/godotengine/godot
  • Go in the module folders and clone the extra modules
  • The gltf module default to the 4.0 branch but we want the master one
cd godot/modules
git clone --branch master https://github.com/godot-extended-libraries/gltf

Compile the engine

  • Go back to the godot folder and launch this command.
    • Replace x11 by your desired platform x11 | windows | osx
    • Feel free to increase the thread count if your CPU can handle it.
scons -j8 platform=x11
  • Note about binaries size:
    • Everytime you compile something with scons, you can chose to omit the debug symbols with the option debug_symbols=no. This creates significantly smaller binaries, at the expense of having a completely useless stack trace if something crashes.

Compile the export templates

  • Still in the godot folder, launch the following commands
    • Replace x11 by your desired platform x11 | windows | osx
    • Replace bits=64 by bits=32 if you're targetting an older 32bit hardware.
scons platform=x11 tools=no target=release_debug bits=64
scons platform=x11 tools=no target=release bits=64

Compile the GDNative libraries

  • In ProtonGraph repository folder
cd src/native

# edit the following command to use the proper platform
./compile_all.sh linux release

Export the project

Using the command line

  • Make sure the export preset contains the path to the export templates, relative to the project directory.
  • Call this command with the proper parameters:
    • godot.x11.tools.64 is the editor binary. Replace with the one matching your platform.
    • -export "linux" linux is the name of the preset. Pick one among linux, osx and windows. They're defined in export_preset.cfg.
    • build/ProtonGraph is the name of the exported binary. Make sure the destination folder exists before running the command.
./godot.tools.64 --path path/to/project --export "linux" "build/ProtonGraph"

Using the GUI

  • Start your custom engine binary (located in godot/bin)
  • Open the ProtonGraph project
  • Click Project > Export
  • Select the preset matching your target platform
  • Select an export path. This is where the final executable will be created

image

  • Assign the two export templates in the bottom right of the Options tab
    • Export templates are also located in godot/bin
  • Click on Export Project

protongraph-environment's People

Contributors

hungryproton 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.