2.9.16
Coherent GT
A modern user interface library for games
Support guidelines

With the rapid development of our product and the almost unlimited customization of the client and Third party code, there is a chance that you may encounter some type of unexpected behavior. In such situations, the best approach is always to contact the support, but there are a few steps that can be taken to ensure a timely response and swift handling of your case.

Preliminary step

Always check our documentation for the functions in question, your past tickets, and the forums about the issue you're having. You might be missing a crucial step in your setup, or there might already be a resolution for your (or similar) problem. Make sure that you check if other people encountered such issues before.

Make sure the issue is related to the Coherent GT:

  • In case of crash - does this happen in a callstack related to the Coherent SDK?
  • In the case of unexpected JavaScript behavior - are there any errors reported in the Coherent Inspector?
  • In the case of a performance issue - does disabling the Coherent View(s) resolve the problem?

Submitting the ticket

Depending on the issue that you are experiencing you can post in the different channels. If it's a usage question / issue, not specific to your project, and if others can benefit from the discussion - we encourage you to submit it in our forums at http://forums.coherent-labs.com. And if the issue is deeply technical and project-specific (i.e. a crash) then you must submit a ticket in our support system at suppo.nosp@m.rt@c.nosp@m.ohere.nosp@m.nt-l.nosp@m.abs.c.nosp@m.om.

In either case, it is very important that you address a single issue in a topic / ticket. This way all unnecessary noise will be eliminated and this will make the tracking of the problem much easier, respectively leading to a faster resolution.

Regardless of the nature of the problem, we need an isolated case that we can start working on immediately. It's much more efficient if you supply us with a minimal sample that we can examine quickly instead of spending time on a large setup to reproduce the bug.

  1. A detailed description of the problem.
    1. What type of problem is it? In all cases, describe the actions leading to the problem.
      • If you encounter a bug - describe what you're seeing and what's the expected result.
      • If it's a crash - what steps lead to it.
      • If you suspect a perf issue - describe what are your expectations in terms of time spent in our SDK (per frame or another relevant metric).
    2. Provide logs from a game session experiencing the issue.
    3. Mention the version of the Coherent SDK and engine.
    4. Mention the version of your OS, IDE and Third party dependencies.
  2. Reproducible
    1. Does the issue appear all the time? If not, what's the reproduction rate?
    2. Does the issue reproduce on another machine (different environment)?
    3. List discrete steps that lead to the issue.

Preparing a sample

Provide a page and/or source code to exhibit the issue in a standalone application, such as the SDK provided GTPlayer or one of our samples. If you're unable to provide this you can use our samples to reproduce the problem and give us very clear steps which we can follow to reproduce it on our end.

In case you're passing JS events from your game to the UI in order to start up the interface, record a JSON replay using our event replaying framework (included in coherent.js) leading up the issue. The replay, along with the UI files can be used to reproduce any sequence of events in a much simpler environment than the live game. Instructions for recording the replay can be found in the GTPlayerIntroduction.pdf.

Additional specific information

Depending on the specific use case you have we may need different types of additional relevant information:

  1. Crash bug
    • Call stack
    • Minidump
  2. Performance issue:
    1. Profile the C++ code calls into our SDK. What's taking up time? The calls can be broken down to the following:
    2. Do a profile with the Coherent Inspector's timeline to visually see what's happening. For example, you might be thinking that some part of the page is static, but in reality, there are animations running every frame. Provide a screenshot of the timeline profile.
    3. Use the Coherent Inspector to activate drawing of repainted areas and layer borders. Verify that there are no constantly created layers and/or repainted areas.
  3. Graphics artifact:
    • Screenshot of the problem.
    • Screenshot of the expected behavior (if possible).
    • Instead of the original page, providing a stripped down page with minimal dependencies is recommended. This eliminates "noise" from other elements that are irrelevant to the issue and the creator of the page has much more knowledge what's affecting the problematic areas.
  4. Hypothesis - do you have a theory of your own about the cause of the issue?
    • Is there something specific that leads to the crash?
    • Are there any recent changes in your game code or UI code related to the issue?

If you have any comments, feedback and suggestions for an improved and more efficient support communication process, please do share them.