Minetest
Minetest(マインテスト)は、自由・オープンソースソフトウエアとして開発されるサンドボックスゲーム作成するためのボクセルゲームエンジンである。Minetestゲームエンジンには、その上で実行されるゲームのMinetest Gameが付属している。開発はボランティアのチームによりおこなわれ、コミュニティから多大な協力を受けている。オリジナルはPerttu Aholaにより制作され、2010年11月、最初のバージョンであるMinetest 0.0.1が公開された。
Minetestのプログラムは、Irrlicht Engineを使用してC++で書かれており、ユーザーがプログラム言語Luaを使用して作成したゲームの実行や、そのゲームをカスタマイズするModで利用するためのAPIを提供するゲームエンジンである。「Minecraft風」と呼ばれるものはMinetestゲームエンジン上で実行される付属ゲームのMinetest Gameである。そのため開発元では混同しないように呼びかけている。
利用できるプラットフォームは、Linux、FreeBSD、Microsoft Windows、macOS、Androidに対応している。
付属ゲームのMinetest Gameの世界でプレーヤーは、さまざまなブロックにより生成された無限に見える地形の3D世界を探索し、原材料を採取して道具やアイテムを作成したり、構造物や景観を構築できる。また、ゲームのモードやModの追加によりコンピューターが制御するMob(モブ)と戦ったり、同じ世界にいる他のプレーヤーと協力して遊ぶことや対戦ができる。
Minetest Gameの見た目は2009年に発売されたMinecraftに似ている。しかし、Minecraftがゲームそのものであることに対し、Minetestはゲームエンジンでありシステムとして完全に異なるため原作者は「Minecraftクローン」という表現はしていない。
Minetestは10年以上にわたる活発な開発により人気を集め、2013年11月以降、Githubからは140万回以上のダウンロード、Android版はGoogle Playストアから50万回以上ダウンロードされている。また、オープンソースソフトウェアでありソースコードやアートワークを変更したり研究可能であることから、学校教育では抽象的な思考を養うためのツールとしての利用やインタラクティブな可視化ツールとしても利用されている。
付属ゲームのMinetest GameをはじめMinetest上で実行される多くのゲームは、特定の目的が無い、ボクセルで構成された世界のサンドボックスゲームである。ゲームは目的が無いため、プレーヤーはゲームを自由に進めることができる。
ゲーム画面は、デフォルトでは一人称視点であるが三人称視点にも変更できる。
ゲームの世界はボクセルと呼ばれる3Dブロックで構成されており、ブロックは「ノード」と呼ばれる。ノードは、土や石、鉱石、木、水、溶岩などさまざまな材質を表している。このノードは升目上に配置されゲームの世界を構成する。プレーヤーは、このノードで作られた世界を移動して、ノードを採取、再配置することにより世界を再構成する。これを繰り返してゲームを進行する。また、プレーヤーは世界を効率よく改変するために道具を作ることもできる。例を挙げれば、つるはしを作ると岩のノードから鉱石の採掘でき、シャベルを作ると土や砂を掘るスピードが上がる。バケツを作ると水を汲むことができる、というようにである。
プレーヤーの名前は「Sam ain't Minecraft」(サムはマインクラフトじゃない)の頭文字を取って「Sam」と呼ばれる。これは、Linux/Unixハッカー文化的な再帰的頭字語からの命名で一種のジョークである。
ゲームの世界は、非常に大きく、プレーヤーが探索すると指定していたシード値を使って新しいエリアが自動的に生成される。ゲームを新規に始めたとき、プレーヤーは6万2千ノードの中心に置かれ、見えない壁がある世界の果てにたどり着くには3万1千ノード移動することになる。
この世界のボクセル配列すべてを保存するには計算上、数百テラバイトのメモリが必要になるが、ゲームは世界データを「マップブロック」と呼ばれる16x16x16の小さなセクションに分割し、プレーヤーが存在するときのみ生成、ロードすることにより、この問題を回避している。
世界は砂漠、ジャングル、雪原などのバイオームに分かれている。また、地形も平原、山、森、洞窟、溶岩地帯、水域などがある。ゲーム内の時間は、昼と夜のサイクルで繰り返され、1サイクル20分となっている。
Minetestでは、ダメージ有効モードとクリエイティブモードの2つのゲームモードが用意されている。クリエイティブモードは、無限の資源を手に入れることを目的に作られている。一方、ダメージ有効モードは、環境の影響や他のプレーヤーからのダメージを受けるようになる。
Minetestは、1人で遊ぶシングルプレーヤーゲームだけでなく、クライアントサーバーシステムを採用しており、インターネットを通じて他の人と一緒にプレイするマルチプレイも選択できる。
プレーヤーは新しくゲームを始めるとき、シングルプレーヤーだけのプレイか、他のMinetestクライアントが接続するためのホストサーバーになるか選択できる。ホストサーバーになった場合、自分のサーバーをMinetestの公開サーバーリストに掲載もできる。また、プレーヤーはMinetestの公開サーバーリストを見て、インターネット上で公開されているサーバーに接続して遊ぶこともできる。
公開されている多くのMinetestサーバーは、Minetestプロジェクトに所属しないボランティアにより運営されている。そのサーバーも、ルールやオプション、修正などがおこなわれ、種類もボクセルアートを作成するための協力サーバーからプレーヤー同士が戦うサバイバルサーバー、陣営に分かれて遊ぶキャプチャー・ザ・フラッグのサーバーまで多種多様である。
Minetestは、完全なソースコードを始め、テクスチャやサウンドなどのアセットまで、すべて自由なライセンスで配布されており改変版や派生版が容易に作成できる。
C++で書かれたMinetestベースシステムは、Luaで書かれたゲームとModをサポートするためのインターフェース(API)を提供する。
ゲームは、プログラム言語Luaで記述されたゲーム世界の基本ルールと内容を定義するファイル(群)でMinetestで遊ぶゲームの中核となる。ほとんどのゲームは、建築、採掘、創造性に焦点を当てたサンドボックスゲームを特徴としている。
Modは、ゲームのさまざまな面のカスタマイズに使用されMinetestのゲームを支える部分である。Modはサーバー側にあり、インターネットサーバーに接続してプレイする場合にはインストールの必要は無い。また、テクスチャパックをダウンロードして外観の変更もできる。
開発者は、Minetestのことをゲームではなくエンジンと呼んでいる。その理由は、ゲームプレイに関する全ての実装は、Luaで記述されたゲームによるものだからである。
バージョン5.0.0以降、ユーザーはエンジンであるMinetestのメインメニューよりゲームを選び、簡単にインストールできるようになった。
Minetestには、機能豊富なサンドボックスゲームのMinetest Gameとデバッグに利用する最小限の機能のDevelopment Test、2つのゲームが同梱されている。
Minetest Gameはゴールもなくコンピューターによる敵もいない、シンプルで平和なゲームとなっている。そして200種類のノードとさまざまなツールや樹木、花、鉱石、バイオマス、洞窟などが用意されている。
Minetestフォーラムでは、1000を超える自由・オープンソースソフトウェアのModが公開され、利用可能となっている。Modは、ノードの種類やツール、モンスター、プレーヤースキンを追加でき、ゲームにさまざまな変更を加えられる。
Modやテクスチャパックは、ゲームのインストール同様、バージョン5.0.0以降で利用できるメインメニューのリストから選択して簡単にインストールできる。
公式フォーラムやコンテンツデータベースで公開されるModやゲームは、ポリシーによりプロプライエタリやクローズドソースのものは除外されている。
Minetestは、2010年11月の公開当初、プロプライエタリソフトウェアとしてリリースされた。その後、まもなくしてライセンスはGPL 2.0 or Laterに変更となった。
そして、2012年6月、主要な開発者の合意によりライセンスはLGPL 2.1 or Laterに変更されたが、GPL 2.0 or Laterの部分もいくつか残り、完全なライセンスの移行は2013年9月に完了した。
Minetestの主要部分であるエンジンのライセンスは、LGPL 2.1 or Laterではあるが、その他の部分については他の自由・オープンソースのライセンスも利用されている。
オリジナル開発者のPerttu Aholaは、Ciaran Gultnieksが2011年5月に開発に参加するまでの半年の間は、Minetestプロジェクトに関わる唯一の開発者であった。
その後、Minetestの開発に貢献する開発者は年々増加していき、2020年7月現在では9人のアクティブなコア開発者と15人のアクティブな貢献者が活動している。
コア開発者については、信頼される立場として活動しており、開発リポジトリに何をマージするのかを決める重要な役割を持っている。また、プロジェクトの参加者は決まった役割を持っておらず、それぞれの専門分野で活動をする。
Perttu Aholaの役割については、年々変化をしている。当初はエンジンの開発を担当していたが、現在は主にサーバーのホスティングと管理を担当する。そして、コア開発者やモデレーターなどの役割を割り当てたりもしている。また、他の開発者が判断を下せない場合には最終的な判断を下している。
Minetestは、同種のプロプライエタリソフトウェアと比較するとコストを少なく教室や研究室に大規模に導入できるため教育現場でも利用されている。また、最新環境には完全最適化はされていないもののグラフィックエンジンとしては低コスト、ローエンドのハードウェアに幅広く対応しており、導入しやすいことも利用の一因となっている。
利用される授業の分野としては、数学、プログラミング、地球科学の授業に利用されている。
小中学生のプログラミング教育で論理、作成、デバッグ方法を教えるために利用
2017年、フランスでは、微積分と三角法の授業に利用
ブラジル、サンタカタリーナ連邦大学では、MineScratchと呼ばれるMinetest派生版を利用してプログラミング授業を実施
2018年、パリ第5大学の実験教育と実習(EDA)の生命科学と地球科学の授業において、Minetestの仮想世界でのシミュレーションを利用
また、Minetestの公式サイトでもMinetest for Educationというページを作成し、教育利用を支援している。
Minetestは、Opensource.comの「Best open source games of 2015」の第1位に選出されている。その中で「Minecraftの最も完全なオルタナティブである」の言及に加え、LuaでMODを作成するためのユーザーフレンドリーなAPIを備えていることと、その拡張性の高さを受賞の理由として挙げている。
PC Magazineでは、「Minecraftファンにとって最高のサンドボックスゲーム」の記事内でMinetestも取り上げている。