Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit

ac3f8dc made the meson check test for OpenGL 3.2, but some drivers that
support OpenGL 3.2 or higher will not return a higher version than the
one we request when creating the context.


Failed to load latest commit information.
Latest commit message
Commit time
December 3, 2023 21:08
December 2, 2023 22:41
December 3, 2023 19:05
December 3, 2023 19:38
March 30, 2022 12:44
December 3, 2023 18:57
December 26, 2021 23:04
September 12, 2021 18:05
January 6, 2021 13:31
January 18, 2022 22:10
September 29, 2022 06:06

Nightly Release Status CI Status Packaging status Translation Status


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 space ship 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.


Naev is on steam,, 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!


Plugins are supported since version 0.10.0. Although we do not have a plugin manager yet (help wanted!), you can look at existing plugins registered on the naev plugins repository and install them manually. If you want to get started making your own, please take a look at the Naev Development Manual (WIP).


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

  • SDL 2
  • libxml2
  • freetype2
  • GLPK
  • libpng
  • libwebp
  • OpenAL
  • OpenBLAS
  • libvorbis
  • intltool
  • libunibreak (included)
  • pyyaml


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



Naev requires the artwork submodule to run from git. You can check out the submodules from the cloned repository with:

git submodule init
git submodule update

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



meson setup builddir .
cd builddir
meson compile

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: --bindir=. -Dndata_path=. -Dinstaller=true. Check the dist folder in your build directory

For Building a macOS DMG, try adding: --prefix="$(pwd)"/build/dist/ --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.


You can run Naev directly from the git repository using the 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.


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/.


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

git submodule update

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.


To get in touch, you can visit 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 2.17 or newer, and run pre-commit install. The dev team is teaching pre-commit to handle various fussy and forgettable steps.


Naev is incorporated into Weblate. 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.


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.)

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/ is a catalog 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 and intro are in po/ 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.


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


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