skip to main content
10.1145/2282338.2282356acmotherconferencesArticle/Chapter ViewAbstractPublication PagesfdgConference Proceedingsconference-collections
research-article

The entity system architecture and its application in an undergraduate game development studio

Published:29 May 2012Publication History

ABSTRACT

This paper reports on the software architecture, methodology, and student learning experience from the development of Morgan's Raid, an educational game designed to teach fourth-graders about Indiana's Civil War history. The game was designed and developed during the 2010-2011 academic year and involved a multidisciplinary undergraduate team. The team used industrial best-practices of game development, including continuous integration, distributed version control, test-driven development, and Scrum. This methodology was supported by an entity system architecture, a software architectural design pattern that addresses many shortcomings of inheritance-based game engine architectures. Detailed definitions of the entity system architecture and methodology are presented along with the experience report. This combination of methodology and architecture directly contributed to the success of the project, both software development exercise and learning experience.

References

  1. K. Beck. Test Driven Development: By Example. Addison-Wesley, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. K. Beck and C. Andres. Extreme Programming Explained: Embrace Change. Addison-Wesley, 2nd edition, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. K. Beck, M. Beedle, A. van Bennekum, A. Cockburn, W. Cunningham, M. Fowler, J. Grenning, J. Highsmith, A. Hunt, R. Jeffries, J. Kern, B. Marick, R. C. Martin, S. Mellor, K. Schwaber, J. Sutherland, and D. Thomas. Manifesto for Agile Software Development, 2001. http://agilemanifesto.org.Google ScholarGoogle Scholar
  4. S. Bilas. A data-driven game object system, 2002. GDC 2002 Presentation; slides available at http://scottbilas.com/files/2002/gdc_san_jose/game_objects_slides.pdf.Google ScholarGoogle Scholar
  5. A. S. Carter and CD. Hundhausen. A review of studio-based learning in computer science. J. Comput. Sci. Coll., 27:105--111, October 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. M. Clark. Pragmatic Project Automation: How to Build, Deploy, and Monitor Java Apps. The Pragmatic Programmers, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. A. Cockburn. Agile Software Development: The Cooperative Game. Addison-Wesley, second edition, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. CruiseControl Home. http://cruisecontrol.sourceforge.net.Google ScholarGoogle Scholar
  9. W. Cunningham. The wycash portfolio management system. In Addendum to the proceedings on Object-oriented programming systems, languages, and applications (Addendum), OOPSLA '92, pages 29--30, New York, NY, USA, 1992. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. P. Deemer, G. Benefield, C. Larman, and B. Vodde. The Scrum Primer. Scrum Foundation, 2010. Version 1.2.Google ScholarGoogle Scholar
  11. C. Fernández-Vara and P. Tan. The game studies practicum: applying situated learning to teach professional practices. In Proceedings of the 2008 Conference on Future Play: Research, Play, Share, Future Play '08, pages 25--32, New York, NY, USA, 2008. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. S. Fincher, M. Petre, and M. Clark. Computer Science Project Work: Principles and Pragmatics. Springer, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. M. Fowler. Patterns of Enterprise Application Architecture. Addison-Wesley, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. E. Gamma, R. Helm, R. Johnson, and J. Vlissides. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley Professional, 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. P. Gestwicki, A. Haddad, A. Toombs, and F.-S. Sun. An experience report and analysis of Java technologies in undergraduate game programming courses. J. Comput. Sci. Coll., 25:102--108, October 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. P. Gestwicki and R. Morris. Social studies education game development as an undergraduate immersive learning experience. In M. M. Cruz-Cunha, editor, Serious Games as Educational, Business, and Research Tools: Development and Design. IGI Global, 2012. In press.Google ScholarGoogle Scholar
  17. P. Gestwicki, F.-S. Sun, and B. Dean. Teaching game design and game programming through interdisciplinary courses. J. Comput. Sci. Coll., 24:110--115, October 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. D. Hendrix, L. Myneni, H. Narayanan, and M. Ross. Implementing studio-based learning in cs2. In Proceedings of the 41st ACM technical symposium on Computer science education, SIGCSE '10, pages 505--509, New York, NY, USA, 2010. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. C. Hundhausen, A. Agrawal, D. Fairbrother, and M. Trevisan. Does studio-based instruction work in cs 1?: an empirical comparison with a traditional approach. In Proceedings of the 41st ACM technical symposium on Computer science education, SIGCSE '10, pages 500--504, New York, NY, USA, 2010. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. C. D. Hundhausen, N. H. Narayanan, and M. E. Crosby. Exploring studio-based instructional models for computing education. In Proceedings of the 39th SIGCSE technical symposium on Computer science education, SIGCSE '08, pages 392--396, New York, NY, USA, 2008. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. C. Keith. Agile Game Development with Scrum. Addison-Wesley, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. T. Leonard. Postmortem: Thief: The Dark Project. Game Developer, July 1999.Google ScholarGoogle Scholar
  23. A. Martin. Entity systems are the future of MMOG development. http://t-machine.org/index.php/2007/09/03/entity-systems-are-the-future-of-mmog-development-part-1, Sept. 2007.Google ScholarGoogle Scholar
  24. A. Martin. Entity System 1: Java/Android, http://t-machine.org/index.php/2010/05/09/entity-system-1-javaandroid, May 2010.Google ScholarGoogle Scholar
  25. A. Martin. Entity System: RDBMS-Beta (a new example with source). http://t-machine.org/index.php/2011/08/22/entity-system-rdbms-beta-a-new-example-with-source/, Aug. 2011.Google ScholarGoogle Scholar
  26. Mercurial, http://mercurial.selenic.com.Google ScholarGoogle Scholar
  27. J. A. Ramage. Rebel Raider: The Life of General John Hunt Morgan. University Press of Kentucky, 1995.Google ScholarGoogle Scholar
  28. B. Rene. Component based object management. In K. Pallister, editor, Game Programming Gems 5, pages 25--37. Charles River Media, Hingham, Mass., 2005.Google ScholarGoogle Scholar
  29. D. Sanders. Using Scrum to manage student projects. J. Comput. Sci. Coll., 23:79--79, October 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. J. Schild, R. Walter, and M. Masuch. Abc-sprints: adapting scrum to academic game development courses. In Proceedings of the Fifth International Conference on the Foundations of Digital Games, FDG '10, pages 187--194, New York, NY, USA, 2010. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. D. A. Schon. The Reflective Practitioner: How Professionals Think In Action. Basic Books, 1984.Google ScholarGoogle Scholar
  32. K. Schwaber. Agile Project Management with Scrum. Microsoft Press, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. Slick---2D Game Library based on LWJGL. http://slick.cokeandcode.com.Google ScholarGoogle Scholar
  34. T. Smith, K. M. Cooper, and C. S. Longstreet. Software engineering senior design course: experiences with agile game development in a capstone project. In Proceeding of the 1st international workshop on Games and software engineering, GAS '11, pages 9--12, New York, NY, USA, 2011. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. J. Spolsky. Hg Init: a Mercurial tutorial, 2011. http://hginit.com.Google ScholarGoogle Scholar
  36. M. West. Evolve your hierarchy. http://cowboyprogramming.com/2007/01/05/evolve-your-heirachy, Jan. 2007.Google ScholarGoogle Scholar

Index Terms

  1. The entity system architecture and its application in an undergraduate game development studio

      Recommendations

      Comments

      Login options

      Check if you have access through your login credentials or your institution to get full access on this article.

      Sign in
      • Published in

        cover image ACM Other conferences
        FDG '12: Proceedings of the International Conference on the Foundations of Digital Games
        May 2012
        332 pages
        ISBN:9781450313339
        DOI:10.1145/2282338

        Copyright © 2012 ACM

        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: 29 May 2012

        Permissions

        Request permissions about this article.

        Request Permissions

        Check for updates

        Qualifiers

        • research-article

        Acceptance Rates

        Overall Acceptance Rate152of415submissions,37%

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader