Skip to content

Data-Oriented Design

    Book Name: Data-Oriented Design
    Category: Software Engineering
    Free Download: Available


    Data-Oriented Design: Software Engineering for Limited Resources and Short Schedules 

    Projects tackled by the software development industry have grown in scope and complexity. The cost increases with the number of developers. Electricity bills for distributed projects have literally reached the point of optimization of paying dividends. In the past 10 years, a software development movement has taken root, a movement founded on game development. The limited resources and complexity of the software and hardware needed to deliver modern titles necessitated a different approach. Data-driven design is inspired by high-performance computing techniques, database design, and functional programming values. It provides a practical method of reducing complexity while improving the performance of your product and development teams. Understand goals, understand data, understand hardware, develop solutions. This book presents the foundations and principles for a deeper understanding of data-driven design. It provides guidance on the thought processes involved when considering data as a key detail of any project.

    Data-Oriented Design: Software Engineering for Limited Resources and Short Schedules PDF

    Description of the book

    The thinking behind data-driven design is very similar to how you would think about relational databases. Relational database optimization is also possible through more efficient use of cache, even if in this case the CPU cache is not the cache of cached pages in memory. A good database designer would probably separate infrequently accessed data into a separate table rather than creating a multi-column table where only a few columns are used.

    This book is a practical guide for serious game developers. It’s aimed at game developers working to make triple-A titles across multiple platforms, indie developers trying to get the most out of their chosen target hardware, in fact. Practically anyone develops advanced software in limited documentation.

    This is a book on how to code. It’s a book written to educate game developers about a coding model that’s right for the future, unlike the coding style we’re all too familiar with. This is a book based on C++, the language of choice for game developers over the past decade, and provides practical advice on how to get around without throwing away code and years of accumulated experience. . This book explains how you can transform your growth.

    Book Contents

    Data-Oriented Design
    It’s all about the data
    Data is not the problem domain
    Data and statistics
    Data can change
    How is data formed?
    The framework
    Conclusions and takeaways

    Relational Databases
    Complex state
    The framework
    Normalising your data
    Normalisation
    Primary keys
    1st Normal Form
    2nd Normal Form
    3rd Normal Form
    Boyce-Codd Normal Form
    Domain Key / Knowledge
    Reflections
    Operations
    Summing up
    Stream Processing
    Why does database technology matter?

    Existential Processing
    Complexity
    Debugging
    Why use an if
    Types of processing
    Don’t use booleans
    Don’t use enums quite as much
    Prelude to polymorphism
    Dynamic runtime polymorphism
    Event handling

    Component Based Objects
    Components in the wild
    Away from the hierarchy
    Towards managers
    There is no entity

    Hierarchical Level of Detail
    Existence
    Mementos
    JIT mementos
    Alternative axes
    The true measure
    Beyond space
    Collective LOD

    Searching
    Indexes
    Data-oriented Lookup
    Finding low and high
    Finding random

    Sorting
    Do you need to?
    Maintaining
    Sorting for your platform

    Optimisations
    When should we optimise?
    Feedback
    Know your limits
    A strategy
    Define the problem
    Measure
    Analyse
    Implement
    Confirm
    Summary
    Tables
    Transforms
    Spatial sets
    Lazy evaluation
    Necessity
    Varying length sets
    Joins as intersections
    Data-driven techniques
    SIMD
    Structs of arrays

    Helping the compiler
    Reducing order dependence
    Reducing memory dependency
    Write buffer awareness
    Aliasing
    Return value optimisation
    Cache line utilisation
    False sharing
    Speculative execution awareness
    Branch prediction
    Don’t get evicted
    Auto vectorisation

    Maintenance and reuse
    Cosmic hierarchies
    Debugging
    Lifetimes
    Avoiding pointers
    Bad State
    Reusability
    Reusable functions
    Unit testing
    Refactoring

    What’s wrong?
    The harm
    Mapping the problem
    Internalised state
    Instance oriented development
    Hierarchical design vs change
    Divisions of labour
    Reusable generic code

     

    Data-oriented design: software engineering for limited resources and short schedules

    Author(s): Richard Fabian

    Publisher: Richard Fabian, Year: 2018

    ISBN: 9781916478701

     

    Data-Oriented Design Richard Fabian PDF


    Download

    Download

    Download



    Buy From Amazon

    Related More Books
    Thanks For Visiting Our Website https://freepdfbook.com To Support Us, Keep Share On Social Media.