ゲーム

フォートナイトで全然勝てないので自作してみた | ブラウザゲーム Node.js

投稿日:2020年4月21日 更新日:

フォートナイト面白いですね。私もやっています。しかし全く勝てません。かっこいいコスチュームを纏ったプレイヤー達に瞬殺されまくっています。もう少し初心者も楽しめる仕様もあったら面白いのでは?、という思いからフォートナイトみたいなゲームを作ってみました。

その名は「ショーモナイノ」

フォートナイトは機能満載の素晴らしいゲームであり、同じ物を私が作る事はできません。極々簡易的な物を作る事を目標にしました。ゲームは「何これ?しょーもない」と言われる事を前提にとりあえず、

「ショーモナイノ / Shomonino」

にしてみました。
こちらで無料で遊べます。

ショーモナイノ/Shomonino(ブラウザゲーム)

10人で戦うオンラインバトロワゲームです。フォートナイトのように建築しながら撃ち合います。
人間プレイヤーが10人いない場合はボットさんが補填されます。ボットさん達のエイムは正確無比なのでビクロイするのはかなり難しいです。
プレイの様子はこちらの動画を参照ください。

ちなみに本格的なバトルロイヤル/ブラウザゲームは多数あります。

https://surviv.io/
https://krunker.io/?game=TOK:94zy0

次元が違いすぎる。。。
到底たどり着けそうにない領域です。。。
まあ私は「しょーもなさ」を楽しみながら更新していきたいと思います。

存在意義

このどうしようもないゲームの存在意義を前向きに考えてみます。
以下のような人には有意義ではないでしょうか?

・使用しているPCのスペック的な問題でフォートナイトのプレイが困難
・バトロワゲームの超初心者で基本操作に慣れたい

特に操作に慣れるには結構練習になると思います。私は実際、ゲームを作り出してからフォートナイトが少し上達しました。具体的に本ゲーム内での以下のような操作がフォートナイト本番で生きていると感じています。

・ボットに不意に打たれた時、その方向にマウスで視線を変更し、「q」で建築。
・弾切れ時にリロードまたは武器を切り替えて打つ

そんな事、フォートナイトで実際にやればいいじゃないか、と思われるかもしれません。しかしフォートナイトでは一瞬で倒されてしまうので練習すらできない場合があります。上記操作を本ゲーム内でボット相手に気楽に練習してみましょう。

[追記(2021/09/13)]
っというのが公開当初の存在意義だったのですが、現在は

・自分でゲームを作成してみたいという人たちへのサンプルプログラム

として意味がある気がしています。

ゲームの作り方

参考までに概要を紹介。
Webにある優良サンプルからスタート。

使うのはJavaScriptとNode.jsだけ!30分で3Dオンライン対戦ゲームを作って公開してみた

これ、この時点でフォートナイトですね。私はそう思いました。すごいサンプルです。
これを頑張って自分の環境で動くようにしてHerokuで公開すれば完了です。あとはどれだけ本物に近づけるか。。。

自分で追加実装した要素

「弾丸と壁/人の接触判定」
式を自力で導出する必要はありませんが、話の流れは理解しておくと良いかもしれません。行列が出てきますがコード実装の際はただの四則演算になりますのでご安心を。これを実装できると弾丸ヒット判定(弾丸速度有無、ヘッドショット判定も)、建築に乗るなどを自由自在にできます。

ソースコード

サーバーサイド(server.js)


クライアントサイド(game-3d.js)

更新履歴

v1.2.0
弾丸と壁(プレイヤー)の衝突判定修正

v1.1.9
建築に階段を追加

v1.1.8
岩山、安全地帯を追加

v1.1.7
建築を「キー入力で半透明の仮表示後にクリックで置く」ように変更

v1.1.6
ボットにオートエイムを追加

v1.1.5
降下スタートを追加

1.1.4
ポーション(シールドアイテム)を追加

v1.1.3
包帯(回復アイテム)を追加

v1.1.2
床建築、建築のテクスチャーを追加

v1.1.1
上下方向の視点変更、射撃を追加

v1.1.0
しゃがみ打ち、ジャンプ、建築乗りを追加

v1.0.9
キャラクター、銃の描画を追加

v1.0.8
優勝(ビクロイ)画面を追加

v1.0.7
武器切替、リロード、スコープ、周囲景色などを追加

v1.0.6
しゃがむ動作を追加

v1.0.5
プレイヤー一覧&ライフゲージの表示を追加

v1.0.4
プレイヤー方向の表示、ライフゲージの表示を追加

v1.0.3
壁を射撃で破壊可能に。「q」で壁を建築。

v1.0.2
自分以外の射撃音も聞こえるようにしました。

v1.0.1
射撃音を追加、操作キーをフォートナイトっぽく変更、視点操作にポインタロックを導入。

その後、バージョン2を作成中。編集機能の実装に挑戦!

バージョン1はサンプルプログラムから改良していったためゲームとしてある程度の形にすることはできました。しかし接触判定なので元の方針との違いが出てきてしまいコード的に統一感のないものとなってしまいました。
これらの問題を解決し、もう少しフォートナイト感のあるものができないかと現在奮闘中です。
メインは「編集」機能実装への挑戦です。本家さながらにバリバリ建築編集しながら移動できたら最高ですね。
また、下記動画のようにボヤきながら進捗状況をYouTube動画で実況しています。機能をどういう方針で実装したかなども語っています。検証しながらいつの間にか遊んでしまっていることがほとんどで無駄に長い動画となっています。よかったらご覧ください。(チャンネル登録してくれたら嬉しいです。現在、登録者1名です。。。)
なるべく早い段階でソースコードを公開しようと思っています。

v2.0
建築編集機能の追加
ターボ建築機能の追加
人と建築の接触判定の見直し(行列方式を使用)
Three.js座標系への変換箇所の見直し

-ゲーム

執筆者:

関連記事

ライフゲームをブラウザで遊ぶ / Conway’s Game of Life

ブラウザで遊べるライフゲーム(Conway’s Game of Life)を作成してみました。緑の自セルを配置して赤い敵セルを消してみましょう。基本的なパターンの動きを確認するも良し。パタ …

Macでフォートナイトが起動できない場合の対処 – MacBook Pro

目次 チャプター2シーズン4Macでチャプター2シーズン4をプレイする方法チャプター2シーズン3Epic Game Launcherが起動できない場合の対処法諦めてゲーミングWindowsPCを購入 …

no image

ショーモナイノ/ ソースコード(サーバーサイド)

ショーモナイノのコードを公開していないかとのお問い合わせを頂きました。GitHubでの公開を検討しましたが、書き散らかした粗末なコードをGitHubに置くべきではないと判断しました。代わりに自分のブロ …

Fortnite won’t launch. How to fix it? [Mac OSX/MacBook pro]

[Last verification: 2020/07/19 v13.20 ][Solution]Just update the Mac OSX to 10.15 (Catalina).With 10 …

no image

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

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

スポンサーリンク