Difference between revisions of "Coding"
Line 4: | Line 4: | ||
==Requirements== | ==Requirements== | ||
− | In order to compile UFO:Alien Invasion under Linux you need to install some packages. | + | In order to compile UFO:Alien Invasion under Linux you need to install some packages. |
+ | |||
+ | Tools: | ||
* gcc/g++ | * 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) | * OpenGL-header files (usually comes with your graphic card drivers; or you may use the 'mesa' source package) | ||
* ogg vorbis header | * ogg vorbis header | ||
− | * | + | * SDL2 |
− | * | + | * SDL2_ttf (sdl2-ttf) |
− | * | + | * SDL2_mixer (libsdl2-mixer) |
+ | * Vorbis | ||
* zlib header version >= 1.2.3 | * zlib header version >= 1.2.3 | ||
− | |||
− | |||
− | |||
− | |||
− | |||
==Compiling the source== | ==Compiling the source== | ||
Line 52: | Line 61: | ||
==External Links== | ==External Links== | ||
− | * | + | * {{https|sourceforge.net/projects/ufoai/|UFO:AI SourceForge Project homepage}} |
− | + | * {{https|predef.sourceforge.net/preos.html|Pre-defined Operating System Macros}} | |
− | * | ||
=== Coding help === | === Coding help === | ||
− | * | + | * {{https|www.gamedev.net/|GameDev.net} |
− | + | * {{http|www.flipcode.com/archives/|flipCode Archives}} | |
− | * | + | * {{https|www.cprogramming.com/|C-Programming articles}} |
− | + | * {{https|nehe.gamedev.net/|NeHe OpenGL tutorials}} | |
− | * | ||
− | |||
− | * | ||
− | |||
=== Tutorials on the net === | === Tutorials on the net === | ||
some of them are Quake1 or Quake3 related but maybe give a starting point... | some of them are Quake1 or Quake3 related but maybe give a starting point... | ||
− | * | + | * {{https|www.quakewiki.net/|QuakeWiki}} |
− | + | * {{https|www.3delement.com/|Tutorialsfor 3D game development}} | |
− | * | ||
− | |||
== Related Wiki Links == | == Related Wiki Links == |
Revision as of 09:04, 20 August 2024
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
- {{https|www.gamedev.net/|GameDev.net}
- flipCode Archives
- C-Programming articles
- NeHe OpenGL tutorials
Tutorials on the net
some of them are Quake1 or Quake3 related but maybe give a starting point...