06:17 < bridge> [freenode] ok, I posted that fucking fairness post in the forum, in general discussions. 06:17 < bridge> [freenode] sorry if that's the wrong place for it. :P 12:22 < bridge> [teeworlds] that's the right place :) 15:17 < day> jewZeus: not bad, but your chiller server review forgot to mention the most vital site seeing attraction, the ultimate noob slayer -HS- Machine! 16:26 < day> jewzeus: your proposal violates the unwriten rule of teeworlds game design: as little rng as possible. 16:27 < day> players spawning with unknown/ for the player untrackable amounts of hp would imho fall into that category. Then again you don't know how much hp a player at any given time has anyways so maybe not :? 17:06 < bridge> [freenode] well, this is just a proposal of an idea of something that might be a useful step to try in terms of balancing, it's not intended to be 'the ultimate perfect solution', just the justification for a first step towards a solution, and a direction to step in 17:07 < bridge> [freenode] the "hide how much your hp has changed" thing, that was a last minute idea and one that I haven't thought through as much as the rest of it 17:07 < bridge> [teeworlds] i do not think that fairness is the issue of people not playing vanilla 17:08 < bridge> [freenode] when I've been thinking about this, I've been thinking back to playing "thief: The dark project", because when you changed the game's difficulty it would have your health icons in the same place but more or fewer of them depending on the difficulty, sort of stuff 17:08 < bridge> [freenode] I think it was actually 10 shield/heart things for the basic difficulty there too, almost like everybody finds that an intuitive number 17:09 < bridge> [freenode] ChillerDragon, yes exactly? this whole thing is about fairness in vanilla, not mods 17:09 < bridge> [teeworlds] vanilla is rather easy compared to gametypes 17:10 < bridge> [teeworlds] playing vanilla, not winning at vanilla 17:13 < bridge> [teeworlds] i can not think of any mod that helps noobs to fight pros 17:13 < bridge> [teeworlds] > "My ideal use-case of this, even trying to break it, would be to be able to set up a lan party with my kids and some adult friends all playing" 17:13 < bridge> [teeworlds] 17:13 < bridge> [teeworlds] this is possible in vailla 17:14 < bridge> [teeworlds] just spin up a lan party and play with a bunch of noobs no need to change the mechanics 17:14 < bridge> [teeworlds] skilled players should get more kills. And not tactically suicide to then collect hp and rush the flag with a op amount of hp and armor. 17:15 < bridge> [teeworlds] noobs should die fast and not struggle a long slow death while their 20/20 protection slowly shrinks 17:26 < bridge> [teeworlds] To me its just a Matter of active people 17:28 < bridge> [teeworlds] The less the players the less its fair, as more people play at the same time the more they will gather in “categorized” groups 17:29 < bridge> [freenode] ChillerDragon the point is to give both the kids and the adults a serious fighting chance, because I'm sure you've observed and probably nerfed yourself down too 17:29 < bridge> [freenode] the point is, the game has to be *fun for everybody* 17:29 < bridge> [teeworlds] Now with just one full server per day its obvious that both noobs and pros will want to play cause its the only one active.. and the crying starts 17:30 < bridge> [freenode] eh, if it were a balanced game, there would be more vanilla servers 17:31 < bridge> [freenode] *populated vanilla servers 17:32 < bridge> [freenode] please don't try to tell me that in a 1v1 where one player is getting 10 kills at a streak and the other flat out isn't, that there can't be some kind of balancing put in so that both people actually want to keep playing for a bit because it's challenging but also actually fun for both 17:32 < bridge> [freenode] the point is to do this kind of balancing intervention as little as possible 17:32 < bridge> [freenode] leave it as vanilla as possible 17:33 < bridge> [freenode] but actually balance it so that it stops this ragequit/borequit stuff for noobs or pros 17:37 < bridge> [freenode] I understand that the intent is to leave this as a side scrolling FPS as much as possible, and FPS's don't classically do this, but the speed at which some players because of their skill with the rocket jumps and the grappling shit, is faster than the weapons can actually shoot at them, other than the laser, which has a limited range and can't actually hit them by the time they are aimed at with human reaction speeds 17:38 < bridge> [freenode] as a result, much of the more intense fighting in the game at higher levels seem to consist of high velocity speculative grenade launchings, which new players are simply unequipped to participate in and need a way to weather while they learn to navigate 17:39 < bridge> [freenode] if they catch on fast? the mechanic stops helping them fast 17:40 < bridge> [freenode] even if people try to abuse this system, eg, advanced player kills an oponent and then commits suicide, that still robs their inventory and their time to get it and gives the noob a chance against them next time 17:41 < bridge> [freenode] I don't think the way to do this is 'every kill adjust every players hp in rank', but rather, only for advanced players on streaks of kills, or noobs on streaks of deaths 17:42 < bridge> [freenode] so yeah a pro could theoretically kill themselves 20 times and miss the first 1/2-2/3 of the game, to get a full 15/15 and do some special rocket jump, type thing 19:26 < bridge> [teeworlds] i dont think teeworlds vanilla should be the type of game that allows for a equal fight between adults and children 19:27 < bridge> [teeworlds] if you don't want your kids to cry then just play worse thats how to do it and how it has always been done on board games 19:30 < bridge> [teeworlds] you are new right JewZeus? I do not want to keep talking against you :/ 19:30 < bridge> [teeworlds] 19:30 < bridge> [teeworlds] Nice that you joined us and care about the game. I consider my self a conservative person and I would strongly fight against any change in teeworlds hehe. 19:35 < bridge> [teeworlds] Omg can we please get the old chat system :/ 19:36 < bridge> [teeworlds] Back in the days grepping logs for errors that show up in the chat was easy nowerdays they are clientside only 19:36 < bridge> [teeworlds] https://cdn.discordapp.com/attachments/490150878934990850/676496717977223172/unknown.png 19:37 < bridge> [teeworlds] Half server leaves the game because (Error sending data) and the looks is like https://external-content.duckduckgo.com/iu/?u=https%3A%2F%2Fstatic01.nyt.com%2Fimages%2F2016%2F08%2F05%2Fus%2F05onfire1_xp%2F05onfire1_xp-articleLarge-v2.jpg%3Fquality%3D75%26auto%3Dwebp%26disable%3Dupscale&f=1&nofb=1 19:37 < bridge> [teeworlds] logs not looks 😄 20:29 < rand> child/adult is an example to illustrate newbie/pro 21:03 < bridge> [teeworlds] ye ikr 22:16 < bridge> [freenode] ChillerDragon, the point is to do this as minimally as possible, but some kind of measure like this clearly needs to exist, that whole ragequit/borequit thing isn't just kids vs adults or noobs vs pro, I don't think it's rocket science to say 'some matchups are just uneven and need some kind of intervention, ideally as small as possible, to make the game even enough for both to play" 22:18 < bridge> [freenode] the more I think about this, the more I think there should be a 'balancing threshold' ie 'you have to do a kill streak of x many kills' (or maybe even 'x many y times' type thing) as a minimum threshold to turn anything on, and then it should increment with the smallest steps possible that it can be effective with 22:19 < bridge> [freenode] like the server specifies 5 as the minimum threshold, that means the player has to get 5 kills in a streak without getting killed to have one increment of this, ie, lose 1 heart of total hp 22:19 < bridge> [teeworlds] Ye I get the idea 22:20 < bridge> [freenode] this doesn't seem unreasonable, I have certainly been killed 5 times in a row in a 1 on 1, and quit in frustration, because what the fuck is there for me to do in the game besides die at that point? 22:20 < bridge> [freenode] and I've also done that to other players and watched them quit too 22:20 < bridge> [teeworlds] But I agree with @Sonix balance should come with bigger amount of players and skill groups 22:20 < bridge> [freenode] that's the anthropic form of balancing 22:20 < Dune> when there were more servers it was still newcomers getting rekt until they quit the game (or switch to more casual game modes) 22:20 < bridge> [freenode] that already exists but is insufficient especially since so many matches are so small and so skill-disparate 22:21 < bridge> [teeworlds] I would say we currently have 2 skill groups and it works okayish 22:21 < bridge> [freenode] eh which part works? 22:21 < Dune> I agree with JewZeus sentiment but I don't find the proposed changes pretty / simple 22:21 < bridge> [freenode] what is being done that I'm not aware of 22:21 < bridge> [freenode] petty? lol this is going to bite my ass as much as anybody's 22:21 < bridge> [teeworlds] Most pros play on their servers and public servers are noobs 22:21 < bridge> [freenode] this isn't a "beef me up", I'd predict to be playing at 8 hearts most of the time on it 22:22 < bridge> [teeworlds] But pros also occasionally rip noobs that’s true 22:22 < Dune> unfortunately this is an issue that plagues old games with no matchmaking, and is not specific to teeworlds :/ 22:22 < bridge> [teeworlds] Ye but the playerbase is too small for matchmaking :/ 22:22 < bridge> [freenode] yeah this is an attempt at matchmaking in terms of skill to difficulty of opponent 22:22 < bridge> [freenode] based on score 22:22 < bridge> [freenode] in-game data shit 22:22 < bridge> [freenode] no accounts, none of that 22:23 < Dune> not enough vanilla players for matchmaking unfortunately 22:23 < bridge> [freenode] that's why this is my proposal rather than matchmaking :P 22:23 < bridge> [freenode] "oh I can maybe get 5 people on a good day to play when I want them to" 22:24 < bridge> [freenode] accounting for the fact, 2 of my own kids "you can play THIS game if you like" sort of "lets take a break from other games today" arm twisting, + their friends if I'm lucky 22:24 < bridge> [freenode] fortunately my kids like and are pretty competent at this, my daughter especially likes ddrace :P 22:24 < bridge> [freenode] this is a GOOD game 22:25 < bridge> [teeworlds] Wait you have kids? And you play tw with them? 22:25 < bridge> [freenode] I don't want to change that 22:25 < bridge> [freenode] yep 22:25 < bridge> [teeworlds] That’s nice o.0 22:25 < bridge> [freenode] it's a good game, I'll say it as many times as I need to 22:25 < bridge> [freenode] change as little as possible 22:25 < bridge> [freenode] but I'm serious about that 'adults vs kids' lan party as a literal case 22:25 < bridge> [freenode] "make this rock for birthday parties" 22:26 < bridge> [freenode] ideally even "make a version that runs on pis 22:26 < bridge> [teeworlds] Pls invite me thanks 😄 22:26 < bridge> [teeworlds] Tw runs fine on pi 22:26 < bridge> [freenode] you've played against them, they've been on your server :D 22:26 < bridge> [freenode] eh tw SERVER runs fine on a pi 22:26 < bridge> [freenode] but not a playable client 22:26 < bridge> [teeworlds] Oh 22:26 < bridge> [freenode] not that I've gotten running 22:26 < bridge> [teeworlds] Isn’t pi 4 dual 4K 4core nasa rig? 22:27 < bridge> [freenode] yeah, I have pi 3's, lol 22:27 < bridge> [freenode] it can technically start the client, and get like 1 frame per second 22:27 < bridge> [teeworlds] Idk I need hilarious strong hardware to have acceptable teeworlds feeling 22:27 < bridge> [freenode] it seems simple enough that a 1.4 ghz quad core should be fine 22:28 < bridge> [teeworlds] What is your ingame name btw? 22:28 < bridge> [freenode] eh most recently "god of butts" :D 22:28 < bridge> [teeworlds] Oh your still in the Name searching Phase? 22:28 < bridge> [teeworlds] It took me almost a year I think 😄 22:28 < bridge> [freenode] eh I have a rotation of trolly names (like this one too) 22:28 * bridge [freenode] nails y'all with HIS hands like lightning 22:29 < bridge> [teeworlds] I recommend sticking with one so people won’t forget who you are 22:29 < bridge> [teeworlds] It improves social interaction 22:29 < bridge> [freenode] I don't change often, but "god of butts" was a more kid-friendly name than 'painus', so I'm sticking with that change 22:30 < bridge> [teeworlds] Can I ask how old you are? 🙂 22:33 < bridge> [teeworlds] I am Painis! 22:34 < bridge> [freenode] can someone pls plot a graph of irc actvity since the bridge was activated :D 22:34 < bridge> [teeworlds] Teeworlds is in my opinion not multithreaded enough to make use of multiple cores. At least the serversode code is completely single threaded, the main stuff I have seen so far. 22:35 < bridge> [freenode] yea the good old multithread topic 22:35 < bridge> [freenode] every tw source i touch gets unstable and crashes weirdley 22:36 < bridge> [freenode] i do not want to think about how it would be when there were more threads 22:36 < bridge> [freenode] but for sure it is a good future proof idea since the hardware seems to go the more cores way rather than more single core power 22:37 < bridge> [freenode] but maybe rather rewrite tw in rust then so its less likley we break everything :D 22:37 < bridge> [freenode] im sure @heinrich5991 would love to rewrite tw in rust hehe 22:38 < bridge> [teeworlds] that would be interesting. 22:38 < bridge> [freenode] i saw a basic functional 0.6 tw server by heinrich once 22:38 < bridge> [freenode] written in rust but it had not all features yet 22:38 < bridge> [teeworlds] Yeah, be basic concept of multithreading serverside is: "don't fucking block the main thread, never period." 22:39 < bridge> [freenode] could help against dos 22:39 < bridge> [freenode] iirc there were some multithreading patches in the block ddos war that seemed to be effective 22:40 < bridge> [teeworlds] I think teeworlds might need to use "unsafe rust". I'd really love to learn rust soon :D 22:40 < bridge> [freenode] it probably never will happen 22:41 < bridge> [freenode] i mean replacing decades of C/C++ code is crazy 22:41 < bridge> [teeworlds] https://github.com/heinrich5991/libtw2 22:41 < bridge> [teeworlds] I guess compared to other languages go and rust are the emerging languages to have great tooling. 22:41 < bridge> [freenode] ye we all know famous libtw2 22:41 < bridge> [teeworlds] poc 0.6 server in there 22:41 < bridge> [freenode] oh there it is 22:42 < bridge> [teeworlds] syntax looks as cryptic as c++ 22:42 < bridge> [freenode] i hardly see any projects written in rust 22:42 < bridge> [freenode] sometimes go 22:42 < bridge> [teeworlds] at least it has generics 22:42 < bridge> [freenode] i have the feeling heinrich is the only person on planet who uses rust 22:42 < bridge> [teeworlds] x) 22:42 < bridge> [teeworlds] I know one highly capabke person that also loves rust. 22:43 < bridge> [teeworlds] ripgrep is also written in rust 22:43 < bridge> [teeworlds] firefox has important rust components 22:43 < bridge> [teeworlds] the security aspect is great 22:43 < bridge> [freenode] ye 22:43 < bridge> [freenode] i guess idk baut rust but i thought its stable af 22:43 < bridge> [freenode] like c without segfaults 22:43 < bridge> [freenode] or c++ 22:43 < bridge> [teeworlds] perfect language for os development and microcontroller development 22:44 < bridge> [freenode] i used all kinds of grep but never ripgrep 22:45 < bridge> [teeworlds] there is ssl stuff rewritten in rust that has seemingly better performance than c/c++ implementation. 22:45 < bridge> [teeworlds] the ripgrep is also a much faster grep 😉 22:46 < bridge> [teeworlds] https://blog.burntsushi.net/ripgrep/ 22:46 < bridge> [teeworlds] cool blog post about performance 22:46 < bridge> [teeworlds] kinda sad that one does not see many job opportunities for rust or go. 22:46 < bridge> [freenode] is that the only reason to go through the struggle of changing the tool? 22:46 < bridge> [freenode] i used egrep and pcreegeprep for better regex 22:47 < bridge> [teeworlds] performance is a good reason 22:47 < bridge> [freenode] but speed never seemed to be a bottleneck for me 22:47 < bridge> [teeworlds] if it is a bottleneck :D 22:47 < bridge> [teeworlds] like parsing terrabytes of log files? 22:47 < bridge> [teeworlds] rg also respects .gitignore etc. 22:48 < bridge> [freenode] i was about to write that 22:48 < bridge> [freenode] could be seen as feature 22:48 < bridge> [teeworlds] do you know any great beginner books in rust? or is the "necronomicon" good enough? 22:48 < bridge> [teeworlds] for rust 22:48 < bridge> [freenode] but if you dont know or forget about that it can be very annoying when you cant find stuff listed in the gitignore 22:49 < bridge> [teeworlds] `alias rg=rg -u` 22:49 < bridge> [teeworlds] now it only disregards binaries 22:49 < bridge> [freenode] imagine grepping for the definition of some tw network code which is generated and ignored 22:50 < bridge> [teeworlds] imagine using vs code search instead of grep x) 22:50 < bridge> [freenode] ok i would switch if it supports multiline search 22:50 < bridge> [freenode] does rg 'foo.*\n.*bar' work? 22:51 < bridge> [teeworlds] rg -U for multiline search IIRC 22:51 < bridge> [teeworlds] but why multiline? 😛 22:51 < bridge> [freenode] twlogs 22:51 < bridge> [freenode] all the time i search something in tw i need multiline search 22:51 < bridge> [freenode] for example earlier today i had a username and a disconnect error message 22:52 < bridge> [freenode] thats split up in two lines 22:52 < bridge> [freenode] all the stuff is always split 22:53 < bridge> [freenode] r u telling me that im the only person who always searches strings split over multiple lines? 22:53 < bridge> [teeworlds] I've never done it before, I think 22:54 < bridge> [freenode] lol 22:54 < bridge> [freenode] i have to do it once a month min 22:55 < bridge> [freenode] either i go with some -C context heads and tails and double grepping crap or i use pcregrep 22:59 < bridge> [freenode] how differenct are the arguments? 22:59 < bridge> [freenode] re learning stuff is annoying 23:00 < bridge> [teeworlds] rg -C also for context 23:01 < bridge> [freenode] ye just realized it seems to be kinda similar 23:01 < bridge> [freenode] doesnt look to bad i might switch 23:01 < bridge> [freenode] but grep is pre installed everywhere huh? 23:01 < bridge> [teeworlds] yes 23:01 < bridge> [freenode] thats a big pro 23:02 < minus> is grep even coreutils? 23:02 < minus> bridges were a mistake, everyone should just connect to quakenet like a proper gamer 23:02 < bridge> [freenode] i can not remember installing grep anywhere 23:02 < bridge> [teeworlds] it's not like you'll unlearn grep 23:02 < bridge> [freenode] quakenet doesnt work for me 23:02 < bridge> [freenode] but when i pick rg as preference i will end up using it in my scripts and then my scripts will break on other systems 23:03 < bridge> [teeworlds] I'd use grep for scripts 23:03 < bridge> [freenode] yes 23:03 < bridge> [freenode] thats what i mean 23:03 < bridge> [teeworlds] rg is for interactive use 23:03 < bridge> [freenode] i do not want to distinguish interactive and script 23:03 < bridge> [freenode] because my scripts start interactive 23:03 < bridge> [teeworlds] then don't use rg I guess 23:04 < bridge> [freenode] idk 23:04 < bridge> [freenode] i will keep it in mind it will probably replace my pcregrep 23:05 < bridge> [freenode] so minus you would say quakenet irc is more gamer than discord? xd 23:05 < minus> retro gamer lol 23:06 <@heinrich5991> hi from qnet :) 23:06 < bridge> [freenode] i wish i could join you 23:06 < minus> it's actually better because it needs less ram :^) 23:06 < bridge> [freenode] the place where the cool kids hang :D 23:07 < bridge> [freenode] well im sure there are more bloated irc clients than cordless discord client 23:07 < bridge> [freenode] for example irc over browser is a bloat 23:08 < minus> certainly 23:08 < minus> mine's just a terminal tho 23:09 < bridge> [freenode] cordless is also just terminal 23:09 < minus> "nice" 23:09 < bridge> [freenode] ikr 23:09 < bridge> [freenode] or are u being sarcastic? :D 23:09 < bridge> [freenode] idk what those quotes mean 23:09 < minus> inofficially using some internal api? 23:09 < minus> yes 23:09 < bridge> [freenode] ye 23:09 < bridge> [freenode] probably borderline legal 23:10 < minus> so it's only a question of time until it gets fucked over 23:10 < bridge> [freenode] wait internal? 23:10 < bridge> [freenode] nah public api 23:10 < Dune> IRC lacks some modern features unfortunately. would gladly go js-free otherwise :p 23:10 < minus> oh? 23:10 < minus> didn't know discord had public apis 23:10 < bridge> [freenode] its opensource project that wraps around the public discord api 23:10 < minus> Dune: like what? 23:10 < bridge> [freenode] https://github.com/Bios-Marcel/cordless 23:11 < Dune> minus, formatting standards 23:11 < bridge> [freenode] one of the few go projects i know 23:11 < bridge> [freenode] no rust :p 23:11 < bridge> [teeworlds] WARNING: Third party clients are discouraged and against the Discord TOS. 23:11 < bridge> [teeworlds] from that repo 23:11 < bridge> [freenode] ye borderline legal 23:11 < bridge> [freenode] :D 23:11 < bridge> [teeworlds] not borderline legal 23:11 < Dune> well it's disallowed 23:11 < bridge> [teeworlds] but bannable by discord 23:12 < bridge> [teeworlds] legal is about being put into prison 23:12 < bridge> [freenode] hm 23:12 < bridge> [teeworlds] lol, codecoverage 13% 23:12 < bridge> [teeworlds] better than teeworlds 23:12 < minus> Dune: interesting; i haven't heard that complaint about irc before. fwiw it does have colors, italic, bold, underline 23:12 < bridge> [teeworlds] true xD 23:12 < bridge> [teeworlds] nobody but me writes tests :> 23:12 < bridge> [teeworlds] :< * 23:12 < bridge> [freenode] so cordless is even more gangster than irc cuz its agianst TOS 23:12 < Dune> minus, is that in the standard? TIL 23:12 < minus> i was more expecting things like image upload, etc 23:12 < bridge> [teeworlds] go test are ultra easy to write 23:13 < Dune> it lacks code formatting though 23:13 < minus> nah i don't think that's standardized, Dune 23:13 < bridge> [teeworlds] I dunno abouz C++ ._. 23:13 < Dune> out of convenience, the need for a bouncer and uploads yeah 23:13 < minus> ah yeah code snippets is something else 23:13 < bridge> [teeworlds] @jxsl13 look into the tests, not hard to write IMO 23:13 < bridge> [freenode] how would you code format in a terminal based program @Dune ? 23:13 < Dune> theoretically it also lacks UTF8 lol 23:13 < Dune> @ChillerDragon syntax coloring 23:14 < bridge> [freenode] ah 23:14 < minus> idk if the encoding for irc is standardized, i don't think so 23:14 < bridge> [teeworlds] In regard to testing tw feels like trying noot to shoot into your foot every time you change something. 23:14 < bridge> [teeworlds] -o 23:14 < Dune> yeah 23:14 < Dune> it'd be nice if the IRC standards evolved 23:14 < bridge> [teeworlds] that's why you try to add tests 23:15 < bridge> [teeworlds] modern software development needs modern tooling :D for test. 23:15 < bridge> [freenode] for me its hard to unit test chunks of tw becuase i usually include literally every file to get all my global vars interacting with each other :D 23:15 < bridge> [teeworlds] wdym @jxsl13 23:16 < bridge> [teeworlds] I think LLVM uses gtest 23:16 < bridge> [freenode] oh btw any suggestions how i get the new Config() stuff in IClient? 23:16 < Dune> heinrich5991, i think so yeah 23:16 < bridge> [teeworlds] I think around 2002 there was no such test driven development mwntality 23:16 < bridge> [teeworlds] mentality 23:16 < Dune> I still don't like it :p 23:16 < Dune> tests tend to lack flexibility 23:16 < Dune> you change your code, you break the tests 23:16 < Dune> meh 23:17 < bridge> [teeworlds] `Kernel()->RequestInterface()->Values()` 23:17 < bridge> [teeworlds] the same way you get it from anywhere, @ChillerDragon 23:17 < bridge> [freenode] in engine/client.h ? 23:17 < Dune> @heinrich5991 isn't that expensive btw 23:17 < bridge> [teeworlds] you do that once, on initialization 23:17 < bridge> [freenode] is it even initialized anywhere? 23:18 < bridge> [teeworlds] well, I think a proper testing of individual component should be done. Integration test might be hard if not impossible to realize properly. 23:18 < bridge> [teeworlds] ChillerDragon: src/engine/client.h is not a code file 23:18 < Dune> test-driven development is more than a few tests, jxsjsl13 23:18 < bridge> [teeworlds] it's an interface file 23:18 < bridge> [freenode] yes 23:18 < bridge> [teeworlds] you shouldn't put complex code there 23:18 < bridge> [freenode] and i need configs there 23:18 < bridge> [freenode] ddnet did 23:18 < bridge> [teeworlds] no, do it in src/engine/client/client.cpp 23:19 < bridge> [teeworlds] this is the wrong place 23:19 < bridge> [freenode] https://github.com/ddnet/ddnet/blob/master/src/engine/client.h#L81 23:19 < bridge> [teeworlds] I think rust also provides proper tooling for testing :0? 23:19 < bridge> [teeworlds] yes, it does 23:19 < bridge> [teeworlds] but you don't need it 23:19 < bridge> [teeworlds] gtest works. otherwise use some other testing framework 23:19 < bridge> [freenode] so you say that should be refactored? 23:19 < bridge> [freenode] the code looks good to me 23:19 < bridge> [teeworlds] infinite compile times already tell you your bugs :D? 23:20 < bridge> [teeworlds] you don't need a built-in testing framework in your language to do testing 23:20 < bridge> [teeworlds] is what I meant 23:20 < bridge> [teeworlds] ChillerDragon: that code looks *horrible* to me 23:20 < bridge> [teeworlds] yeah, I guss, but using external tools sucks imo. 23:20 < bridge> [teeworlds] why does that static accessor function return something different depending on some *global config variable* 23:21 < bridge> [teeworlds] @jxsl13 why? 23:21 < bridge> [teeworlds] external dependencies. 23:21 < bridge> [teeworlds] yes. gtest is stable 23:21 < bridge> [teeworlds] it doesn't have most of the downsides of external dependencies 23:21 < bridge> [freenode] could you please refactor that for me heinrich? <3 23:21 < bridge> [teeworlds] no 23:21 < bridge> [freenode] meh 23:22 < Dune> @heinrich5991 I saw you wrote parts of the backends, rhetorically, is a complete rust rewrite a good idea or are some parts shitty? 23:22 < bridge> [teeworlds] try using the double <3<3, Chiller 23:22 < bridge> [freenode] any hint on how i could refactor it? 23:22 <@heinrich5991> I would go for a gradual rewrite if I were trying to do it 23:22 < Dune> ofc, but is that a good idea even 23:22 < Dune> or does rust suck for some parts 23:22 <@heinrich5991> e.g. first rewrite some low-level horrendously unsafe parts in rust 23:23 < bridge> [teeworlds] rewriting the masterserver would make sense 23:23 <@heinrich5991> nah, http master server incoming™ 23:23 <@heinrich5991> some people would probably say that rust limits them too much 23:23 < bridge> [teeworlds] ha 23:23 <@heinrich5991> Dune: ^ 23:23 < bridge> [freenode] gradual adjective: moving, changing, or developing by fine or often imperceptible degrees 23:23 < bridge> [teeworlds] I think the browser protocol should be rewritten to tcp 23:23 < Dune> the http master server looks like a lot more work than I thought it'd be 23:23 < Dune> I'm surprised 23:23 < bridge> [freenode] monthly word teached by heinrich :D 23:23 < Dune> @jxsl13 that's garbage for latency 23:24 < Dune> that's what stops teeworlds from being properly implemented in a browser iirc? 23:24 <@heinrich5991> not really 23:24 < bridge> [freenode] is it stopped? 23:24 < Dune> @redix 23:24 <@heinrich5991> there's a websocket port of teeworlds by eeeee 23:24 < bridge> [freenode] werent there multiple fully functional browser clients already? 23:24 <@heinrich5991> you oculd also do teeworlds via webrtc 23:24 < Dune> I thought they had lag? 23:24 <@heinrich5991> not due to network 23:24 <@heinrich5991> it's udp (webrtc) 23:25 < Dune> oh ok 23:25 < bridge> [freenode] shouldnt webassembly be near native? 23:25 <@heinrich5991> I think within 2x of native, for most parts 23:25 < Dune> I think it's ~2 23:25 < Dune> yeah 23:25 < Dune> pretty good compared to anything else tho 23:26 < bridge> [teeworlds] Maybe gRPC 23:26 < Dune> what's that? 23:26 < bridge> [teeworlds] I'm not into that topic tho 23:26 < bridge> [freenode] and in which direction would your gradual rewrite go? @heinrich5991 23:26 < bridge> [teeworlds] stackoverflow suggested it being reasonably better than udp 23:26 <@heinrich5991> ChillerDragon: first some low-level stuff 23:27 <@heinrich5991> maybe network, maybe file parsing, etc. 23:27 < bridge> [freenode] what? 23:27 < bridge> [freenode] what are you talking about? 23:27 < bridge> [teeworlds] rust rewrite 23:27 < bridge> [freenode] ah 23:27 < bridge> [freenode] oh i mean moving the config out of IClient 23:28 < bridge> [teeworlds] please redesign VarInt x) 23:28 < bridge> [freenode] its a somewhat accute problem for me 23:28 < bridge> [freenode] is accute even a word? 23:28 < bridge> [freenode] xd 23:28 < Dune> acute is 23:28 < bridge> [teeworlds] *calls the doctor* 23:28 < bridge> [freenode] ah ye to many c 23:28 < bridge> [freenode] too 23:29 < bridge> [teeworlds] ._. I don't like the VarInt design! please discuss 23:29 <@heinrich5991> wdym? 23:29 < bridge> [teeworlds] it's a class without an internal state, basically functions 23:30 <@heinrich5991> oh that one, yea 23:30 < bridge> [teeworlds] basically forcing oop where no oop is needed 23:30 <@heinrich5991> probably left-over from the oop rewrite 23:30 < Dune> sounds like a large part of oop code 23:30 <@heinrich5991> also, it has buffer overflow problems 23:31 < bridge> [teeworlds] varint or do you mean Packer? 23:31 <@heinrich5991> varint, not packer 23:31 < bridge> [teeworlds] why that Oo? 23:31 < rand> Pack(0,1) 23:32 < rand> hello there 23:32 < bridge> [teeworlds] hey rand 23:33 < rand> I guess heinrich5991 would like some size parameter or end pointer to Pack/Unpack 23:33 <@heinrich5991> ah no, it seems it has been fixed 23:34 < bridge> [teeworlds] redix did that? 23:34 < bridge> [teeworlds] I guess 23:34 <@heinrich5991> gradual rewrite 23:34 <@heinrich5991> *ea6d380f7f1a7333db4470c60562b49827cfd13a 23:34 <@heinrich5991> wrong clipboard 23:34 < bridge> [teeworlds] ye, redix 23:37 < rand> oh, Pack calls look safe 23:38 < rand> wait, is UnPack safely used ? 23:38 < bridge> [teeworlds] +1 for rewriting in rust ^^ 23:40 < bridge> [teeworlds] ye, it assumes a max length of 5 bytes 23:40 < bridge> [teeworlds] and aborts 23:40 < bridge> [teeworlds] cannot soeak for every us case, tho. 23:40 < bridge> [freenode] redix but like client and server and stop maintaining the C++ version? 23:40 < bridge> [teeworlds] speak 23:41 < bridge> [teeworlds] some security critical stuff, leider ke masterserver, I'd goess 23:41 < bridge> [teeworlds] like 23:41 < bridge> [teeworlds] rip my fingers 23:41 < bridge> [freenode] are u on phone? 23:41 < bridge> [freenode] xd 23:41 < bridge> [teeworlds] si 23:41 < bridge> [freenode] beerlang autocomplete detected 23:41 < rand> this is confusing 23:42 < rand> because we don't know if you type 'si' or mistype 'no' 23:42 < bridge> [teeworlds] xD 23:42 < bridge> [teeworlds] a rust rewrite would be cool but a lot of work, so i doubt it will happen at all 😄 23:42 < bridge> [freenode] lol 23:42 < bridge> [teeworlds] I'd love to learn some rust :o 23:42 <@heinrich5991> rand: I'm willing to do partial rewrites in rust; but I think Oy spoke negatively about that, so I'm not really hyped 23:43 < bridge> [freenode] do you remember reasons? 23:43 < bridge> [teeworlds] only gradually as heinrich said 23:43 < bridge> [teeworlds] go rewrite. 23:43 < bridge> [freenode] like actually against rust or agianst the amount of work and duplicated source bases? 23:43 <@heinrich5991> probably boils down to 'it's not c++' 23:43 < bridge> [freenode] oh 23:43 <@heinrich5991> with partial rewrites you don't have duplicate sorces 23:43 < Learath2> A rust rewrite would also alienate the 5 or 6 developers left here, might need to consider that 23:43 < bridge> [teeworlds] base.c -> not c++ 23:43 < bridge> [freenode] hi Learath :) 23:44 <@heinrich5991> Learath2: maybe also get new ones ;) 23:44 < Dune> Yeah I don't think most codebase changes are worth it at this point 23:44 < rand> tw uses python, C, C++, lua 23:44 < bridge> [teeworlds] and a complete rewrite might be a hurdle for mod developers 23:44 < Dune> I'd say the energy is better spent writing features 23:45 <@heinrich5991> rust would probably make it easier to spend time writing features 23:45 < bridge> [teeworlds] game's feature comolete with mostly minor tweaks and bot stuff left? 23:45 <@heinrich5991> you have a built-in usable data structures, for example 23:45 < bridge> [teeworlds] pls be slices 23:46 < Learath2> wym built-in data structures? We aren't even allowed to use the C++ ones :P 23:46 < bridge> [teeworlds] and you have a usable package manager 😮 23:46 <@heinrich5991> slices exist in rust, but they're slightly different from go 23:46 < Dune> heinrich5991, surely that would be outweighted by the time spent learning a new language / how to debug pitfalls of said new language 23:46 < Dune> though I don't have anything against rust ;) 23:46 <@heinrich5991> rust is basically the language designed against pitfalls 23:46 <@heinrich5991> that is, if it compiles 23:46 < bridge> [teeworlds] slices != std::vector? 23:46 < bridge> [freenode] no need to debug or pitfall 23:46 < bridge> [freenode] ye 23:46 < bridge> [freenode] isnt that the reasom to switch to rust to avoid pitfalls and debugging 23:47 < bridge> [freenode] that could be seen as a pro for mod developers 23:47 < Dune> there are still plenty of reasons to fail 23:47 < bridge> [freenode] less instable mods 23:47 < bridge> [teeworlds] well, it does not stop the need to debug 23:47 <@heinrich5991> you also get easier multi-threading 23:47 < Dune> and you have to set up new dev environment etc. 23:47 < Dune> there's always a cost 23:47 <@heinrich5991> yes, there's a cost 23:47 < bridge> [freenode] a lot 23:47 < bridge> [freenode] especially in the beginning 23:47 <@heinrich5991> there's also the cost that new developers trying to get into teeworlds have right now 23:47 < bridge> [teeworlds] the build process is most likely less of a oain in the ass comoared to c++ :D? 23:48 < bridge> [freenode] switching to rust could be seen as a expensive investment in the future 23:48 <@heinrich5991> yes. 'cargo build' 23:48 <@heinrich5991> yes 23:48 < bridge> [teeworlds] no header files 23:49 < bridge> [teeworlds] infinite compile times. 23:49 <@heinrich5991> in the order of c++, I think 23:49 <@heinrich5991> a lot slower than go 23:49 < bridge> [teeworlds] Go is basically python in better, my current opinion 23:50 < bridge> [teeworlds] faster. better depends on the use case 😄 23:50 < bridge> [freenode] i hardly know anything about go but i would never compare it with python lol 23:50 < bridge> [teeworlds] sidetrack detected 23:50 < bridge> [teeworlds] Go has a scriotin language like workflow 23:50 < bridge> [teeworlds] scripting 23:50 < bridge> [teeworlds] as it compiles so fast 23:51 < bridge> [teeworlds] also go run 23:51 < bridge> [teeworlds] like interpreter 23:51 < bridge> [teeworlds] that is obviously one aspect of a scripting language. you see that there are others, I guess? ^^ 23:51 < bridge> [freenode] https://www.youtube.com/watch?v=k7oosn5HrKk 23:51 < Learath2> well, atleast I wouldn't be coding much if we do make a move to rust, I just never got used to coding in rust 23:51 < bridge> [freenode] 15 mins talk for hello world in go 23:51 < bridge> [freenode] best scripting language :D 23:52 < rand> jsxl13: don't you know about “tcc -run main.c” ? 23:52 < bridge> [teeworlds] no :( 23:53 < bridge> [freenode] oh tcc is nice 23:53 < bridge> [freenode] i used that back when i was in school on usb drive :D 23:53 < bridge> [teeworlds] chiller, well that talk makes go literally a scrioting language 23:53 < bridge> [freenode] no that talk shows how useless go is :D 23:53 < bridge> [teeworlds] is not :( 23:53 < bridge> [freenode] useless as scripting language 23:54 < bridge> [teeworlds] well, yeah in that regard maybe. 23:54 < bridge> [teeworlds] https://www.youtube.com/watch?v=bD5k0V08wRY 23:54 < bridge> [teeworlds] go run main.go 23:54 < bridge> [teeworlds] is what I meant 23:54 < bridge> [freenode] xxxxxxxxxxD 23:54 < bridge> [freenode] dont hate on bash heinrich 23:54 < bridge> [freenode] oh cmn u fucked me 23:55 < bridge> [teeworlds] also the deployment of gobis better than pythin :D 23:55 < bridge> [freenode] where did u get that hahaha 23:55 < bridge> [teeworlds] fat fingers 23:55 < bridge> [teeworlds] "hello world bash !youtube" 23:55 < bridge> [freenode] searched bash beginner ordered by length and views? 23:55 < bridge> [teeworlds] although I admit I didn't pick the first one 23:55 < bridge> [freenode] 55 clicks xd 23:55 < bridge> [teeworlds] https://www.youtube.com/watch?v=xv5_-rEmJ-E 23:55 < bridge> [teeworlds] that was the first one 23:55 < bridge> [teeworlds] 2nd tutorial, already got to hello world 😛 23:56 < bridge> [freenode] ur a big :troll: 23:56 < bridge> [freenode] no language can compete with bash 23:56 < bridge> [teeworlds] in regard to ripgrep the syntax is literally python regex 23:56 < bridge> [freenode] and in helloworld its beast 23:56 < bridge> [teeworlds] @jxsl13 you can have monolithic binaries for python, too 23:56 < bridge> [teeworlds] they're more annoying to do thought 23:56 < bridge> [teeworlds] cx_freeze 23:57 < bridge> [teeworlds] yeah, I already did use pyinstaller 23:57 < bridge> [teeworlds] eh, that's what I meant, maybe 23:57 < bridge> [freenode] why do ppl even use nano? 23:57 < bridge> [teeworlds] on windows 23:57 < bridge> [teeworlds] I used something like that to packa pyqt app 23:57 < bridge> [teeworlds] nit fun, but works 23:57 < bridge> [teeworlds] same also did pyqt 23:57 < bridge> [teeworlds] for some workflow automation 23:58 < bridge> [teeworlds] nano > vim 23:58 < bridge> [teeworlds] I'd love to have a parallel official rust project with hopefully lots of code comments. 23:59 < bridge> [teeworlds] that might slowly port some critical stuff, maybe 23:59 < bridge> [teeworlds] might get some rust devs interested in teeworlds 23:59 < bridge> [freenode] lol i tried '$ nano > vim' and it didnt end well :D