Features

From FIFE development wiki
Jump to: navigation, search


Introduction

This article describes all the features the engine currently supports. Features are organized into categories for easy reference. As we continue to add features to FIFE we will update this article to keep it up to date. Note that because a feature is listed here does not mean that feature is 100% bug free. You may from time to time stumble upon a bug. Please file any bugs you find using the Bug Report page for reference.

Audio

  • Formats
    • OggVorbis
  • Large file streaming
  • Looping

Development specific features

  • Logging
    • Module specific logging functionality
    • Logging according to priority levels
    • Logging output to file / stdout

Editor tools

  • Map editor tool
    • Multi Map Interface (edit multiple maps at the same time)
    • Object Selector
    • Deleting instances from map layer
    • Loading existing maps
    • Placing instances on map layer
    • Saving maps
    • Undo/Redo support for instances
    • Object Editor plugin
    • Light Editor plugin
    • Camera Editor plugin
  • Image atlas editor
    • Create/Edit image atlases
    • Multi-platform (written in Qt)

Event handling

Support for the following event types, can be bind to scripting functionality:

  • Mouse events
  • Keyboard events
  • Widget events
  • Custom commands

Fonts

Support for following font formats:

  • True type (using SDL_ttf)
  • Bitmap fonts

Graphical User Interface

  • Ingame console with support for executing Python code / scripts
  • Fully customizable GUIs via our Python wrapper (Pychan) for the guichan user interface library
    • Layouts can be stored in XML files
    • Skinable

Graphics

General

  • Support for all formats implemented by SDL_image [1]
  • Color key support
  • Take ingame screenshots via hotkey
  • Pooling of image resources, resulting enhanced performance and reduced memory consumption
  • Image atlases (many images contained in one file)

Animations

  • Multiple definable key frame animations per object

Effects

  • Lighting (OpenGL only)
  • Fog of War (OpenGL only)

Maps

  • 3D geometry definition (defined by tilt, rotation and scale)
  • Support for different tile and object grids with independent geometries
  • Multiple layers per map
  • All variations of square and hex shape geometries
  • Multiple cameras / views per map
  • Custom XML-based map file format

Pathfinding

  • Exchangable pathfinding backends:
    • Route path finder

Scripting

  • Python-based scripting system (out of the box)
  • Scripts be can executed from the console

Renderer

  • Support for different renderers via render backend approach (currently SDL + OpenGL backend available)
  • Free choice:
    • Resolution
    • Bit-depth (16, 24, 32bit)
    • Window mode (fullscreen & windowed)

SDL

  • Colorkey for fast transparency effects

OpenGL

  • Transparency for tiles & objects
  • Colorkey for fast transparency effects
  • Lighting effects

View

  • Custom Isometric views defined by angle and tilt of camera
  • Top down/side views
  • Correct z-order sorting of map instances
  • Support for different renderers:
    • Blocking renderer
    • Cell selection renderer
    • Coordinate renderer
    • Floating text renderer
    • Grid renderer
    • Instance renderer
    • Quadtree renderer
    • Light renderer (OpenGL only)
  • Static layer support which renders an entire layer as one texture

Virtual file system

  • Support for reading files on platforms with different byte orders
  • Read support for ZIP archives
  • Lazy loading of files for decreased load times