Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Replacement for Minimal Development Test #9260

Closed
Wuzzy2 opened this issue Dec 28, 2019 · 19 comments
Closed

Replacement for Minimal Development Test #9260

Wuzzy2 opened this issue Dec 28, 2019 · 19 comments
Labels
@ Devtest Game Feature request Issues that request the addition or enhancement of a feature Feature ✨ PRs that add or enhance a feature

Comments

@Wuzzy2
Copy link
Contributor

Wuzzy2 commented Dec 28, 2019

Here I represent to you a completely reworked Minimal Development Test (or “Minimal” for short). I moved it to my own repository since it's much easier than to work on the main Minetest repository. Therefore, there will also be no PR. If you accept this, you need to replace minimal with devtest.

Link:
https://git.minetest.land/Wuzzy/devtest

The number of changes is very big that I consider this to be a complete replacement for Minimal.

Fixes #5192.

Design principles

See README.md. Note: Minimalism is not a goal, testing the engine is. I still think trying to keep loading time very low is a plus, but that shouldn't excuse a lack of features to test out things. That having said, everything in this Test should still be very lightweight.
Another sidegoal that is important to me is to also make this game useful for modders to test out dependency-free mods. While the main focus still is engine testing, it shouldn't be useless for modders.

If you spot anything in this that violates my own principles, please let me know!

Major Changes

  • Name changed to “Development Test” [devtest] to emphasize that minimalism is not the main focus; testing is
  • A “Chest of Everything” that contains all items. Like creative mode but without creative mode (reason: that way, default formspec can be kept intact)
  • Tons of example nodes to test out drawtypes, param2, node properties, etc.
  • Completely reworked mod structure, based on the principle “one mod = one task”. The default mod is gone.
  • A few basic test entities
  • Some texture tweaks to make everything more visually distinct
  • A set of handy tools to manipulate nodes and entities (see mods/testtools/README.md)
  • Added settings to turn on/off certain tests (based on the principle of “minimal interference”, most things start turned off)
  • All mapgen aliases added
  • Removal of irrelevant decorative nodes, dead code and legacy code
  • Due to mod restructuring, this is INCOMPATIBLE with current Minimal
  • Add description for every mod
  • Convenience commands added

Bugs you can reproduce (excerpt)

#5893
#9209
#9221
#5861
#5802
#5324
#5317

Especially the drawtype test nodes expose a lot of weirdness in the engine.

Feedback

I use this issue to collect your feedback. I am willing to hear your requirements for this getting into main Minetest.

TODO

I think this is in a fairly stable stage now. There are many node drawtypes examples, maybe this is even exhaustive. Other things don't have full coverage, such as entity features, but this shouldn't prevent this from being accepted.

Sure, there will likely always be features that could see more test cases, so there's always room for improvement by adding more test stuff in the future. Future changes should (IMHO) take the design principles into account.

If you have suggestions for core features, please let me know and I might implement them. But at some point I plan to do a hard cut-off at which I just stop because otherwise this never gets merged.

How to merge

  • Delete minimal
  • Add devtest (see repo link above)
  • Replace all mentions of minimal in all documents, wiki, etc. with the name of the new thing: “Development Test” or devtest

Alternatives

This is not the first try to rework Minimal. Here's an old PR that failed:

#6716

This was started from scratch and ultimately failed because of the lack of features.

My PR is different as it's a fork of current Minimal, however, but completely reworked.

@Wuzzy2 Wuzzy2 added the Feature request Issues that request the addition or enhancement of a feature label Dec 28, 2019
@paramat
Copy link
Contributor

paramat commented Dec 29, 2019

ultimately failed because of the lack of features.

#6716 was closed because it was WIP and the author abandoned it, it did not lack features because it was still WIP.

@Wuzzy2
Copy link
Contributor Author

Wuzzy2 commented Dec 29, 2019

Well, the features were lacking because they have not been implemented. Duh! :D

@celeron55
Copy link
Member

The principles make sense and the end result looks to be a much more useful tool than what there is now.

@paramat
Copy link
Contributor

paramat commented Dec 29, 2019

Wuzzy2, 'failed because of the lack of features' is a negative and misleading way to portray the other PR. 'fail' and 'lacking features' implies incompetance and low quality, it was simply unfinished.

@Wuzzy2
Copy link
Contributor Author

Wuzzy2 commented Dec 30, 2019

Today I added nodes for testing digging times (dignodes) and reworked the basetools to make them more suitable for testing. See code comment in basetools to learn more.

@Wuzzy2
Copy link
Contributor Author

Wuzzy2 commented Dec 31, 2019

The label “feature request” is highly misleading, as this has large amounts of code and actual work inside. This issue is actually a PR in disguise (for reasons stated above).

@appgurueu
Copy link
Contributor

Why not keep minimal? And add this besides?
I use minimal to test mods, and my priority is having short loading times.

@Wuzzy2
Copy link
Contributor Author

Wuzzy2 commented Jan 2, 2020

Loading time of devtest is still very very short. I can see no significant difference compared to minimal. Besides, it would be a terrible idea to maintain two testing games alongside that are basically the same. That's a recipe for desaster.

Current minimal also has the downside that it interferes with mods a some unexpected ways. For example, minimal has ABMs. devtest tries to keep everything at default behavior unless you explicitly instruct it to divert. devtest is also a big cleanup of minimal.

I would love if people would just actually start testing this thing and give real feedback.

@Desour
Copy link
Member

Desour commented Jan 2, 2020

Tested.
It basically looks pretty much like minimal.

If this should replace minimal, can we just call it minimal? Otherwise there might be worlds of old minetest versions that are from a non-existing subgame. (I hope this doesn't start another useless discussion.)

The chest of everything should have a trash slot.

A small formspec prepend could be added (like a not clipped label somewhere).
Is there anything to test sounds yet?
(Anyway, new features can be added later.)

If this subgame is not missing any useful stuff from minimal, 👍.

@Wuzzy2
Copy link
Contributor Author

Wuzzy2 commented Jan 2, 2020

I dropped the “Minimal” from the title because minimalism isn't a primary goal per se. But I am not strongly attached to any particular name. It depends on what others say.

Trash slot: Yeah, why not? Note that devtest also relies on commands to some extent (check out /help).

Formspec prepend: I dislike this as it violates the principle of “minimal interference”. This interferes with default behavior for no good reason.

Sounds: There are sound test nodes to test node sounds. They are brown and have a loudspeaker icon.

Comparison to original minimal: It's a direct fork, but with a ton of changes. I have basically removed dead code and dysfunctional stuff (especially from experimental) but tried to keep the useful stuff. A lot of the default nodes are gone as most of them were not strictly needed. In experimental I mostly removed dead code and restructured old stuff.
Some features are deactivated by default (to fulfil the principle of “minimal interference”) so they have to be enabled with a command or setting first.

@paramat paramat added Feature ✨ PRs that add or enhance a feature and removed Feature request Issues that request the addition or enhancement of a feature labels Jan 4, 2020
@Wuzzy2
Copy link
Contributor Author

Wuzzy2 commented Jan 7, 2020

Trash slot added. As well as other small tweaks.

I'm pretty much happy with devtest as it stands now. I think I will no longer touch devtest for new features. Only for bugfixes (no bugs are known atm). I hereby declare devtest ready for testing.

Please let me know if you are happy with it as well. When enough core devs are OK with this, I will turn this into a PR (unless you want to do the merge yourself; see 1st post for instructions).

@paramat
Copy link
Contributor

paramat commented Jan 8, 2020

I am fine with 'devtest', it is more descriptive and less likely to be misunderstood by users.
Breaking existing 'minimal' worlds is not an issue.

@LoneWolfHT
Copy link
Contributor

Played around with this a little bit. Nice work! I like this a lot more than what we currently have. It's even possible to have fun with it too

@Wuzzy2
Copy link
Contributor Author

Wuzzy2 commented Jan 17, 2020

Please can I get an OK from core devs if this is “ready” enough for a PR?

I want to have the PR go as smoothly as possible, with no further tweaking neccessary, to avoid stress.

@paramat
Copy link
Contributor

paramat commented Jan 18, 2020

I suspect a review problem is that this will appear as new files, instead of changes to minimal files. So is possibly more work to review.

Perhaps it would be better to temporarily name this 'minimal' so that the changes appear as changes to 'minimal' files, making review easier, then once approved rename the game to 'devtest' before merge? Just a suggestion, not sure if practical. Input needed.

Or has the code changed so much that a 'diff' against minimal would not help much?

Sorry for the review delay, we are so overwhelmed at the moment.
I expect your work here is good and that this would be a big improvement.

@Wuzzy2
Copy link
Contributor Author

Wuzzy2 commented Jan 18, 2020

Although it's technically a fork, the code has changed a ton. It's best to review it in its entirety; a diff won't help much.
It's definitely not just “a few minor tweaks”.

Sorry for the review delay, we are so overwhelmed at the moment.

Did I spam you with too many PRs? :D

@paramat
Copy link
Contributor

paramat commented Jan 19, 2020

Although it's technically a fork, the code has changed a ton. It's best to review it in its entirety; a diff won't help much.

Ok =)

I really appreciate your PRs, wish i had more time for review.

@Wuzzy2
Copy link
Contributor Author

Wuzzy2 commented Mar 2, 2020

There is now a PR for this: #9450

@paramat
Copy link
Contributor

paramat commented May 24, 2020

PR merged.

@paramat paramat closed this as completed May 24, 2020
@Desour Desour added the Feature request Issues that request the addition or enhancement of a feature label Mar 4, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
@ Devtest Game Feature request Issues that request the addition or enhancement of a feature Feature ✨ PRs that add or enhance a feature
Projects
None yet
Development

No branches or pull requests

6 participants