Upcoming OSM/demo: dynamic weather/fog, nonlinear campaigns, custom HUD elements - by kdau
kdau on 27/6/2013 at 19:50
Quote Posted by Sliptip
With the HUD, do you think a mini-rotatable map would ever be possible?
A mini-map is definitely possible. It could have a compass rose on the map showing player direction, or maybe even a pinpoint of the current player location with an arrow for direction faced. (Both would be line art drawn on top of a bitmap.) Rotatable seems unlikely, though. The HUD system will only accept a path to an existing bitmap file and draw all of it or a region of it. There's no built-in rotation option, and no (safe) way to get at the bitmap data in memory to rotate it directly. The only two options would be to make a rotated copy of the image on disk and load that - which would be intolerably slow - or to have pre-made rotations at every e.g. 45 degrees, with a jump to the next closest angle. But I suppose we never know what will show up in a future version of the patch!
Quote Posted by PsymH
Man, that would be superb, because I'm working on a mission with two parallel worlds and each world has it's own sky. :thumb:
Sounds fun. If you don't mind the load screens in between, you could set it up as two separate missions and use the new nonlinear campaign feature to take the player back and forth.
PinkDot on 27/6/2013 at 21:59
Quote:
you could set it up as two separate missions and use the new nonlinear campaign feature to take the player back and forth.
Does it mean that we can go back to previously played mission and all the objects and AI we have interacted with would keep the changes done to them?
kdau on 28/6/2013 at 00:15
Quote Posted by PinkDot
Does it mean that we can go back to previously played mission and all the objects and AI we have interacted with would keep the changes done to them?
By default (and with the first version of my script), each mission would start completely fresh (except campaign qvars), and the feature would only be suitable for changing the order of forward progress (no returning to previous missions). To make it more useful, I've specced out a set of scripts that would load and save a wide variety of settings:
* All player properties, weapons, inventory, and loot would carry over (an expanded version of LastMissionLoot/InvCarryOver).
* Key properties on non-fixed objects would be kept for each mission. The only limit here (as far as I have checked) is storage size, so this should be flexible.
* Entry and exit points would be coordinated, automatically dropping the player at the correct place in the correct next mission.
* Campaign-level objectives would be persistent, while mission-level objectives, if any, would be properly isolated.
* Movies, goals/stats screens, and the like would all be adjusted to make sense for what was actually happening.
I'm calling it the "nonlinear toolkit". If someone wants to create such a campaign, I plan to develop and test those scripts along with that author's building and testing process, since fully testing this kind of system in isolation would be nearly impossible. (My own WIP isn't suitable.)
LarryG on 28/6/2013 at 01:05
Some of this sounds like it could be of use in my Prequel campaign. I look forward to learning the script details to determine if/how much of your planned capabilities could pertain. Sounds great so far!
PsymH on 28/6/2013 at 07:27
Quote Posted by kdau
Sounds fun. If you don't mind the load screens in between, you could set it up as two separate missions and use the new nonlinear campaign feature to take the player back and forth.
That's sounds promising, but the two worlds exist in one map and the transition is seamless via teleportation, like in the game "Zelda - A Link to the Past" or "Legacy of Kain - Soul Reaver". I used the same principle in my last mission "The Mirror of Return".
Weasel on 28/6/2013 at 16:06
I'm already thinking of interesting uses for the changing fog. It sounds like a lot of fun to play with (as an FM designer)!
YcatX on 21/4/2014 at 14:34
So, you could have a mission (A) lead to Mission (B1), or Mission (B2), or Mission (B3)?
Meaning that happens in Mission A could impact which version of Mission B is ran?
For example: in mission A you can:
A) Simply complete the mission without sounding the alarm leads to Mission B1 (Normal Patrols).
B) Complete the mission (after alarm is sounded) leads to Mission B2 (Double Patrols)
C) Complete the mission (and release the virus) leads to Mission B3 (Zombie Plague)
YcatX on 21/4/2014 at 16:16
Very interesting!
(
http://kdau.github.io/KDScript/KDTrapNextMission.html)
Quote:
When triggered, KDTrapNextMission changes which mission will begin after the current mission ends. (By default, the next mission is the mission specified in strings\missflag.str in the miss_X_next value [where X is the current mission], or else one mission past the current mission.) When turned on, this script sets the next mission to the value of the next_mission_on parameter, if defined; when turned off, it sets it to next_mission_off, if defined. The usual trap control flags, locking, and timing are respected.
It seems like an OR switch.. Am I reading it incorrectly? I'm also guessing you can only have one in play.
kdau on 22/4/2014 at 20:46
Quote Posted by YcatX
So, you could have a mission (A) lead to Mission (B1), or Mission (B2), or Mission (B3)?
Meaning that happens in Mission A could impact which version of Mission B is ran?
For example: in mission A you can: [...]
Absolutely, that setup would work. For your B1/B2 difference, my instinct would be to do something less major: selectively spawn or destroy the appropriate AIs in mission B based on a campaign-level qvar set by mission A. For B1/B3, however, KDTrapNextMission could allow more significant "zombie plague" changes: broken architecture, decayed textures, spooky sound design, etc.
Quote Posted by YcatX
It seems like an OR switch.. Am I reading it incorrectly? I'm also guessing you can only have one in play.
You can have as many instances of the script as you'd like, actually. There can only be one answer at a time to "Which mission is next?", but you can change that answer as often as you need by triggering different KDTrapNextMission instances. You can make the changes at any time, too, whether in mid-mission (e.g. when an alarm is sounded or a virus is released) or at the end of the mission (based on e.g. secrets found or number of kills).