Published Sep 3, 2019

Episode 175: Game Development with Andrew Brownsword

Andrew Brownsword delves into the evolution of graphics, the balance of game physics, and performance optimization in game development, revealing the role of technology in enhancing realism and playability. He also uncovers the complexities of concurrency management and Domain Specific Languages, offering insights into crafting engaging and efficient gaming experiences.
Episode Highlights
Software Engineering Radio - the podcast for professional software developers logo

Popular Clips

Episode Highlights

  • Resource Management

    Efficient resource management is crucial in game development, especially when dealing with limited memory and processing power. explains that developers often have to work with large amounts of data, such as 4 or 5GB on a disc, while the machine's memory is significantly smaller. This requires strategic loading and streaming of data to ensure smooth gameplay 1. highlights the importance of maintaining a consistent frame rate to avoid degrading the user experience, emphasizing the need to complete rendering, audio, and physics tasks within a tight timeframe 2.

    If you miss a frame consistently, it's going to seriously degrade the user experience.

    ---

    The choice of programming language also plays a role, with C being the primary language due to its performance capabilities and lack of alternatives on major gaming consoles 1.

       

    Performance Optimization

    Optimizing performance in game engines involves strategic batching and task management. discusses the necessity of identifying large tasks and processing them in batches to enhance efficiency, which can sometimes compromise object-oriented design principles 3. The challenge of platform independence is addressed by focusing on the 20% of code that is performance-intensive, often requiring platform-specific tuning 3.

    The basic rule of thumb is 80% of your performance happens in 20% of your code.

    ---

    Parallel processing is another critical aspect, with explaining how tasks are offloaded to GPUs and managed through a task graph system, allowing for asynchronous processing and efficient workload distribution 4.

Related Episodes