gongpha / gdQmapbsp

A simple plugin that loads Quake's MAP/BSP files into Godot 4 interactively
MIT License
42 stars 5 forks source link

Separating the Quake1 Example into 2 playable examples #22

Open gongpha opened 11 months ago

gongpha commented 11 months ago

I figured this out while working on #20

If I replace the player code that coded for normal collisions (BSP tree, collisions from MAP file, or -wrbrushes) with the other one that used a point as a shape that coded for clips, it might not work well for people who will use it for custom games, so I think we should separate the Quake1 example from the original I created specifically to view maps. So it lacks a lot of optimization (when reading a PAK file, it loads all files at once. which uses a lot of memory) to 2 examples :

victorbstan commented 11 months ago

That sounds like a smart way to separate the two. The only thing to consider perhaps is that taking QuakeC code and translating it might still mean that the generated code has to be GPL compliant, which makes it not MIT licence compliant, and at that point I will not touch it anymore :) since it will mean making custom games with this project (if GPL) will be a pain for selling on platforms like mobile and consoles etc...

victorbstan commented 11 months ago

The clip nodes collision, etc, can be included in the project AFAIK it's just reading BSP data, but the later part of including QuakeC translated code might be an issue, maybe there is a separate "quake loader" game folder which can be separately released under GPL?

victorbstan commented 11 months ago

Unless, your QuakeC converter translates in realtime/runtime? Then someone could either use the quake PAK data or write custom QuakeC that is not GPL as well?

gongpha commented 11 months ago

The latter example is also clean-room implemented (including the converter too). The content from PAKs whether the maps, models, or codes are real-time converted and will never be uploaded to this repository.

Regardless of whether the game contents are official, fanmade, GPL licensed, or not. It probably wouldn't affect the project as they don't contain any proprietary content. But this also means that the example should be only used for trying out the gameplay. (Sounds like an indirect GPL ;) )

And, of course, I won't let my project becomes GPL. It has to be MIT forever.

victorbstan commented 11 months ago

If you manage to make a runtime QuakeC interpreter/translator that sounds awesome, it would open the door for running mods and custom maps people make! (Although personally I'd prefer to write GDScript for custom stuff because QuakeC is kind of lame :P )