GinENGINE

GinENGINE (a contraction of Ginever Engine) is a cross-platform application programming engine created by Ruby-Jane Dennington for use in Ginever Alliance projects. It is currently considered to be legacy software, as new game projects from Ginever Entertainment are using Unity instead.

Versions

Several versions of the engine have existed at various points in time.

Initial development in C++

The engine was initially written in C++ during early 2011 under the name 'GUPE' (Ginever Unified Programming Engine), and was built with Win32 APIs, DirectX 9.0c and FMod Ex 4. The name proved to be too cumbersome and was subsequently changed to the Ginever Engine (and later just to GinENGINE).

Some features of the engine were directly inspired or taken from Pokémon Crimson. This includes the colour tagging of the font rendering system along with the design of the music controller.

The first game to be ported to GinENGINE was Paulipede, a university coursework project originally built using a Teesside University graphics library called 'PRG' some months previously. The move from PRG to GinENGINE saw the CPU usage of Paulipede drop from 50% to 2%, which spurred further development work in the engine. Work was started to port the engine to Mac and Linux via OpenGL and many new features were planned.

Development was then placed on hold due to work on Asterion Minecraft being more urgent. Consequently, the C++ version of GinENGINE was never seriously used.

Revived development in Java

In early 2014, Theleruby was given a university coursework project called the Deadly MOBA of Death which required the development of a network-compatible game in the Java programming language using non-blocking sockets. Preferring to use her own code for rendering the game, a very crude port of GinENGINE to Java was built for the MOBA game. Due to the small amount of time available, this port was lacking in many features, with no gamepad support and with the font renderer only supporting Fixedsys. Unlike the original C++ version, however, it had a non-blocking network system, and worked decently with both Mac and Linux due to being written with OpenGL 2.0 rather than DirectX. It also had the first custom sprite batching solution, whereas the C++ version used the D3DX sprite batch.

Towards the end of 2014, the waning popularity of Minecraft led to some reconsideration about the future of Ginever, and it was essentially realized that it was not viable to continue operating the Minecraft server in the long term. This led to a shift in development which favoured the resumption of work on GinENGINE. It was then a choice between improving the C++ version or finishing the Java version. Due to the desire for a cross-platform solution, the significantly easier nature of doing this in Java than in C++, and the fact that the Java version was already mostly feature-complete, the Java version won out. Most of the MOBA code was then refactored into an official Java version of GinENGINE called 'jGinENGINE' and work began on implementing missing features in order to get it up to par with the C++ release. The C++ version was then retconned to have the name 'GinENGINE++' for disambiguation (although this name is not referenced anywhere in the code).

jGinENGINE has been in continuous development since then, with the first semi-stable version (0.1) being made available in September 2015. It has now amassed so many features compared to the original C++ version that it essentially supersedes the C++ version in all aspects, rendering GinENGINE++ entirely obsolete. Consequently, it is now unlikely the C++ version will ever be revived, and 'GinENGINE' is normally regarded as meaning jGinENGINE, with the 'j' at the beginning being rarely mentioned outside of official documentation. All of the projects originally built with or slated for GinENGINE++ (most notably Paulipede and Spellmaster II) are now ported to jGinENGINE and the original C++ release of Paulipede is now considered a legacy program.

Version 0.2 of the engine was released on 7 April 2016 and includes support for network-based multiplayer games. It also includes a GUI framework.

Version 0.3 was released on 12 October 2016. Many of the subsystems in this version have been refactored as part of a push to extend the engine to mobile platforms.

The GineverLauncher is used to distribute, update and launch games created with the Java version of GinENGINE.

Projects using GinENGINE

The following projects are known to use GinENGINE:

Fate

Due to being written in Java, it was found extremely challenging to port GinENGINE to iOS. The engine also lacks most 3D features. Because the amount of work required to get the engine up to a good standard for mobile and 3D games was deemed too extensive, most game development has now switched over to Unity.