Engineering 2 1156 High Street, Santa Cruz, California 95064

The Entity-Component-System (ECS) software design pattern, long used in game development, encourages a clean separation of identity (entities), data properties (components), and computational behaviors (systems). Programs written in the ECS pattern are naturally concurrent, and the pattern offers modularity, flexibility, and performance benefits that have led to a proliferation of ECS frameworks. Nevertheless, the ECS pattern is little-known and not well understood outside of a few domains. Existing explanations of the ECS pattern tend to be mired in the concrete details of particular ECS frameworks and the design of ECS frameworks is often driven by the needs of video games, to the detriment of realizing the ECS pattern as a general-purpose tool.

We designed a formal model, Core ECS, that abstracts away the details of specific implementations to reveal the ECS pattern. We precisely identified a class of Core ECS programs (called safe) that behave deterministically regardless of scheduling, enabling use of the ECS pattern as a deterministic-by-construction concurrent programming model. With Core ECS as a point of comparison, we surveyed the documentation and source code of several existing ECS frameworks and found that they all leave opportunities for safe concurrency unexploited. Our work suggests a space for new ECS implementation techniques that can better leverage the full range of the safe concurrency we identified. We propose to develop a compiler from an ECS DSL to programs in the ECS pattern, as a test bed with which to evaluate the performance of traditional ECS implementation techniques alongside new techniques that we will invent. We suggest that ECS frameworks can be viewed as "off the shelf" programming language runtimes, and propose to test this idea by implementing a second compiler from a high-level functional language to ECS systems, via supercombinators. Our encoding of supercombinators to ECS systems makes extensive use of the exact mutation operations we identified that traditional ECS frameworks cannot execute in parallel, but our proposed new implementation techniques will aim to improve. Therefore, composing our two compilers as frontend and backend ties our three works into a tidy bundle.

 

 

Event Host: Patrick Redmond, Ph.D. Student, Computer Science & Engineering

Advisor: Lindsey Kuper

Event Details

See Who Is Interested

  • Siddhant Madhur

1 person is interested in this event


User Activity

No recent activity