omuriceman's blog

iOS / AWS / Firebase / JavaScript / Deep Learning を中心とした技術を面白く紹介します!

Googleが開発した「Game Builder」は3Dゲーム開発をしながらプログラミングを覚えられる

f:id:omuriceman:20190616042328p:plain

先日Googleがコーディング不要でゲーム開発できるGame Builderをブログで発表し話題になっていた。リリース自体は2018年に行なっていて、今回いくつかの機能が大幅にアップデートされている。

www.blog.google

今回はGame Builderを試してどれだけ簡単に3Dゲームが開発できるかを紹介したい。

どんなユーザーにおすすめか

このゲームをオススメしたいユーザーは「新しくプログラミングを学びたい人」である。ゲーム内にでてくるLOGICはコードを打たないプログラミングであり、楽しんでプログラミングの考え方を学べるのではないかと感じた。

一方で「簡単にゲームが開発できて他のゲーム開発エンジンが危ない」ということは現在の段階ではまったく感じられない。あくまで「ゲームを作るゲーム」である。作ったゲームを公開して誰かに遊んでもらうというような機能もなかった。

ちなみに裏ではUnityを使っている。 f:id:omuriceman:20190616023145p:plain:w500

Game Builderの特徴について

公式ブログでは5つの特徴が紹介されている。これらの要素が組み合わさり簡単にゲーム構築が可能になる。

Built for gamers

このゲームは「ゲームを製作するゲーム」である。マインクラフトに近い形でオブジェクトや地形を作ることができ、さらにプログラムを組み込むことができる。ゲーマーが楽しんで作れる仕組みになっている。

Always-on multiplayer

複数のユーザーが同時にゲームを開発できる。

No code required

カードをドラッグ&ドロップするだけでロジック(プログラム)を構築できる。パラメーターなどはカードの値をいじることで調整する。

Real-time JavaScript

上記のカードに自分で新しい要素を作る場合、JavaScriptを使って開発ができる。

Thousands of 3D models

Google Polyにある数千の3Dモデルを使ってゲームに取り込むことができる。

環境構築

開発を行う前に必要なソフトウェアなどのインストールを行う必要がある。

ダウンロードリンク

Game Builderのダウンロードはこちらから。

store.steampowered.com

なおGame Builderの利用にはSTEAMというアプリのインストールが必要になる。

store.steampowered.com

アカウント登録

STEAMのアカウントを取得していない人は登録が必要である。

チュートリアルを試す

NEW PROJECTを選択するといくつかのゲームタイプが表示される。ゲームの操作方法を学ぶためにも「Tutorial」を試す。

f:id:omuriceman:20190616030647p:plain

操作方法

チュートリアルを試しながら「ゲームをプレイするときの操作方法」と「ゲームを作るときの操作方法」を学ぶことができる。

f:id:omuriceman:20190616030826p:plain

【プレイ時の操作方法】

  • 十字キーあるいはキーボードの「AWSD」で移動、シフト押しながらだと走る
  • スペースでジャンプ
  • Vで視点の変換、Eで武器などを持つ
  • マウスの位置で体の向きを変更する

【ゲーム開発時の操作方法】

Tabあるいは画面上部にあるBUILDを選択するとゲーム開発モードになる f:id:omuriceman:20190616033005p:plain

  • CREATE | 3Dオブジェクトを作成する
  • MOVE | 作成した3Dオブジェクトを移動する(terrainは除く)
  • ROTATE | オブジェクトを回転する
  • SCALE | オブジェクトの拡大縮小をする
  • TERRAIN | オブジェクト以外の地形を作成する(壁や地面など)
  • TEXT | 画面上に表示するテキストを作成する
  • LOGIC | オブジェクトにルールを付与する
  • EDIT | オブジェクトに情報や属性を付与する

LOGICについて

ゲーム開発の中で一番重要になってくるのがLOGICである。ここにカード形式でアクションや状態遷移などのプログラムを行なっていく。

MOVEMENT

f:id:omuriceman:20190616034453p:plain

オブジェクトの動きを指定でき、複数の動きをカードで重ね合わせることも可能。上記のスクリーンショットの場合は、オブジェクト自体が回転しながらランダムに動き回るプログラムになっている。

IF THEN

f:id:omuriceman:20190616034654p:plain

もし〇〇だったら××するというプログラムができる。こちらのスクリーンショットの場合は、オブジェクトがプレイヤーに衝突したらオブジェクトが赤くなる。

HEALTH

f:id:omuriceman:20190616035023p:plain

主にプレイヤーのダメージの管理に利用する。上記の場合はダメージを受けたら赤くして画面をシェイクしている。また死んだ時は最終時のチェックポイントに戻り体力は回復している状態になる。

GRABBABLE ITEM

f:id:omuriceman:20190616035235p:plain

武器に対してのプログラムができる。上記の場合はビームがでるようになっている。

PLAYER CONTROLS

f:id:omuriceman:20190616035701p:plain

操作するプレイヤーの動きの管理ができる。この場合は歩く・ジャンプ・武器をもつことができる。

また歩くスピードやジャンプする高さを設定で変えることができる。

f:id:omuriceman:20190616035928p:plain

CUSTOM

既存のカードに無いアクションなどを行いたい場合は、JavaScriptでプログラムを行える。作成したコードはカードの1つとして管理して使うことができる。

f:id:omuriceman:20190616040314p:plain

GAME LIBRARYについて

Tutorialを一通り試した後はいくつかのサンプルを試すことができる。

FPS

FPSゲームのサンプルを試すことができる。

Platformer

アクションゲームのようなオブジェクトの動きなどを参考にできる

Card Demos

いろんなオブジェクトのLOGICの事例を見れるのでGame Builder内でのゲーム開発の参考になる。

ゲーム開発の流れ

上記に紹介した機能を組み合わせると「Game Builder」では以下のような開発の流れになるかと思われる。

  1. CREATEでオブジェクトを配置
  2. TERRAINで地形を配置
  3. LOGICでアクションやプログラムを加える
  4. 3に必要なアクションが無い場合はJavaScriptでカスタムカードを作成
  5. 色/向き/大きさ/位置を変更する場合はEDIT/ROTATE/SCALE/MOVEを使用する

1~3の組み合わせでゼルダの伝説FPSのようなゲームは簡単に開発ができる。簡単なゲームではほぼコードを書く必要がなく、ただIF THENのようなプログラム的な発想を学ぶことができ、複雑なことがしたくなったらコードを書くことになるためステップアップしながら学ぶことができる。

最後に

  • 3Dゲーム開発が簡単にできるGame Builderを試した
  • プログラミングの発想を学ぶのに最適のゲームである
  • LOGICというものを使用してゲーム内でプログラムを組んでいく
  • 簡単に高クオリティなゲーム開発をできるようになるにはまだ時間がかかる