Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
SPAで作るゲーム制作と技術選定(とこれからのWEB体験の話)
Search
fumi-sagawa
April 20, 2022
Programming
1
2.1k
SPAで作るゲーム制作と技術選定(とこれからのWEB体験の話)
PWA Night vol.38 ~ブラウザゲームの世界〜の発表資料です
https://pwanight.connpass.com/event/242560/
fumi-sagawa
April 20, 2022
Tweet
Share
More Decks by fumi-sagawa
See All by fumi-sagawa
ChatGPTの使い方と業務に組み込む心構え
sagawa23
0
110
固定されたHowからの脱却 What起点のTransformation
sagawa23
0
200
LLMアプリケーションとアフォーダンス
sagawa23
0
810
ChatGPTとうまくやる方法
sagawa23
1
320
結局のところ いつ、どのAIツールを、 どのように使えば良いのか
sagawa23
5
770
ChatGPTを使う上で注意したい バイアスとフィルタリング
sagawa23
1
670
ざっくりつかむLangChainのメンタルモデル [説明欄にソースあり]
sagawa23
6
1.2k
プロンプトもくもく会ガイダンス.pdf
sagawa23
0
240
Other Decks in Programming
See All in Programming
ファインディ株式会社におけるMCP活用とサービス開発
starfish719
0
1.2k
Performance for Conversion! 分散トレーシングでボトルネックを 特定せよ
inetand
0
160
Testing Trophyは叫ばない
toms74209200
0
870
RDoc meets YARD
okuramasafumi
4
170
@Environment(\.keyPath)那么好我不允许你们不知道! / atEnvironment keyPath is so good and you should know it!
lovee
0
120
Namespace and Its Future
tagomoris
6
700
print("Hello, World")
eddie
2
530
AIでLINEスタンプを作ってみた
eycjur
1
230
モバイルアプリからWebへの横展開を加速した話_Claude_Code_実践術.pdf
kazuyasakamoto
0
330
パッケージ設計の黒魔術/Kyoto.go#63
lufia
3
440
請來的 AI Agent 同事們在寫程式時,怎麼用 pytest 去除各種幻想與盲點
keitheis
0
120
アセットのコンパイルについて
ojun9
0
120
Featured
See All Featured
KATA
mclloyd
32
14k
A Tale of Four Properties
chriscoyier
160
23k
The Cult of Friendly URLs
andyhume
79
6.6k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
139
34k
Optimizing for Happiness
mojombo
379
70k
The Language of Interfaces
destraynor
161
25k
Site-Speed That Sticks
csswizardry
10
810
Building Applications with DynamoDB
mza
96
6.6k
Building Better People: How to give real-time feedback that sticks.
wjessup
368
19k
Making the Leap to Tech Lead
cromwellryan
135
9.5k
Done Done
chrislema
185
16k
Transcript
SPA で作る とこれからのWEB体験の話 2021/04/20 Wed. @TAMTO ゲーム制作と技術選定 サガワフミヤ
サガワフミヤ/佐川史弥 @fumi_sagawa フロントエンドエンジニア Occupation Company 🏢TAM東京 ゲーム好きです🎮 最近エルデンリングをクリアしました ⼀⽅で積もるBacklogのToDoチケット 僕にゴールデンウィークは訪れるのか
アトリエシリーズはいいぞ。
ある⽇…
👨 TAM⾓⾕さん なんかノベルゲーム作るらしい! ミーティング参加してみて! すごい頼れる
🤔 サガワ 診断コンテンツ的なやつか?
TAM村松さん 99部屋 ⾃由に⾃由に⾏き来する ノベルゲームをやります! ⾳声付き を すごい良いデザインする
None
『HOTELブルーローズ99の部屋』とは 仕様と技術選定 使⽤ライブラリと実装 振り返りとこれからのWeb表現について 1 2 3 4 ⽬次
⽬次 『HOTELブルーローズ99の部屋』とは 仕様と技術選定 使⽤ライブラリと実装 振り返りとこれからのWeb表現について 1 2 3 4
『HOTELブルーローズ99の部屋』とは ブラウザでプレイできる サスペンスノベルゲーム
『HOTELブルーローズ99の部屋』とは ブラウザでプレイできる サスペンスノベルゲーム リアル脱出ゲームで有名な SCRAPさん作
None
企画 デザイン 実装 本⽇の内容
企画 デザイン 実装 尺がないので 今⽇はこちらだけ 本⽇の内容
None
None
⽬次 『HOTELブルーローズ99の部屋』とは 仕様と技術選定 使⽤ライブラリと実装 振り返りとこれからのWeb表現について 1 2 3 4
TAM村松さん 99部屋 ⾃由に⾃由に⾏き来する ノベルゲームをやります! ⾳声付き を すごい良いデザインする
いただいた仕様 ブラウザで動作する プレイ判定API連携がある SNSシェアがある オートセーブ機能がある BGMを常時再⽣する ストーリー分岐がある ギミックがある(パスワードなど) SE(効果⾳)がなる
UI(3種類) 基本画⾯
結論
SPA Local Storage で⾏こう!! 技術選定
で解決できる仕様 SPA ブラウザで動作する プレイ判定API連携がある SNSシェアがある オートセーブ機能がある BGMを常時再⽣する ストーリー分岐がある ギミックがある(パスワードなど) SE(効果⾳)がなる
で解決できる仕様 Local Storage ブラウザで動作する プレイ判定API連携がある SNSシェアがある オートセーブ機能がある BGMを常時再⽣する ストーリー分岐がある ギミックがある(パスワードなど)
SE(効果⾳)がなる
BGMを常時再⽣する SE(効果⾳)がなる WEB上における メディア取り扱いは難しい…
で解決 SPA ブラウザで動作する プレイ判定API連携がある SNSシェアがある オートセーブ機能がある BGMを常時再⽣する ストーリー分岐がある ギミックがある(パスワードなど) SE(効果⾳)がなる
⽬次 『HOTELブルーローズ99の部屋』とは 仕様と技術選定 使⽤ライブラリと実装 振り返りとこれからのWeb表現について 1 2 3 4
主要ライブラリ Vue 3 Pinia VueUse
None
script setup構⽂ composition関数(ほぼHooks) CSSそのまま書ける Vue3の紹介
None
script setup構⽂ composition関数(ほぼHooks) CSSそのまま書ける Vue3の良いところ シンプル…
script setup構⽂ composition関数(ほぼHooks) CSSそのまま書ける Vue3の良いところ 責務の分離、 再利⽤性の向上
script setup構⽂ composition関数(ほぼHooks) CSSそのまま書ける Vue3の良いところ Web系コーダーとの 分担がしやすい
None
ただのグローバルなState Piniaの紹介 Reactだと Recoilが近い
None
呼び出したら ただのState
None
ユーティリティ関数のパッケージ VueUse 今回はlocalstorage連携 で使いました
refの代わりに 呼ぶだけ
呼び出したら ただのState
で解決 SPA ブラウザで動作する プレイ判定API連携がある SNSシェアがある オートセーブ機能がある BGMを常時再⽣する ストーリー分岐がある ギミックがある(パスワードなど) SE(効果⾳)がなる
Room302 Room301 App
Room302 Room301 App Navigation いつものアプリのように UIを載せる
Room302 Room301 App Navigation 再描画されない 部分にaudioタグを追加 Audio
SPAは⾳声コンテンツとの 相性が良い グローバルなStateと Hooks(Composable)で再⽣/停⽌が可能 副作⽤(useEffect/watchEffect)を利⽤して メディアの操作が可能 「許可した⾳声エレメント」を保持可能 Room301 App Navigation
Audio SPAは⾳声コンテンツとの 相性が良い
Room301 App Navigation プレイ開始API Audio プレイAPIと繋いで ゲーム完成 チケットを買ったらtoken付きURLを発⾏ 初期描画時にプレイ可能かを判定
⽬次 『HOTELブルーローズ99の部屋』とは 仕様と技術選定 使⽤ライブラリと実装 振り返りとこれからのWeb表現について 1 2 3 4
振り返り 無数に現れるバグ ゲームづくりってたいへん!
振り返り 無数に現れるバグ 無数に現れるバグ ゲームづくりってたいへん!
振り返り 無数に現れるバグ 無数に現れるバグ ゲームづくりってたいへん! E2Eテストが 書きにくい うおォン 俺はまるで⼈間バグ⽣成所だ
Web表現を考え直すきっかけをもらった
None
コスト 納期 品質
アクセシビリティ・より良い体験のために SPA(SSR含む)はもっと活⽤できるのではないか? PWAと合わせて 低コストに⾼クオリティ なプロダクトを!
TAMに興味が湧いた⽅はぜひお気軽にご連絡ください! メッセージ待ってまーす!!