/goluwa

An experimental game framework written in luajit

Primary LanguageLuaGNU General Public License v3.0GPL-3.0

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.

ScreenShot

Features

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