It is currently Tue Nov 21, 2017 9:00 pm

All times are UTC - 7 hours





Post new topic Reply to topic  [ 14 posts ] 
Author Message
PostPosted: Mon Oct 27, 2014 7:22 pm 
Offline

Joined: Thu Jun 28, 2012 9:10 pm
Posts: 23
Location: São Paulo, Brazil
Just thought I would rather post them here instead of letting them die in my hard drive without them ever seeing the light of day. :o

These are small test games I made a while back, when learning to program for the NES. They kind of show my progress in learning better ways to program a game engine on 6502.

Ninja1
Download link
Image
My first attempt at making a platformer. The idea is that this little cute ninja found a secret path through the sewers, that would eventually lead him to the inside of a corrupt shogun's palace, where he would fight to save his people.

- Object engine is based on a dynamic table that accomodates newly created instances, which is something that I found to be nice, and stuck with me to the later games.
- Stage engine based on fixed-screen rooms, since I hadn't given much thought about a scrolling engine.
- Player starts at the top of the screen for whatever reason. You can attack with the B Button. Lots of enemies on the first screen, as a kind of stress test. There is a room of an even older version to the left. Other rooms are empty.

Ninja2
Download link
Image
My second attempt. I finally understood how to program a scrolling level: dealing with column tile loading and updating nametables (figuring out how to update the tile attribute table dynamically was quite a chore).
- Metatile engine actually uses meta-meta-tiles (they describe entire elements, such as those pink walls with the little roofs).
- Object engine is still the same, but dynamically loading enemies that enter the camera view, and destroying those that leave.
- Sprite engine is not perfect, as clipping sprites at the borders doesn't work very well, but it already implements a kind of sprite multiplexing.
- Next to the start of the game, lots of enemies come raining down, as a stress test. At the end of the level, a more challenging enemy is found (but unfortunately cannot be defeated). You can perform a cool attack with the B Button, as well as climb walls! There is some leftover level tests to the right. If you go through the rightmost border (after 16 screens), crazy things happen.
- Also, crazy things happen when you manage to trigger object overflow (the later challenging enemies use double the data space of the regular enemies, and thus trigger overflow more easily -- of course, due to my faulty engine :) ), like duplicating the player character and confusing the camera controller.

Ninja3
Download link
ImageImageImage
My latest attempt. Features updated graphics, a scrolling camera engine, fade-in/out effects, and index-based stage loading capabilities. Unfortunately, there is no sound and no enemies nor attacks you can perform. You can still climb walls, though. If you exit your house, there is a climb test area after the forest. Also, jumping height is proportional to the time you hold the A Button.
- If you keep pressing the B Button, the next stage index is immediately loaded, but most are from garbage data, which I find really cool. (Some stages might have a totally black or gray palette, but the game should not hang)
- Sprite engine is pixel-perfect at clipping sprites at the borders, which you can check with the dummy ninja at the forest.
- Collision engine has some quirks and bugs at specific spots, which is kind of a nice secret to find out.


So, this is it. I really had fun programming these little games, and I felt that people should see them. What good are (*small* *test*) games that people can't play?


Top
 Profile  
 
PostPosted: Mon Oct 27, 2014 8:10 pm 
Offline
User avatar

Joined: Fri Aug 23, 2013 2:14 am
Posts: 264
These are impressive, I actually like the graphics here! You should polish these up (perhaps combine aspects) and either enter them in the NESDev competition or include it in the Action 53 project!


Top
 Profile  
 
PostPosted: Tue Oct 28, 2014 3:49 am 
Offline
User avatar

Joined: Sun Jan 22, 2012 12:03 pm
Posts: 5825
Location: Canada
Hey these are really neat.


Top
 Profile  
 
PostPosted: Tue Oct 28, 2014 10:07 am 
Offline
User avatar

Joined: Wed Dec 06, 2006 8:18 pm
Posts: 2803
rainwarrior wrote:
Hey these are really neat.


I agree, these are some cool demos.


Top
 Profile  
 
PostPosted: Tue Oct 28, 2014 10:10 am 
Offline

Joined: Sun Sep 19, 2004 11:12 pm
Posts: 19239
Location: NE Indiana, USA (NTSC)
Know what I think these need? Level format docs.


Top
 Profile  
 
PostPosted: Tue Oct 28, 2014 10:31 am 
Offline
User avatar

Joined: Sat Feb 12, 2005 9:43 pm
Posts: 10117
Location: Rio de Janeiro - Brazil
tepples wrote:
Level format docs.

Do you plan on hacking the games?


Top
 Profile  
 
PostPosted: Tue Oct 28, 2014 10:31 am 
Offline

Joined: Sun Sep 19, 2004 11:12 pm
Posts: 19239
Location: NE Indiana, USA (NTSC)
I personally don't, but it might give hackers something to play with other than SMB1 until I resume work on my own scrolling project, which I plan to do after the release of Double Action 53.


Top
 Profile  
 
PostPosted: Tue Oct 28, 2014 10:32 am 
Offline
User avatar

Joined: Mon Jan 03, 2005 10:36 am
Posts: 2981
Location: Tampere, Finland
Cool tests.

_________________
Download STREEMERZ for NES from fauxgame.com! — Some other stuff I've done: kkfos.aspekt.fi


Top
 Profile  
 
PostPosted: Tue Oct 28, 2014 2:19 pm 
Offline
User avatar

Joined: Wed Apr 02, 2008 2:09 pm
Posts: 1035
Not much to add, but these are indeed pretty neat.

_________________
https://kasumi.itch.io/indivisible


Top
 Profile  
 
PostPosted: Tue Oct 28, 2014 9:39 pm 
Offline
User avatar

Joined: Sat Feb 12, 2005 9:43 pm
Posts: 10117
Location: Rio de Janeiro - Brazil
I didn't share any opinions before because I was at work and couldn't run the ROMs, but now that I have: Pretty cool!

Graphics are simplistic, but appealing. Some of the music is really catchy! I would really like to see a more complete game made out of these.


Top
 Profile  
 
PostPosted: Wed Oct 29, 2014 12:06 pm 
Offline

Joined: Thu Jun 28, 2012 9:10 pm
Posts: 23
Location: São Paulo, Brazil
Thanks everyone for the feedback! :o

I would also like this to become a full game! However, I can only work on it on my spare time now, so it may take long. Should I make more progress on this, I would love to see it on a cartridge and play it on a real console! I've chosen MMC1 as the mapper, because it has CHR and PRG bank switching, which is nice if I wanted to expand the game. I guess it is cheap and easy to produce an MMC1 cart?

My music is nice, I guess. I've only been formally introduced to music recently, and while I think these old pieces make some musical sense, I feel there's something missing to me, in that I can't really make better/more complex ones. Oooooh, what's the secret to you, developers who write awesome music??


Top
 Profile  
 
PostPosted: Wed Oct 29, 2014 1:05 pm 
Offline
User avatar

Joined: Sat Feb 12, 2005 9:43 pm
Posts: 10117
Location: Rio de Janeiro - Brazil
HLorenzi wrote:
I've chosen MMC1 as the mapper, because it has CHR and PRG bank switching, which is nice if I wanted to expand the game. I guess it is cheap and easy to produce an MMC1 cart?

If you know your way around CPLD programming, yes, otherwise you'll have to rely on other people supplying pre-programmed CPLDs, or parts from original Nintendo cartridges.

If you don't need the mirroring control or the PRG-RAM, it would be safer to go with a simple discrete mapper, which can be easily built from off-the-shelf parts. UxROM or BxROM are pretty popular among homebrewers, and the CHR-RAM even allows for more versatile graphics expansion as long as you don't need to quickly (i.e. from one frame to the next or within the same frame) change a large number of tiles at once. With CHR-RAM you can realistically update 8 tiles or so per frame and still have time left for updating sprites, name tables, palettes and so on. If you disable rendering, you can update the whole 8KB of CHR in a couple of frames.


Top
 Profile  
 
PostPosted: Wed Oct 29, 2014 1:33 pm 
Offline

Joined: Sun Apr 13, 2008 11:12 am
Posts: 6447
Location: UK (temporarily)
HLorenzi wrote:
I guess it is cheap and easy to produce an MMC1 cart?
It is easy, but unless you're planning on using the ability to bank CHR in two chunks, you might be better served using ANROM, GNROM, or UNROM.


Top
 Profile  
 
PostPosted: Sun Nov 02, 2014 1:35 pm 
Offline
User avatar

Joined: Sat Jul 12, 2014 3:04 pm
Posts: 950
Reminds me a bit visually of Ninja-[Jajamaru]-kun; and the ones in GCCX:Arino's Challenge.


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

All times are UTC - 7 hours


Who is online

Users browsing this forum: No registered users and 5 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