OpenGL | D- An Alternative Approach to Multi-user Architecture
Multi-user applications can be complex to develop due to their large or intricate nature. Many of the issues encountered are related to performance and security. These issues are exacerbated when the scale of the application increases. This paper introduces a novel distributed architecture called OpenGL D (OpenGL Distributed) for multi-user applications with the focus firmly on multiplayer games. This is specifically designed to address the scalability and real-time performance of concurrent synchronisation designs, which are at the core of all multi-user applications. OpenGL D provides a simple high level software abstraction and platform agnostic approach to aid the application development process, aimed in particular towards 3D software such as games and visual simulations. OpenGL D enables an application to pass through the graphical calls between a Virtual Machine (VM) and the graphics processing unit (GPU) on the native host across a network. This ability allows computationally intensive applications to run inside a virtual machine (VM), whilst still benefiting from hardware accelerated performance from the GPU. We present our results through a number of prototype games developed by our team. The usability of OpenGL D was tested under a time-constrained development condition, i.e. 48-hour games jams, demonstrating good performance and the increased ease of use over existing off-the-shelf solutions, such as those provided by game engines. In addition to this, the software developed for our tests has no dependencies on specific hardware or technologies (other than ANSI C and a network stack) in order to demonstrate our approach to platform agnostic development and digital preservation. On one of the more "exotic" platforms we tested on (Plan 9 on ARM), this was provided by the ANSI/POSIX Environment (APE) layer. Thus, with OpenGL D developers only need to create a multiplayer game using our simple high-level software abstraction, as they will then have the implicit guarantee that it will run on future platforms. It should be noted that this article is an extended version of the work we submitted to the Cyberworlds 2017 conference.