Page 1 of 1

Nore's personal TODO list

PostPosted: Wed Apr 27, 2016 15:39
by Nore
Hi all! :)

This is my personal TODO list: things that I am working on, or about which I'd like to work on. It is mostly there to organize my thoughts, but also to get some feedback so that I can focus on what people actually want most.

What I am currently working on are colored chat, and client-side translations.

Engine


  • Colored chat and other texts
    This is a rebase and upgrade of #2411, adding colored chat, but also giving the ability to color almost all text shown by Minetest -- including item descriptions. The code is mostly done, but still needs work as it is a rebase of old code (which was itself a backport of even older code).
    Pull request is now open for those who want to already test it: #4077
    Done.
  • meta_set_nodedef
    For those who don't know what it is, meta_set_nodedef is the ability to alter a node's definition by changing its metadata. The unfinished, old pull request is there: #1118. As it can be seen by the sheer amount of labels on it, it is a very complicated feature, and that is difficult to maintain. One of my objectives is to rebase it one more time (I already did that several times, and rebasing 1-year-old code is a difficult task), finish it, and solve the performance issues that came with it.
  • Client-side translations
    The objective of this is to (finally) add client-side translations: the text that a client would display would depend on the language the client configured, instead of having to use whole-server translations. The problem currently is to decide how this would be implemented, see the discussion of #3950 for details.
  • Rewrite light code
    Rewrite the code of light spreading to include the following changes: instead of storing day/night light, store artificial light/sunlight. Also, make it able to have sunlight re-added at certain block boundaries to make stacked realms possible.
  • Support for stacked realms
    Add some kind of way for mods to register realms boundaries, that would act as if the map stopped at that point for the client, and with nodes above and below seeming inexistant. Thus, it would be some kind of artificial map boundary, that would allow much more compact stacked realms, and without visual glitches.
  • Work on larger maps
    This is a big question, as it is a lot of work for not much. However, it raises a few valid points, that are related to map saving format, that should be updated, as I reckon it has several flaws.
  • Add a world.conf file
    This would be a file that would override minetest.conf for its settings; minetest.setting_set would then write changes in this file and there would be a minetest.global_setting_set function.
  • A better way for mods to store their data
    Some kind of minetest.register_on_save too, so that mod state and engine state do not get de-synchronized.

Content

  • Make trees more interesting
    Included in that idea are: different burning times, but also changing cooking times when used as fuel, making some trees suitable for cooking things faster. It also means different hardness, etc. An issue exists about it: game#882.

  • Write (yet another) mapgen
    The objective is to write a mapgen (loosely) based on this article: Polygonal map generation for games, which is a very different way of creating a maps, that seems to give excellent results. Another idea is to port Terasology's excellent mapgen.
  • Add some kind of "objective" to the game
    I like the idea of mese being of alien origin a lot, so I was thinking about meteors and crashed spaceships that could be found buried underneath the surface, or deep in the sea. The player would then discover more things as they play and find those artifacts.

Other tools
  • mcimport
    Rewrite mcimport to C++ to get an important speed benefit, and write a mapgen aware of data given by the mc map, in order to continously integrate the already-generated map into a larger map, seemlessly integrating the map into a bigger world. Also, that mapgen could be useful to blend several different maps together.

Long-term goals
  • Implement client-side Lua
    That is the feature everyone has been waiting; difficult and tricky. It is here, but it is clearly not the first thing I will do.
  • Voxel Area Entities
    Another much-awaited feature, that has a lot of potential. Much easier than client-side Lua, but still tricky.
  • MC clone (in progress, not by me)
    Write a MC clone - or at least, a clone of MC 1.0, so that all pre-1.0 maps can be converted to MT and played within, as if there was no difference. And yes, this objective is here partly because of the former MC player that remains in me, and that want to continue to play with his old maps, and partly because I want to be able to convince my cousins to come to MT :).

Re: Nore's personal TODO list

PostPosted: Thu Apr 28, 2016 04:19
by sofar
TumeniNodes wrote:To be honest, even being here only a short time now..., I see one subject which seems to attract the most views on the forum..., and that is anything related to shaders.


These personal work lists (I have one exactly like this one) are not "suggestion lists" per se.

What's listed here are Nore's items. They're there because they are things that are solvable to Nore, because Nore thinks it can be solved. Putting things like shaders on a worklist for someone who has never done shaders is not that helpful. Instead, try thinking about what's on the list here and see if you can contribute in this thread to that.

As for being able to turn water red through a shader: congratulations, you're now a shader expert! ;)

Re: Nore's personal TODO list

PostPosted: Thu Apr 28, 2016 04:31
by TumeniNodes
I definitely had no intentions of creating an issue. so I apologize
When I read "It is mostly there to organize my thoughts, but also to get some feedback so that I can focus on what people actually want most."
Maybe I misunderstood.
I nowhere near claimed to be a sudden "expert". I have zero idea of what I am doing regarding shaders at all, but I am trying, and learning a little.
I will remove the post and then shortly afterward, this one as well.
My full apologies to Nore, I misunderstood and did not mean to create a problem

Re: Nore's personal TODO list

PostPosted: Thu Apr 28, 2016 14:15
by sofar
TumeniNodes wrote:I definitely had no intentions of creating an issue. so I apologize
When I read "It is mostly there to organize my thoughts, but also to get some feedback so that I can focus on what people actually want most."
Maybe I misunderstood.
I nowhere near claimed to be a sudden "expert". I have zero idea of what I am doing regarding shaders at all, but I am trying, and learning a little.
I will remove the post and then shortly afterward, this one as well.
My full apologies to Nore, I misunderstood and did not mean to create a problem


ah, well, I wasn't offended and I don't think Nore would be either... I just wanted to set the tone for a constructive discussion, that's all.

Re: Nore's personal TODO list

PostPosted: Thu Apr 28, 2016 14:46
by Nore
sofar wrote:
TumeniNodes wrote:I definitely had no intentions of creating an issue. so I apologize
When I read "It is mostly there to organize my thoughts, but also to get some feedback so that I can focus on what people actually want most."
Maybe I misunderstood.
I nowhere near claimed to be a sudden "expert". I have zero idea of what I am doing regarding shaders at all, but I am trying, and learning a little.
I will remove the post and then shortly afterward, this one as well.
My full apologies to Nore, I misunderstood and did not mean to create a problem


ah, well, I wasn't offended and I don't think Nore would be either... I just wanted to set the tone for a constructive discussion, that's all.


I'm indeed not offended, so no worries ;).

Re: Nore's personal TODO list

PostPosted: Fri Apr 29, 2016 18:39
by TumeniNodes
Right then..., now I feel bad cluttering your thread up.
Alright, everyone back to work then :D

BTW:, client-side Lua, will be a very welcome feature.

Re: Nore's personal TODO list

PostPosted: Sat Apr 30, 2016 04:13
by sofar
TumeniNodes wrote:BTW:, client-side Lua, will be a very welcome feature.


I think too many people think this will be somehow transformative and really change the game, but it's not going to be that.

You can't have game mechanics in client-side lua, since that would allow for cheating.

So the only thing remaining is visual and audio effects, and GUI/HUD type stuff.

I doubt that client-side mob movement is even worth it, personally. It will be extremely hard to do, and just be a distraction.

Not that it isn't important, of course.

Re: Nore's personal TODO list

PostPosted: Sat Apr 30, 2016 07:25
by Krock
Well done, this list contains all often requested features. What I really would like to see, are the Voxel Area Entities because they would allow to build houses that could swim, rotate or even fly.
Still, this is a big TODO list and will give enough work for years.

Re: Nore's personal TODO list

PostPosted: Sat Apr 30, 2016 12:28
by TumeniNodes
I see your point Sofar. I tend to forget about such things as far as the "game" purpose of Minetest, as I use it solely for building.
Perhaps if there were a way to set it up so that client side Lua scripts could only tap into specfic areas of the core such as visuals/asthetics? But any other type scripts (such as for cheating) could be blocked?
Anyway, as Nore has it in the right perspective... at the back burner, as it is not an issue critical to Minetest game.

Re: Nore's personal TODO list

PostPosted: Sun May 01, 2016 02:41
by sofar
TumeniNodes wrote:I see your point Sofar. I tend to forget about such things as far as the "game" purpose of Minetest, as I use it solely for building.
Perhaps if there were a way to set it up so that client side Lua scripts could only tap into specfic areas of the core such as visuals/asthetics? But any other type scripts (such as for cheating) could be blocked?
Anyway, as Nore has it in the right perspective... at the back burner, as it is not an issue critical to Minetest game.


Any client side API will be entirely different than the server side API... it will be a whole new thing that can do things that the server lua code can't do, and vice-versa. There will almost be no overlap.

Re: Nore's personal TODO list

PostPosted: Sun May 01, 2016 21:14
by paramat
I've read that polygonal map generation article before, interesting.

Re: Nore's personal TODO list

PostPosted: Sun May 22, 2016 14:52
by qwertymine3
Nore, have you seen the polyworld module for Terasology?
https://github.com/Terasology/PolyWorld

Also, why MC1.0? World format should be the same in MC1.1, with only minor additions.

Re: Nore's personal TODO list

PostPosted: Sun May 22, 2016 17:09
by Nore
qwertymine3 wrote:Nore, have you seen the polyworld module for Terasology?
https://github.com/Terasology/PolyWorld

Yes, already did... I also made my own code, that is still a WIP demo in Python though, and that produces 2D maps and not Minetest ones.

Also, why MC1.0? World format should be the same in MC1.1, with only minor additions.

The world format is not the problem: the problem is to have an objective for the version of MC that should be replicated; 1.0 is already a very ambitious objective, I might try to get an earlier version working instead.

Re: Nore's personal TODO list

PostPosted: Sun May 22, 2016 19:22
by philipbenr
Rewrite light code


YES! That is something everybody has been begging for. I don't know how much you are going to redo, but people will likely be happy no matter what.

Re: Nore's personal TODO list

PostPosted: Fri May 27, 2016 02:03
by philipbenr
@Nore: Is there an alpha channel involved with that? I would like to see a workaround for the hiding nicknames without hiding the HUD... I was just playing a game with my brother that really would have been more fun without the nicknames.

Re: Nore's personal TODO list

PostPosted: Fri May 27, 2016 06:06
by Nore
Hm, isn't there a setting for that? (about max nametag sending distance)

Re: Nore's personal TODO list

PostPosted: Fri Jul 15, 2016 02:07
by Sokomine
Nore wrote:Write a MC clone - or at least, a clone of MC 1.0, so that all pre-1.0 maps can be converted to MT and played within, as if there was no difference. And yes, this objective is here partly because of the former MC player that remains in me, and that want to continue to play with his old maps, and partly because I want to be able to convince my cousins to come to MT :).

That would be great! There are a lot of excellent maps and buildings out there which where constructed by MC players. Beeing able to walk through those worlds (without having to manually convert them first) would be very enjoyable. I still have some old MC classic maps saved on my disk. Admittedly it can already be done with a converter. Just...takes time. And those old maps where sourrounded by an infinite ocean...

The other topics on the list would also be highly welcome :-)

Re: Nore's personal TODO list

PostPosted: Sun Oct 16, 2016 18:32
by bigfoot547
Nore wrote:Add a world.conf file


I have actually just made a mod for this! :-D

Forum Topic

Re: Nore's personal TODO list

PostPosted: Sun Dec 25, 2016 21:32
by Wuzzy
Support for stacked realms
Add some kind of way for mods to register realms boundaries, that would act as if the map stopped at that point for the client, and with nodes above and below seeming inexistant. Thus, it would be some kind of artificial map boundary, that would allow much more compact stacked realms, and without visual glitches.


How exactly do you imagine this feature?

Does this mean, for the player “stacked” realms look like completely different and separate world which can only be travelled to with teleporting? That means, the player can not enter another realm just by walking/digging alone?

That would be indeed very cool, as this would be a neat way to reimplement something like the “dimensions” from Minecraft, or to create different “worlds” like in the Myst series.
The downside with this is, the more “realms” you add, you lose height per realm. E.g. if you have 2 realms, each of them can only have half of the world height. But this seems it's just the price you have to pay.

Another thing I see with the “stacked realms” idea: I feel it is somewhat biased towards flat worls. What about the idea of horizontally limiting realms? I am not sure about this myselves, it was just a quick thought.

If I am wrong about your idea, please correct me and explain what you actually meant. :-)

Re: Nore's personal TODO list

PostPosted: Mon Dec 26, 2016 08:36
by Nore
Yes, these are the two main problems with that idea. The best way to correct this would be to add a fourth "dimension" to the positions, but again, this would have quite a lot of compatibility problems. Thus, I need to think more about it. Maybe some kind of global value that would hold the last component of the position, to be used when a mod does not provide it could fix that problem (for most mods), but it is quite complicated anyway.

Re: Nore's personal TODO list

PostPosted: Tue Dec 27, 2016 17:53
by paramat
> Add some kind of way for mods to register realms boundaries,

Still a good idea.

Re: Nore's personal TODO list

PostPosted: Fri Feb 10, 2017 05:59
by GreenDimond
For a while, I was against the idea of stacked realms (I was not against realms, just the stacked kind). But having "artificial sunlight" as you call it, makes a whole lot more sense. Adding a "secondary world" of sorts beyond the boundary and skybox might actually work. Modders could make custom skyboxes, light cycles, terrain generation, etc...
As for the stacking part, I think it could work like this:
Have designated areas above the world, that are the same size of the world, that have nothing in them. They are just designated spots. Player enables realmmod1. Realmmod1 generates its realm in the first area above the over world. Player then enables realmmod2. It gets the next spot, etc... for others. Player decides to enable realmmod3 and realmmod4 at the same time. What do? What do, is simply decide which one gets the first spot (can be random). Next, player decides he doesn't want realmmod2 anymore, and disables it. Now what? Hopefully, Minetest will have kept track of which realm had which space, and clears that area. Now spot 2 is empty. Player enables realmmod5. This fills spot 2. Now player finds an update for realmmod1. What do? I don't know :P

These are just my insights on what could happen :)
Nice list btw!

Re: Nore's personal TODO list

PostPosted: Fri Feb 10, 2017 09:33
by TenPlus1
A 60,000 high world could indeed host many realms of say -500 to 500 and be under mod control, but we would need a mapgen feature to be able to generate such realms.

Re: Nore's personal TODO list

PostPosted: Sun Mar 19, 2017 08:19
by nrz
The mod storage is now implemented in CSM and SSM :)

Re: Nore's personal TODO list

PostPosted: Sun Mar 19, 2017 09:15
by burli
nrz wrote:The mod storage is now implemented in CSM and SSM :)

Great. Do you have examples somewhere? The doc is a bit thin

Re: Nore's personal TODO list

PostPosted: Mon Mar 20, 2017 00:10
by red-001
you can use core.get_mod_storage() to get a copy of the object (it must be run at startup ). You can then use the same functions as http://dev.minetest.net/NodeMetaRef . For an example of how to use CSM + modstorage you can take a look at my chatlog mod

Re: Nore's personal TODO list

PostPosted: Mon Mar 20, 2017 01:39
by Wuzzy
MC clone
Write a MC clone - or at least, a clone of MC 1.0 (…)

I'm working on it, it's called “MineClone 2”:

viewtopic.php?f=50&t=16407

Make trees more interesting

Implement client-side Lua

Those two are now finished.

Re: Nore's personal TODO list

PostPosted: Mon Mar 20, 2017 05:04
by sofar
burli wrote:
nrz wrote:The mod storage is now implemented in CSM and SSM :)

Great. Do you have examples somewhere? The doc is a bit thin


That's because it's fairly simple. The storage ref works just like a node meta:

local ref = minetest.get_mod_storage()

then later you can use

ref:set_int("foo", 345)
str = ref:get_string("doodles")

etc.

Re: Nore's personal TODO list

PostPosted: Mon Mar 20, 2017 05:41
by burli
Thanks sofar