Java Games

Ken Webb 2010-09-11T09:13:05Z

This page comments on software that can be useful in producing games in Java.

Contents


PulpCore

PulpCore is "a free, open source (BSD license) 2D rendering and animation framework for the Java plug-in. It allows Java developers to create modern-looking 2D web games with a strong focus on animation and positive user experiences. Also, PulpCore is designed for ease of development with an intuitive API and a smooth, uninterrupted workflow." The site includes 20 or so simple example applets with complete source code.

Cloning the classics is an "internet homage to the great classic arcade games from the Golden Age of Video Arcade Games". It uses PulpCore, and includes at least one simple arcade game that runs as an applet.

The PulpCore main page briefly discusses a number of similar frameworks: Slick, jME, Processing, JGame, GTGE, and Project Scene Graph.

I've found a number of games online that use PulpCore, although I can't find the source code for any of them:

I have created a version of the Bestiary that runs as a PulpCore applet.

Slick2D

Slick2D is "a simple set of tools wrapped around the LWJGL OpenGL binding for Java". The site includes sample games and feature demos (deployed with Java Web Start), a list of recommended tools, a list of other Java 2D libraries, and other useful links. Slick2D is available under the BSD license. Slick2D "provides support for loading and rendering orthographic maps created in" the Tiled Map Editor tool. I found the following tutorial pages useful:

jME

jME (jMonkey Engine) is "a high performance scene graph based graphics API. jME was built to fulfill the lack of full featured graphics engines written in Java. Using an abstraction layer, it allows any rendering system to be plugged in. Currently, both LWJGL and JOGL are supported. jME is completely open source under the BSD license". The demos are deployed using Java Web Start. The only demo I tried did not work - a lot of stuff was downloaded, the screen mode changed, and then it was gone.

Processing

Processing is "an open source programming language and environment for people who want to create images, animations, and interactions. Initially developed to serve as a software sketchbook and to teach fundamentals of computer programming within a visual context, Processing also has evolved into a tool for generating finished professional work". Processing is implemented using Java, and Processing code is converted to Java code which is then compiled using the ECJ (Eclipse compiler). Examples at the site are deployed as Java applets. Few if any of the examples are games, but they are quite interesting.

JGame

JGame is "an open source 2D game engine that runs on any Java 1.2+ JRE platform (with optional OpenGL enhancements through JOGL), as well as the mobile J2ME (CLDC1.1/MIDP2.0) platform. It provides a very high-level framework for developing "classic" type arcade games. It is based on sprites with automatic animation and collision detection, a tile-based background with easy sprite-tile interaction facilities, and high-level game state and game sequence facilities. JGame games can be run in a variety of ways without requiring any changes in the code: regular applications, webstart, applets, or MIDlets. Graphics are scaled automatically to fit any screen size, from the smallest mobile device to full-screen desktop PC. JGame uses 2D graphics acceleration where available, but using OpenGL enables better graphical quality".

GTGE

Golden T Game Engine (GTGE) is "an advanced cross-platform game programming library written in Java language". The site includes many sample games, which can be played using Java Web Start or as applets. The one game I tried, the demo RPG, worked well as an applet. The game also worked well deployed using Java Web Start in full-screen mode, but I was unable to get my Ubuntu/Linux system back and had to reboot. The sample games are all at least four years old. Many of the games include source code.

Project Scene Graph

Project Scene Graph "provides scene graph functionality at the Java level, as well as providing one of the important runtime elements that the JavaFX Script language depends upon from the underlying platform. This project is released in very early access form". The simple examples in the demo gallery can be run using Java Web Start. None of these examples appear to be games.

JavaGaming.org

JavaGaming.org is an active forum for discussing Java Gaming.

Games4j.com

Games4j.com has all sorts of user-submitted applet (Java), flash, and silverlight games, many of them quite simple, and some designed for younger children. However it can be dangerous to go to this site because of the large number of distracting ready-to-play games. There's also a Games4j wiki that has some good information and links.

Killer Game Programming in Java

Dr. Andrew Davison site with the contents of his book Killer Game Programming in Java, and related material. There are lots of interesting ideas here.

Java 4K

The 4K game programming contest is an annual game contest where all games must be below 4K in size. The site suggests some tricks that could be useful for Xholon collaborative apps. Another link. I'm not sure which is the official site.

JavaRanch forums

The Java Ranch site includes a number of useful forums including one on Game Development.

LWJGL

The Lightweight Java Game Library (LWJGL) is "a solution aimed directly at professional and amateur Java programmers alike to enable commercial quality games to be written in Java. LWJGL provides developers access to high performance crossplatform libraries such as OpenGL (Open Graphics Library) and OpenAL (Open Audio Library) allowing for state of the art 3D games and 3D sound. Additionally LWJGL provides access to controllers such as Gamepads, Steering wheel and Joysticks. All in a simple and straight forward API. LWJGL is not meant to make writing games particularly easy".

Scene graph

A scene graph is "a general data structure commonly used by vector-based graphics editing applications and modern computer games". "A scene graph is a collection of nodes in a graph or tree structure", and is therefore related to the core concepts in Xholon. Examples of scene graph technology include X3D, VRML, OpenSceneGraph, and OpenSG.

Open Wonderland

Open Wonderland is "is a 100% Java open source toolkit for creating collaborative 3D virtual worlds". Also see the following pages:

Tiles

A lot of 2D games use tiles arranged in a grid. Some of the above tools include support for tiles and tile maps. Tools that can be used to create tile maps include:

Java Applets

Most web-based Java demos and games that I've seen are deployed using Java Web Start. But some are available as applets, generally using their own Java classes and/or using special JavaScript. These include:

There are numerous tutorial and information sources on the web, including:

return to main page