It is currently Sun May 26, 2019 10:03 pm

All times are UTC - 7 hours





Post new topic Reply to topic  [ 44 posts ]  Go to page Previous  1, 2, 3  Next
Author Message
PostPosted: Thu Jan 03, 2019 4:14 am 
Offline
User avatar

Joined: Fri Nov 12, 2004 2:49 pm
Posts: 7713
Location: Chexbres, VD, Switzerland
tokumaru wrote:
The standard way is also the boring way. I'd rather see something unique, even if it doesn't look great.

Might be "boring", but there's probably a lot of improvements or at least changes that can be made on what has already been done. It's not like Rad Racer or Roadblasters looks "perfect" or anything, but they get the job done. I can't for my life imagine a working racer game based on 8x8 huge pixels or anything in the like. And no, the demo does not look like mode 7. Mode 7 has blocky pixels only when zoomed in, not always.


Top
 Profile  
 
PostPosted: Thu Jan 03, 2019 10:43 am 
Offline
User avatar

Joined: Fri May 08, 2015 7:17 pm
Posts: 2513
Location: DIGDUG
Thanks for the input. I will do some improvements. Maybe unroll some loops, or inline some calculations, simplify some things, maybe drop to 20 fps, maybe have 3 layers of attribute/palette shifts or something for depth. Larger map. Etc. etc. So, maybe I'll pop back in a year when all that is done.

_________________
nesdoug.com -- blog/tutorial on programming for the NES


Top
 Profile  
 
PostPosted: Thu Jan 03, 2019 2:30 pm 
Offline
User avatar

Joined: Sat May 04, 2013 6:44 am
Posts: 36
I think this is terrific. The deformed road technique is not perspective correct, while your technique can be.

You said you wanted 1985 technology, but if you're willing to upgrade to 1989 technology, you can use a mapper with a good scanline counter, like MMC3 or MMC5. That way, you can start VBLANK earlier than line 241, and end it later than line 263, giving you lots more time to update VRAM.

If you use MMC5, you might be able to leverage MMC5's 8x8->16 multiplier to speed up your tile lookups.

Unroll your loops if you haven't already. If you are double-buffering (swapping between the first and second nametables to update the screen), you can write fully unrolled LDA + STA "blts" with known addresses (no indexing) to update your buffers. Takes up more ROM, but if you're using MMC3 or MMC5, you have the space to do that.

You might also consider seeing how much more you can accomplish at 15 or 20 fps. Gamers back then were willing to tolerate low framerates for revolutionary graphics. The home console ports of Hard Drivin' have such low framerates that they look like slide shows, but they were made anyway. Once you have a nice looking result with actual game logic at 15 or 20 fps, you can pick all of our brains for ideas of how to optimize it back up to 30 fps.

A lower framerate would enable 8x8 map tiles instead of 16x16 tiles, and that would look way better (it is 4x the resolution, after all). You can use MMC5's extended attributes mode for that.


Top
 Profile  
 
PostPosted: Fri Jan 04, 2019 12:55 am 
Offline
User avatar

Joined: Sun Jan 22, 2012 12:03 pm
Posts: 7469
Location: Canada
Bregalad wrote:
Sure Rad Racer uses the MMC1, which is a "special chip", but actually it doesn't use much of the chip, and it uses it mainly for extra memory, so if the game was single-level it could have fitted a NROM cart easily. For a NROM racer from 1985, look at F1-Race (the road is only distorted horizontally, not vertically, as it probably wasn't understood how to do this with the NES at this date).

The MMC1 ability to switch between horizontal and vertical mirroring was used for Rad Racer. This let the sky wrap horizontally on a 1-screen wide area of the nametable, while allowing a 2-screen wide portion of road for the bottom area of the screen. (Layout described here: https://forums.nesdev.com/viewtopic.php?f=2&t=8588)

The FDS had the same capability. I think the Japanese version was originally on (or partly developed for) FDS? Can't recall.

Rad Racer 2 uses 4-screen instead, which bypasses that need for different mirroring types.

koitsu wrote:
Surprised not a single person here has mentioned RoadBlasters from Tengen/Beam Software. Like Rad Racer, it also uses MMC1 (in this case, 128KB PRG + 128KB CHR). I'm going off of memory so there's a large chance I'm remembering things wrong, but I think it used precisely-timed PPU writes and reads and/or certain bits in in HBlank, combined with palette cycling and a lot of CHR swapping to give the impression of road movement, plus providing a horizon. There's similarities in the implementation model to Rad Racer and Rad Racer 2, but the result is a lot more impressive given all the other stuff going on. Consider that it's an arcade port as well (and yes, the surrounding environment does have that palette cycling effect even on the arcade).

In terms of 3D racing rendering, I think it's inferior to Rad Racer. The road is flat (no "hills" like Rad Racer) and has an awkward looking "wide" vanishing point. I'm not sure whether to consider that palette cycling field a plus or a minus (kinda ugly, IMO, and the arcade did do something similar but it's much, much smoother... Rad Racer also used palette cycling in a similar way, but just for the road stripes.) The spinning car at the end of the race is kinda neat though.

Its gameplay is maybe slightly more interesting than Rad Racer... but honestly, I'd rather play Hang On than either of these.


Anyway, I think there's a lot of potential for unusual rendering techniques on the NES, and am glad to see another experiment like this, whether or not it immediately manifests as some killer racing game. Please keep on trucking karting.


Top
 Profile  
 
PostPosted: Fri Jan 04, 2019 3:08 am 
Offline
User avatar

Joined: Fri Nov 12, 2004 2:49 pm
Posts: 7713
Location: Chexbres, VD, Switzerland
rainwarrior wrote:
The MMC1 ability to switch between horizontal and vertical mirroring was used for Rad Racer. This let the sky wrap horizontally on a 1-screen wide area of the nametable, while allowing a 2-screen wide portion of road for the bottom area of the screen. (Layout described here: https://forums.nesdev.com/viewtopic.php?f=2&t=8588)

Ah nice catch, I forgot that, even though I deeply reverse-engineered Rad Racer at some point in my life.

Quote:
The FDS had the same capability. I think the Japanese version was originally on (or partly developed for) FDS? Can't recall.

Both versions were cartridge but the game was obviously developed with FDS in mind, being based on the engine of 3D Worldrunner which was originally on the FDS - lots of code left-over from the FDS bios, etc...

Quote:
Rad Racer 2 uses 4-screen instead, which bypasses that need for different mirroring types.

Speaking about Rad Racer 2, I think that, counter intuitively, it looks slightly worse than Rad Racer 1... The stripes on the sides of the road are really not my cup of tea. The carts and scenery looks better though.

Quote:
Anyway, I think there's a lot of potential for unusual rendering techniques on the NES, and am glad to see another experiment like this, whether or not it immediately manifests as some killer racing game. Please keep on trucking karting.

Definitely. But it should be an improvement on what already exists to be worth doing, IMO.


Top
 Profile  
 
PostPosted: Fri Jan 04, 2019 4:45 am 
Offline

Joined: Mon May 30, 2011 9:01 pm
Posts: 215
The road looks like it is curving up

************************----************************
**********************--------**********************
******************----------------******************
**********--------------------------------**********

Shouldn't it be a straight line?

************************----************************
********************------------********************
****************--------------------****************
************----------------------------************


Top
 Profile  
 
PostPosted: Fri Jan 04, 2019 6:12 am 
Offline

Joined: Sat Nov 18, 2017 9:15 pm
Posts: 71
I think this looks really cool, and even as-is, I'd probably rather play a racing game like this than Rad Racer. It may not be the prettiest, but the gameplay could be worth it.

Nice work, and I'd love to see improvements on this.


Top
 Profile  
 
PostPosted: Fri Jan 04, 2019 6:30 am 
Offline
User avatar

Joined: Fri May 08, 2015 7:17 pm
Posts: 2513
Location: DIGDUG
Quote:
looks like it is curving up


The map is actually very small, so I manually adjusted the distances per tile. The top most tiles should be further away, but since the map is so small, it would usually be off the map (for the top few tiles), making the resolution look even worse.

Anyway, my manual adjustment was slightly off.

_________________
nesdoug.com -- blog/tutorial on programming for the NES


Last edited by dougeff on Fri Jan 04, 2019 6:31 am, edited 1 time in total.

Top
 Profile  
 
PostPosted: Fri Jan 04, 2019 6:30 am 
Offline
Formerly WheelInventor
User avatar

Joined: Thu Apr 14, 2016 2:55 am
Posts: 2020
Location: Gothenburg, Sweden
Agreeing with fiskbit. I think new gameplay possibilities on the platform trumps pretty graphics. And that’s coming from the impractical, details-obsessed artist.

_________________
http://www.frankengraphics.com - personal NES blog


Top
 Profile  
 
PostPosted: Fri Jan 04, 2019 9:51 am 
Offline
User avatar

Joined: Sat Feb 12, 2005 9:43 pm
Posts: 11359
Location: Rio de Janeiro - Brazil
I don't know why some of you are wasting time talking about raster distortion racers... That's the standard way to do racers in old consoles and it's been done to death. Some use more advanced techniques, some look better than others, but it's basically the same technique and that technique had nothing to do with what dougeff is doing.

mkwong98 wrote:
The road looks like it is curving up

Couldn't this be because of the fisheye distortion that results from calculating distances from the player in concentric circles against an orthogonal grid? That's what happens in raycasters, and you have to correct this by shortening distances for angles that are farther away from the middle of the screen.

In my raycaster I built this correction straight into the look-up tables, so I wouldn't need to do any extra calculations in real time. That drawback of doing this is that my look-up table of distances became 15x larger, because there are 15 angles on each half of the screen.

If your horizontal resolution is 20, your tables would have to be 10x larger to have the fisheye correction built-in.


Top
 Profile  
 
PostPosted: Fri Jan 04, 2019 11:05 am 
Offline

Joined: Sun Sep 19, 2004 11:12 pm
Posts: 21403
Location: NE Indiana, USA (NTSC)
Let's suppose it were possible to draw a 24x16 pixel mode 7 view at 30 fps. Would that be a usable resolution and frame rate?

_________________
Pin Eight | Twitter | GitHub | Patreon


Top
 Profile  
 
PostPosted: Fri Jan 04, 2019 11:55 am 
Offline
User avatar

Joined: Sat Feb 12, 2005 9:43 pm
Posts: 11359
Location: Rio de Janeiro - Brazil
I probably wouldn't play it at a resolution that low.

I would rather sacrifice frame rate for resolution. I think these tiny resolutions are fine for testing, but a real game needs to have a little more detail than that.

Just dividing each tile vertically into 2 pixels helps a lot by doubling the vertical resolution, and that's where detail is needed the most, so we can see what's ahead.


Top
 Profile  
 
PostPosted: Fri Jan 04, 2019 12:05 pm 
Offline
User avatar

Joined: Thu Mar 31, 2016 11:15 am
Posts: 514
Dropping the framerate is fine for a FPS, but in a racing game the effects are really noticeable. 15 FPS looks absolutely terrible and choppy when the player is moving fast, and 20 FPS is only a hair better. Really, 60 FPS is what a racing game should run at, and 30 FPS is the 'okay' compromise.

Anyway, I don't mean to steal Doug's thunder, but did F-FF not have the right technique? I barely got any comments on it.


Top
 Profile  
 
PostPosted: Fri Jan 04, 2019 12:15 pm 
Offline
User avatar

Joined: Sat Feb 12, 2005 9:43 pm
Posts: 11359
Location: Rio de Janeiro - Brazil
It didn't help that the game was hidden under a fake screenshot... A lot of people probably haven't even played it because of that.


Top
 Profile  
 
PostPosted: Fri Jan 04, 2019 1:49 pm 
Offline
User avatar

Joined: Fri Nov 12, 2004 2:49 pm
Posts: 7713
Location: Chexbres, VD, Switzerland
tokumaru wrote:
I don't know why some of you are wasting time talking about raster distortion racers... That's the standard way to do racers in old consoles and it's been done to death. Some use more advanced techniques, some look better than others, but it's basically the same technique and that technique had nothing to do with what dougeff is doing.

What dougeff is doing doesn't even remotely ressemble a road. It looks like a bunch of legos stacked up eachoether. I know pretty graphics are not important, etc... But there we're to the point the resolution is so low it doesn't display anything reconizable.


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 44 posts ]  Go to page Previous  1, 2, 3  Next

All times are UTC - 7 hours


Who is online

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