Logging & Feedback
Get player feedback with rich game data to help improve your game.

Introduction

Available in UX Complete
User eXperience kit helps you gather rich game data in a well formatted log, and then feed that data from within your game tools such as Trello, Zendesk, Unity's User Reporting, etc. and to help you capture and save screenshots for the full screen or sections of the screen.

Features

A log system which stores all Debug.Log messages with optional stack trace information, and additional system information generated at run time. The log can be reported as a simple text log or serialized to a JSON object for easier programatic processing.
You can use the Trello integration to interact with Trello such as to create cards and upload attachments. Terllo is most useful for production feedback such as gathering feedback from closed testers and QC staff.
It is possible release with Trello integration but not advised as you risk exposing your Trello API Key and token.

Unity User Reporting

Did you know Unity cloud services includes a flexable and easy to use User Reporting service? This service is well suited to gathering end user feedback and bug reports and can be easyily integrated with the Advanced Log and Screenshot interfaces.
User Reporting | Unity Cloud Diagnostics

Easy 3rd Party Extension

The system is designed to be easily integrated with the reporting tools of your choice. The log produced can be exported as simple text or as a JSON object for easy parsing by other tools, and includes an easy to use Screenshot tool capable of capturing a full screen or any defined rect of a screen, and returning that data as a Texture2D or quickly saving it out as a Jpg or Png.
Remimber to Destroy(texture) your screenshot textures when your done with them.

3rd Party Support Tools

You can use the Feedback system with 3rd party support tools such as Zendesk to better inform your support team.
Zendesk is used in this example as its known to have a Unity integration making it trivial to integrate your game with your Zendesk support portal. The following examples show how you might use the User eXperience log data to enrich that integration.
Heathen Engineering is not a partner with Zendesk nor are we recommending you use Zendesk. Zendesk is simply used in this example to show how you may use Heathen's User eXperience Feedback tools with 3rd parties such as Zendesk.
For support, questions about or general inquiries relating to Zendesk, please contact Zendesk.
Lets assume you are using Zendesk as your support tool provider and you have integrated Zendesk with your game for a direct user support experience. In the case of support requests Zendesk allows you to define custom fields and these fields can be made invisible to the Support Request form which makes since for system data that isn't meant to be edited by a user but is useful for the support agent to know
Support requests
For this example lets assume you have created custom fields in Zendesk as such
Field ID
Type
Use
1
text
Company Name
2
text
Product Name
3
text
Product Version
4
text
Engine Version
5
text
Command Line
6
text
Platform
7
text
Device Type
8
text
Device Model
9
text
Device Name
10
text
OS
11
text
OS Family
12
text
CPU Type
13
numeric
CPU Count
14
numeric
CPU Frequency
15
numeric
System Memory
16
text
GPU Vendor
17
text
GPU Type
18
text
GPU Name
19
text
GPU Version
20
numeric
GPU Memory
21
numeric
GPU Shader Level
You can now record the system data gathered by the custom log
1
Dictionary<long,string> invisibleCustomFields = new Dictionary<long,string>;
2
var logObject = API.Log.Object;
3
invisibleCustomFields.Add(1, logObject.companyName);
4
invisibleCustomFields.Add(2, logObject.productName);
5
invisibleCustomFields.Add(3, logObject.productVersion);
6
invisibleCustomFields.Add(4, logObject.engineVersion);
7
invisibleCustomFields.Add(5, logObject.commandLine);
8
invisibleCustomFields.Add(6, logObject.platform);
9
invisibleCustomFields.Add(7, logObject.deviceType);
10
invisibleCustomFields.Add(8, logObject.deviceModel);
11
invisibleCustomFields.Add(9, logObject.deviceName);
12
invisibleCustomFields.Add(10, logObject.os);
13
invisibleCustomFields.Add(11, logObject.osFamily);
14
invisibleCustomFields.Add(12, logObject.cpuType);
15
invisibleCustomFields.Add(13, logObject.cpuCount);
16
invisibleCustomFields.Add(14, logObject.cpuFrequency);
17
invisibleCustomFields.Add(15, logObject.systemMemory);
18
invisibleCustomFields.Add(16, logObject.gpuVendor);
19
invisibleCustomFields.Add(17, logObject.gpuType);
20
invisibleCustomFields.Add(18, logObject.gpuName);
21
invisibleCustomFields.Add(19, logObject.gpuVersion);
22
invisibleCustomFields.Add(20, logObject.gpuMemory);
23
invisibleCustomFields.Add(21, logObject.gpuShaderLevel);
24
25
zendeskSupportUI.SetInvisibleCustomFields(invisibleCustomFields);
Copied!
Last modified 2mo ago