Log In  


Cart #50260 | 2018-03-11 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
37

A two-player juggling extravaganza!

Controls
Left player: S / F to move; Left Shift to toss!
Right player: Arrow Keys to move; N to toss!
(Controllers recommended)

Goal
The first player to drop five balls loses!

About Me
Howdy, my name is bridgs and I make games! If you enjoyed this cart, please leave a comment, I really appreciate them. And ALSO...

... if you'd like to follow me, I'm always active on Twitter!
... if making a chill lil' spider web sounds appealing, check out 8 Legs to Love!
... if you'd like a challenging boss fight, throw yourself at Just One Boss!
... if you're curious about my other games, you can find them on my website!

And as always... thank you for playing

37


Gosh, this is really cute! The music makes me happy. :)

It would be nice if you added a pause menu item to return to the mode select. I can obviously reset the cart, but it'd be nice to get out of a mode I didn't mean to enter, using the controller/keyboard.


On the programming side...

I'm poking through your code, and I have a question. I'm curious, why do you use your custom ternary() function rather than the direct cond and v1 or v2 expression?

It looks like the token count is the same, and the contents of the function are actually the exact expression I'm referring to, so you obviously know how to do it inline. Thus, I'm guessing there's a (potentially-useful-to-me) reason why you made a function for it. Please, satisfy my curiosity. :)


@Felice Thanks! Like the idea of adding a Return to Title Screen option, I always forget about tacking on pause menu items.

There is a rare token benefit to using ternary: it's automatically enclosed within parenthesis. So if you were writing code that would normally have needed parenthesis, you do end up saving a token.

move_dir * (is_sprinting and 2 or 0.75) -- 8 tokens
move_dir * ternary(is_sprinting, 2, 0.75) -- 7 tokens

But in my experience you're unlikely to make up the 12 tokens needed for the function definition. And there is the downside where a ternary function won't short-circuit the way an and-or expression will.

(player and player.speed or 0) -- evals to 0 if player is nil
ternary(player, player.speed, 0) -- throws an error if player is nil

So really... I just do it for readability, because I find the and-or syntax a lil' misleading to my eyes ~shrug~

Curiosity sated? Maaaaybe?


1

Sated indeed. I hadn't considered the free parentheses. I actually use ternary expressions a lot in my own code, and yeah, sometimes the need for parens and their additional (and I think needless) token does upset me, so this is an idea I can probably use. :)

Cheers!


1

Fantastic game, so much love imbued here. The over-the-top number of game modes made me lol.

And I love the dramatic tension when balls collide in mid air! ... OH NOES!!!


1

Just, wow. I don't know how you put this much content in one game. And to think on a Pico-8.

Also, Avant-Garde mode is an LSD simulator.


1

this game really fun to play with friend! good job :D



[Please log in to post a comment]