I’ve been going through a course on udemy and learning unreal engine first time ever consistently for the past month, but haven’t finished a game just yet, and I don’t think I care enough to put any effort on anything other than gamedev. It has been my passion since like 6 years, that’s why I left my old job as an Ops engineer; should I continue and work on different projects simultaneously (opengl and unreal) or just stick to one. FYI, I’m not employed atm and would hope to work on gamedev professionally. I appreciate any advice to build my portfolio or any keypoints to get better at gamedev.
tl;dr would learning unreal and opengl simultaneously benefit me to get hired in a gamdev studio or should i stick to unreal and finish some games first?
OpenGL is good for learning 3D graphics, but isn’t used in games any more. It’d be better to know DirectX 12 and Vulkan, but those are hard to impossible to learn without experience with some other API first IMO.
Just learning Unreal Engine will keep you from getting hired for a lot of jobs that don’t involve that engine (for example, all Unity projects). Being a general graphics programmer opens a lot of doors.
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.