Jump to content
The Dark Mod Forums
stgatilov

Custom GUI refactoring

Recommended Posts

As most of you probably know, the most of the UI scripts for TDM menu contain the following disclaimer:

/* =============================================================================================
 *
 * Main Menu (not in-game). This file is part of The Dark Mod's Main Menu GUI
 *
 * Mission Authors: DO NOT EDIT, INCLUDE OR OVERRIDE THIS FILE IN YOUR MISSION PK4.
 *
 * ============================================================================================= */

The reason everyone is asked to not override such files is that doing so stops TDM developers from changing (fixing, improving, etc.) these files in future. Because when many people have overridden these files, it becomes impossible to change interactions between them without breaking the FMs which do override any of them.

 

I have bumped into an issue where I need to do a small fix to one GUI file:  there are many FMs which override such files. Here is the list (probably excluding the most recent FMs):

   volta1_1.pk4             Kingsal
   cauldron_v2_1.pk4        Kingsal
   snowed_inn.pk4           Goldwell and Kingsal 
   ac1.pk4                  Goldwell
   ac2.pk4                  Goldwell
   bh.pk4                   Goldwell
   springcleaning.pk4       Goldwell
   northdale1.pk4           Goldwell
   u2_flock.pk4             Sotha
   lich_queens_demise.pk4   Sotha
   ulysses_genesis.pk4      Sotha
   hhi.pk4                  JackFarmer
   hhvf.pk4                 JackFarmer
   gatehouse.pk4            Bikerdude Goldchocobo
   bcd.pk4                  Bikerdude and the Crucible Team 
   elixir_1_3.pk4           Bikerdude and Obsttorte 
   briarwood_manor.pk4      NeonStyle
   talbot.pk4               Baal and Bikerdude 
   itb.pk4                  VanishedOne

I could of course write some harsh words here about how irresponsible this behavior is, how bad everyone is, etc. etc 🤬
But I think @grayman is right that the reason people do it is that core GUI files don't provide the level of customization that mappers want. And developers are often lazy when they get a request to improve something in a long-forsaken part of the game, like in GUI scripts.

 

I'd like to ask everyone involved: what things exactly you customized, what problems you solved by overriding these files?
Depending on the variety of features, it might be possible that I could improve the generic code by putting more defines into places which are allowed to be overridden. I really want to clear all of this, so that none of these FMs override such GUI files anymore.

Calling for: @kingsal, @Goldwell, @Sotha, @JackFarmer, @Bikerdude, @Goldchocobo, @Obsttorte, @NeonsStyle, @Baal, @VanishedOne

Share this post


Link to post
Share on other sites

I can see that also The Painter's Wife overrides 2 guis without permission:

- mainmenu_background.gui: looks like this was only to point to a custom background image. Could've avoided this by overwriting the default image file. Doesn't look like there's any place in the customisable guis to change the menu background, only the title image (maybe that's the same thing?).
- mainmenu_briefing_video.gui: this was taken from an existing mission that had a briefing video, so I don't know exactly what's going on here. It looks like a lot of missions that have briefing videos overwrite this file. IIRC it's something to enable skipping a briefing by pressing escape without seeing a blank briefing page. When you click to skip you still see that, though.
 

Some things to note:

  • mainmenu_custom_defs.gui says it's the only customisable file, but mainmenu_briefing.gui also gives permission
  • I think a problem with the custom guis is how long and full of comments they are, making it difficult to find something specific.
    • For example, it currently has blank definitions for 10 and sometimes even 60 briefing/debriefing videos. I think by default there should only be 1 definition and if the mapper has more he can copy paste them and increase the number. If necessary the excess definitions could be moved to mainmenu_custom_defaults.gui.
    • The comments are informative but could be condensed, something I could do at some point.
    • If the custom GUIs are going to be extended a lot it may be a good idea to split them up into i.e. briefing, main menu, loading screen etc.

Share this post


Link to post
Share on other sites

I'm going to repost what I wrote in our private DM's

 

Quote

Adding the custom "mainmenu_briefing_video.gui" was aimed to fix a bug that caused the player to see parchment if they left clicked during the briefing video, it is not to prevent blank parchment from showing if you hit escape (that is a separate issue).

 

If you want to test this for yourself load up Shadows of Northdale Act 1 and hit play mission, then left click during the video. It will skip the video and then you will see the objectives screen.

 

Now close TDM and go into the folder "fms\northdale1\guis\" and remove the file "mainmenu_briefing_video.gui" and load up the dark mod again and start Shadows of Northdale Act 1, but this time when you left click during the briefing video it will skip and land you on the blank parchment instead of the objectives screen.

 

So yeah if there is a way we could have it so that regardless of what the player hits to skip the briefing video it would take you straight into the objectives, that would be awesome. But once again, the custom gui only fixes the blank parchment bug for left clicking, not hitting escape.

 

Just to add to that, when the update that has this bugfix in it rolls out, i'll gladly remove the offending gui files and update my missions to whatever the new format/setup is.

Share this post


Link to post
Share on other sites
Quote

 //This file has been modified by Sotha in order to facilitate briefing videos for this mission
 //All occurences of MM_STATE_BRIEFING was replaced with MM_STATE_DIFF_SELECT in order to make the mission
 //not show empty briefing paper.

As far as I can tell "maimenu_briefing_video.gui" in The Elixir is a modified version of the original file as stated in the above disclaimer. I haven't modified it and can't judge on whether it will do any harm replacing it with the original.

  • Like 1

FM's: Builder Roads, Old Habits, Old Habits Rebuild

WIP's: Several. Although after playing Thief 4 I really wanna make a city mission.

Mapping and Scripting: Apples and Peaches

Sculptris Models and Tutorials: Obsttortes Models

My wiki articles: Obstipedia

Texture Blending in DR: DR ASE Blend Exporter

Share this post


Link to post
Share on other sites

As of now, there are two confirmed reasons for override:

  • Change the common background of all menu screens, removing the figures randomly on main page too.
  • Skip "briefing" screen after video.

Any more?

Share this post


Link to post
Share on other sites

I'll PM you with my needs. Since posting them here would expose the storyline, I prefer my needs stay private, so as not to "give away" what's going on.

  • Like 1

Share this post


Link to post
Share on other sites

I want full access to all the main menu and in game GUIs art and sound. As well as how it’s placed on the page. I like fiddling with that stuff and in fact want to make it easier for authors to customize them in the feature. 
 

It’s not irresponsible behavior- it’s modding. We are going to need to find a way around it and possibly go in and fix existing missions. 
 

 

  • Like 3

Share this post


Link to post
Share on other sites
Just now, kingsal said:

I want full access to all the main menu and in game GUIs art and sound. As well as how it’s placed on the page. I like fiddling with that stuff and in fact want to make it easier for authors to customize them in the feature. 
 

It’s not irresponsible behavior- it’s modding. We are going to need to find a way around it and possibly go in and fix existing missions. 
 

 

Seconded. I actually find the whole menu look and structure very outdated and clunky, so I'd like to propose a major redesign at some point, and possibly try it myself.

  • Like 1

Share this post


Link to post
Share on other sites
5 hours ago, Dragofer said:

I can see that also The Painter's Wife overrides 2 guis without permission:
 

The existence of the "DON'T CHANGE" line means "don't change". It doesn't mean "ask for permission before you change this". (What it truly means is "if you customize this GUI, then be prepared to update your mission to include future changes the devs make to the original file".)

I have no idea if dev changes made over the years made their way into the customized files.

 

  • Like 2

Share this post


Link to post
Share on other sites

Fourthed :)

 

I am actually in favor that mappers are allowed to modify as much as possible, because it is called The Dark MOD for a reason. (and it is called dark due to the arosing consequences people like you have to deal with afterwards :D )

  • Like 1

FM's: Builder Roads, Old Habits, Old Habits Rebuild

WIP's: Several. Although after playing Thief 4 I really wanna make a city mission.

Mapping and Scripting: Apples and Peaches

Sculptris Models and Tutorials: Obsttortes Models

My wiki articles: Obstipedia

Texture Blending in DR: DR ASE Blend Exporter

Share this post


Link to post
Share on other sites
9 hours ago, kingsal said:

I want full access to all the main menu and in game GUIs art and sound. As well as how it’s placed on the page. I like fiddling with that stuff and in fact want to make it easier for authors to customize them in the feature.

I plan to provide in mainmenu_custom_defs.gui:

  • background image
  • music and sound

Although it seems that most of these things are already provided there.

As for layout/placement, I don't think it can be customized easily. At least the parts of the menu which are accessible to player before he starts the FM should stay fixed.

 

The perfect solution would be separating presentation from behavior in every file. That's how tdm_waituntilready.gui is done.
Maybe I can do the same to states: success, restart, and objectives.

  • Like 1

Share this post


Link to post
Share on other sites
33 minutes ago, stgatilov said:

As for layout/placement, I don't think it can be customized easily. At least the parts of the menu which are accessible to player before he starts the FM should stay fixed.

I think once the FM is loaded in- the author should be able to override any visual placement, background ,ect. Basically creating their own windowDefs as long as they point to the same functions the current menu does. 

 

I am already replacing a lot of these files in my current FM and I dont mind updating them to whatever you're doing, but just to reiterate.  Locking people out of those files is going to create more trouble than its worth.

Share this post


Link to post
Share on other sites

Also, it's not only about background and music. If someone wants to e.g. replace the static image with a 3d scene, get rid of the menu paper background and move everything to the left, Thief 4-style, they should be able to do it.

Share this post


Link to post
Share on other sites

We cannot hold back developers from fixing GUI related issues etc. At the same time, authors want to modify these GUIs to create a certain look and feel for their FM. As it is not practical, to think of all possible customizations, an author might need, we cannot really create a one-fits-all customizable GUI. Therefore, I would suggest the following: 

Allow  authors to modify any gui file as they wish. If the author publishes a mission through the official TDM servers, he/she implicitly agrees that his custom guis will be replaced by stock ones, should his/her FM become unplayable due to GUI-code-changes and he/she is not reachable to fix it themselves.

A simple public announcement, linking all authors via @, should suffice. All FMs that have not been updated one month later, will be updated by the team with a stock gui, to fix the issue.

 

Share this post


Link to post
Share on other sites

As long as the new  stock GUI provides the same experience as the custom GUI.

Share this post


Link to post
Share on other sites

Sir, sir, Obsttorte told me to do it sir! :P

In ITB's guis/mainmenu_objectives.gui:

/* =============================================================================================
 *
 * This file is part of The Dark Mod's Main Menu GUI
 *
 * Mission Authors: DO NOT EDIT, INCLUDE OR OVERRIDE THIS FILE IN YOUR MISSION PK4.
 
 'I've modified a lot of such files containing that warning and hey, I'm still here.' -- Obsttorte, http://forums.thedarkmod.com/topic/18729-how-about-redesign-tdms-mainmenu/page-3#entry405730
 
 *
 * ============================================================================================= */

As for what it actually changes, it increases the dimensions of a text box so I can fit in a difficulty level called 'For your eyes only' (compare windowDef Difficulty2 to the others).

  • Haha 2

Some things I'm repeatedly thinking about...

 

- louder scream when you're dying

Share this post


Link to post
Share on other sites
5 hours ago, STiFU said:

A simple public announcement, linking all authors via @, should suffice.

I don't think that triggers e-mail notifications, so it's not necessarily optimal for getting hold of people who are contactable and potentially willing to deal with the issue but happen not to be checking the forum for a while.

Edit: okay, I've found the setting to turn e-mail notifications on for that. I don't remember changing the defaults, but it's possible I did; anyway, it's still the case that people can have e-mail notifications for @ mentions turned off.

Edited by VanishedOne

Some things I'm repeatedly thinking about...

 

- louder scream when you're dying

Share this post


Link to post
Share on other sites
3 hours ago, grayman said:

As long as the new  stock GUI provides the same experience as the custom GUI.

I don't think that would be easily possible. Say, there is a bugfix in the gui code that breaks some custom guis of FMs. The author of that FM is not reachable. How do we proceed? The way I see it, there are four options:

  1. A Teammember could disect the gui and try to fix it manually. --> Work-intense. The average dev probably does not want to manually fix up a dozen FMs
  2. The FM could be re-released with the default GUI, potentially with a completely different look.
  3. We just stop fixing issues in the GUI-Code.
  4. The FM is taken offline.

Out of these four, I really think no. 2 is the least harmful one.

Share this post


Link to post
Share on other sites

In the case of the 2 Steele missions I’m working on now, solution 2 is impossible and would result in using solution 4, which would end the Steele missions at WS5.

which would be a shame, after years of work.

I explained the situation to stgatilov. Hopefully, GUI changes will be done in such a way that they will allow for the customizations I need.

If it appears at any point that the answer becomes ‘no’, then my work on Steele ends immediately.

  • Sad 3

Share this post


Link to post
Share on other sites
6 minutes ago, grayman said:

If it appears at any point that the answer becomes ‘no’, then my work on Steele ends immediately.

No way, we won't let that happen!! 🙂 I guess we will have to work something else out!

Share this post


Link to post
Share on other sites

As it stands, it seems the majority of the FMs with custom .gui files listed in the OP only made very minor changes of a technical nature, i.e. self-help with avoiding a blank briefing screen after skipping a video. It should be realistic to reduce the list of FMs that *must* have custom GUI files to a much smaller number.

After that's done, if the devs make a GUI change it should be fairly reasonable to test whether the GUIs of those missions still seem to work as intended, i.e. contact the authors or else ask betatesters to work through a list of FMs with custom GUIs. If one of those FMs has problems that can't be resolved, then I'd see a 5th solution: add all the GUI files from the previous TDM version to the FM, so that it'll forever live with that GUI state while all other missions continue to benefit from updates.

  • Like 2

Share this post


Link to post
Share on other sites
3 hours ago, VanishedOne said:

Sir, sir, Obsttorte told me to do it sir! :P

In ITB's guis/mainmenu_objectives.gui:


/* =============================================================================================
 *
 * This file is part of The Dark Mod's Main Menu GUI
 *
 * Mission Authors: DO NOT EDIT, INCLUDE OR OVERRIDE THIS FILE IN YOUR MISSION PK4.
 
 'I've modified a lot of such files containing that warning and hey, I'm still here.' -- Obsttorte, http://forums.thedarkmod.com/topic/18729-how-about-redesign-tdms-mainmenu/page-3#entry405730
 
 *
 * ============================================================================================= */

As for what it actually changes, it increases the dimensions of a text box so I can fit in a difficulty level called 'For your eyes only' (compare windowDef Difficulty2 to the others).

I don't know nothing. Must have been another Obsttorte 🤫


FM's: Builder Roads, Old Habits, Old Habits Rebuild

WIP's: Several. Although after playing Thief 4 I really wanna make a city mission.

Mapping and Scripting: Apples and Peaches

Sculptris Models and Tutorials: Obsttortes Models

My wiki articles: Obstipedia

Texture Blending in DR: DR ASE Blend Exporter

Share this post


Link to post
Share on other sites

@stgatilov

I made changes to enable:

- custom main title picture

- custom video briefing

- custom main title music (sometimes also for in-game menu displays)

- loading picture

I did not change lines other than for the subjects mentioned above.

Jack

Edited by JackFarmer
  • Thanks 1

Share this post


Link to post
Share on other sites
On 8/3/2020 at 6:54 PM, Dragofer said:

Doesn't look like there's any place in the customisable guis to change the menu background, only the title image (maybe that's the same thing?).

No idea what it was for.

Right now the only FM using it is "Marsh of Rahena". It sets the rectangle to full screen, which overrides not only the background image, but also the parchment. It pops up in pretty ugly way, and switches out when you go to Settings, New Game, Load/Save, etc.

I'd be happy to eradicate this thing.
@ERH+, would it be OK if I remove the custom title feature and change your FM to override background instead (like e.g. in Accountant 1)?

 

MarshOfRahenaTitleImage.jpg

  • Like 1

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...