GameDesignDegrees
See the Rankings
Learning to code games

The Best Programming Language for Game Development

The best programming language for game development is the one your engine uses: C++ for Unreal and most large engines, C# for Unity, GML for GameMaker. Here's what each engine uses, the languages for shaders and scripting, which one to learn first for the games you want to make, and the ranked programs whose courses name each language.

Close-up of colorful C++ code on a dark monitor, seen at an angle, with input and output statements for entering two matrices.
On this page
  1. Game Programming Languages in 60 Seconds
  2. Best Programming Language for Game Development, by Engine
  3. What Language Does Unity Use for Games?
  4. What Language Does Unreal Engine Use?
  5. GameMaker Language, Lua and Other Beginner Game Engines
  6. Python, JavaScript and Other Languages on a Game Team
  7. Shader Languages for Game Graphics
  8. Which Game Programming Language to Learn First
  9. Game Development Degrees That Name Their Languages
  10. Game Programming Jobs and Pay
  11. Frequently Asked Questions
  12. Related Pages
  13. Sources

Game Programming Languages in 60 Seconds

  • The engine decides the language. Unity is scripted in C#, Unreal Engine is programmed in C++ and GameMaker has its own language, GML. Pick the engine that fits your games, then learn what it asks of you. Short Answer ›
  • Unity uses C#, a common first language. C# catches many mistakes before the game runs and manages memory for you. Citrus College and DePaul both teach Unity together with C# scripting for beginners. Unity ›
  • Unreal Engine is programmed in C++. C++ gives control over memory and speed, which is why most large engines use it. Unreal also has visual scripting, but engine and performance work happen in C++. Unreal ›
  • Fundamentals matter more than the language. Studios test data structures, memory and 3D math in interviews. Learn one language deeply, finish games with it, and a second language takes weeks instead of years. Where to Start ›
  • 7 ranked programs name their languages. Their own course descriptions name specific languages. 5 of them name C++ and 4 name C#, which matches what studios use. Ask any program which languages its required courses teach. In School ›

Heads up A program that names no language may still teach plenty of code, so ask admissions directly.

The short answer

Best Programming Language for Game Development, by Engine

Game programmers rarely pick a language first. They pick an engine, and the engine decides the language. Unity is scripted in C#. Unreal Engine is programmed in C++, the same language most large commercial engines are written in. GameMaker has its own language, GML. Lighting and materials are written in shader languages no matter which engine you use. So the useful question is not which language is best, but which engine fits the games you want to make, and then what that engine asks of you.

The table lists the languages you'll meet most often in games, what they're used for, and a college course that teaches each one. Each course links to its own page, so you can see how schools actually teach it.

LanguageUsed for in gamesWhereA course that teaches it
C++Engine code, graphics, performance and Unreal Engine gameplayUnreal Engine and most large commercial enginesCity College of New York, Programming in Unreal
C#Gameplay scripting and tools in UnityUnityCitrus College, CS 177 Unity Game Programming I
GMLWhole 2D games, from movement to menusGameMakerNYU Game Center, Introduction to Programming for Games
LuaSmall 2D games and scripting inside larger enginesLÖVE and engines that embed itHarvard, CS50 2D Game Development
GLSL and HLSLShaders: lighting, materials and screen effectsEvery 3D engineNYU ITP, Shader Studio
JavaLearning to program through small visual gamesProcessing and similar teaching toolsNYU Game Center, Introduction to Programming for Games
BlocksA first game with no typingScratchMIT, Scratch
Each course is described on its own college page; follow the link for the full description.

Two languages cover most professional game programming: C++ and C#. If you learn one of them well, you can move to the other in weeks rather than years, because the ideas underneath, such as variables, loops, functions, objects, memory and data structures, are the same. That is the main reason not to worry too much about the choice. The language you learn first matters less than learning it deeply and finishing games with it.

Unity

What Language Does Unity Use for Games?

Unity uses C#. You attach C# scripts to objects in a scene, and the scripts decide how those objects move, react to input, collide and talk to each other. Colleges teach the two together: Citrus College's CS 177 is a first course in Unity game programming taught in C#, and DePaul's introduction to Unity runs from learning the interface to scripting basic behaviors in C#.

C# is a common first language for game development for good reasons. Its rules catch many mistakes before the game runs, it manages memory for you, and the feedback loop is fast: change a script, press play, see the result. It is also a mainstream language outside games, so the skill transfers to business software and apps if you change direction.

What a First Unity Script Does

A typical first script moves a character. It reads the player's input each frame, turns it into a direction, multiplies it by a speed and the time since the last frame, and moves the object by that amount. A second script might detect when the character touches a coin, add to a score and remove the coin. Those two scripts already use most of the ideas a game programmer needs: variables, conditions, functions, events and the game loop that runs every frame. Courses build from there to enemies, menus and saving, one small script at a time.

The trade-off is control. Because C# manages memory for you, it hides some of the low-level performance work that engine programmers do every day. That rarely matters for a student project or a small game, and it is why many programmers start in Unity and C#, then learn C++ when they want engine or graphics work.

Unreal

What Language Does Unreal Engine Use?

Unreal Engine is programmed in C++. City College of New York's Unreal course introduces the engine and C++ for game development together, which is the usual way schools teach it. C++ is the language of most large commercial engines, because it lets programmers control memory and squeeze performance out of the hardware.

Unreal also has node-based visual scripting, where you connect boxes on a graph instead of typing code. Many designers build gameplay that way without writing C++, and many teams mix the two: programmers build systems in C++ and expose them to designers, who wire them together visually. If you want to be a programmer on a large 3D game, though, plan to learn C++. Engine work, rendering, physics and most performance work happen there.

Why C++ Is Harder

C++ asks you to manage more yourself. You decide when memory is reserved and released, and mistakes can crash the game in ways that are hard to trace. The language is also large, with many ways to do the same thing. That difficulty is the point for engine work: the control that makes C++ hard is the control that makes a game run fast on a console or a phone. It is worth learning, but it is easier as a second language than a first.

Learning C++ After C#

Moving from C# to C++ is a common path, and most of what you know carries over: the syntax looks similar, and classes, loops and functions work the same way. The new parts are memory and build tools. In C++ you decide when an object is created and destroyed, you work with pointers and references directly, and you spend more time with the compiler and linker. A good way to make the move is to rebuild a small game you already finished in C#, so the only new thing is the language. Expect the second version to take longer, and to teach you more about how the first one actually worked.

Starting simple

GameMaker Language, Lua and Other Beginner Game Engines

Not every game needs a large engine, and several simpler tools are better places to start.

GameMaker Language (GML) is the scripting language built into GameMaker, an engine made for 2D games. It has a simple syntax for movement, collisions and drawing, and you can finish a small game in days. NYU Game Center's Introduction to Programming for Games moves students from Java in Processing to GameMaker and GML, with a final game in GML.

Lua is a small, fast scripting language. Some engines embed it so designers can script behavior without touching the engine's own code, and the LÖVE framework uses it for complete 2D games. Harvard's CS50 2D course teaches game programming in Lua by rebuilding classic games.

Processing and Java are common in introductory courses because you can draw shapes and move them on screen with very little setup, as in NYU's intro course. Scratch, made at MIT, goes further: its block-based coding interface lets a complete beginner build a game by snapping commands together, with nothing to type.

These tools teach the same ideas as C++ and C#: variables, conditions, loops, events and game state. A game finished in GML or Lua is real practice, and the habits move with you. The how to make a video game guide walks through choosing a first engine and finishing a first project.

The rest of the team

Python, JavaScript and Other Languages on a Game Team

A shipped game contains more code than the game itself. Behind it sit tools, build systems, servers and websites, and those often use different languages from the engine.

  • Python is the usual language for tools and pipelines: scripts that import art, check files, run builds and automate tasks in 3D software. Technical artists and tools programmers write a lot of it, and many testers use it to automate checks.
  • JavaScript and TypeScript run games in a web browser and power the websites, launchers and storefront pages around a game. Some engines export to the web, and small browser games are often written directly in JavaScript.
  • Server languages such as Go, Java or C# run the back end of online games: accounts, matchmaking, high scores and the services that keep a live game running. This work looks much like any web back end.
  • SQL stores and queries data, such as player progress, purchases and the play data a balance team studies after launch.

You don't need these to make your first game, but they explain why game studios hire programmers with many different backgrounds. Tools and online programming are also the easiest game programming jobs to move into from other software work, and out of again if you need to. If you already know Python or JavaScript from another field, you have a head start on those roles.

Graphics

Shader Languages for Game Graphics

Shaders are small programs that run on the graphics card and decide how every surface looks: its color, how it reacts to light, whether it shines, ripples or glows. They are written in shader languages, mainly GLSL and HLSL, which look a lot like C. Every 3D engine uses them, so shaders are the one kind of game code that doesn't depend on which engine you pick.

Shader work is mostly math. NYU ITP's Shader Studio warns students up front that the mathematics will stretch them, and the course focuses on fragment shaders, the kind that color each pixel. DePaul's rendering and graphics programming course covers the rendering pipeline and basic shader creation. Graphics programmers write shaders all day, and technical artists write many of them too, often in node-based shader editors that generate the code.

Choosing

Which Game Programming Language to Learn First

Pick by the games you want to make and the job you want, not by what is popular this year.

  • You have never programmed: start with Scratch or Processing for a few weeks to learn the ideas, then move to C# in Unity or GML in GameMaker.
  • You want to make small 2D or indie games: C# in Unity, or GML in GameMaker. Both let you finish games quickly.
  • You want to work on large 3D games at a studio: C# first if you need early wins, then C++ in Unreal. Studios that build their own engines hire C++ programmers.
  • You want to do graphics: C++ plus a shader language, and plenty of linear algebra.
  • You want to be a designer who prototypes: an engine's visual scripting or C# is enough to test your own ideas.
  • You want to build tools for a team: C# or Python, the usual languages for editors, importers and build scripts.

What Matters More Than the Language

Studios hire programmers on fundamentals, and interviews test them directly: data structures such as arrays, lists and hash tables, how memory works, how fast a piece of code runs and why, and the vector and matrix math behind 3D. A programmer with strong fundamentals picks up a new language quickly. One who knows several languages on the surface struggles in a technical interview. Learn one language deeply, finish games with it, and read other people's code. The game programmer career guide covers the specialties and the math in more detail.

A Learning Order That Works

A sensible first year for someone teaching themselves looks like this. In the first month, learn the basics of one language and engine by following one structured course to the end, rather than sampling several. For the next few months, make three tiny games, each finished: a one-screen game, a game with a win and a loss, and a game with a menu and a saved high score. Then spend time on fundamentals, especially data structures and the vector math behind movement and cameras. Finally, build one larger project in a team, such as a game jam entry, and put the code in a public repository with a short explanation of how it works. By then you will know which direction you want to go, and whether that means staying with your first language or learning C++.

In school

Game Development Degrees That Name Their Languages

Program pages often say "programming" without naming a language. These 7 ranked programs name specific languages in their own course descriptions. 5 of them name C++ and 4 name C#, which matches what studios use. The rank is each program's place in the ranking shown, and each row links to the program's full card.

CollegeLanguages namedRanking
University of Advancing Technology, AZC++, C##15, Best Game Development Degrees
Pennsylvania College of Technology, PAC++#18, Best Game Development Degrees
Neumont College of Computer Science, UTC++, C#, Java#21, Best Game Development Degrees
Shenandoah University, VAC++, C#, Java, Python#22, Best Game Development Degrees
University of Silicon Valley, CAOpenGL#24, Best Game Development Degrees
DigiPen Institute of Technology, WAC++#27, Best Game Development Degrees
Sacred Heart University, CTC##85, Best Game Design Schools
Built from each program's own description in our rankings. A program left off this list may still teach these languages; its description just doesn't name them.

A program that names no language may still teach plenty of code, so ask admissions which languages and engines the core courses use and whether students can choose. The game development degrees ranking lists the programming-heavy programs, and computer science for game development compares that route with a game degree. Our data covers 354 programs at 271 colleges.

Questions to Ask a Program About Languages

When you talk to a program, ask which languages the required courses use and in what order, whether students work in a commercial engine and which one, and whether there are courses in graphics, engine architecture or tools. Ask to see a recent student project with its source code. A program that teaches C++ and data structures early, and lets you use a commercial engine for team projects, prepares you for most programming roles. A program that only teaches visual scripting is better suited to design than to programming, which is fine if design is what you want.

Careers

Game Programming Jobs and Pay

Programmers aren't the only people on a game team who write code. The table shows which languages each role tends to use and the federal pay for the occupation that counts it.

JobCode they writeMedian payCounted under
Game programmerC++ or C#, plus scripting and shader languages$135,980software developers
Technical artistShaders, Python tools and engine scripting$102,030special effects artists and animators
Video game designerScripting and visual scripting for gameplay$104,000web and digital interface designers
Game testerTest scripts and automation, often in Python$104,300software quality assurance analysts and testers
BLS Occupational Employment and Wage Statistics, May 2025, national median for the occupation that counts each job. BLS has no game category, so each figure covers a whole occupation.

Game programmers are counted with software developers at $135,980, and game designers with web and digital interface designers at $104,000. The skills transfer: C++ and C# are both mainstream outside games, which gives a game programmer more options than most game jobs if studio hiring slows. The game programmer salary page has the full pay range and an entry-level estimate.

FAQ

Frequently Asked Questions

What Language Does Unity Use?

Unity uses C#. You write scripts in C# to control how objects behave, respond to input and talk to each other, and Unity runs them inside its engine. College courses teach it that way: Citrus College's first Unity course is taught in C#, and DePaul's introduction covers scripting basic behaviors in C#. C# is a good first language for games because it is strict enough to teach good habits but forgiving enough for beginners. See more on Unity and C#.

What Language Does Unreal Engine Use?

Unreal Engine is programmed in C++. City College of New York's Unreal course, for example, teaches the engine together with C++ for game development. Unreal also has a node-based visual scripting system that many designers use for gameplay without writing C++, but engine work, performance work and most systems programming are in C++. If you want to work on large 3D games, plan to learn C++ eventually. See more on Unreal and C++.

Is C++ or C# Better for Game Development?

Neither is better everywhere. C# is easier to start with and is how you script Unity, which is popular with small teams and students. C++ is harder, but it is the language of Unreal and of most large engines, and it gives you control over memory and speed. Many programmers start with C# to finish games quickly, then learn C++ for engine or graphics work. The fundamentals carry over between them. See which to learn first.

What Is GameMaker Language?

GameMaker Language, or GML, is the scripting language built into the GameMaker engine. It is designed for making 2D games quickly, with simple syntax for movement, collisions and drawing. NYU Game Center's introductory programming course moves students from Java in Processing to GML for their final game. GML is a good way to finish a first game, but you will want C# or C++ later for most studio programming jobs. See beginner languages and engines.

Do Game Designers Need to Learn a Programming Language?

Not always, but it helps. Many designers script gameplay with an engine's visual scripting or a simple language, and designers who can prototype their own ideas are easier to hire. Programmers need a full language such as C++ or C#. Game designers are counted with web and digital interface designers, whose median was $104,000 in BLS May 2025, against $135,980 for software developers, where game programmers are counted. See jobs and pay.

Sources

  1. 1 Citrus College, CS 177 Unity Game Programming I Course titles and descriptions, paraphrased from the page. Accessed .
  2. 2 DePaul University catalog, Game Development (GAM) courses Course titles and descriptions, paraphrased from the page. Accessed .
  3. 3 City College of New York catalog, Programming in Unreal Course titles and descriptions, paraphrased from the page. Accessed .
  4. 4 NYU Game Center, Introduction to Programming for Games Course titles and descriptions, paraphrased from the page. Accessed .
  5. 5 NYU ITP, Shader Studio Course titles and descriptions, paraphrased from the page. Accessed .
  6. 6 Harvard University, CS50 2D Game Development Course titles and descriptions, paraphrased from the page. Accessed .
  7. 7 Scratch, MIT, About Scratch Course titles and descriptions, paraphrased from the page. Accessed .
  8. 8 BLS, Occupational Employment and Wage Statistics, May 2025 National median pay for the occupation that counts each game job. Accessed .

Sponsored

Game Design Programs

Schools pay to appear in these listings. They are separate from our rankings, which no school can pay to change.