UnrealImGui
UnrealImGui copied to clipboard
NetImgui branch update
- Upgraded
NetImgui branch
with latestmaster branch
content - Upgraded
NetImgui library
to latest v1.9 version - Pulled Unreal Server support from TDeslandes
Seeing as the NetImgui branch
is now up to date, I suggest that it get also get pulled into master branch
.
This will keep it up to date at all time and people that do not wish to use it can set kUseNetImgui
in NetImguiLibrary.Build.cs
to false, it will remove it from compilation.
Awesome!
Should NetImgui be disabled by default on master branch and be changed to opt-in you reckon?
Personnally, I would leave it active by default. When not in use, it only use a sleeping thread to listen for connection on a tcp socket. If people are really bothered by that, a simple value change disable all of the NetImgui integration, which can be made clear in the documention and the main header file / build.cs of the plugin.
Aditionally, this branch gives acces to extra built-in fonts .
I have some changes locally that I can't seem to push to your branch (likely because it's a fork of the original repo, not this fork). net_imgui
branch on this repo has those changes though.
Unrelated to my change, I saw this comment in the documentation
... you'll need to add the following line to your
[GameName].Build.cs
file otherwise you'll get linking errors:
// Tell the compiler we want to import the ImPlot symbols when linking against ImGui plugin
PrivateDefinitions.Add(string.Format("IMPLOT_API=DLLIMPORT"));
This can actually be avoided, by adding the public define in the plugin .cs file or even the imgui config .h
Looks like just IMPLOT_API=DLLEXPORT
is enough for Unreal to figure it out as our internal project using this never defines IMPLOT_API=DLLIMPORT
.
Is your overall plan to deprecate https://github.com/sammyfreg/UnrealNetImgui? I haven't dived too deep into the integration yet, but I am wondering if it would be better to keep NetImgui integration into Unreal separate? That would also mean less waiting for this plugin to update to latest ImGui changes when there are changes required in NetImgui. Maybe keeping compatibility between both without direct access is not that easy though.
Overall I think the decision here is to either have this plugin as a collection of ImGui plugins integrated into Unreal Engine, or a hub/core plugin that allows sub-plugins to be added. Ultimately first is probably a lot easier, and doing that with ability to enable/disable features is ultimately the better choice. I only worry about version compatibilities in this case.
As for the server executable, I would recommend attaching a build of it to each NetImgui release. That would be useful for whatever NetImgui is/gets integrated into, wiki page is a bit hidden.
Is your overall plan to deprecate https://github.com/sammyfreg/UnrealNetImgui?
No, I am still working on it. At first, it was just intended as a simple plugin for people wanting to use a simple Dear ImGui integration without local display. A lot of game company used their own version of Dear ImGui integration in Unreal, so it is also a good example on how to import NetImgui into their own plugin. Since UnrealImGui had been inactive for a while, I started work some time ago on supporting local display too, controlled from the remote server. But this is slower going since I am pretty busy with other things.
I haven't dived too deep into the integration yet, but I am wondering if it would be better to keep NetImgui integration into Unreal separate?
It cannot be separate, NetImgui needs to be compiled alognside the Dear ImGui Integration. There's the issue of replacing the ImGui::Begin()/Render() with NetImgui::Begin()/End() and knowing on which context to remotely work with.
... wiki page is a bit hidden.
As for this point, I didn't mean that the user hunt the link on another wiki. I just store the zip file there for download. In my lastest pull request, I added a link in the README.md to the zip file with the needed content.
I would recommend attaching a build of it to each NetImgui release
Each NetImgui release already contain the exe compiled (link), but it also contains the client .cpps for integration into your application, and missing the Unreal Remote configs, could be confusing for Plugin users.
Unreal Remote config can be in this repo, that's fine. Only binaries should not - either from a verified release or self-built.
Ok. For now I removed the NetImguiServer folder entirely, so user can download it using the link on the README.md page, and copy the application to the folder of their choice, with the client list config file included.