2a4bd82605
[skip ci] |
||
---|---|---|
.github/workflows | ||
assets/opensb | ||
attic | ||
cmake | ||
doc | ||
lib | ||
scripts | ||
source | ||
triplets | ||
.clang-format | ||
.gitattributes | ||
.gitignore | ||
README.md |
OpenStarbound
This is a fork of Starbound. Contributions are welcome! You must own a copy of Starbound to use it. Base game assets are not provided for obvious reasons.
It is still work-in-progress. You can download the very latest build from the Actions tab, or the occasional releases (though those aren't very up to date yet!)
Note: Not every function from StarExtensions has been ported yet, but compatibility with mods that use StarExtensions features is planned.
Changes
Lighting
The lightmap generation has been moved off the main thread, and supports higher color range.
- Point lights are now additive, which is more accurate - you'll notice that different lights mix together better!
- Object spread lights are auto-converted to a hybrid light which is 25% additive.
Assets
- Assets can now run Lua scripts on load, and after all sources have been loaded.
- These scripts can modify, read, patch and create new assets!
- Lua patch files now exist - .patch.lua
- These can patch JSON assets, as well as images!
Misc
-
Player functions for saving/loading, modifying the humanoid identity
-
Character swapping (rewrite from StarExtensions, currently command-only:
/swap name
case-insensitive, only substring required) -
Custom user input support with a keybindings menu (rewrite from StarExtensions)
-
Positional Voice Chat that works on completely vanilla servers, uses Opus for crisp, HD audio (rewrite from StarExtensions)
- Both menus are made available in the options menu in this fork rather than as a chat command.
-
Multiple font support (switch fonts inline with
^font=name;
, .ttf and .woff2 assets are auto-detected)- .woff2 fonts are much smaller than .ttf, here's a web conversion tool!
-
Experimental changes to the storage of directives in memory to reduce copying - can reduce their impact on frametimes when very long directives are present
- Works especially well when extremely long directives are used for "vanilla multiplayer-compatible" creations, like generated clothing or custom items/objects.
-
Client-side tile placement prediction (rewrite from StarExtensions)
- You can also resize the placement area of tiles on the fly.
-
Support for placing foreground tiles with a custom collision type (rewrite from StarExtensions, requires OpenSB server)
- Additionally, objects can be placed under non-solid foreground tiles.
-
Some minor polish to UI
-
The Skybox's sun now matches the system type you're currently in.
- Previously generated planets will not have this feature and will display the default sun.
- Modded system types require a patch to display their custom sun.
- You can also access the skybox sun scale and its default ray colors. For more details see, sky.config.patch.
Building
Note: Some of these texts are just tooltips rather than links.
template sbinit.config for dist/ after build
{
"assetDirectories" : [
"../assets/",
"./mods/"
],
"storageDirectory" : "./",
"logDirectory" : "./logs/"
}
Windows
- Install vcpkg globally.
- vcpkg recommends a short directory, such as
C:\src\vcpkg
orC:\dev\vcpkg
. - If you're using Visual Studio, don't forget to run
vcpkg integrate install
!
- vcpkg recommends a short directory, such as
- Set the
VCPKG_ROOT
environment value to your vcpkg dir, so that CMake can find it. - Install Ninja. Either add it to your
PATH
, or just use Scoop (scoop install ninja
) - Check to see if your IDE has CMake support, and that it's actually installed.
- Open the repo directory in your IDE - it should detect the CMake project.
- Build.
- If you're using an IDE, it should detect the correct preset and allow you to build from within.
- Otherwise, build manually by running CMake in the source/ directory:
cmake --build --preset=windows-release
- The built binaries will be in dist/. Copy the DLLs from lib/windows/ and the sbinit.config above into dist/ so the game can run.
Linux (Ubuntu)
- Make sure you're using CMake 3.19 or newer - you may need to add Kitware's APT repo to install a newer version.
- Install dependencies:
sudo apt-get install pkg-config libxmu-dev libxi-dev libgl-dev libglu1-mesa-dev libsdl2-dev python3-jinja2 ninja-build
- Clone vcpkg (outside the repo!) and bootstrap it with the linked instructions.
- Set the
VCPKG_ROOT
environment value to your new vcpkg directory, so that CMake can find it.export VCPKG_ROOT=/replace/with/full/path/to/your/vcpkg/directory/
- Change to the repo's source/ directory, then run
cmake --build --preset=linux-release
to build. - The built binaries will be in dist/. Copy the the .so libs from lib/linux/ and the sbinit.config above into dist/ so the game can run.
- From the root dir of the repo, you can run the assembly script which is used by the GitHub Action:
scripts/ci/linux/assemble.sh
- This packs the game assets and copies the built binaries, premade sbinit configs & required libs into client/ & server/.
- From the root dir of the repo, you can run the assembly script which is used by the GitHub Action:
macOS
To be written.