JOGE - Java Open Game Engine

I started to work on my own open source game engine a while ago. Just to learn game engine architecture and design. My ultimate goal would be to make it into a general purpose game engine, but I have focused on FPS games in 3D so far. And I’m sure I will continue that path.

The features of this game engine includes, but are not limited to, the following:

  • A Java2D based scan-line rasterizer, for 3D rendering.
  • A camera that can be controlled in the 3D environment.
  • Keyboard- and mouse input.
  • A depth-cue rendering option.
  • A wire-frame rendering option.
  • Groups of polygons can be rotated and moved independently of others.
  • A particle system, that currently only supports one type of particle, namely blood splatter.
  • Point light sources.
  • Shaded textures, created using the point light sources.
  • A progress update screen, for loading resources and configuring a game.
  • Map loading, currently only via XML-files.
  • Toggling of mouse re-centering, useful for FPS games.
  • Toggling of paused mode, in which various aspects of the game is not updated, but you can roam around.
  • Toggling of a cursor, that is, you can show it or hide it.
  • Toggling of FPS rendering.
  • Toggling of texture rendering.
  • A simple sound manager, with support for guitars, tones and byte arrays of sound data.
  • Configurable map boundaries for X and Z, instead of real collision detection, as of yet.

A few days ago I GitHub:ed it, so it can be used in competitions, such as Ludum Dare. I did use it in the latest Ludum Dare 29. My game entry is called Surface Invaders and can be found in the links section below.

If anyone has any feedback or suggestions for improvement, features or critisism, please let me know.

A screenshot of the game and parts of the game engine:

GitHub: https://github.com/WavePropagation/JOGE
Surface Invaders website: http://www.martus.se/ld29/surface_invaders/

Oh wow. I always love seeing a good old-fashioned pseudo-3D renderer! :smiley:

Please keep us updated! I didn’t get to read the full post, but I will later once I have time. Pretty excited to see what comes out of it. Good Luck.

  • Jev

Thanks for your encouragement! :slight_smile: Yes, I’m sure I will update this thread as I progress.

I have a lot of plans. Both for this game engine and for my other 3D renderer, Dayflower, a real-time Ray Tracer, which is also written with the Java2D API.

Things I plan to add to this game engine:

  • Collision detection.
  • An entity system.
  • Sprites.
  • SSAO-rendering.
  • Better bilinear interpolation than the current one.
  • Maybe an implementation using OpenGL (using JOGL or the like).
  • An animation system.
  • Acceleration structures, such as BSP Trees.
  • Rasterization of triangles, and not only quads.
  • The list goes on…

A screenshot of my Ray Tracer:

http://www.dayflower.org/Dayflower/RayTracer.png