Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
gocon-2022-spring_sponsor-session.pdf
Cluster Inc.
April 27, 2022
Technology
0
930
gocon-2022-spring_sponsor-session.pdf
Cluster Inc.
April 27, 2022
Tweet
Share
More Decks by Cluster Inc.
See All by Cluster Inc.
cluster_SwiftUI
clusterinc
0
760
cluster_Android_JetpackCompose
clusterinc
0
720
AvatarMakerを支える技術 / cluster_avatarmaker_engineering
clusterinc
0
1.2k
clusterでLOD対応したときの話 / cluster LOD
clusterinc
0
1.2k
クラスター会社紹介資料 / We are hiring
clusterinc
5
140k
Other Decks in Technology
See All in Technology
cdk deployに必要な権限ってなんだ?
kinyok
0
170
Periodic Multi-Agent Path Planning
hziwara
0
110
OpenShiftでスポットVMを使おう.pdf
jpishikawa
1
300
Oracle Transaction Manager for Microservices Free 22.3 製品概要
oracle4engineer
PRO
5
100
【NGK2023S】 ノードエディタ形式の画像処理ツール「Image-Processing-Node-Editor」
kazuhitotakahashi
0
280
OPENLOGI Company Profile
hr01
0
12k
AWS re:Invent 2022で発表された新機能を試してみた ~Cloud OperationとSecurity~ / New Cloud Operation and Security Features Announced at AWS reInvent 2022
yuj1osm
1
200
経営統合をきっかけに会社をエンジニアリングした話 / btconjp-2023
carta_engineering
0
150
LINE iOSエンジニアの日々 / LINE iOS Engineer Days
line_developers
PRO
1
150
PCI DSS に準拠したシステム開発
yutadayo
0
310
SPA・SSGでSSRのようなOGP対応!
simo123
2
150
Airdrop for Open Source Projects
epicsdao
0
690
Featured
See All Featured
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
227
16k
No one is an island. Learnings from fostering a developers community.
thoeni
12
1.5k
Facilitating Awesome Meetings
lara
33
4.6k
Building Your Own Lightsaber
phodgson
96
4.9k
Designing with Data
zakiwarfel
91
4.2k
Java REST API Framework Comparison - PWX 2021
mraible
PRO
13
5.4k
Reflections from 52 weeks, 52 projects
jeffersonlam
338
18k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
44
14k
From Idea to $5000 a Month in 5 Months
shpigford
374
44k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
500
130k
Building Applications with DynamoDB
mza
85
5k
Design by the Numbers
sachag
271
18k
Transcript
ϝλόʔεΛࢧ͑Δٕज़ ʙUGCʹᷓΕΔ3DۭؒͷϦΞϧλΠϜ௨৴Λࢧ͑ΔGoʙ Ϋϥελʔגࣜձࣾ thara 2022-04-23 Go Conference 2022 Spring (Online)
Cluster, Inc. All Rights Reserved. ࣗݾհ 2 thara • Tomochika
Hara (ݪ Ѫ) • ѪݝࡏॅϦϞʔτϫʔΧʔ • ࢠͷ • झຯ • NESΤϛϡϨʔλ࣮ @zetta1985
Cluster, Inc. All Rights Reserved. ϝλόʔεϓϥοτϑΥʔϜ cluster ͱ 3
Cluster, Inc. All Rights Reserved. ϝλόʔεϓϥοτϑΥʔϜ cluster ͱ 4
Cluster, Inc. All Rights Reserved. ϝλόʔεϓϥοτϑΥʔϜ cluster ͱ 5
Cluster, Inc. All Rights Reserved. ࠓ͢͜ͱ 6 • ϝλόʔεΛߏ͢Δཁૉٕज़ •
ϝλόʔεϓϥοτϑΥʔϜͷόοΫΤϯυͱGo • room serverͷมભͱ෦ΞʔΩςΫνϟ
ϝλόʔεΛߏ͢Δཁૉٕज़
Cluster, Inc. All Rights Reserved. ϝλόʔεΛߏ͢Δཁૉٕज़ 8 3࣍ݩͷԾۭؒ UGC ΤίγεςϜ
Cluster, Inc. All Rights Reserved. 3࣍ݩͷԾۭؒ 9 • Unity3d •
ϦΞϧλΠϜಉظ • Ξόλʔͷ࢟ใ • ϘΠενϟοτ • ϞϊͷҐஔɾ͖
Cluster, Inc. All Rights Reserved. UGC ( = User Generated
Contents) 10 • Ξόλʔ • ϫʔϧυ • Ϋϥϑτ
Cluster, Inc. All Rights Reserved. ΤίγεςϜ 11 • ΞϓϦ௨՟ •
UGCͷചങ • Πϕϯτνέοτ • ΠϕϯτͰͷ͛મ
ϝλόʔεϓϥοτϑΥʔϜͷόοΫΤϯυͱGo
Cluster, Inc. All Rights Reserved. શମߏ 13
Cluster, Inc. All Rights Reserved. શମߏ 14 6($ ΤίγεςϜ ࣍ݩͷԾۭؒ
Cluster, Inc. All Rights Reserved. APIαʔόʔ 15 The Go gopher
was designed by Renée French. • Ϣʔβʔೝূ • ϑϨϯυ • UGCཧ • ೖࣨཧ • ܾࡁ
Cluster, Inc. All Rights Reserved. UGCύΠϓϥΠϯ 16 The Go gopher
was designed by Renée French. • VRM, glTF • reduction • native texture
Cluster, Inc. All Rights Reserved. glTF 17 • JSONʹΑΔ3DϞσϧγʔϯΛදݱ͢ΔσʔλϑΥʔϚοτ •
૬ޓӡ༻ɾ༰ྔɾϥϯλΠϜॲཧͷޮԽ • ʮ3Dʹ͓͚ΔJPEGʯ IUUQTHJUIVCDPN,ISPOPT(SPVQHM5'CMPCNBJOTQFDJ fi DBUJPO fi HVSFTHM5'@3(#@+VOFTWH
Cluster, Inc. All Rights Reserved. VRM 18 • ϓϥοτϑΥʔϜඇґଘͷ3DΞόλʔϑΝΠϧϑΥʔϚοτ •
glTF-2.0Λϕʔεʹ͍ͯ͠Δ • ώϡʔϚϊΠυɾඪ४ͷإૢ࡞ɾҰਓশࢹ࠶ݱɾϥΠηϯε IUUQTWSNEFW
Cluster, Inc. All Rights Reserved. VRMΛGoͰѻ͏ 19 https://github.com/qmuntal/gltf ΛϕʔεʹVRMʹରԠ type
VRMExtension struct{ ... } func init() { gltf.RegisterExtension("VRM", func(data []byte) (interface{}, error) { var vrm VRMExtensio n err := json.Unmarshal(data, vrm ) return vrm, er r } ) } func DecodeVRM(raw []byte) (*gltf.Document, *VRMExtension, error) { var doc gltf.Documen t if err := gltf.NewDecoder(bytes.NewReader(raw)).Decode(&doc); err != nil { // error handling } return &doc, doc.Extensions["VRM"].(*VRMExtension), nil }
Cluster, Inc. All Rights Reserved. reduction/GPU native texture 20 func
(c *converter) bufferViewImage ( src *gltf.Document, index uint32, dst *gltf.Document) (uint32, string, error) { bv := src.BufferViews[index ] buf, err := modeler.ReadBufferView(src, bv ) if err != nil { // error handling } // reduction & GPU native texture encoding converted, mimeType, err := converter.Convert(buf ) if err != nil { // error handling } newIndex := modeler.WriteBufferView(dst, gltf.TargetNone, converted ) return newIndex, mimeType, nil }
Cluster, Inc. All Rights Reserved. room server 21 The Go
gopher was designed by Renée French.
room serverͷมભͱ෦ΞʔΩςΫνϟ
Cluster, Inc. All Rights Reserved. pubsubͷΈ (room serverҎલ) 23 •
ۭؒಉظͰ͋Ε͜ΕͰे • messageͷׯবͰ͖ͳ͍ • = ࣮ݱͰ͖Δػೳʹ੍ݶ
Cluster, Inc. All Rights Reserved. pubsubͷΈ (room server) 24 •
୯ʹMQTTΛ͠ΌΔ͚ͩͷ GoTCPαʔόʔ • hack͢ΔͨΊͷԼ
Cluster, Inc. All Rights Reserved. Actor 25 • client͝ͱͷॲཧ͕Մೳʹ •
messageͷfiltering • LOD • Ξόλʔ࢟ใ • ϘΠε
Cluster, Inc. All Rights Reserved. Actor 26
Cluster, Inc. All Rights Reserved. Actor + global state 27
• globalͳঢ়ଶΛߋ৽Մೳʹ • ϫʔϧυΫϥϑτ • = ஔ͍ͨϞϊͷӬଓԽ
Cluster, Inc. All Rights Reserved. Actor + global state 28
Cluster, Inc. All Rights Reserved. Next…? 29 • ͍ͩͿͷཧղ͕ਐΜͩ •
൚༻తͳ݁߹͔ΒɺΑΓҙຯ Λ࣋ͬͨߏ • ߋͳΔ௨৴ྔݮ • UDPϕʔεͷಠࣗϓϩτίϧ
·ͱΊ
Cluster, Inc. All Rights Reserved. ·ͱΊ 31 • ϝλόʔεΛߏ͢Δཁૉٕज़ •
3࣍ݩͷԾۭؒ • UGC • ΤίγεςϜ • clusterͰͦͷόοΫΤϯυΛ Go Ͱ࣮ݱͯ͠·͢
IUUQTSFDSVJUDMVTUFSNVFOHJOFFS
Thanks for Listening