Choosing an NES Programming Language

This topic can be nuanced, and it can be impacted by factors like existing programming experience, but I want to try and give you the short answer.

There is no wrong answer to choosing a programming language to make NES games.

I don’t mean that in the “everyone is a winner”-platitude kind of way. I mean it literally. You can make amazing, successful NES games with any of languages that can target the NES.

Often though, the question comes down to this:

“Should I use Assembly or C?”

Ultimately it doesn’t matter. Choose what interests you the most. You are not stuck once you make a choice. People often write NES games with a mix of C and Assembly, and that ratio may evolve over time.

Assembly has less to learn (it is a “simpler” language with only a handful of instructions), but that simplicity means you need to do a lot more yourself (there is no compiler to figure out what your intentions were).

C on the other hand is a relatively large and complex language, but with that comes a lot of help from the compiler. The cost of that help is in run-time performance (your game will run slower), as the compiled assembly is more “general purpose” than what you would get with something that you wrote by hand in assembly. It’s worth noting that you will likely need to look at (and even write) some assembly when using C, because you will probably be using some “helper libraries” written in assembly.

But both have been used to ship popular NES homebrew games. Here are a few of each, just to show that what I am saying is objectively true.

Assembly

Alwa’s Awakening
Lizard
Micro Mages

C

Jay and Silent Bob: Mall Brawl
Nebs ‘n Debs
Witch n’ Wiz

So when it comes down to the question of “should I use C or assembly”, there is no wrong answer and your answer is not final! The most import thing is that you choose something and get started!


If you found this helpful, you might enjoy this article I wrote covering a similar question: How to Start Making NES Games

2 thoughts on “Choosing an NES Programming Language

  1. Is any of those C-coded NES games open-source, by the way ? The best way to help someone to pick the language they’ll use for a game might be to have a look at other games made in that language.

Leave a Reply

Your email address will not be published. Required fields are marked *