[Mod]Tutor[tutor] WIP

Post Reply
sofar
Developer
Posts: 2146
Joined: Fri Jan 16, 2015 07:31
GitHub: sofar
IRC: sofar
In-game: sofar

[Mod]Tutor[tutor] WIP

by sofar » Post

I'm ecstatic to announce a Minetest Tutor Mod.

This mod provides a guide for inexperienced players that try out minetest for the first time. The guide is simple, and doesn't give any spoilers, but provides meaningful hints that are relevant for what the player has already accomplished.

This tutor shows the player what to do next, like punching a tree, craft sticks and planks, how to start farming, and does it when you're ready for each step - no sooner or later.

The tutor repeats messages and remembers where you are, so if you come back later, it will pick up where you left.

Please watch the demo video to get an idea what it is:

https://www.youtube.com/watch?v=yiLhbXTdONw

This mod is tuned and written for new, and inexperienced players. It is not meant for everyone. If you think this mod is not needed, then please don't reply on this thread and waste our time, and go spend your time elsewhere. This mod is not for you, so don't get upset about that.

Dependencies: default, farming
License: LGPL-2.1+ CC-BY-3.0
Download: https://github.com/minetest-mods/tutor/ ... master.zip
github: https://github.com/minetest-mods/tutor

This mod is Work in Progress. A lot of help is needed to make this mod a success. The biggest thing missing right now is that we need more goals programmed in the mod. Each goal is relatively easy to implement, and looks like this:

Code: Select all

_item("craft_wood",
        "Craft wooden planks",
        "Planks are crafted from trees,\njust put a tree trunk in one\nof the slots in the crafting grid.",
        "Good job! Planks are used to make many\ndifferent items, and can be used\nas decoration and placed where\nyou want. It is a nice block to\nbuild your first house or shelter.",
        "craft",
        "group:wood",
        {"craft_stick"})
The format is:

Code: Select all

local function _item(id, text, description, complete, func, target, newgoals)
where "func" is either "dig" or "craft" (others may be added later).

I'd love it if people could help me write additional goals to help players progress through minetest crafting. We need goals for simple crafts like stone tools and more, but also more complex goals such as beds, mining ore and smelting, chests and furnaces, cooking food, crafting doors and trapdoors, glass, etc..

Please come help me write the goals needed to make this mod work!
Last edited by sofar on Mon Feb 27, 2017 07:53, edited 2 times in total.

User avatar
jp
Banned
Posts: 947
Joined: Wed Dec 18, 2013 09:03
GitHub: kilbith
Location: France

Re: [Mod]Tutor[tutor] WIP

by jp » Post

This is certainly a better approach than the Tutorial subgame. Good job.

User avatar
Ferk
Member
Posts: 337
Joined: Tue Aug 18, 2015 17:18
GitHub: Ferk

Re: [Mod]Tutor[tutor] WIP

by Ferk » Post

jp wrote:This is certainly a better approach than the Tutorial subgame. Good job.
It's a different approach, with its own advantages, but I wouldn't say it's necessarily better.
As a player who already knew most of the mechanics (playing Minecraft), I would have probably found this kind of tutorial boring to follow maybe to the point of finding the pop-ups annoying.

Whereas in the Tutorial subgame, the fact that is a completely new map, with new blocks and some features not in MTG showed me that Minetest was more than just a Minecraft clone, and I actually enjoyed it. I might have disregarded Minetest if I hadn't been taught in the Tutorial that Minetest is way more than just vanilla Minetest Game.

With this kind of Tutor it'll be hard to showcase things like shift+jumping, different viscosity in liquids, special blocks like non-jump blocks, bouncy blocks, etc. Which are precisely some of the things that make it different from Minecraft and that are, imho, worth explaining for this very reason. The tutorial subgame also mentions about there existing other subgames than just MTG, and the fact that it's a different game on and by itself gets the point across. I think it's a better overview of the engine. This one also doesn't solve the localization issues that you wanted solved in the Tutorial subgame, nor does it explain the controls.

That said, this Tutor (if the aforementioned localization and controls are added) can be useful for those newbies who never heard of Minecraft or similar. But where I think a mod like this could really shine is for adding some quest-based paths in other games/servers that dare to add actual interesting long term goals (because I don't think vanilla Minetest Game has much potential for interesting goals).

I think both tutorials are good in different areas. This is a tutorial for "Minetest Game", limited to the few things vanilla Minetest Game allows you to do... or maybe as an API for adding goals/achievements. Whereas an approach like the one taken by the Tutorial game can immediately showcase anything that can be done in Minetest, whether it's a vanilla Minetest Game feature or not, and can design an entire playground around it for you to experiment with.
{ ☠ Dungeontest ☠ , ᗧ••myarcade•• }

User avatar
jp
Banned
Posts: 947
Joined: Wed Dec 18, 2013 09:03
GitHub: kilbith
Location: France

Re: [Mod]Tutor[tutor] WIP

by jp » Post

This is overall a better approach both from a conceptual and technical standpoint.

1. You get directly engaged into the game with an open way of learning which doesn't hinder the game experience.

This approach is a smooth launching ramp. It favorizes player's practices and initiatives. Wuzzy's Tutorial is all about "spoon-feeding philosophy" and imposes a strict / determined scheme from whose you might easily get confused or bored. Modern games nowadays work with that kind of approach and separate tutorials tend to disappear (especially in FPS games).

2. It has a flexible API for adding goals and explanations. Wuzzy's Tutorial goals are preset in the map itself.

3. Texts couldn't suffer from bad surprises when they get translated to longer texts and thus get clipped in formspecs, which work strangely at times.

4. It's lighter, more neutral and easier to bundle into an official release. Wuzzy's Tutorial feels a bit overkill and unpolished to get along with the engine and Minetest Game.

Sure, sofar's Tutor is not complete but has a greater potential, IMO.

N.B.: the shift+jump thing is historically a bug that turned out to be a "feature".

User avatar
Ferk
Member
Posts: 337
Joined: Tue Aug 18, 2015 17:18
GitHub: Ferk

Re: [Mod]Tutor[tutor] WIP

by Ferk » Post

Like I said, it has some advantages and also some limitations.

Point 1 is entirely subjective. They are different experiences, that's no doubt, but I personally find the goal-based "spoon-feeding philosophy" more immersion-breaking and annoying when it's provided by means of popups that get in your view and that interrupt your gameplay. In a Tutorial playground you have freedom to explore and play with what was offered, it's simply an alternative way to explore, for those who want to know what the game is about without the chore of going through archievements. Imho, I'd rather do the exploration and discovery completelly on my own without helpers, once I know the basics of how to play and what makes this game different from others I might have experience with.

Point 2, like I already mention, is an advantage (thought it kind of goes beyond the purpose of having a specific tutorial). Likewise there are also disadvantages, both in what things can you teach and how fun can their exploration be when you add more toys in the mix. It's simply a different approach.

Point 3: texts could get clipped all the same in this as in Wuzzy's during translation, which uses exactly the same kind of textareas that I suggested you used for the new MTG books formspec. So if there are problems in Wuzzy's formspecs then it's likely there will also be problems in the MTG book. Could you elaborate on what clipping problems you found?

EDIT: I just checked... the text in this Tutor has hardcoded newlines, which might break in some resolutions / zoom levels, and the popup size is fixed which would break if the text gets very long, since there's no scrolling possible. Are you sure you want to give this as an advantage?

The Tutorial game feels like an overkill to you, but it's not that big of a download for a newcomer for what it offers (how much is it? like 2MB?), it includes things not existing in MTG. Also the fact that it's a separate game means less maintenance, as it's separate and wouldn't require extra time for the MTG team, it'll keep working fine even if the APIs in MTG changed. Different technical advantages. But like I've said in the past, I'd rather not see any game bundled and instead have a more straightforward way to install new subgames.
{ ☠ Dungeontest ☠ , ᗧ••myarcade•• }

User avatar
jp
Banned
Posts: 947
Joined: Wed Dec 18, 2013 09:03
GitHub: kilbith
Location: France

Re: [Mod]Tutor[tutor] WIP

by jp » Post

Ferk wrote:texts could get clipped all the same in this as in Wuzzy's during translation
sofar's Tutor doesn't use formspecs, but the HUD API with a fake formspec's box-like as background. It has more space for displaying the text and is not subject to the formspec's aleatory behaviour on positioning.

I experienced some text clipping on Wuzzy's Tutorial when it got (poorly) translated to longer french strings. I don't remember where exactly though but it was because of the size limit of the formspecs.
But like I've said in the past, I'd rather not see any game bundled and instead have a more straightforward way to install new subgames.
Agree with that.
Last edited by jp on Sun Apr 10, 2016 11:57, edited 1 time in total.

User avatar
Ferk
Member
Posts: 337
Joined: Tue Aug 18, 2015 17:18
GitHub: Ferk

Re: [Mod]Tutor[tutor] WIP

by Ferk » Post

jp wrote:sofar's Tutor doesn't use formspecs, but the HUD API with a fake formspec's box-like as background. It has more space for displaying the text and is not subject to the formspec's aleatory behaviour on positioning.
Wouldn't that bring other possible problems that have been already fixed with current well known formspec widgets?
I see that he has hardcoded newlines.. I don't think that's gonna play very well with, for example, high zoom levels as used in android devices.
I experienced some text clipping on Wuzzy's Tutorial when it got (poorly) translated to longer french strings.
Perhaps the clipping text was in the title? That could actually also happen for MTG books since I think the title is just a label.
The poor translation can be fixed, and it's completelly unrelated to this comparison, as it could also happen in Tutor.
But I can understand that it spoiled your perception of the Tutorial game.
{ ☠ Dungeontest ☠ , ᗧ••myarcade•• }

User avatar
jp
Banned
Posts: 947
Joined: Wed Dec 18, 2013 09:03
GitHub: kilbith
Location: France

Re: [Mod]Tutor[tutor] WIP

by jp » Post

Ferk wrote:That could actually also happen for MTG books since I think the title is just a label.
Wrong. It's a table, which is good enough to display overly long titles.

User avatar
Ferk
Member
Posts: 337
Joined: Tue Aug 18, 2015 17:18
GitHub: Ferk

Re: [Mod]Tutor[tutor] WIP

by Ferk » Post

jp wrote:Wrong. It's a table, which is good enough to display overly long titles.
No, it crops them exactly like labels do: http://imgur.com/nmPxLM7
I also noticed an important problem with the paging, I made a ticket for it in github.
But this is going off-topic, discuss there.
{ ☠ Dungeontest ☠ , ᗧ••myarcade•• }

User avatar
Wuzzy
Member
Posts: 4803
Joined: Mon Sep 24, 2012 15:01
GitHub: Wuzzy2
IRC: Wuzzy
In-game: Wuzzy
Contact:

Re: [Mod]Tutor[tutor] WIP

by Wuzzy » Post

Complaints about my Tutorial should go in my tutorial thread. :-)

Be sure that I will test this Tutor thing for sure. I have just made a VERY quick first glance on this.

My first impression (yes, I know this is an early alpha, so don't feel sad ;-)):
“You have completed the goal ‘start the game’.”
Haha, nowadays everything seems to be an “achievement”. ;-)

I don't think mentioning advanced stuff like chat commands “/tutor” right at the beginning is a good idea to start a game. Also, “type /tutor” is not exactly correct. IMO there should be a better (less “technical”) way to toggle the tutor stuff.

The text panels disappear without warning. There should be some way to make them appear again, otherwise the whole Tutor idea is useless. Think of people who go AFK. ;-)
Controls are not even mentioned. :-(

The sound effects made me laugh and the “punch a tree” text is funny. Funny but not helpful, it should say that you have to keep your mouse pressed or something.

My first glance at this ended as I have mined my first tree and Minetest crashed. :-(
I am too lazy for a full bug report right now.

I don't think the texts written like this are that useful. They are, like, “you know what to do”. Not really helpful for the clueless. :-)

General first opinion on the idea: I think this is a good idea as such as long its for Minetest Game only (by the way: You forgot to mention default and farming? dependencies in thread). But I do not think it can really replace a full subgame-agnostic tutorial. This is a different approach.

So, I won't write more about all this for now, I really have other things to do right now. Bye.

sofar
Developer
Posts: 2146
Joined: Fri Jan 16, 2015 07:31
GitHub: sofar
IRC: sofar
In-game: sofar

Re: [Mod]Tutor[tutor] WIP

by sofar » Post

Thanks for the interesting discussion people! I'll try and capture some notes and reply to some of the concerns in the thread above:

There are certainly some downsides to the HUD - it can't be interacted with since there is no mouse control possible, but in general it's less intrusive than formspecs which interrupt game play.

I'm purposely staying away from telling people to left-click this, push "w" etc. The goal of this tutor is to explore the craft tree so that players can see the potential of the game, but also to leave enough to discover for themselves. Note that I'm also shying away from telling people what the exact recipes for the crafts are.

And yes, the humor is badly needed. Minetest can look really boring from a first glance. Maybe it's a bit too much, but I think it's not misplaced.

Wuzzy - any incomplete goal with be repeated. If the player goes AFK then the tutor will just cycle through the goals - there's an idle period in between cycles so you don't go crazy with the same messages over and over again, but they will get repeated to the player.

Wuzzy - I can't reproduce your crash, please post the console output next time ;)

And obviously this tutor is meant for minetest_game alone. With the structure and code in place, others could make a mesecons tutor out of it, or a technic tutor, or a .... you get the idea!

User avatar
lightonflux
Member
Posts: 384
Joined: Mon Nov 11, 2013 07:22
In-game: lof
Location: Germany

Re: [Mod]Tutor[tutor] WIP

by lightonflux » Post

I think this is a good idea as such as long its for Minetest Game only
I think it would be helpful as a framework for public minetest server. Not for explaining the basics of MT, but for explaining server specific stuff.

E.g. if you have easy to use triggers the admins can configure pop up messages explaining mods or places on a server. Think of player standing in front of the shops system on a server for the first time. Or when someone enters an area that has different rules (pvp, new cities, farms).

If there was a framework that logs actions per users and has easy triggers like "standing next to node-type-X for the first time", "entering area x,y,z by a,b,c", "on punch player" etc. that would help immensely explaining how a server works to new people. And it would remove the "read all the rules before doing anything" discussions and "i haven't seen sign X"-excuses.

User avatar
Ferk
Member
Posts: 337
Joined: Tue Aug 18, 2015 17:18
GitHub: Ferk

Re: [Mod]Tutor[tutor] WIP

by Ferk » Post

If it's used on a server, it would be better if the admin removes the recurring request to punch a tree or make a farm, i wouldnt want to have to go through it every time. Specially given that usually you spawn in protected areas where you cant punch anything or you have restricted permissions.. or maybe you are there for other purpose than farming, so it would probably get annoying to receive these messages. You can disable the tutor but then you dont read the server rules/messages.

Also since it's designed around goals you would have to set goals in every place. Getting to a shop would ask you to buy, entering an area would require you do something in that area. I guess an api could be added to just show the popup without recurring notifications until you complete the goal, but then it would be better to have a way to read back the text in case you missed it since it disappears automatically.
{ ☠ Dungeontest ☠ , ᗧ••myarcade•• }

User avatar
Wuzzy
Member
Posts: 4803
Joined: Mon Sep 24, 2012 15:01
GitHub: Wuzzy2
IRC: Wuzzy
In-game: Wuzzy
Contact:

Re: [Mod]Tutor[tutor] WIP

by Wuzzy » Post

When I dig a tree the first time, this happens:
2016-04-10 17:56:58: ACTION[ServerThread]: singleplayer digs default:tree at (-79,4,-47)
2016-04-10 17:56:58: ERROR[main]: ServerError: Lua: Runtime error from mod 'tutor' in callback node_on_dig(): invalid key to 'next'
2016-04-10 17:56:58: ERROR[main]: stack traceback:
2016-04-10 17:56:58: ERROR[main]: [C]: in function '(for generator)'
2016-04-10 17:56:58: ERROR[main]: /home/wuzzy/.minetest/mods/tutor/init.lua:344: in function 'check_player_progress'
2016-04-10 17:56:58: ERROR[main]: /home/wuzzy/.minetest/mods/tutor/init.lua:379: in function 'callback'
2016-04-10 17:56:58: ERROR[main]: /usr/share/minetest/builtin/game/item.lua:494: in function </usr/share/minetest/builtin/game/item.lua:423>
2016-04-10 17:56:58: ERROR[main]: (tail call): ?
If it's used on a server, it would be better if the admin removes the recurring request to punch a tree or make a farm, i wouldnt want to have to go through it every time
Well, there is currently /tutor for disabling the tutor which is mentioned right at start. But as I said, I think introducing chat commands right on the first panel is a bit overkill. Maybe add a nag screen for first-time visitors (“Do you want the tutor? y/n”).
I'm purposely staying away from telling people to left-click this, push "w" etc.
I don't understand why exactly but whatever. Doesn't hurt to mention default keys IMO. It's for convenience. Not mentioning this means additional lookups etc. But if you decide to stick to it: Then at least tell them where to look. Or at least give them the very very basic controls. To get started.
Note that not all controls can be edited or even just viewed in-game, like camera, minimap, etc. so intentionally not mentioning any keys at all wouldn't work.
Note that I'm also shying away from telling people what the exact recipes for the crafts are.
Bad idea IMO. How are they supposed to find out? Try out all possible combinations? IMO the crafting systeim of Minetest is an usability hellhole, so it must be explained carefully. Sad but true, I fear there is no way around that under the current system. You should at least mention a few basic recipes so they can get started. Of course not all of them, that would be overkill, but the most important one should be mentioned and explained, otherwise the player can simply not go on. I would hate to see a tutor mod which says “Now you need a pickaxe, but we won't tell you the recipe, try out all possible combinations, muhahaha!!”. ;-)

Final note: If you fix the tree crash I might give you more feedback.

sofar
Developer
Posts: 2146
Joined: Fri Jan 16, 2015 07:31
GitHub: sofar
IRC: sofar
In-game: sofar

Re: [Mod]Tutor[tutor] WIP

by sofar » Post

Updated this to use player attributes that are new in git, so this no longer depends on `datastorage`.

I still would love it if someone could work on content - it's really simple to add new goals. Anyone?

User avatar
Wuzzy
Member
Posts: 4803
Joined: Mon Sep 24, 2012 15:01
GitHub: Wuzzy2
IRC: Wuzzy
In-game: Wuzzy
Contact:

Re: [Mod]Tutor[tutor] WIP

by Wuzzy » Post

As long as there are still critical bugs in the first 5min of gameplay, I suspect the interest is pretty low.

sofar
Developer
Posts: 2146
Joined: Fri Jan 16, 2015 07:31
GitHub: sofar
IRC: sofar
In-game: sofar

Re: [Mod]Tutor[tutor] WIP

by sofar » Post

Wuzzy wrote:As long as there are still critical bugs in the first 5min of gameplay, I suspect the interest is pretty low.
I can't reproduce them and I did some major overhauling. Can you confirm this bug still exists?

EDIT: one of the major things I redid was make it a bit hardened against missing table entries, since I use parse|write_json and that has the problem that empty tables are pruned by `parse_json`. So now the code verifies at player login that all table entries are there irregardless. The crash you had seems to be indicative that the `active` table was `nil`, which should never happen anymore.

TL:DR I can dig a tree and it doesn't crash (new player).

User avatar
Wuzzy
Member
Posts: 4803
Joined: Mon Sep 24, 2012 15:01
GitHub: Wuzzy2
IRC: Wuzzy
In-game: Wuzzy
Contact:

Re: [Mod]Tutor[tutor] WIP

by Wuzzy » Post

In that case: Good work! :-)

Maybe I can use this mod for MineClone 2.

Post Reply

Who is online

Users browsing this forum: No registered users and 75 guests