Skip navigation
  • Home
  • Browse
    • Communities
      & Collections
    • Browse Items by:
    • Publication Date
    • Author
    • Title
    • Subject
    • Department
  • Sign on to:
    • My MacSphere
    • Receive email
      updates
    • Edit Profile


McMaster University Home Page
  1. MacSphere
  2. Departments and Schools
  3. Faculty of Engineering
  4. Department of Computing and Software
  5. Masters of Engineering Technical Reports
Please use this identifier to cite or link to this item: http://hdl.handle.net/11375/27663
Title: GypPO: A DSL and Code Generator for Platformer Games
Authors: Gill, Pavanjot
Department: Computing and Software
Keywords: DSL;platformer games;code generation
Publication Date: Dec-2018
Abstract: Forming genres for video games is a means of grouping their similarities. This grouping allows for certain expectations regarding the elements or mechanics that would be found in any game of a certain genre. Specifically for 2D platformers, prior to even playing the game, players would expect that the levels will contain platforms and likely a jump ability. The goal of the GypPO (a unique acronym generated for Generative Platformers) project is to determine if there is enough in common amongst the 2D platformer family to create a domain-specific language (DSL) to define a complete platform game and a generator to create them. By observing 2D platformers throughout the years, from the pioneers of the genre to modern games, it becomes clear which components have stuck and become the norm for development today. It is these types of commonalities that are used to design the GypPO language. The developed GypPO language is derived from the analysis to ensure all commonalities found in platformers are covered. A user of the GypPO system first needs to provide the specifications for the enemies, upgrades, and weapons that would be found in their platformer, written in the designed DSL. To design the platformer levels, the user specifies the win condition of a level as well as the placement of game objects. This data includes platform placement and the positioning of the elements predefined by users. The generator stores this specification data into data structures representing the GypPO DSL. With another set of data structures representing the JavaScript language, the GypPO system translates the data from the GypPO DSL to JavaScript. The output of this system is a generated browser-based 2D platform video game. This report is organized so as to first provide the necessary background information on video games and their genres as well as brief explanations on DSLs and code generation. The analysis of the platformer genre follows, which lays the foundation of the language and generator. By discovering the commonalities of platformers and grouping them together, the terms and structure of the GypPO language are directly formed. The remainder of the report provides a look at the designed GypPO DSL and generator.
URI: http://hdl.handle.net/11375/27663
Appears in Collections:Masters of Engineering Technical Reports

Files in This Item:
File Description SizeFormat 
Gill_Pavanjot_2018December_MEng.pdf
Open Access
421.45 kBAdobe PDFView/Open
Show full item record Statistics


Items in MacSphere are protected by copyright, with all rights reserved, unless otherwise indicated.

Sherman Centre for Digital Scholarship     McMaster University Libraries
©2022 McMaster University, 1280 Main Street West, Hamilton, Ontario L8S 4L8 | 905-525-9140 | Contact Us | Terms of Use & Privacy Policy | Feedback

Report Accessibility Issue