Game Development With XJGE

This guide assumes the reader is already familiar with high-level programming languages such as Java and GLSL. These languages will be used extensively throughout the following tutorials to demonstrate XJGEs many features.

XJGE provides developers with an extensible architecture that can be used to facilitate the creation of both 2D and 3D games. It takes the form of a Java library packaged as an executable .jar file that's coupled to several low-level dependencies.

XJGE is built on top of the Lightweight Java Game Library (or LWJGL). For these tutorials I'll be focusing exclusively on Windows platforms though binaries for other platforms such as MacOS and Linux are available through the LWJGL website.

Notice:

I've decided to publish the site ahead of having all the tutorials made so for now there's just some beginner stuff here, I'll make a point to have more tutorials written in the coming months when I can find the time.

History

Bringing XJGE into existence was an arduous task to say the least. I initially started developing the engine in my spare time to obtain a better understanding of graphics programming. I used Java because I had a lot of prior experience with it and didn't want to contend with C++ while I was also learning about complex APIs like OpenGL.

The first iteration of the engine was robust but produced a lot of spaghetti code since it needed to be cloned directly into the games repository to use. While access to the engines source code was useful, it proved to be burdensome as the scope of game projects grew.

XJGE 2 is a clean rewrite of the legacy version which retains all of its features as well as introducing several new ones. It effectively fixes its predecessors coupling issue by utilizing package privacy to hide implementation details. The result is an incredibly flexible library that's significantly easier to understand and use.

Who Is This For?

XJGE was created with the intention of serving as the flagship engine for my personal game projects. I will likely develop more game engines in the future following its general design. However because Java is a little less intimidating than other languages typically used for gamedev I saw this as a great opportunity to introduce novice programmers to real-world implementations of the design patterns they might be studying in school.

Source Code

All of the source code for these tutorials can be found on GitHub, feel free to refer to these if you get stuck at any point.

License

XJGE is freely available under a GNU Lesser General Public License (or LGPL). The source code of the engine may be copied, modified, and redistributed so long as derivative works contain the same notice. You are free to release commercial products with it such as games without requiring this notice.

With this license the implementation of the library (or the game itself) is regarded as a distinct legal entity from the engine. So whatever code you write using the engine belongs entirely to you.

Your Feedback Is Welcome!

I'd love to see XJGE thrive as a platform for creative minds to flourish, if you come across any bugs or have a good idea for a new feature consider joining the discussion on GitHub. Not the social type? No problem- shoot me an email at jhoffman@xjge.org I'll try my best to reply if I remember and aren't already occupied by some project.


© 2021- XJGE.org