Any bug reports, feedback and, of course, contributions are greatly appreciated. Those who wish to contribute code should read the contributing guidelines at the BitBucket.
Anyone in the community who would be keen to work closely with the 'KZ Global Team' and I to develop exciting new plugin features, web apps and services should hit us up in the CS:GO KZ Discord.
Some Cool, Related Links
WebGL GOKZ Replay Player - https://github.com/Metapyziks/GOKZReplayViewer
Very, VERY cool prototype of parsing the GOKZ replay files and playing them back in a browser with high, in-game-like quality and framerate.
MovementAPI - https://github.com/danzayau/MovementAPI
The modes and some other features of GOKZ are heavily dependent on MovementAPI, which is a library+plugin I wrote primarily for GOKZ.
You may find this interesting or useful, or maybe not so much when compared to other libaries like smlib.
GlobalAPI - https://global-api.com/
Heavily in-development REST API with accompanying SourceMod plugin to provide global leaderboards, map lists and ban lists for timer plugins. This is used by GOKZ.
GOKZ Stats - https://gokzstats.com/
Simple website showing global times for the three GOKZ modes (data comes from GlobalAPI).
Acknowledgements
1NutWunDeR - KZTimer initial work KZ Global Team - supporting the plugin alongside KZTimer shavit - bhoptimer being open-source george - providing advice, snippets sneaK - getting involved with the CS:GO KZ community ziks - WebGL Replay Player being awesome
Developer Ramblings
Spoiler
GOKZ actually started under the name of SimpleKZ (https://github.com/danzayau/SimpleKZ). Back then, I was only really getting into the swing of programming and it was also my first SourcePawn project. Unfortunately, but hopefully interestingly, I picked up some unconventional and maybe bad habits regarding the way I structured the files and code for the plugin. I like maintaining it so I think I'd call it good enough.
Anyway, so KZTimer was the dominant, 'only choice' of KZ plugin for CS:GO servers. And, at the time of writing, still is. I had issues with it gameplay wise - the inconsistent bhop mechanics of CS:GO were getting on my nerves when speedrunning. Eventually I set out to write my own proof of concept of some more preferable movement mechanics (https://github.com/danzayau/MovementTweaker). Unfortunately, KZTimer being written the way it is, I had no way of putting this in as a selectable option whilst maintaining my sanity. Another developer had also been hinting that they were going to release a new 'KZTimer 2.0' but unfortunately didn't end up having the time. So, I went ahead to take on the challenge of creating a new alternative to KZTimer with my movement mechanics as an option. Cue SimpleKZ and then later getting accepted by the heads of the KZTimer community to create GOKZ as the future of KZTimer.
Timer plugins seem to be a bit of a cliche in the SourceMod community, but it would seem that most target bhop and surf servers. KZ doesn't have a lot of the intricacies like directional styles (e.g. backwards, sideways), zones and stages, detailed strafing stats. KZ also has a few unique features like a checkpoint and teleport system, hooks to buttons in the map, and jumpstats (to an extent). I probably could have forked or extended an existing timer plugin to support KZ, but the truth is I didn't really consider it. I very quickly locked myself into writing a plugin from scratch. Regardless, I owe many thanks to several members of the community for technical inspiration and, in some cases, full code snippets.
So, thank you AlliedModders/SourceMod community. Please enjoy my contribution made possible by you.
Last edited by DanZay; 11-11-2019 at 02:40.
Reason: Updated version