Bitbucket is a code hosting site with unlimited public and private repositories. We're also free for small teams!

Close

About the Ignifuga Game Engine

Ignifuga is a multi platform (Windows/Linux/OS X/iOS/Android) 2D hardware accelerated engine based on Python and Cython, inspired by similar offerings like Cocos2D, Cocos2D for iPhone, and AndEngine. All your game logic code along with the engine’s and supporting tools is converted to C during the build process, and compiled into one big standalone binary for each of the supported platforms (please refer to the FAQ for more information). The project is currently in heavy development as the engine for The Gaucho, and it should be fairly usable already, but we don’t give any guarantees, so the expected performance may range from not even working to attaining consciousness and starting the third world war for all we know. At the very least, we hope that it lives up to its name and it doesn’t catch fire.

Features

  • 2D game engine
  • Python/Cython based – compiles all the code to a static binary, no external dependencies.
  • Targets:
    • Linux 32 and 64 bits
    • Windows 32 (64 bits support almost done)
    • OS X (10.6 and newer, i386 and x86_64)
    • Android (ARM CPUs, version 2.0 and newer)
    • All iOS devices from the original iPhone to the new iPad 3 and iPhone 5 (iOS 3.0 and newer, including 6.x, with the iOS SDK v5.0 or newer, armv6, armv7 and armv7s devices)
    • More coming soon…
  • Component based design, add your own components, use or extend the default set:
    • Actions (dynamic modification of any of the entity components and properties)
    • Sprites: static and animated, hardware accelerated, automatically compressed (see the Grossman tool for details). Fast and automatic scaling, red/green/blue/alpha modification, bluring,etc.
    • Text (with TTF font support)
    • Sound (with ogg support)
    • Music (with ogg support)
  • Spine integration, 2D skeletal based animations
  • libRocket integration, build your GUI using HTML+CSS!
  • Remote Python Console via RFoo integration, connect remotely to a running instance of Ignifuga and experiment with your game interactively in real time.
  • Remote Websockets Console: Alternatively, you can use the Remote Console with regular sockets (i.e. via Telnet) or with websockets (using javascript from a web browser).
  • pQuery, our own version of jQuery for Python, that works on Ignifuga Scenes/Entities/Components and Rocket RML Elements using the exact same syntax.
  • Remote Screen, Provides a 1:1 live MJPEG stream of the game for screencast purposes, browser embedding, etc.
  • Despite compiling everything to C and then to machine code, you can still take advantage of Python’s dynamic nature and develop using almost regular Python in your dev system, then compile everything into a neat bundle for distribution
  • Heavily data driven, almost everything can be done from a json definition file
  • Hot (on the fly, pun intended) reloading of assets, this includes images and scene definition files.
  • The Schafer tool, which automates the whole build process for all the supported platforms
  • Schafer’s “bare” mode, which builds a custom static Python interpreter with the minimum possible contents (no SDL, no libRocket, etc) plus your source code, on all the supported platforms, very useful for easy distribution of Python based projects entirely unrelated to games or chickens!
  • The Grossman tool, which processes sets of sprites into a monolithic compressed texture, generating no hassle animated sprites with optimized hit maps with transparency support

Why Ignifuga? Who is he/her/it? What's in a name?

Ignifuga means fireproof in spanish. That doesn’t explain much, and it has little to do with game engines, I know. But it’s a catchy name, I already had the art from a dead-and-now-revived project, and the Linux project has a penguin in their logo, so don’t come here judging me!

Where should I begin?

Check out our Getting Started guide

Recent activity

Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.