Nova the Squirrel

A place where you can keep others updated about your NES-related projects through screenshots, videos or information in general.

Moderator: Moderators

tepples
Posts: 22705
Joined: Sun Sep 19, 2004 11:12 pm
Location: NE Indiana, USA (NTSC)
Contact:

Re: Nova the Squirrel (WIP)

Post by tepples »

NovaSquirrel wrote:For the background I actually have clouds
Repeating clouds (like the cloudbush/hill layer in SMB1) or individually placed?
I'm actually going to have enemies with sizes like 16x32 and 32x24 and I've been working on a routine for displaying them, though I feel like it's really inefficient. Aside from having the metasprite's tile data in columns, are there any good tips for efficiency?
Haunted uses 8x16 sprites and stores each metasprite as a set of horizontal strips (Y, starting tile number, palette/width/flip, leftmost X). A 16x32 pixel sprite like Donny or the zombie is two strips of two sprites, plus extra strips for the extra color layer. The separate engine used for cut scenes uses a similar technique with 8x8 sprites.
User avatar
NovaSquirrel
Posts: 483
Joined: Fri Feb 27, 2009 2:35 pm
Location: Fort Wayne, Indiana
Contact:

Re: Nova the Squirrel (WIP)

Post by NovaSquirrel »

tepples wrote:Repeating clouds (like the cloudbush/hill layer in SMB1) or individually placed?
Currently they're randomly placed with a minimum and maximum on the space between clouds. I have ground decorations drawn (bushes, fences, flowers, etc) but not implemented yet. I think they'll have to be manually placed if I want them to look nice at all, haha.

I thought about some more complicated metasprite formats but I ended up just going with this for now since it was easy to code and worked well for the enemies I have drawn:

Code: Select all

 ppww whhh
 |||| |+++- height in tiles
 ||++-+---- width in tiles
 ++-------- palette

[yxet tttt] (repeated)
 |||+-++++- tile number (0-31)
 ||+------- empty, skip this tile and don't use up an OAM slot
 |+-------- X flip
 +--------- Y flip
Tiles are listed in columns, so that partially offscreen sprites can simply adjust their width and starting index.
In the header, width can be ANDed directly to get the width in pixels, though I'm not taking advantage of that. I also positioned the X and Y flip so that they could be ORed directly into the palette used for the sprite to get the attributes. A lot of my metasprites use flipping to conserve tiles.
User avatar
NovaSquirrel
Posts: 483
Joined: Fri Feb 27, 2009 2:35 pm
Location: Fort Wayne, Indiana
Contact:

Re: Nova the Squirrel (WIP)

Post by NovaSquirrel »

I've had the project on GitHub for awhile now, if anyone wants to actually look at the source or keep up with any updates.

I've been on spring break and I've actually finally had a chance to work on the game a lot.

Some minor changes:
  • Made the project assemble on the latest ca65 instead of the ancient version I was on
  • Actually uses exported levels from the level editor
  • Bricks that contain things
  • Ladder climbing
  • Limited camera scroll speed so that it will no longer glitch out from going faster than the engine can handle
  • Worked on collision a bit
I have a title screen now, based on the art I originally had commissioned for an avatar:
Image
I could make it fancier later with the remaining tiles but not sure what I want to do with it yet. I was thinking of having some animation.

Image
Enemy interaction with projectiles is now in, which means you can now stun, attack and actually copy enemy abilities now, though there's only one copyable enemy in the intro level.

Code: Select all

   222
111222       4     6666
11122233333334     6666
              \_5_/
I've been working on level compression more. I added a new command that creates a series of rectangles sharing the same starting height. I have the details documented for this and the rest of the compression commands in the repository. I think it can cut the bytes used for level terrain down to a third?

Somehow my sprite/background collision is still awful and I'm probably just going to have to do a complete rewrite or something and figure this out. That'll probably be where I go next when I get back to working on this. It's somehow possible to get stuck in blocks forever and that's really not good.

EDIT: OH I almost forgot, I also did a lot of work on getting levels with non-horizontal shapes working. There can be scrolling barriers between screens and screens can specify that they're linking to another screen on the top and bottom sides. With this, you can fake that the level is taller than it really is.
Attachments
adventure.nes
(256.02 KiB) Downloaded 304 times
User avatar
TmEE
Posts: 960
Joined: Wed Feb 13, 2008 9:10 am
Location: Norway (50 and 60Hz compatible :P)
Contact:

Re: Nova the Squirrel (WIP)

Post by TmEE »

Very naiss update ~
User avatar
NovaSquirrel
Posts: 483
Joined: Fri Feb 27, 2009 2:35 pm
Location: Fort Wayne, Indiana
Contact:

Re: Nova the Squirrel (WIP)

Post by NovaSquirrel »

Collision should now be fully fixed. There was a bug involving the fact that the player is 24 pixels tall, and it was snapping to a block in the ground as if the player had landed on it, dragging them into the ground.

Image
I added an inventory screen (accessed via Start), using a variable-width font like the rest of the game. Because of how little space this takes, I have a fancy background around the menu that looks like FHBG's backgrounds. Right now you can use items and swap their positions with Select, though using an item doesn't delete it or anything yet.

I also added dying. Right now it plays a DPCM sample of CDi Ganon saying "die" which I'll probably replace with an imitation of it that I can freely use. I'll also move it away from being DPCM so it's not eating up fixed bank space. My puzzle-style stages will have a clip of someone saying "bummer" instead.

I've been working on the scripting system a lot though I haven't gotten the cutscene engine to the point where it can actually run scripts. From here I'll probably keep working on the cutscene engine and maybe get that working so I can make signs readable.
Attachments
adventure.nes
(256.02 KiB) Downloaded 297 times
User avatar
NovaSquirrel
Posts: 483
Joined: Fri Feb 27, 2009 2:35 pm
Location: Fort Wayne, Indiana
Contact:

Re: Nova the Squirrel (WIP)

Post by NovaSquirrel »

Not really liking my palette that much. I went back to a $31 background for now and I wanna change how the ground looks.
In DABG I had a brown ground with black dots in it for texture. I don't think I could make a good texture for these colors with green as the only other palette colors.

But, in this game, I'm going for more a stylized art style with colored outlines, and I went with pink originally because it was the closest I could find to Super Mario World's cream colored ground in the NES palette. This pink looks pretty bad on my TV and most places that aren't FCEUX's palette.

I did a bunch of screenshots with differently colored grounds with Firebrandx's palette and most of the people I showed it to favored #3 while I think it's too bright. Orange looked good to me (though I already have an orange palette, which would look too similar) while brown seems like it'd only be okay if I removed the ground texture, but even then there's little contrast with the outline.

Since my game's supposed to take place in a virtual world and there's little reason to try to make everything realistic, I played with some more creative colors to see how they looked and I actually really like how fully green ground looks, which looks somewhat like Kirby's Adventure. My game is mostly monochrome and bright and cartoony like Kirby is, so I feel like the same kinda aesthetics could work.

So yeah, anyone that actually know what they're doing graphics-wise have any suggestions?
8bitMicroGuy
Posts: 314
Joined: Sun Mar 08, 2015 12:23 pm
Location: Croatia

Re: Nova the Squirrel (WIP)

Post by 8bitMicroGuy »

Looks good! I'm going to play it. If I like it, I might make a Let's Play video of it. May I do that?

Why are you licensing this by GPL? If I would fork code from you, I wouldn't be able to license it with another license because GPL forces me to use GPL because of its terms and conditions. If you want to go open-source, you might want to use the 2-clause BSD license.
lidnariq
Posts: 11430
Joined: Sun Apr 13, 2008 11:12 am

Re: Nova the Squirrel (WIP)

Post by lidnariq »

8bitMicroGuy wrote:Why are you licensing this by GPL? If I would fork code from you, I wouldn't be able to license it with another license because GPL forces me to use GPL because of its terms and conditions. If you want to go open-source, you might want to use the 2-clause BSD license.
Could we not recap the GPL vs BSD argument for the ten millionth time?

GPL preserves the "rights" of the end user.
BSD preserves the "rights" of the middleman.

ANYWAY, ON TOPIC:

I can't art, so I can't really say anything useful. But I'd want to try this on an actual CRT to be able to even begin to form an opinion.
User avatar
dougeff
Posts: 3078
Joined: Fri May 08, 2015 7:17 pm

Re: Nova the Squirrel (WIP)

Post by dougeff »

I agree that #3 is the best...the light brown one.

Don't like orange.

You could texture or shadow the light brown with dark brown or dark green, if you think it's too light.
nesdoug.com -- blog/tutorial on programming for the NES
User avatar
NovaSquirrel
Posts: 483
Joined: Fri Feb 27, 2009 2:35 pm
Location: Fort Wayne, Indiana
Contact:

Re: Nova the Squirrel (WIP)

Post by NovaSquirrel »

8bitMicroGuy wrote:Looks good! I'm going to play it. If I like it, I might make a Let's Play video of it. May I do that?

Why are you licensing this by GPL?
I think it would make more sense to play DABG or Sliding Blaster which are actually fully completed games that don't have very much exposure. In contrast, this demo has like one minute of gameplay and it would be very silly to use for anything past giving suggestions.

As for why I'm using GPL, I don't want people to use my engine to create closed source games. If I'm going to be spending years developing this and then releasing it for free, I want others to give something back if they use it.
dougeff wrote:I agree that #3 is the best...the light brown one.
Don't like orange.
You could texture or shadow the light brown with dark brown or dark green, if you think it's too light.
I'll go see how #3 looks on my CRT later then and see what I can do with the textures, then.
User avatar
NovaSquirrel
Posts: 483
Joined: Fri Feb 27, 2009 2:35 pm
Location: Fort Wayne, Indiana
Contact:

Re: Nova the Squirrel (WIP)

Post by NovaSquirrel »

I've still been playing with the looks of things, especially since the engine has most of the big parts taken care of already. I played with textures (Waffle's Revenge looks awful on a CRT) and after lots of experimentation I just went to the dots. Oh, and I gave Nova hair in-game since that's how she's usually drawn and how she's drawn on the title screen. I also changed the question mark blocks to have a pawprint on them instead to look less Mario-ey. I'm trying to really make my own aesthetic.

Image
Dialogs are mostly coded though there aren't any accessible in-game yet.

Image Image Image Image
It's surprising how much of a difference little decorations can make on the level. I added grass and flowers and trees. I'm also playing with more creative level designs.
User avatar
dougeff
Posts: 3078
Joined: Fri May 08, 2015 7:17 pm

Re: Nova the Squirrel (WIP)

Post by dougeff »

Looks good. I'm looking forward to seeing this game made. Cart worthy.
nesdoug.com -- blog/tutorial on programming for the NES
tepples
Posts: 22705
Joined: Sun Sep 19, 2004 11:12 pm
Location: NE Indiana, USA (NTSC)
Contact:

Re: Nova the Squirrel (WIP)

Post by tepples »

I see you're using my VWF library (or my font through another VWF library), which means you're using CHR RAM. How are you arranging video memory? Are you reserving 1/4 of VRAM for a speech balloon like Faxanadu and Super Bat Puncher?

And do you plan for signs like the one between the flowers in the second screenshot to be readable?

I'll have to think about how the GPL might affect mods of your game, especially in an industry where non-code assets are less likely to be freely licensed than code, and on a platform where a clean technical separation of code and non-code assets is more difficult to achieve than it is on PC, where one can separate Doom.exe from its WADs or StepMania.exe from its SMZIPs.
User avatar
NovaSquirrel
Posts: 483
Joined: Fri Feb 27, 2009 2:35 pm
Location: Fort Wayne, Indiana
Contact:

Re: Nova the Squirrel (WIP)

Post by NovaSquirrel »

tepples wrote:How are you arranging video memory?
In-game: Image Dialog: Image

I originally had 1/4th of the background CHR reserved for text but plans changed and now it's on a separate screen and I don't have to share CHR at all. Signs will be readable and will just start a short dialog with the sign.
User avatar
NovaSquirrel
Posts: 483
Joined: Fri Feb 27, 2009 2:35 pm
Location: Fort Wayne, Indiana
Contact:

Re: Nova the Squirrel (WIP)

Post by NovaSquirrel »

The engine's pretty much done aside from all the extra content I want.

Image
I have a circular level select screen. The icons for the levels will be different for different types of levels, and they're magenta to show an available level, green to show a cleared level and gray for a locked one.

Image
I'm going to have a balloon item that triggers when you fall into pits and lifts you out of them, so you don't die and start over at the beginning of the level. Like McDonalds Treasureland Adventure. Maybe let people use balloons whenever? It'd kill some of the challenge if you could just fly over obstacles though.

Image Image
Some Frozen Volcano mockup stuff, with lava and minecart tracks. I'm playing around with actually seeing what my tiles look like when put into use, and seeing what else I need to have drawn. Feels kinda bare though, possibly because volcanoes are kinda hard to do scenery for.

In addition to this stuff I've also got checkpoints, working doors, a mostly finished script, and I've been working on implementing more enemy types and doing more level design. I'm currently saving like 40-45% with dictionary compression on the script text.

I now officially have no responsibilities until late August so I'm going to be able to work on this game full time. I hope to have it done this year.
Post Reply