informa
2 min read
article

Feature: Data-Oriented Design - Now And In The Future

In an Intel-sponsored reprint of a Game Developer magazine article from September 2010, game industry coder and veteran Noel Llopis takes a closer look at Data-Or
In an Intel-sponsored reprint of a Game Developer magazine article from September 2010, game industry coder and veteran Noel Llopis takes a closer look at Data-Oriented Design. Llopis notes that, by reorganizing the entity update function, it's possible to "significantly improve performance and parallelization". "By removing the ray cast calls from within the entity update function, we've shortened the call tree significantly," he explains. "The functions are more self-contained, easier to understand, and probably much more efficient because of better cache utilization." "You can also see how it would be a lot easier to parallelize things now by sending all ray casts to one core while another core is busy updating something unrelated (or maybe by spreading all ray casts across multiple cores, depending on your level of granularity)." However, Llopis points out that, "If this is the only change we make to the entity update, and the rest of the code is the usual deep tree-traversal code, we might not have gained much because we're still blowing the cache limits with every update." He suggests that modifying the data to fit the way it's being used is the key to boosting the performance. "After seeing how the entity is updated in two separate passes," he says, "you might notice that only some of the data that was stored in the entity object is touched on the first update, while the second pass accesses more specific data." "At that point we can split up the entity class into two different sets of data. Then the most difficult task is to name these sets of data in some meaningful way. They're not representing real objects or real-world concepts anymore, but different aspects of a concept, broken down purely by how the data is processed." The sponsored feature is live now on Gamasutra, and goes into more depth regarding ways to improve performance for Data-Oriented Design.

Latest Jobs

Treyarch

Playa Vista, California
6.20.22
Audio Engineer

Digital Extremes

London, Ontario, Canada
6.20.22
Communications Director

High Moon Studios

Carlsbad, California
6.20.22
Senior Producer

Build a Rocket Boy Games

Edinburgh, Scotland
6.20.22
Lead UI Programmer
More Jobs   

CONNECT WITH US

Register for a
Subscribe to
Follow us

Game Developer Account

Game Developer Newsletter

@gamedevdotcom

Register for a

Game Developer Account

Gain full access to resources (events, white paper, webinars, reports, etc)
Single sign-on to all Informa products

Register
Subscribe to

Game Developer Newsletter

Get daily Game Developer top stories every morning straight into your inbox

Subscribe
Follow us

@gamedevdotcom

Follow us @gamedevdotcom to stay up-to-date with the latest news & insider information about events & more