Skip to content
Kouji Takao edited this page Jan 3, 2026 · 2 revisions

Smalruby 3 開発ガイド

Welcome to the smalruby3-develop wiki!

このWikiは、Smalruby 3.0の開発環境に関するドキュメントを提供します。

プロジェクト概要

Smalruby 3.0 は、MIT Scratch 3.0をベースにしたRuby版ビジュアルプログラミング環境です。ブロックプログラミングとRubyコードの両方をサポートし、初心者から上級者まで幅広く使用できます。

主な特徴

  • ビジュアルプログラミング: ブロックを組み合わせてプログラムを作成
  • Rubyコード: ブロックとRubyコードを相互変換
  • 2Dゲーム開発: smalruby3ライブラリによるゲーム開発
  • リアルタイム通信: Mesh v2拡張機能による複数インスタンス間の通信
  • 競技プログラミング: smalruby-koshienによるプログラミングコンテスト環境

サブモジュール構成

smalruby3-developは、複数のサブモジュールで構成されています。各サブモジュールの役割は以下の通りです。

GUI コンポーネント

gui/smalruby3-gui

  • 役割: Reactベースのウェブインターフェース
  • 技術: React, Redux, Webpack
  • 説明: Scratch 3.0のGUIをベースに、Ruby統合機能を追加したフロントエンド
  • 主な機能:
    • ブロックエディタ
    • Rubyコードエディタ(Ace Editor)
    • プロジェクト管理
    • 拡張機能ライブラリ

gui/scratch-vm

  • 役割: JavaScriptベースの仮想マシン
  • 技術: JavaScript
  • 説明: ブロックとRubyコードを実行する仮想マシン。Opalトランスパイラを使用してRubyコードをJavaScriptに変換
  • 主な機能:
    • ブロック実行エンジン
    • Ruby/JavaScript相互変換
    • 拡張機能システム
    • スプライト・ステージ管理

gui/smalruby-koshien

  • 役割: プログラミング競技環境(Rails)
  • 技術: Ruby on Rails, PostgreSQL
  • 説明: スモウルビー甲子園(プログラミングコンテスト)のバックエンドシステム
  • 主な機能:
    • AIプログラム管理
    • 対戦システム
    • ゲームエンジン
    • ユーザー管理

インフラストラクチャ

infra/mesh-v2

  • 役割: Mesh v2 AWS インフラストラクチャ
  • 技術: AWS CDK (TypeScript), AWS AppSync, DynamoDB
  • 説明: 複数のSmalrubyインスタンス間でリアルタイムにデータを共有するためのサーバーレスバックエンド
  • 主な機能:
    • GraphQL API (AWS AppSync)
    • リアルタイム通信 (WebSocket Subscriptions)
    • グループ管理
    • データ同期

詳細ドキュメント: Mesh v2 統合ガイド

infra/smalruby-infra

  • 役割: Smalrubyインフラストラクチャ
  • 技術: AWS CDK (TypeScript)
  • 説明: Smalruby関連サービスのインフラストラクチャコード

Rubyライブラリ

lib/smalruby3

  • 役割: Ruby 2Dゲーム開発ライブラリ
  • 技術: Ruby
  • 説明: Smalruby 3.0でゲーム開発を行うためのRubyライブラリ。スプライト、ステージ、イベント処理などのAPI を提供
  • 主な機能:
    • スプライト管理
    • ステージ管理
    • 衝突判定
    • イベント処理
    • スモウルビー甲子園 API

lib/dxruby_sdl

  • 役割: DXRuby SDL ライブラリ
  • 技術: Ruby, SDL
  • 説明: DXRubyのSDL実装。2Dゲーム開発のための低レベルAPIを提供

開発環境のセットアップ

前提条件

  • Docker Desktop
  • Git

クローンとビルド

# リポジトリをクローン(--recursiveでサブモジュールも取得)
git clone --recursive https://github.com/smalruby/smalruby3-develop.git
cd smalruby3-develop

# Dockerイメージをビルド
docker compose build gui

# GUIを起動
docker compose up gui

ブラウザで http://localhost:8601 を開くとSmalruby 3.0が表示されます。

詳細は README.md を参照してください。

主要なドキュメント

Mesh v2 関連

  • Mesh v2 統合ガイド: Mesh v2拡張機能の統合方法、デプロイ手順、API概要
  • infra/mesh-v2/docs/api-reference.md: GraphQL API完全リファレンス
  • infra/mesh-v2/docs/architecture.md: システムアーキテクチャ詳細

GUI/VM 関連

  • gui/smalruby3-gui/README.md: GUI開発ガイド
  • gui/scratch-vm/README.md: VM開発ガイド

Rails アプリケーション

  • gui/smalruby-koshien/README.md: スモウルビー甲子園開発ガイド

コントリビューション

各サブモジュールは独立したリポジトリとして管理されています。コントリビューションは各リポジトリで受け付けています。

リポジトリ一覧

ライセンス

Smalruby 3.0は、MIT Scratch 3.0から派生したプロジェクトであり、BSDライセンスの下で配布されています。詳細は各サブモジュールのLICENSEファイルを参照してください。


最終更新: 2026-01-03 メンテナ: Smalruby Development Team