Posted November 05, 2024 by Synthnostate
#devlog #raylib
I was considering Cyberscript but that’s only because I heard about it from a friend whose opinion I respect, the same guy who convinced me to look at Odin and Zig. However, it’s too new and many planned features are incomplete including multithreading which I consider essential for heavily scripted games (i.e. small C/C++ core with all the high-level game code written in a more flexible script language) which would be nice in theory but only if the script language is solid and stable.
So I went down a rabbit hole, from one language to another, ultimately considering a dozen script languages…
Most of these are either dead, dying, or too new. Python is very much alive and I know it well, but it’s totally unsuitable for game scripting. Javascript is better but it will never be great because it’s the web’s language. AS3 was great but alas it’s dead. AngelScript and Daslang are written in C++ and aren’t exactly C-friendly. Wren is written in C but looks abandoned already. Squirrel is interesting - it’s written in C++ but deliberately has a C API only (which annoys C++ devs and reduces its popularity) but in any case it’s not suitable for heavy scripting and I can deal with Lua’s warts for light scripting.
So it’s back to Lua where I was 3 years ago before JS and Godot. But instead of a heavily scripted game with a tiny C core, this time I’m taking a more conservative approach, coding mostly in C with only light scripting (config, startup, dialogue conditions/actions). In particular I’m gonna write GUIs in C. Assuming immediate-mode RayGUI is fast enough (I’ll stress-test it this week) it’ll save me some effort.
I’ll probably upload Raylib Test 2 before Thanksgiving, or whenever I have a basic turnbased demo running on Windows+Linux. Then I’ll just add various scenarios with the eventual goal of tying it together as an RPG.
My focus remains the vampire sim, Synthnostate: Sanguinity/Salem. I’m thinking we gotta start with solid combat mechanics, like Bloodrayne and Bloodlines with less jank, less emphasis on special moves/abilities, more RPG than Bloodrayne, but not a linear narrative RPG like Bloodlines. Furthermore, in outlining the mechanics on paper, I believe we can do it with Raylib’s basic collision functions, no third party physics engine necessary, just an octree partitioning optimization for larger scenes, eventually. If that works and it’s fun, I think we’ll roll with it. That might even make it into Test 2.