Coding

From UFO:AI
Revision as of 09:04, 20 August 2024 by Geever (talk | contribs)
Jump to navigation Jump to search
Contribute: Coding, Debugging, Scripting, Packaging

Getting the source

Just have a look at our Getting the source page to get more information about this.

Requirements

In order to compile UFO:Alien Invasion under Linux you need to install some packages.

Tools:

  • gcc/g++
  • make
  • pkg-config
  • python3
  • zip

Libraries (with headers)

  • intl (gettext)
  • libcurl header
  • libjpeg8 header
  • libpng header
  • Lua version >= 5.3
  • OpenGL-header files (usually comes with your graphic card drivers; or you may use the 'mesa' source package)
  • ogg vorbis header
  • SDL2
  • SDL2_ttf (sdl2-ttf)
  • SDL2_mixer (libsdl2-mixer)
  • Vorbis
  • zlib header version >= 1.2.3

Compiling the source

Don't forget to compile the maps when you are not using any pre packaged version. Otherwise the tactical missions won't start up.

Also make sure, that you compile the language files (po-files from src/po). Otherwise you will only see placeholders in the ufopedia and some other places.

You can now create the pk3 archives by typing

make pk3

- also see the packaging notes. This step is optional.

After compiling the source and maps you will most likely run the game.

Debugging the game

There is a debugging article available with more information about this topic.

The Debug commands will help you here as well.

Contributing

If you want to contribute to the project you need an account at sourceforge.net or submit your patches anonymously to our issue tracker. There is also a TODO-list and a Changelog available. Please also have a look at the coding guidelines.

Documentation

The Doxygen code documentation can be found here. It is most likely out of date, but you can always generate a current one yourself by typing:

make doxygen-docs

in the root of your ufoai working directory.

External Links

Coding help

Tutorials on the net

some of them are Quake1 or Quake3 related but maybe give a starting point...

Related Wiki Links