QodotPlugin / qodot-plugin

(LEGACY) Quake .map support for Godot 3.x
MIT License
960 stars 70 forks source link

Support for Godot 4 #148

Closed codecat closed 1 year ago

codecat commented 2 years ago

Does this plugin work on Godot 4 (currently in alpha)? It doesn't show up on the AssetLib at least. Couldn't find an existing issue for this.

Edit: Just tried pulling the version on AssetLib into a Godot 4 project and there's a lot of GDScript changes that look like are trivial enough to change. Not sure if the libqodot stuff needs updating though. Perhaps this could provide some insight: https://github.com/godotengine/godot/pull/51950

Edit 2: Looks like libqodot might need to be rewritten to work with (what looks like) a brand new GDNative API, too.

Edit 3: There is some work done in this fork, but I have not tested it yet: https://github.com/EIRTeam/qodot-plugin/tree/4.0

Edit 4: I have no idea how to build the EIRTeam fork, maybe @EIREXE has some input 😅

Edit 5: I published my alternative to Qodot for Godot 4 here: https://github.com/codecat/godot-tbloader

EIREXE commented 2 years ago

The EIRTeam fork replaces the libmap with a godot module that does the same thing, it can be built like any other godot engine module

TheRektafire commented 2 years ago

Don't modules require building the entire engine to work? That's not exactly ideal especially for people who might not know how to do that, it's definitely a step up from downloading a plugin and enabling it in the project settings 😐

EIREXE commented 2 years ago

Don't modules require building the entire engine to work? That's not exactly ideal especially for people who might not know how to do that, it's definitely a step up from downloading a plugin and enabling it in the project settings 😐

Yeah that is correct, I made the port for my own use, I already use a custom version of the engine so an engine module is much less of a headache than gdnative or gdextension to me, particularly when deploying to consoles.

codecat commented 2 years ago

Ah I see, that's why I couldn't get it to build! It would indeed be much better if entire engine recompilation wasn't necessary.

codecat commented 2 years ago

I wrote a very dirty Godot 4 extension in C++ using godot-cpp and part of EIRTeam's fork of libmap: https://github.com/codecat/godot-tbloader

This allows importing .map files directly on Godot 4 without having to recompile the engine.

It's currently labeled as "an alternative to Qodot", but that's likely just temporary, and purely for me as I needed something that worked in Godot 4, haha.

TheRektafire commented 2 years ago

I wrote a very dirty Godot 4 extension in C++ using godot-cpp and part of EIRTeam's fork of libmap: https://github.com/codecat/godot-tbloader

This allows importing .map files directly on Godot 4 without having to recompile the engine.

It's currently labeled as "an alternative to Qodot", but that's likely just temporary, and purely for me as I needed something that worked in Godot 4, haha.

Where are the dlls that are referenced in the .gdextension? Do I have to do a recursive clone from the git cli to get those? They don't seem to be in the main repo

codecat commented 2 years ago

Sorry, those are built from scons indeed, you just have to run scons target=debug (or something similar) and copy the files in bin to the addon folder in your project, so you have this:

addons/
  tbloader/
    bin/
      tbloader.windows.debug.64.dll
    src/
      plugin.gd
    plugin.cfg
    tbloader.gdextension

I didn't make a binary release for this yet but I guess I should for those who wanna give it a try.

gildedhipbone commented 2 years ago

I sure wouldn't mind a binary!

codecat commented 2 years ago

I've made a binary of my code available here: https://github.com/codecat/godot-tbloader/releases

EIREXE commented 2 years ago

I'm way to deep into my own fork of Qodot with features that only really make sense for my use case, my fork will remain open source but if anyone wants to do a "vanilla" port to 4.0 using my work as a base please be my guest, because I don't really have much free time 😅

Calinou commented 1 year ago

Note that the plugin is being rewritten in C#, exclusively for Godot 4.x: https://github.com/QodotPlugin/Qodot

There's also a pure GDScript Quake .map/BSP loader for Godot 4.x: https://github.com/gongpha/gdQmapbsp

DeerTears commented 1 year ago

I think this issue can be closed, with the new C# plugin live: https://github.com/QodotPlugin/qodot/ and it being updated as often as possible to match the breakneck speed of Godot's new betas and release candidates.

There's other options as well like tbLoader: https://github.com/codecat/godot-tbloader and gdQmapbsp like Callinou recommended: https://github.com/gongpha/gdQmapbsp

If there's missing functionality/bugs in the C# Qodot plugin, consider making an issue there. Thanks for your interest in Qodot for Godot 4!