If there is a feature in HacknPlan which 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 proper 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 which not only contain unstructured content like text and pictures, but also tasks, progress, and metrics. This way, your tasks are not just a bunch of tickets on a list, 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
You can create a new design element by clicking on the Create button on the header or by pressing C on your keyboard from the Design Model section. You can also create a child element to another one by clicking on Add child element on the context menu (right-click or ellipsis icon) or clone it by clicking on Clone or 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, which is normally added before the name where the element is referenced. The available types can be customized by a project administrator.
- Starting date: The date where 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 is equal or previous to the one added. Besides this, a starting date which 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.
- Content: 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, tasks, 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 Delete on the context menu, by pressing DEL key while the element is selected, or by clicking on the ellipsis button on the header of the element editor.
Adding tasks 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 and tasks. These two entities, along with the definition of iterations and milestones, connect the three basic pillars of a project: what to do (GDM), how to do it (tasks / team), and when (boards / milestones).
Adding a task to a design model is as simple as creating a new task as we explained earlier in this guide, or by clicking Add task from the context menu or the header of 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 task, although we strongly recommend putting everything under the GDM for a better organization. When you create a task while in the GDM section and an element is selected, the task creation will have that element selected by default.
The tasks belonging to a specific design element are listed under the “Tasks” tab of the design element editor. You can also see the design element of a task at the top of the cards in the
kanban boards, which helps to quickly identify them. If you want to move a task from one design element to another one, you can do so by opening the task editor by selecting a task from the GDM or the board and then clicking on the design element field. You can also change the design element of a task 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 tasks. It’s important to take into account 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.
- Tasks: The lists of tasks 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 tasks 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, tasks 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.