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.