Closed insomniacUNDERSCORElemon closed 3 months ago
I made a diagram based on the suggestions so far. Would it look something like this?
It would certainly be easier to understand. Personally, I would consider it sufficient, but I wonder if there are any improvements that can be made from here
Not a common feature, but one that I am currently considering is:
minister watch [file]
- Monitor and recompile project changes.
Might not be needed much unless compile cost is improved or nim language incremental compilation is stabilized.minister script2nim (file)
- Convert gdscript to nim, like c2nim.I was also trying to automate some of the other complications that would arise when synchronizing nim and godot (though I can't be more specific as I am still new to godot development). I think it would be better to develop an Editor Plugin for this, but in any case, it would have the functionality to introduce it into the project.
Name stuff looks good. First thought is godot4 doesn't autocomplete until godot4
... wizard4godot autocompletes at wiz
for me. Another reason I prefer that type of name is that it is the most important bit first. Though I also like the idea of emphasis on Nim, though I admit this might be more trouble than it's worth (I thought nimzard at one point, though yeah maybe not so great).
Yeah, if you can get contributors they would be better input. Unfortunately the only place I posted on is permanently 50x and I didn't have much luck talking about nim-lang even when it was up.
Although should the core repo have 4 in its name? godotcore is required portability that it can be used from any version
or is core working for 5.X or perhaps even 3.X unlikely?
watch, script2nim, compilation cost
Have you thought about nimscript? (see project Enu (that is 3.X) by dsrw). Hotreloading works better with that and it'd be good enough for prototyping most of the time. Though I don't know enough to know if using a DSL is any leverage there for nimscript.
Aside from that, compilers can make a difference here too. Back when I used Nim in 3.X I did a benchmark and found that Clang with opt:size compiled faster than GCC yet was still fairly performant (read: best value, fine™). A tangent from that, in 3.X era (Bellard's) TCC was fastest compile (yet slowest performance, threads:off) so good first test option but it broke at some point and Araq said TCC is not officially supported.
(sidenote: Geekrelief did some hotreloading for 3.X)
Name stuff looks good. First thought is ...
Indeed. But that doesn't mean I can't come up with another correct name, and maybe we should compromise here.
Or maybe gdextension
?
Although should the core repo have ...
I put it there because I felt that when the specification is changed to 5.X, a replacement for gdextension will be released again. In that light, since this project targets gdextension and not godot4, it may be a good idea to change the name to gdextension.
Have you thought about nimscript? ...
Come to think of it, I have heard that Nim4UE also uses nimscript. I have some concerns about nimscript because of its inadequate memory emulation, but I will look into whether I can use it successfully.
I was thinking there might be some merit to using your old repo as a mirror (and it might make more sense to rename there).
My reasoning being that it has 77 stars and seems to have even gotten one recently. I don't know the timing with this, but I would guess that it's not great to have an organization as a landing page and that the stars will be divided between the repos.
For some context I had your old repo bookmarked for a while and only looked into it after seeing dodgethecreeps because it meant there was an obvious starting point.
Reply to @panno8M in https://github.com/godot-nim/godotcore/issues/12
I actually think minister and coronation work with each other in context. The small peculiarities with naming are more external, non-usage factors (aside from ability to having an actual nimble package, that is kind of a usage factor).
I don't know what is best here, but I think you should probably just centralize most of the needed information on the top-level overview. Use an index if needed, or switch over to a wiki format. Either way will probably make info easier to find and less prone to breakage.
Is this an issue? I would just type nim4 and then tab for autocomplete. Currently it's mini then autocomplete (same number).
install, template (future), and uninstall? Is there anything more commonly used that I'm missing? Is script management or hotreloading more likely done through minister than direct integration?
Maybe just rename minister to
assistant
? I think that'd be more clear. Or use the name wizard* as that has a clear meaning in computing. I could see this being used for other projects, too.That and change
import godot
toimport godot4
assistant install godot4
.assistant g4proj tilemap_test
*= I had the idea for using that as a name scheme (cast godot4, summon projectname, brew some_secret_third_thing), but that is less intuitive