Abstract
The transition to multicore architectures has dramatically underscored the necessity for parallelism in software. In particular, while new gaming consoles are by and large multicore, most existing video game engines are essentially sequential and thus cannot easily take advantage of this hardware. In this paper we describe techniques derived from our experience parallelizing an open-source video game Cube 2. We analyze the structure and unique requirements of this complex application domain, drawing conclusions about parallelization tools and techniques applicable therein. Our experience and analysis convinced us that while existing tools and techniques can be used to solve parts of this problem, none of them constitutes a comprehensive solution. As a result we were inspired to design a new parallel programming environment (PPE) targeted specifically at video game engines and other complex soft real-time systems. The initial implementation of this PPE, Cascade, and its performance analysis are also presented.
Chapter PDF
Similar content being viewed by others
Keywords
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.
References
Leonard, T.: Dragged Kicking and Screaming: Source Multicore. In: Game Developers Conference (2007)
Chandra, R.: Parallel Programming in OpenMP. Morgan Kaufmann, San Francisco (2001)
Open Dynamics Engine, http://www.ode.org/
Blumofe, R.D., et al.: Cilk: An efficient multithreaded runtime system. Journal of Parallel and Distributed Computing 37(1), 55–69 (1996)
Isard, M., et al.: Dryad: distributed data-parallel programs from sequential building blocks. SIGOPS Oper. Syst. Rev. 41(3), 59–72 (2007)
Reinders, J.: Intel Threading Building Blocks: Outfitting C++ for Multi-Core Processor Parallelism. O’Reilly, Sebastopol (2007)
Microsoft Parallel Computing Platform, http://msdn.microsoft.com/en-ca/concurrency/
McKenney, P.E., et al.: Read-copy update. In: Ottawa Linux Symposium, pp. 338–367 (2002)
Munshi, A.: OpenCL: Parallel Computing on the GPU and CPU (2008)
Thies, W., et al.: A practical approach to exploiting coarse-grained pipeline parallelism in C programs. In: MICRO (2007)
Kulkarni, M., et al.: Optimistic parallelism requires abstractions, pp. 211–222 (2007)
Asanovic, K.: et al: The Landscape of Parallel Computing Research: A View from Berkeley. Electrical Engineering and Computer Sciences, University of California at Berkeley, Technical Report No. UCB/EECS-2006-183, December 18(2006-183), 19 (2006)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2009 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Best, M.J. et al. (2009). Searching for Concurrent Design Patterns in Video Games. In: Sips, H., Epema, D., Lin, HX. (eds) Euro-Par 2009 Parallel Processing. Euro-Par 2009. Lecture Notes in Computer Science, vol 5704. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-03869-3_84
Download citation
DOI: https://doi.org/10.1007/978-3-642-03869-3_84
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-03868-6
Online ISBN: 978-3-642-03869-3
eBook Packages: Computer ScienceComputer Science (R0)