プログラミング

Node.jsゲーム公開はHerokuが良い

投稿日:

ゲーム開発初心者が簡単なNode.jsオンラインゲームを作成して公開したい場合はHerokuで公開するのが良いです。Node.jsゲームの公開手段は様々ありますが、Herokuは無料プランで十分にテスト公開ができそうです。
以下、私がオンラインゲーム の作成方法が全く分からない状態から、とりあえず自作オンラインゲーム が公開できた所までの記録です。各サービスのインストール方法や使用方法はWeb上の多数の記事があるのでここでは一切述べておりません。ご了承ください。

開発環境:MacBook Pro macOS 10.15.3

オンラインゲーム作成の経緯

発端はテレビ番組「有吉ぃぃeeeee!」でフォートナイトを知った事でした。私のゲーム歴はスト2で止まっていました。機種で言うとスーパーファミコンまでです。番組内でフォートナイトのゲーム画面を見て驚がくしました。

「3D空間を自由に駆け巡り、オンライン100人で撃ち合い?」

PlayStation4とやらはとんでもない機種だなと思いました。しかし調べてみるとフォートナイトはPC版もあるそうな。しかも無料?すぐにMacBookProにインストールしてみました。20FPSほどしかでず、また密集すると一桁FPSになってまともな戦闘はできませんでしたが(そもそも私には操作が難しすぎましたが)雰囲気は十分に味わえました。お互いの挙動がリアルタイムで反映されるオンラインゲームにとても興奮しました。同時に「オンラインゲーム 作成」という私にとって未知の分野にとても興味が湧いてきました。

調べてみるとフォートナイト的なゲームは似たような物が多数ある事がわかりました。また、完全にフォートナイトを真似した簡易的なゲームもいくつかありました。2D版や3Dでグラフィックの質が低いけど建築など細部まで再現されている物などなど。フォートナイトもどきは既にやっている人がいるようなので、何かオリジナルのオンラインゲームを作成したみたいと思いました。

PaizaCloudで基本を学ぶ

2020年現在、ゲーム作成方法で検索するとUnityが第一候補として上がってきます。私もまずUnityで開発をしてみようといくつかのチュートリアルを試してみました。しかしすぐに挫折。確かにUnityはクロスプラットフォーム的にゲームを作成できて便利です。しかし、やれる事が多い反面、設定箇所が多く、最初のゲーム作成にはなかなか敷居が高く感じました。そもそもオンラインゲームがどのようにして動作するかも理解していない私とっては無謀でした。

さらに調べていくと「Java Script」という言語がありブラウザで簡単にゲームが作れるとのこと。これはいい。Xcodeのような開発ソフトが不要ですぐにブラウザで結果が見えるのは嬉しいです。

とはいえ、オンラインゲーム 作成にはサーバーサイドで動作するNode.jsとやらが必要であり、初心者がそれらを揃えるには労力を要するのでワンパッケージになっているサービスを利用するのが良いそうな。そこで「PaizaCloud」を試して見ました。Node.jsを使用しているチュートリアル記事を見つけられたのが幸運でした。

一通り例題を試してNode.js + socket.io の基礎を学びました。後で自作のゲームを開発中にこの「socket.io」の凄さを知りました。たった数行でオンライン的な処理が実装できました。

そしていざ自作ゲームの開発を始めようとするとPaizaCloud上では色々と不便な事がでてきました。ブラウザ上での動作がとにかく重い。ここでふと思いつきます。

「Node.jsやsocket.ioなどを自分のPCにインストールできればPaizaCloudは不要では?」

調べてみるとターミナルでnpmコマンド打つだけで必要な物をインストールできました。

ローカル環境で開発

エディタ的なソフトとして「Visual Studio Code」をインストール。ゲームライブラリ的なものとして「Enchant.js」を使用。あとはJava Scriptを書いてChromeでデバッグの繰り返し。
ゲームの内容は「Conway’s Game of Life」というシミュレーションをオンライン対戦風にアレンジした物を作成して見ました。
ゲームはこんな感じです。
ライフゲームバトル

FireBaseで公開を試みるも断念

公開までには少し苦労しました。収益化の目処が立っていないので無料で公開できる物を探しました。
まずはFireBaseを試しました。天下のGoogleによるサービスなので間違い無いだろうと考えました。しかし、Firebaseは多種多様な事が実行できるツールです。Node.jsゲームを試験的に公開したいという目的に対しては操作が少々複雑でした。調べながら何とかソースをアップする所まで行けましたが、アップロード中にエラーが発生。何かのバージョンが違うという内容だったようでしたが私には理解できず断念しました。

次に試したのが「Heroku」。コード管理に「Git」を利用しますが、操作は簡単でした。

Herokuはすんなり公開完了

公開方法はWwb上に多数の記事があるのでそちらは参照すれば良いです。

疑問だった起動方法もProcfile作成で指定できました。ルートディレクトリにProcfileという名前のファイルを作成して「node server.js」といったコマンドをファイル内に記述します。

また、無料プランで大丈夫か?という点については、現在のところ「550時間/月」まで稼働できるようなので私のような試験的な公開には十分です。またターミナル操作で利用可能な残り時間も確認できます。現状、誰もライフゲームバトルで遊んでくれていないので1%も使用されていないです。。。

以上、オンラインゲーム 開発初心者の私がゲーム作成開始から公開まで行った記録でした。

-プログラミング

執筆者:

関連記事

弾丸と壁/人の接触判定を少し真面目に実装してみる|ゲーム作成

フォートナイトみたいなオンラインバトロワゲームを作っています。優秀なサンプルコードから作成を開始したので早い段階で一応形にはなりました。しかし、サンプルをいじりすぎて接触判定に矛盾が生じてきてしまいま …

Android studio|FFmpegでやりたい放題するための準備

動画を利用したアプリを作成するにあたりFFmpegを使用できると大変便利です。Web上に多数の情報がありますが、数年前の記事は役に立たなかったり、実用的な情報が少なかったりします。本記事ではAndro …

100万DLアプリを生み出せ

アプリ公開で収益を得るようになってから数年、いまだ大当たりはありません。1本でも大当たりアプリを生み出した=アプリで成功と言って良いでしょう。では、そもそも「大当たり」アプリとはどんなものでしょうか? …

iPhoneアプリ公開でAppStoreにて言語が英語になる場合の対処 | Xcode

日本語にしか対応していないアプリを作成してAppStoreConnectでも言語を日本語しか選択していないのに、公開したらAppStoreでの言語表記が「英語」に。日本語にしたい場合の対処法です。[対 …

スポンサーリンク