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?
↧