06:04 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1182548228147773450/2023-12-08_13-03-18.mp4?ex=658518dc&is=6572a3dc&hm=ccc3884aeb701aebecee982dbce4f0fb2e937630fef66e79d0fcf5c05db60b54& 06:19 < bridge> <_voxeldoesart> good luck paying that runtime fee btw 06:20 < bridge> he works for a game company 06:20 < bridge> im sure they have it covered lol 06:20 < bridge> <_voxeldoesart> fair LOL 06:23 < bridge> 2022 doesn't have it anymore. it starts with 2023 06:24 < bridge> My first cube with texture in OpenGL :owo: 06:24 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1182553246460555344/image.png?ex=65851d88&is=6572a888&hm=6bbd0a6ef078588d242d8ca6b2f4ab58dc65f7a063dad42f62a0548ae219d102& 06:25 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1182553411904868372/f370f4c68786282b40467c5fe914c0f6.png?ex=65851db0&is=6572a8b0&hm=752cee6e94bf7275733161128c9178efd8e8ff4e54f1e446755b9db65bfd8d4d& 06:44 < bridge> https://github.com/Inateblig/LearnOpenGL/blob/master/screenshots/6.0_HelloCoordinateSystem.png 06:44 < bridge> aa it didn't embed 06:44 < bridge> https://raw.githubusercontent.com/Inateblig/LearnOpenGL/master/screenshots/6.0_HelloCoordinateSystem.png 06:45 < bridge> :owo: 09:11 < bridge> @ryozuki FFR. 09:11 < bridge> 09:11 < bridge> Another useless nobody cares question from me, to you. To remind everyone in this chat that Rust exists: 09:11 < bridge> Do you always implement `Debug`? 09:11 < bridge> 09:11 < bridge> It's kinda funny, once you use it somewhere it almost spreads like a virus to other types xdd 09:11 < bridge> @ryozuki FFR. 09:11 < bridge> 09:11 < bridge> Another useless, nobody cares, question from me, to you. To remind everyone in this chat that Rust exists: 09:11 < bridge> Do you always implement `Debug`? 09:11 < bridge> 09:11 < bridge> It's kinda funny, once you use it somewhere it almost spreads like a virus to other types xdd 09:23 < bridge> i do yes 09:23 < bridge> xd 10:14 < bridge> @_voxeldoesart u can see member list 10:14 < bridge> tapping the arrow in channel name 10:15 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1182611303987163166/Screenshot_2023-12-08-10-14-59-685_com.discord.jpg?ex=6585539a&is=6572de9a&hm=25773cfe2a99c5c208b6b9e41092e58c8d38147426763dd51f02b40b6097e92e& 10:16 < bridge> it sucks though 10:16 < bridge> 🐴 10:17 < bridge> no horsing around 10:17 < bridge> horz 10:17 < bridge> horzing 10:17 < bridge> btw pc today 10:17 < bridge> epic gamer moment 10:17 < bridge> i completely forgot monitors existed 10:18 < bridge> oh yeah, those dark ages once existed 10:18 < bridge> the times before nerve gear 10:18 < bridge> im just gonna use some shit i find in my house idk 10:18 < bridge> crt :troll: 10:43 < bridge> niga 11:01 < bridge> @syrinok do you have ban perms 11:01 < bridge> Nope, but I can timeout 11:02 < bridge> give me this guys head on a stick thanks 11:02 < bridge> its the fifth or 6th time he said that 11:14 < bridge> https://bugzilla.mozilla.org/show_bug.cgi?id=1422637 11:14 < bridge> i get this bug 11:15 < bridge> and its super annoying 11:19 < bridge> rip 11:20 < bridge> > As far as I know YouTube videos are normalized in volume so that 79% is max volume. And for whatever reason YouTube sets the videos volume from time to time, just in case anyone changed it. So Firefox and pipewire are doing what they are supposed to do, while YouTube's questionable inner workings messes everything up. 11:20 < bridge> maybe its youtuber 11:20 < bridge> lmao 11:20 < bridge> maybe its youtube 11:32 < bridge> impressive how much slower the vulkan driver is on windows compiling vulkan pipelines 11:33 < bridge> 130ms vs 4ms 11:33 < bridge> using a shader cache 11:33 < bridge> 130ms vs 4ms 11:33 < bridge> using a pipe cache 11:34 < bridge> as far as i see the cache is also much bigger xd 11:34 < bridge> 11:34 < bridge> 5.6MB 11:39 < bridge> vs linux? 11:39 < bridge> @jupeyy_keks would u say windows purposely makes vulkan slower because they prefer dx12 adoption? 11:39 < bridge> they did that with opengl back in the days 11:39 < bridge> yes 11:39 < bridge> AMD gpu 11:40 < bridge> http://blog.wolfire.com/2010/01/DirectX-vs-OpenGL-revisited 11:40 < bridge> context is 2010 11:40 < bridge> i'd defs they dx has better interaction with dxgi 11:40 < bridge> http://blog.wolfire.com/2010/01/Why-you-should-use-OpenGL-and-not-DirectX 11:40 < bridge> > Microsoft initiated a fear, uncertainty, and doubt (FUD) campaign against OpenGL around the release of Windows Vista. In 2003, Microsoft left the OpenGL Architecture Review Board -- showing that they no longer had any interest in the future of OpenGL. Then in 2005, they gave presentations at SIGGRAPH (special interest group for graphics) and WinHEC (Windows Hardware Engineering Conference) giving the impression that Windows Vista would remove sup 11:40 < bridge> > 11:40 < bridge> > When Vista was released, it backpedaled on its OpenGL claims, allowing vendors to create fast installable client drivers (ICDs) that restore native OpenGL support. The OpenGL board sent out newsletters proving that OpenGL is still a first-class citizen, and that OpenGL performance on Vista was still at least as fast as Direct3D. Unfortunately for OpenGL, the damage had already been done -- public confidence in OpenGL was badly shaken. 11:41 < bridge> i'd defs they dx has better interaction with GDI 11:41 < bridge> windows is scum 11:41 < bridge> yeah opengl never had a chance in the past 11:41 < bridge> can u count 10 games that use opengl xD 11:41 < bridge> its sad 11:42 < bridge> > The launch strategies for Windows Vista and Windows 7 were both accompanied with an immense marketing push by Microsoft for DirectX, in which they showed 'before' and 'after' screenshots of the different DirectX versions. Many gamers now think that switching from DirectX 9 to DirectX 10 magically transforms graphics from stupidly dark to normal (as in the comparison above), or from Halo 1 to Crysis. Game journalists proved that there was no diffe 11:42 < bridge> > 11:42 < bridge> > While many games participate in Microsoft's marketing charade, more savvy graphics programmers like John Carmack refuse to be swept up in it. He put it this way, "Personally, I wouldn’t jump at something like DX10 right now. I would let things settle out a little bit and wait until there’s a really strong need for it." 11:42 < bridge> i can try vulkan to dx12 11:42 < bridge> but i assume in this case the linux driver is simply so much better 11:42 < bridge> 😼 11:42 < bridge> look at john carmack quote 11:42 < bridge> smart guy 11:43 < bridge> power of open source with open specifications 11:43 < bridge> im not installing windows ever anymore since with proton i have what i want 11:43 < bridge> mainly ffxiv xd 11:44 < bridge> i sometimes switch to windows just to remember how much everything sucks there 11:44 < bridge> :NekoEvil: 11:44 < bridge> 😭 11:45 < bridge> xdd 11:45 < bridge> :NekoEvil: 11:45 < bridge> just the thought of not knowing the code under the hood 11:45 < bridge> isnt it scary 11:45 < bridge> more over when its the entire os 11:45 < bridge> not just a app 11:46 < bridge> i mean, i dont know any linux code either 11:46 < bridge> Uhhh 11:46 < bridge> 😂 11:46 < bridge> Teeworlds? 11:46 < bridge> Teeworlds, ddnet, divinity 1, supertux kart, super tux world, dota (in past) 11:46 < bridge> yeah that's about it 11:46 < bridge> dunno more 11:47 < bridge> what is a super tux world 11:47 < bridge> i think u mean without the world 11:47 < bridge> super mario world 11:47 < bridge> super tux world 11:47 < bridge> 😼 11:47 < bridge> 😏 11:47 < bridge> https://github.com/SuperTux/supertux 11:47 < bridge> but yeah 11:47 < bridge> MINECRAFT 11:48 < bridge> also uses opengl xD 11:48 < bridge> supertux is full of like 13 year olds 11:48 < bridge> xd 11:48 < bridge> kinda funny 11:48 < bridge> opengl is so useless, but the most successful game ever uses it 11:48 < bridge> game older than them 11:48 < bridge> kinda ironic 11:49 < bridge> "As of version 1.17, Minecraft requires OpenGL 3.2 which was released in mid 2009." 11:49 < bridge> LOL 11:49 < bridge> good to know 11:50 < bridge> but u can inspect it and compile it from source 11:50 < bridge> even minecraft does not support opengl 2 anymore 11:51 < bridge> remove support 12:16 < bridge> now i push the windows usage in steam survey 12:16 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1182641965943234560/image.png?ex=65857029&is=6572fb29&hm=8ca3d678c28d447a38a183fce2eafd7e2856d0ada6c51c8ad4205e3fe43cfe0e& 12:17 < bridge> manipulate some stats 12:18 < bridge> lmao win11 is still behind win11 12:24 < bridge> lmao win11 is still behind win10 12:42 < bridge> is it posslible to draw.margin only on 1 side? 12:42 < bridge> i want it to be only on top only https://i.imgur.com/p2J4TQY.png 12:43 < bridge> Hsplittop? 12:43 < bridge> yea 12:43 < bridge> its 2 different parts 12:45 < bridge> Do it for both? 12:45 < bridge> What are you trying to do? 12:46 < bridge> im making UI for ddstats 12:46 < bridge> its suppose to looks like 12:46 < bridge> https://i.imgur.com/F9T36Je.png 12:46 < bridge> this 12:48 < bridge> Okay so what's the problem? 12:49 < bridge> while making margin for render tee (RT1) and RT2, its spliting with bottom part, so i want it to draw margin only on top side 12:50 < bridge> <_cus> Does anyone know how to remove the speed limit for downloading maps? 12:50 < bridge> isnt speed limit setted by game engine? 12:50 < bridge> i might be wrong 12:50 < ws-client> @_cus server or client side? udp tw map download or ddnet http download? 12:51 < bridge> <_cus> server side. idk 12:51 < ws-client> @stormaxd yea but its tw game engine so you can change it :) im not sure if its limited tbh 12:51 < ws-client> i wrote some docs on the map download 0.7 net code btw 12:51 < ws-client> https://chillerdragon.github.io/teeworlds-protocol/07/map_download.html 12:51 < bridge> fair enough 12:52 < ws-client> its basically the client asking for map packets and the server sending em i dont think there is much sleeping anywhere 12:52 < ws-client> its very similar in 0.6 12:53 < ws-client> and then ddnet also added the option to download from a http server 12:53 < ws-client> you can also host your own maps and inform clients about ur server 12:54 < bridge> so, is that even possible to make margin only for 1 part? not only HMargin or VMargin 12:54 < ws-client> https://github.com/ddnet/ddnet/blob/6a858287e9e9ab63a86e30274b8a43ea86a42955/src/engine/shared/config_variables.h#L109 12:55 < ws-client> @_cus also ``cl_map_download_low_speed_limit 0`` but not sure if that only applies to http download 12:55 < ws-client> yea pretty sure its http only 12:56 < ws-client> if you wanna go fast go with http 12:57 < ws-client> you need to serve the map with the checksum at the end 12:58 < ws-client> like they do it here https://maps.ddnet.org/ 13:13 < bridge> This feature is not enabled by default 13:13 < bridge> HTTPs download has to be programmatically be enabled here https://github.com/ddnet/ddnet/blob/master/src/engine/server/server.cpp#L1284-L1311 13:14 < bridge> do we have repository like ddnet-maps for Gores maps ? 13:15 < bridge> There might be some repositories with Gores maps out there, but nothing from KoG 13:15 < bridge> There might be some repositories with Gores maps out there, but nothing official from KoG 13:16 < bridge> no i'm looking for KoG's map repository and their votelist like what ddnet released on ddnet-maps 13:17 < bridge> No, not available 13:20 < bridge> ty 13:44 < bridge> how can i compile ddnet on windows using MSYS2 13:44 < bridge> https://www.msys2.org/ 13:44 < bridge> I'd suggest using visual studio instead 13:44 < bridge> (not visual studio code) 13:45 < bridge> vscode works great with mingw 13:45 < bridge> if u want to compile from cmd line, then it's similar to how you do it on linux 13:45 < bridge> just make sure to init the submodules etc. 13:46 < bridge> https://forum.ddnet.org/viewtopic.php?t=5765 this is the manual for visual studio 13:46 < bridge> I don't have one for msys2 13:46 < bridge> i wanna use vs code just as an code editor 13:46 < bridge> with vscode it should just work 13:46 < bridge> use the cmake extension and the rest should work magically 13:52 < bridge> we also have a vscode workspace: 13:52 < bridge> other\vscode\ddnet.code-workspace 13:52 < bridge> 13:52 < bridge> it suggests good extensions 13:52 < bridge> i installed c/c++ and cmake extentions. now how can i compile ? 13:53 < bridge> and rust 13:53 < bridge> wow 13:53 < bridge> just use Clion instead :gigachad: 13:53 < bridge> best IDE 13:53 < bridge> use WSL -> wine -> visual studio 13:54 < bridge> Install VS 4-5 times so it uses more space 13:54 < bridge> i saw a trailer on they're website, i prefer vscode 13:55 < bridge> roasted 13:55 < bridge> toasted 13:55 < bridge> 🍞 13:56 < bridge> hosted 13:56 < bridge> Since when ur pfp isn't vulkan :poggers2: 13:56 < bridge> 💻 13:56 < bridge> i tried smth own. but discord compression destroyed it :c 13:56 < bridge> show :0 13:56 < bridge> it's already there 13:56 < bridge> <- 13:56 < bridge> Anyway, just install msys2, launch the ucrt terminal, install the dependencies. I'd suggest `pacman -Syuu` then `pacman -S pactoys` then use `pacboy` to install the dependencies 13:57 < bridge> what's `pacboy`? 13:57 < bridge> @furo321 https://discord.com/channels/252358080522747904/293493549758939136/1182648438219878491 13:57 < bridge> It helps with the nasty package names in mingw 13:57 < bridge> sounds useful xD 13:57 < bridge> E.g. you can just do `pacboy -S cmake:x` 13:57 < bridge> even i to find the correct ones 13:57 < bridge> hate to* 13:58 < bridge> For the ucrt terminal you always want `:u` at the end and that's it no need to remember the triplet or google stuff 13:59 < bridge> i still generally find it over complicated 13:59 < bridge> is that the best they could come up with xd 14:00 < bridge> lets just add 2 terminals 14:00 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1182668142388990106/image.png?ex=6585888a&is=6573138a&hm=edd41cf71a2d79f56b7aa5485bdef8203bffb2d57405b53f73e9147f37036c22& 14:01 < bridge> so it's 100% clear what you want 14:01 < bridge> Idk why so many either. Just always use ucrt 14:02 < bridge> lets just add 200 terminals 14:02 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1182668142388990106/image.png?ex=6585888a&is=6573138a&hm=edd41cf71a2d79f56b7aa5485bdef8203bffb2d57405b53f73e9147f37036c22& 14:03 < bridge> from the ucrt shell 14:03 < bridge> `pacman -S base-devel mingw-w64-ucrt-x86_64-toolchain mingw-w64-ucrt-x86_64-cmake mingw-w64-ucrt-x86_64-curl mingw-w64-ucrt-x86_64-ffmpeg mingw-w64-ucrt-x86_64-freetype git mingw-w64-ucrt-x86_64-glew mingw-w64-ucrt-x86_64-glslang mingw- 14:03 < bridge> w64-ucrt-x86_64-libpng mingw-w64-ucrt-x86_64-opusfile mingw-w64-ucrt-x86_64-python3 mingw-w64-ucrt-x86_64-rust mingw-w64-ucrt-x86_64-SDL2 mingw-w64-ucrt-x86_64-spirv-tools mingw-w64-ucrt-x86_64-sqlite mingw-w64-ucrt-x86_64-vulkan-headers mingw-w64-ucrt-x86_64-vulkan-loader 14:03 < bridge> mingw-w64-ucrt-x86_64-wavpack mingw-w64-ucrt-x86_64-x264 --noconfirm` 14:03 < bridge> `git clone https://github.com/ddnet/ddnet` 14:03 < bridge> `cd ./ddnet` 14:03 < bridge> `cmake -B build -S .` 14:03 < bridge> `cmake --build build --config Release --parallel` 14:03 < bridge> ddnet will be in ddnet/build/DDNet.exe 14:04 < bridge> Well I do know why, but why install them all idk 😄 14:04 < bridge> why 14:04 < bridge> more nub friendly 14:04 < bridge> it literally isn't 14:04 < bridge> stupid idea 14:04 < bridge> Heinrich likes VS for some reason idk 14:04 < bridge> very weird 14:05 < bridge> yes i'd personally recommend using the more convoluted build strategy 14:05 < bridge> i used to like it to tbh 14:05 < bridge> 14:05 < bridge> but nowadays vscode is just as good 14:05 < bridge> and slimmer 14:05 < bridge> they are for different tasks nowadays 14:05 < bridge> I can open the project and have it work 14:05 < bridge> You liking it wouldn't surprise me, heinrich liking it does 14:05 < bridge> without much fiddling 14:05 < bridge> also, I have a tutorial for it 14:05 < bridge> which should answer all the questions 14:06 < bridge> well you still have dozens of GB of extra overhead when you install visual studio with the required workflows 14:06 < bridge> plus the added slog of vs itself 14:06 < bridge> when msys is small and lightweight in and of itself and is literally less work to create a working build 14:06 < bridge> doesn't make much sense 14:06 < bridge> with a nice installer 14:06 < bridge> the msys installer is good too 14:07 < bridge> I wouldn't know how to give complete step-by-step instructions for msys 14:07 < bridge> if you want to do them, please do 14:07 < bridge> i just did it 😃 14:07 < bridge> no, that's not step-by-step 14:07 < bridge> yes it is 14:07 < bridge> ok, where can I find it? 14:07 < bridge> find what 14:07 < bridge> the step-by-step instructions 14:07 < bridge> I apparently can't identify them 14:07 < bridge> can you link them to me? 14:07 < bridge> right here 14:07 < bridge> where is the ucrt shell? 14:08 < bridge> what is a shell 14:08 < bridge> what is ucrt? 14:08 < bridge> windows key -> "ucrt" first result 14:08 < bridge> opens bign for me 14:08 < bridge> opens bing for me 14:08 < bridge> weird 14:08 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1182669987429765200/image.png?ex=65858a41&is=65731541&hm=9ee3f82f881d8a50196dce921dd5e85eb1b5d254d012c67fd54f1bfa633bba52& 14:08 < bridge> ucrt is universal crt 14:08 < bridge> lmao now it escalates 14:08 < bridge> It could require an entire drive to itself and VS enjoyers wouldn't care. UX people only care about the UX. It ooks cool + it has one button to do what I want = is good produkt 14:08 < bridge> c runtime on all windows installs since win 8 14:08 < bridge> i am trying it 14:08 < bridge> godspeed 14:08 < bridge> i sympathize with both i just don't see how it's any better for this application 14:09 < bridge> @mpft what I mean is "this is by far not a step-by-step explanation. you didn't start on how we can install msys" 14:09 < bridge> not saying vs is bad 14:09 < bridge> if you want to write a tutorial, start with a clean windows VM, and record *all* the steps you do 14:09 < bridge> including the ones you deem obvious 14:09 < bridge> k do you want like super noob instructions or ones tailored to the guy who asked a question at a knowledge level i can assume my answer is adequate for 14:09 < bridge> people will not find them obvious 14:09 < bridge> super noob instructions 14:09 < bridge> You just spam next. I have a text doc detailing all the steps that I never made into a tutorial 😄 14:09 < bridge> where do you even download it? 14:10 < bridge> heinrich i literally need to add like 3 steps to make the tutorial noob friendly from a fresh vm... which wasn't even the goal in the first place... 14:10 < bridge> IMO if you can't google msys2 I think you have no business compiling anything before you get a little more competence with a computer. 14:10 < bridge> download msys from msys2.org downloads page 14:10 < bridge> run installer and press next as the installer tells you to 14:10 < bridge> press windows key, search msys ucrt64 14:10 < bridge> the rest of what i already said 14:11 < bridge> finally someone 😄 i remember compiling a game (principia) and it was so easy to me (i had 0 coding experiment) 14:12 < bridge> msys is goated with the sauce 14:12 < bridge> that looks quite good already 🙂 14:12 < bridge> you could argue that it's still faster to google all msys stuff than installing Visual Studio 😂 😂 😂 14:12 < bridge> not sure if it actually works, but if someone confirms it, we could add it to the readme 14:13 < bridge> There is only one issue with msys. If something goes wrong it looks scary. With VS if something goes wrong you get a message box saying something went wrong 14:14 < bridge> You are stuck on the big scary user unfriendly black screen 👻 14:14 < bridge> that's why i like rust 14:14 < bridge> FFR 14:15 < bridge> heinrich if your concern really is making ddnet compilable by people who don't even know what a compiler is maybe you should create a tool that can do it for them in the click of a button... 14:15 < bridge> even as dev i'd say it's nice to not know everything under the hood 14:15 < bridge> it's nice to help beginners 14:15 < bridge> I know how hard it was for me to compile teeworlds for the first time 14:15 < bridge> sure but it's not like my instructions were beginner-unfriendly. you're just being a jerk 14:15 < bridge> you'd probably want to gatekeep me, back then, based on your standards 14:15 < bridge> may I drop in the question whiy ddnet isn't c++20 but c++17? 14:16 < bridge> lots of work to upgrade 14:16 < bridge> I think there's an issue about that 14:16 < bridge> on github 14:16 < bridge> p sure it's stalled atm 14:16 < bridge> Googling msys2 is not very under the hood 😄 14:16 < bridge> the main reason is that c++20 came to a bad time, if you consider the Ubuntu release schedule 14:16 < bridge> so basically we wait for next ubuntu 14:17 < bridge> @heinrich5991 i get some warning that definitly should be taken care of, but I'm on 85% now 14:17 < bridge> i just wanna learn coding so i can make a good block sv for my people on persian ddnet 14:17 < bridge> wholesome 100 14:17 < bridge> @heinrich5991 i get some warnings that definitely should be taken care of, but I'm on 85% now 14:17 < bridge> Didn't we have an issue with linking to an old enough libc? 14:17 < bridge> yeah but deen didnt got it working 14:17 < bridge> but yeah that would be a nice solution too 14:17 < bridge> He wants to sell vip to persian people so he can make bank and go to the bahamas 14:17 < bridge> It's not wholesomechungus 14:17 < bridge> sounds good 14:17 < bridge> good luck 14:18 < bridge> must respect the hustle 14:18 < bridge> stay motivated even if the beginning is hard 14:18 < bridge> as if they have money 😂 14:18 < bridge> I think you overestimate how "obvious" stuff is to beginners 14:19 < bridge> i'm just missing the relevance here, the dude knew what the ucrt shell was, and he already had msys installed (he was asking how to install with msys). i just provided the missing pieces of the puzzle that he had already started 14:19 < bridge> :troll: 14:19 < bridge> i'm just missing the relevance here, the dude knew what the ucrt shell was, and he already had msys installed (he was asking how to compile with msys). i just provided the missing pieces of the puzzle that he had already started 14:19 < bridge> Bam was pretty good about making it easy for beginners ngl 14:19 < bridge> bam is cool 14:19 < bridge> ^ 14:19 < bridge> well tbf heinrich did not know at the point he suggested VS 14:20 < bridge> no 14:20 < bridge> A piece of software that embodies "it just works" 14:20 < bridge> bam was absolutely horrible 14:20 < bridge> lol 14:20 < bridge> it required you to build your build system before you could build teeworlds 14:21 < bridge> before you i just copied the Dependencies on ddnet github page and it didn't worked 14:21 < bridge> Which was just double clicking `make_windows.bat` or `make_unix.sh` 14:21 < bridge> versus not even having to install anything with cmake 14:21 < bridge> because it comes pre-installed with msvs 14:22 < bridge> also, placing the bam executable at a convenient place 14:22 < bridge> so that you could call it 14:22 < bridge> using bam: ok IMO 14:22 < bridge> dev for bam: horrible 14:22 < bridge> Ackshully you have to install msvs, so it's still installing something 14:22 < bridge> which was not trivial 14:22 < bridge> when we had both build systems in place. it was horrible xd 14:22 < bridge> it was the time where i first dev'd for ddnet xD 14:22 < bridge> Yeah the lua configuration wasn't the very best ngl 14:22 < bridge> you also had to install msvs for bam, if you wanted to compile bam 14:23 < bridge> Back then msvs didn't come with cmake. So it was the same amount of effort on windows 14:23 < bridge> I see. I was talking about cmake now 14:23 < bridge> even back then, you could simply install cmake from the website 14:24 < bridge> we should switch to c++20, u should not game on linux if u use a old distro 14:25 < bridge> I honestly don't know why people who are unable to double click a file and copy bam.exe to C:\ is a target demographic, but sure 14:25 < bridge> apt install bam worked iirc 14:25 < bridge> as always its windows who has problems 14:25 < bridge> It was too old after a while 14:25 < bridge> only when teeworlds used the same version of bam currently shipped in the repos 14:26 < bridge> I'd consider myself 14-year old me to be in the target demographic 14:26 < bridge> did someone make a meson poc? is it less confusing? 14:26 < bridge> cmake is confusing ngl 14:26 < bridge> and I can tell you, compiling teeworlds for the first time was hard for me 14:26 < bridge> the dev part 14:26 < bridge> I didn't know anything about shells 14:26 < bridge> if u use old software, don't expect current one to work xd 14:26 < bridge> I didn't know anything about unix shells 14:26 < bridge> @learath2 im heading to anime convention 😬:justatest: 14:26 < bridge> why u so hyped about meson xd 14:27 < bridge> I was there too, I figured out stuff, I asked around, it worked out. It's part of the process. Being able to generate an executable won't get you anywhere if you aren't willing to put in any work 14:27 < bridge> i tried it and it looked like the configure part was instant 14:27 < bridge> cmake is far from instant 14:27 < bridge> Why didn't you invite me? 14:27 < bridge> come barcelona 14:27 < bridge> but that shouldn't be the main hurdle. you still have enough other hurdles to figure out 14:27 < bridge> why gatekeep the first working executable? 14:28 < bridge> It's not so much gatekeeping but forced training 😄 14:28 < bridge> once you have a working build setup, it's much easier to debug 14:28 < bridge> do you not agree that in principle, building should be as easy as possible for first-time contributors? 14:28 < bridge> even today, I hate it if projects have complicated building setups 14:28 < bridge> cmake -B build -S 14:28 < bridge> CMake Error: No source directory specified for -S 14:28 < bridge> CMake Error: Run 'cmake --help' for all supported options. 14:28 < bridge> it makes me less likely to contribute 14:28 < bridge> you forgot the dot 14:28 < bridge> 100% agree 14:28 < bridge> it's `cmake -B build -S .` 14:28 < bridge> you're missing a dot 14:29 < bridge> my challenge is to not use any build script for rust 14:29 < bridge> wow 14:29 < bridge> until now, i didnt need it 14:29 < bridge> with rust, I just write `cargo build` 14:29 < bridge> note that dot means current directory 14:29 < bridge> it's amazing 14:29 < bridge> Not like they will contribute anything if they can't google msys2. It should be simple, but it doesn't have to be one button 14:29 < bridge> I'm not missing anything 14:29 < bridge> yes, they will 14:29 < bridge> it's building it :DDDD 14:29 < bridge> epic gamer moment 14:29 < bridge> I'm not sure where you get the idea from that only people willing to go through arcane build setups will contribute 14:29 < bridge> unless u need a native c dep lib 14:29 < bridge> xd 14:29 < bridge> -- Configuring incomplete, errors occurred! 14:30 < bridge> I'm today still discouraged if stuff is hard to build 14:30 < bridge> submodules checked out? 14:30 < bridge> e.g. sane 14:30 < bridge> I haven't looked into it a lot yet 14:30 < bridge> how can we make ddnet more sane? 14:30 < bridge> we limited to c++ stupid tooling 14:30 < bridge> sane, the scanning tool 14:30 < bridge> It's not arcane to have basic computer competence. If you can't use google what hope do you have of providing any useful contribution? 14:30 < bridge> well our cmake script is huge. that's insane xdd 14:30 < bridge> this isn't basic computer competence 14:31 < bridge> being able to code c++ and being able to handle a terminal is completely orthogonal 14:31 < bridge> ye xd, I think projects make it more modular, cmakelists on each folrer 14:31 < bridge> folder 14:31 < bridge> separation of concerns 14:31 < bridge> CMake Error at cmake/FindSSP.cmake:12 (message): 14:31 < bridge> could not find ssp paths 14:31 < bridge> Call Stack (most recent call first): 14:31 < bridge> CMakeLists.txt:544 (find_package) 14:31 < bridge> 14:31 < bridge> 14:31 < bridge> -- Configuring incomplete, errors occurred! 14:31 < bridge> after the vulkan backend, it's the longest file iirc 14:31 < bridge> llvm does that 14:31 < bridge> there are windows programmers that don't like dealing with linux shells 14:31 < bridge> yet are perfectly capable programmers 14:31 < bridge> I think you're a bit in a bubble 14:31 < bridge> :justatest: :justatest: :justatest: 14:32 < bridge> is this a big deal, can i execute the next line or .... 14:32 < bridge> install it 14:32 < bridge> I'd go so far as to argue that if you aren't willing to just sit down and spend 30 minutes of your time learning how to use a shell you are very likely not as competent a programmer as you think you are 14:32 < bridge> i dunno how the package is called 14:32 < bridge> but smth like libssp xd 14:32 < bridge> i agree with this btw 14:33 < bridge> or r we shipping it even 14:33 < bridge> then it's still submodules 14:33 < bridge> bro 14:33 < bridge> yea 14:34 < bridge> what do i do ? 14:34 < bridge> mh tbh it should be isntalled lol 14:34 < bridge> oh thats some crap you have to turn off 14:34 < bridge> (`cmake -B build` suffices btw) 14:34 < bridge> `git submodule update --init --recursive` 14:34 < bridge> is your ddnet-libs dir empty? 14:34 < bridge> I love how this experiment is technically proving heinrich right, if he had just used VS it would have worked out fine 😄 14:34 < bridge> This one yeah 14:34 < bridge> :feelsbadman: 14:34 < bridge> i just forgot a step ok 14:34 < bridge> And the step by step guide should use `git clone --recursive https://github.com/ddnet/ddnet` instead 14:34 < bridge> @robyt3 nice that you learn rust lately 14:35 < bridge> when did u secretly started? 14:35 < bridge> where is home on windows ? /home/Melanin_m/ddnet 14:35 < bridge> try the command robyte send in the ddnet dir in a git bash shell 14:35 < bridge> no vs today 14:35 < bridge> one more in 14:35 < bridge> :NekoEvil: :NekoEvil: :NekoEvil: 14:35 < bridge> 😁 14:36 < bridge> wtf 14:36 < bridge> 😬 14:36 < bridge> Where did I write rust? :thonk: 14:36 < bridge> u used rust like syntax in your pr lately 14:36 < bridge> clear indicator 14:36 < bridge> elp im surrounded by weebs 14:36 < bridge> u never did that 14:36 < bridge> Good for you, hardwork pays off 14:37 < bridge> @robyt3 is that correct? 😬 14:37 < bridge> Are people doing the cosplay thing? 14:37 < bridge> No I haven't learned any more rust yet, which PR do you mean? 14:38 < bridge> #7606 14:38 < bridge> https://github.com/ddnet/ddnet/pull/7606 14:38 < bridge> $ git submodule update --init --recursive 14:38 < bridge> Submodule 'ddnet-libs' (https://github.com/ddnet/ddnet-libs) registered for path 'ddnet-libs' 14:38 < bridge> Cloning into '/home/Melanin_m/ddnet/ddnet-libs'... 14:38 < bridge> Submodule path 'ddnet-libs': checked out '59d64dbb36ade02607ad20a7f3a45605ab1de80d' 14:38 < bridge> i've never before seen you adding braces for 1liners 14:38 < bridge> more the opposite 14:38 < bridge> I was forced by clang-tidy for some weird reasons that I don't understand 14:38 < bridge> lol 14:38 < bridge> ok rip 14:38 < bridge> lots ofc 14:39 < bridge> Maybe the line length was too long because I changed errno to net_errno(), never had this before though 14:40 < bridge> *clang-format not clang-tidy 14:42 < bridge> Looks correct, continue with the step that previously failed 14:46 < bridge> i build without any error. but i can't find the ddnet source i just cloned, i typing "pwd" and it sais "/home/Melanin_m/ddnet". then i go to "C:\Users\Melanin_m", but there is no ddnet folder here 14:46 < bridge> lmao it's probably in your mingw structure 14:47 < bridge> can't u do rightclick open explorer here 14:47 < bridge> Run the command `explorer .` in the shell in that folder, which should open Windows Explorer in that folder 14:47 < bridge> nice trick, didn't know about that one 14:48 < bridge> Oh yeah mingw no longer uses your real user folder as your mingw user folder 14:48 < bridge> Now that's a trap if I've seen one 14:48 < bridge> yes it is 14:51 < bridge> !sh echo a 14:51 < chillerbot> ! is deprecated moved to $ 14:51 < bridge> Command not found! 14:51 < chillerbot> a 14:51 < bridge> Command not found! 14:51 < bridge> ah cool 14:51 < bridge> still works 14:52 < bridge> Why is life so hard? 14:52 < bridge> $echo 🔥 14:52 < bridge> !sh echo 🔥 14:52 < chillerbot> ! is deprecated moved to $ 14:52 < bridge> Command not found! 14:52 < chillerbot> 🔥 14:52 < bridge> Command not found! 14:52 < bridge> $sh echo dammmn 14:52 < chillerbot> dammmn 14:52 < bridge> <_voxeldoesart> $echo MONEY 14:52 < bridge> $sh echo 🔥 14:52 < chillerbot> 🔥 14:52 < bridge> Would it kill you to behave? 14:52 < bridge> kill who 14:52 < bridge> >_> 14:53 < bridge> please don't spam the channel 14:53 < bridge> there's conversations ongoing 14:53 < bridge> ha ha ha ha :DDDDDDD i build the ddnet 🙂 now lets go learn cpp 14:53 < bridge> why is voxel timeouted?! 14:53 < bridge> Now I need to get out of my bed and fix the stupid bot because people will think it's hilarious to get the bots to loop 14:53 < bridge> good luck 14:53 < bridge> after 10 years i still know nothing 14:54 < bridge> cuz it looks like learath is taking a page out of heinrich's book and muting ppl/deleting messages for no reason 14:54 < bridge> <_voxeldoesart> because the mods hate fun 14:54 < bridge> moderation discussion goes to DM 14:54 < bridge> let the record show that i was only fixing their malformed command... 14:54 < bridge> and it was me 14:54 < bridge> <_voxeldoesart> figures 14:54 < bridge> lol did u delete my message 14:54 < bridge> discussion is over, we can change topic 14:54 < bridge> insanity 14:54 < bridge> $sh :(){ :|:& };: 14:54 < chillerbot> bash error 14:54 < chillerbot> bash error 14:54 < chillerbot> bash error 14:55 < bridge> wtf 14:55 < bridge> xd 14:55 < bridge> yes this is better for sure 14:55 < bridge> ???? 14:56 < bridge> @mamad3725 if u want to take it serious. i'd highly suggest to start with small tasks. 14:56 < bridge> 14:56 < bridge> you cannot just create a block server from nothing. 14:56 < bridge> 14:56 < bridge> Look what you want to achieve and split your tasks 14:56 < bridge> thank you @mpft @robyt3 ❤️ ❤️ 14:56 < bridge> ❤️ 14:56 < bridge> yes. try to make a trivial change first 14:56 < bridge> that you can observe somehow 14:57 < bridge> can you guys make a thing for all of this on ddnet github page for other people ? 14:57 < bridge> ok 14:57 < bridge> Yeah, not the worst idea. I'll try to polish up my text file and add it to the readme or some other file 14:58 < bridge> thank you ❤️ 15:00 < bridge> ! 15:01 < bridge> an these are all of the command i just copied : 15:01 < bridge> 15:01 < bridge> from the ucrt shell 15:01 < bridge> 15:01 < bridge> pacman -S base-devel mingw-w64-ucrt-x86_64-toolchain mingw-w64-ucrt-x86_64-cmake mingw-w64-ucrt-x86_64-curl mingw-w64-ucrt-x86_64-ffmpeg mingw-w64-ucrt-x86_64-freetype git mingw-w64-ucrt-x86_64-glew mingw-w64-ucrt-x86_64-glslang mingw-w64-ucrt-x86_64-libpng mingw-w64-ucrt-x86_64-opusfile mingw-w64-ucrt-x86_64-python3 mingw-w64-ucrt-x86_64-rust mingw-w64-ucrt-x86_64-SDL2 mingw-w64-ucrt-x86_64-spirv-tools mingw-w64-ucrt-x86_64-sqlite mingw-w64-ucrt 15:01 < bridge> 15:01 < bridge> git clone https://github.com/ddnet/ddnet 15:01 < bridge> 15:01 < bridge> git submodule update --init --recursive 15:01 < bridge> 15:01 < bridge> cd ./ddnet 15:01 < bridge> 15:02 < bridge> cmake -B build -S . 15:02 < bridge> 15:02 < bridge> cmake --build build --config Release --parallel 15:02 < bridge> 15:02 < bridge> ddnet will be in ddnet/build/DDNet.exe 15:02 < bridge> it just made my day, i wanted to compile ddnet for 1 month 😄 15:02 < bridge> on windows 15:03 < bridge> and these are all of the commands i just copied : 15:03 < bridge> 15:03 < bridge> from the ucrt shell 15:03 < bridge> 15:03 < bridge> pacman -S base-devel mingw-w64-ucrt-x86_64-toolchain mingw-w64-ucrt-x86_64-cmake mingw-w64-ucrt-x86_64-curl mingw-w64-ucrt-x86_64-ffmpeg mingw-w64-ucrt-x86_64-freetype git mingw-w64-ucrt-x86_64-glew mingw-w64-ucrt-x86_64-glslang mingw-w64-ucrt-x86_64-libpng mingw-w64-ucrt-x86_64-opusfile mingw-w64-ucrt-x86_64-python3 mingw-w64-ucrt-x86_64-rust mingw-w64-ucrt-x86_64-SDL2 mingw-w64-ucrt-x86_64-spirv-tools mingw-w64-ucrt-x86_64-sqlite mingw-w64-ucrt 15:03 < bridge> 15:03 < bridge> git clone https://github.com/ddnet/ddnet 15:03 < bridge> 15:03 < bridge> git submodule update --init --recursive 15:03 < bridge> 15:03 < bridge> cd ./ddnet 15:03 < bridge> 15:03 < bridge> cmake -B build -S . 15:03 < bridge> 15:03 < bridge> cmake --build build --config Release --parallel 15:03 < bridge> 15:03 < bridge> ddnet will be in ddnet/build/DDNet.exe 15:03 < bridge> Now you are well on your way to make bank so you can run off to the Caribbean 15:03 < bridge> For one month? 15:03 < bridge> What d u mean? 15:04 < bridge> i couldn't do it with gitgub page instruction on windows and readme file on the source 15:04 < bridge> and i didn't want to install vs 15:04 < bridge> Ooh 15:05 < bridge> You forgot the deps? 15:05 < bridge> what is deps ? 15:05 < bridge> Dependencies? 15:05 < bridge> an step or two ? 15:06 < bridge> Is it said that way? 15:06 < bridge> check out my blog 15:06 < bridge> https://edgarluque.com/categories/ddracenetwork/ 15:06 < bridge> it walks through making a chat command 15:07 < bridge> i see it on wiki page 15:08 < bridge> This is a nice first thing to do 15:09 < bridge> You'll want lots of chat commands for your p2w server, players love chat commands 15:09 < bridge> `/rainbow` 15:09 < bridge> it didn't said the build steps in my prefered program on windows 15:09 < bridge> Ooh 15:10 < bridge> He wanted to build with mingw, we didn't have instructions for it, that was the issue 15:10 < bridge> But 15:10 < bridge> Ooh 15:10 < bridge> Idk about mingw 15:10 < bridge> Linux user 🤑 15:11 < bridge> when trying to render a logo like this: 15:11 < bridge> 15:11 < bridge> ``` 15:11 < bridge> IGraphics::CTextureHandle LogoTexture = Graphics()->LoadTexture("gui_logo.png", IStorageTW::TYPE_ALL, CImageInfo::FORMAT_RGBA); 15:11 < bridge> 15:11 < bridge> if (LogoTexture.IsValid()) 15:11 < bridge> { 15:11 < bridge> Graphics()->TextureSet(LogoTexture); 15:11 < bridge> Graphics()->BlendNormal(); 15:11 < bridge> Graphics()->QuadsBegin(); 15:11 < bridge> IGraphics::CQuadItem QuadItem(StALogo.x, StALogo.y, StALogo.w, StALogo.h); 15:11 < bridge> Graphics()->QuadsDrawTL(&QuadItem, 1); 15:11 < bridge> Graphics()->QuadsEnd(); 15:11 < bridge> } 15:11 < bridge> ``` 15:11 < bridge> 15:11 < bridge> crash happens either after a good 5 seconds, or after trying to screenshot it - lol 15:11 < bridge> 15:11 < bridge> any idea what i did wrong ? 15:11 < bridge> 15:11 < bridge> the logo is 512x147 pixel's, 80kb, lol 15:11 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1182685836995735702/image.png?ex=65859904&is=65732404&hm=426f0db170cdd4c6862b5feb972b9aadcf5226448522a2ebd656332063e4f333& 15:11 < bridge> ignore the IStorage thing, StormAx is a maniac 15:12 < bridge> Apparently I never finished this text file, or maybe the complete one is on the VM :pepeW: 15:12 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1182686031015850084/image.png?ex=65859933&is=65732433&hm=00a20f33581850b1ca99b91ac9dbb20b4ac34e650ae1bda6c18e018ac7aa3370& 15:12 < bridge> when trying to render a logo like this: 15:12 < bridge> 15:12 < bridge> ``` 15:12 < bridge> IGraphics::CTextureHandle LogoTexture = Graphics()->LoadTexture("gui_logo.png", IStorage::TYPE_ALL, CImageInfo::FORMAT_RGBA); 15:12 < bridge> 15:12 < bridge> if (LogoTexture.IsValid()) 15:12 < bridge> { 15:12 < bridge> Graphics()->TextureSet(LogoTexture); 15:12 < bridge> Graphics()->BlendNormal(); 15:12 < bridge> Graphics()->QuadsBegin(); 15:12 < bridge> IGraphics::CQuadItem QuadItem(StALogo.x, StALogo.y, StALogo.w, StALogo.h); 15:12 < bridge> Graphics()->QuadsDrawTL(&QuadItem, 1); 15:12 < bridge> Graphics()->QuadsEnd(); 15:13 < bridge> } 15:13 < bridge> ``` 15:13 < bridge> 15:13 < bridge> crash happens either after a good 5 seconds, or after trying to screenshot it - lol 15:13 < bridge> 15:13 < bridge> any idea what i did wrong ? 15:13 < bridge> 15:13 < bridge> the logo is 512x147 pixel's, 80kb, lol 15:13 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1182685836995735702/image.png?ex=65859904&is=65732404&hm=426f0db170cdd4c6862b5feb972b9aadcf5226448522a2ebd656332063e4f333& 15:13 < bridge> @ryozuki would have been nice if you elaborated on what a callback is in your blogpost 15:14 < bridge> It might be stopping being "valid"I think the problem is in another place 15:15 < bridge> Are you perhap doing the load all the time? 15:15 < bridge> already tried popping it out of the isvalid check, still happens 15:15 < bridge> your problem is not the logo 15:15 < bridge> i assume u have tons of other assets? 15:15 < bridge> i guess, when u know its hard to assume what a newb wouldnt know 15:15 < bridge> or 4k assets? 15:15 < bridge> You are supposed to load the texture once, usually into a member variable, then if it's already loaded never load it again 15:16 < bridge> xd 15:16 < bridge> Are you doing a `LoadTexture` every frame? That would explain it :D Use `Graphics()->TextureSet(g_pData->m_aImages[IMAGE_BANNER].m_Id);` instead. 15:16 < bridge> Yeah, this is also my guess 😄 15:16 < bridge> gawd damn i started smth - thanks, will try 15:16 < bridge> ah right in cpp-ddnet textures can leak 15:17 < bridge> When `IGraphics::CTextureHandle` RAII? 15:17 < bridge> dd-pg has it 15:17 < bridge> 😏 15:17 < bridge> Make it for normal ddnet too, don't be selfish 15:17 < bridge> i'm not selfish 15:17 < bridge> i just like modern solutions 15:17 < bridge> to modern problems 15:18 < bridge> @ryozuki also when `Implementing a rcon command`? I've been waiting so long for the next part of your series 15:18 < bridge> xddd 15:18 < bridge> a fan? 15:19 < bridge> :poggers2: 15:19 < bridge> Yes, I need to add an rcon command to my mod but I can't because you won't teach 15:19 < bridge> 15:21 < bridge> Ryo your blogpost helped me a bunch - continue! 15:24 < bridge> #7555 scares me a lot, I think it's a bad bad idea to merge it 15:24 < bridge> https://github.com/ddnet/ddnet/pull/7555 15:24 < bridge> The scale of the change and the fact that it touches something so fundamental practically guarantees we break something 15:24 < bridge> the change looks bigger than it is 15:25 < bridge> i'd say it rewrites it 15:26 < bridge> most of the calculations end up being smth like * 1 15:26 < bridge> or all 15:26 < bridge> to be precise xD 15:27 < bridge> If a majority of you agree that it should be merged I won't complain but I wouldn't touch this with a 60 foot pole 15:27 < bridge> i'd like to test it with a few ppl 15:28 < bridge> :justatest: 15:28 < bridge> I'd generally also be against merging it. if we merge it however, it should provide proper support for demos/ghosts 15:28 < bridge> Last time we had an issue with demos we had to roll out tools to fix demos, there are still broken demos around 15:28 < bridge> only slightly against merging though, it's okay if others find it worthwhile 15:28 < bridge> yeah demos etc are defs a problem 15:29 < bridge> it's not directly useful for ddnet anyway 15:29 < bridge> could also disable demos 15:29 < bridge> and ghosts 15:29 < bridge> oh yeah 15:29 < bridge> that'd work as a band-aid solution 15:29 < bridge> but please no broken demos or half-working demos 15:30 < bridge> I also see changes around prediction code, I know you hate old versions with a passion but this should be tested both backwards and forwards for compatibility 15:31 < bridge> what old versions 😬 15:31 < bridge> tbh 15:32 < bridge> the biggest issue is.. wtf is prediction code smth else than server code 15:32 < bridge> ? 15:32 < bridge> bad design 15:32 < bridge> xd 15:32 < bridge> yes 15:32 < bridge> why is* 15:32 < bridge> wtf as in why tf? 15:32 < bridge> not a helpful question ^^ 15:32 < bridge> yes 15:33 < bridge> yeah dunno why i wrote wtf 15:33 < bridge> I genuinely could not decode it 15:33 < bridge> i meant why 15:33 < bridge> It triggered an exception in my english parser 15:33 < bridge> it's unclear what you don't understand if you don't elaborate. we're left guessing. the second question makes it clear 🙂 15:33 < bridge> anyway, yeah, bad bad bad design 15:33 < bridge> i'm never sure if u sarcastic xD 15:34 < bridge> you need to be so extremely careful when changing anything because of that 15:34 < bridge> and it's not even just one file you need to keep an eye on, some of the prediction happens outside of `src/game/client/prediction` 15:35 < bridge> use furo's suggestion so code works and feel nice? ❌ 15:35 < bridge> 15:35 < bridge> implement a bool check to LoadTexture only once? :f3: 15:35 < bridge> LOL 15:35 < bridge> use furo's suggestion so code works and feels nice? ❌ 15:35 < bridge> 15:35 < bridge> implement a bool check to LoadTexture only once? :f3: 15:35 < bridge> And what, did you use a static? 15:35 < bridge> ``` 15:35 < bridge> static bool IsTextureLoaded = false; 15:35 < bridge> static IGraphics::CTextureHandle LogoTexture; 15:35 < bridge> 15:35 < bridge> if (!IsTextureLoaded) 15:35 < bridge> { 15:35 < bridge> dbg_msg("DDStats", "Rendering Logo"); 15:35 < bridge> LogoTexture = Graphics()->LoadTexture("gui_logo.png", IStorageTW::TYPE_ALL, CImageInfo::FORMAT_RGBA); 15:35 < bridge> IsTextureLoaded = LogoTexture.IsValid(); 15:36 < bridge> } 15:36 < bridge> 15:36 < bridge> if (IsTextureLoaded) 15:36 < bridge> { 15:36 < bridge> Graphics()->TextureSet(LogoTexture); 15:36 < bridge> Graphics()->BlendNormal(); 15:36 < bridge> Graphics()->QuadsBegin(); 15:36 < bridge> IGraphics::CQuadItem QuadItem(StALogo.x, StALogo.y, StALogo.w, StALogo.h); 15:36 < bridge> Graphics()->QuadsDrawTL(&QuadItem, 1); 15:36 < bridge> Graphics()->QuadsEnd(); 15:36 < bridge> } 15:36 < bridge> ``` 15:36 < bridge> 15:36 < bridge> maybe 15:36 < bridge> Excellent code, I'm proud of you 15:36 < bridge> u lost me in the first keyword 15:36 < bridge> 😄 15:36 < bridge> `static` 15:36 < bridge> XD 15:36 < bridge> `static` can be good for performance 😄 15:36 < bridge> https://en.cppreference.com/w/cpp/thread/call_once 15:37 < bridge> ah nice, C++ finally also got it? ^^ 15:37 < bridge> global state: ok sometimes 15:37 < bridge> global variables: no 15:37 < bridge> It's been there since C++11 😄 15:37 < bridge> nvm, it's already in C++11 😮 15:37 < bridge> nice 15:38 < bridge> what about "global" state in wasm modules? 15:38 < bridge> sounds like the perfect fit to me, since they can be instantiated any number of times 15:38 < bridge> I'm excited for `std::latch` `std::barrier` `std::atomic::wait()` 15:38 < bridge> When are we getting C++20? 15:38 < bridge> never 15:39 < bridge> eventually 15:39 < bridge> :ohNo: 15:39 < bridge> too busy creating ai twinbops 15:39 < bridge> yep this is hard. i use global vars, but only to create wrappers to emulate as if you were coding normal source code. 15:39 < bridge> 15:39 < bridge> but still, if you have a HUGE wasm module u end up with the same traps 15:39 < bridge> with ddnet 2.0 ig 15:39 < bridge> Too busy arguing over accounts and making trivial ui changes 15:39 < bridge> also `std::binary_semaphore` 15:39 < bridge> I think `std::atomic::wait` is missing from rust(?) 15:39 < bridge> huh? 15:40 < bridge> <_cus> Is it possible to give super to another person? 15:40 < bridge> thats just how u mutex 15:40 < bridge> Not really 15:40 < bridge> yep sadly 15:41 < bridge> pthread mutex I think does something very similar but `EnterCriticalSection` works completely differently afaik 15:42 < bridge> put your cheese in your backpack 15:42 < bridge> `super ` maybe? 15:42 < bridge> I don't remember 15:42 < bridge> i once used atomic waiting to handle signals cleanly (in a way that you don't have to wait for you code to wake up) 15:42 < bridge> 15:42 < bridge> i have to say, signaling is still one of the most annoying things, bcs there is no `user` ptr 15:42 < bridge> <_cus> does not work 15:42 < bridge> only peoples who accept my fingerprint (ssh) can join to my server, how to disable this? 15:43 < bridge> this has NOTHING to do with the fingerprint 15:43 < bridge> I already told you 15:43 < bridge> If you need context with it then waiting on an atomic probably isn't the best tool 15:43 < bridge> when can we add noob filter to #developer 15:43 < bridge> never 15:43 < bridge> has 15:43 < bridge> :pepeW: 15:43 < bridge> 😄 15:43 < bridge> yes heinrich! has! 15:43 < bridge> but when do you not need context with it? 15:43 < bridge> obviously 15:43 < bridge> my friend confirmed it and was able to log in 15:43 < bridge> no. it has something to do with establsihing a TCP connection before UDP seems to be allowed 15:44 < bridge> signaling and game loops kinda hate each other 15:44 < bridge> Well e.g. I'm implementing `CHttpRequest::Block()` I just need to block until it's done 15:44 < bridge> ask your hoster about this 15:44 < bridge> if you can enlighten me go ahead 15:44 < bridge> an atomic is perfect 15:44 < bridge> for such higher level cases i think mutex/condvar is just as good 15:44 < bridge> @towux there's nothing we can do about it. ask your hoster: "why does UDP not work from hosts that have never connected via TCP to me?" 15:45 < bridge> or do u mean for signaling? 15:45 < bridge> It's sooo heavy for just blocking a thread 15:45 < bridge> i meant signaling in the sense of the outside world wants to interact with you 15:45 < bridge> maybe you can use this as an opportunity to use a whitelist 15:45 < bridge> not like u send the signal and recv it 15:46 < bridge> http over tcp whitelist, they connected via tcp so they can connect on udo 15:46 < bridge> udp 15:46 < bridge> flpflpflpflp 15:46 < bridge> if u press CTRL + C 15:46 < bridge> 15:46 < bridge> u want, by best case, wake up your game loop => clean all stuff up, bye 15:46 < bridge> do you know how fix this? if my friend type in cmd: `ssh root@myip` and select yes he can join to the server 15:46 < bridge> accept fingerprint 15:46 < bridge> what is the error? 15:46 < bridge> what if he selects "no"? 15:47 < bridge> It's just an example of a use for an atomic wait, no signals no nothing, just a thread that needs to wait on another to complete a task 15:47 < bridge> Now every task could have a mutex and a condvar in there that other threads could wait on 15:48 < bridge> ok, well maybe u are right and atomic lock has less overheat here 15:48 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1182695133804777562/image.png?ex=6585a1ad&is=65732cad&hm=65bb8704e4585df9f8ee31290c44d391079d904ae8c1da7f9d754109d91b120c& 15:48 < bridge> but that's like using a thermonuclear bomb to kill a spider 15:48 < bridge> but to me this is insignificant enough, at least for what i program 15:48 < bridge> ah still that problem? 15:48 < bridge> r u 100% sure the VPS provider has no custom firewall on top? 15:49 < bridge> some hosters are really weird 15:49 < bridge> u gotta click through 1000 interfaces 15:49 < bridge> note that I presented the solution above, if you want to skip a few steps of debugging 15:49 < bridge> I connected to my vds via ssh and was able to log in, my friend also could, why do they have to get a fingerprint? 15:49 < bridge> <_cus> Is it possible to give super to another person? 15:49 < bridge> . 15:49 < bridge> it's just the certificate 15:49 < bridge> Yeah, it's absolutely insignificant, but I find it also much more ergonomic than the combo of mutex/condvar, where you need to think about the condition and make sure the mutex is held correctly while changing the predicate blablabla 15:50 < bridge> it has nothing to do with the fingerprint, it's a huge red herring 15:50 < bridge> but he can join only if accepted fingerprint 15:50 < bridge> wtf? 15:50 < bridge> i checked this 10000times 15:50 < bridge> wtf are we talking about 15:50 < bridge> he has to connect via ssh, before UDP works? 15:50 < bridge> it's about connecting via TCP so that you can connect via UDP afterwards 15:50 < bridge> NO 15:50 < bridge> connect a TCP connection in any way to the VPS 15:50 < bridge> A quick 5 question quiz 15:50 < bridge> no, only accept fingerprint 15:51 < bridge> then your IP address is whitelisted 15:51 < bridge> i am 0% in this discussion get pinged 15:51 < bridge> i have no idea wtf u all talking about xD 15:51 < bridge> and can connect to the UDP server 15:51 < bridge> but @towux completely ignores me 15:51 < bridge> no 15:51 < bridge> Did you actually verify this btw? 15:51 < bridge> yes 15:51 < bridge> I couldn't connect to the server 15:51 < bridge> I pinged it via SSH 15:51 < bridge> but muh fingerprint 15:51 < bridge> connection worked 15:51 < bridge> so what should I do, my PROVIDER doesn't have a firewall 15:51 < bridge> Yeah ok, that's pretty clear cut 15:52 < bridge> Do you maybe have ufw or sth? 15:52 < bridge> bro no joke, switch to a different VPS 15:52 < bridge> dont waste your time 15:52 < bridge> Or maybe some iptables rules? 15:52 < bridge> vds 15:52 < bridge> yeah 15:52 < bridge> vds 15:52 < bridge> that's what they say 15:52 < bridge> i bet It's some overpriced shitty vps 15:53 < bridge> if it's dedicated hardware u spent AT least 10€ per month 15:53 < bridge> 15:53 < bridge> that's the cheapest i know of 15:53 < bridge> Anyway, nothing we can do. Make sure that you don't have a firewall (ufw) or maybe some iptables rules. If you don't and your provider says there is no firewall there is no way to fix it 15:53 < bridge> Find a new one 15:54 < bridge> You are WRONG. Kimisufi has 6$ ones 😄 15:55 < bridge> 20 15:55 < bridge> then still switch, 20€ for tw, what are u hosting 😂 15:55 < bridge> go to school you chud 15:56 < bridge> Whatever, price of server doesn't matter 15:56 < bridge> true 15:56 < bridge> The issue is diagnosed, nothing more we can tell you 15:56 < bridge> but i won't explain you how to create a whitelist etc. 15:56 < bridge> if it's not some setting in your VDS 15:56 < bridge> then i cant help 15:57 < bridge> neat, but sadly shitty hardware 😄 15:58 < bridge> Look at my glorious uptime 15:58 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1182697752401039411/image.png?ex=6585a41d&is=65732f1d&hm=940d5f1cbf5150d37519016f078a0f02dedc510727543b52695f854a96df252f& 15:58 < bridge> I actually have no idea if this server can come back up if it restarts, so hopefully it never has an issue 😄 15:59 < bridge> xD 15:59 < bridge> my vps had huge uptimes too, until it was banned bcs of the reflection attacks xD 16:08 < bridge> <_cus> https://cdn.discordapp.com/attachments/293493549758939136/1182700313237520444/Desktop_2023.12.08_-_18.07.44.02.mp4?ex=6585a680&is=65733180&hm=7670adee123c231380bb263904fa6de134e3a538e30e5284d833ec3d1aa53b66& 16:09 < bridge> we understand the problem 16:09 < bridge> but what do you expect us to do? 16:10 < bridge> this is some weird software doing it that the hoster probably uses 16:10 < bridge> for whatever reason 16:10 < bridge> maybe bcs udp ddos filtering is harder or smth 16:10 < bridge> or some software on your vds or some firewall on your vds 16:11 < bridge> I asked, he said he didn't have a firewall. 16:13 < bridge> it doesnt need to be a firewall in a classical sense. maybe it filters the traffic before it reaches the network of the hoster already 16:14 < bridge> anyway. only thing u can do is check your software on the server, as lea said 16:14 < bridge> 16:14 < bridge> or ask the provider if other customers had this too 16:17 < bridge> @jupeyy_keks where can i find that vscode workstation you talked about ? 16:17 < bridge> other/vscode 16:17 < bridge> ddnet.code_workspace 16:17 < bridge> in the ddnet source code 16:49 < bridge> is there examples out there for editing the ddnet code like: "how to make a server that every tee skin is rainbow color" 16:50 < bridge> or make a server that every players movement shown on the chat: mamad goes right. , mamad goes left, mamad jumped 😂 16:51 < bridge> Is there a code examples like: " how to make tee hook through edge automatically or how to make tee and on edge 16:51 < bridge> Is there a code examples like: " how to make tee hook through edge automatically or how to make tee and on edge" 16:53 < bridge> i am serious 16:53 < bridge> the best way of learning is through examples 16:53 < bridge> i'd ping chillerdragon 16:53 < bridge> he probably has such features already 16:54 < bridge> he generally has a pretty good block server implementation 16:54 < bridge> yeah i see it, i love those laser teleporters 16:55 < bridge> Thats just a bot 16:55 < bridge> real 16:55 < bridge> Heyyy can soemeone plwaaaeese do that 16:55 < bridge> do what ? 16:56 < bridge> Nono 16:56 < bridge> yo m 16:57 < bridge> or make a server that anytime someone mentions you on chat you shift color for 0.5 s 16:58 < bridge> these idea will make a really god article about editing the ddnet code for beginners 16:58 < bridge> these idea will make a really good article about editing the ddnet code for beginners 16:59 < bridge> How about beginners go to code and change thing themselves and see how it works :poggers2: 16:59 < bridge> How about beginners go to code and change things themselves and see how it works :poggers2: 17:00 < bridge> go ahead, the source code is soooo big, i can't understand a thing 😂 17:00 < bridge> how dare you say those words ☹️ 17:00 < bridge> How are u gonna write code then 17:00 < bridge> i will learn 17:01 < bridge> Because heinrich doesn't see it 17:03 < bridge> i found an example https://edgarluque.com/blog/chat-command-ddracenetwork/ 17:03 < bridge> This edgar guy knows about ddnet :poggers: 17:07 < bridge> he epic 17:13 < bridge> i remember in ddper block sv admins could read all the whisper chats. is that a default thing on any server which your are admin on ? 17:13 < bridge> XDDDDDDD 17:14 < bridge> i remember in ddper block sv admins could read all the whisper chats. is that a default thing on any server which you are admin on ? 17:16 < bridge> also they could chat as another player and say as they want 17:16 < bridge> are these the server defaults ? 17:19 < bridge> No, the DDNet server does not allow you to do these things. 17:20 < bridge> good 17:27 < bridge> https://twitter.com/MistralAI/status/1733150512395038967 17:27 < bridge> best open source ai model 17:27 < bridge> release 17:27 < bridge> https://vxtwitter.com/MistralAI/status/1733150512395038967 17:27 < bridge> ddnet does not by default impl allow this afaik 17:27 < bridge> but yeah u can rewrite the code 17:28 < bridge> i've heard that of other servers too 17:28 < bridge> sounds uncool to me 17:30 < bridge> yes 17:31 < bridge> future ddnet versions might be able to fix it by doing end to end encryption between two clients 17:31 < bridge> nice 🙂 17:33 < bridge> It's highly immoral to read/log whispers 17:34 < bridge> Anyone got good ideas to name a RAII wrapper for `net_init` and `net_uninit` (the latter still needs to be added)? `CNetworkLifecycle`, `CNetworkRAII`, `CNetworkSetup` 17:35 < bridge> Just `CNetworkBase` or `CNetBase`? 17:35 < bridge> I'd add the class to `system.h` and not to `network.h` though 17:36 < bridge> `CNetBase` init is also weird 17:36 < bridge> Shouldn't be called in engine 18:05 < bridge> now do i need to type these both everytime i wanna compile the game ? 18:05 < bridge> 18:05 < bridge> cmake -B build -S . 18:05 < bridge> 18:05 < bridge> cmake --build build --config Release --parallel 18:06 < bridge> and do i need to delete the content of build file every time i wanna compile ? 18:07 < bridge> and do i need to delete the content of build directory every time i wanna compile ? 18:07 < bridge> No, and you should only need one of those lines 18:14 < bridge> now i am officially a ddnet developer 18:15 < bridge> u are if u contribute back 18:17 < bridge> ok. can you make the whole code you added at the end to src/game/server/ddracechat.cpp from your website https://edgarluque.com/blog/chat-command-ddracenetwork/ 18:17 < bridge> 18:17 < bridge> cus i copied and paste the codes one by one and it wont work 18:18 < bridge> yes, you need to read, understand, learn, and then it will work 18:18 < bridge> he will learn 18:18 < bridge> https://cplusplus.com/doc/tutorial/ 18:18 < bridge> i always paste the whole code and if it's working i come back and read for understanding it and editing it my self 18:19 < bridge> its from 2020, so maybe exactly it wont work, but if u understand a bit u can adjust it easily 18:19 < bridge> It's insane how much of 2020 code is deprecated. Like ff programming 🥹 18:20 < bridge> :feelsbadman: 18:20 < bridge> ff? 18:20 < bridge> but that little command thing just covered so many other things, it's cool 18:21 < bridge> https://edgarluque.com/blog/ui-code-ddnet/ 18:21 < bridge> here i add a button 18:21 < bridge> xd 18:21 < bridge> its a bit more rushed tho 18:22 < bridge> also ui code changes more 18:22 < bridge> so its probs more outdated 18:22 < bridge> ehhhh, my bad. I've spent too much of my time playing/watching league. 18:22 < bridge> I just meant it's sometimes a bit bothersome 18:22 < bridge> https://edgarluque.com/blog/intro-to-ddnet/ 18:22 < bridge> did u read 18:22 < bridge> ah u mean ff as in surrender 18:22 < bridge> yeah 18:22 < bridge> i thought i said final fantasy 18:22 < bridge> cuz im addicted lately 18:22 < bridge> lmao 18:22 < bridge> :justatest: 18:23 < bridge> to each their own game :justatest: 18:24 < bridge> @_voxeldoesart ur lucky @robyt3 is our only windows dev 18:24 < bridge> and he does stuffs 18:24 < bridge> i hate that sometimes searching windows docs it shows in spanish 18:24 < bridge> like hell no im not reading spanish technical shit 18:25 < bridge> you forgot me :brownbear: 18:25 < bridge> 😬 18:25 < bridge> Would you if it was in catalan? :trollet: 18:26 < bridge> I'm using a Redirector rule in Firefox to avoid that 18:26 < bridge> (for German) 18:27 < bridge> i would make a exception kek 18:27 < bridge> i had read it 18:27 < bridge> :nouis: 18:27 < bridge> can you please put the whole code at the end of you articles ? 18:28 < bridge> @devinci24 i once started my own catalan programming blog 18:28 < bridge> i used to have the cool domain struct.cat 18:28 < bridge> sure, git clone ddnet! XD 18:28 < bridge> no sorry 18:28 < bridge> im lazy so 18:28 < bridge> is .cat a thing 18:28 < bridge> i put only the least effort 18:28 < bridge> XD 18:29 < bridge> yep, .cat is for catalan language 18:29 < bridge> i can have milkeey.cat :santatrollet: 18:30 < bridge> the problem is when i write those lines, if i get the error i don't gonna know if the problem is from me or the ddnet code was changed 18:30 < bridge> but u need to understand why u add the lines 18:32 < bridge> yes, the whole purpose is that, otherwise what is the point of having a /aboutme command in you server ? 18:33 < bridge> you think you can force the reader to learn ? it depends on them at the end 18:34 < bridge> i want to learn by not doing anything 🤓 18:34 < bridge> sounds cool 18:34 < bridge> please do all the work for me 👉 👈 18:36 < bridge> @learath2 u gotta learn html5! 18:36 < bridge> 🤓 20:03 < bridge> @learath2 https://github.com/ddnet/ddnet-web/blob/576ff722487dbf9853526aac805f36c91818af91/www/staff/index.html#L81C3-L81C43 20:03 < bridge> `
  • Lukov
  • `* 😄 20:15 < bridge> <_voxeldoesart> btw that video is take 20:15 < bridge> <_voxeldoesart> btw that video is fake 20:23 < bridge> fake in what way? 20:27 < bridge> <_voxeldoesart> https://techcrunch.com/2023/12/07/googles-best-gemini-demo-was-faked/ 20:27 < bridge> <_voxeldoesart> it isnt actually a video feed 20:28 < bridge> <_voxeldoesart> its just stitched together to make it seem that way 20:28 < bridge> https://github.com/ddnet/ddnet-web/tree/master/www/countryflags can i yoink all of these images :santatrollet: 20:37 < bridge> sensible critique 20:37 < bridge> IMO 20:38 < bridge> saying it's faked it's like accusing google to lie. They didn't, you just had to click here. 20:38 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1182768238392787124/image.png?ex=6585e5c2&is=657370c2&hm=ade3f674442258c66076efde2942002f2c184e630b03ea49750f7cdd270e6207& 20:39 < bridge> as if somebody reads that 20:39 < bridge> bard plus or however is called is still and improvement over gpt4 20:39 < bridge> if it's fake, then it's a scam 20:39 < bridge> that simple 20:40 < bridge> imo it's not faked. just rendered in a "nice" way 20:40 < bridge> but I can understand the critics 20:40 < bridge> i dunno, to me putting something in a light that makes your product shine more than it actually delivers is a scam 20:41 < bridge> i'd be ok if they needed 10 tries to get it working 20:41 < bridge> but if it never worked like that 20:41 < bridge> scam 20:41 < bridge> maybe. 20:41 < bridge> Imo it would be if they didn't add that. For me it's more like showcasing it's potential 20:41 < bridge> the potential of AI is GI 20:41 < bridge> so dunno 20:41 < bridge> GI? 20:41 < bridge> AGI 20:42 < bridge> I watched the video and didn't understand this 20:42 < bridge> clearly they tried to hie it 20:42 < bridge> clearly they tried to hide it 20:42 < bridge> don't do that, it's not nice 20:43 < bridge> the potential of their model. 20:43 < bridge> If you see any other videos google posted you realize it's not that impressive tho xd 20:47 < bridge> yeah but potential 20:47 < bridge> in 10 years? 20:47 < bridge> anyway, tbf i didnt read the critique xD 20:47 < bridge> so i dunno if it's a scam, but the video already was a little weird 20:47 < bridge> the way the person talked, sounded unnatural xD 21:11 < bridge> ку 21:11 < bridge> как дела 21:11 < bridge> ? 21:12 < bridge> Non-english to #off-topic 22:22 < bridge> bro really wants that mod 22:30 < bridge> wow, first time in a lifetime i actually understood how this works, comments in actual code didn't help at all 22:52 < bridge> xd 23:02 < bridge> afternoon 23:10 < bridge> afterafterafternoon 23:13 < bridge> justnight 23:13 < bridge> it's 3:02 23:13 < bridge> no it isnt 23:13 < bridge> it's 3:13 23:16 < bridge> it's 0:16 here 23:24 < bridge> ??? 23:24 < bridge> your timezone is wrong 23:24 < bridge> tell your head of government to fix the clock 23:33 < bridge> no I am just in the future :O