Minetestのゲームサーバーをホスティングしていて、それを用いてゲーム配信をしている。そのサーバーは公開サーバーではないため、アドレスなどを秘匿しておきたい。しかしゲーム画面には表示されてしまう。ゲーム配信でメニュー画面を表示する際、サーバー情報が写り込んでしまうことが問題となった。そこでソースコードを書き換えて、サーバー情報を表示しないように修正する。
特に難しいことはない。該当箇所のコードを書き換えてビルドすればよい。ソースコード内の問題となる箇所を特定し、直接書き換えた。MinetestはC++で実装されているが、この程度の修正であれば恐れる必要はない。落ち着いてやればできる。
diff --git a/src/client/game.cpp b/src/client/game.cpp
index 6a4bff61a..f53426251 100644
--- a/src/client/game.cpp
+++ b/src/client/game.cpp
@@ -4285,8 +4285,10 @@ void Game::showPauseMenu()
if (!simple_singleplayer_mode) {
Address serverAddress = client->getServerAddress();
if (!address.empty()) {
+ // os << mode << strgettext("Remote server") << "\n"
+ // << strgettext("- Address: ") << address;
os << mode << strgettext("Remote server") << "\n"
- << strgettext("- Address: ") << address;
+ << strgettext("- Address: ") << "Hello, This is Minetest world!";
} else {
os << mode << strgettext("Hosting server");
}
コードを直接修正した後、以下の手順でcmakeを実行する。ここではクライアントのみビルドする。
mkdir build
cd build
cmake .. \
-DBUILD_CLIENT=TRUE \
-DBUILD_SERVER=FALSE \
-DBUILD_UNITTESTS=FALSE \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_OSX_DEPLOYMENT_TARGET=12.5 \
-DCMAKE_FIND_FRAMEWORK=LAST \
-DCMAKE_INSTALL_PREFIX=../build/macos/ \
-DRUN_IN_PLACE=FALSE \
-DENABLE_GETTEXT=TRUE \
-DRUN_IN_PLACE=0
リポジトリのルートディレクトリに戻り、ビルドする。
cd ..
make -j$(nproc)
make install
まで実行すると、build/macos配下にminetest.appが生成される。
make install
アプリケーションを起動し、サーバー情報に「Hello, This is Minetest world!」 と表示されることを確認した。