Jump to content

Recommended Posts

So my big project for now is to make mapping tutorial videos...and GTKRadiant is such a bugfest that I want nothing to do with it, both 1.5 and 1.6. That said - the internals of Radiant are actually rock solid, but because of the bugs nobody seems to care much.

So - Radiant 1.6.6 has been forked, and a new branch is being worked on, currently referred to as DogiRadiant. I don't have anything visual to show for it yet, other than a screenshot of the modified color scheme on the grid, but here it is anyway:



Things that have been removed:

  • The preferences menu has been almost completely gutted. Most of the nonsense features have been removed. There are so many things in there that were relevant to 1999, when computers had 64 MB of RAM. It's 2020, and it's time for it all to go. (The code for these features mostly remains, but they have been removed from the menu)
  • The Z-Window, on the far left side, has been completely removed. It was useful in the days of DOOM and Quake 1, but not any more.


New features that have been added:

  • The grid can zoom in much farther, and also zoom out a little bit farther as well.
  • The grid can now go up to 4096 in size, and down to 0.125. (It can actually go down to 0.03125, but due to float point inaccuracy it has been capped at 0.125...for now.)
  • Cubic clipping increments have been increased from 64 to 1024, and the maximum cubic clipping distance is attached to the maximum render distance
  • Maximum render distance has been drastically increased to 65536 (Half of the entire grid) - Cubic clipping can now be used if Radiant is running too slow
  • Texture window scaling has new pixel-size options - normally, textures can only be scaled at 10%, 25%, 50%, 100% and 200%. New options are 64 pixels, 128 pixels, 192 pixels, 256 pixels, 384 pixels, and 512 pixels. (This was previously an option hidden in the preferences, but it makes so much more sense in the menu, and is easier to use with predefined options)
  • The 3D camera movement was removed from the preferences menu, and has instead been attached to the grid size. So if you are doing a detailed edit on a small object, it will be very easy to get close to it. If you are trying to move quickly across a large map, set the grid size up high and you'll be there in no time.
  • The 3D camera view's strafing feature has been modified to not lock the Y axis to a vertical position. If you want to lock the Y axis vertically, press Ctrl + Shift to strafe instead.


Bugs that have been fixed:

  • Grid has been recolored so it's much easier to work at both higher and lower settings
  • Edits below grid size 0.5 are no longer lost
  • Dragging something off the edge of the grid will no longer shoot you off into the distance without warning - scroll speed has been massively nerfed
  • Surface inspector no longer performs an "Undo" when closed
  • Surface inspector now updates its numeric values when changes are made to selected materials
  • Large undo/redo operations are now much faster
  • Undo operations can no longer get out of sync - Radiant makes you wait until one operation is done before performing another
  • Increased the undo limit from 64 to 512, and changed the maximum undo memory buffer size from 2 MB to 2 MB x the undo limit (So maximum 1 GB, more if the undo limit is increased)
  • Right-clicking to scroll in the texture window will now stop at the bottom of the window like it's supposed to, instead of scrolling off into nothingness
  • Making an arbitrary sided sphere or cone brush will no longer crash Radiant, and failure to create them will print a message to the console telling you why it failed


Planned features if I can stick with it long enough:

  • Windows compatibility (Right now I'm doing this on Linux, so it will require effort to get it on Windows)
  • Add a preference to the preferences menu for the cubic clipping distance
  • Reorganize the toolbars in a more useful way
  • Make GTKGenSurf more user friendly
  • Fix up vertex editing (This will probably be very hard)
  • Making EVERY edit trigger an undo point (Since the buffer is 512, may as well fill it up)
  • Convert the internals to use doubles instead of floats, and enable the grid precision all the way down to 0.03125 units - this would be excellent for modeling at small sizes
  • If the internal math is successfully converted to doubles, increase the grid size
  • New save format, JSON based
  • "Smart objects" - similar to a smart object in Photoshop, I want to be able to save a group of brushes as a prefab, and then copy/paste it into the map at will, and deform/warp them individually as desired


Already the program feels a lot more professional than before - but there's still a very long ways to go. I wouldn't expect to be done with this for a year or so, since I'm new to C and haven't even touched C++ yet.

Comments are welcome! Report any bugs you know of, and I'll check them out - I can't promise everything will be fixed, but at least I can look! Also, if another version of Radiant does something better, let me know - all Radiant clones are open source, so it's all up for grabs!

Share this post

Link to post

Can't wait to see a Windows release of this, as being forced to use 1.6 for editing certain maps is rather painful with all the surface inspector and undo bugs.

Aldro Koon likes this

Share this post

Link to post

Does anyone have any objections to this being renamed to "UpgRadiant" ? I need to change the name, and that describes what it is pretty well, but I'm terrible with names.

Share this post

Link to post
3 hours ago, NAB622 said:

Does anyone have any objections to this being renamed to "UpgRadiant" ? I need to change the name, and that describes what it is pretty well, but I'm terrible with names.

Noone likely minds the name, just appreciate the effort!

Share this post

Link to post

Update for the last few days of work (I'm under quarantine for the next few days so I'm getting a lot done):

  • The camera is now bound to the grid. There is a small "Cushion" distance outside the grid boundaries where it will be allowed to go, but it will stop there. No more getting lost out in the void.
  • The grid view cannot leave the grid. Again, no more getting lost.
  • Brushes cannot be rotated/scaled/created/resized outside the grid. As soon as the grid boundary is reached, Radiant will cancel the operation and give a message in the console. Because of how I did it, this does mean larger operations will be a bit slower - but with how fast today's computers are, I doubt it'll be noticeable. (Still working on stopping the user from moving existing brushes off the grid, though.)
  • Surface inspector will provide live updates for textures being drag-edited in the 3D view.
  • Surface inspector will now "Roll over" the shift and rotate numbers when it reaches the maximum - so if you have a rotate value of -15 on a texture, Radiant will change it to 345. Same thing with hShift and vShift - if they exceed the texture resolution, they will snap back to where they should be. This takes place seamlessly in the background and should not be noticed by the user, and makes texture editing much easier.
  • The fit option in the surface inspector can now fit up to 512x512 (Instead of 32x32....I've had scenarios where 32 wasn't enough). This also works with the aforementioned rolling over of hShift and vShift numbers as well, resulting in easy numbers to manipulate.

I still have a long ways to go, and there's a significant list of bugs I've created along the way.....but so far these are far less serious than the ones being fixed.

Lancelot likes this

Share this post

Link to post

I just spent some time redesigning the surface inspector. Here's what I came up with. Anyone have any thoughts? It still has all the functions the old one did, plus some extras for ease of editing and to help newbies understand.

(Keep in mind that the dark window color is from my GTK theme on Linux, and on Windows it will probably be the usual light gray)



Is this easy enough to understand? Is it too cluttery? Is it missing something important? Is it perfect?

Share this post

Link to post

Cool effort so far, having an eye on this next to netradiant custom...!

Share this post

Link to post
Posted (edited)

netRadiant custom will likely be far more advanced than this when it is complete - all I am trying to to is bugfix the program so it stops crashing as much, and simplify/streamline the interface where needed. Once I make the tutorial videos, I intend to leave it be, except for the occasional bug fixes. I'm just trying to keep this as close to the original release as possible while making it actually usable, even for games other than JA. That said - while digging through the source, I've discovered old features that fell by the wayside, that will make mapping so much easier - they just needed a re-tuning.

Edited by NAB622
Psyk0Sith and fullkevlar like this

Share this post

Link to post

Before I get too much farther, I have to ask - does anyone here have experience with compiling GTKRadiant for Windows? It looks like it's going to be a nightmare, and any help would be welcome. The instructions guide is less than helpful, and I'm still totally new to all this.

Progress is getting a bit slower - I'm fixing a lot of superfluous bugs and bugs that are under the hood, plus I'm running into much harder stuff that I'm needing to seek help for. I did make a few more modifications to the surface inspector - and now, it can accept 2 decimal places when fitting a texture, as well as negative values, making the effective range -512.00 to 512.00. Hopefully the changes aren't confusing - let me know what you think!



Next up on the list: the patch inspector is getting addressed.

fullkevlar likes this

Share this post

Link to post

Sorry for all the waiting - still working a lot. I haven't finished the patch inspector yet. I am close to done with it, but the UI isn't finished, so I don't want to show it just yet. In the meantime, since I've been working on the preferences, I thought I'd show what I was up to over the last few days:


Share this post

Link to post


Nothing visual to show for this one either, since it's all internal - but the internal vector math in Radiant has been converted from float precision to double precision. What this means is:

  • The lowest precision on the grid will indeed be 0.03125, not 0.125
  • You can edit at 0.03125 all the way to the edge of the grid, and your edits will not flake out
  • You are guaranteed the 6-decimal precision of a .map file all the way to the edge of the grid (No float point errors)
  • The grid can theoretically increase in size (This is a bad idea since JA still runs on float precision, but it CAN be done)
  • q3map2 should not need the T-Junction phase any longer, which is good because it creates a bunch of pointless geometry everywhere

Now, because of this, I still have several serious things to fix:

  • q3map2 is completely broken (It's still running on float precision internally, and I will have to have it convert everything down to float when it saves the BSP file)
  • The grid view in Radiant needs a few heavy changes to the way it renders - if you zoom in to 0.03125 and go halfway to the edge of the grid, everything gets janky and unusable, and it gets worse the further you go toward the edge
  • Radiant is somewhat less stable, since there are still things trying to run on float precision in various places. I have to hunt them all down


  • The camera window will also likely flake out a little (Below 0.5 precision) at the edge of the grid, since OpenGL runs on float precision. I do not intend to even try to fix this, as it will reflect what will happen in JA, since JA also uses float precision.

Hopefully I will have screenshots of a few new things soon, but since this is all internal stuff, there's nothing to show yet. However, once the internals are set, the benefits will manifest in the other features!

Share this post

Link to post

Small update! Got two more things added, although I had to have some help.

  1. When a map is loaded, Radiant will now snap the camera to the location of an info_player_intermission first (If there is one). Info_player_start and info_player_deathmatch are still used, but they are fallbacks. Radiant will also take on the same directional angles (Including those of a target!) of whatever entity it snaps to. This means that Radiant will see the same thing as the game when the map is loaded.
  2. When selected items are hidden behind other geometry, the selection outline will show as a dotted line, just like Radiant 1.5 does.

Here is a shot from ffa5_sample, just after loading (To show the camera angle), and with a few items selected to show the dotted lines:


ooeJack and fullkevlar like this

Share this post

Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Create New...