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 post
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 post
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.

...

- 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.
...

- 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.

...
____________________________________________________

 

 

 

Edited by LDAsh
strikethrough the accomplished
Link to post
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 post
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 post
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 post
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 post
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 post
Share on other sites

New pre-release build available in the first post, with a couple of changes. @LDAsh should find a few goodies in there.

Link to post
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 post
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 post
Share on other sites

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.

Link to post
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 post
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 post
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 post
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 post
Share on other sites

Makes sense.

As to Greebo's namespaces idea, I'm guessing it would probably usefully resolve conflicts for some styles of collaborative "separation of concerns" but not for others.

Link to post
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 post
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 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...