JGame - Le Bottin des Jeux Linux



Title: JGame Type: Tool
Genre: Development Status:
Category: Development ➤ Engine ➤ 2D ➤ Misc. Commercial:
Tags: 2D engine Demo:
Released: 3.6.2 Package Name:
Date: 2013-04-14 Extern Repo:
License: Revised BSD Repo:
View: Third person Package:
Graphic: 2D Binary: ✓
Mechanics: Real Time Source: ✓
Played: Single PDA: ✓
Quality (record): 5 stars Quality (game):
Contrib.: Goupil & Louis ID: 11545
Created: 2012-07-01 Updated: 2019-01-18


[fr]: Un moteur rendant la conception de jeux en 2D multiplateforme plus facile. Il fonctionne sur les plateformes Java JRE 1.3+ avec le support optionnel de l'OpenGL (JOGL), mobile J2ME (MIDP2.0/CLDC1.1) et Android (2.1+). Il dispose également d'une version Flash (Actionscript 3). [en]: A small multiplatform 2D game engine. It runs on the Java JRE 1.3+ platform, the J2ME (MIDP2.0/CLDC1.1) mobile platform, and the Android (2.1+) platform. It provides a comprehensive high-level framework, enabling arcade-style games to be developed with a minimum of code and effort.


Trailer / Gameplay [en] / [en] / [fr] :


Website & videos
[Homepage] [Dev site] [Features/About] [Screenshots] [Videos t d d d g] [WIKI] [FAQ] [RSS] [Changelog 1 2]

Commercial : [Support their work (Donate)]

• (empty)
Technical informations
[Open Hub] [PCGamingWiki] [MobyGames]

Devs (Boris van Schooten [fr] [en]) : [Site 1 2 3 4] [Forums] [twitter] [YouTube] [LinkedIn] [Interview 1 2]
Game : [Blog] [Forums] [twitter] [YouTube]

On other sites


News / Source of this Entry (SotE) / News (SotN)

Description [fr]

Un moteur permettant de concevoir des jeux en 2D multi-plateforme, par le studio Tomato Games (Boris van Schooten).
En Java ou flash (2 portages).

JGame est un moteur rendant la conception de jeux en 2D multi-plateforme plus facile.
Il fonctionne sur les plateformes Java JRE 1.3+ avec le support optionnel de l'OpenGL (JOGL), mobile J2ME (MIDP2.0/CLDC1.1) et Android (2.1+). Il dispose également d'une version Flash (Actionscript 3).

Il fourni un environnement de haut niveau permettant de développer des jeux d'arcades classiques en un minimum de codes et d'efforts. Il est basé sur l'utilisation de sprites avec une animation automatique et une détection de collision, et un fond basé sur des tuiles avec des outils permettant de faciliter la gestion des interactions.
Les jeux sont programmés avec une résolution "virtuelle" fixe, mais ils peuvent être mis à l'échelle à n'importe quelle résolution d'affichage de l'écran.
Le moteur fournit une API aux graphismes avancés, avec un retour à des graphismes simplifiés et plus efficaces sur J2ME et plein JRE. L'API comprend également des sons et un stockage persistant.

Il est livré en standard avec les jeux : billiardberzerk, Caverns of Fire, chainreaction, dingbats, Dungeons of Hack, gamegen, Guardian, Insecticide, Matrix Miner, munchies, nebulaalpha, Ogrotron, packetstorm, pacmanandzombies, PubMan, Ramjet, Space Run I, Space Run II, Space Run III, Water World, Web Wars,

Utilisé par ces jeux / Used by these games : Caverns of Fire, Dungeons of Hack, Guardian, Insecticide, Matrix Miner, Ogrotron, PubMan, Ramjet, Space Run II, Water World, Web Wars,

Description [en]

JGame is an open source 2D game engine that makes multiplatform development easier. It runs on the Java JRE 1.3+ platform with optional OpenGL (JOGL) enhancements, the J2ME (MIDP2.0/CLDC1.1) mobile platform, and the Android (2.1+) platform. There is also a Flash (Actionscript 3) version.

JGame features sprites with automatic animation and collision detection, a tile-based background with easy sprite-tile interaction facilities, sound, game state, persistent storage, and game options. Games are programmed at a fixed "virtual" resolution, but can be scaled to any screen resolution. The engine provides an enhanced graphics API, with a fallback to simpler and more
efficient graphics on J2ME and plain JRE. A patched version of the JBox2D physics engine that runs on all platforms has now been included.

By: Boris van Schooten, schooten@cs.utwente.nl
Website: www.13thmonkey.org/~boris/jgame/

Main project goals

The JGame project has two main goals: the first is to provide a very high level API that tries to capture the universal concepts found in the majority of "classic" style games. The second is to provide an engine that can run well on as many platforms as possible. So, you can write a game in only a couple of hundred lines of code that works, without any modification, on platforms ranging from a cheap feature phone to a 10 year old Unix workstation to a 3D accelerated desktop PC.

Platforms now include J2ME (MIDP2.0/CLDC1.1), Android (2.1+) plain JRE1.3+, and JRE1.4+/OpenGL (in both cases, applications can be deployed as webstart or applet). The graphical capabilities of the different platforms are rather different. To address this problem, JGame provides both basic and extended graphical functions, with the basic functions available on all platforms, and the extended functions falling back to basic functions on platforms that do not support then. Extended graphical functions, such as alpha-blended rotating/zooming sprites, shaded polygons, multilayer parallax scrolling, and rotating/zooming view, are available on OpenGL, Android, and Flash (JGame Flash is a separate package).

JGame is designed so that the most common game logic found in typical action games can be programmed with an absolute minimum amount of code. The engine means to provide a complete "boilerplate" API, including not only graphics, sound, and in-game logic, but also game state sequencing, persistent store, highscores, and preferences. This conforms to my own personal wish to create games while avoiding time-consuming repetitive work as much as possible (i.e. the "lazy programmer" approach).

Creating an animating object or scrolling the playfield can be done with a single line of code. Making an object remove another when touched, or bump into a particular kind of background feature can be done with only 2-4 lines of code. Initiating a game over, next level, or death sequence can be done with a single line; defining what happens in them can be done with only a couple of lines extra. Programming complex customised behaviour, such as that of a platform game player, a Pacman ghost, or a Gauntlet/Wolfenstein-2D monster, which are among the most complex things found in existing 2D games, is still relatively easy. Programming a prototype game in JGame may take as little as 30 minutes; I also did complete development cycles from concept to release in a few hours. I published more than 25 games total using JGame. Most games took me between a few hours and a few days to write.




☑ Multiplatform.
• Tested on various platforms.
• Can easily be run as applet, from a jar, or as a webstart.
• Games can be run on the J2ME and Android platforms without requiring changes in the code.
• Games can be run both with and without 3D accelerated back-end, catering to both basic and high end platforms. So, graphics run efficiently on MIDP while OpenGL and Android platforms enable extra graphical effects.
• You can program a game at one resolution, but it can be scaled to any desired resolution when run. Scaling preferences enable precise control of scaling under J2ME and Android.
☑ Highly optimised.
• Implementation ensures optimised and accelerated graphics for a variety of platforms without requiring extra packages; even works well on remote X11 displays.
• Code is optimised for maximum speed and minimum object creations so it works well on slower machines such as mobiles.
• Provides very efficient multidirectional scrolling on all platforms.
☑ Easy handling of sprites and animations.
• Built-in sprite animation
• Load sprites, tiles, and colour fonts directly from sprite sheets.
• Define images, animations, and sounds in a text file.
☑ Tile-based background handling, with decorative backdrop.
• Scrolling using a virtual screen / viewport model
• Built-in playfield wrap-around facility
• multilayer parallax backdrop and zooming/rotating view in OpenGL
☑ Automatic collision detection with sprites and background tiles, and easy background tile interaction.
☑ Channel-based sound system with sound enable/disable built in
☑ Can run at both fixed frame rate and variable (video synchronised) frame rate; built-in facilities for making variable frame rate easier to use.
☑ A state machine model for in-game sequences.
☑ A local store API for saving user info / save games
☑ A standard game state machine and some standard game objects are provided.
☑ Standard highscore table functions are provided.
☑ Debugging facilities, which include: visualising bounding boxes, printing debug messages next to an object on the playfield.
☐ A web-based game generator for generating prototype games without any programming (under development).