Skip to main content

Redefining Game Engine Architecture Through Concurrency

  • Conference paper
  • First Online:
Intelligent Software Methodologies, Tools and Techniques (SoMeT 2014)

Part of the book series: Communications in Computer and Information Science ((CCIS,volume 513))

  • 908 Accesses

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

References

  1. Blake, G., Dreslinski, R.G., Mudge, T.: A survey of multicore processors. IEEE Signal Process. Mag. 26(6), 26–37 (2009)

    Article  Google Scholar 

  2. 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

  3. 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)

    Google Scholar 

  4. Sutter, H., James, L.: Software and concurrency revolution. Queue-Multiprocessors 3(7), 54–62 (2005)

    Article  Google Scholar 

  5. 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)

    Google Scholar 

  6. 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)

    Google Scholar 

  7. 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)

    Chapter  Google Scholar 

  8. 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)

    Google Scholar 

  9. 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)

    Google Scholar 

  10. 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)

    Google Scholar 

  11. Herlihy, M., Moss, J.E.: Transactional memory: architecture support for lock-free data structures. ACM SIGARCH Comput. Archit. 21(2), 289–300 (1993)

    Article  Google Scholar 

  12. Miller, A.: The task graph pattern. In: Proceedings of the 2010 Workshop on Parallel Programming Patterns (2010)

    Google Scholar 

  13. Manolescu, D-A.: A data flow pattern language. In: Proceedings of the 4th Pattern Languages of Programming (1997)

    Google Scholar 

  14. 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

  15. Gregory, J.: Game Engine Architecture. CRC Press, Boca Raton (2009)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Thiam Kian Chiew .

Editor information

Editors and Affiliations

Rights and permissions

Reprints 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)

Publish with us

Policies and ethics