Change of career choice - game programming

Started by
7 comments, last by cbrwizard 6 years, 8 months ago

Hi,

A fairly big wall of text here, sorry.

I'm currently at the end of an internship to validate my Computer Science master
degree, specialized in High Performance Computing. After my internship I wanted
to leave France, to get a working experience somewhere in Europe. Unfortunately,
it seems I don't really like the daily routine of this field.

Now I'm wondering what to do with my future. I don't have any meaningful, game
related, portfolio material as I preferred to spend my free time focusing on
school project and some random Linux tinkering. After a quick look and some
reading, it seems working on graphics/physics engine seems like a really
interesting (also complicated) task.

I've gathered a list of recommended books to read and practice on: some C++
books, some game engine/design books, some physics/maths book applied to 2D/3D
computing, design pattern applied to game programming and other general game
making related books. Now I can't just not look for work and focus on self-study
for some years… and I doubt someone would hire with my current set of skills.
I'm still young, I could try to follow another course about game making. I'm
used to almost free university, so I'd prefer to not spend 10k in a private game
making school. But is getting another degree even a good idea?

I've always went from one course to the other, without putting too much thinking
into it. But now I'm kind of lost about what to do, and it's eating me inside :/

 

To give you a bit more background, here is what kind of skills I learned and
practiced during my degree and my internships, sorted by how much I know in the
field, somehow (a bit technical here):

- Shared memory (threads POSIX, OpenMP) and distributed memory (MPI) computing
- Inner mechanisms of past and modern Operating System: processes, threads,
  scheduling, memory management (address spaces, virtual memory, pagination,
  segmentation), study of classical synchronization problems
- Computer architecture and hardware (cache, TLB, pipeline, hardware
  multithreading, …)
- GPU Computing applied to HPC (CUDA, OpenMP, OpenACC, OpenCL)
- Low level optimization techniques (vectorization, intrinsics, cache use,
  profiling, assembly…)
- Non-blocking algorithm: use of hardware atomic primitives to synchronize
  threads without the use of locking mechanism
- Parallel algorithmic (N-body approximation, load-balancing)
- Some basic linear algebra (BLAS, dense and sparse LU facto)

I think most of what I know isn't really what game companies would need anyway.
I'm only really experienced with C but I know some others scripting languages.
Since recently, I'm also learning C++ on my own free time. I've also had some
general courses about software engineering.

 

Any advice, recommendation, question, anything?

Advertisement

Realistically, you have a Computer Science Masters you said, which most / many companies will take instead of relevant work experience, so it's likely that companies would consider you, I mean there are a lot of companies that hire Computer Science BSc grads, so having a masters does put you ahead of them.

In terms of schools / uni courses, the general suggested route is to do a Computer Science degree over a "game development" one, but you already have that ;o

I would suggest reading a few books on your own, maybe spend a couple months unemployed (hey, job search may take that long anyways) and power through some books / tutorials and work on getting some demos built.

You already have a decent qualification for getting hired, so working on a decent portfolio to back it up is really what I suggest

Yup, I don't think there's much to add to the above advice. You already have good C coding skills, and you're already educated in a relevant field, so you need to:

  • pivot that into C++ coding skills;
  • demonstrate that you can write game software.

I might suggest that you grab a copy of SFML and build some tiny 2D games with that. Or SDL, if you want to stick in C for your first prototype. Then you could maybe make a small game with Unreal Engine which again would show some C++ skill but allow you to do something more impressive-looking.

In conjunction with the books you have, you should be fine.

 

4 hours ago, dindon said:

I don't have any meaningful, game
related, portfolio

Then make a game related portfolio.

-- Tom Sloper -- sloperama.com

Thanks for your insight. It helps.

Would you recommend to focus on building one finished game (menu, gameplay, scoring, levels, assets, sound…) or make one (or several) prototypes and focus more on trying to implement some physics (collisions, soft/rigid body dynamics, gravity and shit).

As a new entrant to the industry it's more likely that you'll be getting an all-rounder general role, rather than a specialised physics role or anything equally specialised. So I would personally recommend a project that shows a full range of skills. A physics demo might be good for a 2nd portfolio piece, but bear in mind that most companies will be looking for competence with existing physics engines rather than implementing an entirely new one.

However, for even better guidance, you should look at some job listings online and see exactly what skills they are asking for in the roles and locations you're interested in. That can guide your portfolio work.

Are you actively looking for work in the field? Because that's really a prerequisite here.

Building a portfolio of side projects is nice and gives some evidence about your interest and ability to an employer, but many employers are willing to hire even if you don't have a portfolio of games. 

 

If you are already applying to jobs, then I'd work on whatever it is you want to be doing in a job. Usually entry level programmers come in as general gameplay programmers. That often means scripting basic things like object spawners or generic game objects.

At the entry level the degree means you know enough that you won't break the code base too badly as you learn. The master's degree is roughly equivalent to a few months of work experience. Apply to a bunch of jobs, work with your social network, and you'll discover the portfolio of side projects is not all that important.

I am not an experienced game developer, so take my words with a grain of salt.

But if I were you, I'd start writing game companies, asking to be hired. What do you have to lose? Obviously, you shouldn't write to Senior level positions though.

While waiting for the responses, prepare to be interviewed. That's both creating a small games portfolio and making sure you know the tech details of the language you use, algorithms, etc.

Getting the first job in any industry takes time.

Check out my turn-based multiplayer strategy game Squardak http://squardak.xyz and please leave feedback! [:

This topic is closed to new replies.

Advertisement