By

nes-starter-kit: C starter kit for NES games

I’ve been pretty quiet about game dev for a while, but that doesn’t mean it was forgotten. Since I went to MAGFest this year, I’ve been kind of obsessed with the idea of making retro development easier. The people I met made me realize that a lot of people want to get started, but aren’t sure how. While there are a lot of good options out there already, I realized there just might be a space for a code-based starter kit.

So, I made one!

nes starter kit

nes-starter-kit is an attempt to make NES homebrew more accessible. It is presented as an intentionally short zelda-esque NES game, combined with a guide to update/change/replace every part of it. (Click above to play the game!) All changes can be done in C – no lower-level coding is required.
* The game uses neslib and some custom extensions written in 6502 assembly, which should cover your needs without modification. If you want to tweak these or write some code in assembly, there is some guidance in the 5th section for this. 

This is still very much a work-in-progress. The game is functional – it has collisions, enemies, and a way to win/lose. There are plenty of features that could be added, and I have a couple queued up, but I want to leave a lot up to creators. I do have some concerns about performance – I am preferring readability and easy editing over everything else. So far I haven’t run into any major issues, but I am worried other developers might. I am also not sure how useful it is with NESMaker on the horizon.

The guide is broken into 5 sections, and is about 25% complete. My current plan is to focus on this for a while, sneaking in some new code changes when I get tired of writing.

Anyway, everything’s available on github: click here!

There’s also a thread about it on NesDev here, if you’d like to discuss!

Let me know what you think if you decide to check it out! Is this something you would use?
Github PRs/issues/etc also always welcome.

Have fun!

Leave a Reply

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