, ,

Dev Blog Week 12 – Assignment 2 Post Mortem

This post mortem will reflect on the development of GAM111 Assignment 2 of Shape Wars. In the post mortem key aspects of design and development will be analysed and reviewed.

Time Management

Time management is a key aspect of any project, proper time management will help in getting the project to its deliverable state by the delivery date. In this project the time management was very poor, there was not enough time allocated to the project and was therefore not at 100% deliverable state by the due date. I was unable to implement the AI aspect of the game even though creating an AI would have been a fairly enjoyable thing to work on. In addition, the game was rushed to its completion and wasn’t able to be fully tested for bugs or all the additional features that I wanted by the due date. There are a number of reasons for this poor time management and they can be identified as:

  • Lack of Scheduling – There was no scheduling or use of milestones as discussed in the last post mortem. This reduced the awareness of how I am progressing on the project and what I should be working on each week. This reduced the effectiveness of work done each week and possibly the focus of the work week to week was not ideal.
  • Finding Time – Not setting apart a time of the week each week to work on the assignment consistently. Having a set amount of time each week to work on the project allows a guaranteed amount of time where time is dedicated to the project. This meant that the time dedicated to the project week to week was lower than what was required, this combined with the lack of scheduling meant that I was never aware of how far behind I was in completing the project.
  • High-Level Task Management – Task management was something that was discussed in the last post mortem, to use HackNPlan to manage tasks for each milestone and track what needed to be done. In this project some task management software was used in the form of Trello, however, this level of task management was too high level to be effective. The task management that I had I found to be quite useful, being able to keep track of what needed to be done however this task management software had its limitations, it does not allow for time allocation or to be able to allocate to a milestone. The high level of tasks such as ‘Implement Animation‘ was far too broad to be useful and often it frustrating working on a single task for 30min then working on the next task for 4hrs.Capture

There are a number of solutions to effective time management and they might be:

  • Scheduling and Milestones: Similar to the last post mortem scheduling and implementing significant milestones would assist in the time management of the project. This allows the developer to keep track of the completion state of the project and also motivates the developer to hit those significant milestones. This can be done by creating Gantt Charts as schedules and printing them out and keeping them somewhere visible when I work and milestones can also be marked on this schedule.
  • Timetabling – Creating a calendar or timetable for each week will assist in scheduling my time week to week between different projects and manage to allocate time to each of them. This can be done through Google Calendar as it is easily customizable and timetables are able to be easily made.

Capture

  • Task Management – Task management through HackNPlan will allow for effective task management. In addition to creating tasks for the project, I should aim to create lower level tasks that are aspects of higher level tasks (i.e. ‘Create a jump bind for the player’). Lower level tasks are more easily manageable and the time to complete is able to be estimated. The tasks should not be longer than 2 hours this allows for a more detailed breakdown of each task and less confusion as to how to complete the task. There has been studies to indicate that smaller more manageable tasks are a more effective way of completing a goal.

“A journey of a thousand miles begins with a single step” Lao Tzu

Research and Documentation

Research and documentation is a fundamental part of every project, it allows for the proper implementation of the project. Documentation helps detail out all the aspects of the project so that if someone else was working on the project they would know how it would work and how to implement each section of the game. Research is another important part of implementing the project if you don’t know how to implement a feature, researching for a solution is one of the ways to solve that problem.

The research and documentation for this project were below par, general features were detailed in the documentation but the explanation as to how to implement the features was not included in the documentation. This caused a lot of time to be wasted on trying to implement a feature, having it not work and rewriting/implementing the assignment. This was caused by a number of reasons:

  • Time Management Restrictions –  This was late in the trimester and there were multiple projects and assessment underway and finding time to work on this was difficult. More time each week should have been allocated to this project to ensure that it was able to be completed.
  • Planning – Planning in the form of putting together sufficient documentation was lacking. Documentation with details about how everything was meant to work and how they were going to work together was lacking. As previously stated the documentation only generally explained the concept and ideas of the project.
  • Poor Foresight – Throughout attempting to implement features of the project, I often thought “I’ll work it out somehow, it’ll be fine”. This was poor foresight as often each time implementing a feature, time would be wasted thinking about how to write out the code and how it would fit into the rest of the project.

There are a number of solutions to this, so the same errors don’t happen again:

  • Time Management – Implement the time management strategies mentioned in the previous section of the post mortem. These strategies will assist managing time dedicated to the project which will help with the overall development.
  • Research – Research as previously mentioned is an integral part of games development, it allows us to solve problems to which we don’t know the answer to. This process should be done throughout the entire process from the initial documentation phase, research should be done on how to implement the solution and during the project, research should be done when problems are encountered. For future projects, I would like to research more on the aspects of the game which I am unsure of. Before getting to work on implementing a feature of the project at least 10-15 min should be dedicated to analysing the problem and how I would tackle it, and if there are any doubts in how to implement a certain section of the problem then I should research the project.
  • Foresight – The solution to this is discussed briefly in the previous point, before getting to work on implementing a feature of the project time should be taken out to analyse the problem and see how the solution should fit into the entire project. There are a few things to consider when implementing a solution to help with future development:
    • How the solution fits into the project as a whole? Code consistent? Structure consistent?
    • If another object needs to access the solution how would it do so?
    • How can this possibly break the project?

Tags:

Leave a comment