Problem: Track players on an ARK: Survival Evolved (Steam) server, to better manage inter-tribe aggression. (When does another tribe have more players online - at what hours should we be diplomatic, and when can we be aggressive?)
Project: ARKData has been an ongoing project since mid-2015, when it began as copying player names from the arkservers.net page into an Excel spreadsheet. Having transformed this into a static site generator has taught (and retaught) me a great deal about front-end technologies and application architecture - from data ingestion to browser rendering.
I'm currently working on 2 upgrades - first, porting the SteamQuery application from PHP to Powershell, to natively use it instead of having to depend on another data source. Steam servers reply with a blob of information, when given the correct command over UDP. Arkservers.net just runs a PHP application called SteamQuery that queries a server with UDP and parses that into JSON. I rewrote my port yesterday - output is only missing a few data items - player play times, & server name/map/filename since these are not delineated. It's a series of pre-parsers, parsers, and post-parsers - Valve, why do your servers not speak JSON directly?
Second, using SQLExpress as a back-end. I'm currently using numerous CSVs and JSON flat files as a data store. Hopefully, this will improve application performance somewhat, and allow for better statistical analysis. With flat files, it takes several seconds to build a list of players seen in the past 24h.
The application isn't currently running - I only run it when I'm playing, against the server I'm playing on, and I'm not currently playing on any servers. There's a demo site still up, from the last time the application was operational:
http://gilgamech.com/ARKData/_Wiped_2_4__NoobFriendly_8xT_3x...
Project: ARKData has been an ongoing project since mid-2015, when it began as copying player names from the arkservers.net page into an Excel spreadsheet. Having transformed this into a static site generator has taught (and retaught) me a great deal about front-end technologies and application architecture - from data ingestion to browser rendering.
I'm currently working on 2 upgrades - first, porting the SteamQuery application from PHP to Powershell, to natively use it instead of having to depend on another data source. Steam servers reply with a blob of information, when given the correct command over UDP. Arkservers.net just runs a PHP application called SteamQuery that queries a server with UDP and parses that into JSON. I rewrote my port yesterday - output is only missing a few data items - player play times, & server name/map/filename since these are not delineated. It's a series of pre-parsers, parsers, and post-parsers - Valve, why do your servers not speak JSON directly?
Second, using SQLExpress as a back-end. I'm currently using numerous CSVs and JSON flat files as a data store. Hopefully, this will improve application performance somewhat, and allow for better statistical analysis. With flat files, it takes several seconds to build a list of players seen in the past 24h.
The application isn't currently running - I only run it when I'm playing, against the server I'm playing on, and I'm not currently playing on any servers. There's a demo site still up, from the last time the application was operational: http://gilgamech.com/ARKData/_Wiped_2_4__NoobFriendly_8xT_3x...
Github (Slightly out of date): https://github.com/Gilgamech/ARKScrape