minetest - Minetest は、モッディングとゲーム作成が簡単なオープン ソースのボクセル ゲーム エンジンです。

(Minetest is an open source voxel game engine with easy modding and game creation)

Created at: 2011-08-07 21:48:36
Language: C++
License: NOASSERTION

ミネテスト

ビルド ステータス 翻訳状況 ライセンス

Minetest は、モッディングとゲーム作成が簡単な無料のオープンソース ボクセル ゲーム エンジンです。

Copyright (C) 2010-2022 Perttu Ahola celeron55@gmail.com および貢献者 (ソース ファイルのコメントとバージョン管理ログを参照)

ソースコードをダウンロードした場合

このファイルが含まれている Minetest Engine ソース コードをダウンロードした場合は、Minetest ゲーム プロジェクトもダウンロードする必要があります。詳細については、その README.txt を参照してください。

目次

  1. その他のドキュメント
  2. デフォルトのコントロール
  3. パス
  4. 構成ファイル
  5. コマンドライン オプション
  6. コンパイル中
  7. ドッカー
  8. バージョン スキーム

その他のドキュメント

デフォルトのコントロール

すべてのコントロールは、設定を使用して再バインド可能です。一部は、設定タブのキー構成ダイアログで変更できます。

ボタン アクション
マウスを動かす 見回す
W、A、S、D 動く
スペース ジャンプ/上に移動
シフト こっそり/下に移動
Q ドロップアイテムスタック
Shift + Q 単一のアイテムをドロップ
マウスの左ボタン アイテムを掘る/パンチする/取る
マウスの右ボタン 場所・用途
Shift + マウスの右ボタン ビルド (使用せずに)
在庫メニュー
マウスホイール アイテムを選択
0-9 アイテムを選択
Z ズーム(ズーム権限が必要)
T チャット
/ 指示
ESC メニューの一時停止/中止/終了 (シングルプレイヤー ゲームのみ一時停止)
R 全範囲表示の有効化/無効化
+ 視界範囲を広げる
- 視界範囲を狭める
K フライ モードの有効化/無効化 (フライ特権が必要)
P ピッチ移動モードの有効化/無効化
J 高速モードの有効化/無効化 (高速特権が必要)
H noclip モードの有効化/無効化 (noclip 権限が必要)
Aux1 (高速モードですばやく移動します。ゲームは特別な機能を追加する場合があります)
カメラモードを切り替える
ミニマップ モードを切り替える
Shift + V ミニマップの向きを変更する
F1 HUD の非表示/表示
F2 チャットの非表示/表示
F3 フォグを無効化/有効化
F4 カメラの更新を無効化/有効化 (マップブロックは、無効化すると更新されなくなり、リリース ビルドでは無効化されます)
F5 デバッグ情報画面を切り替える
F6 プロファイラー情報画面を切り替える
F10 コンソールの表示/非表示
F12 スクリーンショットを撮ります

パス

場所:

  • bin
    - コンパイルされたバイナリ
  • share
    - 配布された読み取り専用データ
  • user
    - ユーザーが作成した変更可能なデータ

各プラットフォームの各場所は次のとおりです。

  • Windows .zip / RUN_IN_PLACE ソース:
    • bin
      =
      bin
    • share
      =
      .
    • user
      =
      .
  • インストール済みの Windows:
    • bin
      =
      C:\Program Files\Minetest\bin (Depends on the install location)
    • share
      =
      C:\Program Files\Minetest (Depends on the install location)
    • user
      =
      %APPDATA%\Minetest
  • Linux がインストールされています:
    • bin
      =
      /usr/bin
    • share
      =
      /usr/share/minetest
    • user
      =
      ~/.minetest
  • マックOS:
    • bin
      =
      Contents/MacOS
    • share
      =
      Contents/Resources
    • user
      =
      Contents/User OR ~/Library/Application Support/minetest

ワールドは、次の場所にある別のフォルダーとして見つけることができます。

user/worlds/

構成ファイル

  • デフォルトの場所:
    user/minetest.conf
  • このファイルは、Minetest を初めて閉じることによって作成されます。
  • コマンドラインで特定のファイルを指定できます。
    --config <path-to-file>
  • run-in-place ビルドでは、構成ファイルが検索されます
    location_of_exe/../minetest.conf
    location_of_exe/../../minetest.conf

コマンドライン オプション

  • 使用する
    --help

コンパイル中

GNU/Linux でのコンパイル

依存関係

依存 バージョン 解説
GCC 5.1+ またはClang 3.5+
CMake 3.5+
イルリヒト山 - Irrlicht のカスタム バージョンについては、https://github.com/minetest/irrlichtを参照してください。
フリータイプ 2.0+
SQLite3 3+
Zstd 1.0+
LuaJIT 2.0+ バンドルされている Lua 5.1 が存在しない場合は使用されます
GMP 5.0.0+ 存在しない場合は、バンドルされた mini-GMP が使用されます
JsonCPP 1.0.0+ バンドルされた JsonCPP が存在しない場合は使用されます

Debian/Ubuntu ユーザーの場合:

sudo apt install g++ make libc6-dev cmake libpng-dev libjpeg-dev libxi-dev libgl1-mesa-dev libsqlite3-dev libogg-dev libvorbis-dev libopenal-dev libcurl4-gnutls-dev libfreetype6-dev zlib1g-dev libgmp-dev libjsoncpp-dev libzstd-dev libluajit-5.1-dev

Fedora ユーザーの場合:

sudo dnf install make automake gcc gcc-c++ kernel-devel cmake libcurl-devel openal-soft-devel libvorbis-devel libXi-devel libogg-devel freetype-devel mesa-libGL-devel zlib-devel jsoncpp-devel gmp-devel sqlite-devel luajit-devel leveldb-devel ncurses-devel spatialindex-devel libzstd-devel

Arch ユーザーの場合:

sudo pacman -S base-devel libcurl-gnutls cmake libxi libpng sqlite libogg libvorbis openal freetype2 jsoncpp gmp luajit leveldb ncurses zstd

アルパインユーザー向け:

sudo apk add build-base cmake libpng-dev jpeg-dev libxi-dev mesa-dev sqlite-dev libogg-dev libvorbis-dev openal-soft-dev curl-dev freetype-dev zlib-dev gmp-dev jsoncpp-dev luajit-dev zstd-dev

ダウンロード

Git をインストールして、コピーを簡単に最新の状態に保つことができます。Git が必要ない場合は、Git なしでソースを取得する方法について以下をお読みください。これは、Debian/Ubuntu に Git をインストールする例です。

sudo apt install git

Fedora ユーザーの場合:

sudo dnf install git

Git を使用してソースをダウンロードします (これは最新のソース リポジトリへの URL であり、常に機能するとは限りません)。

git clone --depth 1 https://github.com/minetest/minetest.git
cd minetest

Git を使用して minetest_game をダウンロードします (それ以外の場合は「開発テスト」ゲームのみが利用可能です)。

git clone --depth 1 https://github.com/minetest/minetest_game.git games/minetest_game

IrrlichtMt を にダウンロードし

lib/irrlichtmt
ます。これは、IrrlichtMt の依存関係を満たすために使用されます。

git clone --depth 1 https://github.com/minetest/irrlicht.git lib/irrlichtmt

Git を使用せずにソースをダウンロードします。

wget https://github.com/minetest/minetest/archive/master.tar.gz
tar xf master.tar.gz
cd minetest-master

Git を使用せずに minetest_game をダウンロードします。

cd games/
wget https://github.com/minetest/minetest_game/archive/master.tar.gz
tar xf master.tar.gz
mv minetest_game-master minetest_game
cd ..

Git を使用せずに IrrlichtMt をダウンロードします。

cd lib/
wget https://github.com/minetest/irrlicht/archive/master.tar.gz
tar xf master.tar.gz
mv irrlicht-master irrlichtmt
cd ..

建てる

ソース ディレクトリから直接実行するバージョンをビルドします。

cmake . -DRUN_IN_PLACE=TRUE
make -j$(nproc)

それを実行します:

./bin/minetest
  • cmake . -LH
    すべての CMake オプションとその現在の状態を確認するために使用します。

  • システム全体にインストールしたい (または配布パッケージを作成している) 場合は、

    -DRUN_IN_PLACE=FALSE
    .

  • を指定することでベアサーバーを構築することができます

    -DBUILD_SERVER=TRUE

  • を指定することで、クライアント ビルドを無効にすることができます

    -DBUILD_CLIENT=FALSE

  • でリリースビルドとデバッグビルドを選択できます

    -DCMAKE_BUILD_TYPE=<Debug or Release>

    • デバッグ ビルドは遅くなりますが、デバッガーでより有用な出力が得られます。
  • ベア サーバーを構築する場合、IrrlichtMt をコンパイルする必要はありません。ヘッダーだけで十分です。

    • その場合は を使用して
      -DIRRLICHT_INCLUDE_DIR=/some/where/irrlichtmt/include
      ください。
  • Minetest は、次の順序で最初に見つかった IrrlichtMt パッケージを使用します。

    1. 指定され
      IRRLICHTMT_BUILD_DIR
      た CMake 変数
    2. ${PROJECT_SOURCE_DIR}/lib/irrlichtmt
      (存在する場合)
    3. システム固有のライブラリ パスへの IrrlichtMt のインストール
    4. 変数が無効になっているサーバー ビルド
      BUILD_CLIENT
      の場合、 のヘッダー
      IRRLICHT_INCLUDE_DIR
      が使用されます。
    • 注: IrrlichtMt ビルド ディレクトリ (システム インストールを含む) を変更するには、CMake キャッシュを再生成する必要があります (
      rm CMakeCache.txt
      )

CMake オプション

一般的なオプションとそのデフォルト値:

BUILD_CLIENT=TRUE          - Build Minetest client
BUILD_SERVER=FALSE         - Build Minetest server
BUILD_UNITTESTS=TRUE       - Build unittest sources
BUILD_BENCHMARKS=FALSE     - Build benchmark sources
CMAKE_BUILD_TYPE=Release   - Type of build (Release vs. Debug)
    Release                - Release build
    Debug                  - Debug build
    SemiDebug              - Partially optimized debug build
    RelWithDebInfo         - Release build with debug information
    MinSizeRel             - Release build with -Os passed to compiler to make executable as small as possible
ENABLE_CURL=ON             - Build with cURL; Enables use of online mod repo, public serverlist and remote media fetching via http
ENABLE_CURSES=ON           - Build with (n)curses; Enables a server side terminal (command line option: --terminal)
ENABLE_GETTEXT=ON          - Build with Gettext; Allows using translations
ENABLE_GLES=OFF            - Enable extra support code for OpenGL ES (requires support by IrrlichtMt)
ENABLE_LEVELDB=ON          - Build with LevelDB; Enables use of LevelDB map backend
ENABLE_POSTGRESQL=ON       - Build with libpq; Enables use of PostgreSQL map backend (PostgreSQL 9.5 or greater recommended)
ENABLE_REDIS=ON            - Build with libhiredis; Enables use of Redis map backend
ENABLE_SPATIAL=ON          - Build with LibSpatial; Speeds up AreaStores
ENABLE_SOUND=ON            - Build with OpenAL, libogg & libvorbis; in-game sounds
ENABLE_LUAJIT=ON           - Build with LuaJIT (much faster than non-JIT Lua)
ENABLE_PROMETHEUS=OFF      - Build with Prometheus metrics exporter (listens on tcp/30000 by default)
ENABLE_SYSTEM_GMP=ON       - Use GMP from system (much faster than bundled mini-gmp)
ENABLE_SYSTEM_JSONCPP=ON   - Use JsonCPP from system
RUN_IN_PLACE=FALSE         - Create a portable install (worlds, settings etc. in current directory)
USE_GPROF=FALSE            - Enable profiling using GProf
VERSION_EXTRA=             - Text to append to version (e.g. VERSION_EXTRA=foobar -> Minetest 0.4.9-foobar)
ENABLE_TOUCH=FALSE         - Enable Touchscreen support (requires support by IrrlichtMt)

ライブラリ固有のオプション:

CURL_DLL                        - Only if building with cURL on Windows; path to libcurl.dll
CURL_INCLUDE_DIR                - Only if building with cURL; directory where curl.h is located
CURL_LIBRARY                    - Only if building with cURL; path to libcurl.a/libcurl.so/libcurl.lib
EGL_INCLUDE_DIR                 - Only if building with GLES; directory that contains egl.h
EGL_LIBRARY                     - Only if building with GLES; path to libEGL.a/libEGL.so
EXTRA_DLL                       - Only on Windows; optional paths to additional DLLs that should be packaged
FREETYPE_INCLUDE_DIR_freetype2  - Directory that contains files such as ftimage.h
FREETYPE_INCLUDE_DIR_ft2build   - Directory that contains ft2build.h
FREETYPE_LIBRARY                - Path to libfreetype.a/libfreetype.so/freetype.lib
FREETYPE_DLL                    - Only on Windows; path to libfreetype-6.dll
GETTEXT_DLL                     - Only when building with gettext on Windows; paths to libintl + libiconv DLLs
GETTEXT_INCLUDE_DIR             - Only when building with gettext; directory that contains iconv.h
GETTEXT_LIBRARY                 - Only when building with gettext on Windows; path to libintl.dll.a
GETTEXT_MSGFMT                  - Only when building with gettext; path to msgfmt/msgfmt.exe
IRRLICHT_DLL                    - Only on Windows; path to IrrlichtMt.dll
IRRLICHT_INCLUDE_DIR            - Directory that contains IrrCompileConfig.h (usable for server build only)
LEVELDB_INCLUDE_DIR             - Only when building with LevelDB; directory that contains db.h
LEVELDB_LIBRARY                 - Only when building with LevelDB; path to libleveldb.a/libleveldb.so/libleveldb.dll.a
LEVELDB_DLL                     - Only when building with LevelDB on Windows; path to libleveldb.dll
PostgreSQL_INCLUDE_DIR          - Only when building with PostgreSQL; directory that contains libpq-fe.h
PostgreSQL_LIBRARY              - Only when building with PostgreSQL; path to libpq.a/libpq.so/libpq.lib
REDIS_INCLUDE_DIR               - Only when building with Redis; directory that contains hiredis.h
REDIS_LIBRARY                   - Only when building with Redis; path to libhiredis.a/libhiredis.so
SPATIAL_INCLUDE_DIR             - Only when building with LibSpatial; directory that contains spatialindex/SpatialIndex.h
SPATIAL_LIBRARY                 - Only when building with LibSpatial; path to libspatialindex_c.so/spatialindex-32.lib
LUA_INCLUDE_DIR                 - Only if you want to use LuaJIT; directory where luajit.h is located
LUA_LIBRARY                     - Only if you want to use LuaJIT; path to libluajit.a/libluajit.so
OGG_DLL                         - Only if building with sound on Windows; path to libogg.dll
OGG_INCLUDE_DIR                 - Only if building with sound; directory that contains an ogg directory which contains ogg.h
OGG_LIBRARY                     - Only if building with sound; path to libogg.a/libogg.so/libogg.dll.a
OPENAL_DLL                      - Only if building with sound on Windows; path to OpenAL32.dll
OPENAL_INCLUDE_DIR              - Only if building with sound; directory where al.h is located
OPENAL_LIBRARY                  - Only if building with sound; path to libopenal.a/libopenal.so/OpenAL32.lib
SQLITE3_INCLUDE_DIR             - Directory that contains sqlite3.h
SQLITE3_LIBRARY                 - Path to libsqlite3.a/libsqlite3.so/sqlite3.lib
VORBISFILE_LIBRARY              - Only if building with sound; path to libvorbisfile.a/libvorbisfile.so/libvorbisfile.dll.a
VORBIS_DLL                      - Only if building with sound on Windows; paths to vorbis DLLs
VORBIS_INCLUDE_DIR              - Only if building with sound; directory that contains a directory vorbis with vorbisenc.h inside
VORBIS_LIBRARY                  - Only if building with sound; path to libvorbis.a/libvorbis.so/libvorbis.dll.a
ZLIB_DLL                        - Only on Windows; path to zlib1.dll
ZLIB_INCLUDE_DIR                - Directory that contains zlib.h
ZLIB_LIBRARY                    - Path to libz.a/libz.so/zlib.lib
ZSTD_DLL                        - Only on Windows; path to libzstd.dll
ZSTD_INCLUDE_DIR                - Directory that contains zstd.h
ZSTD_LIBRARY                    - Path to libzstd.a/libzstd.so/ztd.lib

MSVC を使用した Windows でのコンパイル

要件

依存関係のコンパイルとインストール

vcpkg をパッケージ マネージャーとして使用することを強くお勧めします。

vcpkg を正常にビルドしたら、必要なライブラリを簡単にインストールできます。

vcpkg install zlib zstd curl[winssl] openal-soft libvorbis libogg libjpeg-turbo sqlite3 freetype luajit gmp jsoncpp opengl-registry --triplet x64-windows
  • IrrlichtMt を忘れないでください。
    lib/irrlichtmt
    最も簡単な方法は、Linux セクションで説明されているように、クローンを作成することです。
  • curl
    オプションですが、serverlist を読み取るために必要です。Content Store
    curl[winssl]
    を使用するには必須です。
  • openal-soft
    libvorbis
    および
    libogg
    はオプションですが、サウンドを使用するには必須です。
  • luajit
    はオプションで、統合された Lua インタープリターをより高速なジャストインタイム インタープリターに置き換えます。
  • gmp
    それ
    jsoncpp
    以外の場合は、バンドルされたバージョンがコンパイルされます

他にもオプションのライブラリがありますが、正しくビルドおよびリンクできるかどうかはテストされていません。

または など

--triplet
、ターゲットのトリプレットを指定するために使用します。
x64-windows
x86-windows

Minetest をコンパイルする

a) vcpkg ツールチェーンと CMake GUI の使用

  1. CMake GUI を起動する
  2. Browse Source...を選択し、DIR/minetest を選択します
  3. Browse Build...を選択し、DIR/minetest-build を選択します
  4. 構成を選択します
  5. 適切な Visual Studio バージョンとターゲット プラットフォームを選択します。インストールされている依存関係のバージョンと一致する必要があります
  6. [クロス コンパイル用のツールチェーン ファイルを指定] を選択します。
  7. [次へ] をクリックします
  8. vcpkg ツールチェーン ファイルを選択します。
    D:/vcpkg/scripts/buildsystems/vcpkg.cmake
  9. [完了] をクリックします
  10. cmake がキャッシュ ファイルを生成するまで待ちます
  11. エラーがある場合は、それらを解決して [構成]をクリックします。
  12. [生成] をクリックします
  13. [プロジェクトを開く] をクリックします
  14. Visual Studio 内で Minetest をコンパイルします。

b) vcpkg ツールチェーンとコマンドラインの使用

PowerShell で次のスクリプトを実行します。

cmake . -G"Visual Studio 15 2017 Win64" -DCMAKE_TOOLCHAIN_FILE=D:/vcpkg/scripts/buildsystems/vcpkg.cmake -DCMAKE_BUILD_TYPE=Release -DENABLE_GETTEXT=OFF -DENABLE_CURSES=OFF
cmake --build . --config Release

適切なコンパイラが選択されていること、および vcpkg ツールチェーンへのパスが正しいことを確認してください。

WiX Toolset を使用した Windows インストーラー

要件:

Visual Studio 2017 インストーラーでOptional Features -> WiX Toolsetを選択します。

上記のようにバイナリをビルドしますが、必ず選択を解除してください

RUN_IN_PLACE

生成されたプロジェクト ファイルを Visual Studio で開きます。[パッケージ] を右クリックし、[生成]を選択します。インストーラーの生成には数分かかる場合があります。

MacOS でのコンパイル

要件

自作で依存関係をインストールします。

brew install cmake freetype gettext gmp hiredis jpeg jsoncpp leveldb libogg libpng libvorbis luajit zstd

ダウンロード

Git を使用してソースをダウンロードします (これは最新のソース リポジトリへの URL であり、常に機能するとは限りません)。

git clone --depth 1 https://github.com/minetest/minetest.git
cd minetest

Git を使用して minetest_game をダウンロードします (それ以外の場合は「開発テスト」ゲームのみが利用可能です)。

git clone --depth 1 https://github.com/minetest/minetest_game.git games/minetest_game

Irrlicht の Minetest のフォークをダウンロードします。

git clone --depth 1 https://github.com/minetest/irrlicht.git lib/irrlichtmt

建てる

mkdir build
cd build

cmake .. \
    -DCMAKE_OSX_DEPLOYMENT_TARGET=10.14 \
    -DCMAKE_FIND_FRAMEWORK=LAST \
    -DCMAKE_INSTALL_PREFIX=../build/macos/ \
    -DRUN_IN_PLACE=FALSE -DENABLE_GETTEXT=TRUE

make -j$(sysctl -n hw.logicalcpu)
make install

走る

open ./build/macos/minetest.app

ドッカー

GitLab ミラー レジストリを使用して、Minetest サーバーの Docker イメージを提供します。

イメージはコミットごとに作成され、次のタグ スキームを使用して利用できます。

  • registry.gitlab.com/minetest/minetest/server:latest
    (最新ビルド)
  • registry.gitlab.com/minetest/minetest/server:<branch/tag>
    (現在のブランチまたは現在のタグ)
  • registry.gitlab.com/minetest/minetest/server:<commit-id>
    (現在のコミット ID)

Docker サーバーでテストしたい場合は、簡単に実行できます。

sudo docker run registry.gitlab.com/minetest/minetest/server:<docker tag>

本番環境で使用する場合は、Docker ホストにバインドされたボリュームを使用してデータを保持し、構成を変更する必要があります。

sudo docker create -v /home/minetest/data/:/var/lib/minetest/ -v /home/minetest/conf/:/etc/minetest/ registry.gitlab.com/minetest/minetest/server:master

データは

/home/minetest/data
ホストに書き込まれ、構成は から読み取られ
/home/minetest/conf/minetest.conf
ます。

注:上記のコマンドを理解できない場合は、使用する前に Docker の公式ドキュメントをお読みください。

Minetest サーバーを Kubernetes クラスター内でホストすることもできます。の実装例を参照してください

misc/kubernetes.yml

バージョンスキーム

major.minor.patch
5.0.0-dev から使用しています。それ以前は、 を使用してい
0.major.minor
ました。

  • メジャーは、リリースに破壊的変更が含まれている場合に増分され、他のすべての数値は 0 に設定されます。
  • マイナーは、リリースに新しい非互換機能が含まれている場合に増分され、パッチが 0 に設定されます。
  • パッチは、リリースにバグ修正と、必要と考えられる非常にマイナー/些細な機能のみが含まれている場合に増分されます。

5.0.0-dev および 0.4.17-dev 以降、dev 表記は次のリリースを指します。つまり、5.0.0-dev は 5.0.0 につながる開発バージョンです。それ以前は、 を使用してい

previous_version-dev
ました。