Welcome to the Whiplash Taxi Company, where our motto is "The slower you're there, the lower the fare!"
As a valued employee and taxi driver, your job is to pick up passengers and deliver them to their destination as fast as possible, by any means necessary.
Passengers are easy to spot, just look for the big red arrows over their heads.
Simply stop next to them so they can jump in!
Then follow the red destination indicator to the destination and stop when it says "stop!".
Repeat this as many times as possible in 5 minutes, and see how much $$$ you can bring in.
But beware, sometimes the direct route isn't the quickest.
To make it easier we have provide this giant map of Motsville. You may want to spend some time in "Free Explore" to get the layout. Or try some of the fully legitimate and not just driving-around-random-streets-way-too-fast street circuits, and maybe set a few lap records.
Remember, at Whiplash Taxis when we say "Break neck speeds", we mean it!
(Hopefully not literally. Hopefully.)
About the controls: not sure if it's just me but I often find myself pushing up to accelerate (typically after a short reverse) and it does nothing until I release and push up again.
Edit: nevermind I understand it's by design to allow a complete stop.
This is awesome!
@Minion Picotron will probably (hopefully) have a mini grand theft auto considering that this can be done with pico-8...
(also, maybe turning off the stopping at 0 speed when going from reverse to drive and vice versa could be turned off in race mode? But then that makes crashing less impactful, I'm not sure actually)
i love the passengers reactions to me just bumbling around, i love the car wobbling and the feeling of swerving at corners, i love the two cars that got into a car crash in front of me and made me go all "get out of my way!!!"... it is so much fun to live in the world of whiplash taxi co!!
@quewon I had plans that the AI cars would obey the road rules. It even had the give way rules defined in the data at one point.
But there was always a more important feature to implement, until eventually there were no more tokens. So it turns out it wasn't as important as I thought 🙂.
@KoboldKing OK, I'll try :)
First, if you look at the top right area of the Pico-8 map it contains the layout of the city.
It's drawn with specific sprites from tab 3. The left ones are for the ground. The bottom ones are for buildings (which also include hedges and walls).
(Btw, if you feel like editing the game world you can just draw on the map and run the game.)
If you look at the top left of the map, you'll notice it looks a lot like the tab-3 sprites. Here's it zoomed out:
Each of the tab-3 ground sprites correspond to an 8x8 region of the map at the top left.
Zoomed back in again, you can see the full "textures" (if you want to call them that):
So, we have a 64x32 map where each tile expands out to an 8x8 "texture" of tiles, giving us a 512x256 tile play area. Which is big enough to make a (hopefully) interesting town to drive around in, and all fits inside the Pico-8 map with some tiles left over for other gfx.
So the actual rendering is essentially a Wolfenstein 3D style ray caster, and borrows some code from Trial of the Sorcerer. With some changes.
- There's no ceiling.
- "Walls" (i.e. the buildings) can have different heights
- When a ray hits a "wall" it draws it, then continues casting outwards to see if there's a taller "wall" behind it that also needs to be drawn.
To draw the ground it actually uses a modified ray cast. Instead of going outwards from the camera, it traces the ray across the ground from left to right for each scanline. Instead of looking for walls, it looks at where the ray enters and exits each grid cell, looks up the ground type from the map, and draws a tline of the corresponding 8x8 map "texture".
The full render process is basically:
- Draw the ground from top to bottom.
- Draw the buildings from left to right, by ray casting for each column of the screen (like a regular Wolfenstein 3D engine).
- Draw the sprite objects from back to front.
That's basically the gist of it :)
There's also a twitter development thread here.
I've never tried raycasting, this is so cool! Thanks for sharing this, I'm definitely going to be poking around the code of this and trying to do whatever. Do you think it would be possible to make this 3rd person? This isn't a suggestion btw, i'm asking about literal possibility! i have some f-zero related ideas
[Please log in to post a comment]