流れる数字を足して速さを競うフラッシュ暗算を、最大20人でオンライン対戦。登録不要・無料でブラウザだけで遊べます。

開発者:まっつん

概要

アプリケーションURL

流れる数字を足して答えの速さを競う、フラッシュ暗算のオンライン対戦ゲームです。
登録不要・無料、ブラウザだけで遊べます。
1対1は毎ラウンド難易度を自分で選ぶ5ラウンド制、バトルロイヤルは最大20人の生き残り戦。人数が足りないときはCPUが入るので待ちません。
桁数・口数・秒数を自由に決める練習モードもあり、そろばん未経験の方から競技経験者までを想定しています。

利用している技術

TypeScript / Node.js。実行時の依存パッケージはゼロで、WebSocket サーバも Node の http モジュールの上に自前で実装しています。フロントエンドもフレームワークを使わない素の TypeScript で、音は Web Audio による合成(音声ファイルなし)、シェア画像は canvas で生成しています。

データベースは使っていません。対戦の状態はインメモリの単一プロセスに持ち、計測は1行1イベントの JSON Lines をファイルに書くだけです。レートや練習の記録は localStorage。

サーバは Render の 0.5c-512mb(0.5 CPU / 512MB、シンガポールリージョン)+永続ディスク1GB。render.yaml による Blueprint デプロイで、ダッシュボードでの手入力はありません。

テストは自前のルール検証(出題生成 約26,000問・勝敗と脱落・レート変動)、WebSocket の実クライアントで4モードを完走させる結合テスト、Playwright によるブラウザ2枚のスモークテスト。

サービスのPR点

一番手を入れたのは「初めての人が最初の数戦で勝てること」です。

1対1の難易度3択は、3つの期待値を横並びにして、当たり外れの振れ幅だけが変わる設計にしました(ハードを選ばないと勝てないゲームにしないため)。

開始の合図と表示音は、競技経験者からいただいた検定・大会の音声を波形から測って再現しています(1024Hzを520ms、2回)。フラッシュ暗算では音が演出ではなく入力の一部だ、という指摘が別々の経験者から独立に来たためです。

今後の追加機能など

いまはプロトタイプで、遊ばれ方をサーバ側で計測しながら暫定値を較正している段階です。CPUの速さ、回答の制限時間、難易度3択の想定正答率はどれも人間の実測で決め直す前提で置いた値です。

直近で入れたいもの
・チュートリアル(説明を読ませず、CPU相手の「教える試合」を1戦通す)
・練習モードの条件指定をフレンドマッチにも展開(教室の先生が「今日はこの条件で」と配れるように)
・みんなの正答率カーブ(「3桁15口を5秒で何%」を全体の集計で出す。データが溜まってから)

そのあと
・レートをサーバに保存してアカウントと全国ランキング
・切断からの復帰、シーズン制
・難易度調整
・iOSやAndroidへの展開

その他メッセージ

そろばん経験者の方には遊んでいただけたのですが、そろばんに縁のない方の反応がまだ取れていません。「ここが分かりにくい」「ここでやめた」だけでも本当に助かります。感想フォーム(匿名): https://forms.gle/K9RTgfzggDNFgBV39

フィードバック募集

まだフィードバック募集がありません

開発報告

開発者からのリリース報告などのコメントです

過去30日間のツイート(※反映に時間がかかります)
開発報告がありません
過去7日間のツイートを表示します

コメント

サービスの利用者などからのフィードバックコメントです

まだコメントがありません