-
Notifications
You must be signed in to change notification settings - Fork 114
Differences Between OpenDream and BYOND
This is a work-in-progress guide describing the major differences between OpenDream and BYOND.
Various things cannot or will not be reconciled between OpenDream and BYOND.
Note that all unsupported procs should throw a compile-time warning if you try to use them in your DM code.
Since OpenDream does not have an equivalent to the BYOND hub, no procs or vars related to the hub will be functional, such as GetMedal()
.
Since we are not affiliated with BYOND, all users are treated as if they are not members. Procs like IsByondMember()
will always return false.
All DLLs made for BYOND games are compiled targeting 32-bit. OpenDream targets 64-bit and DLLs will need to be recompiled.
BYOND uses UTF-8, while C# uses UTF-16. As a result, length()
and other text procs may return a different value for some strings.
The point of OpenDream is not just to provide an open-source implementation of Dream Maker, but to improve on it. These enhancements are currently a very low priority compared to improving BYOND compatibility.
All aspects of OpenDream natively support Linux including the client.
CEF embeds a modern web browser in OpenDream, providing a more modern and feature-filled alternative to BYOND's Internet Explorer 11.
OpenDream targets 64-bit operating systems, allowing developers to completely ignore memory efficiency on a level not seen since Minecraft.
BYOND wastes a portion of each tick just sending map updates (see world.map_cpu
). Robust Toolbox's PVS is multithreaded and largely won't have any detrimental effects on other game processing.
An unmerged proof-of-concept for proc static typing has been written. More details here.