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 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.
The thing can be used to build a very simple, basic game without much code. However, the included guide walks you through adding a lot of features, and also hopefully gives enough guidance to come up with your own ideas!
- Keeps things simple; nothing beyond basic programming knowledge is needed (Can you get through the first few chapters of a C tutorial? If so, I want this to work for you!)
- No restrictions on music - anything you create in Famitracker should work
- Optional IDE integration (VS Code) - syntax highlighting for you code, and a key combination to build and run your game
- Works on NES console; compatible with PowerPak and INL MMC1 cartridges
- Use it for whatever you want: all code is MIT licensed, and graphics/music/sounds are Public Domain. (This means you can freely use this for anything, including commercial products)
- Some chapters probably still assume too much technical knowledge (If you run into problems, let me know!)
- Engine performance could get slow when features are added. I don't know if I've quite found the balance between performance and ease-of-use yet.
- Uses an older version of cc65, other tools. All are provided for download, so it should work consistently at least
- Map editing in Tiled is mildly annoying due to limitations with layers
- Versioning not quite figured out yet -- if something weird happens when you update the code off master, try redownloading the tool zip. (I'm trying to get better!)
- It's not NESMaker; some code is still required
The guide is broken into 5 sections - the first one is an introduction, and the rest are meant to be read as needed.
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.
nes-starter-kit on Github