Abstract
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. However, hardware architectural changes like central processing unit will affect software architectures and can no longer be ignored. This is especially true for real-time applications, including computer games, which tend to push the limits of hardware and take the most advantage of available resources. By applying the concepts of concurrency, multithreading and multi-core Central Processing Unit (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 (5.1 % to 61.2 %) in the concurrent architecture over the conventional linear approach. User acceptance evaluation with several industry experts also showed encouraging feedback.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
References
Blake, G., Dreslinski, R.G., Mudge, T.: A survey of multicore processors. IEEE Signal Process. Mag. 26(6), 26–37 (2009)
Sutter, H.: The free lunch is over: a fundamental turn toward concurrency in software. Dr. Dobb’s J. 30(3) (2005). http://www.gotw.ca/publications/concurrency-ddj.htm. Accessed 25 Feb 2013
Joselli, M., Clua, E., Montenegro, A., Conci, A., Pagliosa, P.: A new physics engine with automatic process distribution between CPU-GPU. In: Proceedings of the 2008 ACM SIGGRAPH Symposium on Video Games, pp. 149–156 (2008)
Sutter, H., James, L.: Software and concurrency revolution. Queue-Multiprocessors 3(7), 54–62 (2005)
Pankratius, V., Schaefer, C., Jannesari, A., Tichy, W.F.: Software engineering for multicore systems: an experience report. In: Proceedings of the 1st International Workshop on Multicore Software Engineering, pp. 53–60 (2008)
Raaen, K., Espeland, H., Stensland, H.K., Petlund, A., Halvorsen, P., Griwodz, C.: A demonstration of a lockless, relaxed atomicity state parallel game server (LEARS). In: Proceedings of the 10th Annual Workshop on Network and Systems Support for Games (NetGames), pp. 1–3 (2011)
Best, M.J., et al.: Searching for concurrent design patterns in video games. In: Sips, H., Epema, D., Lin, H.-X. (eds.) Euro-Par 2009. LNCS, vol. 5704, pp. 912–923. Springer, Heidelberg (2009)
AlBahnassi, W., Mudur, S.P., Goswami, D.: A design pattern for parallel programming of games. In: Proceedings of the 14th International Conference on High Performance Computing and Communication, pp. 1007–1014 (2012)
Kehoe, J., Morris, J.: A concurrency model for game scripting. In: Proceedings of the 12th International Conference on Intelligent Games and Simulation, pp. 10–15 (2011)
Mattson, T., Wrinn, M.: Parallel programming: can we PLEASE get it right this time?. In: Proceedings of the 45th Annual Design Automation Conference, pp. 7–11 (2008)
Herlihy, M., Moss, J.E.: Transactional memory: architecture support for lock-free data structures. ACM SIGARCH Comput. Archit. 21(2), 289–300 (1993)
Miller, A.: The task graph pattern. In: Proceedings of the 2010 Workshop on Parallel Programming Patterns (2010)
Manolescu, D-A.: A data flow pattern language. In: Proceedings of the 4th Pattern Languages of Programming (1997)
Joselli, M., Zamith, M., Clua, E., Montenegro, A., Leal-Toledo, R., Conci, A., Pagliosa, P., Valente, L., Feijó, B.: An adaptative game loop architecture with automatic distribution of tasks between CPU and GPU. Comput. Entertain. 7(4) (2009) doi:10.1145/1658866.1658869
Gregory, J.: Game Engine Architecture. CRC Press, Boca Raton (2009)
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2015 Springer International Publishing Switzerland
About this paper
Cite this paper
Mohebali, A., Chiew, T.K. (2015). Redefining Game Engine Architecture Through Concurrency. In: Fujita, H., Selamat, A. (eds) Intelligent Software Methodologies, Tools and Techniques. SoMeT 2014. Communications in Computer and Information Science, vol 513. Springer, Cham. https://doi.org/10.1007/978-3-319-17530-0_11
Download citation
DOI: https://doi.org/10.1007/978-3-319-17530-0_11
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-17529-4
Online ISBN: 978-3-319-17530-0
eBook Packages: Computer ScienceComputer Science (R0)