Mario Kart

Propose new game/software design concepts or new game/software ideas. They can be as whimsical as you like, just be careful you don't ask someone to make it for you...
equinox
Berk
Posts: 20
Joined: Mon Oct 08, 2018 12:57 am

Mario Kart

Post by equinox » Sun Nov 18, 2018 1:04 pm

Hi. I've been thinking (not for the first time) how realistic is the idea of a Mario Kart style game on the Speccy?

I imagine we've all played Mario Kart, but it has a number of competing racers (sprites -- no 3D models needed) on a track, trying to complete a number of laps. That's like any Speccy racer (Pole Position, Buggy Boy, Out Run, etc.) -- BUT there's one big difference, which is that the tracks aren't a single long line stretching into space, but more like a certain shaped track (delimited by walls) within an imaginary square. This means, for example, you can turn around and drive backwards; or you might see another racer driving in the opposite direction, but ahead of you -- because they have gone around a zigzag bend that you can see.

I can see that this is a lot more complex than the typical racer, because it would require some kind of basic 3D modelling (if only drawing a few lines here and there). But is it possible? Has it been done on 8-bits? Could it be done on the Speccy? I think this would be excellent.

The closest things I can think of, technically, are perhaps Freescape games (solid 3D, we don't need all of that!), Hard Drivin' (similar -- and it's a racer -- and deathly slow), and Stunt Car Racer (very minimal, but quite real 3D -- however, it involves height levels, which kart games do not need).

tl;dr: Gasman, you have spent too many years making demos. Imagine the joy if you announced 8-player microdriveable Mario Kart at a party.
0 x

User avatar
R-Tape
Site Admin
Posts: 1922
Joined: Thu Nov 09, 2017 11:46 am

Re: Mario Kart

Post by R-Tape » Sun Nov 18, 2018 10:37 pm

equinox wrote:
Sun Nov 18, 2018 1:04 pm
Gasman, you have spent too many years making demos. Imagine the joy if you announced 8-player microdriveable Mario Kart at a party.
8 player? I think we need Winston as well as Gasman!

I'd love to see something like this, but would settle for a something simpler. Surely anything truely isometric would be wayyy too slow for a game like this, and any good enough approximation is the way to go?
0 x

equinox
Berk
Posts: 20
Joined: Mon Oct 08, 2018 12:57 am

Re: Mario Kart

Post by equinox » Mon Nov 19, 2018 12:58 am

To clarify: this game genre could be done by just drawing the "walls" as angled lines -- similar to how the actual track is drawn in many racing games. The complexity is that you might see several "walls" at different distances in a single visual frame (and collisions are important, but I doubt that's going to be the hard part). You would have to do a lot of 3D rotation (sine, cosine), maybe painful in Z80 but possibly not too bad. -- By the way, the (very fun) DOS game Wacky Wheels is a good example of the genre.

I don't think isometric is the right term because that's usually a game with a fixed angled field like Knight Lore. You could make a kart game with no actual "floor" tiles, purely karts floating around and moving between the walls/lines. (Of course adding stuff on the floor like oil puddles would be a bonus -- but let's stick to the do-ability for now.)
0 x

Bizzley
Dizzy
Posts: 85
Joined: Thu Nov 16, 2017 10:47 am

Re: Mario Kart

Post by Bizzley » Mon Nov 19, 2018 2:24 am

equinox wrote:
Sun Nov 18, 2018 1:04 pm
Hi. I've been thinking (not for the first time) how realistic is the idea of a Mario Kart style game on the Speccy?
If you're talking fast, true 3D then not realistic at all.

You could compromise by making it a 2D top-down view a-la super Sprint or one of the similar Codemaster titles, you might even manage to quarter the screen to get 4 players on at the same time.

Most into-the-screen racing games on 8bit computers fake it, they're not as 3D as you think they are. The ones that don't are the ones with the deathly slow frame rate, all those calculations come at a price.
1 x

Wall_Axe
Microbot
Posts: 173
Joined: Mon Nov 13, 2017 11:13 pm

Re: Mario Kart

Post by Wall_Axe » Mon Nov 19, 2018 8:26 am

i was thinking you could have a few dots on the floor to represent the track. The walls are difficult to represent. maybe they could be done like the spectrum version of doom
0 x

User avatar
djnzx48
Manic Miner
Posts: 218
Joined: Wed Dec 06, 2017 2:13 am
Location: New Zealand

Re: Mario Kart

Post by djnzx48 » Mon Nov 19, 2018 8:55 am

Something like Wacky Wheels on the Spectrum would be cool. Days of Thunder uses simple vector graphics for the track, and the speed is quite good when turning corners, although some of that may be precalculated so it might not be a good example. Scrolling the background scenery slows it down a bit so that's something that could potentially be optimised with preshifting etc.
0 x

User avatar
Ast A. Moore
Manic Miner
Posts: 875
Joined: Mon Nov 13, 2017 3:16 pm

Re: Mario Kart

Post by Ast A. Moore » Mon Nov 19, 2018 9:33 am

Well, lemme tell ya, after adding parallax/perspective shadows to Yankee, which involved spending a great deal of time optimizing and simplifying the math to keep everything moving at 50 fps, I have my doubts about the idea of Mario Kart on the Spectrum done at a decent frame rate. It would have to be sacrificed, and for a racing game, it’s the wrong kind of sacrifice.

Having said that, Micronaut One could be considered a 3D racing game. And it’s a damn good one. Nowhere near 50 fps, though.
0 x
Every man should plant a tree, build a house, and write a ZX Spectrum game.

Author of A Yankee in Iraq, a 50 fps shoot-’em-up—the first game to utilize the floating bus on the +2A/+3,
and zasm Z80 Assembler syntax highlighter.

Joefish
Manic Miner
Posts: 370
Joined: Tue Nov 14, 2017 10:26 am

Re: Mario Kart

Post by Joefish » Mon Nov 19, 2018 12:00 pm

I had considered something myself - I've done a 3D maze on the ST that properly rotates around the player (a bit like Wolfenstein 3D), though I used depth-shading instead of textures. It worked by drawing the edges of all the nearby walls on the ceiling then copying one pixel row of the screen down over the next one. A bit like an XOR fill, but able to cover up more distant lines without needing a sorting algorithm.
It wasn't very quick, and that was on a CPU with native multiply and divide.

A better approach might be to use a crude form of portal rendering. This is what a lot of early PC FPSs did. The level is chopped up into triangular or rectanglular segments, so there can be no hidden view of walls in any one segment (i.e. no side-chambers or recesses). But there can be completely open 'walls' between segments, so e.g. an L-shaped room would be cut into two rectangles with one common opening. For simplicity you could make your segments all squares forming a regular grid. You start by rendering the segment you're in, and take note of any open 'walls'. Then for each open 'wall', you narrow your rendering down to the width that open 'wall' appears on the screen (your 'portal' to the next segment), then you just render the next segment within the width of that portal. You'd need to be able to clip sprites to the width of the portal too, if there's a sprite in an adjacent segment. You can then iterate again if that segment leads to another, and so on, or you can limit your iterations, or design your level so there are never too many long lines of sight through multiple segments.

For a kart game, I'd render the wall lines on the floor then XOR-fill up to the half-way, eye-level point, to create a boarded-in course. You could then add other details like trees or flags as sprites above this line to give some sense of scenery moving past. You could maybe try rounding down the horizontal points of the walls to character cell columns and so have coloured walls, but that might be a bit too crude and result in the 3D being warped.

For speed though, particularly for more than one player, you'd need to use every mathematical and graphical optimisation trick known to man and invent a few more of your own too.
0 x

AndyC
Microbot
Posts: 197
Joined: Mon Nov 13, 2017 5:12 am

Re: Mario Kart

Post by AndyC » Mon Nov 19, 2018 9:34 pm

Mario Kart relied heavily on the SNES Mode 7 hardware scaling capabilities, which were capable of things that were difficult enough to try and pull of on other 16-bit machines, let alone the humble 8-bit machines. If you were to do it, you'd almost certainly have to limit it to being more like a traditional into-the-screen racer and would therefore lack the tight twisting tracks that really make Mario Kart work.
0 x

Bizzley
Dizzy
Posts: 85
Joined: Thu Nov 16, 2017 10:47 am

Re: Mario Kart

Post by Bizzley » Mon Nov 19, 2018 10:17 pm

And of course there's the controller: Turn Left, Turn Right, Brake, Accelerate, Use Item and Drift/Hop - those are the most important ones which you'd need if you wanted the proper feel of the game even though the original maps a few more functions on to other buttons. That would be fun to implement on a Kempston joystick.
0 x

Post Reply