Hey guys
To start off, my name is Omar El Atyqy and i’m from Morocco. One of my biggest dreams is to become and follow the path of a game developer. While it may look odd and too early for you, i’m only 14 years old but that didn’t stop me from looking around the web and learn more about the job of a game developer and the qualifications it needs. I must add that i’m more attracted to the coding/scripting (or whatever it’s called) side of the job, so the most of my researches on the wed were about the languages that are the most used in game coding/scripting (still not sure about the correct word) and a good game developer should master .
The other thing is, while looking around the web, i learned that a game can be coded by hand (writing your code from the beginning till the end) or using a game engine that wall simplify the task, and while looking at some comparisons between the most popular “game engines” (i’m putting it between quotes because i might have a wrong idea about them), i found and fell in love (well … not literally ) with unity and decided that, if i’m gonna use a “game engine” for my (future) projects, it should be it
So without further talking, here are the questions :
What are the languages that a game developer must know and master ?
What are the languages that a game developer using Unity must know and master ?
From the 2 first questions (that sounds more like a test than anything else :p), what is the order to learn these languages ?
And finally, can you give some courses to learn those languages (that contains exercises and everything needed for a good learning) ?
So yeah, these are the questions i need answers to and i hope they weren’t that dumb and sorry if my text contains a lot of grammar/expression mistakes, but like i said, i’m Moroccan and English is my third language (But i’m pretty sure that it will help me the most in term of the path i had choosen ;))
Don’t focus on mastering a language, focus on mastering programming. You will change languages through the course of your career, but any concepts you’ve learned will carry over from one language to the next.
Choosing Unity as a lone developer is a great idea, probably the best. I have tried a lot of game engines as a single developer, and let me tell you, Unity does it the best. The interface is clean and easy to navigate and the component-based approach to scene management is bar none the best approach, because its so much easier to manage than other systems. With that said, let me hit those numbered points:
1 - Most game engines use C++, but that language is very obtrusive, difficult to master and so easy to introduce system-breaking code into your project. Some use Java, some use Python, but if you are using Unity, see #2.
2 - For Unity, the best to learn is C#, as not only is it a cleaner to read language than all the others (in my opinion), it is also backed by the entire .NET library, so very powerful.
3 - For learning, I suggest looking up thenewboston or BurgZergArcade on YouTube as well as just jumping into the tutorials on the Unity site itself.
Hope this helps, and welcome to the frustrating and very rewarding field of game development.
A quick search would have revealed that Unity supports C# and UnityScript/JavaScript. A little more searching would reveal that C# is typically considered the better choice.
Without mastery of google you will get nowhere as a programmer.
Well, if you actually read the whole message, including the first question, you would have understood that i’m looking also for languages that are used by all the game developers, using a game engine or not
Games have been written in practically every programming language, but if you’re asking for a universal programming language, one that has been used by every game developer, then you’re going to be disappointed. There are none.
While some languages such as C++ are highly popular, they are by no means universally used.
C (its a good foundation language), because if you understand C you will understand practically every other language or will understand a new language very quickly. Object oriented language for sure would be Java, after that its easy to understand all object oriented languages.
Sure if you are doing a comp sci degree. If you want to learn programming for its own sake, then starting with C isn’t a bad idea. Heck, start off with drawing out binary logic gates.
However if you want to make games, I’d suggest starting with the language supported by the engine. That would be C# for Unity and C++/blueprints for Unreal. Leave the low level stuff to the specialists building the engine.
I’d recommend starting with Assembler. It’s very straightforward & easy to code in and yet it gets you a real understanding of what is actually going on later when you move to higher level languages. You’ll have a much better understanding of what is going on when you use something like a List for example. Also, it is a great way to get your brain thinking the right way from the beginning. For example, you can certainly do test driven development in Assembly language although it is probably not common.
If Assembler is too low then get into something like C or a good old BASIC language (maybe QBasic). If you absolutely want to use a high level language such as C# then be sure you do some research on data structures and algorithms. Then spend some time writing your own code experiments using what you found in your research. Yes, it is true a lot of this stuff is built-in these days and I personally think people are missing out on attaining a deep understanding of the fundamentals as a result.
This is all for becoming a great programmer. If your interest is simply in making games then forget all of that and just get to work in Unity and C#, Gamemaker Studio or whatever.
It doesn’t matter. Learn any language to get the fundamental programming skills. A “C-style” language will be most immediately transferrable. From there, adapt to whatever your development environment requires of you. Once you’re fluent in three or four languages you’ll be able to read just about any, and pick up writing them pretty easily (as little as hours for some).
What’s wrong with Java? We are going to learn in next year in our school (And I already know a lot :P) and you are saying its a miserable language! BTW I never learnt Java but I can easily write many programs in it
Just took hardly an hour to understand the difference… So I think it can be vices versa too. Learn any one and you can easily learn another…
BTW c++ scripts can be compiled into DLL or as plugin to run with unity I guess.