Page 1 of 1

Dialogue System DLLs & Updating From Version 1.x

Posted: Wed Sep 01, 2021 8:25 am
by Tony Li
(This post is a reply to Kurenai Games' twitter post.)

Kurenai Games asks:
after literally 4 years I wanted to update your DialogueSystem but I cannot find DialogueSystem.dll in the latest Update. Are the compiled dll not included anymore? 🤔

I remember when I updated last time I just swapped the dll. That seems to be not doable anymore?
If you're using version 1.x of the Dialogue System, there are huge improvements in version 2.x, including many performance optimizations. There's also a one-time special update process: Upgrading From Version 1.x.

Version 2.x provides the source scripts so you can easily examine them and step through them in a debugger if you have to.

If you're concerned about runtime performance, precompiled DLLs won't make a difference. All code is compiled into DLLs before playing. If your game is playing slow, first check the Console window for errors or warnings or even regular log spam. Writing to the Console window is an expensive operation. Then check performance in the Profiler.

If you're concerned about compile times, the Dialogue System is compiled separately into Assembly-CSharp-firstpass.dll because it's in a Unity special folder named Plugins. This means it has no impact on the compile times of your own scripts that are outside of Plugins. However, if you want to compile the Dialogue System code into a separate DLL, import Plugins / Pixel Crushers / Dialogue System / Scripts / DialogueSystemAssemblyDefinitions.unitypackage. This will compile it into a DLL named DialogueSystem.DLL. Note that having too many assembly definitions (asmdefs) in a project can actually make compile times slower due to Unity's overhead when processing asmdefs. Also, if you've enabled options such as TextMesh Pro support or new Input System support, you must remember to then assign those packages' asmdefs to the Dialogue System asmdefs.