after a long-time of ingenious thinking, I compiled the list of features that I would like to be added into Luanti. Numer of they arent numbers of priority. I know that it isn't so simple but I think that add these features in future will be big advancement of Luanti.
Media loading "when needed" - for quick playing on the server with low-quality internet connection, primary for bigger textures (as maps as textures on walls or big board with formated text from Microsoft Word or similar).
More in topic: viewtopic.php?t=31225)
Support for vector textures, as SVG
Composite nodes and node parts
Some as does Minecraft mod Chisels and Bits, but not only it. This could have more realistic pickaxes (mining "nodeparticles"/basic_nodeparts from nodes, cross more nodes, and building houses from bricks more realistic. Link for an image: https://ibb.co/3xwqGr7
I think that this is the most difficult of my drafts.
Optimization of on-lines / on-curves moving objects (as trains in AdvTrains) for decrease server load and visual lags in going by train in curves
Mod creator tools
- for simplier creating some type of mods - for example for GUI mods with chat / item-click commands
I think that this would to have lower priority
Support for blueprints for larger structure building
Fully customizable node parametre types param3, param4 ... every for limit 256 of nodes OR textureparamtype, rotationparamtype, colorparamtype...
All with keep compatibility with actual paramtype2
More liberalization of work with paramtype2 could solve part of this problem too.
Increase limit for register of nodes / items from 32 000 to 120 000 or do it adjustable for game
I love Luanti as is. However, I believe that these features improves Luanti so much.
Thank you for reading my text long as a log. I would like to read the reviews for my drafts!
Already partially possible with dynamic media and some cunning e.g. Cartographer. Doesn't cover all the textures and models, but can certainly help with the dynamic content.
Just rasterize it ahead of time, it would bog the game engine too much. It's bad enough downsampling some of the textures from LinuxForks' billboard mod to hotbar size, where there can be a noticeable lag. I discussed how much harder SVG is to render than ordinary raster graphics in "Production of vectoral screenshots". Even GUIs that appear to use vector graphics in many games are actually just high-enough resolution bitmaps that you don't notice. Maybe if you specify a resolution for the SVG and it pre-rasterizes it once.
I think Wesh is comparable, since from what I can see of Chisels and Bits: if you want to waste enough polygons, you can get arbitrary textures. Personally I'd rather people learn how to make models and mod their game - not applicable to every context or approachable I know.
Would be nice, but Luanti has a history of saying "that's too specific" about things like that...
Tools have, will and should improve over time. I've saved heaps of time with nodebox editor, LiBPov, qa_block, dbg and others. The thing is, there's only so much incentive to create such tools when so many people find diving into Lua "easy enough" that they don't look back.
There already is a schematic format and mods like Pick and Place, Block Exchange and so on*. You'd have to be more specific.
You can only make so much dynamic - it all adds a performance cost. Texture options we should have for sure though, to drastically reduce the quantity of registered nodes that are just shape + texture permutations.
32 768 is in place because it's the 16-bit integer limit. It would probably get lifted no less than to 24 bits (but probably 32 bits, because of memory alignment). 24 bits would allow 8 388 608 and 32 would allow 2 147 483 648.
*It's not much to look at but there's even a very, very basic and flaky version of Litematica.
Thanks, for the well thought out list of features. It's important to become aware of missing features people actually want.
Here is the status of some of them, if you are interested.
1. core.dynamic_add_media(options, callback) already exists
2. See https://github.com/luanti-org/luanti/issues/10770
3. May be possible with scalable Voxel Area Entities if we get them someday. Otherwise, I see no hope. (Except the flawed solution, using objects.)
4. That's something for entity movement prediction with SSCSM (Severs Sent Client Side Mods). It may be possible someday.
I think that actually is it insufficient for big textures or many nodes with complicated textures, each used only once per world. Partialy could be solved with more levels of textures.
For railway maps, this point is one of partialy solving of draft 1st point. I know that it is complicated.
Using models is one of variants for partial solving the problem. But for more type of cables in one node... I think that different methods could be solves of this problem.
I understand...
Nice! I will see tools said by you. Much of people,
For supporting some tools for planning the place and after you can realize it. For this could be some not-collision visible objects (or similar type as grass but could be placed in air).
a) Primary, I would like to be added these types of paramtype2: texture4dir
texturefacedir
texturewallmounted
texturedegrotate - all as "color .." but with more pixels textures (are more variants - palette with square textures, palette with division into parts with same lenght or more textures with same prefix and different last number in name)
I think that this is the best way for both server load and implementation difficulty (and too for length of codes, too for world files size etc.). And it solves too 8th point.
b) I think that at least one group of nodes we could have for paramtype2 - nodes with have 0 .. 4 backs and (4 - backs) fronts, some as fences but with their specifics (for example - not interacting with nearby nodes, or different nodeboxes for these variants), these nods need for every side own 0/1 paramtype2 state. In work version, we could names it "eachside" - too with versions "coloreachside" and "textureeachside". But, in my opinion, this part of solution isn't important as 7a)
Oh, that didn't occur to me...
After it, I think that that the highest priority (and I think that the smallest difficulty) has point 7 with newer version of solution (more versions of param2, that has textures - first variant "a", after it "b"). IMO, middle priority has point 1 (media loading "when needed"). In distant future could be solved points 4 (optimization of line-dynamic objects) and 6 (blueprints / in-air-planning tools).
Server to server hand off API. Would require an upgraded database like postgres to be activated. If you had an API that even allow the hand off to happen the modding community can create the mod to utilize it.
Gates between worlds could use UUIDs to store gate data. It might seem a little hacky but having server alpha connect to server beta would require both worlds to have a previously generated world with the mod enabled and gates found. You could link the gates, the UUIDs and their server IDs would be associated within postgres. Then the mod could use the hand off API to just make those connections. You'd have to have a shared auth table in postgres as well.
That would be my dream to get worlds/dimensions going.
Server to server hand off API. Would require an upgraded database like postgres to be activated. If you had an API that even allow the hand off to happen the modding community can create the mod to utilize it.
The devs of Luanti never have, nor did the devs of Minecraft. However, both have third party reverse proxies, which are good enough: Spigot for MC, and mt-multiserver-proxy. In general, the users of Luanti would rather not register for central authentication across all servers, but across a network of servers, it does make sense.
The devs of Luanti never have, nor did the devs of Minecraft. However, both have third party reverse proxies, which are good enough: Spigot for MC, and mt-multiserver-proxy. In general, the users of Luanti would rather not register for central authentication across all servers, but across a network of servers, it does make sense.
That's good to know, I'll tinker. I'm selfishly a home lab experimenter so I enjoy centralizing things under my own control, but I know that's not a fit for the masses in general.
I've only started to dive into the world of Luanti. Having just adopted two 13 year old twin boys obsessed with Minecraft, it's been fun to run a home networked game server. We've been loving Asuna. We even forked a mod to tinker on for ourselves, with a little help with Bolt. Can't wait to see what further development brings.