Goluwa is a framework that I use to make stuff made in LuaJIT. It's very similar GLua (Garry's Mod Lua) because that's where I started learning programming and it's what I'm used to.
There are a lot of of sub projects included such as the GUI, a wrapper for running Löve games, tools for reading and mounting source engine assets, midi and sf2 parsers and so on.
I don't have any plans so I just code whatever I feel like coding. Because I'm interested in game engines and middleware for games the byproduct of doing that ends up with Goluwa being something that vaguely resembles a game engine. For these reasons I can't recommend using Goluwa to make a game or anything too serious.
LuaJIT's FFI library is used to bind to the following shared libraries:
- OpenGL - graphics
- GLFW - window and input handler
- SDL - window and input handler (mainly for android)
- OpenAL Soft - sound library
- FreeType - font decoding
- Libsndfile - sound decoding
- FreeImage - image decoding
- FFMpeg - sound and image decoding
- VTFLib - image decoding (valves texture format)
- PDCurses - console
- Assimp - model decoding
- Bullet3 - physics engine
- ENet - udp library targeted at games
- SteamFriends - extension to the steam library to deal with steam friends communication
The rest is then made in LuaJIT.
GUI: Similar to derma/gwen in gmod. It's also compatible with gwen skins. The blue skin tries to be identical to zsnes. The zsnes skin is only used in the "main menu".
Source engine content: Here I'm loading de_overpass from CSGO. Goluwa will find steam, mount csgo and the required source games, read the BSP, VTF, VMT, MDL, etc files and load the assets. This is all very WIP but somewhat works.
Entity editor: It's sort of similar to PAC3 (a character editor I made for Garry's Mod). All objects have properties and some of them can be marked for being storable. If they are you can edit them with this editor.
Löve wrapper: So you can run games made in Löve for some reason. The first game is Mr. Rescue and the second one is Sienna (I didn't make them). As with almost everything in Goluwa it's WIP. Some games work and some games don't.
Markup language: This is used by the GUI and chat. It has lots of tags to change colors, rotation, offsets, fonts etc.