I have a Game Development degree that touched on a moderate amount of coding but probably not enough to get a good game programming job. I was wondering if freeCodeCamp would be a good use of my time to help reach my goal of being a Game Engineer. I work on games in my spare time (primarily in Unity), but would really like to improve my programming skills to the point of getting a position in the industry. Any advice?
That’s pretty much the general vibe I was getting. I have a decent understanding of coding fundamentals and am looking for a similarly structured learning environment for more advanced concepts. I definitely frequent Unity’s website as well.
I don’t know too much about the backend side of both web and game development. Are they similar? And might I have something to gain from going through the Back End module?
what did your game development degree cover? and how long was it?
if you’re career-oriented I suggest doing job searches like “game programmer jobs” “game programmer intern” in major us hubs like san francisco bay area, nyc, los angeles
It’s not mentioned in the guide, but eventually you want to be using C++ for game development, if you aren’t already, as the vast majority of games (especially modern AAA titles released by the well-known game studios) are written in C++.
It was a Bachelor’s degree that covered a little bit of everything. 3D modeling, game design, level design, some C++, and more C#. If I could go back, I certainly would have gone for a Computer Science degree. My school did have some benefits though. We worked on a lot of group projects and made a lot of games. They did a decent job of networking with local game developers and I met a lot of people. I’m now in QA at a big company nearby and hoping to eventually move up the ranks to either a low-level programming or design position.
Wow, that was a great article! And the programming path looks great too! Unfortunately, I haven’t used too much C++ yet… I have pretty decent C# experience and a Unity Developer Certification (from Unity)… Do you think I should drop Unity and try to dive into C++?? Or just try and do both? I would often hear C#, and Unity, is the future… but most current developers are using C++… So I’m pretty lost on what to focus on.
Thanks for the replies btw, this has been very helpful!
thanks for providing more color to your question - it’s interesting to hear you regret not getting a CS degree
even if you know some c++ and c# I still recommend learning js - the canvas api is low-level enough to practice a lot of game display and movement fundamentals - anything in js is 10 times easier to write and debug than c++ - you can start building a portfolio of web games that anyone with a browser can try out without installing or downloading anything
and if you want to get into multiplayer client-server games adding a server with node.js could not be easier - your js skills would let you write server code much faster than with any other language
It depends on what sort of games you want to end up making. If you’d prefer to make the kind of games that are on the Windows Store (or the Play Store, or the Apple Store), sure you could probably get by with just C# and Unity. But like I said, if you want to work for a game studio that releases AAA titles, you should learn C++ because that’s what most of them use. C# and C++ are similar enough to each other, so it won’t be too hard for you to learn C++ anyway.
However, keep in mind that I’m not a game developer myself, nor have I ever worked in the industry—but I’m familiar with the industry because I used to play games a ton and also followed the industry by reading as much about it as I could back in the day (basically from the mid 90s all the way up to the mid 00s, which some would say was the height of PC gaming, back when titles like Half-Life, Quake 3, and Unreal were big). If games like those are the ones you want to make, you definitely need to learn C++, mostly for two reasons: (1) C++ is still one of the “fastest” programming languages around, and speed is essential for a real-time 3D-rendered game especially, and (2) Most of the engines, SDKs, libraries, & tools that are used to produce those games are probably compatible only with C++ and might not be compatible with C# (OpenGL and DirectX immediately come to mind there). So, not to imply that knowing only C# is a limitation, but as a side-effect that also limits your knowledge of the related tools that might be used by a AAA game studio. If you want to get up to speed on the tools that a AAA game studio would use, then yeah, you may want to consider picking up C++ asap.
It’s mentioned in the P1xt guides but you might want to check out the free CS50 course from harvard on EDx. Although you may have encountered similar CS courses in getting your degree. I’m going through this course myself, I’m on week 4 of 11(it just now started getting pretty hard).
When the original Oculus rift VR developer kits came out I got really interested in making games and 3d models.
My knowledge is very limited on the subject, but I’d suggest checking out Ben Tristem’s courses on Udemy.
I took the blender 3d modelling course and it was great. I have his Unity with C# and Unreal with C++ courses but havent had time for them yet. (btw never pay more than $10 for these courses. Udemy does a kinda creepy thing in that they act like their courses are normally $100+ yet are almost always on sale for 10-30.)
I’ll also admit that when I took the course Udemy was different, more community oriented, and user friendly(More like a literal online classroom in a way).
To say that there are 2 big engines for game programming is a bit shortsighted when there are a ton of different ones that are used (yes the Unity and Unreal engines are both popular but they’re in no way the only ones that are widely used), and the most innovative AAA game studios have developed their own engine, from id Software to Crytek to Valve (id tech 6, CryEngine, and Source, respectively). And there are so many more listed here, many of which have been used by game studios over the years: https://en.wikipedia.org/wiki/List_of_game_engines
C# has a layer of abstraction (the CLR) that C++ doesn’t, and is also JIT compiled, which does give C++ an edge in terms of performance since it doesn’t have that layer of abstraction and isn’t JIT compiled.
You didn’t, but I was merely compelled to point out for the aspiring game developer here some of the other well-known game engines used in the industry by professional game studios, that are written in C++ as opposed to C#, to provide further context on why knowing C++ is especially useful within game development.
I understood what you wrote though and didn’t intend to take anything away from your post that you didn’t write, if that’s what you thought.
Haiii! I think if you intend to “move up the ranks” then it may be better to focus on learning the tools and languages that programmers at the company you are working for are using. Deadlines are deadlines, if you can’t meet deadlines then you won’t get the job.
This may be of interest since you have experience with Unity, particularly if you plan to make your own games on the side, go completely solo, or start your own studio.
I don’t have experience of using that with Unity or with games, but I have been using the database and cloud functions modules for my projects for a couple of weeks now and, apart from the unavoidable cold start (which could potentially be 10-15 seconds), they seem to work well enough. I don’t know if it would work for multiplayer games that require a constant stream of data, but it should work well, at the very least, for games that don’t.
Regarding server-side, learning node.js will certainly teach you to face the problems and demands that you will face in server-side programming, but I wouldnt use node.js as your back-end platform for client-server game.
Please note that I’m typing this mainly by what I’ve learnt by reading other’s people resources/experience and not my own.
I’m not a professional game developer but I’ve always been fascinated by it. So I’ve always read article from developer I respect/follow and made a couple of dumb HTML5 games myself for fun
That said every one of the people I follow always agree that the best way to enter the professional game dev world is by making your own game and gaining experience with those.
Nowadays it’s not as important which language you choose or framework you decide to adopt since many different SDK will compile and make your games available for many different platform regardless of the language it was written with.
So my advice wold be to start picking up a framework and create content with it (you mentioned Unity and C#… go with it ); then you’ll have something real to showcase to potential employer.
That said, I don’t think that FCC is a good practice place since the only game you’ll make will be Tic-Tac-Toe.