1
0
Fork
You've already forked naev
0
forked from naev/naev
This is a fork. See main repo https://codeberg.org/naev/naev/ https://naev.org
  • C 43.7%
  • Lua 40.6%
  • Rust 7.2%
  • GLSL 3.8%
  • Python 2.5%
  • Other 1.8%
2026年04月03日 22:29:29 +09:00
.forgejo Revert "Try to fetch tags too in actions." 2026年03月23日 22:06:50 +01:00
.github Reference giveupgithub on github. 2026年03月05日 15:37:13 +09:00
assets @43808e3e9c Update assets. 2026年04月01日 08:59:08 +09:00
dat Don't shadow local. 2026年04月03日 22:29:29 +09:00
docs there is no equipment tag 2026年04月03日 14:21:48 +02:00
extras Update submodule. 2026年02月10日 17:06:13 +09:00
po Renamed cowarc -> mlarc as it's clearer. Implemented AsRef and AsMut for it. 2026年04月02日 13:36:50 +09:00
src Added support for "equipment" service which is just an exposed version 2026年04月03日 18:13:43 +09:00
subprojects Update sdl3 wrap. 2026年03月17日 22:07:36 +09:00
test Only test Lua in dat, too much generated stuff we have to filter 2025年12月28日 20:07:04 +09:00
utils Fixed commodity luadoc. 2026年03月31日 20:42:56 +09:00
.clang-format clang-format was bugged and "InConditionalStatements: false" was not 2025年06月12日 13:24:26 +09:00
.codespellignore Fixed codespell stuff sneaking into string. 2025年11月25日 09:09:17 +09:00
.codespellrc update .codespellrc and .codespellignore 2025年10月17日 12:57:52 +02:00
.editorconfig editorconfig: trim training whitespace. 2025年05月16日 15:08:40 +09:00
.gitignore update gitignore 2026年02月15日 21:41:49 +01:00
.gitmodules Use github until we can solve the ssh key issue. 2026年02月10日 15:34:06 +09:00
.luacheckrc Rename dat/time.lua to dat/timedate.lua 2026年02月02日 23:45:23 +09:00
.mailmap mailmap is cool. 2022年03月30日 12:44:45 +09:00
.pre-commit-config.yaml updated precommit smd hook 2026年04月03日 13:52:05 +02:00
.u_codespell_unmatch .pre-commit-config.yaml, .codespellignore, .u_codespell_unmatch 2025年10月17日 03:16:10 +02:00
build.rs.in Minor code documentation. 2025年07月26日 15:09:43 +09:00
Cargo.toml.in Warn about duplicated commodities and factions. 2026年03月30日 21:04:24 +09:00
Changelog.md Changelog fixes. 2026年03月31日 15:29:39 +09:00
code_of_conduct.md oxfordized *.md 2025年09月19日 22:03:00 +02:00
gpl.txt
LICENSE Update path. 2021年12月26日 23:04:51 +09:00
meson.build Bump to v0.13.4. 2026年03月31日 14:45:15 +09:00
meson.py [auto] reindent new pass on manually modified files 2025年08月15日 03:49:28 +02:00
meson_options.txt Avoid using genisoimage entirely. 2025年11月26日 08:03:03 -05:00
naev.6 Changed links to point to codeberg instead of github. 2025年08月29日 21:02:54 +09:00
org.naev.Naev.desktop Run update_metadata.sh 2025年11月03日 13:15:12 -05:00
org.naev.Naev.metainfo.xml Bump to v0.13.4. 2026年03月31日 14:45:15 +09:00
Readme.md Nuked a lot of unnecessary or obsolete code. 2026年02月22日 21:58:09 +09:00
rustfmt.toml Change rustfmt to be 3-space tabs. Apply pre-commit to all Rust files. 2026年02月06日 21:50:41 +09:00

Nightly Release Status CI Status Packaging status Translation Status

NAEV README

Naev Logo

Naev (/nɑ.ɛv/) is an open source 2D space trading and combat game, taking inspiration from the Escape Velocity series, among others.

You pilot a spaceship from a top-down perspective, and are more or less free to do what you want. As the genre name implies, you’re able to trade and engage in combat at will. Beyond that, there’s an ever-growing number of storyline missions, equipment, and ships; Even the galaxy itself grows larger with each release. For the literarily-inclined, there are large amounts of lore accompanying everything from planets to equipment.

Please note that Naev is still actively under development and not complete yet. Although there are a lot of things to do in the game, you will find incomplete or work in progress content as you progress.

1 - Getting Naev

Naev is on steam, itch.io, flathub, many linux distributions and more! If you don't feel up to the task of compiling it yourself, please see the Naev website for different ways to get started playing Naev!

2 - Plugins

Plugins are supported since version 0.10.0, and a plugin manager is built into Naev since 0.13.0 which is accessible from the main menu. If you want to get started making your own, please take a look at the Naev Development Manual (WIP).

3 - Dependencies

Naev's dependencies are intended to be widely available. In addition to a graphics card and driver supporting at least OpenGL 3.3, Naev requires:

  • rust 1.89 or later
  • bindgen 0.72 or later
  • SDL3*
  • libxml2
  • libopus-dev
  • freetype2
  • OpenAL
  • OpenBLAS
  • intltool
  • SuiteSparse*
  • enet*
  • physfs*
  • lua 5.1 / luajit*
  • pcre2*
  • GLPK*
  • libunibreak*
  • cmark*
  • pyyaml (compilation only)
  • git-lfs (compilation only)

Dependencies marked with * will use subprojects if not found in the host system.

3.1 Details for your OS

The Naev wiki has more detailed compilation steps, and lists of packages to install, for several operating systems and Linux distros:

4 - Compiling Naev

4.1 Cloning and Submodules

It is recommended to first run git lfs install, so that lfs is used automatically in the checkout, however, it can also be run manually instead.

First clone this repo with whatever method you wish. Next, Naev requires the artwork submodule to run from git. You can check out the submodules from the cloned repository with:

git submodule update --init --recursive

Note that git submodule update has to be run every time you git pull to stay up to date. This can also be done automatically (highly recommended) by setting the following configuration:

git config submodule.recurse true

If you did not run git lfs install or are getting errors about missing assets, you can make sure that they are checked out with git lfs using the following commands:

cd assets/
git lfs fetch
git lfs checkout
cd ..

4.2 Compilation

Run:

meson setup builddir .
cd builddir
meson compile
./naev.py

If you need special settings you can run meson configure in your build directory to see a list of all available options.

For installation, try: meson configure --buildtype=release -Db_lto=true

For Building a Windows Installer, try adding: --prefix="$(pwd)"/build/windows --bindir=. -Dndata_path=. -Dinstaller=true. Check the dist folder in your build directory

For Building a macOS DMG, try adding: --prefix="$(pwd)"/build/dist/Naev.app --bindir=Contents/MacOS -Dndata_path=Contents/Resources -Dinstaller=true. Check the dist folder in your build directory

For normal development, try adding: --buildtype=debug -Db_sanitize=address (adding -Db_lundef=false if compiling with Clang, substituting -Ddebug_arrays=true for -Db_sanitize=... on Windows if you can't use Clang). (If your system supports debuginfod, also add set debuginfod enabled on to a file named .gdbinit in your home directory!)

For faster debug builds (but harder to trace with gdb/lldb), try --buildtype=debugoptimized -Db_lto=true -Db_lto_mode=thin in place of the corresponding values above.

Up-to-date build instructions

Check out the compilation page in our wiki

4.3 Running Naev

You can run Naev directly from the git repository using the naev.py script which will be generated in the build directory. This script will automatically set up all the data paths for running Naev. Make sure the art assets are checked out and up to date as mentioned in the Updating Art Assets section below.

4.4 Installation

Naev currently supports meson install which will install everything that is needed.

If you wish to create a .desktop for your desktop environment, logos from 16x16 to 256x256 can be found in extras/logos/.

5 - Updating Art Assets

Art assets are partially stored in the naev-artwork repository and sometimes are updated. For that reason, it is recommended to periodically update the submodules with the following command.

git submodule update --init --recursive

You can also set this to be done automatically on git pull with the following command:

git config submodule.recurse true

Afterwards, every time you perform a git pull, it will also update the artwork submodule.

6 - Contributing

To get in touch, you can visit naev.org which links to the project's Discord chat and Wiki. There are also Lua API docs there.

Before committing, it's advisable to install pre-commit 3.2 or newer, and run pre-commit install from the Naev git directory root. pre-commit will run automatically when commiting files, but can also be run manually with pre-commit run -a. The dev team is teaching pre-commit to handle various fussy and forgettable steps.

Naev uses Oxford Spelling for all text in the game.

6.1 Online Translation

Naev is incorporated into Weblate on Codeberg. You can easily translate directly with a web interface to your chosen language from Naev's project page. New languages have to be added manually, please open an issue if you want to translate Naev to a new language.

Some translation notes:

  • Do not translate formatting strings. Example: Hello {player}! would be translated to Spanish as Hola {player}!
  • Do not translate the link part in markdown links. Example: [mechanics](mechanics) should be translated as [TRANSLATION](mechanics)
  • Use phonetical translations for names of places. Example: the space object Dust should be translated phonetically and not semantically. Exceptions to this rule are compound names such as stations, for example Violin Monastery should have Violin translated phonetically and Monastery translated semantically.

6.2 Translation for Developers

Naev's translation is handled with gettext. (It's custom, but C and Lua code can use the conventional _() for gettext and N_() for gettext-noop, as well as n_() for ngettext. Rust uses gettext(), ngettext(), and the likes instead.)

When content like missions is updated, new translatable text must be made available to Weblate. The key manual step is to regenerate the po/naev.pot file (meson compile naev-pot in the build dir) and commit it. To avoid merge conflicts, it is recommended to not include updated po/naev.pot in a pull request that isn't exclusively about translation.

Under the hood: po/POTFILES.in is a catalogue of files that may have translatable text. We keep it synced using pre-commit hooks (or manually: meson compile potfiles). The naev-pot Meson target is built using standard xgettext, plus additional rules. (Rules for AUTHORS are in po/update-po.sh. Rules for XML data files are in po/its/translation.its.) Individual translations can be updated via meson compile naev-update-po, but don't do this without a good reason, because Weblate does the same job more carefully.

7 - Crashes and Problems

Please take a look at the FAQ before submitting a new bug report, as it covers a number of common gameplay questions and common issues.

If Naev is crashing during gameplay, please file a bug report after reading this page.

8 - Licence

Naev is open source software compatible with the Debian Free Software Guidelines licenced under the GNU General Public Licence version 3 or later, with some exceptions. Please refer to the LICENSE file for more in-depth licencing details.