2019-11-22 17:29:10 +01:00
# Broken Seals
A 3D third person RPG. With both multiplayer, and singleplayer capabilities.
The main gameplay-loop goal is to create an experience with enough complexity and depth, that can rival the more old-school MMO- and action rpgs, because nowadays I feel like that is something that got lost.
2020-06-10 17:15:05 +02:00
I want the game to run on every platform, but the game design is PC first. From the testing I've done this is not going to be an issue.
2020-06-10 17:21:15 +02:00
### In order to open the game project in Godot, you need a custom built Godot editor! [See here.](#editing-the-game)
2020-06-10 17:15:05 +02:00
Screenshot:
![Broken Seals ](pictures/screen.jpg )
2019-11-22 17:29:10 +01:00
## Editing the game
2020-06-10 17:15:05 +02:00
In order for you to open the game in the editor you will need a custom built version, with a few engine modules built in,
2020-06-10 12:21:50 +02:00
and unfortunately for now, you will need to build it yourself. (Binary releases will be available eventually!)
2019-11-22 17:29:10 +01:00
2020-06-10 17:21:15 +02:00
But don't worry, Godot is surpisingly easy and hassle free to compile! [See here. ](#compiling )
2019-11-24 01:05:25 +01:00
2020-06-10 17:15:05 +02:00
After you have the engine with the required modules, you can go ahead, and just open the project inside the `game` folder.
2019-11-22 17:29:10 +01:00
2020-06-10 12:21:50 +02:00
Usually after the initial import it will need a restart, however everything should work after that.
2019-11-22 17:29:10 +01:00
2020-06-10 12:21:50 +02:00
## The required engine modules
2019-11-22 17:29:10 +01:00
2020-06-10 17:15:05 +02:00
These are the required engine modules, they are listed here for completeness`s sake, the project's setup script will install these for you automatically! See the [Compiling ](#compiling ) section.
https://github.com/Relintai/world_generator.git \
https://github.com/Relintai/entity_spell_system.git \
https://github.com/Relintai/ui_extensions.git \
https://github.com/Relintai/voxelman.git \
https://github.com/Relintai/texture_packer.git \
https://github.com/Relintai/godot_fastnoise.git \
https://github.com/Relintai/mesh_data_resource.git \
https://github.com/Relintai/procedural_animations.git \
https://github.com/Relintai/props.git \
https://github.com/Relintai/mesh_utils.git \
https://github.com/Relintai/broken_seals_module.git \
2020-06-10 17:22:54 +02:00
https://github.com/Relintai/thread_pool.git
2019-11-22 17:29:10 +01:00
## Compiling
2020-06-10 17:15:05 +02:00
First make sure, that you have everything installed to be able to compile the engine. See: See the [official docs for compiling Godot ](https://docs.godotengine.org/en/latest/development/compiling/index.html ) for more info.
2020-06-10 10:44:18 +02:00
Now let's clone this repository:
``` git clone https://github.com/Relintai/broken_seals ```
cd into the new folder:
``` cd broken_seals ```
Now let's run the project's setup script, by calling scons without arguments.
2019-11-24 01:05:25 +01:00
``` scons ```
2019-11-22 17:29:10 +01:00
2020-06-10 17:15:05 +02:00
This will clone and setup the engine, and all of the required modules into a new `engine` folder inside the project, using http.
2019-11-22 17:29:10 +01:00
2020-06-10 10:44:18 +02:00
(If you want to use the github's ssh links append `repository_type=ssh` like ``` scons repository_type=ssh ```)
2019-11-22 17:29:10 +01:00
2020-06-10 10:44:18 +02:00
Once it is done you can compile the engine, either by going into the engine folder and following the
2020-06-10 17:15:05 +02:00
[official docs ](https://docs.godotengine.org/en/latest/development/compiling/index.html ), or by using [build words ](#build-words ) without changing directories.
2019-11-22 17:29:10 +01:00
2020-06-10 17:15:05 +02:00
Once the build finishes you can find the editor executable inside the `./engine/bin/` folder, but you can also run it using the provided `editor.sh` ,
2020-06-10 10:44:18 +02:00
or `editor.bat` (These will create a copy, so you can compile while the editor is running).
2019-11-22 17:29:10 +01:00
2020-06-10 10:44:18 +02:00
### Build words
2020-06-10 17:15:05 +02:00
The project's setup script contains support for "build words". These can be used from the root of this project.
2020-06-10 10:44:18 +02:00
For example to build the editor for windows with 4 threads you can use:
``` scons bew -j4 ```
The first argument must start with b (build), then it needs to be followed by a few abbreviations (the order does not matters)
The rest of the arguments will be passed directly to godot's scons script.
#### Editor
2020-06-10 17:15:05 +02:00
Append `e` to build with `tools=yes` a.k.a. the editor.
2020-06-10 10:44:18 +02:00
``` scons bew -j4 ```
if you omit `e` , the system will build the export template for you. For example:
2019-11-22 17:29:10 +01:00
2020-06-10 10:44:18 +02:00
``` scons bw -j4 ```
2019-11-24 16:33:11 +01:00
2020-06-10 10:44:18 +02:00
This will be the `release_debug` windows export template.
2019-11-24 16:33:11 +01:00
2020-06-10 10:44:18 +02:00
#### Platform abbreviations
2019-11-24 16:33:11 +01:00
2020-06-10 17:27:57 +02:00
`l` : linux \
`w` : windows \
`a` : android \
`j` : Javascript \
`i` : iphone (Not yet finished, use `build_ios.sh` , and `build_ios_release.sh` ) \
2020-06-10 10:44:18 +02:00
Mac OSX: Not yet finished, use `build_osx.sh`
2019-11-24 16:33:11 +01:00
2020-06-10 10:44:18 +02:00
#### Target abbreviations
2020-06-10 18:24:31 +02:00
By default the system builds in release_debug.
2020-06-10 10:44:18 +02:00
2020-06-10 17:15:05 +02:00
Append `d` for debug, or `r` for release.
2020-06-10 10:44:18 +02:00
``` scons bewd -j4 ```
build editor windows debug
``` scons bwr -j4 ```
build windows release (this will build the windows release export template)
#### Shared modules
Note: This only works on linux!
append `s` to the build string.
Optionally you can also make the build system only build a target module, by appending one of these:
2020-06-10 17:29:21 +02:00
`E` : Entity Spell System \
`T` : Texture Packer \
`V` : Voxelman \
`W` : World Generator \
2020-06-10 10:44:18 +02:00
`P` : Procedural Animations
Example:
``` scons belsE -j4 ```
build editor linux shared (Entity Spell System) with 4 threads
2020-06-10 18:24:31 +02:00
Note: to easily run the editor you can use the `editor.sh` or `editor.bat` in the root of the project.
2020-06-10 10:44:18 +02:00
2020-06-18 16:36:51 +02:00
#### Other
Append `v` to pass the `vsproj=yes` parameter to the build script. This will generate Visual Studio project files.
2020-06-10 10:44:18 +02:00
#### Scons cache, and sdk locations
2020-06-12 10:35:20 +02:00
In order to use scons cache and to tell the build system where some of the required sdks are located you usually
2020-06-12 10:50:26 +02:00
have to use environment variables. Most of the time you might just want to add them globally,
2020-06-12 10:35:20 +02:00
howewer this is sometimes unfeasible (e.g. you don't have administrator access, or you just want to have
multiple sdk versions installed).
2020-06-10 10:44:18 +02:00
2020-06-12 10:35:20 +02:00
In order to solve this a build config file was added.
2020-06-10 10:44:18 +02:00
2020-06-12 10:35:20 +02:00
If you want to use the config simply rename the provided `build.config.example` to `build.config` , and customize
the settings inside.
2020-06-10 10:44:18 +02:00
## Pulling upstream changes
2020-06-10 17:15:05 +02:00
First pull the changes by calling
``` git pull orgin master ```
Then just run `scons` , to will update the modules.
2020-06-10 10:44:18 +02:00
## Upgrading the modules
2019-11-24 16:33:11 +01:00
2020-06-10 10:44:18 +02:00
Note: this is how to update the HEADS file. Normally you don't need to do this.
2019-11-24 16:33:11 +01:00
2020-06-10 10:44:18 +02:00
If you want to update the modules, and the engine to the latest, you can use (`action=update`):
2019-11-24 16:33:11 +01:00
2020-06-10 10:44:18 +02:00
``` scons a=u ```
2019-11-24 16:33:11 +01:00
2020-06-10 10:44:18 +02:00
You can also update different targets: `all` , `engine` , `modules` , `all_addons` , `addons` , `third_party_addons`
2019-11-24 16:33:11 +01:00
2020-06-10 10:44:18 +02:00
For example to update the engine to the latest: ``` scons a=u target=engine ```