back to home

thindil / steamsky

Mirror of a roguelike in sky with a steampunk setting

View on GitHub
101 stars
8 forks
2 issues

AI Architecture Analysis

This repository is indexed by RepoMind. By analyzing thindil/steamsky in our AI interface, you can instantly generate complete architecture diagrams, visualize control flows, and perform automated security audits across the entire codebase.

Our Agentic Context Augmented Generation (Agentic CAG) engine loads full source files into context on-demand, avoiding the fragmentation of traditional RAG systems. Ask questions about the architecture, dependencies, or specific features to see it in action.

Source files are only loaded when you start an analysis to optimize performance.

Embed this Badge

Showcase RepoMind's analysis directly in your repository's README.

[![Analyzed by RepoMind](https://img.shields.io/badge/Analyzed%20by-RepoMind-4F46E5?style=for-the-badge)](https://repomind.in/repo/thindil/steamsky)
Preview:Analyzed by RepoMind

Repository Overview (README excerpt)

Crawler view

General Info Steam Sky is an open source roguelike with a steampunk setting. You are the commander of a flying ship, as leader you will be traveling across floating bases, engaging in combat, trading goods etc. There is no mandatory ending to the game, you may freely play until your character dies. The game is currently in constant development, but is in a playable state. Steam Sky is available for Linux and Windows 64-bit platforms. If you read this file on GitHub: **please don't send pull requests here**. All will be automatically closed. Any code propositions should go to the Fossil repository. Game versions There are currently 2 versions of the game: • 12.0.x: "stable" version of game. This version will receive bug fixes but no new features. Source code for this version is in the *12.0* branch. • 12.x: "development" version of game, future version 13.0. This is where game feature updates happen. Due to new features, save compatibility will typically break between releases. Use this version at your own risk. Source code for this version is in the *trunk* branch. **This** version. Build game from sources Nimble way First, you will need to install Nim programming language. It is recommended to use instructions from the download page. Linux packages are usually outdated and may not work. Perhaps the easiest way to build the game is to use nimble tool. It will install all needed Nim packages. Additionally, you will need to install *Tcl* and *Tk* development version of packages. On Windows, you can use MagicSplat installer, on Debian-based distributions, it will be . Additional libraries, needed for running the game are listed in the section **Libraries needed to run the game** of the README.md. When you have all dependencies installed, in the main directory, where this file is, type: for build the release version of the game, or to build the debug version of the game. You can also use the script from . In the main directory, where this file is, type on Linux or on Windows. It will build the game and put all needed files (except libraries) to directory *release* in the project root directory (where this file is). Docker way You can use Docker images and from the project Docker. They contain all libraries and compiler needed to build the game. To build the game for Linux, download image and type in console: To build the game for Windows 64-bit, download image and type in console: It will build the game and put all needed files (except libraries) to directory *release* in the project root directory (where this file is). Build unit tests Use the script from the directory. In the project's main directory (where this file is): • From console: type . The argument is how many times repeat the tests. The project's tests use package unittest2, thus all its runtime options can be used to run the tests. Generating code documentation To generate (or regenerate) code documentation, you can use the default *nimble* task, . It will generate the HTML code documentation of the selected file. To build the code documenation for the whole project, type in console: , in the main directory, where the file is. It will generate the code documenation in the *htmldoc* directory. Running Steam Sky If you compiled the game just clicking on (or executing in console) (on Linux) or (on Windows) in directory should run it. If you use the downloaded version, the executable file is in the main directory. Libraries needed to run the game Additionally, the game requires a few more libraries to run. They are included in the releases: • TkLib. Included in MagicSplat version for Windows, on Linux should be available in all mayor distributions. • Tk extension *tksvg*. You can get it from: • Tk extension *extrafont*. You can get it from: Starting parameters You can specify the game directories through command-line parameters. Possible options are: • --datadir=[directory] This is where the game data files are kept. Example: . Default value is *data/* • --savedir=[directory] This is where savegames and logs are kept. The Game must have written permission to this directory. Example: . Default value is *data/saves/* • --docdir=[directory] This is where the game documentation is. Example . Default value is *doc/*. • --modsdir=[directory] This is where mods are loaded from. Example: . Default value is *data/mods/* • --themesdir=[directory] This is where custom themes are loaded from. Example: . Default value is *data/themes/* Of course, you can set all the parameters at once: Paths to directories can be absolute or relative where file is. For Windows, use instead . If you use AppImage version of the game, you can also use all of this starting parameters. Testing versions Here are available testing versions of the game. You can find them in GitHub Actions. Just select option from the list of results to see Artifacts list. To use them, first you must download normal development release. Then unpack files (replace existing) to the proper location where the game is installed. • steamsky-development-windows.tar contains Windows 64-bit version of the game. • steamsky-development-linux.tar contains Linux 64-bit version of the game. Size is a file's size after unpacking. You will download it compressed with Zip. Modding Support For detailed information about modifying various game elements or debugging game, see MODDING.md Contributing to project For detailed information about contributing to the project (bug reporting, ideas propositions, code conduct, etc), see CONTRIBUTING.md Licenses The game is available under the GPLv3 license. Tcl/Tk, Tklib, Tksvg and Extrafont libraries distributed with the game are under BSD-like license. Nuklear GUI library, used in the new UI is under MIT license. The Licensing for the fonts distributed with the game is as follows: • Font Amarante is under SIL Open Font License: https://fonts.google.com/specimen/Amarante • Font Hack Nerd Font is under MiT license:…