JLud2D is an old-school engine for games, currently in Java 8. It is compatible with Tiled maps, RPG-style characters and sprites, and MP3, MIDI, VGM, S3M, MOD and XM music formats.
The engine provides useful classes and methods for rapid development.
Below is an example of switching from a map to another one:
void exit() {
mapswitch(Planet.PALMA, 84, 49);
}
Here is an example of a map script used when talking with an entity:
void robot() {
EntStart();
PSMenu.Stext("You are trespassing. Go back!"));
EntFinish();
}
- 2D Engine;
- Multi-plataform;
- Tiled support (JSON format), a free, easy to use and flexible tile map editor;
- You could run and debug the game code in some advanced IDE like Eclipse or Netbeans;
- Music formats: MP3, MIDI, VGM, S3M, MOD and XM;
- Sound formats: WAV, VOC and MP3;
- Graphic formats: PNG, JPG, GIF, PCX and others - basically all you can load using Java;
- Easy-to-use API;
- Suitable for 2D board games, RPG games, platform games and many more.
You can download just the demo / game you want to play and execute it with Java 8 command line:
java -jar Demo.jar
They are located in the /redist folder.
Some important notes
- F5 for sound off/on
- F6 for full screen
- F7/F8 to increase/decrease frame delay.
JLud2D uses Maven as a Dependency Management system. An intermediate to experienced Java developer should have no problem working with the repository. Feel free to fork it and contribute.
- Jar files are case-sensitive, so be sure to check when looking for resources inside it: sounds, maps, animations, images, etc
- Develop always with internationalization in mind. Internationalization Links: http://java.sun.com/developer/technicalArticles/Intl/ResourceBundles and http://www.roseindia.net/java/example/java/swing/internationalization.shtml
- Caching for fast loading
- Implement music volume
- Joystick support
- Socket implementation
- Movie playback implementation
- LUA parser for easy scripting
- Mobile support
- Check 3D API with fixed-z (~2D) to enable Video optimization
- Check VGM loops (right now they aren't looping)
- VGMs don't play, just VGZ.
- Implement key mapping (b1,b2,b3,b4)
- Verify ColorFilter, Implement Rotate, Flip, etc (See Graphics2d Rotate, Scale, etc)
- Make it more OO (less static methods, no public properties, no static imports)
- Entities' movement get screwed after talking to them
- Investigate why sometimes the transparency stops working (when swapping window/full screen)