It is currently Tue May 22, 2018 8:45 pm

All times are UTC - 7 hours





Post new topic Reply to topic  [ 10 posts ] 

Would you use nes-starter-kit?
Yep 26%  26%  [ 5 ]
Nope - assembly or bust! 16%  16%  [ 3 ]
Nope - NESMaker is more what I'm looking for... 0%  0%  [ 0 ]
Nope - I prefer do things my own way 42%  42%  [ 8 ]
Nope - Some other reason 16%  16%  [ 3 ]
Total votes : 19
Author Message
PostPosted: Thu Apr 26, 2018 9:49 am 
Offline

Joined: Fri Dec 27, 2013 4:28 pm
Posts: 66
I've been playing around with this for a few months, so it's time to get some eyes on it beyond mine, and see if it's actually useful to anyone. (I also put this on NA a few days ago... feel free to comment in either place)

Image

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. 

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.

Features: 
  • 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)

Known Caveats:
  • 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, 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.

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

Have fun!


Last edited by cppchriscpp on Sat May 19, 2018 12:40 pm, edited 1 time in total.

Top
 Profile  
 
PostPosted: Thu Apr 26, 2018 12:25 pm 
Offline
User avatar

Joined: Sat Jan 09, 2016 9:21 pm
Posts: 388
Location: Central Illinois, USA
I think it's awesome that you made this. I imagine most of the people that inhabit this forum will say that we wouldn't use it, because if we're here, chances are we are no longer your target audience. But I can see this being extremely useful for someone wanting an example to get started with.

So I guess my point is, I hope you don't be discouraged by a lot of "I won't use it" responses here, because I love that you made this.

_________________
My games: http://www.bitethechili.com


Top
 Profile  
 
PostPosted: Thu Apr 26, 2018 2:22 pm 
Offline

Joined: Fri Dec 27, 2013 4:28 pm
Posts: 66
Hey!

Thanks for the feedback - that's a good point. I guess with NESDev I'm not really expecting much in terms of "I'd use this" -- I almost didn't post here, but I think there's more of a chance that people here will look at it with a critical eye, and point out potential problems. That's valuable too!

I put the poll there in hopes it might catch people who are too anxious/lazy/whatever to post, but are still thinking about using it. Any little indication that people actually want to use this will encourage me to carry on. I'll admit, I'm really afraid this doesn't have a target audience. (And I have been since the start)


Top
 Profile  
 
PostPosted: Thu Apr 26, 2018 2:53 pm 
Offline
User avatar

Joined: Sun Sep 19, 2004 9:28 pm
Posts: 3373
Location: Mountain View, CA, USA
I support your project, despite being fairly against using C for this platform. I'm not going to de-rail the thread about that (it's irrelevant); my point is that just because *I* wouldn't use it doesn't mean it doesn't have benefits for others. There is a definite use for what you've written and shared. It's a positive thing and provides a good base for people who at least want to get some basics down in a "less cryptic" language than assembly. Expanding:

We get people here every couple months who want to do NES stuff in C and not assembly (though I tend to remind them: you're going to have to deal with 6502 eventually, esp. when debugging, so avoiding it entirely is unlikely). So the fact your project is predominantly in C (barring the deeper bits, which you covered already in a smaller font) should make that process easier for those folks.

Kudos!


Top
 Profile  
 
PostPosted: Fri Apr 27, 2018 10:03 am 
Offline

Joined: Mon May 27, 2013 9:40 am
Posts: 448
Nice work! I'm in the process of finishing something simmilar (a simple, modular and configurable game engine, along with a toolchain and tutorials), also using C, neslib and famitracker. Some knowledge of C is good to have for full customization, but it should be manageable for a non programmer as well. What is your target audience?

_________________
http://www.mojontwins.com


Top
 Profile  
 
PostPosted: Fri Apr 27, 2018 1:09 pm 
Offline

Joined: Fri Dec 27, 2013 4:28 pm
Posts: 66
Thanks for the feedback Koitsu!

na_th_an- That's awesome; I'll be super interested to see your project when it's ready. You've consistently produced amazing work, so I'm going to bet it will be good.
If I've done anything useful, don't be afraid to copy/reach out. (I use the MIT license for this reason)

For a target audience, the ideal person is a developer who has thus far only worked in higher-level languages (thinking node/php/java/etc) and wants to dive into NES dev, but needs some guidance/hand-holding.
I'm also trying to make it accessible to the person who has only written a few scripts here-and-there... but I realize that's going to be harder to do, and I don't think I've gotten close to that target yet.


I guess for me, a big thing *I* like to play with is game mechanics, so one of my goals is to make changing those really clear/easy.


Top
 Profile  
 
PostPosted: Fri Apr 27, 2018 2:38 pm 
Offline

Joined: Mon May 27, 2013 9:40 am
Posts: 448
I like how you have organized things and have learned a couple of things that will save me from lots of manual work when configuring fairly complex mappers. I have yet to examine the code, which I will. I guess, from a quick glance, you are interested mainly in code readability and make things easy for programmers, which is a good thing. Code is clean cut. I'm sure newcomers will have a great quickstart. The empty canvas is frightening if it's your first canvas. I believe in a way of learning to do things where you start filling in the gaps. For instance I can readily write 6502 assembly after all these years and such an asset has helped me in making my games better - but if I had to have endured the hard way, I'm sure I'd given up. Hadn't I had neslib and Chase I would have achieved nothing. And what you are offering is vastly superior!

_________________
http://www.mojontwins.com


Top
 Profile  
 
PostPosted: Thu May 03, 2018 3:00 am 
Offline
User avatar

Joined: Mon Nov 27, 2006 11:56 pm
Posts: 87
Location: Sollentuna, Sweden
This is great stuff!

I wouldn't use it though. But that's simply because doing the low level stuff myself on the nes is part of the fun for me.


Top
 Profile  
 
PostPosted: Mon May 07, 2018 6:45 pm 
Offline

Joined: Sun Mar 25, 2018 9:02 pm
Posts: 7
I am super new to nesdev, and I am very happy to devour anything you are offering. Thank you!


Top
 Profile  
 
PostPosted: Tue May 08, 2018 4:46 pm 
Offline

Joined: Fri Dec 27, 2013 4:28 pm
Posts: 66
Thanks for the kind words folks!

Just a quick update; I've got the first two sections complete, and with those you should be capable of making a very basic game! I'm kinda thinking of this like an alpha release.

I'm getting into the 3rd chapter, which is the start of adding new features - I think these chapters are going to be more involved to write. I may create a git branch for each one, since I expect to be writing a lot more code. (This also means I need to maintain a bunch of branches as I update the main engine, which could be a pain)

At any rate, progress continues!


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 10 posts ] 

All times are UTC - 7 hours


Who is online

Users browsing this forum: grynold and 9 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group