minetest
Minetest is an open source voxel game-creation platform with easy modding and game creation
Top Related Projects
Minetest Game - A lightweight and well-maintained base for modding [https://github.com/minetest/minetest/]
Create Minecraft bots with a powerful, stable, and high level JavaScript API.
A lightweight, fast and extensible game server for Minecraft
Quick Overview
Minetest is an open-source, free, and portable game engine that allows for the creation of voxel-based sandbox games, similar to Minecraft. It is designed to be highly customizable and modular, enabling developers to create their own game worlds and features.
Pros
- Open-source and Free: Minetest is an open-source project, allowing for community contributions and customization.
- Cross-platform Compatibility: Minetest is available on a wide range of platforms, including Windows, macOS, Linux, and mobile devices.
- Highly Customizable: The game engine is designed to be highly modular, enabling developers to create their own game worlds, features, and mechanics.
- Active Community: Minetest has an active community of developers and players who contribute to the project, create mods, and share their creations.
Cons
- Steep Learning Curve: Developing for Minetest can have a steep learning curve, especially for those new to game development or the Lua programming language.
- Limited Graphics: While Minetest is capable of producing visually appealing games, the graphics may not be as advanced as some commercial games.
- Performance Issues: Depending on the complexity of the game world and the number of mods installed, Minetest can experience performance issues on less powerful hardware.
- Lack of Mainstream Popularity: Compared to games like Minecraft, Minetest has a smaller user base and may not have the same level of mainstream popularity.
Code Examples
N/A (Minetest is not a code library)
Getting Started
N/A (Minetest is not a code library)
Competitor Comparisons
Minetest Game - A lightweight and well-maintained base for modding [https://github.com/minetest/minetest/]
Pros of minetest_game
- More focused on gameplay and content creation
- Easier for modders to add new features and items
- Provides a complete game experience out of the box
Cons of minetest_game
- Less flexible for creating entirely different game types
- Dependent on the Minetest engine for updates and improvements
- May have a steeper learning curve for new players
Code Comparison
Minetest (engine):
function core.register_craftitem(name, def)
-- Engine-level item registration
end
minetest_game:
minetest.register_craftitem("default:stick", {
description = "Stick",
inventory_image = "default_stick.png",
groups = {stick = 1, flammable = 2},
})
The Minetest engine provides low-level functions for registering items, while minetest_game uses these functions to create specific game content. minetest_game builds upon the engine's capabilities to create a complete game experience, whereas the engine itself focuses on providing the underlying framework and tools for game development.
Create Minecraft bots with a powerful, stable, and high level JavaScript API.
Pros of mineflayer
- JavaScript-based, allowing for easier integration with web technologies
- Focused on bot creation and automation for Minecraft
- Extensive API for interacting with the Minecraft world programmatically
Cons of mineflayer
- Limited to client-side interactions, not a full game engine
- Dependent on official Minecraft server implementations
- Narrower scope compared to Minetest's full game engine capabilities
Code Comparison
Minetest (Lua):
minetest.register_node("mymod:custom_block", {
description = "Custom Block",
tiles = {"mymod_custom_block.png"},
groups = {cracky = 3},
})
mineflayer (JavaScript):
const bot = mineflayer.createBot({
host: 'localhost',
username: 'player'
})
bot.on('spawn', () => {
bot.chat('Hello, world!')
})
This comparison highlights the different focus areas of the two projects. Minetest provides a full game engine with modding capabilities, while mineflayer is specialized for creating Minecraft bots and automation scripts. The code examples demonstrate Minetest's node registration system versus mineflayer's bot creation and event handling approach.
A lightweight, fast and extensible game server for Minecraft
Pros of Cuberite
- Written in C++, potentially offering better performance
- Designed specifically for server-side use, which may lead to more efficient resource usage
- Supports plugins written in Lua, allowing for easier customization
Cons of Cuberite
- Smaller community and fewer available mods compared to Minetest
- Less frequent updates and potentially slower development cycle
- Limited compatibility with Minecraft clients, focusing mainly on older versions
Code Comparison
Minetest (C++):
void Server::handleCommand(NetworkPacket* pkt)
{
// Command handling logic
}
Cuberite (C++):
void cServer::ExecuteConsoleCommand(const AString & a_Cmd, cCommandOutputCallback & a_Output)
{
// Console command execution logic
}
Both projects use C++ for their core functionality, but Cuberite focuses more on server-side operations, while Minetest provides a complete game engine. Cuberite's code structure appears more oriented towards server administration, while Minetest's codebase covers a broader range of game-related functions.
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
Minetest
Minetest is a free open-source voxel game engine with easy modding and game creation.
Copyright (C) 2010-2022 Perttu Ahola celeron55@gmail.com and contributors (see source file comments and the version control log)
Table of Contents
- Further Documentation
- Default Controls
- Paths
- Configuration File
- Command-line Options
- Compiling
- Docker
- Version Scheme
Further documentation
- Website: https://www.minetest.net/
- Wiki: https://wiki.minetest.net/
- Forum: https://forum.minetest.net/
- GitHub: https://github.com/minetest/minetest/
- Developer documentation
- doc/ directory of source distribution
Default controls
All controls are re-bindable using settings. Some can be changed in the key config dialog in the settings tab.
Button | Action |
---|---|
Move mouse | Look around |
W, A, S, D | Move |
Space | Jump/move up |
Shift | Sneak/move down |
Q | Drop itemstack |
Shift + Q | Drop single item |
Left mouse button | Dig/punch/use |
Right mouse button | Place/use |
Shift + right mouse button | Build (without using) |
I | Inventory menu |
Mouse wheel | Select item |
0-9 | Select item |
Z | Zoom (needs zoom privilege) |
T | Chat |
/ | Command |
Esc | Pause menu/abort/exit (pauses only singleplayer game) |
+ | Increase view range |
- | Decrease view range |
K | Enable/disable fly mode (needs fly privilege) |
J | Enable/disable fast mode (needs fast privilege) |
H | Enable/disable noclip mode (needs noclip privilege) |
E | Aux1 (Move fast in fast mode. Games may add special features) |
C | Cycle through camera modes |
V | Cycle through minimap modes |
Shift + V | Change minimap orientation |
F1 | Hide/show HUD |
F2 | Hide/show chat |
F3 | Disable/enable fog |
F4 | Disable/enable camera update (Mapblocks are not updated anymore when disabled, disabled in release builds) |
F5 | Cycle through debug information screens |
F6 | Cycle through profiler info screens |
F10 | Show/hide console |
F12 | Take screenshot |
Paths
Locations:
bin
- Compiled binariesshare
- Distributed read-only datauser
- User-created modifiable data
Where each location is on each platform:
- Windows .zip / RUN_IN_PLACE source:
bin
=bin
share
=.
user
=.
- Windows installed:
bin
=C:\Program Files\Minetest\bin (Depends on the install location)
share
=C:\Program Files\Minetest (Depends on the install location)
user
=%APPDATA%\Minetest
or%MINETEST_USER_PATH%
- Linux installed:
bin
=/usr/bin
share
=/usr/share/minetest
user
=~/.minetest
or$MINETEST_USER_PATH
- macOS:
bin
=Contents/MacOS
share
=Contents/Resources
user
=Contents/User
or~/Library/Application Support/minetest
or$MINETEST_USER_PATH
Worlds can be found as separate folders in: user/worlds/
Configuration file
- Default location:
user/minetest.conf
- This file is created by closing Minetest for the first time.
- A specific file can be specified on the command line:
--config <path-to-file>
- A run-in-place build will look for the configuration file in
location_of_exe/../minetest.conf
and alsolocation_of_exe/../../minetest.conf
Command-line options
- Use
--help
Compiling
Docker
Version scheme
We use major.minor.patch
since 5.0.0-dev. Prior to that we used 0.major.minor
.
- Major is incremented when the release contains breaking changes, all other numbers are set to 0.
- Minor is incremented when the release contains new non-breaking features, patch is set to 0.
- Patch is incremented when the release only contains bugfixes and very minor/trivial features considered necessary.
Since 5.0.0-dev and 0.4.17-dev, the dev notation refers to the next release,
i.e.: 5.0.0-dev is the development version leading to 5.0.0.
Prior to that we used previous_version-dev
.
Top Related Projects
Minetest Game - A lightweight and well-maintained base for modding [https://github.com/minetest/minetest/]
Create Minecraft bots with a powerful, stable, and high level JavaScript API.
A lightweight, fast and extensible game server for Minecraft
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot