Itchy is a 2D game engine, designed to be FUN! Create games QUICKLY without writing boring and time consuming boiler plate code.
If you want to write games, then Itchy takes care of the hard stuff, while you take care of the fun, creative stuff!
Itchy is written in Java, but games are typically scripted in Python or Groovy (although you can write some of all of it in Java if you really want). Itchy handles all of the time sensitive stuff, so scripting languages are easily fast enough ;-)
Itchy is already powerful enough and flexible enough to create high quality games, but its ultimate goal is to maintain its current abilities, and yet be easy enough for relatively inexperienced programmers to write games.
- Fast graphics (using SDL via a java wrapper called Jame).
- All game objects can be scripted using Python or Groovy, so no compiler is needed.
- A comprehensive object oriented model for the actors in the game.
- Costumes allow one actor to change appearance with no extra coding.
- Graphical resources editor, to organise your graphics, sounds, fonts, animations, costumes and scenes.
- A scene designer. Design your game's levels in this customisable editor.
- Customisable properties for your actors, which can be edited in the scene designer.
- Hierarchical layers, for ease and flexibility of the actors' z-order.
- Highly optimised pixel perfect collision detection.
- Many helper classes, such as Explosion, Fragment and Projectile, which can be used together to create spectacular special effects in just a couple of lines of code.
- Transitions. Swipe or fade from one scene to another.
Building from Source
Before you start, you will need java, gradle, git, gcc and make. From Debain, install them like so as root :
apt-get install openjdk-7-jdk git build-essential
You also need gradle, and the version of Debian I'm using only has verion 1.8.6, whereas I need version 2, so rather than
apt-get install gradle
we need to jump through hoops to install the more up-to-date version...
wget https://services.gradle.org/distributions/gradle-2.11-all.zip unzip gradle-2.11-all.zip echo "PATH=$PATH:$HOME/projects/gradle-2.11/bin" >> ~/.profile PATH=$PATH:$HOME/projects/gradle-2.11/bin
Now get the Itchy source code (and the two projects that it depends upon).
Jame is a low-level gaming API (a java wrapper around SDL, plus some extra goodies, such as pixel collision detection).
PriorityDoc creates javadoc documentation, which is (hopefully) easier to use than traditional javadocs. This isn't needed to compile Itchy, but gradle will complain if it can't find it.
git clone https://github.com/nickthecoder/itchy.git git clone https://github.com/nickthecoder/jame.git git clone https://github.com/nickthecoder/prioritydoc.git
To compile jame, we need some development libraries (i.e. the C header files) ... As root
apt-get install libsdl1.2-dev libsdl-image1.2-dev libsdl-gfx1.2-dev libsdl-ttf2.0-dev libsdl-mixer1.2-dev
Now compile everything...
cd prioritydoc gradle install cd .. cd jame gradle build makeNativeLinux install cd .. cd itchy gradle extractNatives installApp
And start playing/editing the sample games...