I’d love to make a game, and attempted to make a start with something simple like Unity and Godot. For me it felt like implementing simple things that basically every game has (clicking and dragging objects, or moving a player character with arrow buttons, collisions) required a lot of coding straight up. Rather than boilerplate code blocks or something. It’s not like I expect there to be no code,I expected to use code to explain to the game engine complex ideas/systems, not figure out how to do the things that almost every game has. I’m sure there are inflexible No Code game engines but is there something in between?
eek2121|2 years ago
There was a time when you didn’t need to know what a shader was to build a game engine/game. The fixed function pipeline was super simple. Limited, but simple.
Vulkan and DirectX 12 made things even more complicated because they wanted to have better multithreaded support.
Engines try to bridge the gap between the APIs and games, but they end up creating an entire set of new things (like “scenes” and “nodes”) or entire new languages (like gdscript) that you have to learn. (yes I am aware that Godot supports multiple languages)
These days I probably use monogame the most. It seems to provide just enough to make things “easy” for me without introducing a ton of new stuff as a learning curve. Outside of that, OpenGL still exists, and you can probably find some basic shaders should have have no desire to learn all about pixel/vertex/whatever shaders.
…or maybe I am just old and cranky and miss the good ole days.
bzzzt|2 years ago
Vulkan or DirectX are made for current high-performance applications. Not stuff you put together on a sunday afternoon. They reflect the capabilities of today's hardware and therefore are complicated.
Engines like Godot expose some new concepts, but those are really not very complicated. You'll probably invent them on your own before finishing your first game. And then discover Godot developers did a better job after years of iterating.
drekipus|2 years ago
I used to try and write GLES games back in C++98 out of highschool. I find modern engines much quicker and easier to understand and use
xeonmc|2 years ago
xeonmc|2 years ago
drekipus|2 years ago
I generally agree with you btw, but I think it's just a matter of course.
I tried gdevelop before and I think it's the closest thing to what you might be looking for. You can make a sprite, then give it the "player movement behaviour", get a box and give it the "mouse draggable" behaviour. Etc.
THENATHE|2 years ago
I have no problem whipping out anything simple like what you mentioned in a couple of minutes, but it does strike me as odd that there isn’t a way to just plug together. Like a good example is a lot of the water physics plugins. Do I want to spend a ton of time making a water physics and visuals engine? No. But, I have to attach this random object to my character controller so that it makes a splash when it touches the water, and another to make it float. Why not just code it so it interacts with a rigidbody?
I have a character model that runs, jumps, and shoots all using a single script and the concept of a rigidbody, but I have to add arbitrary handlers to make the rigidbody capable of touching water? Why not an arbitrary script that makes a rigidbody not touch water, if I eventually want that?
somat|2 years ago
These game engines should probably provide something like this. Something like here is "Generic FPS" the game sucks, but it is a complete game with all the moving parts plumbed and licensed that you are free to use it as a base for any game.
A free rant on engines.
A game engine is roughly the same thing as a web framework, that is, it is an outer support layer with well defined exit points and you have to provide the business logic yourself. This works in conjunction with libraries which are inner support layers with well defined entry points and you have to provide the business logic yourself. I always preferred the term engine more than framework and always wondered why it was only used for games.