Coding
PromptBeginner5 minmarkdown
Nano Banana Pro
Agent skill for nano-banana-pro
6
このファイルは、このリポジトリでコードを操作する際にClaude Code (claude.ai/code) にガイダンスを提供します。
Sign in to like and favorite skills
このファイルは、このリポジトリでコードを操作する際にClaude Code (claude.ai/code) にガイダンスを提供します。
このプロジェクトは日本語の教育プロジェクトのため、Claude Codeは常に日本語で回答し、日本語でコメントや説明を記述してください。
TinyEngine は Go 言語で作成する教育的な小さなゲームエンジンです。クリーンなテスト駆動開発を通じてゲームエンジンアーキテクチャを教えることを目的としています。SOLID原則に従い、学習効果を最大化するための段階的な実装を重視しています。
現在の開発状況については
を確認してください。task.md
仕様に基づき、実装後は以下のコマンドを使用します:
# テスト実行 go test ./... -v -race -coverprofile=coverage.out # リント実行 golangci-lint run # ビルド go build -o bin/tinyengine cmd/tinyengine/main.go # ビルド成果物のクリーンアップ rm -rf bin/ coverage.out
プロジェクトは以下のコアシステムからなるモジュラーなゲームエンジンアーキテクチャに従います:
internal/core/): メインゲームループ、アプリケーションライフサイクル、デルタタイム管理internal/scene/): シーン管理、アクター階層、GameObjectインターフェースinternal/renderer/): OpenGL抽象化、バッチレンダリング、シェーダー管理internal/input/): キーボード・マウス入力、イベント処理、入力マッピングinternal/audio/): サウンド・音楽再生、音量制御internal/ui/): 基本UI要素(ボタン、ラベル、パネル)、レイアウト管理internal/camera/): 2Dカメラ、ビューポート管理、座標変換internal/collision/): AABB(軸平行境界ボックス)と円形衝突判定internal/math/): ベクトル、行列、変換ユーティリティinternal/platform/): ウィンドウ管理、タイミングすべてのゲームオブジェクトは以下の基本インターフェースを実装します:
type GameObject interface { Initialize() error Update(deltaTime float64) Render(renderer Renderer) Destroy() }
プロジェクトは厳密にTDD手法に従います:
目標テストカバレッジ: 80%以上
プロジェクトは段階的な実装のために設計されています:
/books/ ディレクトリには段階的な実装ガイドが含まれています:
コードベースは標準的なGoプロジェクトレイアウトに従います:
cmd/: アプリケーションエントリーポイントinternal/: プライベートアプリケーションコードpkg/: 公開ライブラリインターフェースtest/: テストフィクスチャとヘルパーassets/: ゲームアセット(シェーダー、テクスチャ、サウンド、フォント)examples/: サンプルゲーム(basic、platformer、pong)books/: 教育実装ガイドプロジェクトは以下のCI/CD設定を使用予定:
# .github/workflows/ci.yml name: CI on: [push, pull_request] jobs: test: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - uses: actions/setup-go@v3 with: go-version: '1.19' - run: make test - run: make lint