5 . 3. Section Roundup. Exploration of project hand-in and section roundup. Question Clinic: FAQ. In lecture exploration of answers to frequently asked student questions. Exploratory Milestone. Exploration of the Week 6 Exploratory Milestone. To do: Complete questions.
Exploration of project hand-in and section roundup
In lecture exploration of answers to frequently asked student questions
Exploration of the Week 6 Exploratory Milestone
Week 6 Exploratory Milestone (Question 1)
Remember this is not a binding contract – it is intended to help you plan and manage your development.
Initial time estimates tend to be optimistic and rarely realised. Experience (sometimes bitter) enables better estimates!
Please do identify any specific areas of concern or uncertainty on which you would like to receive feedback.
The first lecture on Week 7 will be an awards ceremony (a bit of fun) based on the Week 6 Exploratory Milestone submission.
A number of different prize categories can/may be recognised and rewarded, as follows:
Most authentic rendition of a classic computer game
Most original/fun game design or game play idea
Game I least want to present at the Board of Examiners
Most comprehensive game design including development plan and contingency planning.
Game with the best title
Game with the most inappropriate title
Submission with the most impressive exploratory code
Aside: There actually will be prizes!
Overview of debugging advice
Debugging in games is often hard:
Update/draw process happens very frequently and quickly (~60 times second, 17ms per tick). It can be hard to reason about what is happening.
A lot of the available debugging tools cannot be easily applied to games (including GPU interaction)
Thou shalt have a clear understanding of what should happen
This may be obvious, but sometimes people start debugging without a clear understanding of what should happen.
Thou shalt reproduce the problem consistently
It is much easier to debug and test a problem that can be consistently reproduced, although sometimes this is not realistically achieveable.
Thou shalt test your assumptions
Debugging is a process of identifying your assumptions (this can be hard) and then testing to see if they hold.
Thou shalt divide and conquer
In order to manage game complexity, ‘high-level’ assumptions should be firstly checked to enable the search to be constrained.
Thou shalt think and look
Debugging is a process of identifying an assumption and then checking the code (log file, debugger, print statements) to test that assumption.
Thou shalt change on thing at a time
When testing changes to a program, only one factor should be changed at a time to limit interdependency.
Thou shalt keep an audit trail
Either using code versioning (or pen & paper and simple backups) , keep a record of changes made to the program
Thou shalt thoroughly test the correction
The correction should be tested to ensure the original problem has been fixed with no impact on existing working components.
Thou shalt not let the problem unfixed
Ignoring a problem only increases the new bug complexity and can introduce later problems or introduce dependency upon the buggy code.
Today we explored: