About
Goluwa is a framework written in LuaJIT that I use to further develop Goluwa with and satisfy my programming hobby. I don't have any long term plans so I just make whatever I feel like making in the moment. I'm mostly interested in game engines and middleware for games so Goluwa vaguely resembles a game engine.
Features
- ffi build system to automatically build LuaJIT ffi bindings.
- gui with focus on automatic layout and GWEN skin support
- font effects to create outlined, shadowed, etc text.
- markup language
- löve wrapper that lets you run Löve games in Goluwa
- glua wrapper that lets you run GarrysMod Lua in Goluwa
- enitity editor similar to PAC3's editor
- filesystem with the ability to mount and treat many archive formats as directories
- source engine formats are supported
Prototyping
- all resources can be loaded from the internet with urls
- fonts can be loaded directly from google webfont, dafont and other places
- many model, image and sound formats are supported
- most code can be reloaded without the need to restart
- integration with zerobrane
Issues
I mainly use and develop this on Linux so windows support isn't high priority even though it should work there. It may also work on OSX but I can't test rendering as I'm limited to using mac in a vm.
Writing everything in LuaJIT also comes with some challenges. I try to write JIT compilable code, especially in areas that are hot but this is not always easy if I also want to have support for reloading code. I believe I'm hitting limits in some cases but some of these may be solved in the future.
Because of how JIT works there will inevitably be hiccups and unreliable performance. I don't think this is something that can be solved easily so therefore I don't think this project is very useful outside of tinkering.
Credits
- Garry Newman - I learned programming in garrysmod and many of the ideas and libraries in goluwa were developed in garrysmod initially.
- Crytek - Playing around with the Crysis Wars SDK was how I started to learn C++. I made oohh which was a garrysmod-like mod attempt. The C++ Lua binder I made there included a standard game oriented lua library which eventualy evolved into goluwa.
- Ronny - Helped me making the gui when it was made for oohh.
- Malkia - the source inspiration for doing this entirely in luajit was ufo
- Morten Erlandsen - Provided help and code with BSP (especially the displacement bit) and supporting linux early on.
- Leandro Fonseca - Started working on the löve wrapper early on and has helped with explaining how löve works.
- Somepotato - Started proper font support using a font atlas.
- ZeqMacaw - The source engine MDL decoding code was based on the CrowbarTool