1 of 14

0000 01 0110 0110 1011 100 010 0 01 11 0100 01 10 100 111000 01 001 1 111 0110 00 01 0010 111 010 1 0000 111 000 0 011 0000 111 01 010 0 01 000 0100 0 0 0110 110011 000 00 10 110 00 10 110 01 100 0 0100 00 110 0000 1 0010 001 0100 0100 001 0100 0100 01 1000 1011 00 10 1 0000 0 00 010 000 001 1000 1010 111 10 000 1010 00 111 001 000 0010 01 10 1 01 000 1011 110011 01 0110 1000 0 01 1 0100 01 1010 0 111 0010 01 0110 0110 01 010 00 1 00 111 10 01 10 100 0010 01 0100 000 0 0000 111 111 100 010101 111 100001 0010 111 010 1011 111 001 01 010 0 11 1011 000 01 0001 00 111 010 110011 0110 0100 0 01 000 0 100 111 10 010010 1 0100 00 0 010101 01 0100 001 0100 0100 110011 01 1010 001 0100 0100 110011 01 000 101 001 0100 0100 110011 011 00 0100 0100 1011 111 001 001100 1011 1000 0 01 1 1000 0 00

21-086 이현민, 21-014 김동언, 21-017 김민우

2 of 14

Table of contents

  1. Introduction
  2. Core Mechanics
    1. Sound System
    2. Node Traversal
    3. Loading Levels
    4. User Interface

3 of 14

Intro

Connect node to node in order manipulate sound to reach the end goal

4 of 14

Nodes(1)

SOURCE

GOAL

ADD

LINK

5 of 14

Nodes(2)

SUBTRACT

INVERSE

SPLIT

6 of 14

Nodes(3)

SHIFT RIGHT

SHIFT LEFT

PAD LEFT

PAD RIGHT

7 of 14

Core Mechanics(1) - Node Traversal

DFS starting from every source

→ Find terminal nodes�

S

S

8 of 14

Core Mechanics(2) - Sound System

BeatManager.cs

float variable: timer

timer var is reduced as time passes

when time < 0

Get sound that should play in that moment

9 of 14

Core Mechanics(2) - Sound System

BeatManager.cs

Play all the sounds

increment step

reset timer

10 of 14

Core Mechanics(2) - Sound System

Sequence.cs

Sequence holds Beat[] sequence

Beat is represented by a bitmask

Ex)

0: No sound

1: Kick Drum

2: Hi Hat

3 (1 + 2): Both sounds

11 of 14

Core Mechanics(3) - Loading Levels

Each level stored as a JSON file

→ Ease of creating levels

12 of 14

Core Mechanics(3) - Loading Levels

Deserialize JSON files using UnityEngine.JsonUtility

Create class structure to represent the loaded level

13 of 14

Core Mechanics(4) - User Interface

Added scroll wheel & each tiles

Tiles are added procedurally based on the JSON file

Drag & Drop

14 of 14

Example

Pad Left X 1

Shift Left X 6

Shift Right X 6

Inverse X 6

Split X 3

Add X 1