Time |
Nick |
Message |
00:10 |
|
fluxionary joined #luanti |
00:35 |
|
YuGiOhJCJ joined #luanti |
01:16 |
|
SwissalpS joined #luanti |
01:23 |
|
FileX joined #luanti |
01:27 |
|
FileX joined #luanti |
01:45 |
|
SwissalpS joined #luanti |
01:57 |
repetitivestrain |
- |
02:02 |
|
Guest53 joined #luanti |
02:14 |
|
fluxionary joined #luanti |
02:25 |
|
repetitivestrain joined #luanti |
03:15 |
|
v-rob joined #luanti |
03:24 |
|
alias joined #luanti |
03:24 |
repetitivestrain |
sfan5: emerge_area is too slow: enqueueing a 6x6x6 region of mapblocks requires 6-9 ms, and i must reload every mapblock in range that is not yet generated on every globalstep, even if it is already in the emerge queue, because core.compare_block_status is unreliable in reporting whether a mapblock is actually imminently to be emerged |
03:25 |
repetitivestrain |
however, reading RemoteClient::GetNextBlock, it appears that server side occlusion culling only applies to mapblocks that are not yet loaded |
03:25 |
repetitivestrain |
is that correct?? |
03:27 |
repetitivestrain |
if it is, then i see no downsides in simply disabling server side occlusion culling in mineclonia when my mapgen is enabled and i apologize contritely for wasting your time |
03:30 |
|
SwissalpS joined #luanti |
03:38 |
|
amfl2 joined #luanti |
04:00 |
|
MTDiscord joined #luanti |
04:16 |
[MatrxMT] |
<Blockhead256> forums are down again, R.I.P. |
05:25 |
|
diceLibrarian joined #luanti |
05:29 |
|
diceLibrarian joined #luanti |
05:30 |
|
SwissalpS joined #luanti |
05:42 |
|
FileX joined #luanti |
05:43 |
|
FileX joined #luanti |
06:03 |
|
orwell96 joined #luanti |
06:05 |
|
orwell96 joined #luanti |
06:14 |
|
fluxionary joined #luanti |
06:24 |
|
zleap joined #luanti |
06:33 |
|
illwieckz joined #luanti |
07:06 |
|
Kimapr joined #luanti |
07:08 |
|
swee joined #luanti |
07:14 |
|
SFENCE_arch joined #luanti |
07:33 |
|
alpiquero joined #luanti |
07:37 |
sfan5 |
repetitivestrain: no, SSOC applies to all blocks |
07:44 |
sfan5 |
trying to coax the block loading to serve the requirements of your mapgen is probably futile |
07:44 |
sfan5 |
it sounds like what you need is a custom chunksize setting or something similar but more precise |
07:45 |
sfan5 |
also please report bugs you encounter. I get the impression there are a bunch of features known as "oh this is broken, don't rely on it" in the community meanwhile the engine devs have never heard about this problem. |
07:45 |
[MatrxMT] |
<Blockhead256> we have several people who are github detractors and won't post to the issue tracker for that reason |
07:46 |
[MatrxMT] |
<Blockhead256> this is not helpful to the project as a whole |
07:47 |
[MatrxMT] |
<Blockhead256> https://forum.luanti.org/viewtopic.php?p=444793#p444793 |
07:48 |
repetitivestrain |
sfan5: i see, can you direct me to where occlusion culling is applied to blocks already emerged? |
07:48 |
repetitivestrain |
i have explained my requirements on the forums and i'd love to report them as issues too, only i would rather not sign up for GitHub |
07:49 |
[MatrxMT] |
<Blockhead256> https://forum.luanti.org/viewtopic.php?t=29291 |
07:49 |
repetitivestrain |
Voted, FWIW |
07:49 |
sfan5 |
it's indeed unfortunate but linking a pastebin with a filled in issue template in #luanti-dev would be better than literally nothing |
07:49 |
sfan5 |
fwiw I think most devs don't read the forums actively, so that's not the right place |
07:49 |
sfan5 |
repetitivestrain: https://github.com/luanti-org/luanti/blob/master/src/server/clientiface.cpp#L338 |
07:50 |
sfan5 |
in words this condition is "if the block is loaded already or about to be loaded" |
07:50 |
[MatrxMT] |
<Blockhead256> look, I'm checking the forums quite regularly, but it honestly feels like people asking me to write and mail a letter for them when they report an issue there but won't post to the issue tracker |
07:51 |
repetitivestrain |
sfan: Ah, I see |
07:52 |
repetitivestrain |
wouldn't "if the block is loaded already or is not about to be generated" more accurate? |
07:52 |
repetitivestrain |
since a queued block is about to be generated |
07:53 |
sfan5 |
"if the block is loaded already and wasn't already enqueued to be generated" to be exact |
07:53 |
repetitivestrain |
Makes sense, thanks |
07:56 |
sfan5 |
@Blockhead256 especially for feature requests, getting someone else to open the issue for you is not a sustainable solution. yeah |
07:56 |
repetitivestrain |
Where is the issue/ticket template? |
07:56 |
sfan5 |
https://github.com/luanti-org/luanti/blob/master/.github/ISSUE_TEMPLATE/bug_report.yaml |
07:56 |
repetitivestrain |
Sorry if i come across as a whit blind |
07:57 |
repetitivestrain |
Noted |
07:57 |
[MatrxMT] |
<Blockhead256> https://github.com/luanti-org/luanti/tree/master/.github/ISSUE_TEMPLATE |
08:00 |
repetitivestrain |
On a totally unrelated score, has there been any consideration in engine development regarding storing metadata in schematics? |
08:00 |
sfan5 |
has not been talked about but my gut feeling says "intentional, wontfix" |
08:01 |
repetitivestrain |
Well I'm only asking because it strikes me as a feature that would be broadly useful to all mod developers |
08:02 |
|
diceLibrarian2 joined #luanti |
08:03 |
repetitivestrain |
e.g. here i've implemented a system of structure templates, which are akin to schematics but also encode metadata, which nodes' constructors must be executed, and also data blocks that hold directives indicating how to post-process adjacent nodes, etc. https://codeberg.org/mineclonia/mineclonia/src/commit/mineclonia_mapgen/mods/MAPGEN/mcl_levelgen/templates.lua |
08:04 |
repetitivestrain |
and what's awful is that previously two copies of an inferior mechanism existed in mineclonia, one in mcl_villages and another i recall in mcl_structures |
08:05 |
repetitivestrain |
and this just must be unsustainable |
08:05 |
[MatrxMT] |
<Blockhead256> I have a feeling the engine won't do anything to aid in that unless there's something that can be done to make a library for that kind of thing faster |
08:06 |
[MatrxMT] |
<Blockhead256> just like pathfinding is limited to a C++-side A* algorithm that can accelerate the Lua |
08:06 |
repetitivestrain |
The engine already provides schematics, though |
08:06 |
repetitivestrain |
which could easily be extended to store metadata |
08:06 |
[MatrxMT] |
<Blockhead256> different schematic formats will exist, and that's okay. They all need different data in them |
08:07 |
sfan5 |
repetitivestrain: did you check that chunksize=6 actually makes your mapgen work? |
08:07 |
repetitivestrain |
We'll see whether you change your mind after being made to convert 16 structures from mts schematics with standalone metadata for an improvised system to use structure and jigsaw blocks |
08:07 |
repetitivestrain |
sfan5: you mean in the case of occlusion? |
08:07 |
|
heavygale joined #luanti |
08:08 |
sfan5 |
no |
08:08 |
sfan5 |
what is the "entire vertical area of a chunk" height that you need? |
08:08 |
repetitivestrain |
chunksize=24 |
08:08 |
repetitivestrain |
vertically, and any value horizontally |
08:10 |
repetitivestrain |
otherwise, it does "work", but it needs to regenerate every mapchunk-sized subsection of a 24 block column anew, which renders map generation 4x slower than it could be |
08:11 |
sfan5 |
"mapchunk" being what? |
08:12 |
repetitivestrain |
a chunksize^3 volume of mapblocks |
08:12 |
repetitivestrain |
i think this is the term that's in lua_api.md |
08:12 |
sfan5 |
then I don't understand why you say it has to regenerate stuff twice |
08:14 |
repetitivestrain |
upon on_generate, my map generator produces a 80x384x80 block region of the world, which is truncated to [minp.y - maxp.y] before being written to the VoxelManip |
08:15 |
sfan5 |
ah okay |
08:15 |
sfan5 |
by the way it appears the engine limits chunksize to 10 |
08:15 |
repetitivestrain |
therefore, generating a complete column (80x384x80 nodes) requires that the very same column must be processed four times, although in effect it's just two, as clients tend not to trigger mapblock generation at any further distances |
08:15 |
repetitivestrain |
Hmm? |
08:15 |
repetitivestrain |
Feels pretty arbitrary to me |
08:16 |
sfan5 |
most limits are arbitrary |
08:16 |
[MatrxMT] |
<Blockhead256> it's pretty common for programs like Luanti to have a bunch of arbitrary magic numbers in them like that though |
08:17 |
repetitivestrain |
My map generator can't handle horizontal chunksizes beyond 9, i think, as it manipulates various types of extensively with the bitop library which only takes 32-bit integers |
08:18 |
sfan5 |
so even ignoring that the engine can't do it your mapgen can't handle chunksize=24 |
08:18 |
repetitivestrain |
but it has no conception of vertical chunks, and always generates complete columns, which is ultimately the only means of ensuring determinism |
08:18 |
repetitivestrain |
not _horizontally_, but _vertically_ |
08:18 |
|
jaca122 joined #luanti |
08:18 |
repetitivestrain |
i need the engine to generate 80x384x80 mapchunks |
08:18 |
sfan5 |
yes I know |
08:18 |
repetitivestrain |
Yeah, so you see my predicament |
08:19 |
repetitivestrain |
once i finish the mapgen i'll try my hand at implementing this |
08:21 |
sfan5 |
chunksize 24³ makes mapgen quite slow, has high memory consumption, probably causes extra server lag |
08:21 |
sfan5 |
and with mgv7 you get holes in terrain https://0x0.st/8lEG.jpg |
08:22 |
repetitivestrain |
24*3 is really extreme, but 5x24x5 is only 600 mapblocks, much fewer than 10x10x10, and should be managable |
08:22 |
repetitivestrain |
24^3 i mean |
08:23 |
sfan5 |
!c 24^3 |
08:23 |
MinetestBot |
27 |
08:23 |
sfan5 |
*wink* |
08:23 |
repetitivestrain |
That's 24 xor 3 |
08:23 |
sfan5 |
anyway sure. I just gave it a try out of curiosity |
08:23 |
repetitivestrain |
and really color me not surprised that mgv7 is slightly broken lol |
08:23 |
sfan5 |
if the engine allows non-cubic chunks keeping the upper limit at 10³ makes sense |
08:24 |
repetitivestrain |
the y slice issue is in part what prompted me to write my own mapgen |
08:24 |
repetitivestrain |
and also all of the issues on mineclonia's tracker that concern structure placement |
08:28 |
repetitivestrain |
also, non cubic chunks could easily be a solution to the y slice issue |
08:28 |
repetitivestrain |
i hope |
08:31 |
|
orwell96 joined #luanti |
08:40 |
|
mrkubax10 joined #luanti |
08:53 |
|
FileX joined #luanti |
08:59 |
|
mrkubax10 joined #luanti |
09:47 |
|
TenPlus1 joined #luanti |
10:35 |
|
orwell96 joined #luanti |
10:42 |
sfan5 |
repetitivestrain: have fun https://github.com/sfan5/luanti/tree/chonky |
11:17 |
|
alidrus joined #luanti |
11:21 |
|
WoGoMo joined #luanti |
11:27 |
WoGoMo |
Hi I was wondering if someone could tell me if there was a way to force grass to grow on plain dirt if there are no pre-existing "dirt with grass" blocks with just the default server mods |
11:34 |
sfan5 |
use creative mod and place some grassy dirt, it will spread |
11:34 |
sfan5 |
mode* |
11:35 |
[MatrxMT] |
<Blockhead256> if you have tall grass, then that will also spread grass to dirt blocks under it |
11:43 |
repetitivestrain |
sfan5: thanks! i'll probably wind up adding the ability to specify the base Y offset too (chunk_offset.Y in EmergeManager::getContainingChunk), to enable the overworld to continue originating from Y=-128 |
11:45 |
|
ireallyhateirc joined #luanti |
11:50 |
WoGoMo |
thanks! |
11:58 |
sfan5 |
https://0x0.st/8lIp.jpg mapgen made a cool arc |
12:10 |
WoGoMo |
Well the tall grass worked like a charm. I have some patches of grass growing. One last thing though, is sunlight required for the grass to spread to adjacent dirt blocks? |
12:12 |
[MatrxMT] |
<Blockhead256> sunlight or artificial light - the light level is checked before deciding whether the grow |
12:12 |
[MatrxMT] |
<Blockhead256> whether to grow |
12:12 |
WoGoMo |
thanks again. cheers! |
12:24 |
WoGoMo |
Well, it's almost fully covered in grass now. Once done I can cover up the ceiling and my dirt monster trap will be done. :D https://0x0.st/8lIU.png |
12:44 |
|
silverwolf73827 joined #luanti |
13:12 |
|
SFENCE_arch joined #luanti |
13:18 |
|
cheek_pain joined #luanti |
13:50 |
|
zleap joined #luanti |
13:55 |
|
silverwolf73828 joined #luanti |
13:59 |
|
silverwolf73827 joined #luanti |
14:06 |
|
SFENCE joined #luanti |
14:20 |
repetitivestrain |
sfan5: i needed one additional change to retain the current dimension configuration: https://codeberg.org/halon/Minetest/commit/adf680ef1347170c05ff1498805e945113c211eb |
14:24 |
repetitivestrain |
and in a cursory benchmark it yields the expected 4x speedup in /emergeblocks and feels roughly twice as fast |
14:31 |
repetitivestrain |
https://codeberg.org/mineclonia/mineclonia/commit/ad84598c0ca31af071012c33ee3410101715c55d |
14:31 |
repetitivestrain |
Also for what it's worth, these were the changes required to adapt my mapgen to this branch |
14:32 |
|
the_sea_peoples joined #luanti |
14:32 |
|
silverwolf73828 joined #luanti |
14:36 |
sfan5 |
I can't promise the arbitrary offset will make it into the engine |
14:37 |
sfan5 |
there are good arguments for it however |
14:37 |
repetitivestrain |
yes, we have y=-128 specifically so that sea level may be located at y=0 |
14:37 |
[MatrxMT] |
<Blockhead256> yeah, terrain level/sea level isn't really something the engine needs to dictate |
14:37 |
repetitivestrain |
afaik before our world height was extended to 384, the overworld commenced at y=-64 |
14:38 |
|
SFENCE joined #luanti |
14:39 |
repetitivestrain |
Blockhead256: and without this change, our sea level would need to be a very counterintuitive -64, to speak nothing of the difficulties that would introduce in upgrading existing worlds |
14:40 |
sfan5 |
strictly speaking it only dictates the implementation. you can generate any sea level with any chunk grid in theory |
14:40 |
repetitivestrain |
not as efficiently though |
14:40 |
repetitivestrain |
i would either have to raise the chunksize again (which translates into greater memory consumption) |
14:40 |
repetitivestrain |
or return to generating columns redundantly |
14:41 |
|
SFENCE joined #luanti |
14:43 |
repetitivestrain |
so i suppose the proper nomenclature would be "quality of implementation" |
14:43 |
[MatrxMT] |
<Blockhead256> appropriateness of the solution to the problem as presented |
14:45 |
repetitivestrain |
But on balance I am pleasantly surprised by how much Minetest has progressed since 5.0.0 |
14:45 |
|
SFENCE joined #luanti |
14:45 |
repetitivestrain |
lua map generators of this complexity would never have been feasible 5 years ago |
14:49 |
repetitivestrain |
https://codeberg.org/attachments/44ab1891-a60c-43a9-936c-974603305c73 |
14:50 |
repetitivestrain |
e.g. it has never been possible to reproduce minecraft-style plains with the existing map generators |
14:50 |
repetitivestrain |
as their biomes simply aren't influenced by terrain |
14:51 |
[MatrxMT] |
<Blockhead256> I've got a set of parameters for carpathian that I quite like, it's VERY flat https://forum.luanti.org/viewtopic.php?t=17174&start=50 |
14:51 |
repetitivestrain |
whereas in minecraft (and in my map generator), continentalness and erosion, which define terrain height, are also dimensions in the biome lookup tree |
14:51 |
[MatrxMT] |
<Blockhead256> that has plains, mountains and lakes. That's about it for landforms... |
14:52 |
repetitivestrain |
No WindsweptSavannahs? :P |
14:53 |
* [MatrxMT] |
<Blockhead256> looks that up |
14:53 |
[MatrxMT] |
<Blockhead256> honestly that looks VERY cubic, the output of carpathian is really round |
14:57 |
repetitivestrain |
Yes, but in minecraft they coexist in the same world |
14:57 |
repetitivestrain |
and biomes are assigned on the basis of terrain rather than exclusively from separate heat and humidity noises |
14:57 |
|
v-rob joined #luanti |
14:57 |
|
SFENCE joined #luanti |
14:58 |
repetitivestrain |
By the way, is anyone aware of a Lua implementation of the v7 mapgen? |
14:59 |
[MatrxMT] |
<Blockhead256> a Lua implementation of a C++ mapgen? I think the only ones that exist on other languages were prototypes of what we have like valleys |
14:59 |
repetitivestrain |
Too bad |
15:00 |
repetitivestrain |
i'm still investigating how properly to convert existing worlds to this mapgen, and i'd have liked to implement conversion using the elegant approach, to wit, blending the noise values of blocks generated near old blocks with values produced by the previous map generator |
15:00 |
[MatrxMT] |
<Blockhead256> I thought not even mojang bother with that sort of thing |
15:00 |
repetitivestrain |
most of the infrastructure already exists, excepting some means of invoking v7 from Lua |
15:00 |
repetitivestrain |
Mojang does |
15:01 |
repetitivestrain |
the blending approach i'm referring to was first implemented by them in Minecraft 1.18 |
15:01 |
repetitivestrain |
https://minecraft.wiki/w/Density_function#blend_alpha |
15:01 |
[MatrxMT] |
<Blockhead256> okay, my MC knowledge is very limited after like 1.2.5 or 1.7 |
15:02 |
repetitivestrain |
the other approach i am considering if this fails is some manner of moving average, but i suspect such an approach could only run as an external tool |
15:02 |
[MatrxMT] |
<Blockhead256> Luanti mapgen was always backwards compatible with adding new biomes :P |
15:03 |
repetitivestrain |
So is mine (and mojang's), since biomes are saved to disk and terrain defines biomes rather than vice versa |
15:03 |
repetitivestrain |
but 1.18 featured a complete reimplementation of their level generator |
15:04 |
[MatrxMT] |
<Blockhead256> you're probably aware that it didn't used to be like that, you used to update and get big stone walls and stuff |
15:04 |
repetitivestrain |
i have only ever played minecraft 1.7.2, the release where pistons were introduced |
15:04 |
repetitivestrain |
ca. 2011 |
15:04 |
repetitivestrain |
Beta 1.7.2* |
15:05 |
repetitivestrain |
since which time i have not opened minecraft otherwise than in the course of developing mineclonia |
15:06 |
[MatrxMT] |
<Blockhead256> this is.. exactly the sort of thing that any old player could tell you but is proving REALLY hard to try to find a screenshot of |
15:07 |
[MatrxMT] |
<Blockhead256> https://www.howtogeek.com/213964/how-to-upgrade-your-old-minecraft-maps-for-seamless-transitions-to-new-biomes/ |
15:07 |
repetitivestrain |
don't worry, i was advised of this by other veteran minecraft players |
15:07 |
|
SFENCE joined #luanti |
15:07 |
repetitivestrain |
but i'm specifically speaking of and implementing the level generator introduced in 1.18 |
15:07 |
|
Helenah joined #luanti |
15:08 |
repetitivestrain |
where biomes are defined by terrain, and additional biomes produce no visible chunk boundaries |
15:08 |
Helenah |
Is there any way of showing a dialog box and expecting the player select some stuff in the dialog box before their character and the world will spawn for them? |
15:08 |
Helenah |
I haven't seen a solution for this. |
15:09 |
[MatrxMT] |
<Blockhead256> Helenah: My hack would be to check for first spawn and move them way up in the air, revoke all privileges, then force the formspec to reopen every time they close it. Then teleport them to their actual spawn when they complete the dialogue |
15:10 |
[MatrxMT] |
<Blockhead256> *way up in the air, but inside an unbreakable prison with no light |
15:12 |
[MatrxMT] |
<Bracket> a bit like techage server |
15:12 |
Helenah |
Would there ever come more direct way? I think there are things which could be broke out the engine and put into the API. |
15:13 |
[MatrxMT] |
<Bracket> you could disable closing the formspec on 5.12 afaik |
15:14 |
[MatrxMT] |
<Blockhead256> and now there's an escape code of Shift+Esc, which people keep doing accidentally ... . . |
15:14 |
[MatrxMT] |
<Bracket> why even, i don't see any benefits |
15:15 |
[MatrxMT] |
<Blockhead256> so you can leave to the main menu without quitting the game if you get stuck |
15:15 |
|
SFENCE joined #luanti |
15:17 |
Helenah |
Why disable closing a formspec? Doesn't it need to close at some point? Or do you mean preventing the player from just escaping it without actually running through its options? That's beneficial and something I wanted, the idea is different players will start at different points in the world depending on what attributes they apply to their |
15:17 |
Helenah |
character. |
15:18 |
[MatrxMT] |
<Blockhead256> disabled from the PLAYER being able to close it - the server will decide when to do it instead |
15:18 |
Helenah |
I'm trying to make an MMORPG, infact, I might just have this as a game instead of a mod now because it's getting pretty forceful but then I suppose I could provide a configuration option for server admins on whether they want players to be forced to play as a race and class or not. |
15:19 |
[MatrxMT] |
<Bracket> whats a morg |
15:19 |
[MatrxMT] |
<Blockhead256> a morgue is where they keep dead people |
15:19 |
[MatrxMT] |
<Bracket> mmorpg* |
15:19 |
[MatrxMT] |
<Blockhead256> (use a search engine) |
15:19 |
|
tibtoblezob joined #luanti |
15:20 |
[MatrxMT] |
<Bracket> bruh why am i so stupid sometimes |
15:20 |
[MatrxMT] |
<Blockhead256> I'm guessing autocorrect did that |
15:20 |
Helenah |
For me, it makes no sense to have an MMORPG where a player can opt out of being a member of a race or class, but then I've heard some server admin wanting to implement that choice into their own server, I suppose for him, it makes sense because that server didn't start as an MMORPG and he wants to keep things fair. |
15:21 |
[MatrxMT] |
<Blockhead256> It's easier to code for fewer possibilities |
15:21 |
Helenah |
Yeah |
15:22 |
Helenah |
It's going to be an API, that's my intention so it makes sense to open up as many possibilities as possible. |
15:22 |
[MatrxMT] |
<Blockhead256> you could write an MMORPG game, tossing existing games aside, or you could write a mod to add MMORPG elements to an existing game(s) |
15:22 |
[MatrxMT] |
<Blockhead256> McMMO (for the proprietary game) would be an example of the latter |
15:23 |
Helenah |
It's currently a mod, it went from a game to a mod. |
15:23 |
[MatrxMT] |
<Blockhead256> well, mcMMO is probably most like runescape of all MMOs.. so grindy |
15:23 |
[MatrxMT] |
<Blockhead256> no races, just skilling up when you repeat actions and sometimes gaining new benefits |
15:24 |
Helenah |
Oh yeah, played runescape and remember all that, this has races and classes, register_race() and register_class() |
15:24 |
[MatrxMT] |
<Blockhead256> game to a mod is not the typical way around, interesting |
15:24 |
Helenah |
You can define the level scaling, etc, etc, etc, base stats, you name it. |
15:24 |
[MatrxMT] |
<Blockhead256> I hope you're not just stretching yourself trying to please more peopl |
15:25 |
Helenah |
This isn't about pleasing, I just think Luanti deserves a proper MMORPG engine. |
15:26 |
[MatrxMT] |
<Blockhead256> thing is, when I think of MMOs, I think of custom engines |
15:27 |
[MatrxMT] |
<Blockhead256> minecraft MMOs are the exception rather than the rule. I'm not up with how custom those are, but they would surely be made of many plugins per server |
15:30 |
Helenah |
Yes, I mean, I have shortfalls, I can do MMORPG style music, I can write code, where I think I'll fall short is when it comes to graphics design for items, nodes, etc, that's where I think I'll fall short, as an API, people will be able to expand their luanti based MMORPG all they want and as much as they like, adding what they feel they can add, |
15:30 |
Helenah |
whether it be new items, new nodes, new races, classes, spells, potions, you name it. |
15:30 |
Helenah |
New levels... and new XP definitions, etc, new armour. |
15:31 |
Helenah |
It will allow for a system of modularity as an API too in that people will have freedom to define how MMORPG works on their own server. |
15:32 |
Helenah |
Like, I'm thinking anything I implement, there should be some alternatives, like if I implement a feature, there should be an option to disable it or define it. |
15:32 |
[MatrxMT] |
<Blockhead256> modularity |
15:33 |
Helenah |
Yes, it will be a mod that uses mods created by others, I might make a basic mod to go with it myself, to demonstrate it. |
15:34 |
|
SFENCE joined #luanti |
15:37 |
Helenah |
It may actually attract more to luanti, I spoke to some players of MMORPGs, who play the likes of guildwars and runescape, they think it's an excellient idea, the idea of a sandbox where you build and create and explore that has incorporated into it an MMORPG. |
15:40 |
[MatrxMT] |
<Blockhead256> come to think of it, a lot of MMOs have separate character selection and creation screens. Those would be what is presented after logging into the Luanti server |
15:40 |
Helenah |
I think Blizzard wanted to implement little sandbox type guild houses into WoW, but they must've gone back on that idea a long time ago because when I messed with their test features around all that, it was like "Cast this spell, right now, you can dump a guild house down with your cursor", but in a finite world like WoW where most areas are |
15:40 |
Helenah |
populated, would that have been sustainable? :D At least with Luanti, a community can define their own world. |
15:40 |
Helenah |
Yes, I got that code working. |
15:41 |
[MatrxMT] |
<Blockhead256> doesn't that conflict somehow with your initial question today? |
15:41 |
Helenah |
You define races and classes, when you log in, these defined races will show into a scrollbox, selecting one, a set of classes which you can play as that race will show up into another scrollbox, you can from a dropdown box select gender, upon clicking Create, you are teleported to the starting area for that particular race, I did not implement a |
15:41 |
Helenah |
creation bit for skins though. |
15:42 |
Helenah |
Not sure, what do you mean? I just felt it was janky to spawn in one place only to spawn into the other, but if that's the only solution, that's the only solution, right? |
15:42 |
[MatrxMT] |
<Blockhead256> oh I see, it's in formspecs and those can be closed, except in 5.12 |
15:43 |
[MatrxMT] |
<Blockhead256> I was thinking you could attach the player to an immobile object and show them the real character as an entity in front of them while they customiseit |
15:44 |
Helenah |
I mean, that's definitely doable, I've seen UIs in luanti like that. |
15:45 |
Helenah |
Along those lines, I was thinking two days ago that if I was to implement something like that, I'd have per-race skins so that a human looks like a human, a dwarf looks like a dwarf and so on and so forth, and of course when using register_race(), the developer will be able to define skins available for race. |
15:47 |
Helenah |
When using register_race(), it kind of looks like register_node(), etc, in that you pass into it a name for your race, and a structure, or as lua calls it, a table, this table contains all the different attributes. |
15:47 |
[MatrxMT] |
<Blockhead256> have you seen https://forum.luanti.org/viewtopic.php?t=28251 ? |
15:50 |
[MatrxMT] |
<Bracket> register_racisim |
15:51 |
MTDiscord |
<wsor4035> counter proposal register_ban |
15:52 |
|
mrkubax10 joined #luanti |
15:57 |
Helenah |
Oh wow, I had not seen that... that's cool! |
15:59 |
Helenah |
Bracket: It has the terminology "racial" |
16:00 |
|
SFENCE joined #luanti |
16:02 |
[MatrxMT] |
<repetitivestrain> Hey, this is the skins mod from which mcl_skins descends |
16:05 |
|
mrkubax10 joined #luanti |
16:10 |
[MatrxMT] |
<repetitivestrain> Is it also impossible for Lua mapgens to provide heightmaps of their own |
16:11 |
|
SFENCE joined #luanti |
16:11 |
|
shinbet joined #luanti |
16:12 |
|
mrkubax10 joined #luanti |
16:57 |
Helenah |
I wonder how feasible different armour types would be, for example, cloth, mail, plate and leather... |
16:59 |
Helenah |
It would be nice if different classes would wear different materials from each other, for example, a druid being only able to wear leather and cloth, a warrior being only able to wear mail and plate. |
17:07 |
|
fluxionary joined #luanti |
17:18 |
|
lhofhansl joined #luanti |
17:29 |
|
orwell96 joined #luanti |
17:31 |
[MatrxMT] |
<Blockhead256> never seen it be the cast that plate classes can't wear lower classes of armour like cloth |
17:31 |
[MatrxMT] |
<Blockhead256> *the case |
17:32 |
[MatrxMT] |
<Blockhead256> anyway, not particularly hard, just use a custom field for it and check the armour class against the player's proficiencies |
17:32 |
[MatrxMT] |
<Blockhead256> when trying to equip |
17:37 |
MinetestBot |
[git] lhofhansl -> luanti-org/luanti: Use MapBlock::copyTo to fill MeshMakeData fcbf05f https://github.com/luanti-org/luanti/commit/fcbf05fc3030dbf5519f2ba748c89604a669a3a6 (2025-06-27T17:36:33Z) |
17:49 |
|
gregon joined #luanti |
18:35 |
|
gregon left #luanti |
18:39 |
|
ineva joined #luanti |
18:44 |
Helenah |
One thing that just came to mind is, I need to incorporate some way in which... via my API, developers can say use the armour, weapons, etc of other mods, applying things like classifications (cloth, leather, etc) to them, etc. |
20:08 |
|
lhofhansl joined #luanti |
20:18 |
|
Talkless joined #luanti |
20:25 |
pgimeno |
is it possible nowadays to make conveyor belts that can transport players? |
20:36 |
MTDiscord |
<jordan4ibanez> Yes |
20:37 |
|
bwarden joined #luanti |
20:40 |
Helenah |
pgimeno: Yes, a server I have played on (LinuxForks) used a conveyor belt within a train station, it seems if I stood on it, it would move me. |
20:41 |
Helenah |
Like you could use conveyor belts as one of those band type escalators, not sure if you've seen those, at least in the UK, it's stair escalators which are common, but I had once seen a band type one. :) |
20:51 |
pgimeno |
how is that done? set_physics_override perhaps? |
20:52 |
sfan5 |
the other way I can think of is attachments |
20:52 |
pgimeno |
I actually don't see how set_physics_override can help, if there's no possibility to set a force acting continuously on the player, but maybe I've missed something |
20:53 |
MTDiscord |
<jordan4ibanez> You can add velocity, or you could attach, or you could moveto in increments which would trap them |
20:53 |
MTDiscord |
<jordan4ibanez> add velocity is how I send you flying in tnt |
20:53 |
pgimeno |
add velocity how? |
20:54 |
MTDiscord |
<jordan4ibanez> player:add_velocity(vector.new(1,2,3)) |
20:54 |
pgimeno |
ahh thanks |
20:54 |
MTDiscord |
<jordan4ibanez> You're welcome. You might want to make a little ledge in the conveyer so the player cannot auto step over it |
20:55 |
pgimeno |
so that could also be used for, say, a water current that doesn't allow the player to swim upstream, right? |
20:55 |
pgimeno |
tombraider-like |
21:04 |
MTDiscord |
<jordan4ibanez> Yes, but you are at the mercy of the server step and if the player is making contact with the ground |
21:04 |
pgimeno |
yeah I was wondering about the server step too |
21:06 |
MTDiscord |
<luatic> your biggest enemy in luanti is not the dungeon master as commonly believed: it is the server step |
21:07 |
|
tibtoblezob joined #luanti |
21:37 |
Helenah |
I was just thinking, MMORPGs tend to have items with stats, that's fine, it makes sense for how an MMORPG works, but their style is fixed, what if... there are armors along with their stats that can be made, but you have the freedom to define how it looks... I know in WoW, you get something called transmogerification, or however it's spelled where |
21:37 |
Helenah |
you could for example have "Red Leather Vest", it would be a red leather vest, literally have the attribute "leather" applied to it, and also a red design, with transmogerification, you can say apply the design of another piece to this item. I don't like that though, it's janky, it would still be called "Red Leather Vest", just it would look like |
21:37 |
Helenah |
another item in-game, but hey, this is not WoW, it's Luanti, and I'm coding an MMORPG engine mod for it, so I could come up with a nicer solution, just need to work out how to go about such. |
21:41 |
Helenah |
I have an idea, what if players could somehow stat their armour, so they'll make a piece of armour, then they would stat it, for example, applying to it 3 stamina or whatever, I know in WoW, you have things such as armour kits where if you apply them to a piece of armour, it ups the armour stat on the piece, and there are enchantments which can be |
21:41 |
Helenah |
applied to the armour to change other stats, for example, the spirit stat or the agility stat or whatever, hmm, of course I don't want to copy WoW, but I am looking into other MMORPGs for ideas, seeing how they go about things, seeing how I could do these things better. |
21:46 |
Helenah |
With Luanti being more about freedom than an MMORPG is, in that it's a sandbox, you create items, you craft things, you build structures, you create towns and cities, and it's all blocks in a world, it's very dynamic and flexible, I'm thinking an MMORPG engine for it should try to be as dynamic and flexible as possible, allowing many freedoms as |
21:46 |
Helenah |
possible, that means I believe players should have some control over the definition of their armour, their items, weapons, staffs, swords, you name it, I don't think it should be as simple as kill a mob, look some armour, it has a load of base stats and you may be able to up those stats a bit, and that's all there is to it, it could be a bit too |
21:46 |
Helenah |
rigid for an engine like Luanti, also, perhaps when it comes to Luanti, armour shouldn't be dropped by mobs, simply crafted. |
21:52 |
Helenah |
Sorry, for my monologue, what do you guys think of the idea of trainer NPCs? I like that idea, I don't think players should simply have spells, skills, etc as they level up, there could be Race Trainers, Class Trainers, and trainers for different skills. You'd go to a trainer, you pay the trainer in return for knowing new spells, abilities, having |
21:52 |
Helenah |
new skills. I was thinking of a function like "register_npc()" where you would register an NPC, giving it a name, defining what type of NPC it is, NPC types could have corresponding formspecs and functionality. I just want to hear opinions from developers, there could be limitations I'm not aware of or that didn't come to mind, some idea of mine |
21:52 |
Helenah |
could be unfeasible. |
21:59 |
|
SFENCE joined #luanti |
22:02 |
|
Kimapr_ joined #luanti |
22:02 |
|
SFENCE joined #luanti |
22:19 |
|
diceLibrarian joined #luanti |
22:24 |
Helenah |
celeron55: Is there any issue with me calling a project "LuantiRPG"? Originally, it was called "Luanti RPG", in code, it was called "luanti_rpg", it seems the channel name "#luanti-rpg" looks better than "#luanti_rpg" but clashes with your project channel namespace, plus you have channels like "#luanti-dev", I am of course not trying to seem like |
22:24 |
Helenah |
my project is something to do with the Luanti development team, anyway, I have decided to rename the project to "LuantiRPG" (Note there is no space now), I hope it is fine that I create the channel "#LuantiRPG". |
22:25 |
Helenah |
I mean, I thought of naming my project like this because the name of the project is self-descriptive, it's a Luanti RPG engine. |
22:26 |
|
diceLibrarian2 joined #luanti |
22:30 |
|
diceLibrarian2 joined #luanti |
22:31 |
|
SFENCE joined #luanti |
22:33 |
|
panwolfram joined #luanti |
22:42 |
MTDiscord |
<the4spaceconstants2181> not all luanti games have a dungeon master what were they on about |
22:44 |
MTDiscord |
<jordan4ibanez> He was joking around about the fact that your biggest enemy is not the enemy in the game, it's getting your mods/game running in the engine. The dungeon master used to be part of the actual engine. This was a reference to this |
22:44 |
MTDiscord |
<the4spaceconstants2181> oh ok |
22:44 |
MTDiscord |
<jordan4ibanez> We are old peoples |
23:05 |
|
Eragon joined #luanti |
23:16 |
|
sec^nd joined #luanti |
23:16 |
|
MTDiscord joined #luanti |
23:20 |
|
FileX joined #luanti |
23:22 |
|
Helenah joined #luanti |
23:31 |
|
orwell96 joined #luanti |
23:32 |
Helenah |
orwell96: Long time, no chat! :D |
23:32 |
Helenah |
How are things going? :) |
23:45 |
|
MTDiscord1 joined #luanti |
23:59 |
|
kamdard_ joined #luanti |