Legs, a body and eyes. Both ibb and obb lack other features. They need legs to run and jump around. A body so they can stand on top of each other. Eyes to give them a soul.

All characters in ibb & obb feature the same pill shaped eyes. They differ in size and position, but are all derived from the same system. Each individual eye is made out of separate textures: a rectangle, rounded caps and a shut version. The proportions of the rectangle is a variable, so an eye can range from circular to tall.

The space between the eyes and the position on the body are also parameters defined in ibb & obb’s long list of constants.

ibbobb eyes definitions A ibbobb eyes definitions B

Quite some constants are used for controling when ibb and obb should close their eyes and for how long.

At the root of this there is the basic blink that helps moisten the ‘eyeballs’.
BLINK_DURATION = 0.1 seconds
BLINK_FREQ_LOWER_BOUND = 3 seconds
BLINK_FREQ_UPPER_BOUND = 8 seconds
Every 3 to 8 seconds the characters blink. A blink lasts for 0.1 seconds.

BLINK_DOUBLEBLINK_CHANCE = 10%
BLINK_DOUBLEBLINK_PAUSE = 0.1 seconds
There’s a 10 percent chance of a blink turning into a cute double blink with a 0.1 second pause in between the blinks.

BLINK_VERTICAL_SPEED_THRESHOLD = 90 units/second
When players run over a certain speed, they won’t blink as they need full concentration.

BLINK_HAS_BURDEN_WHILE_LIFTING_DURATION = 0.3 seconds
Close eyes for 0.3 seconds when jumping with the other player on top. No distraction during heavy lifting.

BLINK_HAS_BEEN_LANDED_UPON_DURATION = 0.15 seconds
BLINK_HAS_BUMPED_HEAD_DURATION = 0.15 seconds
Close your eyes when the other player lands on top of you or when you bump your head against something.

BLINK_HAS_HEADED_FIN_DURATION = 0.1 seconds
When you make a header.

BLINK_HAS_LAUNCHED_FROM_TIKTAK_DURATION = 0.2 seconds
Woooo. Launched in the air.

BLINK_HAS_LANDED_HARD_DURATION = 0.3 seconds
Ouch! A hard landing, 0.3 seconds of pain.

BOREDOM_MIN_TIME = 10 seconds
BOREDOM_MAX_TIME = 30 seconds
When the player decides to do nothing, it takes between 10 and 30 seconds for ibb and obb to get bored. They’ll sit down and a bit later, close their eyes for a nap until the player wakes them up again.

And that’s how ibb and obb convey their emotions. No screams, no laughs, just blinks of different durations.

  • Alex Camilleri

    That’s awesome Richard, thanks for sharing. I wonder how/when you used the eye_stance_rotation as well. Is it for looking at enemies when they’re closeby?

    • Richard Boeser

      Yes that helps them look at enemies and each other. You can see examples in the video.

      • Alex Camilleri

        for some reason I thought it was a static image ^^ Thanks for the clarification in any case.

  • Cam

    I love when developers put effort into tiny details like this. Thanks for the write-up!