Thursday 31 December 2015

Interface size settings are now available

Allright. Last build for this year.
I added the ability to change the interface size from the Taco menu. For now this affects the menu position/size, the fonts used, and the Map Timer. The four interface size options correspond to the ones in GW2 and position the Taco menu accordingly.

Get the new build here.

Release notes:

  • Added interface size options
  • Map Timer now uses the font height to scale the rows
  • Map Timer should now work independent of timezone
  • Less intrusive mouse event handling
And a happy new year to everyone! :)

Hotfix #2

Managed to reproduce the previous issue and fix it permanently. Things should be a lot more stable now with the Taco menu.

Changes

  • Fixed a UI messaging error with context menus which caused a bloating of the message queue
  • Fixed a UI messaging error where if a message created another message the contents of the original message could be invalidated (sometimes caused crashes when requeueing the same message)
  • Added Taco icon for the application, as suggested by cylonapplepie - splash screen will come later :)
Get the new version here.

Wednesday 30 December 2015

Hotfix #1

There have been some reports of a rare crash when clicking on menu items. I've created a hotfix that should help with the problem until I find a permanent solution. You can download it from here.

Changes:

  • UI message queue default size increased
  • Changed the Taco menu icon to have an outline
  • Crash log will now output proper build version
  • Reset orphan times in the datafile because it already contained my run for the day :)

First TacO release

Hi!

There's a new build, and now the overlay has a name! :)

I put in some work on the overlay these last couple of days and made the initial functionality easier to use. Here are the release notes.
  • Added mouse-interactive button to the top of the screen. Clicking it will open up a menu that lets you customize the overlay on the fly. 
  • Changed the way keyboard interaction is handled. Still not final, but should be better than before.
  • Added North-South-East-West tactical markers for the Gorseval and Sabetha fights.
  • Implemented a config system to keep settings between runs.
  • Implemented a window handling system, mostly for future use. The map timer is now in a window that can be moved around and resized if the Window Editing Mode is toggled on. (No mouse cursor changes for movable/resizable areas, the sides of the windows can be grabbed)
  • The following things can now be toggled on and off from the Taco menu on the fly:
    • The info-line
    • The map timer
    • The mouse highlight
    • The tactical display
    • Whether or not off-screen tactical icons are kept at the edge of the screen
  • Added an about window with a link to the devblog
There are many interesting ideas on how this app could help out with raids (location based timers for one), I'm looking into them.

You can download the new build from HERE.

Should there be any crashes, please report them here by copying the generated crash.log file to the comments.

Tuesday 29 December 2015

Raid directional helpers

Just a little something we found useful during our raiding. These markers (and ones for Sabetha) will be included in the next release.


Upcoming Features

I'm currently working on making the overlay interactive with the mouse. This will allow the possibilities to expand indefinitely. Here are some of the ideas I had for the future of the overlay, depending on demand:

  • Minimap widget so the pois can also be seen in a 2D view (there's no API to access the state of the in-game minimap, so a separate one is needed)
  • Downloading POI data from the corresponding API and making it visible in the tactical overlay
  • Working together with the Markers guys and being able to access their POI database
  • WvW API integration for realtime tactical information
  • Trading Post API integration
  • Customizable daily to-do checklist
  • Keybindings to toggle individual windows
  • ... ? - all ideas are welcome

Initial Feature List

GW2 TacO in the original release had three major features:

Tactical Markers

The overlay lets you place markers at your character's location in 3D in the game world. You can then see the location of these markers from anywhere on the map. The icons of the markers are customizable (although you need to edit the xml files by hand for now), and they can disappear until the daily reset (the included Orphan map is using this feature).


Map Timer

A configurable map timer is included in the first release, by default it is set to display the HoT map rotation.



Mouse Highlight

The third feature which I found very useful in raids is the full-screen mouse crosshair.


All of these features can be configured and turned on-off.

Quick Start Guide

So you decided you want to try GW2 TacO, but not sure how to start.
It's easy:

  1. Download the latest build (always the top link in the Downloads section on the right panel of this blog)
  2. Extract the downloaded zip to any folder - it doesn't have to be the GW2 folder, in fact it's better if it isn't. Just create a folder anywhere and put the contents of the zip in there.
  3. Run GW2 and log in, make sure the game is running in windowed or windowed fullscreen mode.
  4. Run GW2TacO.exe
  5. You're good to go.
Setting up TacO inside the game:

  1. In the top left menu bar you'll see a new icon, a TacO
  2. You can move the different TacO windows around by clicking the TacO menu and selecting "Window edit mode". Resizing and moving the windows will be possible that way.
  3. Once you've moved the TacO windows to convenient locations, turn off "Window edit mode" the same way you enabled it.
  4. The rest of the TacO setup should be self explanatory through enabling/disabling stuff in the TacO menu
  5. The most popular marker packs can be enabled in the TacO menu, and once enabled they will be automatically downloaded and kept up to date
  6. For some of the features you'll need to create an API key at https://account.arena.net/applications. Currently the "account", "progression" and "characters" features of the API keys are used. You can add the API key through the TacO menu.
Have fun :)

FAQ and Troubleshooter


Common problems

  • I can see the TacO icon and/or the Map Timer, but the icon won't do anything when I click on it, and doesn't highlight when the mouse is over it.
    • This can happen if GW2 TacO is running with lower privileges than GW2 itself. In this case the mouse input won't get transmitted to the application with the higher privileges. You most likely have GW2 running in admin mode (either you started it from an application that already had admin mode, or for other reasons like running Reshade) and GW2 TacO not. In this case running GW2 TacO in admin mode should fix the problem.
    • (Added a popup message to warn of this)
  • I can see the TacO icon and/or the Map Timer, but the rest of the screen is black and I can't play.
    • This can happen if you have the transparency effects turned off in Windows 7, probably because you're using the classic theme for Windows. Turning on Aero should fix the problem.
    • If you get this on Windows 8 or above on any TacO version above 008.513r please send me a dxdiag log so I can narrow down the problem.
    • Make sure you have the latest drivers installed for your GFX card, some people have reported the issue fixed with a driver update.
    • Make sure any driver related postprocesses (FXAA for example) are disabled for TacO. Those might fill the alpha channel with a fully opaque value and thus make TacO non-transparent.
  • I have GW2 running but I don't see the TacO icon in the top left or the Map Timer.
    • Check to see if you're running GW2 in fullscreen mode. Fullscreen mode is not supported by GW2 TacO as supporting that would mean entering a grey area that'd technically be against the game EULA. Run the game in Windowed or Fullscreen Windowed mode.
    • If you're not running the game in Fullscreen mode and still don't see anything, please contact me so I can debug the issue.
  • Everything works fine, but the TacO is over my PvP icon
    • Restarting TacO with the -forcedpiaware command line option should do the trick. That, or turn on DPI awareness in GW2.
  • How can I disable all the markers?
    • Click the TacO icon and untag the option that says "Tactical Overlay"
  • How can I disable some of the markers?
    • Click the TacO icon and from the very first menu you can toggle which types of markers you want displayed or not. You can click on higher level items in the menu to disable/enable everything below those elements.
  • I accidentally placed a marker with '+', how do I remove it?
    • Walk up to the marker and press '-'
  • Accented characters I type aren't working in GW2 when TacO is running.
    • This is a known issue. The way TacO acquires keyboard events (through what is called a low level keyboard hook) interferes with the pre-casting of accents that some keyboard layouts have. If this is bothering you to the point of not wanting to use the overlay I can put in an option to turn the keyboard handling off temporarily, let me know, but this request hasn't come up yet.
  • TacO doesn't keep my settings after I quit, and I need to set up everything all over again on each run.
    • This happens when TacO is put in a folder where it doesn't have write permissions without admin rights. Usually the cause of this is that you put TacO right next to GW2 inside the Program Files folder, which is something that requires elevated user rights for write access. Put TacO in a folder where it's certain to have write rights (the Desktop is a good solution for this), and the issue should be solved.
  • TacO works, but I don't see all the resource nodes in the game
    • TacO is only a platform, the information of where the nodes are is created by players since it takes a massive amount of work to mark everything. You can look around for marker packs that might have the information you're looking for, or help the community by creating your own and sharing it with others.
  • TacO behaves oddly when I use multiple GW2 accounts at once on the same PC
    • UPDATE: Since Build 43 TacO supports multiboxing. Launchbuddy now has native support for TacO to make setting this up easy.

FAQ

  • Is it possible to update TacO without loosing my settings?
    • Yes. Local settings are stored in the TacOConfig.xml and the Activationdata.xml files. None of these files are distributed in the release packages, you can simply overwrite your previous install with the new version. The only exception is if you edited some of the other files by hand, obviously.
  • Will using this get me banned?
    • Arenanet hasn't responded in any capacity to GW2 TacO yet, but they have made statements before that suggest that using it is ok. In particular they have said before, that using overlays is fine.
    • I intentionally avoid doing anything that even gets near the grey area of what could be deemed as a breach of the EULA. The camera information that is required to render the markers is acquired through the official Mumble Link API. Everything else displayed is user supplied content that is based on storing locations acquired manually from the data that the Mumble Link supplies. The overlay doesn't interact with the game in any other manner, it's simply a transparent window hovering above GW2. An example of something in the grey area (that I avoided implementing on purpose to stay away from even the grey area) would be making the overlay work in normal full-screen mode. This basically requires injecting code in the game, and is done by other overlays (anything that messes with shaders goes at least this far) or even Overwolf, but this latter is actually endorsed by Arenanet.
    • UPDATE: A video showcasing TacO was tweeted out by ArenaNet during the 2017 Super Adventure Box:
    • UPDATE: There has now also been a mention of TacO by one of the ArenaNet developers, stating that he doesn't see anything that would violate the fair use guidelines for the Mumble API.
    • tl;dr - using an overlay like GW2 TacO should not get you banned.
  • Is there a mac version?
    • No. TacO uses the Mumble Link API, which is not currently supported by the mac GW2 client. And even if that was fixed, TacO is built on DirectX, which is not available on mac. Because of this, and the size of the engine that TacO is actually built upon, porting would require significant effort. That would only be possible if I even owned a mac. But I don't.
  • My antivirus program is reporting TacO as malware!
    • This happens after every release to some people. It's due to two things: antivirus programs work with heuristics that can trigger on anything web related or something that creates a transparent window (like TacO) or anything that's unusual. The second is that unknown executables are treated with more skepticism by antivirus software.
      If you encounter this, please send TacO in to your antivirus company so they can thoroughly test it manually and put it on a white list. All antivirus software should have an option to send in files to be checked.
  • Does TacO support multiboxing?
    • Yes, since build 43. Launchbuddy has native support for TacO to help set it up.
  • Is this opensource?
    • Not at this time, no.
  • Why? Your development would be so much faster / I don't trust any non opensource homebrew software.
    • Why: Because the UI engine behind this overlay is something I've been working on for a couple years now, I use it in several other projects and it's not something that I want to opensource right now.
    • Developmend speed: Since I use a codebase completely written from the bottom up by me (I don't even use stl, and I supply my own functions for everything instead), anyone attempting to pitch in would have a LOT of catching up to do. This is a hobby project for me, released only because I think others can benefit from it. I'd like to avoid any sort of management tasks related to the overlay, which tend to pop up in any team effort.
    • Security: The debug information is in the archive (because I'm lazy and having that in there means any crash logs will have convenient line and file information), so it should be pretty easy for anyone that would understand the actual source code to take the overlay apart and see that it doesn't do anything malicious. If you're still not satisfied and you're a member of the opensource security zealot army, please let's just go our separate ways and stop wasting each other's time. If you don't trust it, don't use it.
    • A note: I did release some of the source code for the original tech demo after a lengthy debate on reddit, as an experiment. I didn't include the UI engine, but all of the technology used by the overlay (in regards to GW2) is in there. If you're wondering whether I'm accessing the client in any non EULA-friendly way, you can have a look at the released source code here.
  • I can see all the categories for the resource nodes and they are all ticked to be shown, but no nodes I saw were marked. What gives? Is TacO not working?
    • TacO in itself is mostly a tool for marking stuff in the game world. The marker packs that come with it were either created by me or donated by helpful players, and were the result of painful amounts of work in some cases (think the guild bounties). Creating and updating a marker pack containing all the possible spawn locations of all the nodes on all the maps is a HUGE undertaking, one that no one has been able to finish yet, and so TacO does not come with such a database. There are efforts under way to do this, we'll see how they go. The marker categories are there so you can mark stuff for yourself as you encounter nodes, so you can slowly build up your own database.

What is GW2 TacO?

I'll just copy-paste the original reddit post here because I'm lazy :)

---

Hi.

As a long time player of GW2 I was very much looking forward to the HoT release, and the new legendaries in particular. When I started grinding for crystalline ore, I found myself searching for noxious pod maps on the internetz. Needless to say, the new maps being as complex as they are, the 2D maps offered on Dulfy don't really help much, especially with the post-boss time limit of Dragon's Stand.

So I started looking for a better solution, had a quick glance at Overwolf and some applications there, but they were slow, didn't do anything I was looking for or they didn't work at all and crashed on startup, mostly bringing down the Overwolf framework as well. Being an ex-game developer myself, I found this unacceptable, and looked into creating an overlay of my own. I'll spare you the details but it was not too much of a challenge, and after a couple days of work I could place 3D markers in the world, visible from anywhere on the map, as a sort of tactical display.

I've since expanded the functionality to include a configurable map-timer (set to show the HoT map rotation by default), and a fullscreen crosshair for the cursor, a very handy feature for raids.
I've been using this little tool with a couple friends of mine for a bit over a month now, and found it a most useful addition to the game. With the recent release of wintersday and the DR orphan locations presenting a very similar situation to what originally sparked the idea for my overlay, I thought I'd give this gift to the community. I know there are many people out there who will find it useful.

The archive contains my personal datafile, including all the noxious pod spawn locations I came upon, a lot of Crystalline Cache and Airship Cargo locations as well, and for the theme of the season, all the locations of the 30 orphans in DR, that also track which one you've visited today already. There's also a bit more detailed readme that you should read.

The obvious question: is this against the eula? To the best of my knowledge, no. I only use APIs documented on the wiki (most notably the mumble link API), and all the content that is displayed is user generated, not touching the game at all. Using this falls into the same category as using Overwolf, which is endorsed by Arenanet.

So, without further ado, the link: https://www.dropbox.com/s/o2h7q6zx6uq7bex/gw2pois.zip?dl=0

A note: the software requires dx11 to render the interface, so be sure to be on windows 7 or later to use it. Also, the UI is not yet interactive with the mouse. Instructions on placing and removing new markers are in the readme.

To satisfy the more wary: a quick screenshot from Dragon's Stand:

FAQ:

- I only see the overlay, but the background is black, the game doesn't show through, what's wrong?
  You're probably using the classic windows theme on windows 7, which disables the transparency features that the overlay uses to render the interface. In this case this might not be the overlay you're looking for :)

- How do I turn off the annoying red crosshair following my cursor around?
  Go into the ui.xml file and remove the line that says <MouseHighlight id="mousehighlight"/>, then restart the overlay.

- The map timer is partially off-screen or too large, how can I fix that?
  Go into the ui.css file and in the #maptimer block change the bottom:700px; line to something like top:50px; you may also want to change the width and height parameters to something smaller if the timer overlay is taking up too much room on your screen. After you made the edits, restart the overlay.

Here we go

Allright.
After the first release of the overlay on reddit, I quickly learned a couple things. Just to name a few:

  • People seem to like the general idea of a lightweight overlay for GW2
  • More (easier) customization options wouldn't hurt
  • There is a similar project called Markers, with whom I'll possibly be cooperating
  • A centralized place for communication and releasing new versions is required
  • Using my temp space for hosting on conspiracy.hu freaked some guys out
  • Opensource Zealots are as paranoid as ever
  • The tech demo I released didn't have a name
These things made me realize that I need to establish a constant presence separate from my other projects. So I present to you the GW2 TacO (Tactical Overlay) development blog. TADAA \o/ :)

You can find the original reddit thread with the first public build here.
I have uploaded the files from the original release to dropbox, and future releases will be done through here.