Jobs for specialists in maths/physics?
Your best bet may be to check research papers on game development and apply to the few companies that produce the most indicating they value research in those fields. A big backing in mathematic is likely to be more useful at unreal researching new ways to simulate light than coding yet another small 2D game if you really want to use your degree to it's best.
When dealing with physics most stuff is C++ because they want to squeeze out every bit of performance, so that should probably also be your goal.
Physics and graphics are general speaking the most math heavy areas of the game, the rest involve more abstract logic than pure math. If I were you I would start learning C++ to be honest, if you know a bit of C# this is going to be easier for you. The problem you will run into with C++ mostly is resource management (memory and such), pointer/references.
The games industry requires you to be a decent coder next to your math skills, having great math skills but no implementation skills will make it unlikely that you find a job in the industry.
Worked on titles: CMR:DiRT2, DiRT 3, DiRT: Showdown, GRID 2, theHunter, theHunter: Primal, Mad Max, Watch Dogs: Legion
What qualifies as a decent coder? I have done lots of programming, but most of it using scientific tools (Mathematica, Matlab) and not in the object oriented framework. In Unity / C#, I made this game. Is this a start for an entry job or do I have to work on my programming some more?
Also, at the risk of opening a heated discussion, is C# widely regarded as insufficient for a coding position?
My degree is in maths, and it's a PhD degree.
That is overkill for most game development jobs. A bachelors degree is typical, masters is uncommon but reasonable.
At various jobs we've hired PhD grads before, and they tended to be more theoretical than practical, all the ones I know of didn't last six months. The reason why is:
What qualifies as a decent coder? I have done lots of programming, but most of it using scientific tools (Mathematica, Matlab) and not in the object oriented framework.
While you may be comfortable in Matlab, you aren't shipping stuff in matlab.
There are some engine side tasks that occasionally require advanced math. There are some graphics routines that occasionally require advanced math, but typically you use the more advanced methods in order to simplify a large number of smaller steps. If you can merge three or four passes through the data into a more complex single pass, you can often see large performance gains.
The majority of most game development comes in general gameplay engineering, and that is all about extremely simple, direct, iterative solutions. Usually this only requires basic statistics and algebra; event happens at a designer-adjusted Gaussian distribution, or growth rate is x% per second.
perhaps a consultant for physics or developer for games with great weight on simulation?
Unlikely, but possible. Most game physics is a rough approximation of real life, because real life is hard to get right. It is generally easier to make a simplified system with a small number of variables rather than actual real-world physics. A small number of tools use actual real-world physics, so you might be able to find some of those jobs, if you are also skilled at writing code in C++, the language of game engines.
is C# widely regarded as insufficient for a coding position?
C# is used in many games for game object scripting. This is where your specialized math skills are least likely to be useful. The people who write these systems do rely on some math, typically pulling heavily on linear algebra, statistics, and trig, but not so much what you describe.
Being able to do math is one piece of software development. You must know how to encode the math in a way the computer is able to do all the work efficiently. Just because YOU know how to do it does not mean you have the skills to tell a computer how to do it efficiently.
There are some jobs like that in the industry, but they aren't common. Look for physics engine teams primarily.
yes like others said C++ will give you an advantage
Maths and Physics are very powerful skills for game development, and if you can combine it with some C++ programming skills, you will be highly sought after.
However from the the tone of your post though i sense you lack one other essential thing .... Passion, passion for real games. It has to come from the heart
Otherwise without passion - with your skills-set there might be the tendency for you to over-engineer things
can't help being grumpy...
Just need to let some steam out, so my head doesn't explode...
Thanks guys,
this is really interesting and some really valuable advice. If I were to try and distil what has been said, it would be that I might look into very low level applications, like writing engines, which of course makes C++ necessary because optimisation is key here.
Perhaps this is not quite what I have in mind. I consider myself more of a creative type. I would not get so much satisfaction writing optimal code for somebody else's vision, I would prefer to be the guy taking part in shaping the vision and use middleware for low level stuff. As a hobby during my PhD I made a few games in Unity engine, which (as frob pointed out) is only scripting. I would rather see my PhD education as a bonus because it gives me very interesting ideas to draw from that 'regular' coders will not easily have access to.
I think my dream job would be making small or reasonably-scoped games with a certain purpose, like for the purpose of training, or (my favourite) education. For example, to get people excited about science. Essentially, this is what I've been already doing - but I've been doing it as a hobby and it has not impacted people yet. But being an Indie, for that matter, is risky and difficult, and on top of that my audience may not be core gamers but people in education, for example.
I am sorry that this is a rant and deviates slightly from my initial post, but hoping that someone is reading and may throw an idea or thought at me.
-- Tom Sloper -- sloperama.com