MCPcopy Index your code
hub / github.com/MovingBlocks/DestinationSol

github.com/MovingBlocks/DestinationSol @v2.1.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release v2.1.0 ↗ · + Follow
4,698 symbols 14,175 edges 556 files 921 documented · 20%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Destination Sol

Gitpod Ready-to-Code Discord

This is the official open source home for the arcade space shooter Destination Sol, originally started by Milosh Petrov and a small team on Steam and SourceForge

After receiving highly positive reviews launching as an indie title on Steam Milosh and the remaining team members wanted to focus on different projects, having made Destination Sol primarily to try out the involved technology.

A call was put out to the player community for a new maintainer, and open source was an option praised by many and already somewhat in place on Sourceforge. The open source group MovingBlocks behind Terasology stepped in to offer infrastructure and maintenance.

Milosh accepted our offer and supported us in moving the game onwards to its new home here on GitHub where we'll set up to accept contributions from anybody willing to help improve Destination Sol and expand on its gameplay.

Destination Sol is now officially licensed under the Apache 2.0 License (except soundtrack, see its section below) and available in source code form at GitHub.

You can download the game on Steam, get it in the Google Play Store, or download the very latest version from our build server (warning: latest build may be unstable)

Feel free to fork the project and contribute pull requests! You can visit a Destination Sol forum on the Terasology site if you have any questions or would like to discuss the game or contributing.

Gameplay

You start at the edge of a solar system as a pilot in a small ship. You are free to explore space, land on planets, fight with enemies, upgrade your ship and equipment, hire mercenaries, mine asteroids, and so on.

Enemy ships are orange icons, allies are blue. Enemies can be marked with a skull icon - beware! They are likely stronger than you. Improve your ship and equipment and fight them later!

Your ship has a certain number of hit points (your armor), which will recover if you have consumable repair kits in your inventory and stay idle for a short while. You may also have a shield that takes damage first. Each is vulnerable to different weapons, both on your ship and others.

Weapons and special abilities often need consumables to function (like Bullets or Slo Mo Charges) and take time to rearm.

You can destroy asteroids for easy money, even with the starting ship's ammo-less but weak gun.

Warnings get posted if you get close to dangerous ships or may soon collide with something on your current course. Blue dots along the edge of the screen indicate a planet is nearby.

Watch out about buying a new ship if you can only barely afford it - you might need to buy new compatible weaponry too!

Mercenaries will follow you around and should start with a compatible weapon again in v1.4.1. They'll pick up items as well and keep them, greedy little buggers! But then they drop everything again on death, so ...

Controls

Note: You can select either pure keyboard, keyboard + mouse, or controller (in the settings). Exact details may change over time. Below are the default key mappings (no mouse). You can change these in-game.

Main screen

  • [Space] - Fire main gun
  • [Ctrl] - Fire secondary gun (if equipped)
  • [Shift] - Use ship ability
  • [Left,Right] - Turn the ship
  • [Up] - Thrust. There are no brakes! You have to turn and burn to change direction or slow down
  • [Tab] - Show the map
  • [I] - Show inventory
  • [T] - Talk (interact with a station)
  • [ESC] - Menu / close screens

With map up

  • [Up, Down] - Zoom in and out on the map

With inventory up

  • [Left, Right] - change page
  • [Up, Down] - scroll up and down
  • [Space] - equip / unequip item OR buy / sell if talking to a station
  • [D] - discard selected item

Building and running from source

You only need Java 8 installed to run Destination Sol from source.

Run any commands in the project root directory (where you cloned / extracted the project to, using a command prompt / terminal).

  • Download / clone the source from GitHub
  • To run from the command line: gradlew run (on Linux you might need to use ./gradlew run)
  • To prepare for IntelliJ run: gradlew idea then load the generated project via DestinationSol.ipr
  • Distributions (Windows, Linux, Mac) can be created locally by running: gradlew distZipBundleJREs

For Android a little extra setup is needed. See instructions here.

Steam Release Process

Contributors

GitHub contribution stats Contribution Leaderboard

Apologies in advance for any omissions, contact Cervator if you believe you've been missed :-)

Extension points exported contracts — how you extend this code

AssetsHelperInitializer (Interface)
Create partial game instance with ModuleManager, Assets, ComponentManager, {@link HeadlessApplic [12 implementers]
engine/src/test/java/org/destinationsol/testsupport/AssetsHelperInitializer.java
Box2DInitializer (Interface)
Use this for all tests which used Box2D in any case. [8 implementers]
engine/src/test/java/org/destinationsol/testsupport/Box2DInitializer.java
FarObject (Interface)
FarObject can be generally considered a SolObject simplified in terms of runtime code. Generally speaking, e [19 implementers]
engine/src/main/java/org/destinationsol/game/FarObject.java
SolObject (Interface)
Generally speaking, SolObjects are all the game's foreground objects that are in the proximity of player/visible screen. [29 …
engine/src/main/java/org/destinationsol/game/SolObject.java
CommandParameterSuggester (Interface)
A class used for suggesting command parameter values [8 implementers]
engine/src/main/java/org/destinationsol/game/console/CommandParameterSuggester.java

Core symbols most depended-on inside this repo

get
called by 569
engine/src/main/java/org/destinationsol/game/context/Context.java
add
called by 309
engine/src/main/java/org/destinationsol/game/sound/DebugHint.java
set
called by 156
engine/src/main/java/org/destinationsol/game/HsbSpan.java
size
called by 139
engine/src/main/java/org/destinationsol/util/CircularBuffer.java
getHero
called by 128
engine/src/main/java/org/destinationsol/game/SolGame.java
getGame
called by 116
engine/src/main/java/org/destinationsol/game/SolContactListener.java
find
called by 116
engine/src/main/java/org/destinationsol/game/planet/FlatPlaceFinder.java
getOptions
called by 115
engine/src/main/java/org/destinationsol/SolApplication.java

Shape

Method 4,109
Class 539
Interface 34
Enum 16

Languages

Java100%

Modules by API surface

engine/src/main/java/org/destinationsol/protobuf/EntityData.java294 symbols
engine/src/test/java/org/destinationsol/testingUtilities/MockGL.java150 symbols
engine/src/main/java/org/destinationsol/GameOptions.java129 symbols
engine/src/main/java/org/destinationsol/game/StarPort.java60 symbols
engine/src/main/java/org/destinationsol/game/ship/SolShip.java57 symbols
engine/src/main/java/org/destinationsol/game/SolGame.java57 symbols
engine/src/main/java/org/destinationsol/world/generators/SolarSystemGenerator.java49 symbols
engine/src/main/java/org/destinationsol/world/generators/PlanetGenerator.java47 symbols
engine/src/test/java/org/destinationsol/game/PlayerCreatorTest.java44 symbols
engine/src/main/java/org/destinationsol/game/Hero.java39 symbols
engine/src/main/java/org/destinationsol/game/projectile/Projectile.java37 symbols
engine/src/main/java/org/destinationsol/ui/nui/screens/MainGameScreen.java34 symbols

For agents

$ claude mcp add DestinationSol \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact