Log In  
Follow
2bitchuck

Total amateur at this.

KiloWar 1.0
by 2bitchuck
:: Unfold ::

EDIT 09-22-2023: This morning, Lucky Draw worked briefly and then stopped working again, so I've changed this to a bug since it seems more like a glitch than an intentional change now.


A while back, Zep added a "Lucky Draw" sort to the BBS cart mode view that would pull in a not quite random assortment of cartridges based on a behind-the-scenes algorithm. You could get to it using this link: https://www.lexaloffle.com/bbs/?cat=7#sub=0&page=1&mode=carts&orderby=lucky or in SPLORE by switching to Lucky Draw.

I'm not sure how popular or even well-known it was, but it's been my go-to cart discovery method since it was created. I check it a few times a week to find interesting looking carts I haven't seen or played before. As of this morning though, it seems to be either gone or broken (it just returns a blank content area - if you change "lucky" to "ts" in the link above, you get cart view sorted by new as usual). It also doesn't work in SPLORE in PICO-8 0.2.5g, with an error saying "Could Not Connect To BBS" if you try to update the list.

On the web, I'm on Firefox 117.0.1 on Linux. Not seeing any errors in the browser dev tools. Anyone else use this and notice it not working anymore? I'm hesitant to call this a bug since it feels more likely that it was removed on purpose. If it's gone, I'll miss it!

P#134439 2023-09-16 14:00 ( Edited 2023-09-22 12:20)

:: Unfold ::

Cart #theblockydead-5 | 2023-05-13 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
4

Prologue

PIXBURGH, PIXELVANIA, 5/13/2023 - The city has fallen. The dead pixels have taken over. You can hear them growling all around you. They hide everywhere & pop out when you least expect it. They smell you, they get hungry. Hungry for pixel flesh. You can outrun 'em . . . for awhile. The longer you avoid them though, the faster & more determined they get. They got Spot, they got Dot, and now they're after me. I'm the last one left. Well, me & my buddy Point up in the tower. He's real good with fixin' stuff up, but parts & power are scarce. Every now & then he'll hit me on the radio with a new place to hide, or to let me know he's got a few seconds of juice for the lights & fences. Heck, sometimes he even rigs up a bomb for me to blast a few of the dead to oblivion! Just hoping it's enough. Hoping I can hold out long enough for them to give up & maybe take out a few along the way.

Gameplay

The Blocky Dead is a 64x64 timed survival game. Guide your pixel through the square, avoiding dead pixels for as long as you can. Use the helpers Point sends your way to hide from the dead pixels or take out as many as you can. Your initial goal is to survive for 10 minutes. Every game you survive the entire time bumps the time limit up by 5 minutes. See how long you can last and how many kills you can accumulate!

Controls

  • Arrow keys/dpad to move your pixel
  • X/Z/action buttons to use the currently active powerup
  • You can turn the growling noises on or off in the pause menu

There are 4 powerups to use. Point will rig up a new one every 20 seconds of game time, but you never know which one he'll get working at any given time. When you have a powerup, it will appear in the time box at the bottom of the screen. Point won't give you a new powerup while you're already holding one. Here is how the powerups work:

  • HIDER: Point has found you a hiding spot. Activating this powerup causes the dead pixels to wander away from you, but they will pick up your scent again after 3 seconds. You cannot move while hiding.
  • FLASH: Point powers up a powerful light on one part of the color spectrum. When the light is activated, any dead pixels the same color as the light are vaporized in 1.5 seconds. However, the light also stuns you and you can only move at half speed for that 1.5 seconds. Dead pixels of a different color than the light are not affected at all.
  • WALLS: Point has juice to turn on two lengths of electric fencing for 3 seconds. Any dead pixels who hit the fencing are fried to a crisp. You have insulated gear and are not affected, but the humming of the fence is disorienting and you only move at half speed for those 3 seconds. This one requires a lot of power, so Point doesn't get it working too often!
  • BOMB!: Point cobbles together a proximity bomb powered by your kinetic energy. Once you get the bomb, you can deploy it immediately, or you can hold it while you continue to run. For every 20 seconds you run around with the bomb, its blast radius increases. Hold out as long as you can for max carnage!

OK, But Why?

I've been super sick for several days now, and I decided I was going to spend this day in bed making a game in a single day. I also decided that I wanted the player character to just be a pixel. I don't know where the zombie idea came from, but I suspect how I'm feeling right now played into it. Anyway, today kinda turned into my own imaginary game jam, and this is the result! I will probably end up tweaking this a bit, but I told myself I was going to post the "jam version" regardless, so I did.

Credits

All code and SFX by me. Music is also by me, but it's a riff on the theme from The Walking Dead by the excellent Bear McCreary. Cover art is a heavily edited version of the packaging picture from a kids' zombie Halloween costume. Pixels all pset by me :).

Version history

1.2 - New power-up: proximity bomb. Also centered the game screen a bit better than it had been.
1.1 - Fixed bug where dead pixels could not kill player if player was hugging a wall
1.0 - Initial release

P#125002 2023-01-30 01:22 ( Edited 2023-05-13 22:05)

:: Unfold ::

Cart #popeyet-2 | 2022-12-25 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
6

Hello, this is a slapdash remake of the Atari 2600 classic "E.T. the Extraterrestrial", except instead of E.T., it's Popeye.

Help Popeye call his ship and return to his home planet by collecting the 3 pieces of the space phone found in pits scattered throughout the forest then making your way back to the landing zone in the woods. But beware! Bluto will come try to steal your phone pieces, and Olive Oyl will try to find Popeye and lead her sweetie by the hand back home to Washington, DC. Popeye can collect cans of spinach which just happen to be lying around for some reason, and he can trade nine of these to his pal Elliot, who will give him a piece of the phone in return. Popeye can use his alien neck extension powers to levitate out of pits he falls into or activate power zones that let him locate phone pieces in pits (? symbol), call his ship (cat symbol), call Elliot for a spinach-for-phone deal (smiley symbol), or send any unwanted humans back to Washington, DC where they belong (III symbol).

The game has most of the features of the Atari 2600 original, aside from these few:

  • Elliot can't bring Popeye back to life - that only works on E.T. That means there's also no flower in any of the pits.
  • There are no teleport arrows.
  • Popeye can't eat the spinach. Earth spinach gives Popeye cramps, unlike spinach from his home world.
  • Popeye can't run. Sea (space?) legs mean he can only walk.
  • The game is the same every time, but who would play this more than once anyway?

Nothing aside from Popeye's neck is animated, and the game is probably buggy in a few ways, but then again, so was the Atari 2600 game! Think of the bugs as loving homages. The code is very much in a "make it work, don't make it good" style. There won't be updates/changes to this, so I encourage you to love it as it is :).

CONTROLS:

  • Arrow keys/d-pad buttons to move.
  • Primary/secondary action buttons to activate Popeye's neck. When in a pit, hold the button to levitate out of the pit.

FAQ:

  • Why?

This was made in roughly 3 days as a Christmas gift for my awesome brother-in-law, the only one for whom this game is likely to make any sense. It got multiple delightful laughs at the family Christmas gathering, which is all I ever really wanted.

  • No, seriously, WHY?!?!

Sorry, no more questions.

P#123244 2022-12-29 20:12

:: Unfold ::

Revising my previous post and reopening as this now does seem like some kind of bug introduced in 0.2.5d/e.

On PICO-8 0.2.5e Raspberry Pi build running on EmuELEC 4.6 on the Gameforce Chi, select any local PICO-8 game from the game collection. You hear the PICO-8 startup sound and can even control the games (verified by pressing X to start a game and hearing the game music/sounds), but the screen on the Gameforce just shows "Loading..." even though everything is clearly loaded.

Originally I had marked this as not a PICO-8 bug, but it does now seem to be a bug introduced in the latest version. I first rolled back to 0.2.4c, which was the version I had been running previously, and it worked fine. Then I updated to 0.2.5c, and that also didn't exhibit this behavior. Updating once again to 0.2.5e reintroduces this behavior - games load, startup sounds play, game controls work, pause menu works, but PICO-8 is not drawn to the screen.

I'm not sure whether this is specific to EmuELEC with the Raspberry Pi build or if it's also an issue running on a Raspberry Pi (my Pi is currently in storage so I can't test it). Happy to try & dig anything out of the EmuELEC log files that might be helpful for debugging!

P#122400 2022-12-14 16:18 ( Edited 2022-12-14 18:58)

:: Unfold ::

Cart #iwokeuphere-1 | 2022-10-04 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
5

I found this spoooooooooooky thing I made a few Halloweens ago.

Just like the videotape in The Ring, if you don't make someone else play this within 7 days, bad stuff is gonna come for you! Don't try to avoid your responsibility to pass this on, I'll know (because I have access to the play count stats).

The exit is on the left. Arrow keys/d-pad to move . . . while you can.

P#118481 2022-10-04 02:07 ( Edited 2022-10-04 02:09)

:: Unfold ::

Cart #yachtrocks-1 | 2023-04-29 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
6

Revision History

  • 1.1 (2023-04-29)

    Fixed bug that caused 1-3-3-4-6 and 1-3-4-4-6 to resolve as small sraight.

  • 1.0 (2022-07-17)

    Initial release

Synopsis

Yacht Rocks is a single player 64x64 PICO-8 version of the dice game Yacht (not the brand name game, please don't come at me, Hasbro!). You roll 5 dice (up to 3 rolls per turn) and try to score the most points possible in all the categories. Surely everyone's played this game in some form, right? It's a classic!

I wrote this because it's a favorite activity of my sister & I when we're together. We get very competitive about it! I only see her every few years or so & I miss her a lot between those times. I thought this would be fun for her to play & screenshot for me while we're apart so we could compete between visits :).

Controls

Game Screen

  • Z: roll the dice
  • X: lock a die (locked dice are not rolled)
  • Left/Right arrow: move lock selector between individual dice
  • Up arrow: view the score sheet (press again to return to the game screen)
  • Down arrow: score the current set of rolled dice immediately

Score Screen

  • Z: score the currently selected category
  • X: view the dice being scored (press again to return to the score sheet)
  • Left/Right arrow: switch between top and bottom score sheet sections
  • Up/Down arrow: move category selector

Strategy!

  • There's a 35 point bonus for scoring 63 or higher on the top section. I recommend always targeting that bonus for max scoring. For example, if you roll four 6s, it's tempting to score that on Quad, but I would always choose to score that on 6s if available.
  • Every Yacht after the first scores a 100 point bonus. If you've gotten & scored a Yacht and then roll another, you can score that anywhere on the bottom section (including the two straights!) or on the top section for the matching number.
  • Use the up arrow to check the score sheet often! I tend to forget sometimes that I've already scored something and then end up going for things I don't need, which leaves me with nowhere to put them.

Credits

  • All code, sounds & graphics by yours truly
  • Title screen font is the 5x6 font by our very own @zep, found here: https://www.lexaloffle.com/bbs/?tid=32877
  • Opening theme is a riff on "Sailing" by Christopher Cross, the platonic ideal song of the yacht rock genre.
P#114451 2022-07-17 14:02 ( Edited 2023-04-29 18:44)

:: Unfold ::

Cart #unibomber-1 | 2022-07-14 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
19

Update 07-14-2022

The only thing I regretted not adding in the first version was a high score tracker, so that's in there now. You'll see your high score on the title screen and if you get a new high score, you'll see that on the game over screen. Happy unicycling!

Synopsis

Ted is a simple high wire unicycle daredevil stuntman. For some reason, the government wants him dead. Good thing he has a large sack full of bombs to fend them off! (wait, you don't think that's why they're after him, do you?)

Controls

  • Left/Right Arrows: Move Ted along the high wire.
  • Z: Drop a bomb. You can only drop one bomb at a time, because you are riding a unicycle on a high wire and it's hard to multitask.

About

I wanted to do something small scale to get myself to actually finish a thing, so I gave myself a time limit of 24 hours to build a complete game. I finished in roughly 20 hours, so mission accomplished! As my goal was to finish and move on, this will probably be the only version (imperfect though it may be) of this game I upload unless some game-breaking bug surfaces. Why this particular concept? I dunno, the whole idea of the army sending tanks after a unicyclist struck me as funny. Why black & white? I just love good one bit art. Mine is not what I'd call good, but I think it's charming at least.

Credit

  • The explosion particle system is something I've been using since @Krystman's Breakout Hero tutorial and tweaking along the way depending how complex/simple I need it to be. The particle code here is actually really similar to the code used in the current shmup tutorial it turns out, but it came from Breakout Hero originally and has lived in my snippets folder ever since.
  • The opening song is my rough attempt at a simple translation of "The Entertainer", a piano tune from 1902 by Scott Joplin. I think this song is great at letting you know that what you're about to play is very silly.

High Score

My current high score is 43. I'd love to see how you all do. Thank you for playing!

P#113931 2022-07-03 16:04 ( Edited 2022-07-14 14:23)

:: Unfold ::

Cart #uah_hween-0 | 2021-10-26 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
5

Hey, here's that thing you didn't know you needed - a stupid Halloween reskin of my already stupid game, Unsafe at Home! This quality reskin features Halloween colors and sprites, and a very slow, minor/off key rendition of "Take Me Out to the Ballgame". Why would I do this? Honestly, your guess is as good as mine as to what my brain decides is important at any given time. But 'tis the season, right? Both Halloween and the World Series are happening this weekend, so why the heck not?

Controls

Up arrow: move forward around the bases
Down arrow: move backward around the bases
X/Z: hit a homer! (once you've got a bat)

See the original game post for the full rules.

That's it. Now get out there and knock a few punkins over the wall, kid!

P#99172 2021-10-26 18:12

:: Unfold ::

Cart #unsafeathome-2 | 2021-07-10 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
8

Unsafe at Home: A 64x64 baseball bullet hell time wasting experience!

In the distant future, Blaseball is the only remaining sport, as foretold by prophecy. One day, two friends run across an ancient document: the official Major League Baseball rulebook. However, it is badly damaged and the two are left to interpret the rules for themselves. Here is what these two friends from the future think baseball used to be.

  • One player, the pitcher, attempts to hit the other player, the hitter, with baseballs. The book clearly says hitter, not hittee, which would make more sense, but these were ancient humans, so . . .
  • The hitter attempts to circle the bases counterclockwise as many times as he can without getting hit. Each time he does this, he scores a run. He must stay in the baseline at all times. He can circle the bases clockwise, but will not score runs in that direction, and in fact must recircle ALL the bases he circled clockwise in the correct direction before he is awarded a run for crossing "home", which is what people called fourth base in those days.
  • When the hitter scores 5 runs without having a bat, he gets a bat. The bat is used to hit home runs (maybe tihs is why he's called "hitter" and not "hittee"? The text is ambiguous). A home run clears all the balls from the field, but is obviously not worth any runs - that would be nonsense.
  • If the hitter chooses NOT to use the bat, he gets an extra run for every run he accumulates after getting the bat until he chooses to use the bat.
  • When the pitcher hits the hitter, that is called an inning (because the ball runs INto the hitter). The baseballs they found with the rulebook are all very old and immediately disintegrate when they run into the hitter. The game ends after 9 innings.
  • The pitcher throws a ball at the hitter once at the start of the game, once for every run the hitter scores, once after a home run, and once when he scores an inning. Every 5 runs the hitter scores, the pitcher starts throwing a little harder.

GOAL

Score as many runs as you can before the end of the 9th inning. My personal best is 21, I'd love to see how you do!

CONTROLS

  • Any key to start the game from the title screen.
  • Up arrow to run counterclockwise, down arrow to run clockwise. You only score runs running the bases in the correct (counterclockwise) direction, but running backwards is key to avoid getting hit sometimes!
  • X or Z to hit a home run when you have the bat!
  • X or Z to restart when the game ends.

CREDITS

I'm responsible for all the code, music arrangement & mediocre pixel art, such as it is. The concept came to me when I was watching an actual baseball game and saw the baserunner get hit during a rundown. It's 64x64 because it's harder and more chaotic that way :).

The music for "Take Me Out to the Ball Game" was composed in 1908 by Albert Von Tilzer, 20 years before he ever saw a baseball game. I think I took a few liberties with some notes here and there, but it's mostly faithful to the original.

P#94691 2021-07-10 22:37

:: Unfold ::

Cart #sevenbucks-1 | 2021-06-01 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
2

Seven Bucks and a Dream - a WIP slot machine.

Granny arrives in Vegas with 3 things: $7 in her purse, a dream of hitting it big, and an unhealthy love of the devilish one-armed bandit. Help Granny realize her dream of hitting it big by pulling this lever seven times. No, seriously, that's pretty much it. Once Granny's played 7 rounds, her back starts acting up on account of those real uncomfortable stools mixed with skipping her pain meds so she could enjoy the comp drinks. She's not gonna be able to move, and it'll be up to you at that point to choose "Reset Cart" from the menu or navigate away from this page to play a better game (or, you know, a game at all since, again, this is just you pulling the lever for Granny seven times).

I started this to help me work through some mental blockage - you may have seen other games I'm allegedly working on from my Twitter feed that I'm struggling to get over the hump with. This is me trying to create something super small scale so that I can cross the finish line. Much like Granny, I could use a win!

CONTROLS

  • X/Z to pull the lever!
  • Hold up arrow to view the payout table!

THINGS LEFT TO ADD:

  • A better looking machine!
  • Cleaner UI overall
  • Over the top Vegas lights/sounds!
  • Title/End screens
  • The Big Bet (tm), where you randomly get chances to bet it all!
  • More Granny sass!
  • Comp drinks mini-game (this is definitely feature creep and likely to be cut!)
  • Probably other crap I'm forgetting!

Enjoy!

P#92860 2021-06-01 00:43

:: Unfold ::

On the scale of important problems, I understand that this probably rates super low, but with the recent web player update, part of the start screen of one of my games has vanished. I'll show you what I mean. Here is the title screen of my cart as seen in the cover image:

And here is what you see in the current web player (0.2.1c.21):

The road that the cars are on is gone. This happens on both mobile and desktop.

I haven't updated the cart for about 3 months, and obviously I don't have this version to test with locally to see if it's something I need to change in my code to account for a feature change. I'm pretty sure that I'm the only one that plays my games, so not a huge deal for me personally, but I wanted to flag it in case this is happening to anyone else with a bigger audience.

P#86757 2021-01-24 22:34

:: Unfold ::

Cart #appabode-0 | 2021-01-01 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
2

This is a PICO-8 remake of the Atari 2600 game Haunted House! Can you collect the 3 pieces of treasure and escape the house before losing all your lives or running out of matches? How quickly can you do it?

Use X/Z to light a match - be warned, it won't stay lit for long! You can't see treasure or keys without light, and you can't pick up what you can't see. The monsters in the house will pursue you and will blow out your match if they get close. If they catch you, they'll steal your key and treasure to hide them in the house again.

Use left & right arrows on the title screen to toggle match flicker on and off. If you are a player for whom flashing lights/colors can trigger seizures, you'll want to turn the flicker off.

This game was made for Toy Box Jam 2020! All of the sprite and sound assets were created by others and everyone in the jam uses the same assets to make their games. Info on the jam and credits for all the assets provided to the participants can be found on the jam's itch.io page.

A huge thank you to the following folks for some of the code used in the game that they generously released under Creative Commons licensing!

There are probably bugs, but I've played a fair bit without a crash, so that's something at least :). So let me know in the comments how you did - time, matches & deaths!

P#86002 2021-01-01 01:42 ( Edited 2021-01-01 01:44)

:: Unfold ::

I have a weird thing going on that I'm 100% sure is because of something I'm doing wrong, but I can't quite figure it out. Hoping one of you will have some insight!

When I run my cart, I have a title screen music track that plays using music(X), then fades out using music(-1,500) when the user presses X/Z to start the game. There's an intro cut scene where a different track plays using music(Y) then fades out when that cut scene ends, also using music(-1,500). The user plays, there's no music during the game but there are a variety of SFX that play from time to time. When the user wins or loses, there's another cut scene that plays music(Y) - however, for whatever reason, it only plays one of the 2 SFX in the pattern this time around. When that cut scene is done, the user gets the score screen, which plays either music(X) or music(Z) depending on whether the user wins or loses, but again only one SFX in the pattern plays. The user can then press X or Z to go back to the title screen, and music(X) only plays one of the 3 SFX in that pattern.

I suspect that somewhere, something's not getting cleared from a channel and that's preventing the rest of the SFX from playing, but I am not sure how to figure out what I'm doing wrong or how to fix it. Is there any guidance anyone can offer from this vague description? This is for my Toy Box Jam game, so if I can't figure it out before the deadline, I may end up posting it with "broken" music and maybe somebody can help me figure it out from my specific messy code so I can fix it post-release :).

For TL;DR - the flow that leads to this condition is basically:

music(X) --title screen, plays all 3 SFX, player presses X/Z
music(-1,500) --fades
music(Y) --plays both SFX, fade starts when scene ends
music(-1,500) --fades

gameplay with various SFX but no music playing until lose condition

music(Y) --plays only leftmost SFX in pattern, fade starts when scene ends
music(-1,500) --fades
music(Z) --plays only leftmost SFX in pattern, player presses X/Z
music(X) --title screen, plays only middle SFX in pattern
P#85940 2020-12-30 19:36

:: Unfold ::

Does anyone know if there are any good token optimization tutorials out there? Something like a collection of tips that show a suboptimal way of doing something and then demonstrate an optimized equivalent?

I'm about 25% through my latest game but about 60% through my token count already. Ordinarily I am much more inclined to finish functionality first and optimize/polish later, but in this case there is no way I will be able to finish if I don't clean up because I'll run out of tokens well before everything is in.

I suspect most of my problem is that I have a lot of tables and nested tables, like this:

-- this is 76 tokens total and I have a total of about 608 tokens worth of just these
ryl = (yl + (flr(yl/10)*1.5))*7.84
rec={rec1={x=ryl,ogx=ryl,y=32,ogy=32,sx=0,sy=32,speed=rnd(1.25),f=false},rec2={x=ryl,ogx=ryl,y=111,ogy=111,sx=0,sy=32,speed=rnd(1.25),f=false}}

which I then refer to values of like this (adding another 26 tokens): sspr(oteam.rec.rec1.sx,oteam.rec.rec1.sy,sprw,sprh,oteam.rec.rec1.x,oteam.rec.rec1.y,sprw,sprh,oteam.rec.rec1.f)

There are obvious things I could do here, like shoving "oteam.red.rec1" into something more compact so it's a single token instead of 3 every time, but I'm hoping there are more "best practices" sorts of things folks could point me to for general token savings and more proper ways to deal with data structures like this.

P#83365 2020-10-26 15:04

:: Unfold ::

Cart #memory_2bc-0 | 2020-09-26 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
1

Long ago, while working on another game that I never finished, I stopped and made a quick & dirty version of Memory. I only just realized, more than a year later, that I stuck it in Work in Progress unintentionally!

Use the arrow keys to navigate the grid, ❎ to flip a tile, 🅾 to toggle show/hide the time clock (useful if you want to see how close you are to a personal best). When you match two tiles, they'll stay flipped. When you match all 16, the game is over! Try to see how fast you can match all 16 tiles. My personal best is 23 seconds, but I'm sure it can be done faster. I blame my arthritis for my performance :). If you beat 23 seconds, let me know in the comments!

P#82286 2020-09-26 03:28 ( Edited 2021-10-28 15:12)

:: Unfold ::

Cart #kilowar-5 | 2021-01-29 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
8

===UPDATES===
v1.0 - Played through about 200 matches (seriously) to find and fix the last couple of bugs hopefully (a race condition on coup fourré where you could end up with 8 cards in hand, hear the coup fourré sound, but not actually get the coup fourré and a condition where CPU could run out of cards first and leave the player unable to play or discard, thus effectively stopping the game). I had originally planned to update the sprites, but I honestly like them as is, so I'm keeping them!

v0.9.2 - Bug fixes related to end game no-winner nil conditions where player runs out of cards before CPU because player played one or more safeties after the deck ran out.

v0.9.1 - Fixed unchecked nil bug in case where CPU gets coup fourré with the emergency card and also has a Go card in hand (obscure devil of a bug!)

===ORIGINAL POST===

Hello everyone!

I made a PICO-8 version of the classic French car racing card game Mille Bornes! This is a game I've probably played thousands of times in my life from childhood through . . . not childhood (age is just a number, but it's a BIG number!)

In the game, you race against a CPU opponent to be the first to reach 700km (or, if you feel daring, extend the race to 1000km for a chance at bonus points). In addition to 1 point per km, you gain bonuses for playing safety cards, getting coup fourré (playing a safety card as the corresponding hazard is being played against you), winning a race without playing any 200km cards, extending to 1000km, winning after the deck has been emptied, and shutting out your opponent. You race until someone totals 5000 points and wins the match! You can see the cards and a brief rules description by pressing z on the start screen.

During the game, left & right arrows let you select a card to play or discard. x plays a card, z discards. The up arrow lets you play coup fourré if CPU plays a hazard for which you have the safety card. But be quick! You only have a short time to perform the coup fourré while the indicator flashes.

EDIT: I realized that the rules can be cumbersome to figure out if you've never played before. The Mille Bornes Wikipedia entry is actually a pretty good reference for the game rules.

This game is a lot of firsts for me: my first PICO-8 program, first experience with Lua, the first game programming of any kind I've done, first pixel art (quite obvious), first music composition (SUPER obvious). I'm proud of having created a fun, playable game, but it's very much the work of a game programing beginner, so don't expect highly optimized code or probably any techniques you should emulate :). I had 319 tokens left at the end and I'm sure there's plenty I could have done more efficiently.

Special thank you to @Krystman, whose Breakout tutorial was my impetus to give this a go, and from which tutorial I shamelessly grabbed the sash code to use for coup fourré. And thanks to everyone in this community. I think this is my first post, but I lurk & read the posts here frequently, amazed at all the cool ideas you all have and how willing you are to share your knowledge.

P#81787 2020-09-14 02:24 ( Edited 2021-01-29 18:22)

Follow Lexaloffle:          
Generated 2023-10-05 02:14:33 | 0.111s | Q:62