COVER FEATURE NEXT-GENERATION GAME TECHNOLOGY The Data-Oriented Design Process for Game Development Jessica D. Bayliss, Rochester Institute of Technology & Unity Technologies Data-oriented design is a growing software development process for games that has not been well studied in academia. It seeks to subtract complicated design methods from problem solving and leverage the simplicity of what computer architecture is designed to do: input, transform, and output data. D ata-oriented design (DOD) grew when game When discussing software processes, it is important developers needed to use modern hardware to consider that we are likely biased when solving prob- architectures for performant games, and exist- lems using a computer. Current research suggests that ing software processes did not meet their needs. we overlook subtractive changes in problem-solving in The DOD process reduces software to a basic goal of com- comparison with additive changes.1 For example, when puter architecture: to input, transform, and output data. given a Lego block bridge that has a one-block differ- To properly explain DOD, we first define DOD and ence between the left and right sides, most people under compare it to similar processes. A history of how DOD a time constraint will choose to add a block to one side evolved is introduced, and core concepts in the DOD rather than remove a block from the other side. It makes process are further discussed through several relevant sense that this bias would also impact how we make examples. The Unity Technologies Data-Oriented Tech decisions in developing software. “Feature creep” is a Stack (DOTS) is brought up as a canonical use of DOD, known potential issue, and most software is developed and the conclusion mentions the use of DOD outside of within time constraints. This bias can lead to bloated game development as well as its future. and slow software, incompatible with soft real-time sys- tems, such as games, which are required to consistently Digital Object Identifier 10.1109/MC.2022.3155108 run at 30, 60, or even 100 (such as for virtual reality Date of current version: 6 May 2022 applications) frames/s. This work is licensed under a C r e a t i v e C o m m o n s A t t r i b u t i o n 4. 0 L i c e n s e . F o r m o r e i n f o r m a t i o n , s e e h t t p s : //c r e a t i v e c o m m o n s . o r g / l i c e n s e s / b y /4. 0 /d e e d . a s t PUBLISHED BY THE IEEE COMPUTER SOCIET Y M AY 2 0 2 2 31 NEXT-GENERATION GAME TECHNOLOGY The emphasis on data as a design DOD does not emphasize data con- out and carefully thought through driver allows DOD to reduce unneces- trol or data flow in a program, only that rather than just “thrown in” as part of sary complexity and emphasizes that the program be defined in terms of data a “generic” solution. Solving for a prob- transforming data well means that one input, transformations, and output. The lem that needs a flexible solution is a must understand characteristics of the core that ties all of the patterns in DOD different concrete problem than solv- data as well as the whole supply chain together is that programs only input, ing for nonflexible cases. of development (for example, hardware transform, and output data. All elements In the search to understand data transformations (especially when they work poorly), the whole supply chain for software development, including both hardware and tools, is considered. CURRENT RESEARCH SUGGESTS THAT As an example, hardware is consid- WE OVERLOOK SUBTRACTIVE CHANGES ered primarily because it provides the IN PROBLEM-SOLVING IN COMPARISON physical means to transform data. A DOD proponent does not seek to know WITH ADDITIVE CHANGES. all hardware specifics but to specifi- cally understand how the details of the hardware impact the constraints that the software needs to meet. The most and compilers) that implements data and patterns involved with DOD may be common hardware considerations in transformations. Historically, view- understood through this focus. DOD are cache performance and mul- ing data as core to the software devel- DOD asks detailed questions about ticore processing, for this reason. Both opment process is not a new concept. the data and uses answers to design soft- of these hardware elements greatly For example, data flow programming ware. Examples include asking about impact the performance of the input, was conceived in the 1960s and concen- transformation, and output of data. trates on the flow of data through soft- ›› type The core of DOD is not about opti- ware algorithms, primarily for parallel ›› distribution mization or making fast programs computation.2,3 The concept of data ›› count through hardware consideration; it is flow is related to DOD, but, in data flow, ›› storage about organizing programs around a the emphasis is not truly on knowledge ›› accuracy. deep knowledge of data and its transfor- of data but on the flow of data from one mation. A slow program can be based algorithm to another. In modeling, knowledge of the data around modeling data and ignoring the DOD is an imperative design process can change the way programs are cre- supply chain view that DOD proponents due to its emphasis on program state ated. As an example, it becomes possi- use. If performance is not important for changes; however, it is different from ble to consider which program system to the application, then the knowledge of similar-sounding design processes, create next from how often that system data can still be used to create software. such as data-driven design, which is is run and how much data it transforms. However, it cannot be understated that also related to data flow but allows the Within a game context, if a character engineering software well requires input data to control the state of the spends most of his or her time walking understanding transformations. Hard- program, sometimes even at a com- around the game world, one could fore- ware knowledge is required primarily puter architecture level.4 In software see that walking is very important and because models of software and compil- design, it is commonly used in games to should be a high priority in development. ers are abstractions, and those abstrac- increase flexibility. As an example, the Deep knowledge of data and the tions are leaky and inconsistent.5 data for a game level may contain infor- problem being solved leads to concrete mation about special effects and door solutions but does not preclude flexibil- THE HISTORY OF DOD state changes that are read in and exe- ity in software. Flexibility is part of the The movement toward data orienta- cuted by a data-driven game program. design process and should be planned tion in game development occurred 32 COMPUTER W W W.CO M P U T E R .O R G /CO M P U T E R after the PlayStation (PS) 3 game con- Technology that investigated DOD.9 Figure 1 contains an image of a smart- sole was released in the mid-2000s. Straume interviewed several game home device that can control multiple The game console used the Cell hard- industry proponents for DOD in the lights through verbal commands, but, ware architecture, which contains a thesis and concluded that, while they for a user who just wants to turn a light PowerPC core and eight synergistic differed in their characterizations of on/off, it is not readily apparent how processing elements, of which game DOD, the core characteristics of DOD to control a single light unless one has developers traditionally used six. This were to focus on solving specific prob- already memorized the name of the forced game developers to make the lems rather than generic ones, the con- light and the process for controlling it. move from a single-threaded view of sideration of all kinds of data, making It also does not work when the house software development to a more paral- decisions based on data, and an empha- has Internet problems. This represents lel way of thinking about game execu- sis on performance in a wide sense. an overcomplicated solution for the ini- tion to push the boundaries of perfor- Both Fabian and Straume discuss tial problem that requires extra data for mance for games on the platform. At DOD elements without fully tying what is really a single-bit operation. the same time, large-scale (AAA) game those elements together to form a This is similar to what happens development was growing in complex- design practice that can be used to cre- when software is constructed that tries ity, with an emphasis on more content ate software. The overarching theme to abstract away from the core prob- and realistic graphics. that ties all of the elements together lem it tries to solve. A complicated list Within that environment, data paral- is that software exists to input, trans- of many other problems may be solved, lelism and throughput were very import- form, and output data. but the initial reason for the software to ant. As practices coalesced around tech- exist may no longer be apparent or easy niques used in game development, the DOD to use. Another example of this in phys- term DOD was created and first men- ical hardware would be the PS4 game tioned in an article in Game Developer The light switch problem console power button. A lot of work was magazine in 2009.6 In DOD, questions about both the prob- obviously put into making sure that the In 2017, Unity Technologies, known lem and data used for the problem best for the Unity Real-Time Develop- need to be asked before attempting ment Platform used by many game a solution. The light switch problem developers, hired DOD proponents addresses the action of turning on a Mike Acton and Andreas Fredriksson light and exemplifies how to think of from Insomniac Games to “democ- data representation. In DOD, questions ratize data-oriented programming” about both the problem and data used and to realize a philosophical vision for the problem need to be asked before with the tagline of “performance by attempting a solution. For example: default.”7 The result has been the introduction of a DOTS, which is a ›› Is the light meant to be variable canonical use of DOD techniques. in intensity or just on and off? To date, many blogs and talks have ›› What hardware is available to help discussed DOD since the original arti- with turning the light on/off? cle, but very little has been studied in ›› What data are necessary for academia regarding the process. Rich- turning the light on/off? ard Fabian, a practitioner from indus- try, published a book on DOD in 2018, If the light is meant to be a simple although it existed for several years in light that can be turned on and off, then FIGURE 1. A smart-home device that is draft form online.8 it really only requires a single bit of data capable of turning multiple lights on/off as In 2019, a master’s thesis was pub- to represent on (one) and off (zero). An well as controlling blinds through verbal lished by Per-Morten Straume at the abstract solution can easily obscure commands. Norwegian University of Science and necessary data for the problem solution. M AY 2 0 2 2 33 NEXT-GENERATION GAME TECHNOLOGY game controller can turn the PS4 on/ commonly creates more complicated breaking rocks, tilling soil, planting off, but people not using the game con- solutions that need to be fully tested/ crops, and selling those crops to a store troller may have to look up an image to debugged. Additional levels of com- for money. The full simulation is too see where the power on/off switch is plexity also equal additional require- complex for presentation, but it is use- located, as it is hidden under a decora- ments for testing and validation. ful to show how to model software from tive panel on the front of the PS4. One bit that represents the on/off a data perspective. Given the complexity of most soft- behavior of the light is necessary to How does one begin to view this in ware problems that need much more turn on the light. Subtracting all of the a DOD way, and how does using DOD than a single bit of data, it is import- extra data available yields an interface alter the software development of the ant not to allow extra complexity into to the light bit that could look some- program? Ignoring the 3D models in the solution, as that extra complexity thing like Figure 2(a). This particular the program (which each have their solution is very similar to the solutions own data), one potential set of main that DOD proponents seek in that it simulation data includes well represents the data and transfor- mation of those data. ›› position (x, y) There are some extra considerations ›› speed involved with that solution outside of ›› direction the initial questions asked, though. For ›› target instance, the wall plate acts as a safety ›› state measure and covers the wires on the ›› scale. back side of the light switch so that peo- ple cannot accidentally touch them. It These are the data necessary to per- is normal for extra considerations to form the simulation part of the program. come up in the design and implemen- Rather than considering each “thing” in (a) (b) tation of a solution, but each consider- the game as its own object with separate FIGURE 2. A switch (a) that minimizes the ation should be carefully thought about activities, writing out data information data necessary for turning on a light and before being added to the solution. allows operations across the game to be (b) with slightly more data that allows a In Figure 2(a), the solution assumes batched where possible and functional- user to reason about which direction of the user knows that up is the on posi- ity used by multiple sets of data. the light switch is the on position. tion and down is the off position, as the As an example, everything in the state change is not labeled. While this game has a position and can be placed is true in some countries, in others, the at the same time. Only plants and opposite is true. farmers move. (Plants are carried to This hinders the usability of the the store by farmers.) This allows for switch, as the light switch on the left the same movement functionality to does not contain all necessary data for a be used on farmers and plants. DOD user to know how to turn it on and off. looks at common data as well as oper- A final solution to the light problem may ations and allows for the batching of look something like Figure 2(b), where those data with those operations. ON is displayed, and the user is given all In viewing the simulation in a DOD of the information necessary to turn on manner, planning would also look at the light. which transformations are made the most often. As an example, farmers in FIGURE 3. The Autofarmers simulation, The Autofarmers simulation the simulation spend most of their time where robotic farmers break rocks, till soil, problem walking to different places. Hence, plant procedurally generated crops, and The Autofarmers simulation is shown a DOD-based solution would seek to take those crops to the market. in Figure 3 and consists of farmers understand the exact data necessary 34 COMPUTER W W W.CO M P U T E R .O R G /CO M P U T E R for the input to movement (for exam- input data are in bytes that range from 0 DOD solutions require as much ple, the position, speed, direction, and to 255. Each individual byte is in a qua- knowledge about the problem and target) and construct the movement druplet that represents the red, green, transformations as possible. For exam- transformation early in writing the blue, and alpha values in the color ple, is it required that the solution not software for the simulation. image. The image being transformed overwrite the original image? If not, This would allow for experiments to will be in an array of 1,024 × 1,024, then two arrays are not necessary in be made that measure pathing/move- meaning that there are 1,048,576 pixels the potential solution. What is the ment and potential solutions for any (each with a red–green–blue–alpha qua- hardware, and what language is being problems found. Using a poor solution druplet) to be transformed. used for the solution? for pathing/movement means that the One possible transformation from If the hardware is a modern PC archi- simulation may run poorly due to the color to gray scale mathematically is tecture, then cache usage should be con- amount of time spent moving in the the byte average of the red, green, and sidered, along with multiprocessor capa- simulation, and this is a priority prob- blue color information. The average bilities. Both of these things are parts of lem for software development due to for each pixel’s color information will hardware that can greatly impact the the frequency of the data transforma- replace each pixel’s red, green, and blue engineering of data transformations. tion in the program. information, while the value of alpha will remain the same. The output is an Organizing data for good cache Using minimal data for a concrete array of size 1,024 × 1,024. usage. One of the main bottlenecks solution. Most data used in the imple- The minimal design for this pro- for performance on modern PCs is the mentation of Autofarmers are 2D since gram consists of the input data (an bus and data transfer from storage to the simulation is 2D, and the height is a array with all of the data elements), the processor. The concept of caching constant. Developing a 2D simulation the gray scale transformation, and away data is fairly simple. If somebody is a different problem than creating a the output of the 1,024 × 1,024 trans- is working late one night, and they 3D one, in terms of both data and algo- formed data. Here is a potential partial think ahead of time that a snack might rithms. This is not a case where three code transformation for the problem be good for an energy boost in the early dimensions should be solved for “just that will yield a solution: hours of the morning, then they will in case” since the algorithms and data grab the snack (assuming it doesn’t are different for each one. On average, for (int x = 0; x < width; x += 4){ need refrigeration—don’t try this with 3D computations are more expensive for (int y = 0; y < height; y++){ ice cream) and put it near their desk. than 2D ones, as well. byte avg =(byte)((image[y, x] + That way, they will not have to get up image[y, x + 1] + and go to the kitchen later. The food DOD SOFTWARE DESIGN image[y, x + 2])/3); has been cached near the desk. A key element of design is data, so one result[y, x] = avg; Computers also think ahead and pre- designs data before code and views the result[y, x + 1] = avg; cache data for the processor. That way, it data early and often. The hardware result[y, x + 2] = avg; can more quickly and easily move those and compiler information are used result[y, x + 3] = image[y, x + 3]; data into and out of registers for process- along with any other tools that impact } ing. The time cost for an L1 cache (the data transformations to understand } closest cache to the processor) access is the transformation and how to best less than 1 ns, whereas random-access make that transformation. The potential transformation takes memory access off the chip is on the the data, converts those data to gray order of 100 ns. If the wrong data are An image transformation problem scale through averaging the color brought into the cache because they are Say that the problem is to transform information, and puts that data into poorly organized in memory, then the image data from color to gray scale. an output array. Is this the best poten- penalty time to read the correct data is For a DOD solution, one must first start tial solution? It is unknown, as there much larger than if the data were able to with the data, which should be designed is information about the problem and be prefetched for use. Additionally, the before the code. For this problem, the transformation that has not been stated! extra time cost for access to data farther M AY 2 0 2 2 35 NEXT-GENERATION GAME TECHNOLOGY away from the processor also turns into for the solution), data are in a row-major important as games have evolved. The extra power usage, as moving data costs format, meaning that elements are laid DOD view of programs as data input, more in terms of power than processing out next to each other in rows, rather transformation, and output is helpful those data. than column-major format (for example, when designing for parallel processing. Structurally, a common pattern for Fortran), where columns are next to each The need for synchronization is a large organizing data for good cache usage other in memory. Taking this informa- bottleneck to performance for games. is to employ Structures of Arrays (SoA) tion into account means that, to properly Since race conditions only happen to organize arrays of homogeneous lay out the image data for transforma- when data can be changed or written data so that they can easily be read and tion, the two for loops in the piece of code to, knowledge of the read and write used in programs. A common phrase should be swapped (image height should status for all data and when transfor- in DOD says that “where there is one, come first, with the inner loop on image mations happen in a program helps to there are many,” as processing data width) for better cache utilization. avoid race conditions. The SoA format in a batch can have multiple benefits, Better cache utilization is only can be used to help batch jobs since including good cache usage. This dif- needed for the solution because the parallelization needs a certain number fers from some traditional approaches, requirement specifies that the data of elements to process before parallel where all data based around a single count is enough that cache utilization processing becomes advantageous. concept are organized in a class based will make a difference in performance. around that concept, and instances It is possible that DOD can be used to The image transformation problem of those classes are put into arrays accomplish goals other than perfor- and multiprocessor usage. For the and methods called on each individ- mance, such as memory or power utili- image transformation problem, using ual instance. Figure 4 shows how the zation considerations. For this applica- multiple processors likely will not help organization differs in SoA when com- tion, if the image was a 16 × 16 image, to solve the problem, as it is only a single pared to Arrays of Structures (AoS). then it would not matter which way the small image that is being transformed, transformation was done because there and the overhead for setting up parallel The image transformation problem are only 256 total pixels to transform, processing can be more than the trans- and cache usage. Organizing data for and they can fit within the cache on formation of a single image. In the case good cache usage appears to have modern processors. of a problem that required transform- already been done for the potential solu- ing a set of images, parallel processing tion in the image problem. However, Multiprocessor usage. Multiproces- could be very useful and save signifi- in the C# language (the language chosen sor performance has become more cant time in processing. View data early and often. Even Structures of Arrays Arrays of Structures though the first potential solution is not a good one when further infor- Type1[ ] System1 mation is seen regarding the problem A[1]: and data, proposing the first solution Type1 allows us to reason about the data Type2 A[0]: System1 A[2]: and improve on how it is input, trans- Type2[ ] System2 Type1 System2 Type1 formed, and output. Many problems Type2 Type2 exist that do not have fully specified System1 System1 requirements. Examples in game System2 System2 development abound since it is a cre- ative field, and game designs change frequently to “find the fun.” FIGURE 4. Structures of Arrays (SoA), where data are laid out in homogenous arrays Viewing the data early and often fed into systems for data transformation, and Arrays of Structures (AoS), where data are aids in approximate solutions for generally laid out in instances of classes, and systems are called on single pieces of data. incomplete data knowledge. As an 36 COMPUTER W W W.CO M P U T E R .O R G /CO M P U T E R example, DOD proponents commonly handles for a key chain of specific data well as which jobs run at what time write small, experimental programs components associated with the entity, within the frame, and it shows this (or add debugging statements to components are struct data (in C#, a across worker threads. existing programs) that seek to deter- struct is a value type) for input/output, An entity debugger allows runtime mine unknown knowledge, such as and systems are the data transforma- information to be displayed. Infor- frequency or range. This knowledge tions necessary for solving problems. mation about both components and can help refine a solution. In this If some of this information reminds systems is displayed, and data can be way, progressive approximations can people of databases, it is true that DOD filtered to obtain information about a be made. While incomplete data can can be compared to how data are orga- specific type of component. With these lead to solutions that must be iterated nized in databases, and DOD-based tools, it is easier to create small exper- on, flexibility in an application is frameworks commonly have the con- iments to discover information about part of the design process and should cept of a program-based query. An data during the runtime. be carefully considered separately ECS allows for queries on components D from the experiments done for mea- and commonly uses them as filters suring data. for jobs. OD concepts have been pre- sented within the context of THE UNITY DOTS Job system the game development field. Unity’s DOTS is a large-scale indus- The job system exists to make data par- DOD does not just exist within the game try example of DOD and consists of an allelism in C# easier. Jobs accept blit- development field, and there are indica- experimental set of packages in Unity table (simple data types, such as float tions that it has relevance for other fields that were introduced after they were and int) structures, transform the data in software development. As an exam- announced in 2017.4 It is currently the in those structures, and output results. ple, in 2014, CppCon: The C++ Confer- most publicly available example of The job system contains several differ- ence invited DOD proponent Mike Acton DOD in an industry product since the ent constructs that range from job-based to give a keynote speech to the larger C++ entity component system (ECS) source parallel for loops that capture outside community,10 and common DOD design code is viewable online. The core com- variables with a lambda expression to patterns, such as using SoA rather than ponents of DOTS are structures that have their own execute AoS, can aid any application that pro- function. cesses a lot of data programmatically. ›› the burst compiler Job inputs can be tagged as read only In terms of philosophy, some of ›› an ECS to allow for better knowledge regard- the concepts of DOD are at odds with ›› a job system ing how the data are being input, trans- object-oriented design (OOD), although ›› testing and debugging formed, and output. Jobs expect to it depends on which definition of OOD support tools. obtain data laid out in an SoA manner, is used, and it is highly dependent on and options exist to determine vari- the problem being solved. A discussion Burst compiler ous worker thread settings. of the many OOD definitions is outside The burst compiler is an excellent the scope of this article, but, since DOD example of understanding and using Testing and debugging requires that the data be considered the whole software development supply support tools first and foremost for software devel- chain to create better solutions. It is an One important part of viewing data opment, simulated objects represent- LLVM-based compiler technology that early and often is to have support for ing the problem space are unlikely to optimizes C# code for Unity’s job sys- adequately accessing the data. While be used. The philosophy of DOD does tem. It exists to allow for better overall profiler support of the job system in not state that objects representing the game performance when using DOTS. Unity is not one of the main selling problem space cannot be used if they features of DOTS, it supports DOD happen to well represent the data for ECS development efforts deeply. The pro- input, transformations, and output. Unity’s ECS implementation works filer specifically profiles per frame and DOD promotes solving concrete prob- closely with the job system. Entities are shows overall job system utilization as lems as opposed to generic ones, which M AY 2 0 2 2 37 NEXT-GENERATION GAME TECHNOLOGY changes,” Nature, vol. 592, no. 7853, pp. 258–261, 2021, doi: 10.1038/ ABOUT THE AUTHOR s41586-021-03380-y. 2. D. A. Adams, “A computation model with data flow sequencing,” Comput. JESSICA D. BAYLISS is a professor in the School for Interactive Games and Sci. Dep., Stanford Univ., Stanford, Media, Golisano Computing College, Rochester Institute of Technology (RIT), CA, USA, Tech. Rep. CS 117, 1968. Rochester, New York, 14623, USA, as well as a data-oriented design research 3. J. B. Dennis, “First version of a data and applications engineer at Unity Technologies. Her research interests flow procedure language,” in Proc. include game development as well as co-creating the B.S./M.S. degrees in Programming Symp., Colloque sur la game design and development at RIT. Bayliss received a Ph.D. in computer sci- Programmation, B. Robinet, Ed. Ber- ence from the University of Rochester. She is a Member of IEEE, the Association lin, Germany: Springer-Verlag, 1974. for Computing Machinery, and the International Game Developers Association. 4. P. C. Treleaven, D. R. Brownbridge, Contact her at jessica.bayliss@unity3d.com or jdbics@rit.edu. and R. P. Hopkins, “Data-driven and demand-driven computer architecture,” ACM Comput. Surv., vol. 14, no. 1, pp. 93–143, 1982, doi: seems to indicate that it is against poly- the future development of performant 10.1145/356869.356873. morphism and many inheritance uses in games. Future work includes further 5. J. Spolsky, “The law of leaky abstrac- programs. Certainly, there are engineer- research into the problems encoun- tions?” Joelonsoftware.com. https:// ing reasons to reject deep hierarchies and tered with this approach for large- www.joelonsoftware.com/2002/11/11/ virtual functions in favor of other ways of scale systems as well as the benefits for the-law-of-leaky-abstractions/ development that better align with hard- using DOD for such systems. (Accessed: Mar. 23, 2022). ware architectures on large game proj- 6. N. Llopis, “Data-oriented design (or ects with performance requirements. ACKNOWLEDGMENTS why you might be shooting your- The philosophy of DOD does not, in and The author would like to thank Mike self in the foot with OOP),” Game of itself, reject all uses of these elements Acton for conversations about the his- Developer Magazine, vol. 16, no. 8, since there are many problems that need tory of DOD and encouraging the use of Sep. 2009. flexibility in their solutions, and the phrases that he has spoken many times 7. Unity Technologies, San Francisco, Unity DOTS example does make use of in reference to DOD. The author is also CA, USA, Unite Europe 2017 Keynote. concepts such as interfaces to set out con- thankful to the people at Unity Tech- (2017). [Online Video]. Avail- tractual obligations in program code. nologies for the chance to study a work- able: https://www.youtube.com/ DOD use has grown in the last decade, ing example of core DOD and Sebastian watch?v=-jZdMFPACpU and, as it becomes more prevalent beyond Schöner for conversations regarding 8. R. Fabian, Data-Oriented Design: its use in large game programs, it is this article. Early conversations about Software Engineering for Limited important that DOD be recognized and this material, especially regarding the Resources and Short Schedules. Rich- studied in academia. DOD focuses on DOTS job system, are also based upon ard Fabian, 2018. developing software based around data the effort to support more parallel and 9. P. Straume, “Investigating data-ori- input, transformation, and output. The distributed computing education at all ented design,” M.S. thesis, Nor- emphasis on design through considering levels of the curriculum as supported wegian Univ. Sci. Technol., Trond- data first can aid in clarifying the minimal by the National Science Foundation heim, Norway, 2019 [Online]. set of data needed to solve a problem and under grant NSF-1730527. Available: https://hdl.handle. allow reasoning about concepts, such as net/11250/2677763 data parallelism for multicore solutions. REFERENCES 10. M. Acton, Data-Oriented Design and DOD has been used for large-scale 1. G. S. Adams, B. A. Converse, A. C++. (2014). [Online Video]. Avail- projects in industry, with Unity’s DOTS H. Hales, and L. E. Klotz, “People able: https://www.youtube.com/ as a prime example meant to encourage systematically overlook subtractive watch?v=rX0ItVEVjHc 38 COMPUTER W W W.CO M P U T E R .O R G /CO M P U T E R
Authors Jessica D. Bayliss
License CC-BY-4.0