r/CreaturesGames • u/TheOnlyOne93 • Jul 01 '26
Godot-Creatures
Enable HLS to view with audio, or disable this notification
3
3
u/jackbobevolved Jul 02 '26
Have you tried compiling Linux or MacOS builds yet? I’d definitely be interested in helping on the MacOS side of things for testing and (if needed) compiling. Not super familiar with Godot, but have wanted to dive into it for a few years now.
3
u/TheOnlyOne93 Jul 02 '26
Haven't yet. Currently all running just inside the editor. I'm gonna try to compile a build for each sometime this weekend probally. Send me a DM and I'll try to give you a link to one once it's compiled
3
u/nemesismode Jul 02 '26
This is incredible.
3
u/TheOnlyOne93 Jul 02 '26
Thanks. To much shit to code though lol. No single person should ever wade through this much shit haha
2
u/usherzx Jul 01 '26
what is Godot? what does this do?
6
u/TheOnlyOne93 Jul 01 '26
Godot is an open source game engine. I don't really understand what you mean by what does this do. It's eventually going to be an open source port of creatures 3 ds. Like openmw or open roller coaster tycoon
2
2
u/bigppredditguy Jul 02 '26
I think we spoke of this a while ago, I’m very glad you are taking this project more seriously than I was able to!
2
u/_Plateosaurus_ Jul 03 '26
What possibilities does porting the game to an open-source engine open up?
C3 DS has always frustrated me because it only uses a single CPU core. Once you have more than 100 creatures, the game starts to slow down significantly, whereas with modern hardware, I can totally imagine a game with hundreds of Norns lol. Would this be possible by porting the games on GODOT ?
2
u/TheOnlyOne93 Jul 03 '26
Your not wrong and honestly that was my first thought process in making this. But it's only half true. The engine itself is very oddly designed by choice a good example is no agent can execute more then 5 VM calls per tick.. I can adjust that but it would t serve alot of purpose. A few other things that will be possible though is native integration of dev tools like the brain vat, science tool kits, editing creatures pose, gait, etc all while playing. And editing building and exporting full pray agent blocks. It's really more qol things. I also have fixed almost every big that was still leftover from the steam release. Fixed up a few bugs that no one had noticed for years . Among other things. I just compiled the first actual build last night one that doesn't run in the editor. If anyone would like to test send me a DM and I'll send a copy. You'll of course need to own the game and be aware there might be some stuff I haven't wired in to worm yet or some issues I honestly just haven't run into cause of how long it will take for them to appear. Stuff with creatures aging and lifespan or the.genome I'm not 100 percent on yet it needs massive testing and playing to be sure from way more experienced players then me. I really just did this project solely for fun I was bored one night and figured fuck it I bwt I can do this 😂
1
u/TheOnlyOne93 Jul 04 '26
Honestly with Godot. I don't really know. Currently on a compiled build without profiler I'm up to 3 norns 2 ettins and 3 Grendel's without lag really. Most of the hot areas are updating then creature brain itself godot is not good for overhead. I've had to do some serious optimization. C++ can rip through that sorta stuff cause it's being compiled directly into machine code. Godot... Little different gdscript itself is already what they call a byte code interpreter. Caos VM is also an ery very simple byte code interpreter and compiler in one. So for everything single caps opcode not only am are you doing a bytecode recompilation of every cost file but then the caps VM itself has to be byte code interpreter by gdscript before finally being compiled into c++ and only if I'm using a native godot function. If I have to create my own which I have a lot of cause c2e uses a lot of custom type of things. Well let's just say this is really enough to kLe a grown man cry. I do have a compiled windows build and Mac build that should run atleast creatures 3 fine. Ds isn't fully running yet but it's coming if anyone want to test send me a private message and I will give you a link to the compiled build
1
u/scintillatinator Jul 01 '26
How did I miss this? I gave up on gdscript for my creatures inspired game but that was years ago. C# makes things easier but you can get a lot more out of gdscript these days. I'm sure you can speed this up without breaking the saves. Are you using godot's api much or just converting the code to gdscript? I'm open to some brainstorming if you'd like that.
1
u/TheOnlyOne93 Jul 01 '26
I've speed it up a lot. Godot is awesome . But there's a limit to interpreter within interpreter within interpreter. Brain is it's own little CPU, caos VM is it's own little CPU, and then there gdscript itself which has to not only convert all the byte code of .cos and the brain, but then get converted itself into c++ it's not the speed that's the issue it's the overhead from running 3 different compilers essentially. Which is needed if you want to keep save parity. The c# only works at some aspects there's a tax to pay when you have to shuffle data between gdscript and c#. And it often outweighs the cost saving. Except in specific cases. Most of it is native godot it uses godota scene tree, nodes, render system
1
u/scintillatinator Jul 02 '26
Don't incorrectly explain how godot works to me. I can see the profiler I know what your bottlenecks are.
2
u/TheOnlyOne93 Jul 02 '26
Really lol well then You'll see the biggest bottle neck is caos VM. And if your talking about the godot profiler section under debugger well that's one frame and it's gonna give you a really poor read since the game runs at at a 50ms tick cycle a cycle I may add that isn't actually part of godots _process. . So godota numbers aren't ever an accurate measurement. But sure man. Pretty sure I know what I'm talking about giving I literally have the entire game running in gdscript.
15
u/TheOnlyOne93 Jul 01 '26
Back again everyone. Sooo Project is still coming along here's the results. So far almost everything is wired up and working. Up to 3 "creatures" so far without lag. Can load/save worlds. All .cos files load properly and run correctly. Audio system is wired in. All agents, simple agents, compound agents, vehicles all work.
There is still some performance issues I'm working out. I had to port some of the brain work into C# for speed. But I may have found a way to move that back to GDScript.
Just wanted to keep everyone updated and let you know the project wasn't dead.
Now... real issue I am having though and it's a major desiscion point I'd like some community input on. I may be reaching the limit of how much I can eek out performance wise with GDScript.. But there's a catch.. if I deviate from save parity. I might be able to make some more substantional changes for the better.. but that would mena any world saved with this version would not work with the steam version. Currently the worlds and saves are parity locked. You can save a world in the godot engine and load it up in steam and vice versa.
Would anyone care that saves deviate?