Redefining game engine architecture through concurrency - Mohebali, A.; Chiew, T.K. (2014)
Over the past 30 years, software developers have been conveniently taking advantage of hardware performance increase, giving little consideration to internal architecture changes of the hardware like central processing unit. In the years to come, these hardware architectural changes will affect software architectures and can no longer be ignored. This is especially true for real-time applications, which tend to push the limits of hardware and take the most advantage of available resources. As a result, computer game applications which are inherently real-time and known for pushing computer hardware boundaries will not be immune. By studying the concepts of concurrency, multithreading and multi-core CPU technology, this paper redefines the existing linear architecture of game engines as a generic concurrent and multi-core friendly architecture. Major game engine modules and their inter-dependencies are identified in order to design the new architecture. A sample game was developed to evaluate the performance of the proposed architecture. The comparison of the test results provided in this paper indicates noticeable improvements in the concurrent architecture over the conventional linear approach.