🗂

Zenn登録にあたり、自己紹介をします。

に公開

この記事について

はじめまして、ITエンジニアのminamoです。
Zennに登録したばかりなので、まずはこの記事で投稿を試しがてら、自己紹介をします。
よろしくお願いします。

はじめに

長年遊んでいるWindowsのフリーゲーム、ヴァーレントゥーガの更新が途絶えて数年たったころ、Web版のヴァーレントゥーガのようなものを作りたいと考えるようになりました。
おりしもITエンジニアとして少し経験を積み重ねたころ。プログラミング領域でも多少の技量がついてきたと思い、数年前に技術研究、開発を始めていました。

私生活の多忙化やモチベーションなどの都合で一旦開発は途絶えたのですが、半年ほど前から再開。
どのような形態で配布・プレイ環境を構築してもらうかに悩んでいました。
なぜWebというプラットフォームを選んだのかは別の機会に触れることとします[1]が、Webゲームとして作るのに問題になってくるのが、原案となるゲームから継承したい特性である、スクリプトでMOD対応が可能という部分です。
これがWebの特性である、Webサーバー上のソースが絶対であるという部分との相性がよろしくない。
その為はじめは、caddyなどの軽量なWebサーバーをローカルホストで駆動させる前提のアプリケーションとして考えていました。[2]

その方向性で試行錯誤している間に辿り着いた方法が、意外と汎用性の高いものであることに気が付きました。

今回の技術的発見

詳細はこれからの投稿に委ねますが、OPFSで駆動するPWAを作る、という結論に至りました。
この手法だと、一般のホスティングサーバーにフォルダごとアップロードして、PWAとしてインストールしてローカルでも任意のゲームバージョンで任意のMODを入れたり[3]といった、カスタマイズしたプレイ環境を構築させることが可能となりそうです。
いまだ試行錯誤の途中ですが、いわばWeb式マインクラフトランチャーとでもいうべき挙動が実現する可能性が見えてきました。

この手法を使えばローカルに限定せずWeb上で公開可能であり、また調べても類似した手法が見つからなかったため、これは公開する価値があると考えています。

誰にとって有用な情報を発信するか

  • Webフロントエンド開発者の方
  • Webゲーム開発者の方
  • Webサイトを運営している方

サーバーサイドへの要求がほとんどない形態の配布/配信方法を紹介することとなります。
そのため、上記のような方々にとってかかわりのある可能性がある情報となるかと想定しております。

最後に

Zennの利用は初めてとなりますが、今後は技術と設計を丁寧に共有していきます。
よろしくお願いします。

脚注
  1. 語ると長くなりそうだからです。 ↩︎

  2. Electronで作ることも考えましたが、ファイルサイズが大きくなることと、内部のChrominium更新手段のことを考えてやめました。 ↩︎

  3. MODというものは本来、プログラムの構造に依存してフックをかけることで、ゲームを改造するものです。そのため、ゲーム本体のプログラムがアップデートすることで構造が変わり、利用不能となるMODが出てくるのはMODの宿命です。MODを遊び続けたい場合、ゲームバージョンの指定機能は必須の機能だと考えています。 ↩︎

Discussion