Itchy

software/Itchy.jpg{teaser}

Platforms : Linux, Windows
Language : Java
Source Code (GitHub)
Download
Documentation
Wiki

About

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.

Features

  • 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.

Screenshots

software/Itchy.jpg{teaser}

software/Itchy Designer.jpg{teaser}

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...

./launch