/StarDrive

StarDrive BlackBox Mod

Primary LanguageC#MIT LicenseMIT

banner

Build status

Stardrive BlackBox

This is the 15b version of StarDrive.exe decompiled from CIL and almost completely rewritten by BlackBox - Mars. The current release is BlackBox - Mars and upcoming version is BlackBox - Hyperion.

Notice: We have StarDrive developer's publicly and privately stated approval for modifying the game for educational purposes but this software is still under the steam license restrictions. Do not use this for immoral or personal financial gain, donation requests are ok but can not be demanded or required. Do not attempt to circumvent game DRM. Be reasonably respectful of the dev and the original software and steam.

Downloads

Currently downloadable Releases contain Major and Patch versions. Major versions are big, 700-800MB installs. Patches are relatively small and are always cumulative, which means you only need to install the Major version (1.50) and latest patch (1.50-patch). Note that the game now has an auto update logic; You can install the Major Release and the game will prompt and install the latest patch for you. Hover over the prompt message to see change log.

Current Major Release Link (read the instructions!)

Go To Downloads (for reference)

Mods

The only mods which currently supports Blackbox are

  • Combined Arms, which is a huge content mod.
  • Star Trek, which uses Vanilla races with addtion of Star Trek races and ships.

Community

Feel free to drop in for questions, bug reports, requests and what not.

BlackBox - Mars

What we achieved in Mars so far:

  • Huge performance improvements
  • Huge stability improvements - especially got rid of most OutOfMemory errors
  • Racial planet preferences
  • Research Stations
  • Mining Ops
  • Multi Level Research for bonuses/upgrades
  • New mesh, texture and shader loading system
  • Auto Update for Blackbox versions and mods.

BlackBox - Hyperion

The future goals of BlackBox - Hyperion are:

  • New graphics engine - XNA is extremely limiting
  • 64-bit engine - will remove a lot of memory limitations
  • Upgraded graphics - a sort of next-gen update would be great
  • Steam release - release a remastered version on Steam to reach more players

How do I get set up for Development?

  • Install Visual Studio 2019/2022 Community.

    • Workloads Module: .NET desktop development with .NET Framework 4.8 development tools
    • Workloads Module: Desktop development with C++ with MSVC v143
    • Workloads Module: Game development with C++ with Windows 10 SDK
  • Install SourceTree or some other GIT client.

    • Configure SourceTree: Tools->Options->Git: [v] Perform submodule actions recursively (Important!!!)
  • Clone this repository to a local directory, for example: C:/Projects/BlackBox

    • Advanced Options When cloning: [v] Recurse submodules (Important!!!)
  • Switch to mars-1.50 branch, which is our main branch for latest ongoing development.

  • Launch Visual Studio, any required DLL references should be in BlackBox/game directory.

  • Launch a full build (Build -> Build Solution) in Release configuration to produce the BlackBox StarDrive executable.

    • If you get this build error: "Windows 10 SDK is not installed", then you need to go back to Visual Studio installer and enable Desktop development with C++
    • If you get this build error: ".. Cannot open include file: 'corecrt.h': No such file or directory ..", then you are also missing Desktop development with C++
  • Install JetBrains ReSharper to enjoy enhanced refactoring capabilities.

  • Please NOTE: if the default Release and Debug configurations do not work for you then your setup is incorrect. Contact us in Discord #general-discussion.

Contribution Guidelines

  • Utilize Discord for chat discussions on ideas and refactoring.
  • Use GitHub Issues to propose new ideas.
  • Creating feature branches is always allowed and Pull Requests will be reviewed by the team.
  • Comment your code so people can see what you are changing. Non-documented code will not pass review.
  • Write clean code, following current best software practices. #DRY #CleanCode

Who do I talk to?

  • In Discord: @RedFox and @Fat_Bastard can provide guidance of this codebase.
  • If you have a bug report, post an issue or post a bug in our Discord channel.
  • For other feature ideas, you can join our Discord chat and talk with the team!

Modding

BlackBox - Mars and later have greatly improved modding capabilities and features, contact us in Discord for more information on modding.

What is moddable?

  • Globals.yaml provides access to all global game settings, more detailed than previously available.
  • All textures can be replaced, PNG and DDS are supported. The old XNB textures are no longer recommended.
  • All meshes can be replaced, we support OBJ and FBX meshes.
  • Audio can be modded
  • Custom stars
  • Custom planets
  • Some UI layouts can be modded, mostly MainMenu for now
  • All YAML files can be modded and are hotloaded while the game is running, so you can do interactive tweaking
  • Feel free to ask for more details in Discord

Development Cycle

For new features, refactors, old bug fixes (feature)

  • Create a new feature branch from mars-1.50.
  • Always add NEW feature unit tests and playtest your changes.
  • Create a pull request and wait for review. Be ready to make a few tweaks! It is easy to create unintentional bugs in this legacy codebase.

If bugs are found in main branch (hotfix)

  • Create an issue or mark existing issue as a "Blocker" for current release.
  • Post the issue in the dev channel of discord.
  • If you can quickly fix it, help us by creating a hotfix pull request.

Command Line Arguments

BlackBox provides a CLI for running certain utilities from Command Prompt. Many of these are developer oriented and not very useful for regular users.

C:\Projects\BlackBox\game>StarDrive.exe --help
13:50:43.698ms: Loaded App Settings
13:50:43.768ms:
 ======================================================
 ==== Mars : 1.50.15000 develop-latest             ====
 ==== UTC: 12/13/2021 13:50:43                     ====
 ======================================================

13:50:43.769ms: StarDrive BlackBox Command Line Interface (CLI)
13:50:43.769ms:   --help             Shows this help message
13:50:43.769ms:   --mod="<mod>"    Load the game with the specified <mod>, eg: --mod="Combined Arms"
13:50:43.769ms:   --export-textures  Exports all texture files as PNG and DDS to game/ExportedTextures
13:50:43.769ms:   --export-meshes=obj Exports all mesh files and textures, options: fbx obj fbx+obj
13:50:43.769ms:   --generate-hulls   Generates new .hull files from old XML hulls
13:50:43.769ms:   --generate-ships   Generates new ship .design files from old XML ships
13:50:43.769ms:   --fix-roles        Fixes Role and Category for all .design ships
13:50:43.769ms:   --run-localizer=[0-2] Run localization tool to merge missing translations and generate id-s
13:50:43.769ms:                         0: disabled  1: generate with YAML NameIds  2: generate with C# NameIds
13:50:43.769ms:   --resource-debug   Debug logs all resource loading, mainly for Mods to ensure their assets are loaded
13:50:43.769ms:   --asset-debug      Debug logs all asset load events, useful for analyzing the order of assets being loaded
13:50:43.769ms:   --console          Enable the Debug Console which mirrors blackbox.log
13:50:43.769ms:   --continue         After running CLI tasks, continue to game as normal
13:50:43.769ms: The game exited normally.
13:50:43.769ms: RunCleanupAndExit(0)

To convert all legacy XNB textures, you can run --export-textures

C:\Projects\BlackBox\game>StarDrive.exe --export-textures