Time Nick Message 03:54 hare_hare_yukai imagine a parody called MeinKraft 03:54 hare_hare_yukai with germany and nazi memes 03:54 hare_hare_yukai that would be funny eh lissobone? 04:00 [MTMatrix] https://www.youtube.com/watch?v=-1yzoiUIGGs 04:01 hare_hare_yukai https://vndb.org/v7316 04:01 hare_hare_yukai https://vndb.org/v19616 04:49 hare_hare_yukai https://files.catbox.moe/y3y8vx.png 12:21 erle luatic did you file the bad apple thing as a bug? 13:29 MTDiscord no, but i may in about 2 days 13:53 erle luatic when enough dirt has accumulated? :D 14:10 MTDiscord erle: hehe 14:10 MTDiscord currently the memory doesn't like me (it segfaults) 14:11 MTDiscord will make it easier to report though, i suppose 14:14 erle luatic what do you mean 14:14 erle luatic have you tried using ubsan or asan 14:14 erle or tsan or msan 14:14 MTDiscord i haven't, but i will probably 14:15 MTDiscord is there something like a compiler line you could drop me with all the sanitizers enabled? :D 14:15 erle no, because that is a stupid thing to do 14:16 MTDiscord why? performance? 14:17 erle https://lists.llvm.org/pipermail/llvm-dev/2016-March/097144.html 14:18 erle luatic i suggest to read up on how the sanitizers work and you will probably figure it out yourself 14:19 erle it will also help you to interpret the output correctly 14:19 MTDiscord I have a feeling that sanitizers are implemented poorly 14:20 erle is your spidersense telling you that? 14:20 MTDiscord yes, it's tingling 14:20 MTDiscord like i imagine i could write an interpreter for C which checks for all of these with maybe a ~10x interpretation overhead 14:21 erle in interpreter for C, curious 14:21 erle C, the famously interpreted language 14:21 MTDiscord i've also seen detectable illegal behavior in zig and it doesn't make me choose between detecting some illegal behavior or detecting other illegal behavior 14:22 MTDiscord so this seems like a shortcoming so far and i'm not sure what induces it; i will have to read up on it 14:22 erle what's detectable illegal behaviour? 14:24 MTDiscord stuff that usually is just undefined behavior in C, but which in zig debug builds is well, detectable 14:24 MTDiscord such as accessing an inactive variant of a union 14:26 erle look just start with ubsan right? 14:27 MTDiscord ok 14:27 MTDiscord still i will look into how sanitizers work and whether it could be done better ;) 14:27 MTDiscord the "red zone" approach for example seems pretty rudimentary to me 14:27 erle how would you do it 14:29 MTDiscord i'd roughly attach metadata (such as array bounds) to pointers, and then do bounds checks; propagating the metadata may prove tricky however 14:31 erle is that a thing you actually plan to do or is it about as real as SSCSMs? :P 14:33 erle i should probably add “progress is not possible without SSCSMs” to my list of common noob utterings hehe :D 14:33 MTDiscord about as real as SSCSMs 14:33 lissobone I want to add an audiochat to minetest. 14:34 MTDiscord erle: it's imo pretty true, though; if we want to grow up to be a real game engine, we need a fully scriptable client, and that can only be achieved well with SSCSMs 14:34 erle lissobone use mumble + 3d position CSM ig 14:35 MTDiscord i considered writing snake in LÖVE and Minetest just to drive this point home, but after writing it in LÖVE in ~1h (mind you, i had not used LÖVE before), i had absolutely zero motivation to do it in Minetest too 14:36 erle try writing snake in svg 14:36 MTDiscord it would have been possible somewhat half-janky using HUDs / dynamic media / nodes / whatever, but it would've been much more work yet much more jank - simply strictly suboptimal for this simple purely clientside game! 14:36 MTDiscord erle: is svg turing-complete, or would i have to hardcode an obscene number of possible game states or abuse obscure features that are suspiciously useful for implement snake? 14:38 erle no idea 14:38 erle look at the source of this https://upload.wikimedia.org/wikipedia/commons/4/44/Balance_puzzle_SMIL.svg 14:39 erle or this lol https://upload.wikimedia.org/wikipedia/commons/4/4d/Subtraction_game_SMIL.svg 14:40 MTDiscord lol 14:40 erle or this https://upload.wikimedia.org/wikipedia/commons/9/9b/SMIL_missile_demo.svg 14:41 erle i think “we need client side scripting” is not necessarily web developer brainrot, but surely inspired by it :P 14:42 erle you can do a lot without turing-complete input languages 14:42 MTDiscord the rockets are not randomized... 14:43 MTDiscord erle: it's generally more work though 14:43 erle surprise, not taking the ”everything turing complete” escape hatch is work 14:43 erle compare websites that have CSS layout with websites that do layout in JS 14:43 erle i mean, the latter are slow on every computer 14:43 erle no amount of CPU is going to beat accidentally quadratic bullshit 14:43 MTDiscord yes, what should this work be made for? for security, it imo suffices to just (1) use a safe interpreter (write a simple scheme yourself if necessary); (2) validate all API calls very strictly 14:44 rubenwardy CSS layouting is done by a turing complete language 14:44 erle have you read the seven turrets of babel? 14:44 erle if not, read it 14:44 erle it's about turing complete *input languages* 14:44 rubenwardy also, CSS is turing complete 14:44 erle rubenwardy show and tell? 14:45 erle i saw that claim repeated, but i think it needs a turing complete user 14:45 MTDiscord i definitely wouldn't bet on CSS layouting being linear 14:45 MTDiscord (linear time) 14:45 MTDiscord it's also much more intransparent than if i write code myself 14:45 erle lol 14:45 erle as olialina explained in her essay, a lot of systems become more powerful with a turing complete user 14:46 MTDiscord i have to trust the CSS layouting algo to be decent, whereas if i write imperative code myself i can ensure my algo is decent 14:46 MTDiscord yeah, SSCSMs would give modders a lot of power 14:46 MTDiscord many of them, esp. the noobs, won't wield this properly, but that is not a reason to not give it to the experienced modders :) 14:46 erle lol 14:47 erle “surely i am pure and will not abuse this power, or write code that runs on my computer, but not on a slower one” 14:47 MTDiscord indeed i am renowned for being the perfect programmer; it is virtually impossible that i write suboptimal code /s 14:48 erle great, can you write my code too? 14:48 MTDiscord erle: if it's interesting enough, maybe 14:48 erle anyways, i have yet to see CSM code that is both very useful and would be sent by a server 14:48 MTDiscord part of the problem is that our CSM API is shit 14:48 erle i think lizzys server ticks thing is probably the only one i can remember 14:48 erle and that one can very simply be added to the client 14:49 MTDiscord as for "would be sent by a server": that's just for convenience so that we can continue our model of "you can just connect to servers and it works" 14:49 rubenwardy see https://github.com/minetest/minetest/issues/8057 14:49 erle luatic you know that it results in “you have to run this CSM or you are not allowed on this server” and then the CSM starts mining bitcoins or other room-heating activities 14:50 MTDiscord i wonder whether i would be able to write a safe lua interpreter 14:50 MTDiscord most probably not, but lua 5.1 is small enough that there's a tiny chance that it could work 14:50 erle the thing most often suggested is predicting movement client-side and i am pretty sure other engines just send like, a path to follow or so 14:50 MTDiscord erle: mining bitcoins is legit CSM behavior imo :) 14:50 erle which btw minetest could also do 14:50 celeron55 erle: just like websites do? wait, none of them do, of the ones you actually want to use 14:51 erle celeron55 pretty sure that ”displaying obnovious ads” is also a thing that heats up my computer and makes it slow. i can not watch youtube videos on youtube on the thing i am writing from, but i can watch them on invidious or download them using youtube-dl and use mplayer. 14:52 erle like, the computer is obviously fast enough to display videos, but the youtube bullshit makes it crawl to a halt 14:52 MTDiscord erle: The "engines" / "frameworks" (besides Minetest) I've used so far let you write client and server yourself. 14:54 MTDiscord The default "mode of operation" for most actual engines I've seen is "you build a client-side game". You can add a server to that later on if you wish. 14:54 erle is that all web stuff? 14:55 MTDiscord no, I'm mostly thinking Pygame, LÖVE here 14:55 celeron55 i still see it as a valid path in my mind to limit SSCSM into very small lua environments with very limited interfaces, only to allow doing stuff like vehicle specific physics and let's say custom 2D visuals or some such, which are then triggered by messages from the server 14:55 celeron55 i think everyone should consider this option 14:55 MTDiscord Looking at perhaps the closest thing to Minetest - Roblox, which also does servers and clients for you - they also have client side scripting. 14:55 erle celeron55 the thing is, if it is that limited, then i'm pretty sure there is nicer solution 14:56 MTDiscord (I don't know much about Roblox though. It's just that Roblox kids are a frequent occurrence on Lua forums now.) 14:56 celeron55 erle: the only way you can prove it is to design it yourself 14:56 MTDiscord erle: well, it isn't that limited; we don't know what people want or will want to do with Minetest 14:56 celeron55 erle: no other engine faces the same challenge as MT does. they all run game specific code on the client for these purposes 14:57 MTDiscord this ^ 14:57 erle i don't know everything about openRA but i am pretty sure they have a declarative format of “traits” that are specified in an engine-version 14:58 MTDiscord Minetest's "the client is a sockpuppet of the server except for hardcoded features" is pretty unique in the engine space, I think 14:58 celeron55 erle: i'm pretty sure if you make a game in openRA, you have to have a specific client build of it in order to play 14:59 erle yeah, like with minetest 14:59 erle not? 14:59 erle the client has to understand the specific traits 14:59 erle maybe i am wrong here, but i mean like “what kind of order can i give to this unit” 15:00 celeron55 if you make the traits flexible enough, you essentially end up with tiny lua scripts 15:00 celeron55 that is what i am proposing 15:00 celeron55 make traits that are definable as small scripts 15:00 MTDiscord here's another thing i wanted to run on the client: character animations; they're much jankier if serverside 15:00 celeron55 and send them as such over to the client 15:01 erle celeron55 the traits are more like “which hardcoded attack behaviour is used” or “can this unit teleport” or “which cursor is displayed when hovering over a valid target” https://docs.openra.net/en/release/traits/ 15:01 MTDiscord CSMs may also allow offloading rendering work to the client. Consider your last mod, erle: It shouldn't be the server's business to render the text to a texture. Ideally the server could just send the text, and tell the client to render it. With a SSCSM, that would be possible. 15:01 erle it turns out that the traits in openra are amazingly flexible, as in that some mods are just a bunch of yaml files and assets and totally change gameplay 15:02 celeron55 totally change gameplay? i don't believe that 15:02 erle like, i implemented a submarine for example once 15:02 rubenwardy SSCSM combined with a new GUI/rendering API would allow for a wide range of possibiliities for GUIs 15:02 celeron55 that's not a total change in gameplay 15:02 erle by making an “activate” action and changing the activated state 15:02 erle so that the submarine is underwater (different texture) 15:02 celeron55 if you make a first person shooter or a visual novel with 3d animations in OpenRA, then i believe you 15:02 erle and in that state it has different detection capabilities and is invisible 15:03 celeron55 or at least a platformer 15:03 erle i concede and assert the opposite, a non-total change in gameplay 15:03 MTDiscord first person shooters are a good example; they need much custom logic, and you want instant responses (client prediction) because everything tends to go fast in these 15:03 erle yeah so if i go along with your point, why is there no main menu CSM tab? 15:03 erle i mean that would at least be a starting point 15:03 erle to expose it to more users 15:04 MTDiscord last time i tried to make a weapon mod i was fed up by even basically trivial things such as achieving a square HUD image with a scale relative to screensize being impossible 15:04 erle also CSMs on CDB when lol 15:04 rubenwardy because we want sscsm not csm 15:04 erle rubenwardy ah, the users do not own their computronium! 15:04 erle :D 15:04 celeron55 i propose deleting the current CSM and beginning from scratch, to only allow SSCSM in small environments 15:05 erle i do not see how SSCSM without an intermediate step of first-class CSMs can be viable, unless the wisdom of “how to design a CSM API well” falls from the sky somehow 15:05 celeron55 i can design all the apis, that's a total non-issue 8) but i won't implement it 15:06 erle celeron55 so why not expand the CSM API with downloadable CSMs from CDB and see what is actually used? 15:06 erle like “movement prediction CSM” or so 15:06 celeron55 because i think the current CSM API has a too large attack surface to be used for SSCSM without process level sandboxing 15:06 MTDiscord that's turee 15:06 MTDiscord throw it out the window 15:06 celeron55 i want to either get rid of it, or to have process level sandboxing 15:06 celeron55 only two options 15:06 erle i mean web browsers do it 15:07 erle stuff like