ゲーム プログラミング

今さらNode.js+Three.jsでゲームを作る理由 – なぜUnity, Unreal Engineでないのか

投稿日:2021年12月14日 更新日:

目的を「コードを書いてゲームを作る」に絞る

ゲーム作成経験のない場合、まずどんな方法でもよいので1本ゲームを短時間で作り上げるのが良いと思われます。
2021年現在、ゲーム作成方法の主流は「Unity」や「Unreal Engine4」などの強力なゲームエンジンを利用する事になっています。しかし、これらの方法はゲーム作成初心者の場合は必ずしも最適とは限りません。Unity、UE4は豊富なアセットを利用でき、ゲーム作成の一連の流れがパッケージ化されていますが、それらを最大限に生かせるのはゲーム作成経験があってこそではないでしょうか?
現代の人に「最初は自分でコードを書いたほうが良い」と言っても聞く耳を持ってもらえないかもしれません。「ゲームの中身を深く理解できる」という利点を説明しても、あまりに便利なゲームエンジンが用意されていては必要性が感じられません。

なので開き直ってこう言います。

「私はコードを書いてゲームを作りたいからJavascriptを選ぶ」

究極、作りたいから作るで良いのです。

メリットはとにかく気楽に作成できます。
基本、準備するのはエディター(Visual Studio Code)だけで良いのですから。

そして自由があります。作りたいものは何でもコードを書けばよいのです。
UnityやUE4でもコードは書きますが、大半はGUI操作で要素をつなげる操作に思えます。これがどうにも肌に合わず、不自由さを感じてしまうのです。

捨てる物

そうは言っても、Unity、UE4が登場したのは確固とした理由があります。クロスプラットフォームで作成ができて、成果物をあらゆるストアにアップロードができます。つまり、ゲームを作成した後の収益化なども考慮すれば、これらのゲームエンジンを利用したほうが良いと言えます。

しかし、上述のように目的を「コードを書いてゲームを作る」だけに絞りました。なので同時に「捨てる物」も明記しなくてはなりません。

・収益化

これを捨てましょう。
ますます、他の同意を得られなくなりそうですね。

しかし、世の中を見渡せばすべてのゲーム作成者が「収益化」を目的にしているとは限りません。

・ゲーム作成を学びたい人
・ゲーム作成が趣味の人

これらの人々は作ったゲームで稼ぐ必要はありません。

余談、私自身の目的

矛盾を解くために私自身の事を述べておきます。私はゲーム作成を学びたいわけでも趣味でもありません。
私がJavascriptでゲームを作成する理由は

・コードを書くことしかできないから
・収益化を考えて物を作ると上手くいかない

ここ数年、「収益化」を考えて作ったアプリが全て上手くいきませんでした。同じことを続けても結果が変わらないと感じたので結論を出しました。

「私は収益化に向いていない」

非常に悲しい結論ですが事実なのでしょうがないです。

しかし、コードを書く事だけは結構できるのです。なんとかこの強みを生かす方法はないかと考えてJavascriptでゲームを作成することに行きつきました。収益化を考えないというのは非常に危険ですが、余計な事は何も考えずにひたすらコードを書いて「何か」が起きることを少しだけ期待しています。
(これは無謀なようで過去に実体験があるのです。)

皆さんに言えるJavascriptでゲームを作るメリット

さて、ほぼ世捨て人状態の私の目的を話したところで皆さんに何のプラスにもなりませんが、一般の方々にもJavascriptでゲームを作成することにメリットはあります。

「結果をすぐに見れる」
さっとコードを書いてブラウザで実行してすぐに描画を確認できます。コンパイルが必要な言語では待ち時間があります。ゲーム作成を学びたいだけならコード修正、描画確認をスピーディに行えたほうが良いです。

「一通りやれば言語が変わっても通用する」
これは私の経験から断言できます。私は最初(2010年あたり)、c++からプログラミングを始めました。そして描画の部分はOpenGLで書いていました。描画の部分は言語が異なっても基本、やる事は同じです。レンダリング、カメラ、ライトを設定して描画するものを追加してフレームを進める。最近で言えばiOSのMetalをやりましたが、一切書籍等は読むことなく、サンプルプログラムを見ただけでOpenGL時代の知識だけで自分のやりたいようにコードを書くことができました。また、受注業務でPHPなども少しやりましたが、基本c++の知識だけで何とかなりました。英語が分かっていればアルファベットを使用する言語なら何となく分かるといったところでしょうか?

-ゲーム, プログラミング

執筆者:

関連記事

MacOSアプリ公開:備忘録、ライブラリLink

Web上にMacOSアプリ公開に関する情報は少なくて苦労しています。iPhoneアプリと比較した場合、MacOSアプリはAdmobで稼ぐという手段がなく有料版リリースをするしかないので開発者からは敬遠 …

no image

ショーモナイノ/ ソースコード(クライアントサイド)

サーバサイドのソースコードを公開したところ、結構ビュー数が伸びているようです。なのでクライアントサイドも公開しておきます。何かの役に立てればと思います。 内容はとんでもないジャンクコードとなっています …

blocked by CORS policy: No ‘Access-Control-Allow-Origin’ header is present on the requested resource.

エラー内容と状況 JavascriptからPHPを呼び出したら下記エラーがAccess to XMLHttpRequest at ‘https://ooo/xxx.php’ f …

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

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

Microsoft AzureでNode.jsゲームをデプロイ – web.configを忘れるな

Node.js+Three.jsでフォートナイトのような建築FPSゲームを自作しております。Paasサービスは手軽で太っ腹なHerokuを利用していますがサーバーがアメリカにあるため通信ラグに悩まされ …

スポンサーリンク