Brutal Pico Race is a fast and raw futurist racing game on Pico8 by me, Damien Hostin, on twitter yourykiki (The Lurking Engine)
I wrote a little insight on my blog in two parts, you can find it here and here
Choose one ship out of three class, choose a track and try to finish first ! You can also challenge a friend, alone or with AI, in split-screen mode !
Brutal Pico Race features :
Single player or two players in splitscreen
- 3 class of ships -heavy -normal -light with different speed curve
- 6 tracks
- 3 AI levels
Controls - keyboard or gamepad :
Menu
Use arrows to choose your ship / track / AI level
Z/C/N to start
When 2 players is selected, the second player can choose his own ship directly with S/F
Game
Player 1
- steering : arrow LEFT, arrow RIGHT
- accelerate Z/C/N, break V/X/M
- boost arrow UP
Player 2
- steering : S, F
- accelerate TAB/Z, brake Q
- boost E
after race
- up/down to see the other ships running
Great thanks to the pico 8 community (Zep, @p01, @FSouchu, @Felice_Enellen, Morgan...), all the followers who help me on the project ! And many thanks to my wife and children for the playtests and ships/tracks contribution !
If you like this game, don't hesitate to support it ! This will help me doing more ;)
Changelog
1.0.4 : (with pico8 0.2.1)
- @fsouchu subpixel polygon filling
- slightly better drawing distance in 2 players mode, 12 road blocks instead of 9
- drafting, stay long enough behind an opponent and get a boost
- Satisfying HUD design :
- formatting lap time correctly
- reduce health, boost and speed bar to center the pilot face :)
1.0.3 :
- We can finally die !
- Fix live rank
- Fix a bug where boost had not influence on centrifugal force, so now be carefull with boost spamming !
- Add chronometer and timeboard (best race time per track and per AI skill)​
- Add 3 tracks
- Add a 2 channels music for single player race
- Add controls helps
- Adaptive difficulty on boost, AI use less often boost when you're last or 3rd
- Change ship names
1.0.2 :
- Increase difficulty
- 3 kinds of bots
- Better end screen
- Changing camera after race
- Other ship progress on left
- Cooldown for ships collision damage
- Changing track loader, room for 3 new tracks
- Better boost visual fx
- Fix boost sound fx in splitscreen
- Change morgan3d heapsort with triplefox's shellsort
1.0.1 :
- first public
- Changed rasterizer for @p01
1.0 :
- Initial version
Awesome work. I've seen this pop up on twitter a couple of times. It's good to see you've managed to get it done.
The 3D looks great for both the tracks and the ships. I like the technique you used to create the 3D ships out of layers from the spritesheet.
The gameplay is really fun too. The driving mechanics feel smooth and natural. Had to change the AI to normal though. Easy was too easy after I figured out how boost worked. The sound effects for boost are nice, I found myself watching the track and just operating boost off the audio queues without realizing it.
The only down side is that there's only 3 tracks. I don't know if you've got the space for more, but I think it would add more longevity to game.
There seems to be a bug on the main menu where it's possible to move down past "ship 1".
Yeah! Super fun to play and very well done!
Major gripe: single player is way too easy (even in hard difficulty). Looks like bots are not using boost :/
I like the built-in ship editor :)
Look ma, there is a tank in da game:
ahah, cool tank !
AI should use the boost, the difficulty tells how often it is possible. I could update the difficulty to be more challenging on each level.
For the tracks, I can take a look, maybe one more could fit in, the limit for the tracks is not really token, but compressed size.
Great work YouryKiKi! :D
Been following this for a long time and it's amazing how much you've squeezed into one cart, congrats!
No issues or suggestions, all great.
(Only issue I found was playing this on Itch, not sure if it's just me or whether there's an issue with the release on there?)
Looks great!
If you can, you should have AI take over the player's vehicle at the finish line.
To second @Felice comment, winning is a bit 'meh' compared, say, to startup screen. Make use of that nice colored font of yours a bit more!
Edit: would be good also to hear how development went, and any technical "tour de force" you'll recall in your old days!
You are both right, I was really short with tokens before using p01 rasterizer and I take a lot of shortcuts. I had some items on my todo list, like a timer and a "time board", choosing the color of the ship (all would be light/dark gray in sprite shit, and palette would do the job), boost effect like "manga", minimap other type a road block, "3D" spining track in menu. But I didn't think about a cool end screen :D or an AI take over.
I could also take another sort algorithm the morgan3D heapsort I use is only used on menu screen, and I have some room for CPU here. I could test a lighter (in token) implementation if cpu is not overwhelm by 2 ships. (The tank would cost a lot :D )
I now have a harder game, my children can't finish first on the hard difficulty any more :D I do. I was thinking about a overall lower speed for easy, and higher for the hard.
So, I'm working on a new release with harder difficulty, a cool end screen and maybe, and if possible AI takeover a time board.
I had a look at how you're storing and parsing your tracks and I think you could save on both tokens and compressed size if you moved the track data into the map. I know you have a little bit of data stored in the map already and may end up being a bit of extra work to write a quick and dirty cart to poke your current data into the map a cstore it to a file, but I think it would be worth it if you want add more stuff to the game.
As a quick example based on what I've done in my own carts (and because I'm a weirdo that finds it easier to explain with code), it could be something like this:
function parse_trk() local trk={} for i=1,read_byte() do trk[i]={curv=read_byte(),len=read_byte(),frc=read_byte(),hgt=read_byte(),hln=read_byte()} end return trk end function read_byte() local val=peek(0x2000+byte_offset)-128 byte_offset += 1 return val end |
Anyway, just a thought. I think you've already got a real classic here but I'm looking forward to your update all the same.
I love the game, it's pretty good, but I think a scoring system would be a wonderful addition to it. As it is now, there's not much replay value for single player.
Also, I think the AI is a bit too easy, I defeated Hard mode without too much trouble. Might be just me though.
that being said, great work!
This week I rised the difficulty, add gfx on end screen and port 2 tracks with the new parsing system suggested by paranoidcactus. At the end I get ~50 tokens free
A chrono / score system for single player should fit in :)
EDIT: I should be able a add 3 tracks, and AI uses one ship of three kind :)
This game is amazing! Reminds me of STUN Runner and Stunt Car Racer, mixed with F-Zero. Good stuff!
This is definitely super impressive from a technical and visual standpoint. The 3D effect of the ships and the track is great, as are the speed particles whooshing by and the animated rainbow text.
A few notes:
- I notice the position tracker is inconsistent at times. If you complete a lap and you are far ahead of the pack the game gets confused and displays you in last place for a little while, and sometimes in third place you'll suddenly jump to first for a bit despite not passing any ships.
- I think this game would really benefit from some actual racing music. While I don't have a problem with the use of a continuous drone engine noise, and it's good feedback to the player of their relative speed, it's pretty loud and there is literally nothing else to listen to besides the infrequent sound of crashes. The boost noise itself is nice at least, though I'm not as big a fan of the charge-up sound.
- One suggestion: if you can spare the tokens, a much fancier visual effect for using your boost (like a big flare-up from the thrusters and/or a stream of bright particles) would make it feel much cooler.
I edit the first post with the new version, 1.0.2
In short:
- better and various AI ships
- better end screen
- chasing cam after race
...
Depending on the feedbacks, next release will contain:
- 3 news tracks (I have room for it now :) )
- race time and timeboard
- 2 chan music
- position fix
I've just updated the first post to add a link to an article that explain how I render ships and road.
HF :)
Superb ! I'm not very good at these games bu wanted to ask. Do you have DRIFT in the engine ?
There is no drift, I didn't think about it :D
I wanted to add "aspiration" (not sure about english translation, I mean having a boost after staying a while behind an opponent), but I ran out of token before.
I add variety to gameplay by the 3 class of ships you and the AI can control, the boost, the 3 skills of AI and the halfpipe which can provide some boost.
In english, we call that 'drafting'. That's a good idea. A lot of driving games do it, especially sims.
Awesome! Could a multicart sequel be possible?
4 players could be an extra
I sometimes think about a sequel in full 3D, not surely multiplayer in split screen... Will see that :D
4 players would be a challenge, for the dev as for the players ;D
Very impressive! My only minor complaint is that the buildings on at the horizon appear to be the same color as the track which can make them difficult to distinguish.
I recently discovered @freds72 polyfill, with subpixel precision, allowing polygon with 4 or more edges to display slightly faster than 2 trifill from @p01...
Combining with the new bitwise operator and some negative value to cost one token less, I win 3% on CPU and 80 tokens !
I had to use this little extra !
So I decide to improve the viewing distance in split screen, which was very close, and add a gameplay feature that was on my todo-list, drafting !
It is not a realistic drafting, but more like in mario-kart. You don't gain a continuous little boost while staying in the trail of an opponent. Instead, you gain a boost after staying 1 second in the trail. Of course you need to have a good speed to trigger the boost. The game indicates that you have the good conditions to trigger the boost by adding a visualfx, a lot of "speed dust" (the same when you go beyond the maximum engine speed) A wind sound indicates that the boost is activated, beware of collisions :D
8192 tokens :)
Good luck and have fun !
Ahah, excellent, well done !
Some days ago, I manage to compact some declaration and win 50 tokens...
Wondering what I can improve, more tracks maybe, or better (more fun) AI...
Stay tuned :D
[Please log in to post a comment]