Advertisement

10+ years software engineer wanting to step into game development

Started by December 28, 2023 10:30 PM
6 comments, last by qwexsugare 11 months, 3 weeks ago

Hi guys, i wanted to ask you, i've been a software engineer for 10+ years, did BE (C#, Java, Node) and now iOS (Objective C, C++, Swift) along with some Android (Java, kotlin).

I'm interested in jumping to game development since i find my current line of work pretty stale and boring, and i've always had passion for gaming, but i really don't like/have patience for UI stuff such as design (Obviously in mobile we have to do UI, still not a fan)

What should i do/learn to join a gaming company?

Is it possible to do something that has minimum to no design in game development?

Thanks in advance.

welp i just noticed i messed up the section, im sorry :D

Advertisement

There are two general classes of SWE which you might fall into, depending on your strengths.

  • There are a lot of people using Unity game engine where C# is the main language. If you learn Unity well and can write decent C# this would be a decent starting point to work on gameplay-related code. The downside is that you will be tied to a specific engine which may limit opportunities in the future (though Unity is popular now).
  • The other class of SWE would be if you have strong low-level C++ skills. This would make you more suited to engine programming, though you would need to have really strong skills and a demonstrated track record of working on engine systems. Can you optimize code down to nearly bare metal level with SIMD and good cache access patterns, etc.? Do you have a good understanding of how the compiler works so that you can write more optimal code? Can you read assembly to check that the generated code is efficient? Can you do it all while producing clean readable maintainable code? This type of SWE is harder to find and would probably result in higher pay and more opportunities (e.g. you can work on any engine including custom or Unreal).
  • There are further specializations of the above two general classes. You could specialize in graphics programming, in which case you would also need to know how to write shaders and work with the GPU (and probably also know C++ as well).

Koison said:
welp i just noticed i messed up the section, im sorry :D

No problem.

Koison said:
What should i do/learn to join a gaming company?

Thread moved to Game Career Development. Check out other threads in that forum. Also see FAQ 41, about how to switch into games.

-- Tom Sloper -- sloperama.com

Tom Sloper said:
Thread moved to Game Career Development. Check out other threads in that forum. Also see FAQ 41, about how to switch into games.

Aressera said:

There are two general classes of SWE which you might fall into, depending on your strengths.

  • There are a lot of people using Unity game engine where C# is the main language. If you learn Unity well and can write decent C# this would be a decent starting point to work on gameplay-related code. The downside is that you will be tied to a specific engine which may limit opportunities in the future (though Unity is popular now).
  • The other class of SWE would be if you have strong low-level C++ skills. This would make you more suited to engine programming, though you would need to have really strong skills and a demonstrated track record of working on engine systems. Can you optimize code down to nearly bare metal level with SIMD and good cache access patterns, etc.? Do you have a good understanding of how the compiler works so that you can write more optimal code? Can you read assembly to check that the generated code is efficient? Can you do it all while producing clean readable maintainable code? This type of SWE is harder to find and would probably result in higher pay and more opportunities (e.g. you can work on any engine including custom or Unreal).
  • There are further specializations of the above two general classes. You could specialize in graphics programming, in which case you would also need to know how to write shaders and work with the GPU (and probably also know C++ as well).

Thanks for your response!

So far i know unity is C#, which makes it immediately attractive to me, since it was my first love, i can code in C# in my dreams. But i'm not sure if my knowledge will still be useful, i mean, i'm sure stuff like SOLID and design patterns will work, but how about architectural patterns? How about the programming paradigms?

I do share what you say, maybe i don't want to be tied to only one… Framework? Engine? Are the engines widly different? If i pick up Unity, what do you think is the best way to start in game programming? There's plenty of new stuff to consider, multiplayer (Im guessing sockets? Sessions?), event triggers, so much stuff.

The architecture and structure patterns will be there in larger existing projects. In Unity if you are working on a major project like Hearthstone or Valheim then you will experience the patterns.

In hobby projects the design and structure ranges from good to terrible to non-existent. It depends on the others on the project and their architectural discipline.

For raw sockets, that's been a bad idea for decades. Rely on better libraries rather than re-inventing the wheel for encrypted sessions and compressed encoding, such as Steamworks that does much of it automatically for you. For your own learning it will be fine to build directly yourself, in the commercial world that is a big liability.

Seconding the link from Tom earlier, his site describes the process. The book “What Color is Your Parachute” (any recent annual update) is also a strong book with quite a lot about career changes.

Advertisement

I recommend trying to get a job as an online (backend) engineer at a game company as it sounds you already have experience with that. Once inside, you can learn about the game side of it over time.

This topic is closed to new replies.

Advertisement