minetest/games/devtest
Elias Åström f65fe80e81
Add minetest.bulk_swap_node (#15043)
Co-authored-by: sfan5 <sfan5@live.de>
2024-09-24 22:25:34 +02:00
..
menu Optimize PNG files (#13509) 2023-10-09 17:13:44 +02:00
mods Add minetest.bulk_swap_node (#15043) 2024-09-24 22:25:34 +02:00
.luacheckrc Add API for restoring PseudoRandom and PcgRandom state (#14123) 2024-01-16 23:20:52 +01:00
game.conf Allow game to specify first and last mod in mod loading order (#14177) 2024-06-01 16:36:20 +02:00
LICENSE.txt Rename “Minimal development test” to “Development Test” (#9928) 2020-05-26 00:17:52 +02:00
README.md DevTest: Remove experimental mod 2022-10-23 21:58:56 +02:00
screenshot.png Rename “Minimal development test” to “Development Test” (#9928) 2020-05-26 00:17:52 +02:00
settingtypes.txt Devtest: Remove testnodes_show_fallback_image 2021-04-05 13:37:58 +02:00

Development Test (devtest)

This is a basic testing environment that contains a bunch of things to test the engine, but it could also be used as a minimal testbed for testing out mods.

Features

  • Basic nodes for mapgen
  • Basic, minimal map generator
  • Lots of example nodes for testing drawtypes, param2, light level, and many other node properties
  • Example entities
  • Other example items
  • Formspec test (via /test_formspec command)
  • Automated unit tests (disabled by default)
  • Tools for manipulating nodes and entities, like the "Param2 Tool"

Getting started

Basically, just create a world and start. A few important things to note:

  • Items are gotten from the “Chest of Everything” (chest_of_everything:chest)
  • When you lost your initial items, type in /stuff command to get them back
  • By default, Creative Mode activates infinite node placement. This behavior can be changed with the devtest_infplace setting
  • Use the /infplace command to toggle infinite node placement in-game
  • Use the Param2 Tool to change the param2 of nodes; it's useful to experiment with the various drawtype test nodes
  • Check out the game settings and server commands for additional tests and features

Confused by a certain node or item? Check out for inline code comments. The usages of most tools are explained in their tooltips.

Example tests

  • You can use this to test what happens if a player is simultaneously in 2 nodes with damage_per_second but with a different value.
  • Or use the Falling Node Tool on various test nodes to see how they behave when falling.
  • You could also use this as a testbed for dependency-free mods, e.g. to test out how your formspecs behave without theming.

Random notes

  • Textures of drawtype test nodes have a red dot at the top left corner. This is to see whether the textures are oriented properly

Design philosophy

This should loosely follow the following principles:

  • Engine testing: The main focus of this is to aid testing of engine features, such as mapgen or node drawtypes
  • Mod testing: The secondary focus is to help modders as well, either as a minimal testbed for mods or even as a code example
  • Minimal interference: Under default settings, it shall not interfere with APIs except on explicit user wish. Non-trivial tests and features need to be enabled by a setting first
  • Convenience: Have various tools to make usage easier and more convenient
  • Reproducing engine bugs: When an engine bug was found, consider creating a test case
  • Clarity: Textures and names need to be designed to keep different things clearly visually apart at a glance
  • Low loading time: It must load blazing-fast so stuff can be tested quickly