What should a games programmer know?

Started by
6 comments, last by Stroppy Katamari 10 years, 11 months ago

Hi guys,

I'm currently doing a diploma in programming where I am learning ASP.NET MVC 4. I'm familiar with C#, a bit of java, HTML, javascript, and I know some basic software design techniques and patterns. I want to know how well can these skills and knowledge translate to games programming, and what else would I need to know if I want to enter the industry as a games programmer? So, like, what engines I should be familiar with, what languages I should know, algorithms, and anything else you think is necessary to know. Looking forward to your replies :D

Advertisement

Expect to have a game demo portfolio. It speaks much louder than your resume and degree. Of course the programming concepts you are familiar with can be transferred in making a game. Game programming is more about testing one's fundamentals about a graphics library on top of the algorithmic problem solving using the conceptual and fundamental knowledge of the language and following the software engineering principles to maintain and reuse the code-base and planning and project scope.

You should be able to modify and read other people's code.

Since you are familiar with C#, try mixing it with XNA or MonoGame to make a game. Making a game will make you understand the language better and challenge yourself as a programmer.

Expect to have a game demo portfolio. It speaks much louder than your resume and degree. Of course the programming concepts you are familiar with can be transferred in making a game. Game programming is more about testing one's fundamentals about a graphics library on top of the algorithmic problem solving using the conceptual and fundamental knowledge of the language and following the software engineering principles to maintain and reuse the code-base and planning and project scope.

You should be able to modify and read other people's code.

Since you are familiar with C#, try mixing it with XNA or MonoGame to make a game. Making a game will make you understand the language better and challenge yourself as a programmer.

I'm not really too familiar with algorithms, specially those for games. Can you let me know what algorithms I should go and learn? Also, XNA is no longer supported by Microsoft, so should I just familiarize myself with Unity3D since it also supports C#?

When I was first trying to get into the games industry it was pretty much you needed to know C++, C++, C++ oh and a bit more C++ for luck.

Things have massively changed since then in part due to social network games and mobile games. In London at least the demand for C++ coders has dwindled and there is more of a demand for games developers with experience of web technologies. Java, PHP, Ruby, Python, Flash, Unity, Objective C are the main pre requisite languages that recruiters seem to fill my inbox with on a daily basis, with C++ being demoted to just desirable rather than must have.

That isn't to say there isn't still C++ games programming jobs around. If you want to program console games then you need C++. Its just that there a lot more avenues into games han there ever was before.


If you know C# then go ahead and make a game with the free version of Unity. This may be enough to get you a job on its own. A couple of tips: Make a game that you can finish (don't bite off more than you can chew), If you are a coder don't get too hung up over the quality of your art assets(try to stylize your game to suit your art capabilities).

One more thing: if you can try to publish your game somewhere app store, google play, chrome web store or one of the many other app stores around. This will show that you have knowledge of the whole game release cycle.

You aren't really taught how to do "specific algorithms" because all algorithms will be different based on the context. You just end up "self-learning" how to create algorithms - something that comes with just doing general programming.

I think XNA would be a good choice, it is very high level and you will also familiarize yourself more with the visual studio IDE. MonoGame is getting better, I recommend using that aswell.

Also, XNA is no longer supported by Microsoft, so should I just familiarize myself with Unity3D since it also supports C#?

Regardless of whether or not XNA is supported by Microsoft, XNA is still a great learning tool if you know C# but have never really made a game. The programming practice and skills you develop through the use of XNA/MonoGame/whatever will always transfer over, as programming (in its simplest form) is just problem solving.

Also, Unity3D is great, but if you haven't ever made a game, then perhaps you should start off with a simple 2D game in XNA/MonoGame (side note: yes, I understand you can make 2D games in Unity).

Expect to have a game demo portfolio. It speaks much louder than your resume and degree. Of course the programming concepts you are familiar with can be transferred in making a game. Game programming is more about testing one's fundamentals about a graphics library on top of the algorithmic problem solving using the conceptual and fundamental knowledge of the language and following the software engineering principles to maintain and reuse the code-base and planning and project scope.

You should be able to modify and read other people's code.

Since you are familiar with C#, try mixing it with XNA or MonoGame to make a game. Making a game will make you understand the language better and challenge yourself as a programmer.

I'm not really too familiar with algorithms, specially those for games. Can you let me know what algorithms I should go and learn? Also, XNA is no longer supported by Microsoft, so should I just familiarize myself with Unity3D since it also supports C#?

Most of the algorithms you create for (ie: game mechanics) are defined by you. They are not different from what you have been doing in general programming. What you should learn about is data structures and how they work and apply them to your game. Sure, you can use Unity. It is your preference. Play around with it is my best advice for learning game programming.

I'm not really too familiar with algorithms, specially those for games. Can you let me know what algorithms I should go and learn?

Anyone wanting to be a good programmer, not just in games, should know the basic stuff you'd encounter on an introductory "data structures and algorithms" course in a computer science degree. That's enough grounding that you can easily find and make use of more specific stuff when you actually need it.

When you can handle this, you are set.
http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-006-introduction-to-algorithms-fall-2011/

This topic is closed to new replies.

Advertisement