01:25 < bridge_> how many developeres are working on ddnet? 04:01 < bridge_> y e s 04:01 < bridge_> You could look at the org page on github and check out the contributors 04:02 < bridge_> You could look at the org page on github and check out the people, or check contributors for the different repos 08:09 < bridge_> Actually more than teeworlds, which is more than 0 09:05 < bridge_> Atleast 2 09:55 < bridge_> a little rust -spider on my dusty monitor stand 09:55 < bridge_> @ryozuki 😏 09:56 < bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1234775239460917380/4325e4f9-0de3-4213-ba02-54e4dfd19a7b.png?ex=6631f58e&is=6630a40e&hm=2832f25510194096e502eed90f485262da378f160a68b1e2c9c2da3e15ba0bd1& 10:02 < bridge_> epyc 10:15 < bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1234780044266831894/RDT_20240430_1014561415075404650451272.jpg?ex=6631fa07&is=6630a887&hm=c4bd41c93a455524200d0d14973666a0682e599b9bdb538359ec48eacc5d775c& 10:16 < ws-client> @gumbatw yes as lerato says curl usually works ``curl https://ger10.ddnet.org/`` 10:16 < bridge_> https://godotengine.org/article/introducing-reverse-z/ 10:16 < bridge_> the blog title is a bit amusing 10:17 < ws-client> F shader 11:19 < bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1234796265989210173/MLIR2.png?ex=66320923&is=6630b7a3&hm=4aeeade7960ea87ca4f6b795642ebc5042f4e3529f1f87f482bfa9beb727a5da& 11:19 < bridge_> a graphic i made 11:20 < bridge_> im bad at this 11:20 < bridge_> why comic font xd 11:20 < bridge_> else looks good 11:20 < bridge_> its default from excalidraw 11:20 < bridge_> https://excalidraw.com/ 11:20 < bridge_> ah for the school kids 11:20 < bridge_> 😬 11:20 < bridge_> lmao 11:20 < bridge_> its not comic sans tho 11:20 < bridge_> tru 11:20 < bridge_> its hand written -like 11:27 < bridge_> Best software ever made 😄 I use it daily in work 11:27 < bridge_> I used excalidraw a lot when adding hand drawn stuff to my notes 11:28 < bridge_> In the past I used drawio a lot, but it was too complicated 11:28 < bridge_> excalidraw just does its job & it does it good tho. FigJam is a good alternative, its super simple aswell 🙂 11:38 < bridge_> I used excalidraw in obsidian then gave up 11:38 < bridge_> I just heard about this today https://graphite.rs/ 11:50 < bridge_> For the Rust crowd: I created twstorage (https://crates.io/crates/twstorage), its mostly functionality from `storage.cpp` 11:50 < bridge_> You can use it to find the local data and config directory of ddnet/teeworlds. It also provides methods (for now only `open_file`) to access these directories, with logic to first scan the config directory and then afterwards the data directory 11:50 < bridge_> https://www.mcmillen.dev/sigbovik/ 11:50 < bridge_> epuc 11:54 < bridge_> is ofc your choice, but are you sure you want it to be sync instead of being async? 11:54 < bridge_> 11:54 < bridge_> if someone some day uses it, you might have to maintain both versions ^^ 11:55 < bridge_> hey how do i draw a bezier curve correctly? are there any helper functions within ddnet? 11:56 < bridge_> well i don't actually want a bezier curve. 11:57 < bridge_> I haven't really put thought into that yet, good idea actually. Until now I usually wrote everything sync, and found some async stuff not that useful I needed to add a dependency to simply make it sync. I might also be using them wrong :D 11:57 < bridge_> I'm open for async function in there ofc, though sync function do also make sense I think 11:58 < bridge_> like this im not sure how its called xd 11:58 < bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1234805957553422336/image.png?ex=66321229&is=6630c0a9&hm=8fbeca3c367386da53e4cf3643080113b43d7e466dd17345b6a86aa69a668399& 11:58 < bridge_> i think u can also add pollers that simply wait for async tasks in place 11:58 < bridge_> ryo shared one once 11:58 < bridge_> yup, thats the dependency ^^ 11:58 < bridge_> polster or smth 11:58 < bridge_> a spline? 11:58 < bridge_> thats the standard one 11:58 < bridge_> yeah i personally use tokio for most stuff 11:59 < bridge_> it's og and fast and can do basically anything 11:59 < bridge_> ```rs 11:59 < bridge_> pub fn interpolate(frac: f32, curve: CurveKind) -> f32 { 11:59 < bridge_> use CurveKind::*; 11:59 < bridge_> match curve { 11:59 < bridge_> Step => 0., 11:59 < bridge_> Linear => frac, 11:59 < bridge_> Slow => frac.powi(3), 11:59 < bridge_> Fast => 1. - (1. - frac).powi(3), 11:59 < bridge_> // TODO: Implement Bezier curves 11:59 < bridge_> Smooth | Bezier(_) => 3. * frac.powi(2) - 2. * frac.powi(3), 11:59 < bridge_> Unknown(_) => 0.5, 11:59 < bridge_> } 11:59 < bridge_> } 11:59 < bridge_> ``` 11:59 < bridge_> *cough* I should also implement bezier at some point *cough* 11:59 < bridge_> pro 11:59 < bridge_> me too xD 11:59 < bridge_> that would be the `Smooth` curve type, judging from your drawing 11:59 < bridge_> Epico ❤️ 12:00 < bridge_> in c++ 😭 12:00 < bridge_> anyway i solved it 12:00 < bridge_> thx :D 12:01 < bridge_> I should learn rust 12:06 < bridge_> the calculation is relatively simple: linear interpolation with a fraction between 0 and 1: `3 * frac^2 - 2 * frac^3` 12:08 < bridge_> :owo: 12:08 < bridge_> This isnt linear Interpolation tho IS it ? 12:08 < bridge_> This isnt linear Interpolation tho is it ? 12:08 < bridge_> well you modify the factor for the linear interpolation 12:08 < bridge_> so it isn't linear anymore, but you still use the function for the linear interpolation 12:11 < ws-client> epic patiga lib moment 12:11 < bridge_> I See 12:12 < ws-client> I think it is time some creates an awesome-tw-libraries repo listing all ready to use libraries so users know what they can use 12:13 < ws-client> because some things are hard to find or nobody even dares to search for them 12:14 < bridge_> just do it 12:14 <@heinrich5991> I think there's a wiki page 12:14 < bridge_> What about Heinrichs teeworlds GitHub written in Rust thingy ( i forgot the actual Name ) 12:14 < bridge_> https://tenor.com/view/just-do-it-shia-la-beouf-do-it-gif-4531935 12:14 < bridge_> true 12:14 < ws-client> libtw2 12:15 < bridge_> there are truely many already. remember that weird python injection lib that alters your scoreboard xD 12:15 < bridge_> at runtime 12:15 < bridge_> https://wiki.ddnet.org/wiki/Resources#Tool_and_libraries 12:15 < ws-client> there are some wiki pages and some awesome lists 12:15 < ws-client> but i mean something just for libs 12:15 < bridge_> The Point Display ? 12:15 < bridge_> Its great as hell gahaha 12:15 < ws-client> exclusively 12:15 < bridge_> Sadly outdated 12:15 < bridge_> there is a section for the libs 12:15 < bridge_> there 12:15 < bridge_> yeah :lol: 12:15 < bridge_> ``` 12:15 < bridge_> Tool and libraries 12:15 < bridge_> 12:15 < bridge_> Extra tools in C++ by DDNet 12:15 < bridge_> libtw2 a lot of DDNet related libraries in Rust by heinrich5991 12:15 < bridge_> twmap DDNet map library in Rust by Patiga 12:15 < bridge_> twmap Python library 12:15 < bridge_> twmap Blender plugin 12:15 < bridge_> Image to Map tool 12:15 < bridge_> teehistorian: Teehistorian parser in Rust by Zwelf 12:15 < bridge_> twgame: Teehistorian replayer in Rust by Zwelf 12:15 < bridge_> teemasterparser by Ryozuki 12:15 < bridge_> teestatus: Server info requestor in Rust by Ryozuki 12:16 < bridge_> teeint: A teeworlds variable integer packer/unpacker in Rust by Ryozuki. 12:16 < bridge_> teeworlds: Javascript headless net-client on npm.js (Gitlab) by Swarfey 12:16 < bridge_> TeeSharp: C# Teeworlds implementation by Matodor 12:16 < bridge_> Teeworlds Client Ruby 0.7 Teeworlds implementation by ChillerDragon 12:16 < bridge_> ddnet-skeleton readme: This repository aims to be the skeleton for creating modifications on top of the latest DDNet version. It currently modify the DDNet code so it can support teams, damage, ammo and pickup respawn features. 12:16 < bridge_> DDNet friends Panel Gnome extension showing online DDNet friends by hus3h 12:16 < bridge_> ``` 12:16 < bridge_> It jiggles with memory to Display the Points of everyone, i was in aww when i read through it. 12:16 < ws-client> it is interesting https://github.com/MageDelfador/DDNet-show-points-in-game 12:16 < ws-client> but not a lib imo 12:17 < ws-client> ok i guess the wiki works 12:17 < ws-client> go someone add patigas new lib 12:17 <@heinrich5991> doityourself 12:17 < bridge_> Give him His Well deserved clout 12:17 < bridge_> "Project 'Zwelf/twgame' was moved to 'ddnet-rs/twgame'. Please update any links and bookmarks that may still have the old path." 12:17 < bridge_> 😬 12:18 < bridge_> :justatest: 12:18 < ws-client> nah i go offline now 12:18 < ws-client> i still have ptsd from my last wiki contribution 12:19 < bridge_> :justatest: 12:19 < ws-client> btw heinrich i tested to remove the bool and it did break snaps 12:24 <@heinrich5991> did you remove the call site I mentioned? 12:29 < bridge_> <3 13:59 < bridge_> Is this the first heinrich appearance in a while? 14:01 < bridge_> he was active on github 14:01 < bridge_> and in discord since yesterday 14:01 < bridge_> but it was not rewind time yet 14:01 < bridge_> 😬 14:13 < bridge_> I was disappointed in myself and I was disappointed in wanting to solve a problem :cammo: 14:16 < bridge_> the path is the goal. maybe you at least learned something new 14:18 < bridge_> yeah I noticed that solving problem is not everything it's should be readable and understandable for others (I can't understand my codes too :D) 14:25 < bridge_> Thats Part of the learning process, Check my First ever PR to ddnet, i felt so stupid :kek: 14:25 < bridge_> Ah i meant my Second one, the First one was Just a refactor 14:29 < bridge_> Yeah senpai I saw your PR before 😛 14:33 < bridge_> this is my first one: 14:33 < bridge_> https://github.com/ddnet/ddnet/pull/861 14:33 < bridge_> 😏 14:33 < bridge_> 62 commits xDDD 14:34 < bridge_> back when i didnt know about force pushing 14:43 < bridge_> Now I understand why you can handle 400+ tee on your server and I can barely handle 112 tee 🙂 14:54 < bridge_> bcs i wrote the physics in GPU language to run it on my GPU? 14:54 < bridge_> 14:54 < bridge_> that would be cool af, ngl 14:55 < bridge_> 👍 😋 14:55 < bridge_> you wrote with Rust right ? 14:55 < bridge_> you wrote it with Rust right ? 14:55 < bridge_> i only write rust since 1.5 years 14:55 < bridge_> 14:55 < bridge_> before that i wrote all stuff in cpp 14:56 < bridge_> also nowadays i'd probably write it with a vulkan-like backend, instead of OpenGL 14:56 < bridge_> hmmm cool 15:01 < bridge_> I was going to create server to be able handle at least 128 slot for special events to be able celebrating that events on that port but I have a few problem on client side that `m_Snap.m_pLocalCharacter` is null after 112+ connected tee and it's cuz of opening scoreboard, You don't have this problem on yours right ? 15:02 < bridge_> It can only handle 64 15:03 < bridge_> yes, safe rust doesn't really use pointers anyway. 15:03 < bridge_> 15:03 < bridge_> but my rust version is more scalable. 15:03 < bridge_> 15:03 < bridge_> Btw just bcs i had 400+ chars on my server, that doesn't mean that it could handle 400 connections from other ppl 15:03 < bridge_> even on your server ? 15:03 < bridge_> i never tested that 15:03 < bridge_> The client itself can handle 64 clients only, the server has to exchange these slots for each client dynamically 15:04 < bridge_> yeah I noticed that even when I connect 128 dummy my pred increase like 2x as normal 15:04 < bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1227001251955474562/image.png?ex=663205b7&is=6630b437&hm=0c3a63bea50ababa56c68639e46ca1c0d11cec9b29e01249da40c449063bb90f& 15:04 < bridge_> i mean here are like 1000 entries in the scoreboard 15:04 < bridge_> it's hard to read bcs of the colors 15:04 < bridge_> but locally i could read it 15:04 < bridge_> I read you commits and use it but didn't solve them problem of vanishing some characters and stuck on opened scoreboard 15:05 < bridge_> I liked your scoreboard 😄 15:05 < bridge_> Well, that's what happens when you just take the commits/code. 15:05 < bridge_> It's a complicated thing to realize this feature 15:05 < bridge_> So 15:05 < bridge_> yeah could be better with a light color or something 15:05 < bridge_> If you want to solve all edge cases it's gonna be hard work 15:06 < bridge_> There are countless commits in F-DDrace regarding the 128p translation layer 15:06 < bridge_> Yeah it's take more time can't solve with copy pasting in 1 hour of work 15:06 < bridge_> yep, i'll soon work on client ui again to fix such stuff 😄 15:06 < bridge_> haha 15:06 < bridge_> Like to see it 15:06 < bridge_> It'll probably be easier taking ddnet's 64p<->16p algorithm 15:07 < bridge_> and adjusting that to suit 128p<->64p translation 15:07 < bridge_> I don't know maybe I should completely use your source as my main and add my client to server api to or don't know 15:07 < bridge_> You can do that, but my server is 0.7 based, with a lot of features and things basically 15:07 < bridge_> So, dont know if it'll suit your usecase 15:08 < bridge_> yeah that a problem too 15:08 < bridge_> https://github.com/Jupeyy/teeworlds-fng2-mod 15:08 < bridge_> 15:08 < bridge_> in this mod i have 256 player support btw 15:08 < bridge_> it's 0.7 15:08 < bridge_> but it's based on vanilla 15:08 < bridge_> Based on it, but ddnet can join 15:08 < bridge_> And has full support 15:08 < bridge_> biggest problem is the 128p code is all around the whole source code 15:08 < bridge_> so you'll definitely forget some parts when taking it🤷‍♂️ 15:08 < bridge_> yeah I saw that and I asked once about netmessageex support on it 15:09 < bridge_> F-DDrace has that 15:09 < bridge_> I want to use for both block and ddrace 15:10 < bridge_> Hm, fddrace does not have every current ddnet feature 15:10 < bridge_> and it uses custom tiles which might nowadays be used by ddnet 15:10 < bridge_> cuz my server right now are completely with custom client you know I have soundboard and animated emoticon that need to use netmessageex to send or receive data 15:10 < bridge_> ah 15:10 < bridge_> If you have custom client anyways, then just fix ur client to support 128p 15:10 < bridge_> Then ur server doesnt need this compatibility code 15:10 < bridge_> yeah that the case for ddrace I might got problem if use your gamemode 15:11 < bridge_> NET_MAX_CLIENTS=128 fix all crashes along the way and there we go 15:11 < bridge_> that the problem I can do it like by adding scollable scoreboard or something like that to show whole player list but don't know how to fix vanishing or that m_Snap.m_pLocalCharacter is become null in some points 15:12 < bridge_> You dont need all of that anymore 15:12 < bridge_> Dont use this algorithm 15:12 < bridge_> I already did to solve some problem but it's not perfect yet 15:12 < bridge_> In client ? 15:12 < bridge_> yeah 15:12 < bridge_> on server side I think it's work fine for everything 15:12 < bridge_> Remove the compatibility code algorithms and then no character should be missing cuz the server will send every 128 tees 15:13 < bridge_> problem is on client side that can't show everything and it's problem only happening when I want to see whole 128 player in my screen if I move every from some of them it's work fine 15:13 < bridge_> yeah thats because of the algorithm 15:13 < bridge_> remove it 15:13 < bridge_> Your client is capable of showing all tees 15:14 < bridge_> don't know about it or where is it 15:14 < bridge_> gameworld.cpp is the translation 15:14 < bridge_> i thi j 15:14 < bridge_> think 15:14 < bridge_> anyways i gtg 15:14 < bridge_> oh I'll check thank for your guide ❤️ 15:14 < bridge_> Np, im just unsure whether we talked past each other but ye xd 15:15 < bridge_> thank you too ❤️ 15:15 < bridge_> yeah we talked before on discord's dm 15:15 < bridge_> 4 years ago 15:15 < bridge_> 5 15:16 < bridge_> yeah about scroll on ddnet scoreboard 15:16 < bridge_> 😄 15:16 < bridge_> I am stucking on this for 5 years wtf 15:16 < bridge_> =)) 15:16 < bridge_> wtf xD 15:16 < bridge_> I should move on I think 15:16 < bridge_> u use a custom client anyway right? 15:16 < bridge_> yeah 15:16 < bridge_> I show you before 15:16 < bridge_> can you send the source code? 15:16 < bridge_> that one that has intro movie 15:16 < bridge_> yeah i remember 15:17 < bridge_> it's for the company that i work for them can't share source code 😦 15:17 < bridge_> you use windows? 15:17 < bridge_> yes 15:17 < bridge_> mh ok 15:17 < bridge_> with linux you could use "sanitizers" then you'd quickly find out why it crashes exactly 15:17 < bridge_> I just support on windows cuz my 99% of players playing on windows 15:18 < bridge_> it's not crash 15:18 < bridge_> u said there is a null ptr 15:18 < bridge_> yes but don't crash 15:18 < bridge_> just opening scoreboard and I can't move or see myself 15:18 < bridge_> but every other tee can move 15:19 < bridge_> I can record by OBS if you want to see what exactly happening 15:19 < bridge_> ok but i feel like there is a buffer overflow or smth 15:19 < bridge_> 15:19 < bridge_> why should an essential var like m_pLocalPlayer be null for no reason 15:19 < bridge_> sry but i can only help with reading source.. anything else is random guessing 15:20 < bridge_> I think when I disconnect and reconnecting again it's get fix again or don't know don't remember it exactly let me check 15:20 < bridge_> yeah I know 15:20 < bridge_> mh ok, anyway, if u can additionally install linux to your windows, and can compile the client there 15:20 < bridge_> u'd have an easier time 15:20 < bridge_> trust me 15:20 < bridge_> I have arch as dual boot 15:21 < bridge_> + margin_from_tee / 2.0 15:21 < bridge_> ups 15:21 < bridge_> https://github.com/ddnet/ddnet?tab=readme-ov-file#building-on-windows-with-microsoft-visual-c 15:21 < bridge_> WTF 15:21 < bridge_> wtf 15:21 < bridge_> 😄 15:21 < bridge_> https://github.com/ddnet/ddnet?tab=readme-ov-file#using-addresssanitizer--undefinedbehavioursanitizer-or-valgrinds-memcheck 15:21 < bridge_> this one 15:21 < bridge_> sry 15:21 < bridge_> no problem 15:21 < bridge_> most important tool when you deal with cpp code 15:22 < bridge_> tnx didn't know it cuz I'm working on DDNet from DDNet 6 or something but still noob what's wrong with me 😄 15:22 < bridge_> tnx didn't know it, I'm working on DDNet from DDNet 6 or something but still noob what's wrong with me 😄 15:22 < bridge_> tnx didn't know it, I'm working on DDNet since DDNet 6 or something but still noob what's wrong with me 😄 15:23 < bridge_> well it's hard to get better by just doing random coding. 15:23 < bridge_> 15:23 < bridge_> You need a goal and design for this goal 15:23 < bridge_> visualize what you want to create and design your code for it 15:24 < bridge_> Maybe I skip basics 15:24 < bridge_> if u can't get further with code, write comments and leave code out 15:24 < bridge_> try to explain to yourself what you want 15:24 < bridge_> I never used comments but I should cuz it's really help to myself I know it 15:25 < bridge_> I never used comments but I should cuz it's really help to me I know it 15:25 < bridge_> also never shy away from rewriting stuff. sometimes it's normal that you do it completely wrong 15:26 < bridge_> I do sometime I completely remove everything and start it again I'm not lazy 😄 15:27 < bridge_> Well for screen switch I start coding from zero 3 times but didn't get what I wanted to achieve 15:29 < bridge_> yep but that is because this isn't really easy. 15:29 < bridge_> 15:29 < bridge_> You first have to understand the workflow 15:29 < bridge_> windows sees you change screen -> sends an event -> sdl polls all events -> our SDL stuff in input.cpp handles events -> you update variables related to screen (like gfx_screen) 15:29 < bridge_> i think that should already be enough, but i don't know what exactly the original issue was. probably some variables were not updated, because the screen resolution changed etc. 15:30 < bridge_> i also find our graphics code a bit messy 15:30 < bridge_> yeah variables won't update on settings->graphics and need to get resize after switch by hoykeys 15:31 < bridge_> I fixed when we switch using it's drop down menu 15:33 < bridge_> :justatest: 15:34 < bridge_> don't worry everyone can't be like Juppy with PR that have 30+ commits 😄 15:35 < bridge_> don't worry everyone can't be like Juppy with first PR that have 30+ commits 😄 15:35 < bridge_> i wish i could leak some private repo stuff i did 15:35 < bridge_> "lil fix" : 4000+ 9582- 15:35 < bridge_> well you can share them with me 15:35 < bridge_> "lil refactor" 92 changed files 15:35 < bridge_> 😄 15:36 < bridge_> I know that you have something cool that hiding everyone 15:36 < bridge_> 😛 15:36 < bridge_> :kek: 15:37 < bridge_> what you working on this days ? 15:37 < bridge_> mostly rust shenanigans and blockworlds 15:37 < bridge_> BW is your ?! 15:37 < bridge_> BW is yours ?! 15:38 < bridge_> i am the maintainer of the git repo atm 15:38 < bridge_> little leak on how its going atm: 15:38 < bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1234861522631655514/image.png?ex=663245e9&is=6630f469&hm=f5a18f83816dbc76bab985f080dbb0deebc5a765f2c678fad718c4a144396e81& 15:39 < bridge_> I remember that a few years ago I was willing to have source of BW but don't remember what was the reason 15:39 < bridge_> maybe that was ZombieBlock 15:39 < bridge_> don't remember it what was exactly but yeah 15:40 < bridge_> i dont even know how i ended up in blockworlds, i think @painn1013 forced me or smth 15:40 < bridge_> you have accounting system on your source ? 15:40 < bridge_> i am the maintainer of the git repo atm, i am not the Owner tho, brokecdx is 15:40 < bridge_> yes 15:40 < bridge_> i wrote a rust api for that :D 15:40 < bridge_> like `src/game/server/accounting` 15:41 < bridge_> nice i have nodejs API for my client side account system 15:41 < bridge_> client-side account system?? huuuh 15:41 < bridge_> don't know rust anyway but I should learn it 15:41 < bridge_> didn't see it ? 15:41 < bridge_> nu uh 15:41 < bridge_> share 15:41 < bridge_> let me record it 😄 15:44 < bridge_> you mean like dis? 15:44 < bridge_> https://github.com/ddnet/ddnet/pull/4687/commits/fbeba9eb5fda781b935575a1b1561c3f74f1e5a1 15:44 < bridge_> 😬 15:44 < bridge_> :KEKW: 15:45 < bridge_> :poggers2: 15:47 < bridge_> @jupeyy_keks get cancled by a bot ggwp 15:47 < bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1234863687505018933/image.png?ex=663247ed&is=6630f66d&hm=18ce9fba432b1019dc5665cfccf71d057e60683c70e0e60ec2a2208c7c740741& 15:47 < bridge_> 😏 15:47 < bridge_> back then bors didnt like me 15:47 < bridge_> he ain't no rust coder 15:47 < bridge_> AHAHAH this one is even funnier: 15:48 < bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1234863831646208000/image.png?ex=66324810&is=6630f690&hm=a4d6d5c8a0af118c12128972e10502b22493cac0f79c3a17a6a1a756babf8339& 15:48 < bridge_> uff 15:48 < bridge_> that was personal 15:48 < bridge_> XDDD 15:54 < bridge_> I record my whole client but it's 95 mb let me resize it 😄 15:54 < bridge_> :justatest: 15:54 < bridge_> don't worry senpai I got you 😋 16:00 < bridge_> hrmpf are the external mapres in the data directory not dilated @jupeyy_keks ? :ouch: 16:00 < bridge_> they are not? 16:00 < bridge_> we have a CI for that 16:00 < bridge_> that would be RIP to the CI XD 16:00 < bridge_> that would explain some visusual bugs on some render outputs 16:00 < bridge_> maybe they are the tho 16:00 < bridge_> can u name one 16:00 < bridge_> explicitly 16:01 < bridge_> wouldve been an ez explanation though 16:01 < bridge_> then i look 16:01 < bridge_> u can also share the output 16:01 < bridge_> maybe i can guess the problem 16:01 < bridge_> https://cdn.discordapp.com/attachments/295908390956433410/1234864648810135713/dm1_pixelart.png?ex=663248d2&is=6630f752&hm=c2693c08d5d89e47fa8181dd9c069d50711ec227d6daaad235b72a7113c7cee8& 16:02 < bridge_> https://discord.com/channels/252358080522747904/295908390956433410/1234864649091158108 16:02 < bridge_> which tool was used for this 16:02 < bridge_> your renderer? 16:02 < bridge_> yes 16:02 < bridge_> does the image that you create do post processing? 16:03 < bridge_> https://cdn.discordapp.com/attachments/976556089611018322/1234861095383203940/dm1_240x200.png?ex=66324583&is=6630f403&hm=cb26039e53c89c7c325d6244ace77e16c60725d45b7bd562b8852aae59efd505& 16:03 < bridge_> no 16:03 < bridge_> in particular that cloud 16:03 < bridge_> does it store the alpha values? 16:03 < bridge_> how do you mean? it only uses the color channels, no depth etc 16:04 < bridge_> do you fetch that image from the GPU directly? 16:04 < bridge_> as is? 16:04 < bridge_> yes 16:04 < bridge_> and do you make sure alpha values are set to 255? 16:04 < bridge_> best way I know of at least for wgpu 16:04 < bridge_> else: 16:04 < bridge_> are mipmaps active in that image? 16:04 < bridge_> yes 16:04 < bridge_> does it happen without? 16:05 < bridge_> hm unsure 16:05 < bridge_> will test next time i'm on my laptop 16:06 < bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1234868523042471979/image.png?ex=66324c6e&is=6630faee&hm=7052a8d9887218b27afa3416a43f5921dab9a4a4f16496cfaba1893738ee62a4& 16:06 < bridge_> if i force a high LOD index it happens 16:08 < bridge_> so higher mip level, right? 16:08 < bridge_> yeah 16:08 < bridge_> but... 16:08 < bridge_> isnt that a bug? 16:08 < bridge_> certainly 16:09 < bridge_> that is not a desired behavior 16:09 < bridge_> for your pixel art tool it's ofc problematic 16:10 < bridge_> https://github.com/ddnet/ddnet/commits/master/data/mapres/bg_cloud3.png 16:10 < bridge_> 16:10 < bridge_> > Revert "Dilate & optimize non-dilated images" 16:10 < bridge_> 16:10 < bridge_> ^ last commit in the history of that file 16:11 < bridge_> they are dilated 16:11 < bridge_> already checked 16:11 < bridge_> but dilate only expands a few pixels 16:11 < bridge_> ah 16:12 < bridge_> nearest neighbor but only within a certain distance I guess? 16:12 < bridge_> i assume it's mostly bcs the amount of mipmaps you create. 16:12 < bridge_> 16:12 < bridge_> every mipmap blits between black and non black transparent pixels 16:13 < bridge_> its only a rly low resolution btw 😅 16:13 < bridge_> so the more often you do it, the more black u get 16:13 < bridge_> so more extensive dilation would help, right? 16:13 < bridge_> it might have other side effects tho 16:14 < bridge_> hm, anything in particular? 16:14 < bridge_> mixing red with green is probably not desired either xD 16:15 < bridge_> but dilation just didnt do anything for many pixels here. simply giving each pixel a valid color would've helped here 16:15 < bridge_> I don't want to change how dilation works, only find a wa to not give up pixels with no suitable neighbour 16:16 < bridge_> it's defs better than the current thing 😄 16:17 < bridge_> I don't think any pixel on the cloud mapres is black at all ^^ 16:17 < bridge_> if you need dilate in rust: 16:17 < bridge_> https://github.com/Jupeyy/dd-pg/blob/d5009f76e5909be7b8e4be7bda16af1e2118c58b/lib/graphics/src/image.rs#L8 16:17 < bridge_> 16:17 < bridge_> 16:17 < bridge_> but untested xdd 16:17 < bridge_> you are free to use it ^^ 16:17 < bridge_> thanks :) 16:18 < bridge_> or a compute shader? xd 16:18 < bridge_> nah, I dont think thats a good usecase 16:18 < bridge_> i'd honestly just disable mipmaps in your case. or don't take such a high mipmap 16:19 < bridge_> strictly speaking you could say mipmaps are also just a hack 16:19 < bridge_> wait I think I know the fix 16:20 < bridge_> if you want a custom shader, u could simply fetch the texels from texture manually and do interpolation 16:20 < bridge_> I should sample smarter for the mipmaps. not simple blit 16:20 < bridge_> take the alpha value into account of the neighbouring pixels 16:20 < bridge_> that sounds like perfect fix actually 16:20 < bridge_> u could also rewrite you code to use pre multiplied alpha 16:21 < bridge_> especially if you do the calculation on the GPU anyway 16:21 < bridge_> for the rendering or creation of mipmaps? 16:21 < bridge_> I'll need to take a look at premul alpha gain 16:21 < bridge_> the biggest flaw of pre multiplied textures is creating mipmaps (precision loss here) and precision loss generally. but if u directly do it on the GPU it should be better i guess 16:22 < bridge_> for all of your rendering 16:22 < bridge_> so do the pre multiplying in the fragment shader i mean 16:22 < bridge_> huh I'll read up on that next, then 16:22 < bridge_> not beforehand 16:23 < bridge_> so not really pre multiplied xdd 16:23 < bridge_> multiplied on the fly 16:23 < bridge_> alrighto ^^ 16:23 < bridge_> thanks a ton for the debugging discussion, I enjoyed it :music: 16:33 < bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1234875295006195722/clcl_out.mp4?ex=663252bd&is=6631013d&hm=573ad5436deb7f50902bf963dadfca5993d3bcb3e2aadc41ed029b4e1c459637& 16:34 < bridge_> DUDE HAS A PAY 2 WIN CLIENT GGWP 16:35 < bridge_> g tee a 16:35 < bridge_> nice speedrun of all your features 16:36 < bridge_> some stuff looks really good ngl 16:45 < bridge_> tnx I sell extra soundboard effects and vip and etc 16:45 < bridge_> tnx 16:45 < bridge_> https://www.tuwien.at/en/tu-wien/news/news-articles/news/lange-erhoffter-durchbruch-erstmals-atomkern-mit-laser-angeregt 16:46 < bridge_> :gigachad: 16:46 < bridge_> > This marks the start of a new exciting era of research: now that the team knows how to excite the thorium state, this technology can be used for precision measurements. "From the very beginning, building an atomic clock was an important long-term goal," says Thorsten Schumm. "Similar to how a pendulum clock uses the swinging of the pendulum as a timer, the oscillation of the light that excites the thorium transition could be used as a timer for 16:46 < bridge_> tnx :gigachad: 16:46 < bridge_> > But it is not just time that could be measured much more precisely in this way than before. For example, the Earth's gravitational field could be analyzed so precisely that it could provide indications of mineral resources or earthquakes. The measurement method could also be used to get to the bottom of fundamental mysteries of physics: Are the constants of nature really constant? Or can tiny changes perhaps be measured over time? "Our measuring 16:46 < bridge_> epyc 17:17 < bridge_> <1234503178> Hi all! I want to offer you an idea to expand our favorite editor 17:17 < bridge_> <1234503178> Maybe someone suggested this, but I didn’t delve into the proposals 17:17 < bridge_> <1234503178> 17:17 < bridge_> <1234503178> I would prefer to see "triggers" in the game that activate/change something when activated by tee's hitbox or tee's action 17:17 < bridge_> <1234503178> I think this will be an extended version of Switch, but it will be called differently 17:17 < bridge_> <1234503178> 17:17 < bridge_> <1234503178> Speaking of switch, it would be a good idea to combine them with quad or tele, speedup, tune, switch e.t.c layer 17:17 < bridge_> <1234503178> 17:17 < bridge_> <1234503178> My main idea was that mappers of our game would be able to add triggers to their maps, which, for example, would be able to move/activate tiles when they 17:17 < bridge_> <1234503178> Or change the color/quad when the trigger is turned on 17:17 < bridge_> <1234503178> You can also make the trigger turn on under some conditions, for example, is there 2 tee on them, or only when 5 tee at the same time 17:17 < bridge_> <1234503178> 17:18 < bridge_> <1234503178> I think this can be implemented, because the game Geometry Dash (where the idea comes from) is made in C++, as is DDraceNetwork, based on the fact that Cocos2d-x only supports C++ 17:18 < bridge_> <1234503178> And I also think that the trigger action code is already publicly available from gd, I don’t think it would be difficult to transfer it to our game 17:18 < bridge_> <1234503178> . 17:18 < bridge_> <1234503178> . 17:18 < bridge_> <1234503178> . 17:18 < bridge_> <1234503178> . 17:18 < bridge_> <1234503178> . 17:18 < bridge_> <1234503178> . 17:18 < bridge_> <1234503178> I would also like to see 3D graphics in the game, like on map "acq" but only there it works a little strangely (in circles) 17:18 < bridge_> <1234503178> Although this breaks the concept of the game a little, because it is called a 2D shooter, it is possible to “deepen” the game at least a little 17:18 < bridge_> <1234503178> 17:18 < bridge_> <1234503178> I would also like to ask why they won’t add 0.01 pixel movement of tiles to the game (I don’t know what this measurement is called) 17:18 < bridge_> <1234503178> I studied this a little, and noticed that only the texture can be moved by 0.01, but the tile itself cannot 17:18 < bridge_> <1234503178> Just explain how it works and why you can’t move the tile by 0.01, it seems like a good idea too 17:18 < bridge_> <1234503178> . 17:18 < bridge_> <1234503178> . 17:18 < bridge_> <1234503178> . 17:18 < bridge_> <1234503178> . 17:18 < bridge_> <1234503178> . 17:18 < bridge_> <1234503178> . 17:18 < bridge_> <1234503178> . 17:18 < bridge_> <1234503178> . 17:18 < bridge_> <1234503178> And lastly, why do the colors work strangely in the game? when you superimpose red (FF8080) and yellow (FFFF80) on a white background, you don’t get orange, but you get dull yellow (FFBF40) (1 video) 17:18 < bridge_> <1234503178> 17:18 < bridge_> <1234503178> Also, when mixing colors, the wrong shades are obtained. 17:19 < bridge_> <1234503178> 17:19 < bridge_> <1234503178> For example with blue color: 17:19 < bridge_> <1234503178> . 17:19 < bridge_> <1234503178> . 17:19 < bridge_> <1234503178> . 17:19 < bridge_> <1234503178> . 17:19 < bridge_> <1234503178> . 17:19 < bridge_> <1234503178> . 17:19 < bridge_> <1234503178> . 17:19 < bridge_> <1234503178> . 17:19 < bridge_> <1234503178> And lastly, why do the colors work strangely in the game? when you superimpose red (FF8080) and yellow (FFFF80) on a white background, you don’t get orange, but you get dull yellow (FFBF40) (1 video) 17:19 < bridge_> <1234503178> 17:19 < bridge_> <1234503178> https://cdn.discordapp.com/attachments/293493549758939136/1234886512332771328/1.mp4?ex=66325d2f&is=66310baf&hm=5ab1663bdc9fa6e52c8ef3721e738d640de0d5abafbfad4480a44edd3abbbfcc& 17:19 < bridge_> <1234503178> . 17:19 < bridge_> <1234503178> . 17:19 < bridge_> <1234503178> . 17:19 < bridge_> <1234503178> . 17:19 < bridge_> <1234503178> . 17:19 < bridge_> <1234503178> . 17:19 < bridge_> <1234503178> . 17:19 < bridge_> <1234503178> . 17:19 < bridge_> <1234503178> And lastly, why do the colors work strangely in the game? when you superimpose red (FF8080) and yellow (FFFF80) on a white background, you don’t get orange, but you get dull yellow (FFBF40) (1 video) 17:19 < bridge_> <1234503178> 17:19 < bridge_> <1234503178> Also, when mixing colors, the wrong shades are obtained. 17:19 < bridge_> <1234503178> 17:19 < bridge_> <1234503178> > For example with blue color: 17:19 < bridge_> <1234503178> > when mixed with red it should result in purple 17:19 < bridge_> <1234503178> > when mixed with blue it should turn out blue 17:20 < bridge_> <1234503178> > when mixed with green it should turn out blue🩵 (aqua) 17:20 < bridge_> <1234503178> 17:20 < bridge_> <1234503178> And here they are not the same, the same with other colors (video 2) 17:20 < bridge_> <1234503178> 17:20 < bridge_> <1234503178> 17:20 < bridge_> <1234503178> This is a small part of what interests me in this game, but for now this is all I want to know 17:20 < bridge_> <1234503178> . 17:20 < bridge_> <1234503178> . 17:20 < bridge_> <1234503178> . 17:20 < bridge_> <1234503178> . 17:20 < bridge_> <1234503178> . 17:20 < bridge_> <1234503178> . 17:20 < bridge_> <1234503178> . 17:20 < bridge_> <1234503178> . 17:20 < bridge_> <1234503178> And lastly, why do the colors work strangely in the game? when you superimpose red (FF8080) and yellow (FFFF80) on a white background, you don’t get orange, but you get dull yellow (FFBF40) (1 video) 17:20 < bridge_> <1234503178> 17:20 < bridge_> <1234503178> Also, when mixing colors, the wrong shades are obtained. 17:20 < bridge_> <1234503178> 17:20 < bridge_> <1234503178> > For example with blue color: 17:20 < bridge_> <1234503178> > when mixed with red it should result in purple 17:20 < bridge_> <1234503178> > when mixed with blue it should turn out blue 17:20 < bridge_> <1234503178> > when mixed with green it should turn out blue🔵 (aqua) 17:20 < bridge_> <1234503178> 17:20 < bridge_> <1234503178> And here they are not the same, the same with other colors (video 2) 17:20 < bridge_> <1234503178> 17:20 < bridge_> <1234503178> 17:20 < bridge_> <1234503178> This is a small part of what interests me in this game, but for now this is all I want to know 17:23 < bridge_> can u sum it up in 2 sentences? 17:23 < bridge_> GPT says: 17:23 < bridge_> > The author proposes adding "triggers" to the game that can activate or change elements based on tee actions, similar to concepts from another game like Geometry Dash. They also suggest enhancements like 3D graphics and finer tile movement, questioning color blending inconsistencies within the game. 17:25 < bridge_> 3d graphics? i'm in 17:27 < bridge_> <1234503178> Sorry, I meant something else, most likely the translator is not working well 17:28 < bridge_> <1234503178> 👍 17:31 < bridge_> <1234503178> a little off topic, but I was surprised by this GPT, which shortened my text by 9 times 17:31 < bridge_> <1234503178> a little off topic, but I was surprised by this GPT, which shortened my text by 9 times🤯 18:15 < bridge_> thats the only thing this gpt fella is good at 18:29 < bridge_> what is it with the LLM generated things at the moment? 18:29 < bridge_> they are so stressful to read 18:33 < bridge_> walls of text are always stressful 18:38 < bridge_> + 20:23 < bridge_> @jupeyy_keks the color mixing is curious, is it perhaps an unintuitive result of how alpha is handled? 20:26 < bridge_> It some how ends up with a hue closer to yellow than red, meanwhile the red and yellow being combined lie perfectly on 0 deg hue for red and 60 deg hue for yellow 20:34 < bridge_> Depending on which one is on top, it ends up closer to that one 😄 20:35 < bridge_> @1234503178 I guess that should explain how that works albeit in a crude manner. Idk why it happens, jupstar is the rendering wizard, he'd know better 21:21 < bridge_> LMFAO 21:21 < bridge_> another nobody trying to profit off the work of an open source project 21:21 < bridge_> get a job 21:38 < bridge_> well i'd not call it unintuitive, it's not happeening at the same time. one of the colors is first mixed with white 21:38 < bridge_> then the other is added to that mixed color