Best Starting language to learn for a game?
I'm just a regular old senior in highschool with a dream of developing videogames ever since i started playing them at a young age (this sounds super corny but whatevs) and i thought that better to start now than later. i have little to no experience in developing games other than using the free version of Game Maker for my GD class. I want to start small nothing too big or difficult the only languages i know of are C++ or Python and i need some advice on if these are the easiest or of there are others out there.
Forumers i need your help! if you could send me anything to help me get started or push me in the right direction that would be GREAT! To whomever responds thank you!
0
Posts
Unity is better for 3D and you can insert raw code into it.
They both have a HUGE reddit community, youtube tutorials, and a decent marketplace for code snippets.
if you want "fastest to something good", I would also advocate for GameMaker. I'm an unlikely champion of gamemaker, I think it makes for really good training wheels.
The language that GameMaker uses is called "GML", and it defies direct comparison, but aesthetically it relates a lot to C#.
So C# is a good language to pick up (and Unity uses it)
Unity is good it's just harder and you have to know more things to make something happen
Game Development as a Programmer
If your goal is to get into nitty gritty nuts and bolts game development from the ground up, I'm still a fan of the old XNA Game Studio and C#. This gives you the absolute bare basics and assumes that you want to build your own game engine: player movement, physics, collisions and such will be entirely up to you to create. You will learn a ton about what's involved in making games this way, but you will be limited to making small simple projects to play with the concepts due to the amount of work involved. C++ and DirectX can also work, but were not nearly as user friendly last time I tried.
Game Development as a Gameplay Designer
If your goal is to create something cool looking and modern feeling, a prebuilt engine like Unity or Unreal would be best. These engines will handle all of the code behind level rendering, physics, sound, etc., and let you focus more on game mechanics ideas. You can still create custom scripts in C# or Javascript to perform custom actions (and will still need to here and there), but programming will take a back seat to building and playtesting game ideas.
What tools you use will also depend on where you want to play your game. If you want to make Android mobile games, you need Java. XNA Game Studio and C# will allow you to build and test games on your Xbox 360. Playing on PC will of course give you the widest flexibility, which is probably the best start point before doing anything fancy.
You can't give someone a pirate ship in one game, and then take it back in the next game. It's rude.
I vote GameMaker, too. You want to start easy. Unity and Unreal are not easy (well, they are easy, but not really for the beginner.)
Sorry, I misread the OP as you knew python and C++. Not knew of them. Wasn't grasping why everyone was recommending you ditch it and go to a C# environemnet
C++ is definitely more complicated than C#; but even then the actual engine API you're working with makes a lot of difference, as they may provide very useful utility classes the core language lacks and memory/pointer management. Example: Math, string manipulation, and arrays are things I take for granted from my JS/AS roots, and things that are natively obnoxious (by comparison) in C/C++. Unreal provides utilities that allow for familiar handling of these things.
That said, I don't know Gamemaker, but I'd trust those guys up there.
Unreal lets you look right into its guts if you want to, but at this stage you might not get a lot out of that. As you said, you are aware of the existence of C++, but not actually proficient in it. C++ is an industry standard not because it is such a vibrant and flexible imaginarium, but because you have a lot of control over nitty gritty things that game designers typically don't want to have to worry about, like memory management. If you want to stay the hell away from that, you can just use Blueprints, as others have mentioned.
If what you want to make is interactive fiction, you should totally check out Twine (https://twinery.org/).
Personally I think it's good to learn more than one language, and it's good to learn really different languages. C++ and C# can be quite different, but they aren't as different as, say, C++ and Python. If you find yourself leaning more and more towards coding, Python in particular is a very useful language to know because a variety of development tools (e.g. Maya) make use of it, and you can use Python as an all-purpose glue code for stuff. You can find game engines in Python, LUA, Rust, Haskell, and so on... but the truth is, a game engine is always something you'll find reasons to be bitter about. No game engine is perfect, even when it's made to build a very specific game.
You worry about a language being "easy", but the truth is, when you are learning to code, no language is particularly easy.
Personally my favorite system has been Unity, and for that I'd recommend C#, but it's a full-fledged system with a lot more to it than just programming. Unless you're happy starting off with just colored spheres and blocks or something, there might be lower level systems with more prebuilt stuff in them to work with.
Like old school DOS point and clicks like Monkey Island? Get Adventure Game Studio. It's free!
Gamemaker for 2D, Unity for 3D
Twine (as said above) is great for storyboarding.
Hell get Pico8 and just practice with some serious low res limitations and get used to platforming basics.
They all (I think) have free trials, so just play around. There's no right answer. Successful indie games have been made with all of those engines.
Raw C code takes time though, it's an investment in years.
- If you're interested in gamedev on a team, C# and C++ are the two languages to pick from. Other languages can teach you good coding skills, but these are the two that every big studio uses. Unity and Unreal are the premiere engines for learning, in my opinion!
- Python is commonly used for building tools. All the major 3D art packages support Python scripting, and every studio has a unique art pipeline that needs unique tools. Source: I'm a technical artist at Blizzard and work entirely in Python ;O. I consider it to be the easiest widely-used programming language to pick up *by far*, but it's used more in a supporting role for gamedev.
Machwing is absolutely right in that C# and C++ are the languages to know. There's a thing going on in my area where all the companies will only hire you if you've got prior C#/Unity Dev experience. They'd hire C++ devs, but there's no one around because our budgets are too small. The companies here need people to hit the ground running and can't even afford the few weeks that it would take to train someone on Unity. Now, that might not be relevant to you at the moment, but it would be a nice bonus if after some time playing around you could take on larger projects that interest you without having to put yourself through the stress of learning a new language and engine. Even if the trends have moved on by the time you want to start working, it's unlikely things will have moved far away from C#.
The real reason why I would recommend starting with Unity though is because its supporting resources are excellent. There's extensive documentation about the engine, and good tutorials to coding concepts and how they apply to the making a game - but the gem is Unity Answers, which is like stack exchange for Unity. When I started programming, everytime I stumbled into an issue there usually was a Unity Answer thread that succinctly explained what I was doing wrong, and how to think about the problem so I could design a better solution. The forums, which are separate from Answers also tend to attract a slightly more knowledgeable crowd than those from GameMaker, but at the same time slightly more patient and down-to-earth than the Unreal Engine ones - which is sort of where you want the community to be when you're starting off.
EDIT: That said, if you have an idea for a 2D game you want to try out, GameMaker will get you there the fastest. I'm sort convinced Unity will get you there easier in the *really* long-term, but that's not really a concern for learning and hobby projects!
I don't work in the industry, but I think if you focus on learning to write code you'll find yourself making games to become a better programmer. And if you truly love writing code and actually know what you are doing you can probably do whatever you want.