[go: up one dir, main page]
More Web Proxy on the site http://driver.im/ skip to main content
research-article

Polyphony: Programming Interfaces and Interactions with the Entity-Component-System Model

Published: 13 June 2019 Publication History

Abstract

This paper introduces a new Graphical User Interface (GUI) and Interaction framework based on the Entity-Component-System model (ECS). In this model, interactive elements (Entities) are characterized only by their data (Components). Behaviors are managed by continuously running processes (Systems) which select entities by the Components they possess. This model facilitates the handling of behaviors and promotes their reuse. It provides developers with a simple yet powerful composition pattern to build new interactive elements with Components. It materializes interaction devices as Entities and interaction techniques as a sequence of Systems operating on them. We present Polyphony, an experimental toolkit implementing this approach, and discuss our interpretation of the ECS model in the context of GUIs programming.

References

[1]
Georg Apitz and Franc cois Guimbretière. 2004. CrossY: A Crossing -Based Drawing Application. In Proceedings of the 17th Annual ACM Symposium on User Interface Software and Technology (UIST '04). ACM, New York, NY, USA, 3--12.
[2]
Caroline Appert and Michel Beaudouin-Lafon. 2008. SwingStates : Adding State Machines to Java and the Swing Toolkit. Software: Practice and Experience, Vol. 38, 11 (Sept. 2008), 1149--1182.
[3]
Caroline Appert, Stéphane Huot, Pierre Dragicevic, and Michel Beaudouin-Lafon. 2009. FlowStates : Prototypage D 'Applications Interactives Avec Des Flots De DonnÉEs Et Des Machines À ÉTats. In Proceedings of the 21st International Conference on Association Francophone D 'Interaction Homme-Machine (IHM '09). ACM, New York, NY, USA, 119--128.
[4]
Apple Inc. 2016. GameplayKit Programming Guide : Entities and Components. https://developer.apple.com/library/content/documentation/General/Conceptual/GameplayKit_Guide/EntityComponent.html.
[5]
Greg J. Badros, Alan Borning, and Peter J. Stuckey. 2001. The Cassowary Linear Arithmetic Constraint Solving Algorithm. ACM Trans. Comput.-Hum. Interact., Vol. 8, 4 (Dec. 2001), 267--306.
[6]
Michel Beaudouin-Lafon and Henry Michael Lassen. 2000. The Architecture and Implementation of CPN2000, a Post-WIMP Graphical Application. In Proceedings of the 13th Annual ACM Symposium on User Interface Software and Technology (UIST '00). ACM, New York, NY, USA, 181--190.
[7]
Benjamin B. Bederson, Jesse Grosjean, and Jon Meyer. 2004. Toolkit Design for Interactive Structured Graphics. IEEE Transactions on Software Engineering, Vol. 30, 8 (Aug. 2004), 535--546.
[8]
Benjamin B. Bederson, Jon Meyer, and Lance Good. 2000. Jazz: An Extensible Zoomable User Interface Graphics Toolkit in Java. In Proceedings of the 13th Annual ACM Symposium on User Interface Software and Technology (UIST '00). ACM, New York, NY, USA, 171--180.
[9]
Scott Bilas. 2002. A Data -Driven Game Object System.
[10]
L. Bishop, D. Eberly, T. Whitted, M. Finch, and M. Shantz. 1998. Designing a PC Game Engine. IEEE Computer Graphics and Applications, Vol. 18, 1 (Jan. 1998), 46--53.
[11]
Renaud Blanch and Michel Beaudouin-Lafon. 2006. Programming Rich Interactions Using the Hierarchical State Machine Toolkit. In Proceedings of the Working Conference on Advanced Visual Interfaces (AVI '06). ACM, New York, NY, USA, 51--58.
[12]
Gilad Bracha and William Cook. 1990. Mixin-Based Inheritance. In Proceedings of the European Conference on Object -Oriented Programming on Object -Oriented Programming Systems, Languages, and Applications (OOPSLA/ECOOP '90). ACM, New York, NY, USA, 303--311.
[13]
Marcellin Buisson, Alexandre Bustico, Stéphane Chatty, Francois-Régis Colin, Yannick Jestin, Sébastien Maury, Christophe Mertz, and Philippe Truillet. 2002. Ivy: Un Bus Logiciel Au Service Du Développement De Prototypes De Systèmes Interactifs. In Proceedings of the 14th Conference on L 'Interaction Homme -Machine (IHM '02). ACM, New York, NY, USA, 223--226.
[14]
Géry Casiez and Nicolas Roussel. 2011. No More Bricolage!: Methods and Tools to Characterize, Replicate and Compare Pointing Transfer Functions. In Proceedings of the 24th Annual ACM Symposium on User Interface Software and Technology (UIST '11). ACM, New York, NY, USA, 603--614.
[15]
Stéphane Chatty, Mathieu Magnaudet, and Daniel Prun. 2015. Verification of Properties of Interactive Components from Their Executable Code. In Proceedings of the 7th ACM SIGCHI Symposium on Engineering Interactive Computing Systems (EICS '15). ACM, New York, NY, USA, 276--285.
[16]
Gael Curry, Larry Baer, Daniel Lipkie, and Bruce Lee. 1982. Traits: An Approach to Multiple -Inheritance Subclassing. In Proceedings of the SIGOA Conference on Office Information Systems. ACM, New York, NY, USA, 1--9.
[17]
Brian Dorn, Adam Stankiewicz, and Chris Roggi. 2013. Lost While Searching: Difficulties in Information Seeking Among End -User Programmers. In Proceedings of the 76th ASIS &T Annual Meeting : Beyond the Cloud : Rethinking Information Boundaries (ASIST '13). American Society for Information Science, Silver Springs, MD, USA, 21:1--21:11.
[18]
Pierre Dragicevic and Jean-Daniel Fekete. 2001. Input Device Selection and Interaction Configuration with ICON. In People and Computers XV-Interaction without Frontiers. Springer, London, 543--558.
[19]
Ekwa Duala-Ekoko and Martin P. Robillard. 2012. Asking and Answering Questions About Unfamiliar APIs : An Exploratory Study. In Proceedings of the 34th International Conference on Software Engineering (ICSE '12). IEEE Press, Piscataway, NJ, USA, 266--276.
[20]
James R. Eagan, Michel Beaudouin-Lafon, and Wendy E. Mackay. 2011. Cracking the Cocoa Nut : User Interface Programming at Runtime. In Proceedings of the 24th Annual ACM Symposium on User Interface Software and Technology (UIST '11). ACM, New York, NY, USA, 225--234.
[21]
Ecma International. 2015. ECMAScript 2015 Language Specification textendash ECMA -262 6th Edition. http://www.ecma-international.org/ecma-262/6.0/index.html .
[22]
Alix Goguey, Géry Casiez, Thomas Pietrzak, Daniel Vogel, and Nicolas Roussel. 2014. Adoiraccourcix: Multi -Touch Command Selection Using Finger Identification. In Proceedings of the 26th Conference on L 'Interaction Homme -Machine (IHM '14). ACM, New York, NY, USA, 28--37.
[23]
Google Inc. 2015. CORGI : Main Page. http://google.github.io/corgi/.
[24]
Scott E. Hudson, Jennifer Mankoff, and Ian Smith. 2005. Extensible Input Handling in the subArctic Toolkit. In Proceedings of the SIGCHI Conference on Human Factors in Computing Systems (CHI '05). ACM, New York, NY, USA, 381--390.
[25]
Stéphane Huot, Pierre Dragicevic, and Cédric Dumas. 2006. Flexibilité Et Modularité Pour La Conception D 'Interactions : Le Modèle D 'Architecture Logicielle Des Graphes Combinés. In Proceedings of the 18th Conference on L 'Interaction Homme -Machine (IHM '06). ACM, New York, NY, USA, 43--50.
[26]
Stéphane Huot, Cédric Dumas, Pierre Dragicevic, Jean-Daniel Fekete, and Gérard Hégron. 2004. The MaggLite Post-WIMP Toolkit : Draw It, Connect It and Run It. In Proceedings of the 17th Annual ACM Symposium on User Interface Software and Technology (UIST '04). ACM, New York, NY, USA, 257--266.
[27]
Kenrick Kin, Björn Hartmann, Tony DeRose, and Maneesh Agrawala. 2012. Proton: Multitouch Gestures As Regular Expressions. In Proceedings of the SIGCHI Conference on Human Factors in Computing Systems (CHI '12). ACM, New York, NY, USA, 2885--2894.
[28]
Sam Lantinga. 1998. Simple DirectMedia Layer - Homepage. http://libsdl.org/.
[29]
Eric Lecolinet. 2003. A Molecular Architecture for Creating Advanced GUIs. In Proceedings of the 16th Annual ACM Symposium on User Interface Software and Technology (UIST '03). ACM, New York, NY, USA, 135--144.
[30]
Tom Leonard. 1999. Postmortem: Thief : The Dark Project. https://www.gamasutra.com/view/feature/131762/postmortem_thief_the_dark_project.php .
[31]
Quentin Limbourg, Jean Vanderdonckt, Benjamin Michotte, Laurent Bouillon, and V'ictor López-Jaquero. 2005. USIXML : A Language Supporting Multi -Path Development of User Interfaces. In Engineering Human Computer Interaction and Interactive Systems (Lecture Notes in Computer Science), Rémi Bastide, Philippe Palanque, and Jörg Roth (Eds.). Springer Berlin Heidelberg, 200--220.
[32]
Adam Martin. 2007. Entity Systems Are the Future of MMOG Development textendash Part 1.
[33]
Brad A. Myers. 1990. A New Model for Handling Input. ACM Trans. Inf. Syst., Vol. 8, 3 (July 1990), 289--320.
[34]
Brad A. Myers. 1991. Separating Application Code from Toolkits : Eliminating the Spaghetti of Call -Backs. In Proceedings of the 4th Annual ACM Symposium on User Interface Software and Technology (UIST '91). ACM, New York, NY, USA, 211--220.
[35]
Brad A. Myers, Richard G. McDaniel, Robert C. Miller, Alan S. Ferrency, Andrew Faulring, Bruce D. Kyle, Andrew Mickish, Alex Klimovitski, and Patrick Doane. 1997. The Amulet Environment: New Models for Effective User Interface Software Development. IEEE Transactions on Software Engineering, Vol. 23, 6 (June 1997), 347--365.
[36]
Brad A. Myers, Sun Young Park, Yoko Nakano, Greg Mueller, and Andrew Ko. 2008. How Designers Design and Program Interactive Behaviors. In 2008 IEEE Symposium on Visual Languages and Human -Centric Computing. 177--184.
[37]
Brad A. Myers and Mary Beth Rosson. 1992. Survey on User Interface Programming. In Proceedings of the SIGCHI Conference on Human Factors in Computing Systems (CHI '92). ACM, New York, NY, USA, 195--202.
[38]
Dan R. Olsen, Jr. 2007. Evaluating User Interface Systems Research. In Proceedings of the 20th Annual ACM Symposium on User Interface Software and Technology (UIST '07). ACM, New York, NY, USA, 251--258.
[39]
Adrian Papari. 2018. Artemis-Odb: A Continuation of the Popular Artemis ECS Framework.
[40]
Fabio Paterno', Carmen Santoro, and Lucio Davide Spano. 2009. MARIA : A Universal, Declarative, Multiple Abstraction -Level Language for Service -Oriented Applications in Ubiquitous Environments. ACM Trans. Comput.-Hum. Interact., Vol. 16, 4 (Nov. 2009), 19:1--19:30.
[41]
prime31. 2018. Nez Is a Free 2D Focused Framework That Works with MonoGame and FNA.
[42]
Thibault Raffaillac and Stéphane Huot. 2018. Applying the Entity -Component-System Model to Interaction Programming. In Proceedings of the 30th Conference on L 'Interaction Homme -Machine (IHM '18). ACM, New York, NY, USA, 42--51.
[43]
Michael Sannella, John Maloney, Bjorn Freeman-Benson, and Alan Borning. 1993. Multi-Way versus One-Way Constraints in User Interfaces: Experience with the Deltablue Algorithm. Software: Practice and Experience, Vol. 23, 5 (1993), 529--566.
[44]
Simon Schmid. 2018. Entitas-CSharp : Entitas Is a Super Fast Entity Component System (ECS ) Framework Specifically Made for C # and Unity.
[45]
Lucio Davide Spano, Antonio Cisternino, and Fabio Paternò. 2012. A Compositional Model for Gesture Definition. In Human-Centered Software Engineering (Lecture Notes in Computer Science), Marco Winckler, Peter Forbrig, and Regina Bernhaupt (Eds.). Springer Berlin Heidelberg, 34--52.
[46]
Richard N. Taylor, Nenad Medvidovic, Kenneth M. Anderson, E. James Whitehead, Jr., and Jason E. Robbins. 1995. A Component - and Message -Based Architectural Style for GUI Software. In Proceedings of the 17th International Conference on Software Engineering (ICSE '95). ACM, New York, NY, USA, 295--304.
[47]
Unity Technologies. 2017. Unity - Scripting API : MonoBehaviour. https://docs.unity3d.com/ScriptReference/MonoBehaviour.html .
[48]
W3C. 1996. Cascading Style Sheets, Level 1. https://www.w3.org/TR/CSS1/.
[49]
Minhaz F. Zibran, Farjana Z. Eishita, and Chanchal Kumar Roy. 2011. Useful, But Usable Factors Affecting the Usability of APIs. In 2011 18th Working Conference on Reverse Engineering. 151--155.

Cited By

View all
  • (2024)A Type System for Flexible User Interactions HandlingProceedings of the ACM on Human-Computer Interaction10.1145/36602488:EICS(1-27)Online publication date: 17-Jun-2024
  • (2023) An auxiliary development framework for lightweight RPG games based on Unity3D Computer Animation and Virtual Worlds10.1002/cav.220635:1Online publication date: 31-Aug-2023
  • (2022)Designing Guided User Tasks in VR Embodied ExperiencesProceedings of the ACM on Human-Computer Interaction10.1145/35322086:EICS(1-24)Online publication date: 17-Jun-2022
  • Show More Cited By

Index Terms

  1. Polyphony: Programming Interfaces and Interactions with the Entity-Component-System Model

      Recommendations

      Comments

      Please enable JavaScript to view thecomments powered by Disqus.

      Information & Contributors

      Information

      Published In

      cover image Proceedings of the ACM on Human-Computer Interaction
      Proceedings of the ACM on Human-Computer Interaction  Volume 3, Issue EICS
      June 2019
      553 pages
      EISSN:2573-0142
      DOI:10.1145/3340630
      Issue’s Table of Contents
      Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      Published: 13 June 2019
      Published in PACMHCI Volume 3, Issue EICS

      Permissions

      Request permissions for this article.

      Check for updates

      Author Tags

      1. ECS
      2. GUI
      3. entity-component-system
      4. interaction programming
      5. user interface toolkit

      Qualifiers

      • Research-article

      Contributors

      Other Metrics

      Bibliometrics & Citations

      Bibliometrics

      Article Metrics

      • Downloads (Last 12 months)83
      • Downloads (Last 6 weeks)12
      Reflects downloads up to 03 Mar 2025

      Other Metrics

      Citations

      Cited By

      View all
      • (2024)A Type System for Flexible User Interactions HandlingProceedings of the ACM on Human-Computer Interaction10.1145/36602488:EICS(1-27)Online publication date: 17-Jun-2024
      • (2023) An auxiliary development framework for lightweight RPG games based on Unity3D Computer Animation and Virtual Worlds10.1002/cav.220635:1Online publication date: 31-Aug-2023
      • (2022)Designing Guided User Tasks in VR Embodied ExperiencesProceedings of the ACM on Human-Computer Interaction10.1145/35322086:EICS(1-24)Online publication date: 17-Jun-2022
      • (2022)Open-Source Game Engine & Framework for 2D Game Development2022 IEEE Engineering International Research Conference (EIRCON)10.1109/EIRCON56026.2022.9934816(1-4)Online publication date: 26-Oct-2022
      • (2021)Vico: An entity-component-system based co-simulation frameworkSimulation Modelling Practice and Theory10.1016/j.simpat.2020.102243108(102243)Online publication date: Apr-2021
      • (2021)Smart City and Smart Transportation: Intelligent IoT-Based Transportation Objects “Me-Online Mobile Application: A Mutual Practice of Internet of Mobile Things”Towards Connected and Autonomous Vehicle Highways10.1007/978-3-030-66042-0_5(87-128)Online publication date: 18-Jun-2021
      • (2020)A Model-driven Middleware Integration Approach for Performance-Sensitive Distributed Simulations2020 IEEE 23rd International Symposium on Real-Time Distributed Computing (ISORC)10.1109/ISORC49007.2020.00019(65-73)Online publication date: May-2020
      • (2020)Accessibility and Serious Games: What About Entity-Component-System Software Architecture?Games and Learning Alliance10.1007/978-3-030-63464-3_1(3-12)Online publication date: 9-Dec-2020
      • (2019)An architectural model for Improving the reusability of graphical user interfacesAdjunct Proceedings of the 31st Conference on l'Interaction Homme-Machine10.1145/3366551.3370352(1-7)Online publication date: 10-Dec-2019

      View Options

      Login options

      Full Access

      View options

      PDF

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader

      Figures

      Tables

      Media

      Share

      Share

      Share this Publication link

      Share on social media