GDC is part of the Informa Tech Division of Informa PLC

This site is operated by a business or businesses owned by Informa PLC and all copyright resides with them. Informa PLC's registered office is 5 Howick Place, London SW1P 1WG. Registered in England and Wales. Number 8860726.

View, browse and sort the ever-growing list of sessions by pass type, topic, and format. All registered attendees will be able to build their personal schedule in the mobile event app, once live early 2022.

GDC Masterclass courses require a paid pass to attend. Class sizes are kept intentionally small and seats are limited to ensure every student receives one-on-one assistance from the instructor. Pass pricing per course varies, please review the passes and pricing page for more details and secure your spot today!

'Knockout City's' Parallel, Deterministic, and Rewindable Entity System

Chris McEvoy  (Chief Programmer, Velan Studios)

Pass Type: All Access Pass, Core Pass - Get your pass now!

Topic: Programming

Format: Session

Vault Recording: TBD

Audience Level: No

We present a general-purpose game entity system that supports deterministic, parallel computation and the ability to rewind world state within a time window. Such a system can be used to support robust client-side prediction in a networked game, world state scrubbing at development time, and effective utilization of processing power on multi-core hardware. We discuss how the entity system, working together with our scripting language, ensures concurrent, deterministic, and efficient data flow, in a way that is largely transparent to users of the system. We show how this system was used on "Knockout City", an online multiplayer action game with dodgeball mechanics, to author everything from core gameplay to user interface and player progression.

Takeaway

An entity system is essentially a data organization problem coupled with a scheduling problem. While attendees will learn how we solved our data visibility, data lifetime, and compute scheduling challenges in the specific, the lessons described in this talk should be applicable to entity-data problems attendees will encounter elsewhere.

Intended Audience

Programmers interested in entity systems. A working understanding of data visibility in a multithreaded context will be helpful for portions of the talk.