5 ms·
Is this by the same people who made LÖVE? The naming and use of LuaJIT suggest it. I love LÖVE. It's a great way to throw together rapid prototypes, and Lua is
by newsyyswen 5y ago
Is this by the same people who made LÖVE? The naming and use of LuaJIT suggest it.
I love LÖVE. It's a great way to throw together rapid prototypes, and Lua is a joy to work with. Exciting to see a 3D framework along the same lines, hope it can work well for non-VR apps.
- wsc981 5y agoFrom what I understand it's made by different people, but the LÖVR API tries to stay close to the design of the LÖVE API. It can work well for non-VR apps as well by just disabling the headset module.
- nabakin 5y agoI can confirm this was the case 3-4 years ago when it was in its early stages. Although, I wouldn't be surprised if developers who worked on LÖVE, have started working on this project since then.
- nonbirithm 5y agoI believe that if LÖVE weren't inextricably tied to Lua and were instead exposed as a C library that 2D game development would become a lot easier in someone's language of choice. You don't have to muck around with low-level details like initializing SDL or using raw calls to OpenGL, but you don't have to be constrained by the complexity of larger frameworks like Unity. It's like the one proper wrapper API for all the individual hard-to-use libraries. I don't like LÖVE because of Lua, I like LÖVE because the framework itself is so well-designed and easy to use. Other people seem to agree to the point of reimplementing LÖVE's API in Rust, as ggez.
- Koshkin 5y agoLua can be embedded in a C project as a library.
- nikki93 5y agoLove can actually be used directly as a C++ library. It's a bit of work to get the build system going but then you can use the Love API like: https://github.com/castle-xyz/castle-client/blob/7bfffa10e84b8423ce004692bc734c6f0797cdad/core/src/behaviors/analog_stick.cpp#L153-L165 https://github.com/castle-xyz/castle-client/blob/7bfffa10e84... -- we used to use the Lua Love and have since worked on porting our engine to C++. It even runs in the web with the same code through Wasm. No Lua VM ever gets initialized. I may create a minimal starter template repo showing an example of this at some point... Though, for a 'simple C library for 2d (and actually 3d) game development' -- I would highly recommend https://www.raylib.com/ https://www.raylib.com/. I really, really dig the API design there. One of the main 'downsides' I guess is it doesn't out of the box build natively for iOS -- but the Wasm support makes it run there pretty fine out of the box and raylib-fork can be used to get a native iOS build going with some work. It's got a lot of stuff out of the box including a GLTF loader and skeletal animation.
- lasagnaphil 5y agoA question: would it be too much work to port Love2D to a different embedding language? (I'm currently having looks at Squirrel (http://www.squirrel-lang.org/ http://www.squirrel-lang.org/) I always thought Lua was tightly coupled with the framework, but what you've mentioned seems to imply that's not the case.
- nonbirithm 5y agoHaving attempted this myself, the answer is "a lot of work." Even with the classes and bindings separated, there is still a lot of C++ code used in the binding layer, and some of the C++ code is tightly coupled to Lua data structures. If a transition to a C API were to be made, that C++ code has to be put behind a corresponding C wrapper, so basically opaque pointer types to all those classes and functions/methods have to be wrapped to fully support using LOVE as a standalone library. I still think that a C API would be a better option than trying to fork the project to replace Lua with Squirrel or some other language, so that at least others can have a chance to write bindings for their favorite languages without having to do all the porting work again. Here is the tracking issue: https://github.com/love2d/love/issues/1640 https://github.com/love2d/love/issues/1640
- qbasic_forever 5y agoCheck out OpenFrameworks: https://openframeworks.cc/about/ https://openframeworks.cc/about/ It's a C++ library that uses all the same kinds of libraries as love (and a lot more) but wraps them up into a uniform C++ object model and scene graph. I've used it for some simple 3d scenes + opencv processing and found it very enjoyable and easy to use.
- wishinghand 5y agoWould Raylib fit your ideal? https://www.raylib.com https://www.raylib.com