nimue4 icon indicating copy to clipboard operation
nimue4 copied to clipboard

Plans on maintainance

Open HugoP707 opened this issue 5 years ago • 7 comments

I know this project has been abandoned since 2017, but i think it would be cool if you maintained at least for major updates, (even though not that much people may use it, it would be nice for nim to grow) if you are not willing to do so, could we get in contact so you could teach me how could i do it by myself?

Also, did you finish the game, i would love to see what nim is capable of.

Thank you

HugoP707 avatar Dec 08 '19 23:12 HugoP707

I think they switched the engine for their game from UE4 to Godot, as it was better suited for 2D games. As for tips on how to update the bindings, @endragor might now more about this

zetashift avatar Dec 09 '19 20:12 zetashift

We actually make 3D games. Godot was better suited for mobile at that point, not sure where UE4 stands now in that regard.

I'm afraid I don't have the time to update the bindings. Getting them up to date with latest version of the engine was mostly about updating the wrapped APIs in case there were breaking changes.

Also, the bindings are quite hacky in general, because UE4 doesn't provide built-in ways to integrate other native languages. So internally these binding rely on .emitting C++ code compatible with UE4. But it did work to some extent, the main problem is that you had to manually create wrappers for all the engine APIs you wanted to use.

endragor avatar Dec 10 '19 04:12 endragor

hmm, shame on me, at least some references for creating cpp wrappers or to your game?

HugoP707 avatar Dec 11 '19 18:12 HugoP707

Also, the bindings are quite hacky in general, because UE4 doesn't provide built-in ways to integrate other native languages. So internally these binding rely on .emitting C++ code compatible with UE4. But it did work to some extent, the main problem is that you had to manually create wrappers for all the engine APIs you wanted to use.

Sorry for the huge necropost, but could you elaborate a bit more on this? Does Nimue4, as it stands now, cover the whole UE4 API, or is this not the case and do I, as a user, have to create additional wrappers? If so, how do I do that? This looks like a very interesting project (even if it's abandoned), hence why I'd like to ask for some pointers.

TheWitheredStriker avatar Nov 01 '21 15:11 TheWitheredStriker

It didn't cover the whole UE4 API. We gradually updated it to include the parts we needed.

You can inspect wrappers in the "modules" folder. For example, this is how wrappers for the classes within PlayerInput.h look like: https://github.com/pragmagic/nimue4/blob/master/modules/core/playerinput.nim

I used a modified version of c2nim to generate them, but it still required some manual cleanup (which probably could've been further reduced). Also, the wclass macro helped remove most of the boilerplate.

endragor avatar Nov 02 '21 13:11 endragor

Alright, thank you for the clarification. I'll probably fork the project at some point in the future, once my skill in coding is sufficient in my experience, and continue development using your pointers. Glad to have heard from you.

TheWitheredStriker avatar Nov 02 '21 14:11 TheWitheredStriker

Just in case someone else gets here, now this exists: https://github.com/jmgomez/NimForUE

jmgomez avatar Mar 07 '23 19:03 jmgomez