Hey all, so I was recently researching different options for developing NES games and found a pretty good option that I don't think many people have heard of:
Millfork - https://karols.github.io/millfork/
I found this project while looking for different programming options for the 6502, since straight assembly is fairly hard to maintain/read and programming in C using cc65 can get pretty messy/complex. I was originally considering making something in NESHLA, but since that project's been abandoned for over a decade I decided to look for other options and stumbled upon Millfork.
I've been making several example programs with it for the past couple of days and so far everything seems good, it's fairly easy to write clean readable code, and the compiler's optimizer seems to work well from what I've seen.
I've made my example programs available here: https://github.com/Garydos/millfork-nes-examples
I plan to make more example programs, eventually working my way up to a basic platformer demo so that I can put the language through its paces. The language itself still seems to be early in its development but all the features I've needed so far have worked without any bugs, and the maker seems to update it fairly regularly. I'd recommend reading through the documentation a bit, checking out the example NES programs, and then look at my pong example to get a better idea of how to implement an actual game in this language if you wanna give it a try.
The biggest caveat with this language that I've found so far is its lack of interoperability with other languages. It has its own built-in assembly syntax that's sort of NESASM-like, but for the most part if you want to use say an audio library like famitone or pently, you'll have to port it yourself. I plan to attempt porting over nesdoug's latest version of famitone to Millfork within the coming days, so I'll report back on how well that went later.
Millfork - https://karols.github.io/millfork/
I found this project while looking for different programming options for the 6502, since straight assembly is fairly hard to maintain/read and programming in C using cc65 can get pretty messy/complex. I was originally considering making something in NESHLA, but since that project's been abandoned for over a decade I decided to look for other options and stumbled upon Millfork.
I've been making several example programs with it for the past couple of days and so far everything seems good, it's fairly easy to write clean readable code, and the compiler's optimizer seems to work well from what I've seen.
I've made my example programs available here: https://github.com/Garydos/millfork-nes-examples
I plan to make more example programs, eventually working my way up to a basic platformer demo so that I can put the language through its paces. The language itself still seems to be early in its development but all the features I've needed so far have worked without any bugs, and the maker seems to update it fairly regularly. I'd recommend reading through the documentation a bit, checking out the example NES programs, and then look at my pong example to get a better idea of how to implement an actual game in this language if you wanna give it a try.
The biggest caveat with this language that I've found so far is its lack of interoperability with other languages. It has its own built-in assembly syntax that's sort of NESASM-like, but for the most part if you want to use say an audio library like famitone or pently, you'll have to port it yourself. I plan to attempt porting over nesdoug's latest version of famitone to Millfork within the coming days, so I'll report back on how well that went later.