Soygoy
I will fight for /anthro/
As some of you might know, a while ago I was making a roblox clone using Godot and it was going smoothly but a part of me can't help but think about performance concerns. While BlenderChud says a lot of dumb things, ultimately, using an engine like Godot might be a bit resource intensive for what I want to make, it uses a lot of ram and has to rely on shader parameters to get textures functioning properly, using too many materials causes the game to lag a lot and loading places takes a fair bit of time, althoughbeit in normal Roblox it takes some time to load too. My project functions and that is good enough, but ultimately I am wondering if developing purely for performance is the best thing that I can do and while Godot comes with a toolset of things that are great, some other things are not so great. It's built in physics engine might not be up to par.
Roblox places can have a lot of parts in them aswell, thousands, maybe even 10 thousand. Most of them even are designed to explode or perform physics calculations and on actual old Roblox clients this causes significant lag, but with a modern updated engine, this lag could be removed entirely. I also want to write a lua interpreter so that scripts can be read by the engine, but doing so using GDScript is probably a bad idea because of how slow GDScript is compared to other languages. It is also possible to implement lua support via an addon and perhaps use that, but I'm wondering if maybe it is better to use alternatives.
For example, I've been looking into other languages like Go, Zig, Rust, etc, languages that are not interpreted like Python or Java. And I've been wondering if it's a better idea to use another language like Go to re-develop my Roblox clone but with a focus on performance. Doing so is simple, all I need is an XMLParser, a Multiplayer System, A physics engine, a 3D engine, something that handles textures and it should be as easy as loading a place = load the xml file, parse that to spawning 3D cubes with textures with enableable physics for each one, controls, controller support, and then you'd have your Roblox clone. Oh and also audio.
The issue is that I can't find a 3D game engine with physics for Go, and if you're looking for a 3D Game engine with physics for C++ then you might aswell just use Godot. I will probably have to rely on using a lot of libraries or implementing things entirely by myself which will take an extremely long time. Not to mention, a lot of the libraries I need are made solely in chinese or something, or don't even exist yet. And what about cross platform shit? I don't have Windows and I don't even want to think about attempting to install it just to test if it will work cross platform. And do I really have to deal with manual memory management and pointers and stuff?
It just seems like too much hassle. I get told this a lot "just make your own engine o algo" but it's really not that simple, it's extremely counter intuitive, the only option we have at this point is Godot. There might be another way, like using GDNative extensions to make code faster or something like that, but I am wondering if there truly is an easier way that will be good for performance that doesn't require me to spend fucking hours debugging a shitty rendering or physics issue or something like that. If I actually re-invent the wheel, I will quite literally just be recreating Roblox from the ground up. Even then, Roblox doesn't matter, it's making any kind of game with any different programming language at all, it just doesn't seem worth it. Godot is the only way, other engines just suck or aren't even as feature complete or as user friendly as Godot.
So I feel like the answer is no, but what do you think? Is it possible to have a programming language that doesn't suck, easy to read, easy to write, but extremely performative and cross platform? Java is cross platform and has garbage collection but is interpreted which means you have to download Java to even use it which sucks for user's sake unless you bundle in a version of Java with your game or something like that. Python is interpreted, easy to read and write but takes forever to load and performance wise, sucks ass. Go seems like C but easier, can be compiled, but might not be cross platform worthy. Zig also looks like C but better. It might also be possible to make an entire 3D game using lua OpenGL shit but... I wouldn't dare to be honest. And Rust just seems retarded in my opinion.
So if Godot isn't an option, do I really have another choice or do I have to spend years developing a """game""" and all I have to show for it is a basic 3D renderer geg.
Roblox places can have a lot of parts in them aswell, thousands, maybe even 10 thousand. Most of them even are designed to explode or perform physics calculations and on actual old Roblox clients this causes significant lag, but with a modern updated engine, this lag could be removed entirely. I also want to write a lua interpreter so that scripts can be read by the engine, but doing so using GDScript is probably a bad idea because of how slow GDScript is compared to other languages. It is also possible to implement lua support via an addon and perhaps use that, but I'm wondering if maybe it is better to use alternatives.
For example, I've been looking into other languages like Go, Zig, Rust, etc, languages that are not interpreted like Python or Java. And I've been wondering if it's a better idea to use another language like Go to re-develop my Roblox clone but with a focus on performance. Doing so is simple, all I need is an XMLParser, a Multiplayer System, A physics engine, a 3D engine, something that handles textures and it should be as easy as loading a place = load the xml file, parse that to spawning 3D cubes with textures with enableable physics for each one, controls, controller support, and then you'd have your Roblox clone. Oh and also audio.
The issue is that I can't find a 3D game engine with physics for Go, and if you're looking for a 3D Game engine with physics for C++ then you might aswell just use Godot. I will probably have to rely on using a lot of libraries or implementing things entirely by myself which will take an extremely long time. Not to mention, a lot of the libraries I need are made solely in chinese or something, or don't even exist yet. And what about cross platform shit? I don't have Windows and I don't even want to think about attempting to install it just to test if it will work cross platform. And do I really have to deal with manual memory management and pointers and stuff?
It just seems like too much hassle. I get told this a lot "just make your own engine o algo" but it's really not that simple, it's extremely counter intuitive, the only option we have at this point is Godot. There might be another way, like using GDNative extensions to make code faster or something like that, but I am wondering if there truly is an easier way that will be good for performance that doesn't require me to spend fucking hours debugging a shitty rendering or physics issue or something like that. If I actually re-invent the wheel, I will quite literally just be recreating Roblox from the ground up. Even then, Roblox doesn't matter, it's making any kind of game with any different programming language at all, it just doesn't seem worth it. Godot is the only way, other engines just suck or aren't even as feature complete or as user friendly as Godot.
So I feel like the answer is no, but what do you think? Is it possible to have a programming language that doesn't suck, easy to read, easy to write, but extremely performative and cross platform? Java is cross platform and has garbage collection but is interpreted which means you have to download Java to even use it which sucks for user's sake unless you bundle in a version of Java with your game or something like that. Python is interpreted, easy to read and write but takes forever to load and performance wise, sucks ass. Go seems like C but easier, can be compiled, but might not be cross platform worthy. Zig also looks like C but better. It might also be possible to make an entire 3D game using lua OpenGL shit but... I wouldn't dare to be honest. And Rust just seems retarded in my opinion.
So if Godot isn't an option, do I really have another choice or do I have to spend years developing a """game""" and all I have to show for it is a basic 3D renderer geg.