Jump to content
The Dark Mod Forums

Recommended Posts

Posted (edited)
On 2/25/2024 at 3:26 PM, Fiver said:

"def files" are CC-BY-NC-SA according to the TDM license. Does anyone know which license the core scripts are?

@Fiver - Old thread I know, but in light of my own recent attempts I can say that all the core scripts are GPL3 apart from these six files:
tdm_grandfather_clock.script
tdm_turret.script
tdm_audiograph.script
tdm_camgoyle.script
tdm_safe_lock.script
tdm_safe.script
These are not essential scripts in regards to the engine loading and being able to run round an empty test map.

The below .def files can (and were) recreated as their default values are in the source code:
tdm_soundprop.def
tdm_ai_base.def

However, the following .def files are essential and unfortunately cannot be recreated without actually looking in the files themselves (or using Dark Radiants' entity class tree list, but I'm guessing this information is gathered from the .defs @OrbWeaver? so is still under the CC_BY_NC_SA_3 licence?) to see what information/entity definitions they contain:
tdm_base.def
tdm_ai_head_base.def
tdm_ai_heads_springheel.def
tdm_difficulty.def
tdm_inventory_loot.def
tdm_player_thief.def
tdm_weapon_base.def
tdm_weapon_unarmed.def

I believe the above files were created by both @greebo and @Springheel so, if they said it was okay to recreate them based on the values/variables within them (or if multiple authors of the .def files gave permission) then it would be possible to get a basic playable version (by which I mean running round a test map).

I do know from my testing that if you mess up a definition you crash the engine 🙂

Anyway, attached is an image showing the most basic of basic setup for getting the engine running a test map with all of the non-GPL3 content (by which I mean core engine files - not the whole TDM file structure of tetxures,sounds,models, etc. just to clarify) removed and replaced with permissively licenced assets (the only non-permissive files still used being those 8 .def files mentioned above).

The lightgem does work, but I of course had to replace the UI and never put any gui:: calls in, also the cursor is stuck on screen all the time and all my white backgrounds on my simplistic custom main menu turned black.

@MirceaKitsune thanks to you releasing your character pack under CC0 it gave a test player model (though as you can see the original player_thief def file does break it somewhat).

Screenshot_20250308_232941.jpg

Edited by whoozzem
  • Like 1
Posted (edited)

Thanks for that notice and observations! Is that my port of the anthro characters? The originals weren't created by me but I integrated them myself, their author released them as CC0 and I kept the license for my fork.

Scripts and defs are an interesting question: If they count as code, they need to be GPL as one of its clauses is all code distributed with the source code must also be GPL. Of course definitions may not count as code depending on who you ask, plus the engine code and game code may not be distributed in such a way as to trigger that requirement.

A fun aspect is how the defs can be rewritten from scratch to say the same thing while being unique: When is it no longer licensed to the old author? Maybe if I just change the default health value on an AI it's technically my own definition... if not then I may need to redefine all parameters and make them uniquely mine, or something in between. Since no one knows what I'm copying in my local text editor, no one can truly say when a configuration block becomes unique and can be relicensed.

Edited by MirceaKitsune
Posted (edited)

Yes it is the anthro character.

In terms of the scripts, most have the GPL3 header in the file, those that don't (created by @Obsttorte and @Dragofer)  therefore fall under the other licence.

10 hours ago, MirceaKitsune said:

if not then I may need to redefine all parameters and make them uniquely mine

But, without first knowing the contents of the file how could you redefine any undocumented parameters, an example being the difficulty entity - it's a spawnclass of idStatic, but you don't know that without first looking in the definition file as there's no documentation, source code references etc. to gain this information from (unless maybe you can add one in Dark Radiant as a map entity, but even then you wouldn't know the required strings for that entity unless you looked at the file).

If you did look at the file, wouldn't any new creations then be building upon the CC_NC_SA licenced work, which would then put it under that licence? (isn't trying to understand licences fun!).
 

On the flip side, due to the way the game was structured, if these TDM .def files were announced to be GPL3:

  • atdm:ai_bark_priority
  • atdm:ai_base
  • atdm:melee_set_base
  • atdm:ambient_ai_base
  • atdm:ambient_head_base
  • atdm:attachment_point_swinging
  • atdm:attachment_point_swinging_LOD
  • atdm:campaign_info
  • atdm:entity_base
  • atdm:flag_waving_pirate
  • atdm:hanging_laundry_anim01
  • atdm:hanging_sheets01_anim01
  • atdm:longbanner_anim01
  • atdm:propgated_sound_base
  • atdm:shop
  • atdm:team_relations_default
  • atdm:vine_piece

    Then I believe just about every def file created (unless they came off some of the damage defs which I didn't list) by anyone would automatically become GPL3 (whether the authors of other .def files wanted it or not) because these are all the parent entity definitions from which all others are children, so they would (due to the way the GPL3 licence works) also inherit that licence.
Edited by whoozzem
Posted

DEF files are obviously code; I don't see how it makes any sense to have them under an "artistic" license. They are not simply aesthetic aspects of the game, they are functional elements, without which the game will not work. It makes even less sense to have some DEF files under GPL3 and others under CC.

The only things which should be under a CC license are purely artistic elements like textures, models or sounds.

Posted (edited)
On 3/10/2025 at 11:32 AM, OrbWeaver said:

DEF files are obviously code; I don't see how it makes any sense to have them under an "artistic" license.

While I agree with you, there's no getting round the fact that the licence itself specifically lists DEF files (and likewise all sound/material shaders etc. since they're also non-software components) as being under the artistic licence:

Quote

All maps, textures, models, def files, audio assets, and all other
non-software components of The Dark Mod are licensed under the
Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported license.

So, only DEF files that were worked on by specific people, who can still be contacted (since aside from out of date contact information, Grayman worked on some of them) to gain permission could either be used in full or information used from them based on the above.

Edited by whoozzem
Posted

That's a pity, and rather an oversight in my opinion (although not very surprising, most of the licensing stuff wasn't really thought about very much until far too late in development).

A couple of possible ways around it:

  • Anything that came directly from vanilla Doom 3 would be covered by the id software license, which might be GPL for everything. In this case, the license cannot legally be changed by TDM and must be the original GPL license. For example, the func_static entity def has obvious references to "demonic" which suggests it is based on the original D3 definition.
  • In many or most jurisdictions, purely functional elements which do not contain any creative or original content, or are needed for interoperability, are excluded from copyright protection altogether. This is how WINE is allowed to implement the Win32 API without permission from Microsoft, for example. This might make it possible to use certain entity definitions by stripping them down to the bare bones, and removing all original content such as documentation.
  • Some entity definitions might not be as important as you think: atdm:entity_base, for example, only contains editor documentation for the various spawnargs (which could be re-written from scratch using original language, or just left out altogether).
Posted (edited)

More insight on what I meant earlier with definitions being hard to attribute: Suppose you have a definition of the form...

atdm:something
{
    "a" "1"
    "b" "2"
    "c" "3"
}

I decide to reimplement it. I open a text editor to do so. Given its simplicity, I end up writing the exact same thing by hand since that's what makes the entity work. I can't prove or disprove that I didn't copy it since no one knows what I did on my machine. Even if I did, the result is the same anyway... would it even make a difference if I retyped it from memory?

What I could do is change a few of the parameters so it's more original; Say a = 3, b = 2, c = 1. Or I remove c. Or I add d = 4. Or write them in reverse as c, b, a. What counts as good enough? There's no clear line that I can think of! Not unless it's a long definition with a lot of parameters, so it has a clear structure attributed to someone writing it... in which case one could just shuffle them, change a few values, add or remove some parameters, use original code comments and it can't be traced back via any specific elements.

Other assets can be attributed as they have much more complexity and chances at being different. Like if I draw over an existing texture to change a few pixels, you can tell it's the same texture and I used large parts of it without making them myself. Of course if my texture was just a single color (1x1) I could post a copy and believably claim I made it myself and just happened to get the same one color, as it would be silly for anyone to copyright any value within the range 255x255x255 that's already been used by someone somewhere countless times.

Edited by MirceaKitsune

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.


  • Recent Status Updates

    • datiswous

      I moved from Manjaro Linux (rolling release) to Linux Mint (LTS). One of the reasons was that I found the updates a bit too often and long. But now on Mint I get updates every day, although they're usually small updates.
      · 3 replies
    • JackFarmer

      "Hidden Hands: Vitalic Fever" - new update available including subtitles & compressed briefing video (thanks to @datiswous) and several fixes.
      · 0 replies
    • Wolfmond

      🇬🇧

      2025-04-20
      I'd like to track my level design progress a bit more often now, so I'm using the feed in my profile here.
      I've been working intensively on Springheel's YouTube course over the past few days. I'm currently up to lesson 8. There is so much information that needs to be processed and practiced. 
      I have started to create my own house. As I don't have the imagination to create a good floor plan, I grabbed a floor plan generator from Watabou and experimented with it. I chose a floor plan that I will modify slightly, but at least I now have an initial idea. 
      I used two guards as a measuring tape: The rooms are two guards high. It turned out that I can simply double the number of boxes in DarkRadiant in grid size 8 that are drawn in the floor plan. 
      I practiced the simplest things on the floor plan first. Drawing walls, cutting walls, inserting doors, cutting out frames, creating VisPortals, furnishing rooms.
      I have had my first success in creating a book. Creating a book was easier than I thought. I have a few ideas with books. The level I'm creating will be more or less a chill level, just for me, where I'll try out a few things. I don't have an idea for my own mission yet. I want to start small first.
      For the cellar, I wanted to have a second entrance, which should be on the outside. I'm fascinated by these basement doors from the USA, I think they're called Bilco basement doors. They are very unusual in Germany, but this type of access is sometimes used for deliveries to restaurants etc., where barrels can be rolled or lifted into the cellar. 
      I used two Hatch Doors, but they got completely disoriented after turning. I have since got them reasonably tamed. It's not perfect, but it's acceptable. 
      In the cellar today I experimented with a trap door that leads to a shaft system. The rooms aren't practically finished yet, but I want to continue working on the floor plan for now. I'll be starting on the upper floor very soon.

      __________________________________________________________________________________
      🇩🇪

      2025-04-20

      Ich möchte nun mal öfters ein bisschen meinen Werdegang beim Leveldesign tracken, dazu nutze ich hier den Feed in meinem Profil.
      Ich habe mich in den vergangenen Tagen intensiv mit dem Youtube-Kurs von Springheel beschäftigt. Aktuell bin ich bis zu Lektion 8 gekommen. Das sind so viele Informationen, die erstmal verarbeitet werden wollen und trainiert werden wollen. 

      Ich habe mich daran gemacht, ein eigenes Haus zu erstellen. Da mir die Fantasie fehlt, einen guten Raumplan zu erstellen, habe ich mir einen Grundrissgenerator von Watabou geschnappt und damit experimentiert. Ich habe mich für einen Grundriss entschieden, den ich noch leicht abwandeln werde, aber zumindest habe ich nun eine erste Idee. 

      Als Maßband habe ich zwei Wächter genommen: Die Räume sind zwei Wächter hoch. Es hat sich herausgestellt, dass ich in DarkRadiant in Gittergröße 8 einfach die doppelte Anzahl an Kästchen übernehmen kann, die im Grundriss eingezeichnet sind. 

      Ich habe bei dem Grundriss erstmal die einfachsten Sachen geübt. Wände ziehen, Wände zerschneiden, Türen einsetzen, Zargen herausschneiden, VisPortals erstellen, Räume einrichten.

      Ich habe erste Erfolge mit einem Buch gehabt. Das Erstellen eines Buchs ging leichter als gedacht. Ich habe ein paar Ideen mit Bücher. Das Level, das ich gerade erstelle, wird mehr oder weniger ein Chill-Level, einfach nur für mich, bei dem ich ein paar Sachen ausprobieren werde. Ich habe noch keine Idee für eine eigene Mission. Ich möchte erst einmal klein anfangen.

      Beim Keller wollte ich gerne einen zweiten Zugang haben, der sich außen befinden soll. Mich faszinieren diese Kellertüren aus den USA, Bilco basement doors heißen die, glaube ich. Diese sind in Deutschland sehr unüblich, diese Art von Zugängen gibt es aber manchmal zur Anlieferung bei Restaurants etc., wo Fässer dann in den Keller gerollt oder gehoben werden können. 
      Ich habe zwei Hatch Doors verwendet, die allerdings nach dem Drehen vollkommen aus dem Ruder liefen. Inzwischen habe ich sie einigermaßen gebändigt bekommen. Es ist nicht perfekt, aber annehmbar. 
      Im Keller habe ich heute mit einer Falltür experimentiert, die zu einem Schachtsystem führt. Die Räume sind noch quasi nicht eingerichtet, aber ich möchte erstmal am Grundriss weiterarbeiten. In Kürze fange ich das Obergeschoss an.



      · 2 replies
    • JackFarmer

      On a lighter note, thanks to my cat-like reflexes, my superior puzzle skills and my perfect memory, I was able to beat the remastered version of "Tomb Raider: The Last Revelation" in a new superhuman record time of 23 h : 35 m, worship me!
      · 3 replies
    • Goblin of Akenash

      My mapping discord if anyone is interested, its more of a general modding thing rather than just for TDM 
      https://discord.gg/T4Jt4DdmUb

       
      · 0 replies
×
×
  • Create New...