Skip to content

will-hart/whalesong

Repository files navigation

Whalesong

Concept

  • A minimal "walking simulator" (or "swimming simulator" I guess?)
  • Control a whale making its way down South from Australia to the Antarctic for summer.
  • (Animal migration is a cycle, get it?)
  • The game is peaceful and all about the atmosphere and discovering things along the way.
  • Encounters include birds, schools of fish, boats, other whales.
  • There is no end, and you can't die.
    • or maybe there is an end after a while when you reach Antarctica.
  • There are weather patterns and a day / night cycle.
  • There are storms
  • There are icebergs
  • The art is hand-sketched line art
  • top down perspective
  • The whale performs different actions when it encounters different things, for instance:
    • it plays around ships,
    • it eats fish,
    • it sings to other whales,
    • sometimes other whales will join ours
  • The player has limited controls, but can move left and right to move towards or avoid things.
  • The whale never stops swimming, just moves relentlessly South,
    • practically the whale stays still and the waves etc move around it.
  • The player can possibly (easter egg redacted)

Tasks

  • remove template art work and sound effects
  • spawn the whale
  • show the controls (minimal tutorial)
  • spawn starting waves
  • periodically spawn other waves
  • waves move
  • background music
  • encounter spawning system
  • whale movement
    • turn the whale when arrow keys are pressed
    • move the waves diagonally when arrow keys pressed
  • add encounters
    • birds
      • bird graphics added to creature.png
      • bird spawner
      • birds randomly spawn every X seconds
      • if birds get close, they circle the whale
      • after a while, the birds leave
      • add a "wander in area" behaviour while following the whale
      • bird sound effects
    • schools of fish
      • create fish sprite
      • spawn fish
      • fish boids
      • fish encounters
      • fish avoid the whale
    • ships
      • ship sprites
      • ship wake
      • engine noise
      • ship occludes waves, fish, whale but not birds
    • other whales
      • whalesong
  • Weather cycles
    • day/night
    • rain
    • snow
    • icebergs
  • polish
    • restyle the menu
    • make rotate + wave movement lerp smoothly transition between left/off/right instead of jumping immediately
    • when the whale turns there is a lot of empty space at the screen edges - no waves
    • move whale not things around the whale
    • update the credits
    • refactor whale movement to make it a bit less janky when turning
    • refactor whale following movement
    • fix baby not displaying
    • fix baby whale movement
    • fix flipped movement
    • refactor spawning rates to correspond with distance a bit better
    • snow first when travelling north
    • fix flip text
    • ship horn only sounds once
  • code "quality" lol
    • store whale position in a resource
  • stretch goals
    • periodically come up to breathe
    • don't allow whale rotation until the whale has fully completed its entrance animation and is positioned on the screen
    • Display player help icons after movement complete.
    • add the movement easter egg (its a secret)
    • add the cycles easter egg (its also a secret)
      • flip camera
      • flip anything that needs flipping
      • flip the controls
      • flip on a timer
      • flip text
      • add phase 1 on the northern flip
        • make it 100% likely on flip 1
        • make it not 100% on future flips
      • add phase 2 on the southern flip (if the northern one occurs)
  • bugs
    • starting wave animations all start at the same frame so they're all in sync
    • crash in movement when window minimised or in the background due to windows.single()
    • move targets aren't updated on screen resize, meaning that things just pile up on the screen edges
  • jam admin
    • update Cargo.toml
    • fix CI yaml file
    • set up itch page
    • do a test release
    • work out why the itch build isn't working
    • do a "Final final v1 latest" release before the jam ends
    • deploy to itch
    • add screenshots and details to the jam page
    • test deployed version

These ideas were abandoned due to it being a game jam game:

  • weather
    • wind
    • storms
  • stretch goals
    • add more encounters
    • add islands
    • add more music variety
    • ships avoid icebergs :grimace:
    • whale turning animation
  • ship volume depends on proximity to the whale
  • icebergs have different sizes without blurring

https://www.youtube.com/shorts/QaFM5X7KZX4

Credits

  • I've included https://github.com/DanielDK05/bevoids/ in this repo with the following changes:
    • update for bevy 0.14.0
    • allow setting velocity directly
    • add a BoidJitter component which adds a bit of random jitter to the movement
    • add a BoidRepulsor component which isn't a boid but pushes boids away
  • Sounds with "complex" names were taken from freesounds.org, and were all CC0 licensed.

Template

This repo used a slightly modified version of the bevy quickstart template.

License

The source code in this repository is licensed under any of the following at your option:

Assets are licensed under

About

A peaceful, meditative swimming simulator that follows a humpback whale on its annual migration cycle from the warm Northern waters off Australia down to the frigid Antarctic. There is no ending, and you can't die. Instead, just sit back, relax and swim.

Resources

License

Stars

Watchers

Forks

Contributors

Languages