Greetings stranger!
A picture paints a thousand words:
Kraut gibberish translated: "Discovered location: Waldrast", "Alice left your party" and "Item received: 5 Potions" Here's the demo to illustrate my idea, implemented via an abomination of an event code:
Notifications-Demo.zip
While filling my maps with loot and expanding sidequests and the day'n'night system I came to the conclusion that message boxes interrupting the game's flow aren't always the best way to deliver information to the player, especially if it's the type of information that is not of supreme importance. Possible examples not just from my project are:
- a quest is updated,
- a new conversational topic becomes available,
- the player enters a new settlement that is added to his fast travel map,
- the player finds a common item or gold while enter-hacking the environment,
- the player's stamina is low and he wonders why he can't dash anymore,
- the game is starting an update or streaming/fetching data in the background which might cause minor freezes,
- autosaving/reaching a checkpoint,
- ... or more complex events, e.g. the player passes a specific area at a certain time of day that is crucial for a sidequest to advance and gets notified about that en passant.
Of course none of these notifications would be actually
triggered by the script I'm imagining; it's more a kind of extended framework for drawing text with hardly any other functionality on board. These are just occasions where you could use these notifications in script calls or from other scripts.
Anyway! So I go to Google and search for popup and notification scripts and the only one that comes close to this idea is Yanfly's
Event Window for VX Ace. However it's lacking a vital feature, namely eye candy. And, well, it's still written for Ace, which I recall to have a window setup quite different from XP. So screw that, for now.
Alright, so how could such a script look like (besides the example I've given above)? Here's what I have come up with:
Script Calls / methods:
- push (string, sound = default) => generic method for notifications, message code compatible
- push_item (id, amount, icon = true, sound = default) => adds/removes item, with or without corresponding icon
- push_gold (amount, icon = true) => dito
- clear (frames) => fades out all notifications on screen in a certain amount of frames
- toggle => deactivate/enable notifications and sounds, for cutscenes and the like
Configuration:
- Fade in/out length of notifications in frames
- Speed and type of movement (linear, smooth using cosinus)
- Visible time: either a set amount of frames per notification or per character in the string (so long notifications are shown longer)
- Maximum number of simultaneously visible messages
- Default sounds and icons for item/gold script calls
- Whether or not to clear notifications upon entering a new map
- ... and all the other stuff like x/y, whether to move notifications down or up, font face, size, color
Here are some scripts than can be used as reference or provide functionality:
I do hope I inspired and convinced someone out there that coincidentally knows a tad more about scripting than I do
I for one am sure that such a tiny feature as described here can help steady the game's pace and also lend a certain richness and style to every project implementing it.
Cheers!