2 answers

What is currently the best programming language for designing videogames?

Updated Viewed 1672 times

I'm in high school and really interested in game design. I'm just a little curious to know what language is the best or most used. #programming #video-games #computer-programming

2 answers

Eric’s Answer

Updated

No one language is "best," to start with. Trying to get people to pin down which one is best will easily lead you into useless arguments.

There are languages that are good for certain things, but even "videogames" is broad enough that there are multiple possible answers.

If you want to make Android apps, use Java (very high-performance games use C/C++, but I wouldn't recommend starting with that, it is much harder).

If you want to make iOS apps, use Objective C or Swift.

If you want to make Web games, which may be able to run on Android and iOS as well as desktop browsers, you'll have to use HTML for the layout, and the language powering it would probably be JavaScript (you might be able to use Dart, but it's newer and there's probably more help around on the Internet for JavaScript)

If you want to make games that run on desktop or laptop computers, then you have a lot more options. Many games are written in C/C++, though they are complicated. Python is an option, with the library pygame (though it is getting older and I'm not sure if it still a good option).

I haven't done any programming for consoles like the XBox or PlayStation series, but I believe they often use variations on C/C++.

My personal favorite at the moment is writing Web games with HTML and JavaScript. While they are slower than "native" games (the ones using languages for their specific targets, like Java for Android), they have a reasonable chance of running on a larger number of devices. In particular, being able to write and test out your game on a desktop computer, and then show it off on smartphones and tablets, is really cool (though you have to make sure the controls adapt to a touch screen instead of keyboard and mouse).

In addition to choosing a language, you will have to figure out how you are going to actually write the pieces of the game. This usually involves one or more "libraries," which are pieces of code other people have written that give you tools to do important things like draw pictures on the screen or advance the player from one level to the next. Each language will have its own sets of libraries, so you'll have to find ones that do what you want.

Sometimes libraries are called "frameworks", that specify what they are for. So, when I want to make a Web game, I look for JavaScript game frameworks. It is valuable, as you learn over time, to learn the basics, and how you would do things like draw individual pixels to the screen, how to use static pixels to create the illusion of movement, and so on, and a framework can hide this from you, so do be careful with them. Still, for any large-scale game, you probably won't want to write all of the logic yourself, so these come in very handy.

If you're interested in JavaScript for games, I recommend starting, depending on your programming level, with codeacademy.com as an introduction, and the Mozilla Developer Network, developer.mozilla.com, to learn enough HTML (HTML5, to be specific), CSS, and JavaScript so you can start to search the Web for game writing tutorials and pick out ones that you like.

Updated
Well said. To reinforce what you said and to provide my own thoughts, I just want to say that learning programming languages is no where near as important as learning programming concepts. I would highly recommend starting with a user friendly language and using that start learning programming concepts. You don't need to worry about picking up the best language right away. Eventually you can learn other languages and pretty soon you'll realize that you can pick up any language you want relatively quickly. So learning the right language is not as important. Coding concepts, however, take a lifetime to master and it is best to start learning those early so that you can write clean and efficient code.
Updated
Thank you for also answering my question!

Mike’s Answer

Updated

To echo Eric's point, there is no end all best language to use. Each language has their pros and cons and a lot of the time you are restricted to using a specific language for a specific platform like Java on Android and Objective-C on iOS.

One trend I see happening in the games industry at least on mobile, is the use of languages that can be deployed on many platforms. Arguably the most popular tool for this right now is Unity (https://unity3d.com/unity). It is free to download and play with, and it is incredibly powerful. Most importantly it can be deployed to a ridiculous amount of platforms; iOS, Android, Xbox, PS3, PS4, Oculus Rift. I recommend any aspiring game developer with a basic understanding of programming to download it and play around.