2024-01-14

Project Raygine #14

A little status update to keep track of what I achieved the last days.

Runtime packaging

I have deviated a bit from my origianl plan to embed all game data in the exe. I couldn't find information if this procedure is actually save to do; I don't want to risk that the exe is blocked by the OS or something. So I am now using a separate file for the game data. The format is super simple: It's just a list of files with their size and offset in the file. Raylib offers setting a loader callback that allows to map load requests to a custom function. Due to this, loading data from the package was super easy to implement. I only needed to modify a couple of Lua scripts of mine to utilize the loader and it worked.

This is how it looks:

Raygine editor gif showing starting the runtime with packaged content

Builds

Making builds is an essential feature I want to have with high priority. Technically I can now make desktop Windows builds. At least the runtime should support it - but I'd need to make a build menu with options, the procedure to package the content, and so on. That's quite some amount of work. Besides, the desktop target is only one of 3 targets I want to support (the other two being Android and HTML5).

I briefly looked at web builds - and oh boy, that'll be fun. It doesn't look like LuaJIT is supported by Emscripten, so I'll have to use the regular Lua interpreter. Also, I think it'll be cleaner to do this in a dedicated project, apart from the editor; starting with a working Emscripten build and then adding the features I need until it's compatible with the editor version.

But that's a quite fairly large project in itself, so I want to proceed with other things first.

Editor

I did a number of improvements to the editor, specifically creating scripts. Here's how it looks like now:

Raygine editor gif showing creating a script asset

However, the editor itself is another huge and messy construction site. There are way too many essential functions missing. I am working not with a list here though and just am working on things as I notice them - though I should still set out some basic features that I should prioritize.

Next steps

I have worked for 6 weeks on this project now. Typically I lose interest around that time and ditch it. Hopefully not this time. There are still many interesting things to do. Scene editing improvements is certainly high in priority. But testing the editor to make game features is also important to get an understanding where I'm standing. So I'll keep winging it for now.

🍪