ミニゲーム: システム

概要

「システム」は PC・OS・ブラウザ・ネットワークの主要指標を 1 画面で確認できる情報ユーティリティです。 起動すると自動で PC タブの 情報 ビューが開き、ハードウェア推定値・OS 判別・ブラウザ情報を収集します。 IP 情報だけは外部 API へのアクセスが必要なため明示的に取得ボタンを押して呼び出します。

セッション中に獲得した EXP はヘッダー右上のチップに累積表示され、コピー操作などでも付与されます。

画面構成

PC タブ

情報サブタブ

Web 標準 API を通じて取得可能なハードウェア指標を集約します。CPU ファミリー推定、論理スレッド数、推定アーキテクチャ、 navigator.deviceMemory ベースの実メモリ概算、JS ヒープ上限、Storage API の quota/usage、タッチポイント数、WebGL から得られる GPU ベンダー/レンダラー、 Battery Status API の充電状況などを一覧で表示します。ブラウザから直接取得できない値(マザーボードや GPU メモリなど)は「取得不可」と注釈付きで明示されます。【F:games/system.js†L562-L958】【F:games/system.js†L1151-L1197】

ハードウェアモニター

1 秒間隔のタイマーと requestAnimationFrame から、イベントループ遅延を CPU 使用率として推定し、 直近のフレームレートとヒープ使用量をカードに描画します。Chrome 系ブラウザでは usedJSHeapSize / jsHeapSizeLimit を利用し、 利用不可の場合は注意書きを添えたままダッシュ表示にします。navigator.deviceMemory が利用できる環境では実メモリ概算もカード化されます。【F:games/system.js†L619-L980】【F:games/system.js†L1257-L1308】

モニターはミニゲーム開始時に自動起動し、停止時・破棄時にタイマーと rAF を確実に解除します。【F:games/system.js†L1394-L1423】

OS タブ

userAgent と navigator 情報をもとに OS 名、バージョン、推定ビット数、プラットフォーム文字列、タイムゾーン、ロケール、対応言語一覧、 ブラウザ稼働時間を時間換算した疑似アップタイムを表示します。再読み込みボタンを押すと即時に再計算し、手動更新時は 1 EXP を獲得します。【F:games/system.js†L650-L703】【F:games/system.js†L983-L1013】【F:games/system.js†L1198-L1202】

実 OS の起動時間は取得できないため、performance.now() からブラウザ稼働時間を推定した値を注釈付きで提示します。【F:games/system.js†L1004-L1011】

ブラウザ タブ

レンダリングエンジン判別やバージョン抽出、User-Agent Client Hints 由来のブランド一覧、Do Not Track 状態、オンライン判定、Cookie 利用可否、 利用可能なストレージ API/主要 Web 機能/HTML5 API を列挙します。WebGPU や Web Bluetooth など実装状況に応じてラベルが増減し、 手動再分析で 1 EXP を加算します。【F:games/system.js†L705-L1067】【F:games/system.js†L1204-L1208】

Storage API や HTML5 対応は安全のため try-catch で判定し、アクセス禁止環境では「取得不可」を表示します。【F:games/system.js†L1039-L1067】

IP タブ

外部の IP 検出 API(api.ipify.org → ipinfo.io → ifconfig.co の順にフェールオーバー)へリクエストを送り、 グローバル IP、ホスト名、地域、ASN、ユーザーエージェントなどを表示します。取得中はキャンセルボタンに切り替わり、 中止時には状態メッセージを赤色で表示します。成功時には取得元サービス名と更新時刻がステータスに並び、結果をコピー から JSON フィールドをまとめてクリップボードへ出力できます。【F:games/system.js†L14-L219】【F:games/system.js†L764-L1247】【F:games/system.js†L1358-L1391】

ネットワークが遮断されている場合やファイアウォールでブロックされている場合は、失敗理由の一覧をまとめたエラーメッセージを表示します。【F:games/system.js†L196-L219】【F:games/system.js†L1231-L1236】

EXP と連携のヒント

システムユーティリティでは以下の操作でセッション EXP が加算され、MiniExp のスコアとして利用できます。得点は getScore() から外部システムへ連携可能です。【F:games/system.js†L864-L1431】

クリップボード API が使えない環境ではフォールバックとして非表示のテキストエリアを用いたコピーを試みます。 いずれも失敗してもエラーは投げず、次の操作へ進めます。【F:games/system.js†L1311-L1391】