Advertisement

What is the better option for going into game programming?

Started by September 04, 2018 09:38 PM
8 comments, last by frob 6 years, 2 months ago

Hello.

I'm currently torn between two options for game development. Making a game from scratch using OpenGL or using Unreal Engine to make a game faster. The decision seemed obvious but as I thought about it more, I couldn't decide.

The reason being that when I code in Unreal Engine (using C++) I feel like I'm not really doing much. At most scripting, so that the components I implement can be used through UE4's Reflection system and used inside Blueprints. I dislike Blueprints for anything other than fast prototyping (for which they are very fast to work with). Yes it's much faster to develop prototypes and games but I wouldn't get much knowledge of the actual fundamentals of game programming. 

I have experience with graphics APIs like OpenGL and Vulkan and I switched over after creating a couple projects. It took forever to have something visible on the screen, and even more time for a simple prototype to be made. But I felt like I was learning key concepts that would be valuable in the future. Learning UE4's functions and nodes feel like simple scripting with no external application knowledge to be learnt (except joining a company / starting small-scale development using UE4 exlusively) and if I hypothetically would want to switch to other engines / frameworks in the future I wouldn't already know the basic concepts from my time spent in UE4.

I know that making a fully fleshed-out game from scratch is much more difficult and that Unreal Engine is very appealing for faster development but which one would benefit me the most in knowing in the long run?

Prototype with UE4 so that you know what you're trying to accomplish, and then recreate each prototype from scratch.  Zenimax did the same thing with Elder Scrolls Online, making it in Unity and then re-making everything from scratch for the final product.

Is currently working on a rpg/roguelike
Dungeons Under Gannar
Devblog

Advertisement
12 hours ago, Lendrigan Games said:

Prototype with UE4 so that you know what you're trying to accomplish, and then recreate each prototype from scratch.  Zenimax did the same thing with Elder Scrolls Online, making it in Unity and then re-making everything from scratch for the final product.

I think that's how the Resident Evil team at Capcom did as wll. However, it's about the prototype and not about learning programing. 

Anyway, I think learn both ways of game programming will benefit you. Learning UE4 will make you knows the status of the industry standard tool. Making engine from scratch will make you get better understanding of how things work internally, and you'll learn the proper language rather than UE4-spiced version of C++.

http://9tawan.net/en/

What do you want to do?

Some game studios use Unreal Engine, so learning how to use it can help you get a job in that role if that interests you.  However, relatively few jobs require it, so don't do it in an attempt to get a fabled future job.

Some game studios develop their own rendering systems, so learning how rendering systems work can help you get a job in that role if that interests you. However, relatively few jobs require it, so don't do it in an attempt to get a fabled future job.

Hobby projects done for fun are best when they remain fun rather than becoming a chore. Using a major game engine can help you stay on the fun side longer if that's your preference, although it will eventually have drudgery tasks. Developing a graphics rendering suite can help you stay on the fun side longer if that's your preference, although it will eventually have drudgery tasks.  Hobbys are about what you enjoy, so if that's the part you enjoy, go ahead and enjoy it.

 

You can learn either of them, both of them, or none of them. You can start with one and change your mind. There really isn't a wrong decision, just decide and move forward.

On 9/5/2018 at 1:55 AM, Lendrigan Games said:

Prototype with UE4 so that you know what you're trying to accomplish, and then recreate each prototype from scratch.  Zenimax did the same thing with Elder Scrolls Online, making it in Unity and then re-making everything from scratch for the final product.

That seems like it would teach me a lot but it would take far more time than to create projects separately on each platform.

 

On 9/5/2018 at 2:03 PM, mr_tawan said:

I think that's how the Resident Evil team at Capcom did as wll. However, it's about the prototype and not about learning programing. 

Anyway, I think learn both ways of game programming will benefit you. Learning UE4 will make you knows the status of the industry standard tool. Making engine from scratch will make you get better understanding of how things work internally, and you'll learn the proper language rather than UE4-spiced version of C++.

I've thought about it for some time and I'd go for the 'from scratch' path for now. Because after all, learning the same pipeline you already know (aside from how it's implemented) for each engine is much easier than learning the engine and then not knowing how to implement something.

 

On 9/5/2018 at 9:01 PM, frob said:

What do you want to do?

Some game studios use Unreal Engine, so learning how to use it can help you get a job in that role if that interests you.  However, relatively few jobs require it, so don't do it in an attempt to get a fabled future job.

Some game studios develop their own rendering systems, so learning how rendering systems work can help you get a job in that role if that interests you. However, relatively few jobs require it, so don't do it in an attempt to get a fabled future job.

Hobby projects done for fun are best when they remain fun rather than becoming a chore. Using a major game engine can help you stay on the fun side longer if that's your preference, although it will eventually have drudgery tasks. Developing a graphics rendering suite can help you stay on the fun side longer if that's your preference, although it will eventually have drudgery tasks.  Hobbys are about what you enjoy, so if that's the part you enjoy, go ahead and enjoy it.

 

You can learn either of them, both of them, or none of them. You can start with one and change your mind. There really isn't a wrong decision, just decide and move forward.

Is learning graphics programming that small of a requirement? I had the impression that it would be of bigger demands.

Anyway, my goal isn't to get a job, it's for learning purposes and having some fun by tinkering around. At least currently because I'm still a student.

 

After some thought I'd eventually want to work as a programmer for the technical aspects of a game (so the pipeline), and not just scripting functionality.

Thank you for the replies. Have a good one.

Advertisement
6 hours ago, Stefan Ivanovski said:

Is learning graphics programming that small of a requirement? I had the impression that it would be of bigger demands.

It depends what you're doing.  Low-level engine programmer, or working with the graphics pipeline?  You'd better know that stuff.  Gameplay programmer implementing stuff using a third party or in-house engine?  That stuff probably isn't part of your job.  Different specialty, such as network programming?  Again, graphics probably isn't part of your job.

Roles as a gameplay programmer are far more common than lower-level engine programmers.  So, when you take that in combination with other specialties, jobs requiring in-depth graphics programming are probably less common than those that don't.

- Jason Astle-Adams

On 9/4/2018 at 5:38 PM, Stefan Ivanovski said:

Hello.

I'm currently torn between two options for game development. Making a game from scratch using OpenGL or using Unreal Engine to make a game faster. The decision seemed obvious but as I thought about it more, I couldn't decide.

The reason being that when I code in Unreal Engine (using C++) I feel like I'm not really doing much. At most scripting, so that the components I implement can be used through UE4's Reflection system and used inside Blueprints. I dislike Blueprints for anything other than fast prototyping (for which they are very fast to work with). Yes it's much faster to develop prototypes and games but I wouldn't get much knowledge of the actual fundamentals of game programming. 

I have experience with graphics APIs like OpenGL and Vulkan and I switched over after creating a couple projects. It took forever to have something visible on the screen, and even more time for a simple prototype to be made. But I felt like I was learning key concepts that would be valuable in the future. Learning UE4's functions and nodes feel like simple scripting with no external application knowledge to be learnt (except joining a company / starting small-scale development using UE4 exlusively) and if I hypothetically would want to switch to other engines / frameworks in the future I wouldn't already know the basic concepts from my time spent in UE4.

I know that making a fully fleshed-out game from scratch is much more difficult and that Unreal Engine is very appealing for faster development but which one would benefit me the most in knowing in the long run?

I would say go with OpenGL. I can understand your sediment regarding using C++ as I typically write code in C# and I have grown to love it over the years, but it is sometimes like taking the easy way out. It all really depends on how advanced you are in your coding skills. 

E=MC Squared.

17 hours ago, jbadams said:

It depends what you're doing.  Low-level engine programmer, or working with the graphics pipeline?  You'd better know that stuff.  Gameplay programmer implementing stuff using a third party or in-house engine?  That stuff probably isn't part of your job.  Different specialty, such as network programming?  Again, graphics probably isn't part of your job.

Roles as a gameplay programmer are far more common than lower-level engine programmers.  So, when you take that in combination with other specialties, jobs requiring in-depth graphics programming are probably less common than those that don't.

My thinking currently is that if I know the graphics programming pipeline I can implement features in the current commercial engines much faster than if I didn't know it. So for example, making a material would take longer if you don't know what diffuse/specular/ambient light is or what the diffuse, normal maps actually do. So if there comes a time where I don't find myself doing graphics programming as my main focus it would be easier to switch.

On 9/7/2018 at 3:16 PM, Stefan Ivanovski said:

My thinking currently is that if I know the graphics programming pipeline I can implement features in the current commercial engines much faster than if I didn't know it.

If that is what you want to learn, then learn it.  

If you're doing it because you think it might get you a job later on (rather than because it is something you want to learn) then don't do it. 

Graphics programmers are only one sub-discipline, and from my own observations they represent <5% of the game programmers I've worked with over the years.  The largest subgroup is gameplay programmer, with UI programmers, engine programmer, AI programmers, and tool programmers all representing large numbers. Network programmers, audio programmers, physics programmers, math programmers, and scripting/integration programmers are there as well, but as slightly smaller subgroups.  Most specialists will occasionally work in other systems, and senior programmers tend to be competent in several specialties in addition to having general knowledge about all the other sub-topics.

 

None of them will directly affect your ability to get a job, nor will they harm your ability to get a job.  Studios hire people with all the different specialties, and they hire people as generalists without caring about specialties. Develop the specialties that you have aptitudes for and enjoy working with.  If one of those is graphics, then go for it.  It won't help you if a studio is targeting their search for network programmers, or tools programmers, or AI programmers, but if they're hunting for a graphics programmer you'll be well-studied for the job.

This topic is closed to new replies.

Advertisement