Alan Davies' Portfolio Site

OpenGl Java Project: 3D Game Engine


This project is my translation of C++ programming depth from my University experience, exploring the implications of using rendering and shader techniques in Java.


About:

This project uses OpenGL, a library known as "Lightweight Java Game Library" or LWJGL; this library is supported by "Slick-Util" to help manage sounds and images. I aimed to implement real-time rendering techniques that help create 3D environments, respecting lighting from both global and point sources.

Whilst it seems like a simple objective, the creation, injection and lighting of 3D models can present some challenges, reading of external files, management of shader pipeline as well as camera implementation for navigation. I've attached some images below to showcase the results.


Image Gallery



Dragon model credit: Stanford University Dragon model


On reflection after industry, I see areas where this project could improve implementation to support maintainability. Unfortunately, this project suffers from a concrete dependency on a Jar that is no longer available; much of the vector maths and texture processors depend on this library.

Writing code exclusively dependent on the C++ redistributable libraries in university; my training with QA Ltd has shown me Apache Maven, a build tool that helps manage and control the respective versioning of dependencies. Using Maven has shaped my future Java development, particularly as my time with code maintenance with a client has shown the impact of long-term maintainability when using such a build tool.

The state of this particular project has presented a block in maintaining it; however, the value of creating this project served a valuable purpose - exploring Java and implementing real-time rendering techniques in a newly introduced programming language.


Return

|

Alan Davies. © 2024