this post was submitted on 19 Jun 2023
13 points (100.0% liked)
GameDev
638 readers
1 users here now
A community about game development.
Rules:
- Adhere to the general lemmy.blahaj.zone rules (#1 being no homophobia, transphobia, racism or other exclusionary content)
- Self-promotion is fine as long as it's not spammy - share your progress, insights, techniques and mishaps! If you recently posted, update the previous post instead of filling the frontpage with your project
- Hide NSFW/NSFL content behind a clear warning, for example: [NSFW Nudity]
More rules might follow if they become necessary; general rule is don't be a pain in the butt. Have fun! ♥
founded 2 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
I think it depends what kind of games you are wanting to make. If you want to work for triple A making the next God of War then yeah they aren't using OpenGL. However, if you are interested in smaller indie games then OpenGL is still going to be used. I'm using OpenGL since my game is pixel art and would so the performance gain from Vulkan would mean nothing.
The problem isn't performance, the problem is that OpenGL was designed for another era. It's a global, single-threaded state machine. Getting it to work together with a rendering engine is very hard, because you have to keep track of all of the state to avoid interference between different parts of the engine (so the output would be broken if certain parts are executed in the wrong order).
This can probably be somewhat alleviated by using the Direct State Access feature since OpenGL 4.5, though. I haven't used that one yet, because it's not available for WebGL (and that's the only place where I'm still using OpenGL). Note that this isn't available on Apple platforms, because Apple stopped updating their OpenGL implementation at version 3.3.
I agree that Vulkan isn't really a good choice for indie devs. However, WebGPU is a pretty good API that removes most of the complexity of Vulkan (like the manual thread synchronization and memory management) while keeping all of its concepts. It's also available on desktop, for example via wgpu.