DLScript For Godot Released

 

A very early iteration, DLScript for Godot was just released today.  What exactly is DLScript?  The description from the Github project is probably the best definition:

DLScript stands for Dynamic Linking Script. It’s a module that enables you to use shared libraries, which are dynamically linked, for scripting. DLScript was originally named “cscript” because it exposes a C API, but people thought it was related to C#, which is sometimes abbreviated as “cs”. You can build these libraries with C++ as well as C, D, Rust, or any other language that supports C linkage and creating dynamic libraries.

One of the immediate powers to DLScript is the ability to link other shared libraries or to use critical code without recompiling the engine.

Currently there are C++ bindings that make developing for Godot with C++ easier, but DLScript is not limited to C++.

 

There is a much more detailed blog post, with usage instructions available here:

So what is DLScript?

DLScript is a module for Godot that adds a new “scripting language” to it. I put “scripting language” in quotes because it’s not a language.

A “script” in Godot is defined as something that has methods, properties and signals. It also offers a way to use these things (calling methods, get and set properties…). Instead of having a text file representing these things (like a GDScript file for example), DLScript uses shared libraries.

In some ways, shared libraries have things in common with scripts.

  • you can load them
  • you can unload them
  • you can load function symbols
  • you can call functions

A method in a DLScript is just native machine code. You can call third party libraries from that code as well. You can call GDScript functions from a DLScript and vice versa. When C# will be supported optionally, you’ll be able to call C# code as well.

 

So essentially DLScript is a new module for Godot that acts as a go between of the Godot Scripting API ( and not the entire C++ API!) and your own code, which is loaded at runtime in library form.

GameDev News


Scroll to Top