The Game Design Model

If there is a feature in HacknPlan that is unique and completely game-dev-oriented, is the game design model (GDM). One of the most common pains development teams suffer when working on a game is the difficulty of defining a proper game design document (GDD) and, most importantly, keeping it updated and alive. This is key for a good project organization because it’s the resource used to define your vision of the game and to keep your team aligned. 

The way projects are managed has changed a lot over the years; there was a time when having a fixed document containing the full design of a game from the beginning was accepted; that’s how the waterfall methodology worked. However, in today’s world,  projects are approached in a more agile and iterative way which encourages prototyping, iteration, and permanent evaluation. The GDD is now a document in constant evolution, being built iteratively as the game does.

The purpose behind the GDM is to provide a dynamic and integrated way of defining your game design, replacing the linear document or wiki pages with a tree structure of design elements that not only contain unstructured content like text and pictures, but also work items, progress, and metrics. This way, your work items are not just a bunch of cards on a list or board, they have something that connects them as a whole giving context and meaning, and at the same time your design is not isolated from the project itself, it has a new dimension now, which is how that design is implemented over time.

Defining your design model

Important: The game design model requires specific writing permissions.

You can create a new design element by clicking on the New button on the header or by pressing E on your keyboard from anywhere in the project. You can also create a child element by:

  • Clicking on the plus icon that appears on the right when hovering over the element.
  • Clicking Add child element on the context menu (right-click). 

Also, you can clone a design element by:

  • Clicking on the copy icon that appears on the right when hovering over the element.
  • Clicking Clone on the context menu (right-click).
  • Pressing Alt+C on the keyboard when it is selected. 

The basic fields of a game design element are:

  • Name: The name of the design element.
  • Type: A categorization field to give more context, normally added before the name where the element is referenced. A project administrator can customize the available types.
  • Parent: In this field you must indicate the parent element to which the design element belongs. If the parent field is empty, the design element will be created at the root of the design model.
  • Start date: The date when the development of the feature described by the design element will start. When this date is set, it automatically updates the starting date of the parent element up to the root level, unless they already have a value and are equal or previous to the one added. Besides this, a starting date that is later than the one from any of the element children will be considered invalid. This date will be used by some premium features like the Gantt chart and the Calendar to manage the implementation of the design element over time.
  • Due date: The deadline for the development of all the tasks of the design element. The same behavior related to parents and children applies.
  • Description: This is a free markdown-based text field you can use to add a complete definition of the design element. You can add formatted text, links, pictures, reference users, work items, other elements, attachments… It also supports basic HTML, so you can create advanced layouts.

After your element is created, you can update it at any time by selecting the element from the tree, which will open the design element editor on the right.

Besides editing the fields we already mentioned, you can also relocate the design element by using drag and drop. You can also drop an element as a child of another one by dragging the element below the parent and then moving the mouse to the right before dropping, which will indent the placeholder as a visual representation of this process. For this operation to work, the parent element needs to be expanded if already has children.

You can delete design elements by:

  • Clicking on the trash icon that appears on the right when hovering over the element 
  • Clicking Delete on the context menu (right-click).
  • Pressing the DEL key while the element is selected.

Adding work items to your design model

One of the biggest advantages of the GDM over a traditional GDD is the direct relation between design and planning, and this is achieved by connecting design elements with tasks and user stories. These entities, along with the definition of boards and milestones, connect the three basic pillars of a project: what to do (GDM), how to do it (work items/team), and when (boards/milestones).

It is possible to add a work item to a design model by the following actions:

  • Creating a new item as we explained earlier in this guide.
  • Clicking the task/user story icon that appears on the right when hovering over the element.
  • Clicking Add item from the context menu (right-click).
  • Through the element editor. 

The creation dialog will allow you to choose the desired game design element, including the possibility of leaving it blank to create a detached work item, although we strongly recommend putting everything under the GDM for better organization. When you create an item while in the GDM section and an element is selected, the work item creation will have that element selected by default.

The work items belonging to a specific design element are listed under the “Work items” tab of the design element editor. You can also see the design element of a work item at the top of the cards in the kanban boards, which helps to quickly identify them. If you want to move an item from one design element to another one, you can do so by opening the editor selecting a work item from the GDM or the board and then clicking on the design element field. You can also change the design element of a work item from the context menu.

Other game design element features

Besides the core elements already mentioned, the design element edition panel provides other useful information:

  • Metrics: Overview of the progress of the design element relative to its assigned work items. It’s essential to take into account that this value will vary depending on the value of the dropdown Include children of the header. If it is true, will display the sum of the metrics of the element and all of its children.
  • Work items: The lists of work items assigned to the design element. You can filter them by stage and/or board, or search using the lens icon. Like the metrics, if Include children is true it will display all items from all the children too.
  • Attachments: You can attach pictures and other files to the design element for extra information or context. The attachments can be referenced from the design element content field by pressing $ and selecting them from the dropdown list. The referenced pictures will be embedded, while the rest of the file types will be shown as a link for download. Premium users can also add attachments from Google Drive.
  • Comments: You can discuss the design of each of the concepts of your game with the rest of your team. Like the task comments, you can format them using Markdown syntax and reference users, work items and attachments.
  • Activity: When there are doubts about when some action was performed or the steps that were done to reach the current status of the design element, nothing beats taking a look at the activity log.