From OpenLieroX Wiki

Jump to: navigation, search

Porting OpenLieroX to another system means to add support in the OpenLieroX source code so that it works on some other system. This can be a mobile phone (or Smartphone), a gaming console or also another operating system (right now, Windows, Linux, MacOSX, FreeBSD as well as any POSIX-compatible system are supported).


Contents

Information for specific ports

In case you want to start a new port, please add it to this list and post some information in the forum or here in the Wiki.

Basic requirements

C++

The most important requirement is that you can compile C++ code for that system.

SDL

SDL is currently used for:

  • the input system (keyboard, mouse, gamepads)
  • creating the window / screen drawing area
  • handling system events (closing the game, etc.)
  • drawing on the screen/window

SDL is ported to a lot of systems already. Search on Google for an SDL port for your favourite system (because not all are noted on the official homepage). In many cases, having this will make the porting a lot easier. It also means that the system probably has all the requirements in principle to support OLX.

In case there is no SDL port for the system, you might also port SDL yourself. The SDL code is very portable and you will probably get help from many other people who are interested in it.

Getting rid of the SDL dependency in OLX would be a lot of work (maybe even more work than just porting SDL yourself). Though, it is not impossible and it has been made already much easier than it was earlier. The heaviest part is the graphics code and image manipulations. Though, this is also the part which is most likely replaced by OpenGL code at some time.

OpenAL

Since OLX 0.59, we are using OpenAL for the audio code. (Earlier we used SDL for this. SDL is much more low level though and doesn't have 3D sound support.)

OpenLieroX should work with any OpenAL implementation. There is the OpenAL Soft implementation which should work pretty much on every system (or which should be easy to port).

Boost

OpenLieroX uses some parts of Boost. Right now, that are:

  • Boost signals
  • Boost process
  • Boost shared_ptr

Some other libraries

Like zlib, xml2 and others. I won't list them all here. But most of them are very basic and also pretty much cross platform themself. So even if your system doesn't provide this, the libraries are all Open Source and will most likely be compileable on your system (if the rest of OLX compiles).

Take a look at the file DEPS in your OpenLieroX archive. That file contains a full list of all dependencies.