- Notifications
You must be signed in to change notification settings - Fork203
Naev has moved to codeberg! This is just a mirror.
License
naev/naev
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
Naev (/nɑ.ɛv/) is an open source 2D space trading and combat game, takinginspiration from theEscape Velocityseries, amongothers.
You pilot a spaceship from a top-down perspective, and are more or less freeto do what you want. As the genre name implies, you’re able to trade and engagein combat at will. Beyond that, there’s an ever-growing number of storylinemissions, equipment, and ships; Even the galaxy itself grows larger with eachrelease. For the literarily-inclined, there are large amounts of loreaccompanying 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 incompleteor work in progress content as you progress.
Naev is on steam, itch.io, flathub, many linux distributions and more! If youdon't feel up to the task of compiling it yourself, please see theNaevwebsite for different ways to get started playingNaev!
Plugins are supported since version 0.10.0. Although we do not have a pluginmanager yet (help wanted!), you canlook at existing plugins registered on thenaev pluginsrepository and install them manually. Ifyou want to get started making your own, please take a look at theNaevDevelopment Manual (WIP).
Naev's dependencies are intended to be widely available. In addition to agraphics card and driver supporting at least OpenGL 3.3, Naev requires:
- rust 1.87 or later
- bindgen 0.72 or later
- SDL3
* - libxml2
- freetype2
- OpenAL
- OpenBLAS
- libvorbis
- intltool
- SuiteSparse
* - enet
* - physfs
* - lua 5.1 / luajit
* - pcre2
* - GLPK
* - libunibreak
* - cmark
* - pyyaml (compilation only)
Dependencies marked with* will use subprojects if not found in the host system.
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 thesubmodules from the cloned repository with:
git submodule update --init --recursive
Note thatgit submodule update has to be run every time yougit pull tostay up to date. This can also be done automatically (highly recommended) bysetting the following configuration:
git config submodule.recursetrueRun:
meson setup builddir.cd builddirmeson compile./naev.py
If you need special settings you can runmeson configure in your builddirectory 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 thedist 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 thedist 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 addset 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.
For up-to-date build instructions, check out the compilation page in ourWiki
You can run Naev directly from the git repository using thenaev.py scriptwhich will be generated in the build directory. This script will automaticallyset up all the data paths for running Naev. Make sure the art assets arechecked out and up to date as mentioned in the Updating Art Assets sectionbelow.
Naev currently supportsmeson install which will install everything thatis needed.
If you wish to create a.desktop for your desktop environment, logosfrom 16x16 to 256x256 can be found inextras/logos/.
Art assets are partially stored in thenaev-artworkrepository and sometimes are updated. For that reason, it is recommended toperiodically 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 followingcommand:
git config submodule.recursetrueAfterwards, every time you perform agit pull, it will also update theartwork submodule.
To get in touch, you can visitnaev.org which links to the project's Discord chat and Wiki.There are also Lua API docs there.
Before committing, it's advisable to installpre-commit 3.2 or newer, and runpre-commit install from the Naev git directory root.pre-commit will run automatically when commiting files, but can also be run manually withpre-commit run -a.The dev team is teachingpre-commit to handle various fussy and forgettable steps.
Naev usesOxford Spelling for all text in the game.
Naev is incorporated into Weblate on Codeberg. You can easilytranslate directly with a web interface to your chosen language from Naev'sproject page. New languages have to be addedmanually, 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 asHola {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
Dustshould be translated phonetically and not semantically. Exceptions to this rule are compound names such as stations, for exampleViolin Monasteryshould haveViolintranslated phonetically andMonasterytranslated semantically.
Naev's translation is handled with gettext. (It's custom, but C and Lua code can use the conventional_() for gettext andN_() for gettext-noop, as well asn_() for ngettext. Rust usesgettext(),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 thepo/naev.pot file (meson compile naev-pot in the build dir) and commit it.To avoid merge conflicts, it is recommended to not include updatedpo/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).Thenaev-pot Meson target is built using standardxgettext, plus additional rules.(Rules forAUTHORS are inpo/update-po.sh. Rules for XML data files are inpo/its/translation.its.)Individual translations can be updated viameson compile naev-update-po, butdon't do this without a good reason, because Weblate does the same job more carefully.
Please take a look at theFAQ before submitting a newbug report, as it covers a number of common gameplay questions andcommon issues.
If Naev is crashing during gameplay, please file a bug report afterreadinghttps://codeberg.org/naev/naev/wiki/Bugs
Naev is open source software compatible with theDebian Free SoftwareGuidelines licensed undertheGNU General Public Licence version 3 orlater, with some exceptions.Please refer to theLICENSE file for more in-depth licensingdetails.
About
Naev has moved to codeberg! This is just a mirror.
Topics
Resources
License
Code of conduct
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Uh oh!
There was an error while loading.Please reload this page.
