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
1週間でノベルゲームはつくれるか
Search
かくひと
August 30, 2025
0
21
1週間でノベルゲームはつくれるか
ノベルゲームを1週間で作った知見を共有します。
1. ステートマシン
2. 話作り
3. ノベルゲームぽくすること
かくひと
August 30, 2025
Tweet
Share
More Decks by かくひと
See All by かくひと
等身大のゲームづくり
kakuhito
0
58
クッキークリッカーは1週間で作れるか?
kakuhito
0
260
Featured
See All Featured
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
34
3.1k
Why You Should Never Use an ORM
jnunemaker
PRO
59
9.5k
Building Adaptive Systems
keathley
43
2.7k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
61k
Building Applications with DynamoDB
mza
96
6.6k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.4k
BBQ
matthewcrist
89
9.8k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
The World Runs on Bad Software
bkeepers
PRO
70
11k
Java REST API Framework Comparison - PWX 2021
mraible
33
8.8k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.8k
Large-scale JavaScript Application Architecture
addyosmani
512
110k
Transcript
1週間でノベルゲームはつくれる? かくひと
自己紹介 ⚫ パズル/ノベル好き ⚫ unity1weekは7回参加 (@kaku_suke_33) かくひと
⚫昔の親友を花火大会に誘いたい けど、どこか変わっていて ⚫電話で興味を「ひく」ゲーム つくった作品: 『 もしもし、しんゆう 』 うすいしおさんとの 共同作品
⚫ ここまで分岐が複雑なものははじめて ⚫ 工数の見積もりが甘く、けっこう苦労した ⚫ その知見を共有できたら...... ノベルゲームつくった
1. ステートマシン 2. 話作り 3. ノベルゲームぽくすること 難しかったこと
ステートマシンが難しい
ノベルゲームにおけるステートマシンとは? 今回複雑な分岐が多かったので 必要だと判断 ⚫ シナリオ進行状態を管理する ⚫「ステート」と「矢印」で構成 冒険に行くの じゃ YES No
好きなポ〇モン を選ぶのじゃ
ノベルゲームの進行はこの3つでできる(はず) 1. 自動進行 2. 選択肢による進行 3. ...? 1,2のみ実装して進めていった
最初のコード 結構いいのでは? async UniTask RunGameLoop(StateMachine sm, CancellationToken cancellationToken) { while
(true) { var (chatLines, canAuto) = sm.Enter(); // ステートに入る await ProcessChat(chatLines, cancellationToken); // チャット進行 // ①自動進行 if (canAuto) { sm.MoveByAuto(); } // ②アイテム選択による進行 else { var selectedItem = await WaitForItemSelection(cancellationToken); sm.MoveByItem(selectedItem.Value); } } }
後々のコード なにか、へん......(最終的に3,4百行に) async UniTask RunGameLoop(StateMachine sm, CancellationToken cancellationToken) { while
(true) { var (chatLines, canAuto) = sm.Enter(); // ステートに入る await ProcessChat(chatLines, cancellationToken); // チャット進行 if (A1についた) { if (Flagを通ったことがある) C1に行く; else B1に行く; } if (A2についた) { if (A3についた) { if (A4についた) { : : // ①自動進行
3が足りなかった 1. 自動進行 2. 選択肢による進行 3. 条件進行 この3つが揃えばステートマシンで ノベルゲーム進行できる(はず) •
フラグ達成による進行 • 一度読んだ文章を短縮版に差し替え
所感 ⚫ 小規模作品であれば自作でもできそう ⚫ これ以上複雑になるならライブラリを使ったほうがよさそう
話の作りこみが難しい
起・転・結はわりとすぐできた 旧友に電話をかけよう ゲーム部分 夏も終わるし花火大会に行きたい うまくいかなかったりうまくいったりする エンディング 電話でうまいこと興味をひく 起 転 結
承
「承」が難しい ⚫一番長い、かつゲームとして遊ぶ部分 ⚫何書いてもいいがゆえに自由すぎてつらい
「承」に遊びごたえをつくる ⚫ 選択進行と条件進行を使いたおしたい ⚫『逆転裁判』にならい、特定のアイテムを出すタイミングをつくる カラオケよく 行ってたな オオカミ娘 好きだったよね SNSで見たけど 花火大会の会場で
ライブするんだって! 特定アイテム 次の話題選び 大事かも...! この流れを軸にして、メインの話、サブの話を作っていった
「制約をつくって探索」をくりかえす Discordのようす 何の話題で興味をひく? Q. 制約:過去と今で価値観かわってそうなもの 親友が好きだった「食べ物 / ゲーム / 音楽」
具体的に何にする?(固有名詞も) Q. 制約:オオカミやケモノ関連 「肉 / ジャングルマスター / オオカミ娘」
ノベルゲームぽくすることが難しい
ノベルゲームぽくする機能 文字送り トランジション ⚫ TMPに1文字置く→待つ(UniTask.Delay)の繰り返し ⚫ 終わるまで文字送りの音をループし続ける ⚫ フラッシュ:上に白画像おいて透明度イージング ⚫
(もうちょっと凝りたかった)
その他アニメーション(うすいしおさん作) 雲 アイテム獲得 2枚の画像でループ ⚫ 透明度を濃くする + ひょこっ ⚫ ひょこっ:Rotate
+ Yoyo
おわりに
⚫ 小規模にノベルゲームをつくれて経験になった ⚫ ステートマシンの勉強になった ⚫ ノベルゲームとしての機能部分をつくる経験になりました ⚫ ライブラリ使ったり自作で作ったりしてみたい ⚫ 共同制作楽しかった
⚫ 絵がとてもかわいかった ⚫ ストーリーや実装を いっしょにわいわい作れてよかった 感想
Thank You For Listening!