Rewriting/Porting NF again since Beeflang is a very niche and new language and less people know it. I'm concerned that it might be abandoned if the main developer stops working on it. Also, people are less likely to contribute to Nanoforge if its using some language they've never used. C# has a huge community, many libraries, and the backing of Microsoft.
Unless strictly necessary everything should be ported as-is. Improvements can come once everything is ported and working as it did before. There are few things that can't or won't be ported as is:
The renderer. I want to support Linux this time (since I'm using it primarily now). I don't want to use a wrapper like dxvk. Probably will just use OpenGL. Consider alternatives like Silk.NET if they might simplify things. Might be worth it since they have an ImGui renderer and many other things built in.
Project save/load. The Beef version uses a language specific library with its own format. Luckily C# has many serialization libraries. Hopefully they'll be fast enough. I'd like to stick to a text format for git friendly projects.
The file format reading code (probably). Since the Beef code uses pointers and byte arrays to avoid unnecessary copies. Should probably just start with the simplest approach and worry about performance later if it becomes an issue. I'm gonna use file format code from SyncFaction where possible.
General plan in no particular order:
[X] Get window with Dear ImGui in it
[ ] Port gui support code for documents, panels, popups, etc.
[ ] Port UI formatting, style, and extension/helper code. Get better font and image fonts working.
[ ] Port file format code
[ ] Write OpenGL renderer compatible with the old DX11 one
[ ] Port project save/load code & EditorObject management
[ ] Port file format import code (converts RFG formats to classes that are easier to edit and code with)
[ ] Port file format export code
[ ] Port documents and their logic
[ ] Port anything else I haven't covered. Refer to file lists below.
Rewriting/Porting NF again since Beeflang is a very niche and new language and less people know it. I'm concerned that it might be abandoned if the main developer stops working on it. Also, people are less likely to contribute to Nanoforge if its using some language they've never used. C# has a huge community, many libraries, and the backing of Microsoft.
Unless strictly necessary everything should be ported as-is. Improvements can come once everything is ported and working as it did before. There are few things that can't or won't be ported as is:
General plan in no particular order: