Skip to content

Harbour Kit v1 - Asset Checklist

Full asset inventory · Active work: Harbour Kit v1 - Production Workflow · Sprint: M0 = 6 assets only ([[Harbour Kit v1 - First Playable Slice#Milestone 0 — Walk to the bottle]])

Purpose

This checklist tracks the exact assets needed to build Harbour Kit v1 for CaptainsWorld.

The goal is to create a small but reusable top-down harbour world that can support:

  • bottle arrival
  • first guided movement
  • Fisherman missions
  • Harbour Master missions
  • Pier Manager cargo missions
  • Captain's Words activities
  • Captain's Numbers activities
  • first boat unlock
  • transition toward the lighthouse

This is not a final art list for the whole product.

This is the minimum reusable kit needed to prove the mission architecture.


1. Terrain Tiles

Water

  • [ ] water_tile_base
  • [ ] water_tile_variant_01
  • [ ] water_tile_variant_02
  • [ ] water_edge_top
  • [ ] water_edge_bottom
  • [ ] water_edge_left
  • [ ] water_edge_right
  • [ ] water_corner_inner_top_left
  • [ ] water_corner_inner_top_right
  • [ ] water_corner_inner_bottom_left
  • [ ] water_corner_inner_bottom_right
  • [ ] water_corner_outer_top_left
  • [ ] water_corner_outer_top_right
  • [ ] water_corner_outer_bottom_left
  • [ ] water_corner_outer_bottom_right

Shore / Sand

  • [ ] sand_tile_base
  • [ ] sand_tile_variant_01
  • [ ] sand_tile_variant_02
  • [ ] wet_sand_overlay
  • [ ] sand_to_water_edge_top
  • [ ] sand_to_water_edge_bottom
  • [ ] sand_to_water_edge_left
  • [ ] sand_to_water_edge_right
  • [ ] sand_to_grass_edge_top
  • [ ] sand_to_grass_edge_bottom
  • [ ] sand_to_grass_edge_left
  • [ ] sand_to_grass_edge_right

Grass

  • [ ] grass_tile_base
  • [ ] grass_tile_variant_01
  • [ ] grass_tile_variant_02
  • [ ] grass_detail_patch_01
  • [ ] grass_detail_patch_02
  • [ ] small_flower_patch
  • [ ] small_bush_patch

Wooden Dock

  • [ ] dock_tile_base
  • [ ] dock_tile_variant_01
  • [ ] dock_edge_top
  • [ ] dock_edge_bottom
  • [ ] dock_edge_left
  • [ ] dock_edge_right
  • [ ] dock_corner_top_left
  • [ ] dock_corner_top_right
  • [ ] dock_corner_bottom_left
  • [ ] dock_corner_bottom_right
  • [ ] dock_post
  • [ ] dock_post_with_rope

Stone Path

  • [ ] stone_path_tile_base
  • [ ] stone_path_tile_variant_01
  • [ ] stone_path_edge_top
  • [ ] stone_path_edge_bottom
  • [ ] stone_path_edge_left
  • [ ] stone_path_edge_right
  • [ ] stone_path_corner_top_left
  • [ ] stone_path_corner_top_right
  • [ ] stone_path_corner_bottom_left
  • [ ] stone_path_corner_bottom_right

2. Environmental Details

Shore Details

  • [ ] small_shell_01
  • [ ] small_shell_02
  • [ ] small_pebble_01
  • [ ] small_pebble_02
  • [ ] seaweed_patch_01
  • [ ] seaweed_patch_02
  • [ ] footprints_sand
  • [ ] foam_strip_small
  • [ ] foam_strip_long

Harbour Details

  • [ ] rope_coil
  • [ ] anchor_small
  • [ ] wooden_bench
  • [ ] notice_post
  • [ ] lamp_post_off
  • [ ] lamp_post_on
  • [ ] small_flag
  • [ ] hanging_flags
  • [ ] harbour_bell

Nature

  • [ ] tree_small
  • [ ] tree_medium
  • [ ] bush_round
  • [ ] bush_wide
  • [ ] flower_patch_yellow
  • [ ] flower_patch_white
  • [ ] rock_small
  • [ ] rock_medium
  • [ ] rock_cluster

3. Buildings

Harbour Office

  • [ ] harbour_office_base
  • [ ] harbour_office_door
  • [ ] harbour_office_window
  • [ ] harbour_office_sign
  • [ ] harbour_office_notice_board
  • [ ] harbour_office_lit_overlay
  • [ ] harbour_office_shadow

Fisherman Hut / Stall

  • [ ] fisherman_hut_base
  • [ ] fisherman_hut_roof
  • [ ] fisherman_hut_sign
  • [ ] fisherman_hut_table
  • [ ] fisherman_hut_shadow

Market Stall

  • [ ] market_stall_empty
  • [ ] market_stall_active
  • [ ] market_stall_canopy
  • [ ] market_stall_table
  • [ ] market_stall_shadow

Storage Shed

  • [ ] storage_shed_base
  • [ ] storage_shed_door
  • [ ] storage_shed_window
  • [ ] storage_shed_shadow

4. Captain Assets

Required Movement States

  • [ ] captain_idle_down
  • [ ] captain_idle_up
  • [ ] captain_idle_left
  • [ ] captain_idle_right
  • [ ] captain_walk_down_frame_01
  • [ ] captain_walk_down_frame_02
  • [ ] captain_walk_down_frame_03
  • [ ] captain_walk_down_frame_04
  • [ ] captain_walk_up_frame_01
  • [ ] captain_walk_up_frame_02
  • [ ] captain_walk_up_frame_03
  • [ ] captain_walk_up_frame_04
  • [ ] captain_walk_left_frame_01
  • [ ] captain_walk_left_frame_02
  • [ ] captain_walk_left_frame_03
  • [ ] captain_walk_left_frame_04
  • [ ] captain_walk_right_frame_01
  • [ ] captain_walk_right_frame_02
  • [ ] captain_walk_right_frame_03
  • [ ] captain_walk_right_frame_04

Optional Interaction States

  • [ ] captain_reading
  • [ ] captain_happy
  • [ ] captain_pointing
  • [ ] captain_surprised
  • [ ] captain_holding_bottle
  • [ ] captain_holding_scroll

Outfit States

  • [ ] captain_basic_outfit_idle_down
  • [ ] captain_uniform_idle_down
  • [ ] captain_uniform_idle_up
  • [ ] captain_uniform_idle_left
  • [ ] captain_uniform_idle_right

Optional later:

  • [ ] captain_uniform_walk_down_spritesheet
  • [ ] captain_uniform_walk_up_spritesheet
  • [ ] captain_uniform_walk_left_spritesheet
  • [ ] captain_uniform_walk_right_spritesheet

5. NPC Assets

Each NPC needs five MVP emotional states.

Fisherman

  • [ ] fisherman_idle
  • [ ] fisherman_talk
  • [ ] fisherman_worried
  • [ ] fisherman_point
  • [ ] fisherman_happy

Optional later:

  • [ ] fisherman_walk
  • [ ] fisherman_carrying_bucket
  • [ ] fisherman_celebrate

Harbour Master

  • [ ] harbour_master_idle
  • [ ] harbour_master_talk
  • [ ] harbour_master_worried
  • [ ] harbour_master_point
  • [ ] harbour_master_happy

Optional later:

  • [ ] harbour_master_holding_map
  • [ ] harbour_master_celebrate

Pier Manager

  • [ ] pier_manager_idle
  • [ ] pier_manager_talk
  • [ ] pier_manager_worried
  • [ ] pier_manager_point
  • [ ] pier_manager_happy

Optional later:

  • [ ] pier_manager_holding_clipboard
  • [ ] pier_manager_celebrate

Shopkeeper / Market Helper

  • [ ] shopkeeper_idle
  • [ ] shopkeeper_talk
  • [ ] shopkeeper_worried
  • [ ] shopkeeper_point
  • [ ] shopkeeper_happy

Optional later:

  • [ ] shopkeeper_holding_basket
  • [ ] shopkeeper_celebrate

6. Universal Props

These props should be reusable across multiple missions.

Cargo / Storage

  • [ ] crate_empty
  • [ ] crate_closed
  • [ ] crate_open
  • [ ] barrel
  • [ ] basket_empty
  • [ ] bucket_empty
  • [ ] cargo_cart_empty
  • [ ] cargo_cart_loaded

Fishing Props

  • [ ] fishing_net_normal
  • [ ] fish_token_01
  • [ ] fish_token_02
  • [ ] fish_token_03
  • [ ] fishing_rod
  • [ ] bait_box
  • [ ] fish_table
  • [ ] small_anchor

Harbour Props

  • [ ] rope_straight
  • [ ] rope_coiled
  • [ ] rope_tied
  • [ ] wooden_sign_blank
  • [ ] wooden_sign_labelled
  • [ ] signpost_blank
  • [ ] signpost_labelled
  • [ ] lantern_off
  • [ ] lantern_on
  • [ ] wooden_plank
  • [ ] map_board_blank
  • [ ] paper_note
  • [ ] scroll_closed
  • [ ] scroll_open
  • [ ] message_bottle
  • [ ] small_boat_empty
  • [ ] small_boat_ready

Collectible / Feedback Props

  • [ ] trust_token
  • [ ] harbour_stamp
  • [ ] map_fragment
  • [ ] rope_knot_reward
  • [ ] fish_token_reward
  • [ ] delivery_stamp

7. Mission Props and States

These are the props that visibly change during missions.

Repairable Props

Fishing Net

  • [ ] fishing_net_broken
  • [ ] fishing_net_repaired

Metadata needed:

  • [ ] repair points
  • [ ] stitch FX anchors
  • [ ] completion sparkle anchor

Broken Basket

  • [ ] basket_broken
  • [ ] basket_repaired

Metadata needed:

  • [ ] repair anchor
  • [ ] snap animation anchor
  • [ ] completion sparkle anchor

Fallen Sign

  • [ ] sign_fallen
  • [ ] sign_fixed

Metadata needed:

  • [ ] label anchor
  • [ ] pop animation anchor
  • [ ] completion sparkle anchor

Broken Plank / Dock Gap

  • [ ] dock_gap
  • [ ] dock_plank_fixed

Metadata needed:

  • [ ] plank placement anchor
  • [ ] dust FX anchor
  • [ ] completion sparkle anchor

Revealable Props

Faded Crate Label

  • [ ] crate_label_faded
  • [ ] crate_label_clear

Metadata needed:

  • [ ] text anchor
  • [ ] ink reveal mask
  • [ ] glow anchor

Harbour Map Board

  • [ ] map_board_blank
  • [ ] map_board_partial
  • [ ] map_board_revealed

Metadata needed:

  • [ ] reveal mask
  • [ ] route line anchors
  • [ ] map glow anchor

Old Letter / Scroll

  • [ ] scroll_blank
  • [ ] scroll_revealed

Metadata needed:

  • [ ] text area anchor
  • [ ] ink reveal mask
  • [ ] glow anchor

Fillable Props

Basket Fill System

  • [ ] basket_empty
  • [ ] basket_slot_positions_metadata
  • [ ] fish_token

Optional:

  • [ ] basket_full_overlay

Cargo Boat Fill System

  • [ ] cargo_boat_empty
  • [ ] cargo_boat_slot_positions_metadata
  • [ ] crate
  • [ ] barrel
  • [ ] basket

Optional:

  • [ ] cargo_boat_full_overlay

Bucket Fill System

  • [ ] bucket_empty
  • [ ] bucket_fill_overlay
  • [ ] bucket_slot_positions_metadata

Progressive Props

Fog Route

  • [ ] fog_full_overlay
  • [ ] fog_half_overlay
  • [ ] fog_clear_state

Alternative implementation:

  • [ ] procedural fog particle layer
  • [ ] opacity control

Harbour Activity State

  • [ ] harbour_quiet_overlay
  • [ ] harbour_warm_overlay
  • [ ] harbour_active_overlay

Alternative implementation:

  • [ ] control via NPC visibility
  • [ ] prop states
  • [ ] lighting overlays
  • [ ] market stall state

Boat Unlock

  • [ ] boat_unavailable
  • [ ] boat_ready
  • [ ] boat_departing_optional

Metadata needed:

  • [ ] boarding anchor
  • [ ] route transition anchor
  • [ ] sparkle anchor

8. FX Library

Core Feedback FX

  • [ ] sparkle_success
  • [ ] soft_glow
  • [ ] wrong_wobble
  • [ ] soft_error_pulse
  • [ ] object_pop
  • [ ] small_bounce
  • [ ] soft_shine

Mission FX

  • [ ] letter_fly_to_target
  • [ ] number_fly_to_target
  • [ ] stitch_line
  • [ ] ink_reveal
  • [ ] dust_puff
  • [ ] water_splash
  • [ ] rope_tighten
  • [ ] crate_snap
  • [ ] label_reveal
  • [ ] fog_clear
  • [ ] lantern_light_up

Ambient FX

  • [ ] water_shimmer
  • [ ] wave_loop_small
  • [ ] seagull_shadow
  • [ ] flag_flutter
  • [ ] lamp_glow_loop
  • [ ] floating_sparkle_indicator

9. UI Assets

Dialogue UI

  • [ ] dialogue_box_base
  • [ ] dialogue_box_nameplate
  • [ ] dialogue_continue_arrow
  • [ ] npc_portrait_frame
  • [ ] mission_objective_banner

Mission UI

  • [ ] letter_tile_base
  • [ ] letter_tile_selected
  • [ ] letter_tile_correct
  • [ ] letter_tile_wrong
  • [ ] word_slot_empty
  • [ ] word_slot_filled
  • [ ] word_slot_correct
  • [ ] word_slot_wrong
  • [ ] number_tile_base
  • [ ] number_tile_selected
  • [ ] number_tile_correct
  • [ ] number_tile_wrong

Buttons

  • [ ] button_primary
  • [ ] button_secondary
  • [ ] button_icon_back
  • [ ] button_icon_continue
  • [ ] button_icon_audio
  • [ ] button_icon_repeat
  • [ ] button_icon_help

Indicators

  • [ ] interaction_arrow
  • [ ] sparkle_indicator
  • [ ] mission_available_icon
  • [ ] mission_complete_icon
  • [ ] locked_path_icon
  • [ ] trust_gain_indicator

10. Interaction Metadata

These are not images, but they are required for the engine to use the assets.

Prop Metadata

  • [ ] fishing_net.metadata.yaml
  • [ ] basket.metadata.yaml
  • [ ] crate.metadata.yaml
  • [ ] signpost.metadata.yaml
  • [ ] lantern.metadata.yaml
  • [ ] map_board.metadata.yaml
  • [ ] cargo_boat.metadata.yaml
  • [ ] message_bottle.metadata.yaml

Each prop metadata file should include:

id:
category:
archetype:
states:
allowedPatterns:
allowedMechanics:
effects:
anchors:
interactionZones:

NPC Metadata

  • [ ] fisherman.metadata.yaml
  • [ ] harbour_master.metadata.yaml
  • [ ] pier_manager.metadata.yaml
  • [ ] shopkeeper.metadata.yaml

Each NPC metadata file should include:

id:
category:
defaultLocation:
states:
missionDomains:
preferredVerbs:
preferredProps:
dialogueTone:

Map Metadata

  • [ ] harbour_map_zones.yaml
  • [ ] harbour_collision_map
  • [ ] harbour_interaction_zones.yaml
  • [ ] harbour_npc_spawn_points.yaml
  • [ ] harbour_locked_paths.yaml
  • [ ] harbour_world_state_rules.yaml

11. First Missions Supported

These are the first missions the kit should support.

Mission 1: Bottle Arrival

Required assets:

  • [ ] shore_area
  • [ ] message_bottle
  • [ ] sparkle_indicator
  • [ ] scroll_open
  • [ ] captain_idle
  • [ ] dialogue_box_base

Required FX:

  • [ ] floating_sparkle_indicator
  • [ ] object_pop
  • [ ] soft_glow

Required metadata:

  • [ ] bottle interaction zone
  • [ ] bottle pickup trigger
  • [ ] scroll text area

Mission 2: Fisherman Net Repair

Required assets:

  • [ ] fisherman_idle
  • [ ] fisherman_talk
  • [ ] fisherman_worried
  • [ ] fisherman_happy
  • [ ] fishing_net_broken
  • [ ] fishing_net_repaired
  • [ ] letter_tile_base
  • [ ] word_slot_empty

Required FX:

  • [ ] letter_fly_to_target
  • [ ] stitch_line
  • [ ] sparkle_success
  • [ ] wrong_wobble

Required metadata:

  • [ ] net repair points
  • [ ] letter target anchor
  • [ ] NPC reaction mapping

Mission 3: Restore Crate Labels

Required assets:

  • [ ] crate_empty
  • [ ] crate_label_faded
  • [ ] crate_label_clear
  • [ ] letter_tile_base
  • [ ] fisherman_or_shopkeeper_states

Required FX:

  • [ ] ink_reveal
  • [ ] soft_glow
  • [ ] sparkle_success
  • [ ] wrong_wobble

Required metadata:

  • [ ] crate text anchor
  • [ ] label reveal mask
  • [ ] crate completion anchor

Mission 4: Sort the Catch

Required assets:

  • [ ] fish_table
  • [ ] fish_token_01
  • [ ] fish_token_02
  • [ ] fish_token_03
  • [ ] labelled_crates
  • [ ] fisherman_states

Required FX:

  • [ ] object_pop
  • [ ] small_bounce
  • [ ] sparkle_success
  • [ ] wrong_wobble

Required metadata:

  • [ ] draggable fish zones
  • [ ] crate drop zones
  • [ ] category labels

Mission 5: Load the Cargo

Captain's Numbers prototype.

Required assets:

  • [ ] pier_manager_states
  • [ ] cargo_boat_empty
  • [ ] crate
  • [ ] barrel
  • [ ] basket
  • [ ] cargo_cart_empty

Required FX:

  • [ ] object_pop
  • [ ] small_bounce
  • [ ] sparkle_success
  • [ ] crate_snap

Required metadata:

  • [ ] cargo boat slot positions
  • [ ] draggable cargo zones
  • [ ] cargo target zone
  • [ ] counter position

Mission 6: Share Fish Fairly

Captain's Numbers prototype.

Required assets:

  • [ ] fisherman_states
  • [ ] fish_token
  • [ ] basket_empty
  • [ ] delivery_cart_empty
  • [ ] house_door_or_family_marker_01
  • [ ] house_door_or_family_marker_02
  • [ ] house_door_or_family_marker_03

Required FX:

  • [ ] object_pop
  • [ ] small_bounce
  • [ ] sparkle_success
  • [ ] soft_glow

Required metadata:

  • [ ] basket slot positions
  • [ ] basket drop zones
  • [ ] group counters
  • [ ] correct distribution rule

12. World Progression Assets

Harbour State 0: Quiet Harbour

  • [ ] market_stall_empty
  • [ ] lamp_post_off
  • [ ] boat_unavailable
  • [ ] fog_full_overlay
  • [ ] fewer NPCs visible

Harbour State 1: Harbour Warming Up

  • [ ] market_stall_active
  • [ ] lamp_post_on
  • [ ] organized_crates
  • [ ] fog_half_overlay
  • [ ] more NPCs visible

Harbour State 2: Harbour Ready

  • [ ] boat_ready
  • [ ] captain_uniform_unlocked
  • [ ] fog_clear_state
  • [ ] route_marker_lighthouse
  • [ ] harbour_active_overlay

13. Major Story Moment Assets

These can be more illustrated/premium than the regular top-down map.

Optional Storybook Illustrations

  • [ ] storybook_bottle_arrival
  • [ ] storybook_harbour_master_gives_boat
  • [ ] storybook_captain_receives_uniform
  • [ ] storybook_first_sailing_to_lighthouse
  • [ ] storybook_lighthouse_visible_in_distance

These are optional for MVP, but they can make the major moments feel special.


14. Priority Levels

Use these labels when producing assets.

P0 — Required for first playable mission

  • [ ] water tile
  • [ ] sand tile
  • [ ] dock tile
  • [ ] captain idle/walk
  • [ ] fisherman 5 states
  • [ ] message bottle
  • [ ] scroll open
  • [ ] fishing net broken/repaired
  • [ ] letter tiles
  • [ ] dialogue box
  • [ ] sparkle indicator
  • [ ] letter fly FX
  • [ ] stitch FX
  • [ ] success sparkle FX

P1 — Required for Harbour community prototype

  • [ ] Harbour Master 5 states
  • [ ] Pier Manager 5 states
  • [ ] Shopkeeper 5 states
  • [ ] harbour office
  • [ ] market stall
  • [ ] crates
  • [ ] baskets
  • [ ] fish tokens
  • [ ] cargo boat
  • [ ] crate label faded/clear
  • [ ] ink reveal FX
  • [ ] object pop FX
  • [ ] wrong wobble FX

P2 — Required for progression and polish

  • [ ] fog overlays
  • [ ] boat unlock assets
  • [ ] captain uniform states
  • [ ] route marker
  • [ ] lighthouse silhouette
  • [ ] harbour state overlays
  • [ ] ambient FX
  • [ ] storybook illustrations

15. Production Notes

Do not create bespoke mission illustrations

Avoid producing a separate image for each mission.

Instead, create reusable:

  • tiles
  • props
  • prop states
  • NPC states
  • FX

Props should carry mission identity

NPCs should mostly use generic emotional states.

Mission-specific animation should happen through:

  • prop states
  • FX
  • object movement
  • UI feedback

Keep asset count controlled

The MVP goal is approximately:

  • 15–25 terrain tiles
  • 3–5 buildings
  • 4 NPCs × 5 states
  • 20–30 reusable props
  • 20–30 mission prop state images
  • 10–12 reusable FX animations
  • core UI components

Approximate total:

80–120 small assets.

Production principle

Build the Harbour as a reusable kit, not as a collection of one-off scenes.

Success criteria

Harbour Kit v1 is successful when it can support:

  • walking around the shore and pier
  • picking up the bottle
  • talking to the Fisherman
  • repairing the net through a literacy mission
  • restoring crate labels
  • sorting objects
  • loading cargo for a numbers mission
  • showing world state progress
  • unlocking the boat route to the lighthouse