Roblox Studio × TypeScript (roblox-ts) による MMO ゲーム開発プロジェクト
| ツール | 用途 |
|---|---|
| roblox-ts | TypeScript → Luau 変換 |
| Rojo | ファイルシステム ↔ Roblox Studio 同期 |
| pnpm | パッケージ管理(ワークスペース) |
| ESLint | TypeScript コード品質 |
| Prettier | コードフォーマット |
| StyLua | Luau フォーマット |
| Selene | Luau 静的解析 |
| Husky | Git フック |
| GitHub Actions | CI/CD |
Dev Container を使用すると、全員が同じ開発環境で作業できます。
# 1. クローン
git clone https://github.com/your-org/tutorial-mmo-world.git
cd tutorial-mmo-world
# 2. VS Code で開く
code .
# 3. 「Reopen in Container」を選択(自動セットアップが実行される)
# 4. 開発サーバー起動
pnpm dev:game💡 Roblox Studio はホストマシンで起動し、Rojo プラグインでポート 34872 に接続します。
クリックして展開
- Node.js v20 LTS
- pnpm v9
- Aftman
- Roblox Studio
# Node.js をインストール後
npm install -g pnpm
# Aftman をインストール後
aftman installbrew install node
npm install -g pnpm
brew install aftman
aftman installgit clone https://github.com/your-org/tutorial-mmo-world.git
cd tutorial-mmo-world
pnpm install
pnpm buildcode --install-extension evaera.vscode-rojo
code --install-extension fireboltofdeath.vscode-roblox-ts
code --install-extension JohnnyMorganz.luau-lsp
code --install-extension JohnnyMorganz.stylua
code --install-extension dbaeumer.vscode-eslint
code --install-extension esbenp.prettier-vscodetutorial-mmo-world/
├── apps/
│ └── game/ # メインゲーム
│ ├── src/
│ │ ├── client/ # クライアントスクリプト
│ │ ├── server/ # サーバースクリプト
│ │ ├── shared/ # 共有コード
│ ├── include/ # Luau ランタイム
│ └── default.project.json # Rojo 設定
├── packages/
│ └── shared/ # 共有ライブラリ
├── .github/
│ └── workflows/ci.yml # GitHub Actions
├── aftman.toml # Roblox ツール定義
├── eslint.config.mjs # ESLint 設定
├── stylua.toml # StyLua 設定
└── tsconfig.json # TypeScript 設定
| ソース | Roblox Studio |
|---|---|
out/client/ |
StarterPlayer.StarterPlayerScripts.Client |
out/server/ |
ServerScriptService.Server |
out/shared/ |
ReplicatedStorage.Shared |
# 開発サーバー起動(TypeScript 監視 + Rojo サーバー)
pnpm dev:game
# ビルド
pnpm build
# Lint
pnpm lint # チェック
pnpm lint:fix # 自動修正
# フォーマット
pnpm format # 自動修正
pnpm format:check # チェック
# Luau フォーマット
pnpm format:lua
pnpm format:lua:checkmain ← 本番環境(保護)
↑
develop ← 開発統合
↑
feature/xxx, fix/xxx
Angular 規約に従います:
feat: プレイヤーインベントリ機能を追加
fix: リスポーン時のバグを修正
refactor: ネットワーク層を整理
docs: README を更新
👉 CONTRIBUTING.md を参照してください。
Roblox Studio でゲームを再生するとテストが実行されます。
GitHub Actions で以下を自動実行:
| ジョブ | 内容 |
|---|---|
build |
TypeScript ビルド、ESLint、Prettier |
lua-lint |
StyLua、Selene |
rojo-build |
Rojo ビルド検証 |
PR がすべてのチェックを通過しないとマージできません。
Rojo が接続できない
# サーバーが起動しているか確認
pnpm dev:game
# ポートの確認
lsof -i :34872 # macOS/Linux
netstat -ano | findstr :34872 # Windowsビルドエラー
# 依存関係を再インストール
rm -rf node_modules
pnpm install
# ビルドキャッシュをクリア
rm -rf apps/game/out
pnpm buildGit フックが動かない
pnpm preparePrivate - All Rights Reserved