Qodot - Quake .map file support for Godot

_Shifty_Shifty Posts: 7Member
edited December 1 in Resources

Qodot

GitHub - ShiftyAxel/Qodot

Qodot extends the Godot editor to import Quake .map files, and provides an extensible framework for converting the entities and brushes contained therein into a scene-based node hierarchy with custom properties.

Image Heading

Why build Qodot?

A good 3D level editor is something I've been wanting for a long time across many projects, ever since I started using Unity back in the day. Having taken a detour through Unreal 4 and arrived at Godot, I've found that none of the major general-purpose engines scratch that itch. (Though I have to say, Godot's overall design and implementation makes it my favourite engine so far!)

After a recent dip back into old-school shooters, I found myself watching this trailer for the TrenchBroom editor:

Now, if you're anything like me - a programmer with little in the way of 3D modelling skill - that video might stir some feelings. Things like "where has this been all my life" and "I need this in a modern game engine right now".

I haven't touched a dedicated level editor since using SLADE and Doom Builder to make primitive levels for GZDoom back in the day, but seeing how simple Quake tech is while still providing rich editing was an eye-opener. I did some casual research into the map format, and lo and behold- id Software's generous open-sourcing meant that finding a detail spec was trivial.

And thus, Qodot was born. After about 48 solid hours of poring over text files, puzzling out how to create geometry from sets of intersecting planes, and reverse-engineering the format's undocumented triplanar UV system, I've built a solid tool that can produce 1:1 Godot representations of brush geometry, textures and basic (extendable) entities from a plaintext .map file.

Does Qodot work with other Quake editors, like Radiant?

Yes, providing they support the standard Quake 1 .map format. TrenchBroom is recommended and directly supported with an included set of customizable game definition files, but other editors will work just fine provided that they can support custom game definitions.

Afterword

Qodot is the first project I've managed to take from inception to public release in quite some time, in part due to the stumbling block of asset creation- I have countless Unity and UE4 projects sat on my hard drive that died as soon as their base gameplay concept was proven and it was time to actually make some levels. In a way, Qodot is a tool to deal with that personal stumbling block as much as one to improve upon the core Godot workflow!

I've submitted it for release on the Godot Asset Library, though it's still pending testing at the time of writing.

The GitHub repo might move fast for a while as I wrangle out some minor usability issues and add extras like shader surfaces and multi-threaded geometry generation, but releases will be tagged as appropriate as each feature reaches completion. Pull requests are encouraged and graciously accepted (providing that you don't scribble all over everything, of course ;))

Hopefully someone out there will be able to make use of Qodot- drop me a line if you do, I'd be happy to hear about your experience with it :)


Tags :

Comments

  • MegalomaniakMegalomaniak Posts: 1,665Admin
    edited December 1

    I added some tags to the topic, hope you don't mind. Though you should be able to edit the OP yourself, if you need any further help editing it let us know. :)

    Also note that if you want to include a change log for future updates you can just maintain a github gist and link it in the OP, it will be automatically embedded. ;)

  • _Shifty_Shifty Posts: 7Member
    edited December 1

    @Megalomaniak said:
    I added some tags to the topic, hope you don't mind. Though you should be able to edit the OP yourself, if you need any further help editing it let us know. :)

    Also note that if you want to include a change log for future updates you can just maintain a github gist and link it in the OP, it will be automatically embedded. ;)

    I don't mind at all, thank you for that! With any luck that'll give folks a better idea of what they're looking at :)

    And ah, I see the little cog- I still need to wrap my head around the forum UI, but should be good to get it cleaned up now.

  • _Shifty_Shifty Posts: 7Member
    edited December 2

    Qodot 1.2.0 is out now!

    1.2.0 brings full support for Quake's variant map formats, including Valve 220-style UV mapping for texture skewing, along with upgraded custom node spawning and some internal structural improvements.

    Note that this release includes breaking changes, so maps will need to be reimported under the Standard preset and QuakeMapNode instances will need to be replaced with QodotMap instances.

    Qodot v1.2.0 on GitHub

  • _Shifty_Shifty Posts: 7Member
    edited December 3

    Qodot now has a Discord for discussion, news and support:
    https://discord.gg/c72WBuG

  • _Shifty_Shifty Posts: 7Member
    edited December 5

    Qodot 1.3.0 is out now!

    1.3.0 brings multithreaded geometry generation, automatic PBR texture and material lookup, overhauled map import / custom node pipelines, SKIP and CLIP special texture support, along with a slew of fixes.

    It's also MIT-licensed like most other Godot plugins to minimize any legalities that might block its usage in any given project.

    Note that this release includes breaking changes, so maps will need to be reimported and QodotMap node instances updated with any new parameters.

    Qodot v1.3.0 on GitHub

  • cyberealitycybereality Posts: 30Member

    Nice job.

Sign In or Register to comment.