$30 off During Our Annual Pro Sale. View Details »
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.2k
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
210
LLMアプリケーションとアフォーダンス
sagawa23
0
840
ChatGPTとうまくやる方法
sagawa23
1
330
結局のところ いつ、どのAIツールを、 どのように使えば良いのか
sagawa23
5
770
ChatGPTを使う上で注意したい バイアスとフィルタリング
sagawa23
1
690
ざっくりつかむLangChainのメンタルモデル [説明欄にソースあり]
sagawa23
6
1.2k
プロンプトもくもく会ガイダンス.pdf
sagawa23
0
250
Other Decks in Programming
See All in Programming
俺流レスポンシブコーディング 2025
tak_dcxi
14
8.7k
DSPy Meetup Tokyo #1 - はじめてのDSPy
masahiro_nishimi
1
170
LLM Çağında Backend Olmak: 10 Milyon Prompt'u Milisaniyede Sorgulamak
selcukusta
0
120
なあ兄弟、 余白の意味を考えてから UI実装してくれ!
ktcryomm
11
11k
Canon EOS R50 V と R5 Mark II 購入でみえてきた最近のデジイチ VR180 事情、そして VR180 静止画に活路を見出すまで
karad
0
110
WebRTC と Rust と8K 60fps
tnoho
2
2k
tparseでgo testの出力を見やすくする
utgwkk
2
220
Socio-Technical Evolution: Growing an Architecture and Its Organization for Fast Flow
cer
PRO
0
340
AIの誤りが許されない業務システムにおいて“信頼されるAI” を目指す / building-trusted-ai-systems
yuya4
6
3.5k
20 years of Symfony, what's next?
fabpot
2
360
20251127_ぼっちのための懇親会対策会議
kokamoto01_metaps
2
430
AIコーディングエージェント(skywork)
kondai24
0
170
Featured
See All Featured
Writing Fast Ruby
sferik
630
62k
Rails Girls Zürich Keynote
gr2m
95
14k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
3.2k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
Designing for Performance
lara
610
69k
Optimising Largest Contentful Paint
csswizardry
37
3.5k
Site-Speed That Sticks
csswizardry
13
1k
Leading Effective Engineering Teams in the AI Era
addyosmani
8
1.3k
The Illustrated Children's Guide to Kubernetes
chrisshort
51
51k
Build The Right Thing And Hit Your Dates
maggiecrowley
38
3k
How to Ace a Technical Interview
jacobian
280
24k
Testing 201, or: Great Expectations
jmmastey
46
7.8k
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に興味が湧いた⽅はぜひお気軽にご連絡ください! メッセージ待ってまーす!!