Flutterアプリケーション開発概論

自分だけの人生ゲームにカスタマイズしよう

18人生ゲームを作る。サイコロ処理・イベント分岐・プレイヤー管理・データ設計・アニメーション
FlutteriOSAndroidMacOSWindows基礎から学ぶ開発アプリ開発

忙しい方はここだけ見て

この章では、今まで作ってきた人生ゲームを「自分だけのゲーム」に変えていきます。

最初に変えるなら、この4つだけでOKです。

1. プレイヤー名を変える
2. マスの名前を変える
3. イベントを追加する
4. 物件名・価格・通行料を変える

触る場所はこちらです。

プレイヤー名
↓
_createInitialPlayers()

人生のマス
↓
_createTiles()

イベント
↓
_createEventPool()

物件価格・通行料
↓
_createTiles() の price / rent

最初は、難しい処理を変えなくて大丈夫です。

文字を変える
↓
保存する
↓
動かして確認する

この流れだけで、自分だけの人生ゲームに近づいていきます。


この章でやること

この章では、これまで学んできた内容を使って、人生ゲームをカスタマイズしていきます。

今までの章で、次の仕組みを見てきました。

マスを作る
プレイヤーを作る
イベントを追加する
サイコロを振る
お金を増減する
物件を買う
通行料を支払う
モーダルで表示する
タイムラインで見せる

ここまで来たら、もう「ただコードを見る段階」ではありません。

ここからは、自分のテーマに合わせてゲームを変えていく段階です。


今日のゴール

この章のゴールは、次の3つです。

1. どこを変えればゲームの雰囲気が変わるか分かる
2. 自分のテーマに合わせてマスやイベントを変えられる
3. 小さく変更して、動作確認する流れが身につく

全部を一気に変えなくて大丈夫です。

まずは、1か所だけ変えてみましょう。


Step 1:まずテーマを決めよう

最初に、どんな人生ゲームにしたいかを決めます。

例えば、こんなテーマがあります。

テーマ内容
学校生活ゲーム入学、部活、テスト、文化祭、卒業
仕事ゲーム就職、副業、転職、昇進、独立
投資ゲーム株式投資、不動産、税金、暴落、配当
店舗経営ゲーム開業、広告、売上、スタッフ採用、2店舗目
クリエイターゲーム投稿、バズる、案件獲得、炎上、収益化

テーマを決めると、マスやイベントを作りやすくなります。


Step 2:プレイヤー名を変える

まずは、プレイヤー名を変えます。

触る場所はここです。

_createInitialPlayers()

変更前です。

PlayerState(
  id: 0,
  name: 'Player 1',
  color: AppColors.red,
  position: 0,
  cash: 1500,
  properties: <int>{},
  isFinished: false,
),

変更後です。

PlayerState(
  id: 0,
  name: '起業家A',
  color: AppColors.red,
  position: 0,
  cash: 1500,
  properties: <int>{},
  isFinished: false,
),

2人目も変えます。

name: '投資家B',

これだけでも、ゲームの雰囲気が変わります。


Step 3:マスの名前を変える

次は、人生のマスを変えます。

触る場所はここです。

_createTiles()

変更前です。

BoardTile(
  index: 1,
  age: 21,
  stage: '学生・準備期',
  label: '準備の日々',
  description: '大きな収支はありません。これからの人生に向けて、少しずつ経験を積みます。',
  type: TileType.normal,
),

仕事ゲームにするなら、こう変えられます。

BoardTile(
  index: 1,
  age: 21,
  stage: 'キャリア準備期',
  label: 'はじめての面接',
  description: '緊張しながらも、はじめての面接に挑戦しました。',
  type: TileType.normal,
),

最初は、labeldescription だけ変えればOKです。


Step 4:物件名を変える

物件マスも、自分のテーマに合わせて変えられます。

変更前です。

BoardTile(
  index: 2,
  age: 23,
  stage: '社会人スタート期',
  label: '小さなカフェ',
  description: '小さなカフェに投資できます。所有すると、他のプレイヤーが止まった時に通行料を得られます。',
  type: TileType.property,
  price: 300,
  rent: 80,
),

店舗経営ゲームにするなら、こうできます。

BoardTile(
  index: 2,
  age: 23,
  stage: '開業準備期',
  label: '小さな屋台',
  description: '小さな屋台を始めます。所有すると、他のプレイヤーが止まった時に売上が入ります。',
  type: TileType.property,
  price: 300,
  rent: 80,
),

type: TileType.property は残します。

これを消すと、物件マスとして動かなくなります。


Step 5:価格と通行料を変える

物件の強さは、pricerent で決まります。

price: 300,
rent: 80,

意味はこちらです。

項目意味
price買うときの価格
rent他の人が止まったときにもらえる金額

安くて通行料が高い物件は、強い物件になります。

price: 300,
rent: 200,

高くて通行料も高い物件なら、バランスが取りやすいです。

price: 800,
rent: 250,

最初は、大きく変えすぎないのがおすすめです。


Step 6:イベントを追加する

次は、イベントを追加します。

触る場所はここです。

_createEventPool()

仕事ゲームなら、こんなイベントを追加できます。

EventInfo(
  title: '新規案件を受注',
  description: '紹介から新しい仕事が決まり、まとまった収入が入りました。',
  cashChange: 500,
  category: EventCategory.work,
),

トラブルイベントなら、こうです。

EventInfo(
  title: 'パソコンが故障',
  description: '仕事で使っていたパソコンが壊れて、修理費がかかりました。',
  cashChange: -350,
  category: EventCategory.trouble,
),

収入はプラス、出費はマイナスです。


Step 7:イベントのバランスを整える

イベントは、プラスばかりでも、マイナスばかりでも面白さが偏ります。

おすすめは、このくらいです。

収入イベント:4個
出費イベント:3個
投資イベント:2個
トラブルイベント:2個
チャンスイベント:2個

最初は、良いことと悪いことを半分ずつくらい入れると遊びやすいです。

良いイベント
↓
副業成功、ボーナス、投資利益、案件獲得

悪いイベント
↓
修理費、税金、体調不良、広告失敗

人生ゲームらしさは、予想外の出来事で生まれます。


Step 8:給料や税金の金額を変える

給料マスの金額を変えるなら、ここです。

cashChange: 500,
_addCashToCurrentPlayer(500);

例えば、給料を増やすなら、両方を変えます。

cashChange: 700,
_addCashToCurrentPlayer(700);

税金も同じです。

cashChange: -250,
_addCashToCurrentPlayer(-250);

軽くするなら、こうです。

cashChange: -150,
_addCashToCurrentPlayer(-150);

表示用と実際の処理用の数字をそろえるのがポイントです。


Step 9:ゲームの難しさを変える

ゲームの難しさは、数字で変えられます。

変えたいこと変更する場所
簡単にしたい初期所持金を増やす
難しくしたい税金や出費を増やす
逆転しやすくしたい高額イベントを増やす
物件ゲームにしたいrentを高めにする
ゆっくり進めたいサイコロの最大値を小さくする

例えば、初期所持金を増やすなら、ここです。

cash: 1500,

変更後です。

cash: 3000,

初心者向けにするなら、最初は所持金を少し多めにすると遊びやすいです。


Step 10:テーマ別カスタマイズ例

学校生活ゲーム

プレイヤー:Aチーム、Bチーム
物件:部室、模擬店、学園祭ブース
イベント:テスト高得点、部活優勝、参考書購入
ゴール:卒業式

仕事ゲーム

プレイヤー:起業家A、会社員B
物件:小さなカフェ、ネットショップ、駅前テナント
イベント:副業成功、転職、パソコン故障
ゴール:資産集計

投資ゲーム

プレイヤー:投資家A、投資家B
物件:株式、不動産、店舗、ビル
イベント:株価上昇、暴落、配当金、税金
ゴール:総資産ランキング

店舗経営ゲーム

プレイヤー:店長A、店長B
物件:屋台、小型店舗、駅前テナント、商業ビル
イベント:新商品ヒット、広告費、スタッフ採用、設備故障
ゴール:売上と資産の集計

このように、文字を変えるだけで別のゲームになります。


Step 11:初心者におすすめの変更順

一気に全部変えると、どこでエラーが出たか分かりにくくなります。

おすすめは、この順番です。

1. プレイヤー名を変える
2. マス名を1つ変える
3. イベントを1つ追加する
4. 物件名を1つ変える
5. priceとrentを少し変える
6. 給料や税金の金額を変える

1つ変えたら、必ず保存して動作確認します。

変える
↓
保存する
↓
動かす
↓
問題なければ次へ

これが一番安全です。


Step 12:自分のゲーム企画をメモしよう

コードを変える前に、簡単な企画メモを作ると楽です。

ゲーム名:
テーマ:
プレイヤー名:
主なマス:
物件:
良いイベント:
悪いイベント:
ゴール:

例です。

ゲーム名:小さな起業家ゲーム
テーマ:副業から会社経営へ
プレイヤー名:起業家A、起業家B
主なマス:初案件、副業成功、税金、広告出稿
物件:ネットショップ、カフェ、駅前テナント
良いイベント:動画がバズる、紹介で案件獲得
悪いイベント:PC故障、広告失敗
ゴール:総資産ランキング

先に考えておくと、コードの変更がスムーズになります。


Step 13:やりすぎないことも大事

最初から完璧なゲームを作ろうとすると、途中で大変になります。

最初の目標はこれで十分です。

プレイヤー名を変える
マスを3つ変える
イベントを3つ追加する
物件を2つ変える
1回最後まで遊ぶ

最後まで動けば、大成功です。

そこから少しずつ良くしていきましょう。


Step 14:カスタマイズの完成例

仕事ゲームに寄せるなら、このような内容にできます。

20歳|人生のはじまり
21歳|はじめての面接
23歳|小さなネットショップ
24歳|ライフイベント
25歳|初任給
28歳|税金・支払い
30歳|副業が軌道に乗る
35歳|駅前テナント
40歳|大型案件
50歳|ビジネス拡大
65歳|資産集計

これだけでも、かなりゲームらしくなります。


触ってみよう

今回は、最低限のカスタマイズを3つだけ行います。

1. プレイヤー名を変える

name: '起業家A',
name: '投資家B',

2. 物件名を変える

label: '小さなネットショップ',
description: '小さなネットショップに投資できます。所有すると、他のプレイヤーが止まった時に売上が入ります。',

3. イベントを1つ追加する

EventInfo(
  title: 'SNS投稿がバズる',
  description: '投稿が多くの人に届き、仕事の相談が増えました。',
  cashChange: 600,
  category: EventCategory.chance,
),

保存して、ゲームを動かします。

画面の文字やイベントが変わっていれば成功です。


よくあるエラーと直し方

1. 一気に変えすぎてエラーの場所が分からない

一番多い失敗です。

対策はこれです。

1か所変える
↓
保存する
↓
動かす
↓
次を変える

一気に10か所変えないようにしましょう。


2. カンマを消してしまった

悪い例です。

label: '小さなネットショップ'
description: 'ネットショップに投資できます。',

正しくはこちらです。

label: '小さなネットショップ',
description: 'ネットショップに投資できます。',

各行の最後にカンマを残します。


3. 数字を文字にしてしまった

悪い例です。

price: '500',
rent: '120',
cashChange: '600',

正しくはこちらです。

price: 500,
rent: 120,
cashChange: 600,

数字は ' で囲みません。


4. typeを変えてしまった

物件マスには、これが必要です。

type: TileType.property,

イベントマスには、これが必要です。

type: TileType.event,

type を間違えると、思った動きになりません。


5. 表示金額と実際の金額がズレる

給料や税金を変えるときは、2か所そろえます。

cashChange: 700,
_addCashToCurrentPlayer(700);

どちらか片方だけ変えると、表示と実際の所持金がズレます。


この章で覚えること

この章で覚えることは、3つだけです。

1. 文字を変えるだけでも自分のゲームになる
2. マス・イベント・物件・金額を少しずつ変える
3. 1か所変えたら、必ず動作確認する

まずはこれだけで大丈夫です。


やる気を維持するコツ

ゲーム作りで一番楽しいのは、自分のアイデアが画面に出る瞬間です。

最初は、難しい処理を書けなくても問題ありません。

Player 1 を 起業家A に変える
小さなカフェ を ネットショップ に変える
副業成功イベントを追加する

これだけでも、もう自分のゲームです。

完璧に作るより、まず動かす。

動いたら、少し良くする。

また動かす。

この繰り返しで、ちゃんと作品になります。


チェックリスト

□ ゲームのテーマを決めた
□ プレイヤー名を変更した
□ マス名を1つ変更した
□ 説明文を1つ変更した
□ 物件名を1つ変更した
□ priceを確認した
□ rentを確認した
□ イベントを1つ追加した
□ cashChangeのプラス・マイナスを確認した
□ 保存して動作確認した
□ 最後まで1回遊んでみた

まとめ

この章では、自分だけの人生ゲームにカスタマイズする方法を整理しました。

最初に変えるべき場所は、_createInitialPlayers()_createTiles()_createEventPool() です。

プレイヤー名、マス名、イベント、物件価格、通行料を少し変えるだけで、ゲームの雰囲気は大きく変わります。

大切なのは、一気に全部変えないことです。

1か所変える。

保存する。

動かして確認する。

この流れを守れば、初心者でも安心してカスタマイズできます。

教材トップへ戻る