Nova the Squirrel 2 (WIP)

Discussion of hardware and software development for Super NES and Super Famicom.

Moderator: Moderators

Forum rules
  • For making cartridges of your Super NES games, see Reproduction.
lidnariq
Posts: 9843
Joined: Sun Apr 13, 2008 11:12 am
Location: Seattle

Re: Nova the Squirrel 2 (WIP)

Post by lidnariq » Sun Sep 06, 2020 12:28 am

... OH. I have "Smart Referer" installed.

nocash
Posts: 1258
Joined: Fri Feb 24, 2012 12:09 pm
Contact:

Re: Nova the Squirrel 2 (WIP)

Post by nocash » Sun Sep 06, 2020 3:55 am

Thinking about grid-free player movement with gridded blocks. That could look as shown below.
It's using two simple rules: When pushing a block north,
1) player must be heading north +/-45 degrees
2) player must be within +/-40 percent of the block width
If that isn't the case, ignore the vertical movement apply horizontal movement only (as shown in the two bold horizontal lines).
Attachments
temp.gif
temp.gif (2.15 KiB) Viewed 3628 times
homepage - patreon - you can think of a bit as a bottle that is either half full or half empty

User avatar
olddb
Posts: 127
Joined: Thu Oct 26, 2017 12:29 pm
Contact:

Re: Nova the Squirrel 2 (WIP)

Post by olddb » Sun Sep 06, 2020 10:00 am

Looking good!
...

User avatar
NovaSquirrel
Posts: 421
Joined: Fri Feb 27, 2009 2:35 pm
Location: Fort Wayne, Indiana
Contact:

Re: Nova the Squirrel 2 (WIP)

Post by NovaSquirrel » Mon Sep 07, 2020 8:01 pm

I've been playing around with different ways of making the Mode 7 stages feel better. I'm also giving git branches their first real use in exploring these different solutions. Making it not aligned to the grid seems like it has promise but could cause its own issues? I feel like I might want the ability to snap to angles there.

Another good option seems to be just using the original movement but making turns take twice as long.

Letting player turns happen immediately at 90 degrees but have the camera catch up felt unintuitive, though maybe that would require me to draw the other directions to be able to figure it out, or I might not have implemented the right things well enough.

I wonder what specific aspects of Blue Sphere works. In any case I think I'm going to provide the option to use a top-down perspective instead and have it look like regular Chip's Challenge, if the player prefers that.

none
Posts: 51
Joined: Thu Sep 03, 2020 12:56 am

Re: Nova the Squirrel 2 (WIP)

Post by none » Tue Sep 08, 2020 3:30 am

Maybe making the background curved by offsetting the matrix transforms a bit per row would work? It would make it more sonic-y...

Image

Image

(curves the wrong way, but you get the idea)

Also maybe you can make your checkerboard pattern larger?

User avatar
NovaSquirrel
Posts: 421
Joined: Fri Feb 27, 2009 2:35 pm
Location: Fort Wayne, Indiana
Contact:

Re: Nova the Squirrel 2 (WIP)

Post by NovaSquirrel » Tue Sep 08, 2020 10:32 pm

I don't think making it feel more like Blue Sphere aesthetically is important, unless you think the curve helps to make it easier on the eyes? I mostly meant that it must have some design decisions that make it fine, since I haven't really seen people complain about Blue Sphere's turning.

What I probably should do, in addition to any camera stuff I decide, is to make sure that the level design itself isn't set up to require the player to turn unnecessarily. I'm also trying out having left/right strafe and L/R turn, to emphasize strafing. That seems to improve it a little?

creaothceann
Posts: 270
Joined: Mon Jan 23, 2006 7:47 am
Location: Germany
Contact:

Re: Nova the Squirrel 2 (WIP)

Post by creaothceann » Wed Sep 09, 2020 12:17 am

NovaSquirrel wrote:
Mon Sep 07, 2020 8:01 pm
Making it not aligned to the grid seems like it has promise
Add support for the mouse and it might feel like a modern 3D game :P
NovaSquirrel wrote:
Tue Sep 08, 2020 10:32 pm
I don't think making it feel more like Blue Sphere aesthetically is important, unless you think the curve helps to make it easier on the eyes?
I don't think it's possible to add a horizontal curvature with Mode 7. The Sonic screen was made with tiles on a regular background.
My current setup:
Super Famicom ("2/1/3" SNS-CPU-GPM-02) → SCART → OSSC → StarTech USB3HDCAP → AmaRecTV 3.10

none
Posts: 51
Joined: Thu Sep 03, 2020 12:56 am

Re: Nova the Squirrel 2 (WIP)

Post by none » Wed Sep 09, 2020 2:38 am

I don't think making it feel more like Blue Sphere aesthetically is important, unless you think the curve helps to make it easier on the eyes? I mostly meant that it must have some design decisions that make it fine, since I haven't really seen people complain about Blue Sphere's turning.
It really was just an idea you could try out without going through lots of trouble. Definitely not a must aesthetically. I can imagine it could also turn out very awkward / disorienting when the camera is rotating.

About what makes the design of Blue Sphere feel good, it probably has to do with fine-tuned timings, the fact that it has lots of sprites for the spheres, big patches for the checkerboard pattern, great color choices, the visible horizon, and maybe more stuff I can't think of right now.

Your version with the slower turning camera, and movement still restricted to the grid, also already feels much better imo. Maybe you can also stick with that one and just add some easing on the turning / movement animations, and maybe add sprites for the player character looking left or right when turning so that you can have the camera "lag behind" a bit. If you want to keep the stages more puzzle-oriented, this approach can work very well.
What I probably should do, in addition to any camera stuff I decide, is to make sure that the level design itself isn't set up to require the player to turn unnecessarily. I'm also trying out having left/right strafe and L/R turn, to emphasize strafing. That seems to improve it a little?
This also sounds good, this is just like the movement scheme in Contra III. In that game, you can also double-tap L and R to turn faster.

User avatar
Señor Ventura
Posts: 157
Joined: Sat Aug 20, 2016 3:58 am

Re: Nova the Squirrel 2 (WIP)

Post by Señor Ventura » Wed Sep 09, 2020 6:10 am

NovaSquirrel wrote:
Tue Sep 08, 2020 10:32 pm
I mostly meant that it must have some design decisions that make it fine, since I haven't really seen people complain about Blue Sphere's turning.
Well... What about 256 colors? :P

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

Re: Nova the Squirrel 2 (WIP)

Post by tepples » Wed Sep 09, 2020 6:21 am

A better reference for a curved Mode 7-style floor is the cylinder-shaped floor of any Animal Crossing game on the DS or later. But I don't know how compatible that'd be with a behind-the-player camera, seeing as the AC games I've played have the camera always pointing due north while outside and not talking to an NPC.

User avatar
NovaSquirrel
Posts: 421
Joined: Fri Feb 27, 2009 2:35 pm
Location: Fort Wayne, Indiana
Contact:

Re: Nova the Squirrel 2 (WIP)

Post by NovaSquirrel » Sat Sep 19, 2020 7:57 pm

Image
Image
I noticed I had 128 sprite tiles that were unused, that I had no current plans for, so I made a system where I have 8 dynamic sprite slots of 16 tiles each. Here I'm using them for a better explosion animation that I'm streaming in.

I think these smoother animations could get expensive fast, so this might be where I actually start putting the RAM I've got to use, with holding decompressed streamed graphics I can DMA out of. I have about ~73KB of RAM just sitting there doing nothing, and I have LZ4 all set up in the game.

Oh, and speaking of explosions, bombs are implemented and work similarly to Kirby Super Star. This capture shows what the old explosions looked like, where they were literally just a smoke frame at random angles with an increasing radius.

It's not super visible at the framerate the tool I use records at, but I improved the Mode 7 camera a little bit to be a little bit zoomed out in addition to using a smoothing function on turns so they follow a sine curve instead of making it just linear. I also made it so that holding A makes left and right strafe, which may feel comfier than using L/R, though I'm probably keeping L/R.

I really need to get around to touching up all of the player animations.

User avatar
Nikku4211
Posts: 212
Joined: Sun Dec 15, 2019 1:28 pm
Location: Bronx, New York
Contact:

Re: Nova the Squirrel 2 (WIP)

Post by Nikku4211 » Sat Sep 19, 2020 11:59 pm

NovaSquirrel wrote:
Sat Sep 19, 2020 7:57 pm
I noticed I had 128 sprite tiles that were unused, that I had no current plans for, so I made a system where I have 8 dynamic sprite slots of 16 tiles each. Here I'm using them for a better explosion animation that I'm streaming in.

I think these smoother animations could get expensive fast, so this might be where I actually start putting the RAM I've got to use, with holding decompressed streamed graphics I can DMA out of. I have about ~73KB of RAM just sitting there doing nothing, and I have LZ4 all set up in the game.

Oh, and speaking of explosions, bombs are implemented and work similarly to Kirby Super Star. This capture shows what the old explosions looked like, where they were literally just a smoke frame at random angles with an increasing radius.

It's not super visible at the framerate the tool I use records at, but I improved the Mode 7 camera a little bit to be a little bit zoomed out in addition to using a smoothing function on turns so they follow a sine curve instead of making it just linear. I also made it so that holding A makes left and right strafe, which may feel comfier than using L/R, though I'm probably keeping L/R.

I really need to get around to touching up all of the player animations.
Dynamic sprites are nice, but are non-dynamic sprite graphics loaded by the enemy codes themselves, or by the level?

If the latter, have you looked into semi-dynamic sprites, which are the former?

Also, you put the packed data in VRAM rather than in WRAM before decompressing it?

And yeah, you should have configurable controls in the final game.

Nice camera smoothing, by the way.
I have an ASD, so empathy is not natural for me. If I hurt you, I apologise.

User avatar
NovaSquirrel
Posts: 421
Joined: Fri Feb 27, 2009 2:35 pm
Location: Fort Wayne, Indiana
Contact:

Re: Nova the Squirrel 2 (WIP)

Post by NovaSquirrel » Sun Sep 20, 2020 9:37 am

Nikku4211 wrote:
Sat Sep 19, 2020 11:59 pm
Dynamic sprites are nice, but are non-dynamic sprite graphics loaded by the enemy codes themselves, or by the level?

If the latter, have you looked into semi-dynamic sprites, which are the former?

Also, you put the packed data in VRAM rather than in WRAM before decompressing it?

And yeah, you should have configurable controls in the final game.

Nice camera smoothing, by the way.
Currently, non-dynamic sprites are just specified in a level's header, but I have thought about semi-dynamic sprites. I do have most of the engine features they need (and sprite palettes are dynamically loaded already). The main concern I had was that I wanted it to be somewhat intelligent about what slots it's choosing to swap out with a new one, but I guess that's getting into the whole topic of cache replacement policies.

Right now what sprite palettes do is four slots start out as empty, and when allocating a slot it will first try to choose a slot that has never been allocated before, and then if that fails it uses the first slot it finds that no sprites used the previous frame. That has some pretty obvious problems I can see, and I want to do something better if I do something like that for sprite tiles.

The random looking tiles are just uninitialized video RAM. Configurable controls are definitely planned.

User avatar
NovaSquirrel
Posts: 421
Joined: Fri Feb 27, 2009 2:35 pm
Location: Fort Wayne, Indiana
Contact:

Re: Nova the Squirrel 2 (WIP)

Post by NovaSquirrel » Mon Sep 21, 2020 9:39 pm

Image
Semi-dynamic sprites are in! The level header still specifies eight sprite tilesets to start things off with, and if a level never needs a tileset that's not already loaded this system won't be used. But I can now have levels with nine or more sprite tilesets.

When all slots are free and I need to overwrite one, I just choose the one whose "last used" timestamp is the oldest. At 18 minutes there will be an overflow, but that shouldn't hurt anything.

User avatar
Nikku4211
Posts: 212
Joined: Sun Dec 15, 2019 1:28 pm
Location: Bronx, New York
Contact:

Re: Nova the Squirrel 2 (WIP)

Post by Nikku4211 » Tue Sep 22, 2020 9:03 am

NovaSquirrel wrote:
Mon Sep 21, 2020 9:39 pm
Semi-dynamic sprites are in! The level header still specifies eight sprite tilesets to start things off with, and if a level never needs a tileset that's not already loaded this system won't be used. But I can now have levels with nine or more sprite tilesets.

When all slots are free and I need to overwrite one, I just choose the one whose "last used" timestamp is the oldest. At 18 minutes there will be an overflow, but that shouldn't hurt anything.
What would you do if too many sprites come up all at once in the same screen by accident?
I have an ASD, so empathy is not natural for me. If I hurt you, I apologise.

Post Reply