Project Plateau
Project Plateau: four glass plates, one living valley, and the road back to camp.
翻訳待ち
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗ドラクエ風に県内を歩きまわって、17日間の知事選挙を戦い抜くブラウザゲームです。 投票日の夜は開票速報が流れ、だれかに「当選確実」が出たらゲーム終了です。
Web 版はビルド不要の静的サイトです。index.html をブラウザで開くか、ローカルサーバーで配信してください。
npx http-server -p 8080 .
# → http://localhost:8080/
| 操作 | キーボード | スマホ |
|---|---|---|
| 移動 | 矢印キー / WASD | 十字ボタン |
| はなす・しらべる・決定 | Z / Enter / Space | A |
| メニュー・キャンセル | X / Esc | B |
端末やブラウザの言語が日本語なら日本語、それ以外なら英語で表示します(英語版のタイトルは「Run for Governor!」)。タイトル画面の「🌐 English / 🌐 日本語」でいつでも切り替えられ、選んだ言語は次回も使われます。
js/i18n-en.js の翻訳表(日本語の文 → 英語の文)から引きます。数や名前が入る文は tr('聴衆は {n}人ほど あつまっている。', { n }) のように {名前} の形で書きます({N} はプレイヤー名)。js/i18n.js にあります。node scripts/check-i18n.js を実行してください。英語の訳がない文と、{} の食い違いを一覧にします。android/app/src/main/res/values-en/strings.xml)。歩いていると、いろいろな出来事に出くわします。選んだ行動の結果が数日後に返ってくることもあります。
善いことに見えて裏目に出るもの、断ると得をするものが混ざっています。神社でお参りすると、その日は悪い縁に巻きこまれにくくなります。
初代ドラクエのようなファミコン風の電子音(矩形波2音+三角波ベース)を Web Audio で鳴らしています。音源ファイルは使っておらず、曲はすべてオリジナルです。
| 場面 | 曲 |
|---|---|
| タイトル | 堂々としたマーチ |
| フィールド(昼) | 軽快に歩きまわる曲 |
| フィールド(17時以降) | 少しさみしげな夕暮れの曲 |
| 建物の中・朝の事務所・出陣式 | のどかな町の曲 |
| 偶然の出来事・朝市などの集会 | 「なにか起きた!」曲 |
| スキャンダル報道・過労で倒れる | 不穏な曲 |
| 夜の報告 | 子守歌 |
| 公開討論会・テレビ討論・最後のお願い | 戦闘曲ふう |
| 開票速報 | 緊張感のある刻み |
| 当選 / 落選 | ファンファーレ / 哀しい曲 |
メニューの「おと」で効果音とBGMをまとめて ON/OFF できます。
Capacitor でゲームのファイルをアプリ内に同梱しているため、ネットにつながっていなくても遊べます(フォントも css/fonts/ に同梱)。
アプリ ID は jp.techgym.kenchiji です(Google Play に一度公開すると変更できません)。
Android アプリでのみ広告を表示します(Web 版には広告は出ません)。
| 広告 | タイミング |
|---|---|
| インタースティシャル(全画面) | 毎晩、夜の報告を閉じたあと(1〜17 日目)/タイトルからプレイを始めるとき(はじめから・つづきから)/メニューの「トップへ」でタイトルに戻るとき |
| リワード | 過労で倒れたときに「応援動画を見て立ちあがる」を選ぶと、体力 60 で その日の活動を続けられる(1 日 1 回) |
| リワード | 選挙事務所の「応援動画を見る」で体力が全回復(1 日 1 回) |
| バナー(画面の下) | 起動してからずっと表示(タイトル・プレイ中・メニュー・結果画面)。ゲーム画面はバナーのぶん上に詰めて、操作ボタンと重ならないようにする |
js/ads.js の production、AdMob のアプリ ID は android/app/src/main/res/values/strings.xml にあります。kenchiji.apk)は常に Google のテスト広告 を表示します。自分でタップしても問題ありません。ADMOB_MODE=production で本番の広告に切り替えます(scripts/build-web.js が js/ads-config.js を書き換えます)。GitHub Actions(自動): Web 版や android/ を変更して push すると、.github/workflows/android.yml が動作確認用の APK を作ります。
既定ブランチのビルドは GitHub の Release(android-latest)に自動で載るので、Android 端末で次の URL を開くか QR コードを読み取るだけで最新版をダウンロードできます。
https://github.com/techgymjp/kenchiji/releases/latest/download/kenchiji.apk
リリースページ(バージョンや説明を見てからダウンロードする場合): https://github.com/techgymjp/kenchiji/releases/tag/android-latest
ダウンロードした kenchiji.apk を開き、「提供元不明のアプリ」のインストールを許可するとインストールできます。
動作確認用の署名鍵(android/app/debug.keystore)はリポジトリで固定しているので、新しいビルドもアンインストールせずに上書きインストールできます。
(Release に載る APK はデバッグ版です。Google Play には下の手順で作る署名済み .aab を使います)
手元の PC(Android Studio):
npm ci
npm run android:sync # Web ファイルを www/ にまとめて Android プロジェクトへコピー
npm run android:open # Android Studio で開く
upload.jks)は他のゲームと同じものを使い回せます。新しく作る場合は次のとおり(Java が必要)
keytool -genkeypair -v -keystore upload.jks -alias upload -keyalg RSA -keysize 2048 -validity 10000
base64 -i upload.jks | tr -d '\n' | pbcopy # macOS(クリップボードにコピー)
| 名前 | 内容 |
|---|---|
ANDROID_KEYSTORE_BASE64 | upload.jks を base64 にした文字列 |
ANDROID_KEYSTORE_PASSWORD | キーストアのパスワード |
ANDROID_KEY_ALIAS | upload(作成時に指定した別名) |
ANDROID_KEY_PASSWORD | 鍵のパスワード |
kenchiji-release-aab(.aab)ができるストアに載せる画像(アイコン・フィーチャーグラフィック・日英のスクリーンショット)と掲載文の下書きは docs/store/ にあります(docs/store/listing.md)。
バージョン番号(versionCode)は Actions の実行回数が自動で使われます。表示用のバージョン名は package.json の version で、タイトル画面の右下に表示されます。
Android 版と同じ Capacitor のプロジェクトに ios/ を足して作っています(Swift Package Manager の構成)。Mac での作業手順は docs/IOS_BUILD.md にあります。
This is the beginning of the README. Read the rest at the original. Read the full README ↗