Debugging Mechanisms: Difference between revisions

From HLKitWiki
Jump to navigationJump to search
No edit summary
 
(16 intermediate revisions by the same user not shown)
Line 1: Line 1:
[[Category:Basic Concepts and Terminology]]
{{context|Kit Reference}}
[Context: [[Home|HL Kit]] … [[Basic Concepts and Terminology]]]


==Overview==
==Overview==


The development of a fully functional set of data files for a game system involves a great many steps and there are bound to be a few problems along the way. As a result, we consider the task of fixing these problems to be a basic component of the development process. In order to facilitate the resolution of problems, HL includes a variety of built-in mechanisms that can be leveraged when issues arise. Since errors in software are traditionally called "bugs", we refer to these mechanisms as "debugging" aids.
The development of a fully functional set of data files for a game system involves a great many steps and there are bound to be a few problems along the way. To handle this, the Kit provides a variety of mechanisms to help you quickly identify problems and diagnose how to fix them. In order to facilitate the resolution of problems, HL includes a variety of built-in mechanisms that can be leveraged when issues arise. Since errors in software are traditionally called "bugs", we refer to these mechanisms as "debugging" aids and the overall process is commonly referred to as "debugging" your data files.
 
==Topics==


The topics below outline a number of incredibly useful tools and techniques for quickly figuring out what is going wrong within your data files. Familiarize yourself with these debugging mechanisms now, since you will find yourself putting them to use at various points in the development process.
The topics below outline a number of incredibly useful tools and techniques for quickly figuring out what is going wrong within your data files. Familiarize yourself with these debugging mechanisms now, since you will find yourself putting them to use at various points in the development process.


==Info Windows==
*{{fl|Using Info Windows}}
 
*{{fl|Debug Output Via Scripts}}
Whatever the game system, HL will be tracking a great deal of information. Portfolios contain multiple heroes and heroes can have child gizmos. Heroes and gizmos contain a large number of picks, and those picks will contain a healthy number of fields. Everything has a wide assortment tags. And don't forget the task list that tracks all of the different operations that are performed on all of these objects. Even if the game system is relatively simple, there will be lots of information, and the volume increases dramatically as the game system complexity goes up.
*{{fl|Script Timing Issues}}
 
*{{fl|Establishing Timing Dependencies}}
At any point in time during development, you'll be working on some subset of this information. After you make some changes to the data files, you'll be expecting everything to work. However, if it doesn't work, you'll want to understand why. This is usually achieved by looking at the appropriate subset of information within HL that you are manipulating to see what '''is''' happening, which can typically narrow down where the error is lurking.
 
To help out in these situations, HL provides a bunch of different ways to view the information that is being tracked internally. This is accomplished through "info windows". Each info window is a floating window that is separate from the main HL window and contains specific information about some facet of the current portfolio. Every time that a change is made to portfolio, the contents of each info window are updated, so you can see the direct effects of changes in real-time.
 
Info windows can be created at any time by going to the "Debug" menu, selecting the "Floating Info Windows" menu, and then choosing the appropriate option from the sub-menu that is presented. Once created, the info window persists until you close it. You can move the info window around and resize it as you deem appropriate.
 
Each type of info window contains different information that may prove useful in different situations. The table below offers a quick summary of the information provided by each info window.
 
:{| class="infotable"
|class="leftnormal"|Hero Tags
|
|-
|Hero Fields
|
|-
|Portfolio Tags
|
|-
|Task List (Active Hero)
|
|-
|Task List (Full)
|
|-
|Selection List
|
|-
|Selection Tags
|
|-
|Selection Fields
|
|-
|Debug Output
|
|-
|}
 
==Debug Output Via Scripts==
the "debug" language intrinsic
the "notify" language intrinsic
 
==Script Timing Issues==
when to recognize a timing issue - everything looks good via info windows but the expected behavior still isn't being performed properly
list of tasks
debug output of script timing
 
==Defining Timing Dependencies==
naming tasks
establishing before and after dependencies
the timing report

Latest revision as of 23:21, 4 December 2008

Context: HL Kit … Kit Reference 

Overview

The development of a fully functional set of data files for a game system involves a great many steps and there are bound to be a few problems along the way. To handle this, the Kit provides a variety of mechanisms to help you quickly identify problems and diagnose how to fix them. In order to facilitate the resolution of problems, HL includes a variety of built-in mechanisms that can be leveraged when issues arise. Since errors in software are traditionally called "bugs", we refer to these mechanisms as "debugging" aids and the overall process is commonly referred to as "debugging" your data files.

Topics

The topics below outline a number of incredibly useful tools and techniques for quickly figuring out what is going wrong within your data files. Familiarize yourself with these debugging mechanisms now, since you will find yourself putting them to use at various points in the development process.