Jump to content
The Dark Mod Forums

DarkRadiant 2.13.0 pre-release test


Recommended Posts

On #5603: Ability to choose from several different pointfiles (to support the TDM internal leak reporting feature)

pointfile.gif

It recognises the special .lin files which are created by TDM's map compiler to diagnose internal leaks.

If there is more than one .lin file available for the current map, the File > PointFile... option will show a list to pick the pointfile to display. If there's only one pointfile available, it will bypass the dialog and work as in previous builds.

  • Like 3
Link to comment
Share on other sites

On #5623: Merge Map Feature - import only the changes of another map with the ability to preview and choose:

merge.gif

It currently works with two maps only. The one you pick in the dialog will be analysed and the difference can be merged into the currently loaded map. On clicking "Load and Compare" DarkRadiant switches into "Merge Mode", where the changes can be selected only. It's not forbidden to mess around with other nodes and do editing, but DR will try to prevent you from doing that, it's encouraged to only inspect and reject incoming changes.

Additions are highlighted green, deletions are red, modifications are blue. Entity key value changes are visible in the Entity Inspector. Each change can be selected and rejected by hitting the button in the Merge dialog or by deleting them using your regular delete keybind (Backspace).

Once you're happy with the import, you click on "Finish Merge Operation" which will apply the changes (that have not been rejected) to your map. This operation is undoable, so you can hit Ctrl-Z to switch back before the merge. If you don't want to import anything and maybe just want to have a look at the map comparison, the merge can be aborted anytime without altering your map.

It won't merge Layer information and it won't merge Selection Groups. I haven't looked into that yet, it's more involved. Right now, everything that is imported goes into your active layer, iirc.

There's more to come. I plan to work on a three-way merge, where editing conflicts can be recognised and resolved. And of course the vision of pushing and syncing your map with some VCS server would be something I'd like to see implemented (not least because I want for my own work).

  • Like 4
Link to comment
Share on other sites


I decided to try, one last time, to bring up some long-standing issues I've personally had with DarkRadiant, and I have just added these to the bugtracker.  Some of these things, I have no idea why they were ever changed, or at least made optional.  Others, I hope some can appreciate how handy they might be as we move into the future...
____________________________________________________

- Restore non-uniform scaling for texture browser.
DarkRadiant used to display textures in the texture browser with relative scaling, based on the size of the actual texture.  This is important for mappers to easily see what size of texture they're dealing with.  In other words, the "uniform texture thumbnail size" should be optional, like it used to be.

...

- Apply textures to surfaces using "normalized" scaling.
DarkRadiant used to abide by the "default texture scale" set in preferences, when applying textures to surfaces.  Currently, textures seem to apply to surfaces based on the texel scale of the previous texture, such as a 2K texture being applied to a surface that previously had a 32X32 caulk texture using the 32X32 texel scale, instead of the "default texture scale".

...

 - Paste material-header to surface from clipboard with hotkey.
Ability for a hotkey to be assigned that will instantly take whatever is in the user's clipboard and paste/apply it to the selected surface as the "shader" in "texture properties", _without_ needing to use the "surface inspector".  This will allow mappers to easily use other third-party texture browsers such as HTML galleries, which with modern huge textures in huge collections is much more efficient.

...

- Selection by coords.
Ability to make selections by exact coordinates with a dialog, preferably with an ability for a Python plugin to help automate this process, so large maps can be easily exported by exact coordinates.  Basically, the dialog has XYZ-min and XYZ-max fields, then makes a new selection using those coord values.

...

- Ability to zoom 2D view in, beyond current standard.
Ability to zoom in with the orthographic view to a "microscopic scale", to make it easier to work on extremely fine details, so that 0.125 unit brush will display larger than just a crumb.  An option to "reset zoom" would also be required, if the zoom range is to be completely unlocked.

...

- Selection Sets (faces and vertices).
Ability to save specific selected objects/subobjects and items, and able to restore those selections later.  Things like certain vertices selected, or certain brushfaces selected among many selected brushes.  Preferably these selections would be dumped to some unique config file and support multiple of them, to save and restore multiple selection sets.
...
____________________________________________________

 

 

 

Edited by LDAsh
strikethrough the accomplished
Link to comment
Share on other sites

11 minutes ago, LDAsh said:

I decided to try, one last time, to bring up some long-standing issues I've personally had with DarkRadiant

That sounds a bit frustrated. Have you been bringing up these issues before? I've read through those, but except for the first two it doesn't feel like I've read of any of them in the past.

Link to comment
Share on other sites

I don't mean to sound frustrated at all.  It's whole reason I made a HTML-based texture browser.  The first 2 have been brought up before, the 3rd relates to that (loading some 1000s of textures takes a long time for us), and hopefully all of these would be fairly easy to implement.

Link to comment
Share on other sites

3 hours ago, greebo said:

On #5603: Ability to choose from several different pointfiles (to support the TDM internal leak reporting feature)

Nice! I've been waiting for this one. :)

My missions:           Stand-alone                                                      Duncan Lynch series                              

                                      Down and Out on Newford Road              the Factory Heist

                                                                                                  A House Call

                                                                                                  The House of deLisle                                                                                                  

                              

Link to comment
Share on other sites

5 hours ago, greebo said:

On #5623: Merge Map Feature - import only the changes of another map with the ability to preview and choose:

That's amazing. It seems we were only discussing this a couple of weeks ago, and I assumed that graphical map diffs would be the most complex and difficult feature which would probably never see the light of day... but you managed to implement it anyway.

Link to comment
Share on other sites

9 minutes ago, OrbWeaver said:

That's amazing. It seems we were only discussing this a couple of weeks ago, and I assumed that graphical map diffs would be the most complex and difficult feature which would probably never see the light of day... but you managed to implement it anyway.

Thanks, man. :) I've been rather motivated to do that, obviously that makes a difference. I hope I can make it work with groups and layers too, these are much more complicated to handle.

It needs some serious feedback though, that's why I decided to upload a new pre-release with what DR currently has, I hope people try to make use of it, and point out what's missing.

Link to comment
Share on other sites

On 6/3/2021 at 11:01 AM, greebo said:

It needs some serious feedback though, that's why I decided to upload a new pre-release with what DR currently has, I hope people try to make use of it, and point out what's missing.

I'd have loved to try out new tools for co-op mapping, but as it happens I wrapped up both of my collaborative projects last year. If I wasn't so perpetually busy these months, maybe I'd even have sought out someone to team up with.

I'm aware that @JackFarmer @Kerry000@_Atti_ @Geep @Frost_Salamander have announced their intentions to make (more) collaborative maps, maybe they'd like to try out this new map merging feature in 2.13?

Link to comment
Share on other sites

@Dragofer@greebo, great to see these collab features start to become available. I assume the new import feature as a way to resolve conflicts with duplicate entity numbers. (i.e., mapper A creates new entity #1000, mapper B creates new entity #1000, and on import you want to keep both, so one must be renumbered.)

It's too late in the cycle to consider using this new DR version for the current FM, but maybe I'll play around with it in September with some "trash" FM.

Link to comment
Share on other sites

I don't think entities currently have ID numbers — at least not explicit numbers written into the file. There is a comment written into the map file e.g. "// entity 24" but comments aren't part of the parsing operation. The entity number is therefore derived from the position of each entity in the file relative to other entities.

Merging and collaboration does raise the issue of whether there should be unique entity identifiers, though. If mapper A edits a spawnarg on the 10th entity, then mapper B adds 15 new entities and tries to merge mapper A's work, is there a danger that the merge might apply the spawnarg change onto the wrong entity (because the ordering in the map file isn't guaranteed to be stable)? Perhaps it will be necessary to add a UUID into each created entity so that it is always clear what the target of a merge operation should be.

EDIT: Never mind, entities have unique names, so the above ought to be a non-issue (and I assume the current merge algorithm is already using names to match entities). But UUIDs might be an option if collaborating mappers want to edit their entity names for organisational purposes, and still have merged spawnargs apply correctly.

Link to comment
Share on other sites

Also, the auto-incrementing of new names may cause occasional problems, where 2 mappers both add (different location) doors, but they end up with the same name because of auto-incrementing of the numerical suffix. Presumably detecting the other fields differ, and providing manual reconciliation, will deal with that.

Link to comment
Share on other sites

7 minutes ago, Geep said:

Also, the auto-incrementing of new names may cause occasional problems, where 2 mappers both add (different location) doors, but they end up with the same name because of auto-incrementing of the numerical suffix. Presumably detecting the other fields differ, and providing manual reconciliation, will deal with that.

Entities are indeed matched by name, as OrbWeaver correctly assumed, so the scenario you describe is actually a problem for the simple two-way diff algorithm which is currently in effect: it would detect the other entity with the same name as a change to the one that has been created in this map.

This problem will be solved by implementing the three-way merge pattern, which is what I'm currently working on. This way I can detect what the actual steps were that lead up to the other map which is going to be merged - I can detect conflicts and let the user decide what to do about them. If both maps had entities added that ended up with the same name, this is going to be resolved (by the namespace merge algorithms which have already been in place in DarkRadiant since a long time).

  • Like 1
  • Thanks 1
Link to comment
Share on other sites

19 hours ago, Dragofer said:

I'd have loved to try out new tools for co-op mapping, but as it happens I wrapped up both of my collaborative projects last year. If I wasn't so perpetually busy these months, maybe I'd even have sought out someone to team up with.

I'm aware that @JackFarmer @Kerry000@atti @Geep @Frost_Salamander have announced their intentions to make (more) collaborative maps, maybe they'd like to try out this new map merging feature in 2.13?

Sorry, no plans for mapping (except the next update for HHTLC) before September. If there is time this summer, I will just expand grayman's original story draft for TBM.

@greebo: All these cool new features in such a short time period, amazing! If you need a break, get on your car or take the next train and come over to my place!  I then will organize for a BB (Bavarian Barbecue) with fireworks and loud rock music honoring your efforts future generations will still talk about! :)

Jack

 

  • Like 2
Link to comment
Share on other sites

3 hours ago, Geep said:

Even if the entity IDs are only comments, duplicates still have to be prevented, or else DR's "search by entity number" feature will be confused or confusing.

Although I didn't implement the search by entity number feature, I'm 99% sure it has nothing to do with comments in the map file, since these comments will be lost as soon as the map is read into DR's internal data structures. There is no way to have "duplicate" entity numbers because there are no entity numbers: the "number" is just an emergent property of having a list of entities in memory¹ which can be counted in order, and it's impossible to have two different entities at the same position in the list.

The name clash problem you describe is indeed a valid concern, although it sounds like Greebo has a solution in hand.

¹ Technically it's a tree, but a very shallow one where most entities are direct children of the root node, stored in a simple linear list.

Link to comment
Share on other sites

Awesome!  The 3 new features I've requested work excellently and I hope other mappers see the benefit in these as well.  Being able to zoom right into the smallest crumbs and work comfortably is a huge improvement, and the "border measurements" are even updated.  Pasting material headers is also a huge improvement because some of our folders were taking literally 15 minutes to load.  I don't think the built-in texture browser is useful for entire collections, only what the map is actually using.  We use a HTML texture browser that copies the header into the clipboard when clicking on an image, so if you guys are interested, I can make a post about how to easily set that up, by automagically converting your MTR files to HTML and reading images directly from a relevant folder.  Not a PK4, but I wonder if that might still be possible.

Thanks for your hard work Greebo! 👍

Link to comment
Share on other sites

I happen to have 12 snapshots of a mature WIP of mine, so I decided to put them through the new map merging feature.

I've started with v1 and v3:

  • In v1, most of the brushes and patches are in place, with some sparse model furnishing.
  • In v3, a lot of the place is furnished with models, and a handful of the brushes and patches were tweaked.

I opened v1 in DR, opened the merge tool and entered v3 into the top-left box, so v1 is the merge target, and clicked "Load and compare".

Sorting my main points:

  • In terms of entities the merge tool highlighting looks like it's accurate. However, all worldspawn is highlighted in blue, and after restarting DR for a second attempt, some of it is red or green without any obvious basis in fact. I suppose it's because all worldspawn counts as a single entity, so changing a single worldspawn brush gets the whole thing highlighted.
  • Furthermore, the result of the merge seems quite accurate. On 2 different attempts, the result of merging v3 onto v1 diverged from the original v3 by missing 6 brushes or 14 brushes and 1 patch (basically some random primitives out of a couple func_statics in various parts of the map).
  • I'm thinking useability could be improved further by allowing to toggle visibility of grey/blue/green/red highlighted pieces. Would make it easier to focus on what exactly was changed by i.e. hiding all unchanged pieces or only showing deletions.
  • Speaking of visibility, filters can no longer be updated while in merge mode.

If it helps further I could send you this WIP with the series of maps.

Link to comment
Share on other sites

@greebo Hey awesome! I'll be using this version and doing some testing. The pointfile feature is great.

Found a weird bug where non-symmetrical light scaling is borked for me. 5644

Link to comment
Share on other sites

One more pre-release build available in the first post, before 2.13.0 will be posted on the website.

I've finished the first implementation of a three-way map merge, allowing to incorporate changes from another map into the active one - by specifying the base version both maps have been started from. This way all the changes that have been made to the loaded map will stay intact, and only the actual changes made to the other map will be applied to this one.

Just a quick textual description, before any tutorial is going to be posted eventually.

Let's say mapper A takes the map M1 and works on the harbour section of the mission, then saves it as M2.
Mapper B took the same map M1 and added a house in a different section of the mission, saving it as M3.
When merging M3 into M2, only the house from M3 will be imported into the active M2 map. Including layer changes and selection groups.

In case both mappers manipulated the same section of the map, the merger will still try to incorporate the changes, unless there's no reasonable way to do so - in this case the conflicting elements will be highlighted in the map and the mapper is asked to resolve it. By default, no conflicting change will be imported, unless the mapper chooses "Accept this change".

The whole thing is meant to form the algorithmic base for adding version control support to DR, most likely in the form of a Git plugin. This is something that has to be discussed though, feel free to share your thoughts.

  • Like 2
Link to comment
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.

  • Recent Status Updates

    • Petike the Taffer

      I've finally managed to log in to The Dark Mod Wiki. I'm back in the saddle and before the holidays start in full, I'll be adding a few new FM articles and doing other updates. Written in Stone is already done.
      · 4 replies
    • nbohr1more

      TDM 15th Anniversary Contest is now active! Please declare your participation: https://forums.thedarkmod.com/index.php?/topic/22413-the-dark-mod-15th-anniversary-contest-entry-thread/
       
      · 0 replies
    • JackFarmer

      @TheUnbeholden
      You cannot receive PMs. Could you please be so kind and check your mailbox if it is full (or maybe you switched off the function)?
      · 1 reply
    • OrbWeaver

      I like the new frob highlight but it would nice if it was less "flickery" while moving over objects (especially barred metal doors).
      · 4 replies
    • nbohr1more

      Please vote in the 15th Anniversary Contest Theme Poll
       
      · 0 replies
×
×
  • Create New...