Dragon: The Game

Dragon: The Game

Not enough ratings
Laymans Guide to Bug Reporting
By Dryheat4u
Bug resolution is one of the most difficult aspects of game development, it can be made all that much easier when alpha and beta testers are dilligent and attentive in providing specific details about where and when a bug turns up. This guide aims to help new testers report bugs in an effective way, one that will allow the developers to more easily identify what script in a game is causing the problems.
   
Award
Favorite
Favorited
Unfavorite
General Game Archetecture
All videogames are based on an engine, which is essentaly the core foundational code of a game. Like an OS, some engines are designed to support a wide array of applications within them, all of which are eventually compiled into a final game product. Engines are highly dynamic and extreamly complicated software, with such a wide array of functions that professionals usually specalize on one specific part of a game engine. One person may work excluseively with animations while another works exclusivly with scripting. It is not unheard of for a professional in one part of game design to have no functional professional experience with a part of an engine they are not trained in. This also occurs often with CAD products like Sold Works, which is an engine designed to animate and simulate real world objects with extreame precision. Entire courses offered at trade schools and universities may only focas on modeling, while others deal exclusively with simulations.

In both cases, software products like these put an incredible emphasis on internal documentation. Good programmers are religious at placing notes and descriptions in scripts they write, and consider it a sin of the highest order to find code that has no internal documentation. This makes it much easier when a programmer had to come back to review code for bugs. An enormous part of programming involves route trial and error, often you are faced with problems that no other developer has had to deal with. This means that you have to find a creative solution, and spend hours going over all the possible commands that can be used to acheave that solution. There is no gaurentee that solving a problem today won't accidentally break a solution you found for an problem yesterday.

For this reason, when reporting bugs you must be just as thourogh in your efforts. You need to document every detail you can so that a developer can more easiliy identify wahat part of a game may be malfunctioning. This process can be irritating and tedious, but it reduces the turnaround on bug repairs by reducing man hours troubleshooting the conditions in which a bug appears.
Identifing and Troubleshooting Bugs
For the purposes of this Guide we will use Bugs in Dragon: The Game as examples for locating and troubleshooting bugs.

Identifying a bug is the most straight forward part of the process, sometimes bugs are game breaking and other times they are minor in their overall effects. In both cases, there are a set of general steps to go through when you find a potential bug.

1. Identify the inital bug: This most often happens as a consequence of palying the game, though the more you know about an engine, the easier it is to deliberately try and trigger common bugs. In this case we will use the "Collision Spike" glitch as the principal example. This glitch causes animated objects to be fired voilently across maps when interacting with both static (unmoving) and dynamic (moving or acting) objects. In dragon this commonly happens when tailstriking trees, sheep, or other NPC's. This glitch is common to all gaming platforms in development and is usually the result of poor collision mapping.

2. Stop and take note: Bugs can be location, condition, or trigger dependent. One important thing to establish is which of these is the cause, it can be one or all of them. Its important to do this, because it can rule out different parts of the game's code as the problem.
Lets say you tailsswing at a sheep and it is immediately launched directly into the air.
Was the sheep killed in the impact?
Were you on flat ground?
Did the sheep get pushed into a rock or tree, before being launched?
Were you launched backward or damaged in the process?
How much were you or the sheep?damaged?
Did the sheep eventually fall back to earth?
Take note of all these details before continuing if you can.

3. Recreate: Try and exactly recreate the conditions of the bug as closely as you can. Use checkpoints if available to help, and try to use the same location if possible. If not try and recreate a similar condition in another other way. For Example.
Was the interaction with a tree?
Does the interacton happen with any tree or only that one tree?
Do you have to be on a hill? If so, does high or low ground positioning have an effect?

Focas on identifying the exact conditions at first, then experiment with changing variables.
Does the glitch only work with a sheep?
Can any NPC be launched like the sheep was?

Now try changing location, fly to a different hill with similar conditions and repeat the earlier experiments.
Does it work exactly the same way on this hill?
Does it work the same way on flat ground, or mountanous rocky areas?
Does changing the NPC have an effect on the outcome?


Documenting and Submitting
No amount of experimentation with a bug turns any benifit unless you can relate your findings in an easy, short, but detailed way. There is no one set format for reporting a bug, but you can use this as a template to play with. Feel free to copy and paste this if you want to use it for actual bug reporting. A blank example is available below this one.

Note: Some aspects of this bug were exaggerated or altered for the puropse of creating a good example. This bug has already been reproted to the developers for Dragon.
Date/Time: 3-14-2016
Gamertag ID: Dryheat4u
Game Version: (good for history)

Bug Name: (optional, not usually requred)
Bug Description: NPC launched into the air by tailswipe when the NPC is pressed into antoher object without killing it. Player takes no damage in most cases, NPC takes standard attack damage. Was not able to see where it landed.

Affected Assets: Wolves, Sheep, Deer.
Was not able to create same conditions to test villagers or rabbits.

Conditions Required: NPC must be pressed into another static object, like a tree or rock by the attack animation.

Locations Affected: Glitch occured anwhere where an NPC was pressed aginst another object without reguard for map location. Effect was more dramatic when on a hill, striking an NPC higher that you into another object.

Severity/Repeatability: Glitch was consistant, happened about 50% of the time. Did not observe lag or drop in framerate.

Suspected Cause: Appears to be a problem with collision mapping when a dynamic object is forced to interact with a static one.

-----------------------------------------------------------------------------------------------------------------------
(Feel free to copy this secton for your own use)

Date/Time:
Gamertag ID:
Game Version:

Bug Name:
Bug Description:

Affected Assets:

Conditions Required:

Locations Affected

Sevarity/Repeatability:

Suspected Cause: