Download

Question about programmers in the game industry and some good practices

Hello!

I wanna ask some questions about the position of programmers in the game industry, besides some good practices related do UI and widgets.

I’m graduated in CS and, for most of my professional life, I have worked as an standard software engineer , mostly with Java and C#, but I have an intermediate level when the subject is C++; I don’t know a bunch of advanced stuff, but, once presented to an topic, I learn relatively fast.

But I graduated recently in my Game Design course, and I’m a bit insecure about how good I must be as a programmer to enter the game industry as an junior developer.

You see, as an standard developer, one thing that I have learned in my career is that “no developer knows everything about a language, API, framework, etc.” (there is some exceptions…). So, how good you guys were when you entered in the game industry? What is the criteria to enter, besides good maths, relatively good programming skills,…?

Also, regarding to UI and widgets, I wanna ask if its a good practice to leave AHUD responsible to the management of menus (UMG), adding (in the BeginPlay())and removing (in the EndPlay()) them, changing some features, etc. while the PlayerController remains responsible to process the player inputs, calling the current HUD when necessary.

Any feedback will be greatly apreciated, because they will show me how much I need to learn, if I want to be a good game programmer/to enter in the game industry.

:slight_smile:

There are two kinds of answers to the question above. The friendly answer is: don’t sweat prior C++ knowledge, just follow recommended Udemy C++ courses (search Looman to get started). Then take apart some sample C++ projects from Epic (shooter project etc). Then go from there and get hold of VAX / Re-Sharper and start dissecting source. As the answers are all ‘in there’, as opposed to the docs. Plus there’s a Community wiki that will help too.

The other less-friendly answer is, while no developer knows everything, the danger of working with an API as big as UE, is that it may actually be the most humbling experience of your life! For example, there are lots of smart C++ coders around. But which other fields have such a clear-cut gap between the gods-of-code versus the worker bees, versus all the rest! … To add to that, as a UE4 programmer you will regularly be tasked by Blueprints designers with doing the impossible and taking their Blueprint spaghetti hell to a whole other level. That means fixing or extending parts of the engine such as networking-multiplayer / physics / root-motion-animation / AI-tasks / landscapes & rendering / quats and other complex math, all with their own complex assumptions and dependencies and quirks! In that sense, game dev is different to other tech work, even if you’re a senior C++ dev working on large code bases. What makes it different is that game dev is just unlike anything else. So if you’re not already deeply involved in game work, its going to be a challenge even to omnipotent programmers. The networking side alone is a fastidioso PITA, and as hinted already, Blueprints clients / bosses will expect you to simply ‘fix’ every single engine issue with multiplayer / physics / animation / AI / landscape-terrain / rotation…

In that sense, there’s a massive gap between Unreal and Unity - which lacks source. So, for many devs, UE game programming will present the hardest challenge of their career, outside of working in a hardcore area of engineering or science. Basically the Unreal API is 2x -10x times harder than other engines. So its best to live and breath this stuff night and day. Even with that, the pay often doesn’t match the workload unfortunately… Overall, It’d help to befriend devs with engine contributor badges, as you’ll quickly learn where you rank… Also, UI is often best left to BP… BTW: Since 2017, the UE4 forums are on life-support, so you may get more replies on reddit / discord. In the meantime, this comment sums up Unreal… Good luck!

thank you for this insight into the professional UE world.
Best regards from a “hobbyist”

I’ve been in the industry (AAA) for 15+ years now, when I got in I had a BS in CS and still made a lot of silly mistakes. But what I was always told, and what I’ve come to find out as I hire junior engineers, is that attitude is everything. Anything else can be taught.

I can’t tell you how many candidates I’ve had to reject because they either:
A.) Didn’t work well in a team ( “I just like to be left alone to do my work.” / “Why do I need to talk with Art and Design? They should listen to what we tell them.” )
B.) Were super snarky / overconfident. ( “Why do I need to know how to write strlen? It’s already done.” / “Not being able to use auto is stupid.” )

Know your data structures (List, Array, Map, Hash Tables, etc) and the pros/cons of each.
Know the general flow of how computers work (cache, branch prediction, memory allocators, threading + sync primitives, etc).
Be kind and always willing to learn new things, challenge your own assumptions of what “good code” is, and, most importantly, be a team player.

This is indeed a great insight! About the expected tasks, I knew that they are required. And this is kind scary, because no one really expects to modify/extends a game engine like UE in their first job in the industry.

And yes, I know, these forums are dying slowly, and reddit is a more active place to make questions and get answers.

ThanI you for your great answer, @EntrpriseCostumr! :slight_smile:

@ExtraLifeMatt

Thanks for your answer : )

You see, I have a good base in CS, and more specifically, computer architecture. Of course, as an software engineer that worked with “mundane” tasks over the years, you forget a little about one thing or another. But nothing that can’t be remembered.

I know a person who works for the Saber Interactive, more specifically in the office located in the city of Porto, Portugal. Besides the fact that he’s a level designer/environment artist, he have told me that his bosses and coworkers help each other continously and they approve the spirit of commitment and learning coming from the less experienced workers.

Also, about the attitude, what you told here is an issue that I have watched between my peers: people who doesn’t know how the game development process works are more biased to do these mistakes. You see, besides the fact that I’m a coder, I love game design too, so I have an insight about how to act inside a game project.

:slight_smile: