00:00 <+nemo2> systems have more and more RAM - probably mattered back when we were trying to support really wimpy specs 00:00 <@heinrich5991> eeeee: collision trees or sth? 00:00 <@heinrich5991> like you have one big square 00:00 <+nemo2> heinrich5991: hm? all collision is pixel based ☺ 00:00 <+eeeee> agree, generally better to spend time adding new features for 95% of your users than making optimizations for the remaining 5% 00:01 <@heinrich5991> which splits into four more squares if the collision isn't the same over the whole square 00:01 <+nemo2> heinrich5991: oh. no 00:01 <+nemo2> heinrich5991: warmux experimented with that kind of model 00:01 <+nemo2> they never did get it to work properly w/ a fully destructible pixel world 00:01 <@heinrich5991> mhh 00:01 <@heinrich5991> okay 00:01 <+nemo2> don't see much benefit in it tbh 00:02 <+eeeee> heinrich5991: i see how that supports efficient point collision tests, but do you know how to do the line segment collision thing that tw needs? 00:02 <@heinrich5991> isn't that easily possible as well? 00:02 <@heinrich5991> you check the squares the line goes through 00:03 <@heinrich5991> which is better than the current: check after 1 "game-distance" 00:03 <+eeeee> yeah but how fast is it when your tree is dense 00:04 <+nemo2> https://hg.hedgewars.org/hedgewars/file/tip/hedgewars/uCollisions.pas here's all the collision tests btw 00:04 <+nemo2> they are maskable by terrain type 00:04 <+nemo2> mostly used to pass through hogs and objects 00:04 <+nemo2> but occasionally other things 00:05 <+eeeee> uh tfw i just now realized you're coding in pascal.. haven't seen any pascal codez in a long time 00:06 <+nemo2> eeeee: Rust is on the todo πŸ˜‰ 00:07 <+eeeee> cool 00:07 <+nemo2> it's a pretty C-like pascal. no OOP 00:07 <+eeeee> why though? 00:07 <+nemo2> why rust? 00:07 <+eeeee> yeah 00:07 <+nemo2> ton of reasons 00:07 <+nemo2> freepascal has had many compiler bugs over time. optimises poorly, has no llvm support. 00:08 <+eeeee> well i mean, C+ kind of works fine for teeworlds for example 00:08 <+nemo2> we constantly get people complaining about syntax. I have relatively little sympathy for folks who can't figure out that mapping but it is a minor issue 00:08 <+nemo2> rust though would free us from our occasional fails on things like failure to initialise or bad pointer math 00:08 <+eeeee> we're even migrating from C+ to C++ now 00:08 <+nemo2> wait. I thought that was a typo 00:08 <+nemo2> "C+" is what exactly 00:09 <+eeeee> haha, C+ is when your code isn't using stl or most modern C++ features but still isn't C either 00:09 <+nemo2> eeeee: https://hg.hedgewars.org/hedgewars/file/tip/gameServer2/src BTW 00:09 <+nemo2> ah 00:09 <+nemo2> never seen that as a term before 00:10 <+nemo2> eeeee: buuut, yeah, I wouldn't wish C++ on anyone 00:10 <+nemo2> I understand if you're already using it tho 00:10 <+eeeee> biggest advantage of c++ is that many people know it. i think our community would've been even smaller if we used rust 00:11 <+nemo2> how many active devs do you have? 00:11 <+eeeee> idk like 1.5 or so 00:11 <+nemo2> lol 00:11 <+nemo2> yeah. I'm not gonna worry too much about that TBH 00:11 <+nemo2> rust has a decent community and I think any dev worth their salt can pick it up ok 00:12 <+eeeee> fstd: are thou worth your salt? 00:13 <+nemo2> eeeee: doubt community could get much smaller than 1.5 πŸ˜‰ 00:13 <+eeeee> vanilla community did 00:14 <+nemo2> well. even w/ pascal we still have like 4 people still touching engine 00:14 <+nemo2> so I think we'll be fine 00:15 <+nemo2> hm. correction 5 00:16 <+Learath2> I think on the most active periods of last year we even had 3 people working on code \o/ 00:18 <+nemo2> eeeee: not to mention that most of the remaining devs are fans of rust anyway sooo 00:18 <+nemo2> transition will never happen w/o that anyway 00:39 <@heinrich5991> eeeee: https://github.com/heinrich5991/libtw2 00:39 <@heinrich5991> wrt rust ;) 00:40 <+nemo2> cool ☺ 00:41 <+nemo2> eeeee: see. you'd still have one dev πŸ˜ƒ 00:41 <@heinrich5991> it has a MVP server :) 00:41 <@heinrich5991> you can walk around 00:42 <@heinrich5991> eeeee: the kind of things that happen with c++ but not with rust btw: https://github.com/ddnet/ddnet/issues/946 00:43 <+eeeee> true but i'd rather have more devs in community than easy concurrency :P 00:43 <+eeeee> most tw servers are not massively multiplayer anyway, work just fine with 1 thread 00:44 <@heinrich5991> :) 00:44 <+nemo2> we had a lot of memory problems w/ haskell in past when server had a lot of activity 00:44 <+eeeee> i'd probably feel more in favor of rust if i still cared about running 128 player blocker servers 00:45 <@heinrich5991> nemo2: memory problems with haskell? sounds wrong :P 00:45 <+nemo2> heinrich5991: uhhhh 00:45 <+nemo2> heinrich5991: seriously? ☺ 00:46 <@heinrich5991> oh, as in: out of memory? 00:46 <+nemo2> yes 00:46 <@heinrich5991> ah 00:46 <+nemo2> gigabytes worth 00:46 <@heinrich5991> I wondered how you'd get segfaults with haskell ^^ 00:46 <+nemo2> haha 00:46 <+nemo2> heinrich5991: anyway. I really am skeptical that C++ would draw more devs than Rust ☺ 00:46 <+nemo2> personally I avoid C++ like the plague nowdays 00:47 <@heinrich5991> ask Learath2, fstd for their opinion about rust :) 00:47 * fstd fetches some WD40 just in case 00:47 <+fstd> also have to sleep :( nite 00:47 <+eeeee> and speaking of langs, i wish someone did rewrite gamecore in lua 00:49 <+nemo2> heinrich5991: what's their opinion of haskell? ☺ 00:50 <@heinrich5991> it's a fine language 00:50 <@heinrich5991> why do you ask? :) 00:51 <+nemo2> heinrich5991: dunno. just wondering if dislike of rust extended 00:51 <+nemo2> there's similarities 00:51 <@heinrich5991> not really rust extended :) 00:52 <@heinrich5991> IMO 00:52 <@heinrich5991> different goals 00:52 <+nemo2> I mean 00:53 <+nemo2> if their dislike of rust extended to haskell 00:53 <+nemo2> due to similar features 00:53 <@heinrich5991> ohhh 00:53 <@heinrich5991> *their* opinion on haskell 00:53 <@heinrich5991> dunno 00:54 <@heinrich5991> probably sth like "some academic language" 00:54 <@heinrich5991> if I had to guess 02:21 <+Learath2> aha, memory problems with haskell, KNEW it not way a functional language works as well as heinrich5991 promised :D 02:22 <@heinrich5991> memory problems as in "too much memory used" 02:22 <+Learath2> s/not/no/ 02:22 <@heinrich5991> (just to clarify) 02:40 <+ddnet-discord> @HMH can you explain the `sqlstr::FuzzyString` function to me 02:40 <+ddnet-discord> ? 02:43 <+nemo2> https://stackoverflow.com/questions/7768536/space-leaks-in-haskell 02:44 <+nemo2> https://news.ycombinator.com/item?id=10263964 02:44 <+nemo2> heinrich5991: rust doesn't do that kinda thing 02:45 <@heinrich5991> space leaks? no 02:46 <@heinrich5991> nemo2: up for a little ddrace? P 02:46 <@heinrich5991> :P 02:48 <+nemo2> heinrich5991: kid bedtime 02:48 <@heinrich5991> k 02:49 <+nemo2> should have asked any time in last couple of hours 02:49 <+nemo2> heinrich5991: think I screwed up hedgewars release ☹ 02:49 <+nemo2> feeling pretty sad about that 02:49 <@heinrich5991> why? 02:49 <+nemo2> heinrich5991: see last 2 commits in channel 02:49 <+nemo2> think I did something dumb 02:50 <+nemo2> heinrich5991: I'd added basic script hashing. was intended to catch screwups on part of people writing scripts and not distributing 'em to all players 02:50 <+nemo2> but also to make life slightly harder for naughty people "augmenting" their scripts 02:50 <+nemo2> oddly enough. there are people who write lua cheats but can't be bothered to rebuild their engine to mask them 02:50 <@heinrich5991> oh, so you don't verify other people's physics? 02:51 <+nemo2> heinrich5991: well it is deterministic lockstep 02:51 <+nemo2> heinrich5991: the cheats were informational 02:51 <@heinrich5991> ah :) 02:51 <+nemo2> one of the things I didn't get around to doing was changing highlander to only deal out weapons on start of that player's turn 02:51 <+nemo2> that would have helped a little 02:52 <+nemo2> heinrich5991: anyway. I think I used an uninitialised RNG ☹ 02:52 <+nemo2> heinrich5991: the screwed up script preview is bad on its own 02:52 <+nemo2> but if I did that, gotta rerelease since desyncs will just happen 02:59 <@heinrich5991> nemo2: uninitialized PRNG should just be initialized with a fixed seed 02:59 <@heinrich5991> at least that's how I've usually seen it in the C stdlib 03:01 <+eeeee> turbo pascal used fixed seed as well i think ^^ 03:19 <+ddnet-discord> @HMH whats the problem with fake entities in maps for example Intercepter 03:26 <+ddnet-discord> what do you mean, fake entities? 03:28 <+ddnet-discord> @Konsti ? 03:34 <@heinrich5991> deen: would you be against preloading hsts for ddnet.tw? 03:36 <@heinrich5991> also: if I may, I'd like to add Content-Security-Policy: block-all-mixed-content (or Content-Security-Policy: upgrade-insecure-requests), which blocks all non-https scripts, images, etc. (or upgrades them to https) 03:41 <+eeeee> and also X-Frame-Options, Referrer-Policy, X-DNS-Prefetch-Control, X-XSS-Protection, X-Download-Options, and X-Content-Type-Options while you're at it? :D 03:43 <@heinrich5991> what are these? ^^ 03:44 <@heinrich5991> eeeee: what's the time in your timezone? 03:44 <+eeeee> attempts to plug various holes in web 03:44 <+eeeee> 18:44 03:50 <+eeeee> e.g. X-Frame-Options is for the following case: imagine someone knows you have admin on ddnet forum and they want to make you ban fstd there. what attacker can do is lure you to some innocious website (say, freeclientteeworlds.com) and once you visit that site they open an iframe at forum.ddnet.tw/ban/fstd location but render it transparent and also render an opaque "download free client teeworlds no sms or 03:50 <+eeeee> registration" button right in the same place as "ban fstd" button in the iframe 03:50 <@heinrich5991> ah 03:50 <+eeeee> so called "click jacking" 03:50 <@heinrich5991> so you can prevent iframing your page 03:50 <+eeeee> yea 03:51 <+ddnet-discord> @heinrich5991 Fake entities are what the name says, it looks like a block/kill/freeze/whatever in entities but its just a fake 03:52 <+ddnet-discord> how does that work? 03:52 <+ddnet-discord> anyway 03:52 <+ddnet-discord> I guess you can imagine yourself why that is undesirable πŸ˜ƒ 03:52 <+ddnet-discord> No 03:52 <+ddnet-discord> I used it for design 03:52 <+ddnet-discord> Looks better 03:52 <+ddnet-discord> In entities 03:52 <+ddnet-discord> entities aren't for design πŸ˜ƒ 03:53 <+ddnet-discord> entities aren't for design πŸ™‚ 03:53 <+eeeee> this iframe h4x got popular after web coders learned to protect against CSRF 03:53 <@heinrich5991> I see 03:53 <+ddnet-discord> Ofc they are cuz i allways play with entities :feelsbadman: 03:53 <+ddnet-discord> @heinrich5991 give me mod password i will clean funvoters and trols 03:53 <+ddnet-discord> there is no single mod password 03:53 <+ddnet-discord> what ya mean 03:54 <+ddnet-discord> @Roco quo4on7A 03:54 <+ddnet-discord> @Konsti then design the main map in a way that satisfies you and play without entities 03:54 <+ddnet-discord> heinrich go channel 3 03:54 <+ddnet-discord> channel for 2 03:54 <+ddnet-discord> not right now 03:54 <+ddnet-discord> going to sleep 03:54 <+ddnet-discord> why 03:54 <+ddnet-discord> y 03:54 <+ddnet-discord> just some letters for the mod pw 03:54 <+ddnet-discord> so? 03:55 <+ddnet-discord> there is no single mod pw 03:55 <+ddnet-discord> was fΓΌr single pw? 03:55 <+ddnet-discord> hat jeder ein eigenes? 03:55 <+ddnet-discord> yes 03:55 <+ddnet-discord> and I don't have one, as it stands πŸ™‚ 03:55 <+ddnet-discord> y 03:55 <+ddnet-discord> @heinrich5991 stop that xD, playing with design is shit, also my own ones. 03:55 <+ddnet-discord> And i dont use fake entities for cheating, just for make things looking cool and hide some secrets 03:55 <+ddnet-discord> so give me admin pw 03:55 <+ddnet-discord> I don't have any pw for the servers 03:56 <+ddnet-discord> @Konsti well no 03:56 <+ddnet-discord> But access to masterservers? 03:56 <+ddnet-discord> Well yes 03:56 <+ddnet-discord> I showed testers before release 03:56 <+ddnet-discord> @Konsti don't even bother, that's the final answer 03:56 <+ddnet-discord> They didnt have problems 03:56 <+ddnet-discord> great, I'll talk to the testers if you want πŸ™‚ 03:56 <+ddnet-discord> @Roco I don't have access to the game servers 03:57 <+ddnet-discord> Its released more than 4 month and no one died yet :feelsamazingman: 03:57 <+ddnet-discord> so what, I don't care 03:57 <+ddnet-discord> OK end discussion :ddnet_icon: 03:57 <+ddnet-discord> πŸ™‚ 03:57 <+ddnet-discord> :banhammer: 08:52 <+ddnet-discord> @heinrich5991 no problem with hsts. if you can make sure all pictures still work, sure 08:53 <+ddnet-discord> nemo2: we have some kind of android version, but no one bothered to port it to sdl2 yet unfortunately 09:17 * fstd disapproves of the 'ban fstd button' technology 09:39 <@heinrich5991> fstd: 'ban fstd button'? 09:43 <+fstd> i know a couple people who'd happily adopt that new internet standard 09:43 <+fstd> we could sell them ban fstd button as a service 14:30 <+nemo2> heinrich5991: yeeeeah... unc0rr made his on PRNG long ago 14:30 <+nemo2> heinrich5991: I have no idea why 14:30 <+nemo2> heinrich5991: it's kinda nice to see the moving parts 14:30 <+nemo2> thankfully is not for encryption 14:30 <+nemo2> maybe freepascal didn't have a good RNG 11 years ago? 20:23 <+eeeee> don't need a completely new standard for the ban fstd button, could just add another flag to the widely adopted rfc3514