Need help with naev?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

naev
518 Stars 175 Forks Other 26.1K Commits 84 Opened issues

Description

Naev is a 2d action/rpg space game that combines elements from the action, rpg and simulation genres.

Services available

!
?

Need anything else?

Contributors list

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

DEPENDENCIES

Naev's dependencies are intended to be widely available. In addition to a graphics card and driver supporting at least OpenGL 3.1, Naev requires: * SDL 2 * libxml2 * freetype2 * GLPK * libpng * libwebp * OpenAL * OpenBLAS * libvorbis * binutils * intltool * libunibreak (included) * pyyaml

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: * Linux/*nix * Windows * macOS

COMPILING NAEV

CLONING AND SUBMODULES

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

COMPILATION

Run:

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

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 Windows packaging, try adding:

--bindir=bin -Dndata_path=bin

For macOS, try adding:

--prefix="$(pwd)"/build/dist/Naev.app --bindir=Contents/MacOS -Dndata_path=Contents/Resources

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

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.

RUNNING NAEV

You can run Naev directly from the git repository using the

naev.sh
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.

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

UPDATING ART ASSETS

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.

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 and

luacheck
packages, and run
pre-commit install
. The dev team is teaching
pre-commit
to handle various fussy and forgettable steps.

ONLINE TRANSLATION

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.

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

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.

Under the hood:

po/POTFILES.in
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/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.

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 https://github.com/naev/naev/wiki/Bugs

LICENSE

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.

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.