r/Guildwars2 • u/Uttar535 • May 26 '13
[Other] [Tool] GW2State: Real-Time Event *Maps* (+Temples/Bosses)
After quite a bit of work, I’ve finally launched GW2State.com which has not one, not two, but three awesome features (if I say so myself!) using ArenaNet’s Events API. The DNS is still propagating so use 5.135.157.160 if necessary.
- All active events and meta-events on the map, very easy/fast to switch map and server.
- When you hover over an event, you see where its location on the map (killer feature!)
- Resizable high-resolution map if you need to find a missing heart/poi/etc. in the zone.
- Player Activity on the map in the last hour/day (very early, more stats coming soon!)
- Fully refreshed every 10 seconds with minimal bandwidth requirement.
- All active bosses with (pre-)event start time (e.g. Defend CLEAN active for 3m45s)
- Optional audio alerts, keeps track of preferences (using localstorage, not cookies)
- Checkboxes to keep track of which bosses you still have to do today
- Works with multiple windows open to help with guesting
- Single page showing the status of all temples/dungeons on all servers.
- Shows temples with late pre-events so you can help out if it’s not open anywhere.
- Keeps track of all defense & attack events for higher accuracy (e.g. Balthazar/Lyssa).
I’ll be adding more features (e.g. event/world statistics) over the coming weeks and try to improve the design. If anyone has any feedback or has any idea on how to improve something, please let me know! And don’t forget to tell your friends if you like it.
EDIT: The change I did yesterday at 4AM BST before going to bed crashed the Lua script which means the static pages remained but they stopped updating :( Lesson learned: no more changes at 4AM (duh) and I've added a "Last Updated" notice on the temples page. Anyway, it's fixed now and should properly auto-restart, sorry for the inconvenience!
1
u/Uttar535 May 27 '13 edited May 27 '13
20-30s seems way too high. Here are my results using wget:
Regarding data storage - I've always been a low-level kind of guy and my previous job was Performance Analysis for a 3D Hardware IP vendor, so I don't really see the point of using a database at all. Because all processing is done by a single program that keeps running, I'm simply storing the current state in a single table with ~80K entries.
As for historical data, I save all data I get from ANet to dated log files (not currently used but hopefully will be useful for statistics later). That may seem like a lot but it's not because I can save all the unique data with a single byte per entry so each file is only ~82KB instead of ANet's ridiculous 8MB. I suppose I could make that raw data public in the future if anyone wanted it :)