Robloxでゲームを初公開してみた

もう半年も前になるけど、Robloxで自作のゲームを初めて公開してみた。

SPONSORED BY

Robloxとは?

RobloxはMinecraftやFortniteと同列に語られることが多いけど、正確には「ゲーム」ではなくて、「ゲームプラットフォーム」と捉えるのが正しいと思う。
YouTubeが動画のプラットフォームであるように、Robloxの中に無数のゲームが公開されてる。
2025年Q3のレポートによるとデイリーアクティブユーザー数(DAU)は平均1.51億人らしい。
毎日、日本の総人口以上が遊んでる。しかも主に13歳未満。とんでもない。

特徴は:

  • 基本無料で、PC/スマホ/ゲーム機/VR HMD、どこからでもアクセス可能
  • Roblox Studioという統合開発環境が無料で使える
  • サーバーホスティングも込みで、マルチプレイヤーがデフォルト
  • ゲーム内広告や課金アイテムなど収益化の仕組みが豊富

ピクセルおえかき (Nazca Drawing)

自作ゲームのコンセプトはシンプルに「プレイヤーが歩くと色付きタイルが置かれる」だけ。

ナスカの地上絵みたいに、空から見下ろすと自分の足跡が絵になってる。
ソロで黙々と描くもよし、みんなで一緒に描くもよし。
人が少なくて寂しい時はBotを召喚して、勝手に歩き回ってもらうこともできる。
深いゲーム性はないけど、自由度に全振りして、遊び方はプレイヤーに丸投げした。

開発雑記

この「ピクセルおえかき」の3ヶ月前に、全く別のゲームをチーム開発した。(この話はまた後日)
その時はデザイナーやアーティストも含む複数人での作業だったので、Roblox Studioにだいぶ依存して開発した。
標準で複数人の同期開発をサポートするRoblox Studioはすごいんだけど、
GUI中心の開発でエンジニアとして困ったのが、Git管理できないことや、コードが散逸すること。
Unityでも「どのPrefabの中に書いたっけ?」ってなるよね。
複数人で開発してるとほんとに誰が何を変更したかすぐわからなくなるし、diffも取れない。

そこで自分だけでゲーム開発してRojoを使ってみようと思った。

Rojo

RojoはRobloxプロジェクトをファイルシステム上で管理できるツール。
Robloxの3D空間やスクリプトを、通常のディレクトリ構造+テキストファイル(Lua、JSON等)に変換してくれる。
VSCodeで書いて、Rojoでリアルタイム同期して、Roblox Studio上で動作確認、って流れ。
Rojo自体はRustで書かれてて、変更を検知すると自動的に同期してくれるので、ホットリロードみたいな体験になる。

「ピクセルおえかき」は、90%以上をVSCodeで開発できた。
開発体験は劇的に改善したと言っていい。
一方、3Dモデリングや地形生成といったRoblox StudioのGUIなら簡単にできることもコードで記述しすぎた感も否めないので、次回は適材を適所に充てるセンスを磨きたい。

技術的な面白さ

Robloxの開発で面白いのは、「サーバー/クライアント間の通信」が前提となっていること。
裏を返せば、スタンドアロンなゲームは作れない、とも言うけど。

マルチプレイヤーゲームを作るとき、通常はWebSocketやRPCを使ってサーバーと同期する仕組みを自前で書く必要があるけど、Robloxはその辺が全部用意されてる。

例えば、プレイヤーが歩いたときにタイルを配置する処理は、

  1. クライアント側で「この位置にタイルを置きたい」とサーバーにリクエスト
  2. サーバー側で検証(不正な位置じゃないか、等)
  3. OKなら全プレイヤーにブロードキャスト

って感じで、わりとレイヤーを意識せずに書ける。
(ほんとに意識しないと大変なことになるけれど)

パーティクルや照明、物理エンジンも最初から揃ってる。
UnityやUnreal Engineのような「超美麗なグラフィックス!」は難しいけど「ゲーム性の実装に集中できる」ってのは、プロトタイピングツールとしても優秀だと思った。

LuauというRoblox独自の型付きLua方言にはすぐ慣れたものの、タイル周りのロジックをどう効率化するかで少し悩んだ。
例えば、お絵かきとして、点描だけだと辛いので、同色のタイルで囲むと内部も同色のタイルに塗りつぶす機能を設けたんだけど、
愚直に100万タイル(≒ 1024×1024)を扱うとFPSがガクッと下がったので、閉域をFlood Fillでいかに効率よく検出するか、とか久しぶりに競技プログラミングみたいなコードを書いた。

所感

今回の「ピクセルおえかき」はあくまで習作だけど、開発を通した学びは多かった。
ドキュメントも充実してるし、「これだけやれば動くよ」っていう道筋が明確で、学習コストが低い。
作ったゲームをすぐに世界中の人に遊んでもらえるのも良い。
デプロイとかサーバー管理の面倒を一切考えず、ただ"Publish"ボタンを押すだけ。

次は物理エンジンをゴリゴリに使い倒したものを作ろうかなと思ってる。
乞うご期待。

SPONSORED BY