Mad Games Tycoon 2のMOD開発記

Mad Games Tycoon 2というUnity製のゲームが大好きなので、MODを制作中、その備忘録。

【Mad Games Tycoon 2】MGT2のMod動向、自作Modの公開など。

はじめに

はじめまして。Aerinと申します。

私の本職はプログラミングに一切関わらないものであり、学生時代にプログラミングには一切触れてこなかった人間ですので、知識レベルは個人の趣味程度となっています。知識及び開発方法などかなり不明瞭な内容となっている可能性があります。あくまで個人の備忘録としてお読みください。

 

その前に、基本的な製作環境について

・dnSpyという.NET Frameworkで作成したプログラムやライブラリを逆コンパイルできるツールがあるので、有り難く使用します。Unity製ゲームはほとんどのスクリプトC#(.NET Framework)コードで書かれておりますので、物凄く活用できます。なお、.NETに関わっては中間コードが読み取りやすいからなのか、様々なツールがあります。お好みのものでいいのではないかな、と感じますが。

・Assembly-CSharp.dllがUnity製ゲームのスクリプトを梱包しているdllファイルです。これを解析していく形が大前提の基本中の基本。また、先駆者様が作成したdllも問題なく参照できますので、解析して活用させていただきます。

なお、これで見れるソースコードは完璧なものではないそうです。現に、フィールドは多分Unity本体側で数値を入れた上で動かしており、スクリプト上に生の数値が存在しません。じゃあどうするかってことですが、それはUnity Explorer(BIPプラグイン)で解析したり、Mod側でゲーム開始の都度数値の読み込みをしたりする必要があるってわけです。

・また、解析したあと、既存ファイルを一切変更することなく改造することができる、BepInExというModフレームワークを使用しています。

何を使ってMod環境を整えるか悩みました。

Modフレームワークは、有名どころだとUnity Mod Managerというものもあり、こちらのほうがユーザーは多いのですが、将来性を鑑みて採用には至っておりません。BepInExの方が行える範囲が非常に広く、BepInEx用のプラグインも充実しており、テクスチャファイルのリプレイスもプラグイン一つでできるものもあって非常に便利だと感じております。

・作る前に、MGT2のSteamコミュニティを覗いたのですが、Mod作成経験のないユーザーだと、こうしたフレームワークを使用せずにdnSpyで直接Assembly-CSharp.dllを弄くり回す方が多くいて、Modの競合が出てしまうことや、アップデートへの対応鈍化、拡張性、保守性などが絶望的に悪いやり方が多いのが目に付きました。

・BepInExはKoikatsuや、ハニーセレクト2といったエロゲーを中心に、優秀なプログラマー、Modderの方々が基礎を作ってくれてできたものです。中には、メッシュもモデルもなにもかも、外部から読み込みできるものあり、学びがいがあります。(とはいえ、スクリプト以外で自分ができるのは精々テクスチャ変更程度だと思いますが……)

 

また、先駆者についても色々調査をしていました。

もしよろしければどうぞ。

moddingbrogg.hatenablog.com

 

現在は、以下のModを製作しました。

まだほとんど開発途中といっても過言ではないです。

また、Modについては一応GitHubNexus Modに公開していますが、色々使い所がわかっておらず…適当な管理になっています。

 

1.MGT2-Free-Update-Rebalancer

github.com

・記念すべき初Modです。

製作動機

・買い切りのゲームを開発後にFree Update(日本語だと無料アップデート?)という機能があるのですが、これが物凄くお粗末な機能で、最高難易度であるLegendaryだとまるで価値がない形骸的なものになっている現状です。

・開発者からはバグの数の表示を新たに追加などはするのですが…バランス調整などは特に無かったため、なんとかできないか…と思い、製作に踏み切りました。