Getting started

From FIFE development wiki
Jump to: navigation, search

Introduction

This article is a good starting point for interested persons who want join the FIFE team. The basic idea is to have one central article where we point you to the important things FIFE developers should know about. It just gives you an introduction to several aspects and does not intend to cover these things in detail. It is meant to be a starting point from which you can start exploring the world of FIFE.

The FIFE project

The mission of the FIFE project is to create a flexible cross platform 2D game creation framework which is not bound to any genre in specific. This framework includes the game engine itself along with all the content creation tools necessary to create a game using FIFE. A detailed list of what the current scope of the project can be found within the What is FIFE? article.

Communication

Communication standards are a set of agreed upon standards on how to communicate with other developers as well as with users from the surrounding community. Currently we have several methods of communicating to the FIFE team:

We are a fairly international team and use IRC when possible but because of time differences will to resort to the forums when we need to communicate. Meetings are held in IRC and are usually announced on the Forum. Results of meetings are posted on the Wiki. We ask that any FIFE team member try and be available whenever they can on IRC and to regularly check the forums for new posts.

Feel free to stop by our IRC channel or forums and say hello!

Glossary

The Glossary is meant to help to ease developer <-> developer as well as developer <-> user communication by establishing a set of common agreed upon terms.

Obtaining the FIFE source code

If you're an interested in checking FIFE out for yourself we offer public access to our Git repository so you can always get your hands on the most recent code. Following our coding standards, we have tried to write code that can be understood so you don't have many problems getting started with our existing code base.

SVN standards (This is outdated as we now use GIT)

There are three different branches in the SVN, each for different purposes:

  • trunk: Main branch where the active development takes place. We recommend checking out the trunk branch first before you look into the other directories.
  • branches/active: Branch for active testing of code that is a 'work in progress' and not stable enough (or not stable at all!) to be merged into trunk.
  • branches/historic: Branch for storing old branches that are not actively maintained anymore.
  • tags: Archive branch to store official releases.

Compiler & build tools

As FIFE is an open source project we decided to go for an open source build system as well. We decided to use SCons as it provides a rather easy way to build FIFE on multiple platforms. At the moment we provide SCons files for Linux, Windows, FreeBSD and OS X. Our SCons files are written for compiling FIFE with the free gcc compiler and its MinGW port for Windows.

To build FIFE from source, install the necessary build dependencies, and then follow the appropriate build guide for your platform. If you run into any trouble, the IRC channel or the forums are the best places to get help.

We also provide an Win32 install Win32 compile SDK for Code::Blocks, MinGW, MSVC 2005 & MSVC 2008 users. The SDK already features all needed libraries and header files and makes compiling on Windows platforms as easy as possible. Support for the Microsoft C++ compilers was added as MSVC is now available for free (in a kind of light version called "Express Edition") and has a huge market penetration.

Framework design

Data structures

All Data structures that are supported by the framework are listed in a separate category. This includes our custom formats as well as supported file formats of the Fallout games.

Design documents

It's important to know that a design document is not just a description of the current engine status but also a vision of what the engine should become in the future. So it serves as a kind of roadmap for the FIFE team and gives us general orientation on what concepts need to be integrated and what features are already implemented as planned. Architecture Documentation is a good place to start browsing the documentation.

Project planning

We use the Trac project planning software for this purpose. Trac is comparable to other tracker systems like Bugzilla or Mantis although it offers many additional features for project planning and organization.

Currently we use Trac for it's SVN repository viewer, milestone planning and ticket system. We do not use the Wiki as we already have a wiki in place. The ticket system is used to track bugs and assign work. Check out our Trac page to browse our source code, check out the road map and tickets that are being worked on.

Source Code Documentation

The doxygen software offers a good way to document code for easier reading and understanding. It generates a set of online documentation pages for the code, by structuring it into useful categories and providing graphs to illustrate relations between the different engine classes and functions. Furthermore the development team agreed to start documenting the Python code of the project via Epydoc. We're currently offering engine core and extensions documentation updated on a daily basis.

Help wanted page

We have a central page where our team members post positions that still need to be filled. We suggest that you take a look there to find out what positions are still open and what requirements are needed for filling these positions. Of course you can always apply as a general coder as we just list those positions with the most urgent need to be filled there. So feel free to apply even if you don't fit into any of the mentioned categories!

FIFE announcements

Announcements can be found at the FIFE blog and is the best way to keep informed on what is happening in the FIFE community. We not only post news about FIFE but news about all FIFE based games is posted here also.

Getting involved

If you're interested to get involved in the development of FIFE it's a good idea to introduce yourself to the team. This way you can ask questions how to get started with FIFE while other developers can get to know you. The introduction board can be here: Introduce Yourself. Check out our Help wanted page for current open positions. In any case we are always looking for new developers who are interested in helping out.

Looking for something to do?

First step is to get the tech demo Rio_de_hola running. You should be able to do so using the instructions found at the wiki. If for some reason you cannot feel free to pop into our IRC channel or ask for help at our forums. After you have built the engine go ahead and play around with it for a bit. You'll get a good feel for it's capabilities that way.

The next step is to take a look into our Trac system and read through the Open Tickets. If you find one that you believe you can complete go ahead and start working on it. You might want to let one of us know on IRC or the Forums just in case someone else is already working on it. It's also a good idea to discuss your planned changes with an experienced FIFE developer to ensure you are following our standards. After you have completed the task you can attach a SVN diff file containing all your changes to the original Trac ticket. A developer will then review, revise and approve your code changes and submit it to the repository.

If you are plan on being very active in the development of FIFE and have contributed some work we will consider giving you SVN commit access.