hey guys.
i currently can code in unity script, very well in java, and in C++. i plan on becoming a professional game developer when i am older and i don’t know what programming language to go with. from what i have read, C++ is the way to go for scripting and coding games, but unity dosent except C++. when im older, im going to be using a different game engine. but what i really want to know is it possible for me to learn C++ and get really good at it while staying really good at Java(because i like both of them) i don’t care much for unity script…unity isn’t really the engine i want to use to make PROFESSIONAL 3D games and sell them. please answer my question. ![]()
Why not? If you know Java, then use C#; it’s quite similar.
For coding game engines, yes. For scripting, no.
–Eric
c++ is a good language to know - its pretty much the most pain in the ass language to get your head around, but if you can master c++ you can pretty much master any language
as long as you have a general knowledge of java, people know good programmers have a good ability to program, not necissarily language specific
yes, but do you think its possible for me to know both languages and be them?
Sure it’s possible.
–Eric
Alright. Now the last question remains:
C# or C++? Which one will be the best for being a professional game developer?
Don’t get too hung up on which programming/scripting language to learn first; once you’ve mastered one, learning a second, third or fourth is a breeze. You absolutely can be proficient at multiple languages simultaneously, and nothing less would be expected of a professional developer. You’ll find the languages used constantly change. Today it’s beneficial to know C# and Lua and ActionScript for game scripting, but tomorrow your employer might require you to learn a completely different language. Understanding the fundamentals of programming is what’s really important.
I may get some serious disagreements here, but personally I don’t think language knowledge matters anywhere near as much as “programming” knowledge. Figuring out the subtleties of each language is not a difficult thing to do if you have an understanding of programming in general. Right now you’re working with Unity, so learn with JavaScript (Unity’s flavour of it) or C# - it really doesn’t matter which one you choose, the important thing is that you’ll be improving your general programming skills and making it that much easier to adapt to other languages in future, if/when it becomes necessary for you to do so.
If you want to program game engines, then C++ is your language. If you want to program gameplay, you´ll probably be programming in a script language, and there are many of them, like Lua, Python, and the ones Unity supports.
Don´t forget that you must know OO, DP and the algorithms used in game programming, like collision test, basic AI, … if you want to be a professional.
geppetto, i agree with you to a degree. Programming knowledge in general will allow you to switch to a new language and pick it up but depending on how you acquired that knowledge. I started off by learning c++ several years back, and though it was hard it was a great decision, because learning c++ gave me a greater understanding of programming in general and made it easy to learn new language (c,php,js,game engines in general). Where as my friend who started at the same time as me but started with VB could not move to a new language so easily because of the way you code with VB. I believe some language such as VB and c# give you bad habits and bad structure if you start off with them making it harder to learn a more logical language like c++.
As for knowing two languages at a time, yes but you must understand you will never know a language completely, even the most experienced programmers use references. So mastering structure of a language first is most important.
Also from experience when learning c++ you will pick up other languages a lot easier for example i never needed to learn php, because i learned c++ several years ago i adapted to js and php without any problem. So with a reference i was able to make use of the language too its full extent right away.
Thanks! I think ive got QUITE a while to take my time to learn those. im only 13 years old ![]()
I run a game development studio, and my guys are expected to work with several languages throughout the course of a project.
Don’t get too hung up about exactly which ones, but just make sure you have a good grounding the fundamentals, such as object-oriented principles, algorithms and data structures (more advanced!) and pointer logic (needed less and less these days).
The language(s) you use will depend exactly on what the project is, and could be different this week from next. For example, some of our developers are working on Unity (C#), others Flash (AS3) and others on iPhone/iPad (Objective C). And then we also do some PHP/MySQL etc to develop web components for high scores etc!
You won’t be expected to know ALL the languages when you start. You just need to show a good grounding, and the ability to learn new things (which you are showing here by asking all the right things).
Good luck.
[edit]
p.s. - oh yeah, I forgot to say that if all the persons experience is in ‘scripting’ or ‘loose’ languages (especially VB), I would probably not hire that person! I look for a good grounding in at least one of the C languages (C++, C#, Obj-C) or something like Java or AS3.
No disagreement, because that’s generally true, particularly for C-ish languages (Javascript, Java, C#, C, etc.), which is mostly what you’d be encountering commonly.
–Eric
Let me just add my little bit.
I am not yet a professional programmer (only part-time jobs), but I have been programming since I was 12, and I am now 22.
Right now I know somewhere around 20 different languages and I bet I could program something in a completely new language just by looking at a small previously made script or language definition.
And only right now I am starting to learn C++, C++ is unique in that in itself it has tons of different flavors depending on your deployment environment (say default C++ with normal pointers and C++/CLI with managed pointers). It helped alot to know already so many different languages, because then, learning C++ kinda makes all the glue from all languages I have learn thus far.
You start to know why stuff works the way they do, namely variable existence (create, live and die, from New to assignment to nullptr).
I suggest you start by learning something with a C syntax flavor, brackets/variable type before variable name/function return types before the function name/void return types, etc. It was a pain to move from visual basic to C# back in 2002 because I didnt know anything about the way stuff worked. It was very nice from visual basic to visual basic .net tho, it was a nice introdution to the way .net uses events and all that, and then kinda of a shock to C#.
From there, after knowing C# and visual basic.net, it was a breeze to learn everything else, php-python-javascript-java(learn first year of colledge)-pascal-delphi(pascal with suggar), etc.
All languages basically work the same, but if you already know Java (dont mix up with javascript, not same thing), then you will easily pick up on C# and from there maybe C++. Right now, I am learning C++ and I feel theres a inherent beauty to it because it is so much low level than the other ones and you feel like you can bend the rules with it, while still having a C-like syntax that Assembly doesnt have (it is more low level than C++, thus more flexible, but, its just a pain!!! probably good to know few things about it, but dont plan on programming with it if you want to keep your sanity)
Well, this turn out long, but I hope it helps not only you but other future programmers ![]()
PS: if you feel bored about programming and programming games just feels daunting, I suggest you try and build your own bots, start small, like find a web-site game (you know those HTML type games with no fancy stuff) and try and make a bot for it. You will learn alot about Threads, APIs and hopefully FSMs (finite state machines), those will be fundamental to how you think about continously running programs such as games and bots.
PS2: My main language is not English, so, the start of my programming journey enriched by English skills alot, even before learning it at school. If you have trouble in this area, find yourself multiplayer games with alot of different nationality players and talk to them. In my battlefield2 clan, there was recentry a Turkish guy who couldnt say anything in english and still sound right, so he typed all the time, we forced him to start talking, and now (after 2 months) he cant shut up for anything, he still sounds very foreign but, he is now very understandable and very happy because his grades are going up.
Best of luck,
Joao Carlos
c for game engine development
c++ for 3d game development (most engines have to be used with c++)
c# for tools development
A whole bunch of script languages for gameplay, cinematics, exporters, and so on.
learn c or c++ for its the only way to learn what happens in your computer, learn about memory management then u can use languages who hide the memory management from the programmer.