Slide 1

Slide 1 text

A m a z o n G a m e O n Λ ࢖ ͬ ͨ A l e x a Ͱ ͷ ήʔϜ εΩϧ ߏ ங ๏ A A J U G ؔ ੢ 2 0 1 9 / 1 1 / 0 9 #AAJUG

Slide 2

Slide 2 text

H i d e t a k a O k a m o t o • Digitalcube Co. Ltd. • Alexa Campions • AWS Samurai 2017 in Japan • ask sdk(Node.js) Core contributor

Slide 3

Slide 3 text

No content

Slide 4

Slide 4 text

Q u e s t i o n 1 : A l e x a Ͱ ήʔϜ εΩϧ Λ ࡞ ͬ ͨ ͜ ͱ ͕ ͋ Δ ํ ʁ #aajug

Slide 5

Slide 5 text

Q u e s t i o n 2 : ͦ ͷ ήʔϜ ʹ ϥ ϯ Ω ϯ ά Λ ͭ ͚ ͨ ͜ ͱ ͕ ͋ Δ ਓ ʁ #aajug

Slide 6

Slide 6 text

D y n a m o D B Ͱ A l e x a εΩϧ ͷ ε ί Ξ ද ͸ ޻ ෉ ͕ ͍ Δ #aajug

Slide 7

Slide 7 text

D y n a m o D B ͔ Β S t re a m - > L a m b d a Ͱ ू ܭ https://www.slideshare.net/AmazonWebServicesJapan/aws-black-belt-online-seminar-2018-amazon-dynamodb-advanced-design-pattern

Slide 8

Slide 8 text

D y n a m o D B ʹ Ͱ ͖ ͳ ͍ ͜ ͱ • ߲̏໨Ҏ্ͷσʔλͰͷݕࡧʢΫΤϦޙʹFilter͢ΔܗʹͳΔʣ • ORDER۟ʹΑΔιʔτ • ωετͨ͠஋ʹର͢ΔΫΤϦͷ࣮ߦ #aajug

Slide 9

Slide 9 text

a s k - s d k ͷ D y n a m o D B ࣮ ૷ ͸ D y n a m o ޲ ͚ Ͱ ͸ ͳ ͍ • ύʔςʔγϣϯΩʔɿUser ID or Device ID • savePersistantAttributesͰอଘ͞Εͨσʔλ: Mapܕ • ID + attributesͷ߲̎໨ͷΈͰอଘ͞ΕΔ • ޙ͔Βผ్ΫΤϦ͢Δʹ͸޲͍͍ͯͳ͍ #aajug

Slide 10

Slide 10 text

A l e x a Ͱ ή ʔϜ ͷ ε ί Ξ ද • attributesManagerΛ࢖Θͣʹaws-sdkΛ࢖͏ • ήʔϜܥͷهࣄɾυΩϡϝϯτΛࢀߟʹDynamoDB TableΛઃܭ • ඞཁʹԠͯ͡Stream + LambdaͰόονతʹߋ৽͢ΔॲཧΛ࣮૷ • ूܭظؒʹԠͯ͡ϥϯΩϯάͷϦηοτͳͲ΋ඞཁ #aajug

Slide 11

Slide 11 text

΍ ͬͯ Β Ε Μ #aajug

Slide 12

Slide 12 text

ʮ ΍ ͬͯ ΍ Δ ʯ ͱ ͍ ͏ ਓ ʹ ͓ ͢ ͢Ί ͷ ه ࣄ https://aws.amazon.com/jp/blogs/news/amazon-dynamodb-gaming-use-cases-and-design-patterns/

Slide 13

Slide 13 text

A m a z o n G a m e O n https://developer.amazon.com/ja/gameon

Slide 14

Slide 14 text

A m a z o n G a m e O n ͱ ͸ ʁ • ΫϩεϓϥοτϑΥʔϜͰར༻Ͱ͖ΔରઓήʔϜͷαʔϏε • ϦʔμʔϘʔυʢಘ఺දʣ΍ϦʔάɾϓϨΠϠʔͷੜ੒؅ཧ • AmazonͰར༻Ͱ͖ΔϦϫʔυͷ࡞੒ͱ෇༩ • SDKΛར༻ͯ͠؆୯ʹ૊ΈࠐΈՄೳ #aajug

Slide 15

Slide 15 text

A m a z o n G a m e O n Ͱ Ͱ ͖ Δ ʢ Β ͠ ͍ ʣ ͜ ͱ • ήʔϜ಺৆඼ • ϦʔάɾτʔφϝϯτɾϦʔμʔϘʔυΛੜ੒ • Twitchͱͷ࿈ܞ • ஍Ҭ΍εΩϧϨϕϧͳͲͰͷΤϯτϦʔ৚݅ͷઃఆ • ίϯιʔϧͰͷGUI؅ཧ #aajug

Slide 16

Slide 16 text

A m a z o n G a m e O n ͷ ྉ ۚ • είΞͷه࿥1ճ = 1Play • 35,000ϓϨΠ / ݄ͷແྉ࿮ + 6ϲ݄ͷແྉظؒ • ௒ա෼͸ 1Play 0.002 USDͷैྔ՝ۚ • https://developer.amazon.com/ja/gameon/pricing • AWSͷར༻ྉۚͱҰॹʹܾࡁ͞ΕΔʢͳͷͰཁAWSΞΧ΢ϯτʣ #aajug

Slide 17

Slide 17 text

G e t t i n g s t a r t e d A m a z o n G a m e O n #aajug

Slide 18

Slide 18 text

“ Yo u r G a m e O n C o n s o l e ” ͔ Β ؅ ཧ ը ໘ https://developer.amazon.com/ja/gameon

Slide 19

Slide 19 text

A m a z o n G a m e O n ͷ ߏ ੒ • Game (ܾࡁ୯Ґ) • Competitionʢτʔφϝϯτʣ • Matchʢରઓʣ #aajug

Slide 20

Slide 20 text

ή ʔϜ Λ ࡞ ੒

Slide 21

Slide 21 text

ܾ ࡁ Ξ Χ ΢ ϯ τ ( AW S ) ͱ ࿈ ܞ

Slide 22

Slide 22 text

G a m e ʹ C o m p e t i t i o n s Λ ࡞ Δ https://developer.amazon.com/gameon/console/home

Slide 23

Slide 23 text

ݸ ਓ ϓ Ϩ Π / ν ʔϜ ϓ Ϩ Π ͕ બ ΂ Δ https://developer.amazon.com/gameon/console/home

Slide 24

Slide 24 text

No content

Slide 25

Slide 25 text

C o m p e t i t i o n s Ͱ ܾ Ί Δ ͜ ͱ • ໊લɹɹɿ100จࣈҎ಺ • ظؒɹɹɿ༗ݶɺͨͩ͠2100೥ऴྃͱ͔ʹͰ͖Δ • είΞɹɿϋΠείΞ / ߹ܭ఺ • উഊ൑ఆɿείΞ͕ଟ͍ํ / গͳ͍ํ͕উऀ • ৆඼ɹɹɿΞΠςϜɾϥϯΫɾ഑෍ํ๏etc.. • ͳͲͳͲ #aajug

Slide 26

Slide 26 text

৆ ඼ ΍ ࡉ ͔ ͍ ઃ ఆ ʹ ͭ ͍ͯ ͸ · ͩ ৮ ͬͯ ͍ ͳ ͍ ͷ Ͱ ৄ ࡉ ෆ ໌ #aajug

Slide 27

Slide 27 text

1 G a m e ʹ ෳ ਺ C o m p e t i t i o n s ͕ ઃ ఆ Մ ೳ https://developer.amazon.com/ja/gameon

Slide 28

Slide 28 text

“ S c o re S u b m i t t e d ” ͕ ՝ ۚ ର ৅ ύ ϥϝλ ʢ ଟ ෼ ʣ https://developer.amazon.com/ja/gameon

Slide 29

Slide 29 text

A m a z o n G a m e O n & A l e x a #aajug

Slide 30

Slide 30 text

A l e x a Ͱ G a m e O n Λ ࢖ ͏ • ϦʔμʔϘʔυ͕؆୯ʹ࡞ΕΔ • ಘ఺ͷܭࢉɾϥϯΩϯάࢉग़ॲཧΛ࣮૷͠ͳͯ͘ࡁΉ • ݄͝ͱͷΠϕϯτ + ߃ৗϥϯΩϯάͳͲͷෳ਺ͷରઓཁૉ • ϥϯΩϯάɾಘ఺ཁૉ͕͋ΔεΩϧͱ૬ੑ͕ྑ͍ #aajug

Slide 31

Slide 31 text

A l e x a Ͱ G a m e O n Λ ࢖ ͏ ͨ Ί ʹ ඞ ཁ ͳ ෺ • Node.js • ASK SDK ( npm i -S ask-sdk ) • GameOn SDK for Alexa ( npm i -S @alexa-games/skills-gameon-sdk ) • GameOn API Key (GameOn Dashboard͔Βऔಘ) • Game ID / Tournament ID / Match IDʢಉ্ʣ #aajug

Slide 32

Slide 32 text

A l e x a B l o g ʹ ղ આ ه ࣄ ͕ ͋ Δ https://developer.amazon.com/ja/blogs/alexa/post/671de3de-0635-4626-9371-e926d7d655d6/skills-gameon-sdk

Slide 33

Slide 33 text

A P I Ϋ ϥ Π Ξ ϯ τ ͷ η ο τΞ οϓ https://developer.amazon.com/ja/blogs/alexa/post/671de3de-0635-4626-9371-e926d7d655d6/skills-gameon-sdk

Slide 34

Slide 34 text

ϓ Ϩ ΠϠʔ ͷ ௥ Ճ ͱ ର ઓ ΁ ͷ ࢀ Ճ ొ ࿥ https://developer.amazon.com/ja/blogs/alexa/post/671de3de-0635-4626-9371-e926d7d655d6/skills-gameon-sdk

Slide 35

Slide 35 text

ε ί Ξ ͷ ௥ Ճ https://developer.amazon.com/ja/blogs/alexa/post/671de3de-0635-4626-9371-e926d7d655d6/skills-gameon-sdk

Slide 36

Slide 36 text

Ϧ ʔ μʔϘʔ υ ͱ ε ί Ξ ͷ औ ಘ https://developer.amazon.com/ja/blogs/alexa/post/671de3de-0635-4626-9371-e926d7d655d6/skills-gameon-sdk

Slide 37

Slide 37 text

Ϧ ʔ μʔϘʔ υ ͱ ε ί Ξ ͷ औ ಘ https://developer.amazon.com/ja/blogs/alexa/post/671de3de-0635-4626-9371-e926d7d655d6/skills-gameon-sdk

Slide 38

Slide 38 text

Ϧ ʔ μʔϘʔ υ ͸ A P L ʹ ΋ ର Ԡ ʢ ઐ ༻ ϝ ι ο υ ʣ https://developer.amazon.com/ja/blogs/alexa/post/671de3de-0635-4626-9371-e926d7d655d6/skills-gameon-sdk

Slide 39

Slide 39 text

࣮ ࡍ ʹ ެ ։ ͯ͠ Έ ͨ #aajug

Slide 40

Slide 40 text

Ҿ ͖ ࢉ ν ϟ Ϩϯ δ https://developer.amazon.com/ja/blogs/alexa/post/671de3de-0635-4626-9371-e926d7d655d6/skills-gameon-sdk

Slide 41

Slide 41 text

εΩϧό ο Ϋ Τ ϯ υ ߏ ੒ • ࣮ߦ؀ڥ: AWS Lambda (Node.js 10.x) • ߏ੒؅ཧ / σϓϩΠ: Serverless Framework • ఺਺؅ཧ: Amazon GameOn • Database: Amazon S3 #aajug

Slide 42

Slide 42 text

APIΩʔ΍֤छID͸ SSMܦ༝Ͱ Lambdaͷ؀ڥม਺΁

Slide 43

Slide 43 text

No content

Slide 44

Slide 44 text

DB͔ΒϓϨΠϠʔऔಘ ͳ͚Ε͹GameOnͰ ϓϨΠϠʔ࡞੒

Slide 45

Slide 45 text

ϓ Ϩ Π Ϡ ʔ ৘ ใ ͷ ؅ ཧ • GameOnͷσʔλ͸AlexaͷϢʔβʔσʔλͱඥ͔ͮͳ͍ • AttributesManagerͰDynamoDB or S3ʹϓϨΠϠʔ৘ใΛอଘ͢Δ • DBʹσʔλ͕ͳ͍ͳΒϓϨΠϠʔ৽ن࡞੒ • DBʹσʔλ͕͋Ε͹ɺϦϑϨογϡͯ͠ϓϨΠϠʔͷ৘ใΛߋ৽ • εΩϧଆͰ؅ཧ͢΂͖ͳͷ͸͜Ε͚ͩ #aajug

Slide 46

Slide 46 text

࡞ ͬͯΈ ͯ ͷ ײ ૝ • ϓϨΠϠʔ৘ใҎ֎؅ཧ͢Δඞཁ͕ͳ͍ͷͰָ • είΞ΋submitScore APIʹՃ఺ɾݮ఺͍ͨ͠஋Λ౤͛Δ͚ͩ • SDKΛ·ͱΊͨΫϥεΛ༻ҙ͓ͯ͘͠ͱɺίʔυྔ͕ݮΒͤΔ • ࣗ෼ͷલޙXҐͷ఺਺ͳͲ΋औಘͰ͖ɺ͔ͳΓߴػೳ • ࠓ೔ʹؒʹ߹ΘͤΔͨΊAPL͸Ұ୴ఘΊͨ #aajug

Slide 47

Slide 47 text

೔ ຊ Ͱ ࢖ ͏ ৔ ߹ ͷ ஫ ҙ ఺ • ϓϨΠϠʔ໊͕σϑΥϧτͰ͸ӳޠ • PlayerProfileGeneratorͰઃఆΛม͑ΕΔ༷ࢠ • ͸͡Ί͸είΞͱॱҐද؅ཧ͚ͩʹ࢖͏ͷ͕ແ೉͔΋ • υΩϡϝϯτ͸ӳޠͳͷͰɺTSͷิ׬ͱGoogle຋༁࢖͓͏ #aajug

Slide 48

Slide 48 text

· ͱ Ί • ϥϯΩϯάཁૉͷ͋ΔήʔϜͳΒGameOn͍ΕΑ͏ • ແྉ࿮ͱτϥΠΞϧ͋ΔͷͰࢼ͠΍͍͢ • submitScore͢Δͨͼʹ՝ۚϝʔλʔճΔͷͰཁ஫ҙ #aajug

Slide 49

Slide 49 text

ͪ ͳ Έ ʹ

Slide 50

Slide 50 text

঺ հ ϒϩ ά ͷ Լ ͷ ํ ʹ ɺ ͱ ͋ Δ จ ষ ͕ https://developer.amazon.com/ja/blogs/alexa/post/671de3de-0635-4626-9371-e926d7d655d6/skills-gameon-sdk

Slide 51

Slide 51 text

"QQMZ/PXUP6TF(BNF0OGPS'SFFGPS:PVS4LJMMT To apply for the special offer, submit this application, and we will whitelist your skill within 3 business days until the end of public beta. Please note that you need to provide your skill ID, and GameOn Game ID to apply. You can either use the Skills GameOn SDK in Node.js for easier integration for skills written in Node.js or integrate Amazon GameOn directly for skills written in other languages including Java. To learn more, check out the Skills GameOn SDK GitHub repository, and read the documentation. https://developer.amazon.com/ja/blogs/alexa/post/671de3de-0635-4626-9371-e926d7d655d6/skills-gameon-sdk

Slide 52

Slide 52 text

"QQMZ/PXUP6TF(BNF0OGPS'SFFGPS:PVS4LJMMT To apply for the special offer, submit this application, and we will whitelist your skill within 3 business days until the end of public beta. Please note that you need to provide your skill ID, and GameOn Game ID to apply. You can either use the Skills GameOn SDK in Node.js for easier integration for skills written in Node.js or integrate Amazon GameOn directly for skills written in other languages including Java. To learn more, check out the Skills GameOn SDK GitHub repository, and read the documentation. https://developer.amazon.com/ja/blogs/alexa/post/671de3de-0635-4626-9371-e926d7d655d6/skills-gameon-sdk PBظؒऴΘΔ·Ͱʹ ਃ੥ͯ͘͠ΕͨΒɺ AlexaͰ࢖͏෼͸ ແྉʹ͓ͯ͘͠Α ʢҙ༁ʣ

Slide 53

Slide 53 text

΍Δ͔͠Ͷ͐