SimulaVR / godot-haskell

Haskell bindings for GdNative
BSD 3-Clause "New" or "Revised" License
171 stars 18 forks source link

How to help? #2

Open NickSeagull opened 6 years ago

NickSeagull commented 6 years ago

Hey there, thanks for the initiative! :smile:

I've recently discovered Godot and liked the fact that it can support native libraries. Given that I'm a Haskeller, I'm really hyped by these repos you have made.

I saw that they are somehow recent, and I'd like to help setting this up in some of my free time. I could help setting up a tintin documentation website (An example here and here).

What would be the first steps to use the plugin and these bindings?

Thanks again!

KaneTW commented 6 years ago

Hi! The libraries are still an in-progress thing, and only very vaguely usable. Once I support the nativescript parts of Godot, they'll be actually usable.

Areas that need improvement are:

I'm currently at Lambdaconf, so it'll be a bit before I can finish up the API. Feel free to hang out in the SimulaVR gitter. I estimate around one-two weeks until these are in an alpha stage.

Thanks a lot for your interest!

KaneTW commented 6 years ago

I can type up some examples in a bit. WiFi on my laptop isn't working for some reason right now.

NickSeagull commented 6 years ago

Great, thanks! I'm trying to use it for the basic examples of Godot, but I'm not really sure how to include it. Any pointers? :sweat_smile:

KaneTW commented 6 years ago

Right now some extremely important things aren't available in a comfortable fashion.

There's basically a 1:1 mapping in Godot.Gdnative.Internal, but:

Ideally just wait for a bit for me to get the high-level API finished. If you want to try out the low-level stuff anyways:

There should be a relatively close correspondence with C for the low-level API, but it's not very Haskelly. Functions like type InstanceMethodFun = Ptr GodotVariant -> GodotObject -> Ptr () -> Ptr () -> CInt -> Ptr (Ptr GodotVariant) -> IO (Ptr GodotVariant) are how I have to represent struct godot_variant returns, and you need to write the GodotVariant into the first pointer, then return that pointer. Lots of stuff that can be abstracted out relatively easily, though.

NickSeagull commented 6 years ago

Great, thanks! 😄

juanjoman commented 6 years ago

HI! I would like to help to grow this up, with XML do you refer to docs about this? http://docs.godotengine.org/en/3.0/classes/class_xmlparser.html

NickSeagull commented 6 years ago

I think that @KaneTW refers to the documentation of the classes and/or methods. What you pointed out @J2RGEZ is a class that Godot has to parse XML files :)