Organization: MovingBlocks
Project: Telemetry in Terasology
Product: Terasology, telemetry server
Terasology is an open-source sandbox video game.
Originally created as a Minecraft-inspired tech demo, it has grown into a powerful engine for voxel-based gameplay.
The project was previously focused on architecture and extensibility,
but as of early 2016 has released a first Alpha version to be a baseline engine for creating content and building gameplay.
Terasology has a CrashReporter utility that allows users to upload log files and report bugs on the forum
or via Github issues.
However, the CrashReporter requires a little bit of manual work.
Automatic error reporting functionality might help developers find more potential problems.
What's more, getting information such as hardware details and system information from users might be helpful to improve player's experience.
In March 2017, I wrote a proposal
for a telemetry system in Terasology and luckily the project was selected.
Telemetry in Terasology has mainly two goals:
to gather players' game-play information and to collect their error logs with system details.
Throughout the summer, I worked on both clientside (Terasology codebase)
and server-end (the telemetry server) functionality to achieve them.
Player consent was a top priority: players are well informed about the telemetry system and
they can choose to enable/disablt it,
as well as view data being sent to the the Terasology project, at any time.
You can get more information about this project by visiting:
Contribution Summary
Pull Requests in Terasology codebase:
Pull Request | Content |
---|---|
#2968 |
Config , popup asking for authorisation)
Metrics Menu showing all the telemetry field names and values
Logstash appender enriching error logs and sending them to the server
Metrics Menu
|
#3016 |
|
#3048 |
|
#3056 |
|
#3075 |
Telemetry API that other modules could use
|
#3083 |
|
Pull Request in snowplow
Pull Request | Content |
---|---|
#189 |
snowplow java tracker doesn't exit issue
|
Important commit in telemetry
Commit | Content |
---|---|
58be80d |
|
eb92636 |
|
b4b887d
97e8d01 |
iglu in telemetry docker
|
ae54c05 |
elasticsearch docker break issue
|
c9aafdc |
server does't return feedback issue
|
85e54b0 |
|
e9840f6 |
snowplow tools do not start normally issue
|
ba54487 |
|
ac2ce75 |
no_analyzed so that developer can cluster metrics easily in Kibana
|
Documentation
Doc | Content |
---|---|
Doc for telemetry |
|
Tutorial module |
|
Future Plans and Ideas
Telemetry has just taken the first step in Terasology, there are still quite a few things to do:
Apart from that, I’ll continue to contribute, minor or major, to MovingBlocks.
Acknowledgements
I'd like to thank to mentors: Rostyslav Zatserkovnyi, oniatus,
Martin Steiger, Tobias Nett!
Thanks also to Rasmus Praestholm and Marcel and the community MovingBlocks!
Thanks so much for reviewing the code, giving suggestions, giving ideas, etc.
I can't do it without your help!!
I’d also like to thank Google
for the wonderful opportunity to work on FOSS!