Quest GUI: multiple targets and approximate locations

More quests! Hurray! I'm having quite a bit of fun, even with the GUI. The challenge is to make something that looks reasonably normal in terms of polish. Latest iteration is, imo, good enough, but you can judge yourselves (and, as always, comments welcome!). Features:

  • Quest tracking: You can select a quest to track.
    • The tracked quest will now show map markers for different objectives that support and expose location data.
    • Different objectives are associated with different colours, and each objective can contain multiple target locations (e.g. "Find all XYZ elements").
    • Tracking can be toggled on and off.
    • There are different tracking modes. One is "exact" which exactly pinpoints to a target location. Another is "Radius", which highlights a radius where the target can be anywhere inside. There are more, but need better demos :)
    • If an objective has multiple tracked locations and you satisfy some of them partially, they will stop being displayed (makes sense, but there's extra bookkeeping to have this)
  • HUD info box: This displays a number of quests, the tracked one first and all untracked afterwards. The tracked quest, if there's one, is always visible. The untracked ones appear if an objective/quest status changes, they stay for a few seconds, and they disappear.
  • Journal screen: You can see in the video for yourself! Basically I'm trying to get something like avowed with 0 art budget. I must say unicode icons and Godot's BBCode support in RichTextLabel have been extremely useful and have made my life easier. Still barebones and work in progress, but I like the organisation. This screen also shows rewards or other things that can happen upon failure, that could be per-quest or per objective

From here, the most important thing that needs to be done is to add more example quest types and quests! No excuse, it's content time, and not art. A simple one for example is "Kill 10 spiders" which is really an instance of "kill N of a set of creatures filtered by some conditions, including location, species, etc"

Other

Too much of a good thing is still too much, so I've been working on a few other things.

  • Overworld visibility. Line of sight is increased, to make overworld exploration a bit more claustrophobic. Also added some dithering in the explored areas, to retroify it a bit.
  • XP for discovering new areas. A level is comprised of lots of different zones, organically blended. To give incentive for exploration, every time sentient characters discover a new such zone, they gain XP, showing a nice popup if it's the player. This also gives an indication of "we just discovered a new area, something interesting might be around here".
XP for discovering new areas