Skip to content

snkrdunk/find-gopher

Repository files navigation

Find Gopher 🔍

Go Conference 2025向けのブラウザゲーム

ゲーム概要

画面内に散らばった複数のGopherくんの中から、特定のGopherくん(青い通常のGopher)だけを見つけてクリックし、最後の1体にするゲームです。

ゲームルール

  • 制限時間:30秒
  • 目標:青いGopherくんを1体だけ残す(一意化)
  • 正解のGopherをクリック:そのGopherが消える
  • 不正解のGopherをクリック:-2秒のペナルティ
  • スコア:クリア時の残り時間(ミリ秒)

特徴

  • タッチエフェクト付き(成功時:赤い点線の円、失敗時:緑の「-2秒」表示)
  • リザルト画面でXへのシェア機能(QRコード表示)
  • WebAssemblyで動作するため、ブラウザで直接プレイ可能

ディレクトリ構成

find-gopher/
├── main.go              # Goアプリケーション
├── server/              
│   └── main.go          # 開発用サーバー
├── model/               # データモデル層
│   └── effect.go        # エフェクトの構造体定義
├── service/             # ビジネスロジック層
│   ├── game.go          # ゲームのコントローラー
│   ├── gopher.go        # Gopherの管理とクリック処理
│   ├── effect.go        # エフェクトマネージャー
│   ├── assets.go        # アセット管理
│   ├── image.go         # 画像処理
│   ├── share.go         # シェア機能
│   └── qrcode.go        # QRコード生成
├── view/                # プレゼンテーション層
│   ├── renderer.go      # メインレンダラー
│   ├── gopher_renderer.go # Gopher描画
│   ├── components/      # UI コンポーネント
│   │   ├── button.go    # ボタンコンポーネント
│   │   ├── score_box.go # スコアボックス
│   │   └── effect.go    # エフェクト描画
│   └── screens/         # 画面定義
│       ├── title.go     # タイトル画面
│       ├── game.go      # ゲーム画面
│       └── result.go    # リザルト画面
├── internal/            # 内部パッケージ
│   └── font/            
│       └── fontutil.go  # フォント管理
├── assets/              # ゲームで使用するアセットファイル
├── web/                 # 静的ファイル配信用ディレクトリ
│   ├── index.html       # ゲームページ
│   ├── main.wasm        # コンパイル済みゲーム(自動生成)
│   └── wasm_exec.js     # Go WASM ランタイム
├── scripts/
│   └── build.sh         # ビルドスクリプト
├── context/             # 仕様ファイル
│   └── requirements.md  # ゲーム要件定義
├── CLAUDE.md            # 開発ガイドライン
├── Makefile             # タスクランナー
├── go.mod
└── go.sum

クイックスタート

動作環境

  • Go 1.23以上

ローカル実行手順

# ゲームをビルド
make build

# 開発サーバーを起動
make serve

# ブラウザで http://localhost:8080 にアクセス

リリース

mainブランチにマージされると、GitHub Actionsにより自動的にGitHub Pagesへデプロイされます。

デプロイフロー

  1. mainブランチへのプッシュ/マージをトリガー
  2. WebAssemblyビルドを実行
  3. GitHub Pagesへ自動デプロイ
  4. https://snkrdunk.github.io/find-gopher/ で公開

BGM

About

A browser game for Go Conference 2025

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •