Intelligent Sound Bubbles. Dragica Kahlina sound artist & musician (

Similar documents
dynamic environments mobile edition!

Reading and Writing. Mathematical Proofs. Slides by Arthur van Goetham

CS 354R: Computer Game Technology

P vs. NP. Data Structures and Algorithms CSE AU 1

Introduction to Computer Programming

Practical Data Processing With Haskell

1 a) Remember, the negative in the front and the negative in the exponent have nothing to do w/ 1 each other. Answer: 3/ 2 3/ 4. 8x y.

Propositions. c D. Poole and A. Mackworth 2010 Artificial Intelligence, Lecture 5.1, Page 1

Lesson 1: What s My Rule?

MATH240: Linear Algebra Review for exam #1 6/10/2015 Page 1

THE WHISPERING MOON WORKSHOP

1 General Tips and Guidelines for Proofs

Nondeterministic finite automata

Section 2.5 Linear Inequalities

Section 20: Arrow Diagrams on the Integers

Good Hours. We all have our good hours. Whether it be in the early morning on a hot summer

The Intersection of Chemistry and Biology: An Interview with Professor W. E. Moerner

5.2 Infinite Series Brian E. Veitch

For the given equation, first find the x-intercept by setting y = 0: Next, find the y-intercept by setting x = 0:

Knots, Coloring and Applications

CS 6783 (Applied Algorithms) Lecture 3

Up In the Air Lesson 15-1 Representing Situations with Inequalities

At the start of the term, we saw the following formula for computing the sum of the first n integers:

The Inside-Outside Algorithm

PMD/X Tutorial. Physics and Joints. First Published: 07/07/12 Updated On: 12/08/12

Final Review Sheet. B = (1, 1 + 3x, 1 + x 2 ) then 2 + 3x + 6x 2

Independent Events. The multiplication rule for independent events says that if A and B are independent, P (A and B) = P (A) P (B).

Discrete Mathematics and Probability Theory Spring 2016 Rao and Walrand Note 1

Math 381 Discrete Mathematical Modeling

control in out in out Figure 1. Binary switch: (a) opened or off; (b) closed or on.

6.045: Automata, Computability, and Complexity Or, Great Ideas in Theoretical Computer Science Spring, Class 8 Nancy Lynch

Information System Desig

Homotopy type theory

Trends, Helpouts and Hidden Gems: Additional Google Tools to Strengthen Your Brand

Correlation and regression

CS 570: Machine Learning Seminar. Fall 2016

Grade 7/8 Math Circles November 27 & 28 &

How To Write A Testable State Machine. Matthew Jones ACCU Conference, 26 th April 2012

Lab 8 Impulse and Momentum

Where, on Earth, are you?

Proof Rules for Correctness Triples

CHAPTER 1. Introduction

A L A BA M A L A W R E V IE W

Christophe: How do you heat your houses when it's so cold?

COMPLETE FEATURE COMPARISON LIST

Data. Notes. are required reading for the week. textbook reading and a few slides on data formats and data cleaning

SOLUTION. Homework 1. Part(a) Due: 15 Mar, 2018, 11:55pm

PHYS 228 Template Example

Example. How to Guess What to Prove

from Euclid to Einstein

Functions - Definitions and first examples and properties

Primary KS1 1 VotesForSchools2018

Building Finite State Machines

The Fundamental Theorem of Linear Algebra

Factorial Independent Samples ANOVA

Chapter 5: Propositions and Inference. c D. Poole, A. Mackworth 2010, W. Menzel 2015 Artificial Intelligence, Chapter 5, Page 1

Introduction to Algorithms / Algorithms I Lecturer: Michael Dinitz Topic: Intro to Learning Theory Date: 12/8/16

Comparing State Machines: Equivalence and Refinement

Solution to Proof Questions from September 1st

Applied Category Theory. John Baez

Getting Started. Starting the Game. Controls

What is a force? How can a force be measured? How do balanced and unbalanced forces affect objects?

Descriptive Statistics (And a little bit on rounding and significant digits)

Math 38: Graph Theory Spring 2004 Dartmouth College. On Writing Proofs. 1 Introduction. 2 Finding A Solution

Music as a Formal Language

Column: The Physics of Digital Information-Part 2 1

Math 416, Spring 2010 Coordinate systems and Change of Basis February 16, 2010 COORDINATE SYSTEMS AND CHANGE OF BASIS. 1.

CS 480: GAME AI MOVEMENT. 4/10/2012 Santiago Ontañón

LAB 6: WORK AND ENERGY

CSEE W3827 Fundamentals of Computer Systems Homework Assignment 3 Solutions

Finite State Machines Transducers Markov Models Hidden Markov Models Büchi Automata

Homework 1. Part(a) Due: 15 Mar, 2018, 11:55pm

Don t Plan for the Unexpected: Planning Based on Plausibility Models

DC motors. 1. Parallel (shunt) excited DC motor

Ch 4 Differentiation

MySQL 5.1. Past, Present and Future. Jan Kneschke MySQL AB

TEST OPERATING MANUAL

Rotational Motion. Figure 1: Torsional harmonic oscillator. The locations of the rotor and fiber are indicated.

AMS 132: Discussion Section 2

Guide to Proofs on Sets

PPT PRESENTATION. What works, and what doesn t. Associate Dean USF Graduate School. Revised

What s the Average? Stu Schwartz

List reversal: back into the frying pan

Lecture 9: Submatrices and Some Special Matrices

Proof assistants as a tool for thought

Section 3.1: Direct Proof and Counterexample 1

What we still don t know about addition and multiplication. Carl Pomerance, Dartmouth College Hanover, New Hampshire, USA

Optimization. CS Summer 2008 Jonathan Kaldor

Math101, Sections 2 and 3, Spring 2008 Review Sheet for Exam #2:

ionos The most advanced stable isotope software ever created

/633 Introduction to Algorithms Lecturer: Michael Dinitz Topic: Asymptotic Analysis, recurrences Date: 9/7/17

Lecture 5. 1 Review (Pairwise Independence and Derandomization)

Introduction to Fluid Mechanics - Su First experiment: Flow through a Venturi

Rainfall, Part IV. Rain does not normally accumulate above this level

Learn more about TechnoNewsletter. TechnoStar. Fan Club Newsletter

Properties of Arithmetic

Lecture 19: Introduction to Kinetics First a CH 302 Kinetics Study Guide (Memorize these first three pages, they are all the background you need)

8 th Grade Earth and Space Science Megan Seivert, Virginia Standards of Learning Connections: Lesson Summary:

Physics 9 Monday, April 7, 2014

Transcription:

Intelligent Sound Bubbles Dragica Kahlina sound artist & musician (www.kahlina.com)

About me M u sicia n a n d so u n d d e sig n e r w a s A I co d e r (C + + ) fo r (RT S /R P G -)g a p hysicist

Thanks A le x C h am p a n d a rd fo r a d -h o c m e n to ri G u y S o m b erg fo r th e tip s N ik a H a rp e r fo r h e r in d ie so ap b ox talk

Project : Black Island Team : wotokah (wotokah.makegames.ch) Indie -> no time, no money, just ambition 3 People level, code, sound Unity Game : Open World, Horror, Oculus Rift Published : Halloween 13 after 9 month

We needed Dynamic soundscapes Have more variety Make it easier To input sounds Changing and refining sounds Make dynamic sound sets reusable

Important (for everything) E ase o f u se N o n -b lo ckin g m u ltith re a d in g o f p e o p le

Intelligent Sound Bubbles packaged sound & inbuilt intelligence

Multi-threading? Sound designer - defines moods - compiles sound sets - fills the set - tweaks parameters from coder (set specific) - names set & writes description for level designer Level designer - places sound bubbles in level - puts name of set in if there is no fitting set, gives it a name and hands name + description to sound designer - tweaks parameters from coder (location specific) Coder - writes logic - gives parameters to sound - bubbles (prefab) for level designer

Possible Control Parameters random game time of day real time of day timed how often player health player mood season weather terrain

Use FSM Finite State Machine Mathematical model of computation Often used in game AI / enemy behavior Different levels of control We only use what s needed Concept easy to understand

FSM Example my states Fretting Called on stage transition state Calm down Talked Mortified Walking Balance back Tripping End talk Not talked Talking

So a Finite State Machine Has states, but not infinite many Is always in one defined state Has conditional transitions If a transition becomes true -> one state changes to the next

I defined State as Set of different sounds With different parameter Time Probability How often Intelligence

State Intelligence State switches between sounds Switches are based on parameters Different functionality -> states don t mix Use different FSM (OOP) Avoid huge monolithic FSM Avoid (for now) FSM of FSMs of

FSM - Different Levels FSM Engine code / library Definitions code, better data language (XML, JSON, ) Data data language (XML, JSON, ) Controls States State changes Wiring General & Reusable Doesn t have State definitions Transition definitions Has State definitions Transition Definitions Intelligence Game Specific Doesn t have Data / Parameter Has Parameters Sound file names Control parameter Shouldn t be Complicated In need of a special, homemade editor

Different FSM used Local FSM use player trigger to wake up Moving FSM (creatures, weather) state moves around Music FSM automatic music composition

This leads to Transitions as Changes from one sound set to another Controled by something called HAI (Horror AI) which masterminds horror sounds -> not FSM, avoid overkill Based on message system

Intelligent Sound Bubbles Dynamic Sound Sets Based on one of the base FSM (code) Different sets of sounds and parameters defined in XML-File Freely distributable in Level Can live in an object (player, creature)

In Unity Have prefabs for different FSM Distribute in Level or put into an object Fill in set ID Non-set-parameters, bubble specific -> level designer can do last 3

How did I get there Disclaimer: I am no Unity or C# guru Good FSM needs all the bells and whistles Luckily you can find them C++ : Games Programming Gems 2 C# / Unity : found one at unitygems.com

Next step (still coding) M a ke ch ild re n o f th e FS M b ase cla ss In p u t sta tes, fu n ctio n a lity, transitio n s Try to h ave th is in d a ta la n g u a g e

Data language parser Used XML, because I am used to it There are editors that help (didn t find a good one on Mac for JSON) There are XML reader libraries Used TinyXML ported for Unity / C#

Data Structure <Preset> <ID>Ghost</ID> <States> <Ambient> <Sound> </Sound> </Ambient> <HORROR1> <Sound> </Sound> </HORROR1> </States> </Preset>

Sound Structure <Sound> <Filename>Audio/Ghost1</Filename> <Timer>100</Timer> <Probability>100</Probability> <Points>0</Points> <Rounds>1</Rounds> </Sound>

Post Mortem What worked Workflow with XML and sound bubbles Level designer could just place sound bubbles What didn t work My unfamiliarity with Unity / C# Not enough sounds Not enough control parameters

Also Music FSM wasn t finished My idea Ambitious : short (1-8 bar) precomposed pieces that fit together and change according to some rules Very ambitious : have machine auto-compose and synthesize on the fly -> working on it, maybe next year

Need sound? Dragica Kahlina (www.kahlina.com) @gluggergames (and on Facebook, Linkedin, Xing) wotokah (wotokah.makegames.ch) @wotokah