μIso (μIsometric Engine) is a multi-platform (Java) open-source (GPLv3) minimalist isometric engine.
This project started during a game development course at UFMG.
μIso target is Java ME platform but it also runs on Java SE platform as shown below.
Therefore, the implementations decisions considered a system with limited resources (especially memory).
The engine relies on basic drawing primitives like those on Java2D.
Therefore, it can be used with different technologies, including, but not limited to: JavaFX,
Swing, AWT,
SDL,
SFML,
DirectX
and
OpenGL.
Its most important features are:
- Three layer drawing. First, the background (that should not have overlaps) is drawn. Next, the second layer (with the sprite objects) creates the illusion of a third dimension. It is drawn after all its sprites have been sorted properly. The last layer drawn contains the string objects. They are also sorted before being drawn.
- Rendering system that limits the drawn area according to the visible area.
- Three dimensional space.
- Terrain with different heights.
- Screen point mapping (for mouse and/or touch screens) that returns the selected tile.
- Customizable slope height.
- Customizable sprite objects sort criterion.
- Customizable sort criterion for string objects.
Demonstration
There is an application (it is not a game) that demonstrates the most important features provided by μIso. You can download it here. Graphics hardware acceleration properly configured can be necessary for a good experience.
Documentation
Javadoc
Downloads
Features planned for next releases
- Creation of a tutorial.
- Customize scrollable area.
- Documentation improvement.
- Dirty rectangle system.
- Scene rotation.
- Sprite transformation operations in the moment of drawing (like in Java ME - javax.microedition.lcdui.game.Sprite class).
- Sprite selection from screen point.
Graphics credits
Images
|
μIso Demonstration: being executed in debug mode.
|
|
μIso Demonstration: while inside editable area, user can change the height of its tiles.
|
|
μIso Demonstration: the Minotaur can freely be moved by clicking on the desired destination tile.
|
|
μIso Demonstration: an animated string.
|
Release notes
- Version 2015_05_04:
- Improvement: Customizable slope height.
- Improvement: Customizable sprite objects sort criterion.
- Improvement: Customizable sort criterion for string objects.
- Improvement: New graphics.
- Improvement: New versions of methods getTileX and getTileY have been added.
- Improvement: Run time debug mode.
- Improvement: The built-in sprite objects sort criterion (based on bounding boxes) has been removed.
- Improvement: The computation performed by ObjectsGridManager in order to remove a small amount of cells has been removed.
- Improvement: μIso Demonstration is using createCompatibleImage to increase its performance.
- Improvement: μIso Demonstration is employing (directly or indirectly) all features available on μIso.
- Bug fix: getVirtualViewportCenterCoordinates implementation has been adjusted.
- Version 2014_01_17:
- Improvement: Documentation has been reviewed and expanded.
- Improvement: New limit for tile maximum height: 15 units.
- Improvement: New terraforming icon.
- Bug fix: ObjectsGridManager was not calculating the limits properly.
- Bug fix: getTileFromRealCoordinates implementation has been finished.
- Bug fix: Frame rate control algorithm was not correct.
- Bug fix: The application was terraforming inside the castle sometimes.
- Version 2012_12_02:
- Bug fix: Race condition while finishing the uIso Demonstration.
- Bug fix: Minotaur pathfinding problems if changing the path while executing it.
- Version 2012_09_22:
References / Font of ideas and inspiration
Videos