Log In  

This is an older work-in-progress version! Play the completed released version here.

Cart #mot_ramps-14 | 2020-05-25 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

This is a little scaled-sprite 3D graphics engine inspired by the old classic game Power Drift.
Still work in progress. Needs some basic game-play rules (laps, win/lose etc) and some difficulty balancing. But it's playable.


  • Fixed bug in saving tracks to external cart.
  • Added a little bit of steering assist to help line up the jumps.
  • Some other tweaks I forget :)

Update 2

  • 2 tracks
  • Track selector
  • Trees generate in the same place

Update 3

  • New track
  • (Slightly) better physics/collisions
  • Finish line and corner signs

Update 4

  • New larger test track
  • Performance optimisations. LOD system. More aggressive view volume culling
  • Tweaked the steering

Update 5

  • More performance tweaks

Update 6

  • More performance tweaks, thanks to @freds72
  • Updated physics to support driving upside down!
  • New track with loop-the-loop (to test driving upside down :)

Update 7

  • AI cars. WIP. No collisions yet. Difficulty will probably be scaled down a bit eventually.
  • Moved editor to separate cart.
  • I tried to draw a palm tree.

Update 8

  • Different AI car colours.
  • Fixed flip-Y logic when AI cars are upside down.

*Update 9

  • Basic car collisions
  • AI cars now steer around each other (and you)

Update 10

  • Cockpit graphics with animated front wheels.
  • Main menu
  • Race start sequence

Update 11

  • Fix wheel animation when frame rate <30
  • Fix NPC cars getting stuck on hills

Update 12

  • Lap and position displayed on screen
  • Race finishes after 5 laps
  • Note: Difficulty level logic is not hooked up yet!

Update 13

  • Hook up difficulty levels
  • First attempt at engine sounds
  • "Ramps" logo :)
P#72871 2020-02-07 12:34 ( Edited 2020-07-07 08:39)

This is crazy. Good job!

P#72876 2020-02-07 13:30

Interesting starting point (with an editor no less...)!

P#72888 2020-02-07 20:41
:: dw817

Wow this is some HARD DRIVIN' !

P#72895 2020-02-08 01:05

This is really cool but I gives me anxiety to play..

P#72916 2020-02-08 19:27
:: Mot

Not for the faint of heart :)

Still has some CPU issues. The main bottleneck is sorting the billboards from back to front. It's currently just using an insertion sort - which actually works pretty well most of the time, because the data is mostly sorted from the previous frame - but every now and then the camera turns far enough to flip a bunch of billboards into different order and the sort alg struggles.

P#72955 2020-02-10 05:38

For sort performance, have a look at radix sort. I forked a version from James: https://twitter.com/fsouchu/status/1212352497865674752?s=21
(might need a fix - can’t check atm)

Other than that, what about rendering road sprites as rectfill (with proper color) above a certain distance?
Or reducing track precision at distance?

P#72958 2020-02-10 07:54 ( Edited 2020-02-10 12:05)
:: dw817

Would be interesting to show "wrecks" that is, if the player collides hard into the ground then like the game HARD DRIVIN' it shows just how it appears on camera thus:


P#72981 2020-02-11 02:06
:: Mot

@freds72 thanks, I'll give that a go. I tried a pivot sort before but couldn't get it fast enough.

@dw817 stunt car racer had a cool wreck system too. It all depends on having enough tokens though. I'm starting to consider having a separate track editor cart and game cart to fit it all in.

P#73009 2020-02-12 09:22

Add drift ;)

P#73138 2020-02-15 21:07
:: Mot


There is some code for sliding, but a controlled powerslide is rather difficult. I might be able to tweak it a bit though.

P#73147 2020-02-16 08:38

Cart #finaduwisu-0 | 2020-02-16 | Code ▽ | Embed ▽ | No License

could not resist trying out rectfill-based LOD ;)

P#73148 2020-02-16 09:18 ( Edited 2020-02-16 09:18)
:: Mot

@freds72 looks quite clean actually.
I tried a version that was just rectfills, and found that if I also disable the sorting the CPU stays under 100% all the way around the track. (Although without the sorting it does strange things to my brain..). I think the sort is still the bottleneck right now.

P#73149 2020-02-16 09:49 ( Edited 2020-03-10 09:56)

try that pivot sort then!

P#73150 2020-02-16 10:00

I feel like the road is too slim, because I always fall off of it.
I think every lane should be 1½ cars wide instead of just 1.
Or maybe I just fall off because I can't steer in the air.

P#73164 2020-02-16 20:58 ( Edited 2020-02-16 20:58)
:: Felice


  • Try to stop thinking in degrees and think in turns instead. Not only does it suit PICO-8's API better, but it's often a much more convenient way to express angles, since the angle in turns is just the number you slap in front of τ (or 2π) to send to trig functions on big-boy platforms. But mainly you want to eliminate all of the multiplying and dividing by 360, 180, 90, and other non-power-of-2 numbers.

  • Maybe round off the top/outside corners of your road chunks. You already round off the ramps a bit. It'll help the road look less blocky.

  • Try a somewhat-wider FoV. It's discouragingly-hard to see what's coming around corners with the narrow p8 screen
P#73539 2020-02-28 12:19 ( Edited 2020-02-28 12:24)
:: Thom

I like this a lot!

P#73553 2020-02-28 20:17

Very good job, it's the fact that Pico-8 got power to do that nice Sega's Classic! Keep up the good work!

P#74015 2020-03-17 18:22

Wow This is amazing!

P#76253 2020-05-09 18:18

[Please log in to post a comment]

Follow Lexaloffle:        
Generated 2020-07-12 19:34 | 0.064s | 4194k | Q:81