00:16 <+bridge> did github just change its look ? 00:17 <+bridge> earlier today or a few days ago for me 00:17 <+bridge> perhaps a gradual rollout? 00:18 <+bridge> just got it right now 00:18 <+bridge> where's dark mode ? 00:23 <+bridge> https://github.com/settings/appearance 01:05 <+bridge> is dark dimmed new 01:06 <+bridge> i don't really like the dark look on github but i might use that 08:42 <+bridge> yep 09:18 <+bridge> Is it up-to-date? 09:19 <+bridge> no. 09:38 <+bridge> ah oops 09:38 <+bridge> my bad 09:38 <+bridge> for some reason placed spectator_info in loop xd 09:38 <+bridge> teehee 09:44 <+bridge> ah no 09:44 <+bridge> still the same 09:53 <+bridge> can you give example code that gives the error? 09:57 <+bridge> ```rust 09:57 <+bridge> fn send_snapshots(&mut self) { 09:57 <+bridge> let mut peer_set = self.server.send_snapshots_peer_set.take(); 09:57 <+bridge> peer_set.clear(); 09:57 <+bridge> peer_set.extend(self.server.peers.keys()); 09:57 <+bridge> for snap_pid in &peer_set { 09:57 <+bridge> let mut builder; 09:57 <+bridge> let delta_tick; 09:57 <+bridge> let snap_ingame = if let PeerState::Ingame(ref mut ingame) = self.server.peers[snap_pid].state { 09:57 <+bridge> builder = ingame.snaps.new_builder(); 09:57 <+bridge> delta_tick = ingame.snaps.delta_tick().unwrap_or(-1); 09:57 <+bridge> 09:57 <+bridge> ingame 09:57 <+bridge> } else { 09:57 <+bridge> continue; 09:57 <+bridge> }; 09:57 <+bridge> builder.add(0, GameInfo { 09:57 <+bridge> game_flags: 0, 09:57 <+bridge> game_state_flags: 0, 09:57 <+bridge> round_start_tick: Tick(0), 09:57 <+bridge> warmup_timer: 0, 09:57 <+bridge> score_limit: 20, 09:57 <+bridge> time_limit: 0, 09:57 <+bridge> round_num: 1, 09:57 <+bridge> round_current: 1, 09:57 <+bridge> }); 09:57 <+bridge> if let Some(mode) = &snap_ingame.spectator_mode { 09:57 <+bridge> builder.add(snap_pid.0.assert_u16(), SpectatorInfo { 09:57 <+bridge> spectator_id: mode.to_net(), 09:57 <+bridge> x: snap_ingame.input.target_x, 09:57 <+bridge> y: snap_ingame.input.target_y, 10:04 <+bridge> ah no 10:04 <+bridge> bruh 10:04 <+bridge> for some reason character snap duplicates itself 10:04 <+bridge> should debug it more precisely next time 10:04 <+bridge> sorry for disturbing 13:06 <+bridge> @jupeyy_keks hi I am asking you directly, because I know you are familiar with the demo render. I want to render a demo similar to this video: https://youtube.com/clip/UgkxaatQ8twQC4FBRugJImdzcJogwhhG_dMB 13:06 <+bridge> Is this possible with the current release? 13:06 <+bridge> The background is: i am trying to finish the map notelebro right now and have a lot of failed attempts saved as a demo. (I have bound my kill bind to stop recording, kill and start recording a new demo). If I have a succesfull run, I want to render all the unsuccessful attempts into the successful demo too. How to do it? 13:13 <+bridge> My initial idea is to make the demo render capable of rendering ghost. Then convert the failed attempt demos to ghosts, and then make it possible to have multiple ghosts rendered at once. 13:16 <+bridge> I was working on this for a little bit, it's quite annoying with the current demo system but not impossible 13:17 <+bridge> Tldr without video ? 13:17 <+bridge> Rendering more than 64 tees would be hard unless they're ghost files 13:17 <+bridge> Ah so many tees at once 13:18 <+bridge> Yeah ghost files probably easier in this case 13:19 <+bridge> Will ghost files render in demos? 13:19 <+bridge> I was thinking demo files would be easier but maybe not 13:19 <+bridge> And can I have multiple ghosts? (Yes right?) 13:19 <+bridge> If not forcing that is probs still easier 13:19 <+bridge> Than process multi demo at once 13:20 <+bridge> But how to convert a demo into a ghost 13:20 <+bridge> Its a manual demo, recording starts after respawn, not after racestart 13:22 <+bridge> I could also change my client to save a ghost when I kill (not just finishh) 13:22 <+bridge> (There are no tools for this and the formats involved are not very easy to parse, it'll take a lot of work to chop up a demo of many attempts into many ghosts of single attempts) 13:22 <+bridge> You'll have a better time modifying the client to record a ghost per attempt at the first place 13:22 <+bridge> And then render the ghosts in the demo 13:23 <+bridge> I mean u could maybe load demo. Skip to a specific moment render all tees. Close demo go to next etc. 13:23 <+bridge> But even that is not easy to implement and probably show 13:23 <+bridge> Slow 13:24 <+bridge> I have a lit if demos, now I am better and don’t fail a lot anymore. 13:24 <+bridge> I have a lot of demos, now I am better and don’t fail a lot anymore. 13:24 <+bridge> You can render with a green background, invisible map tiles and ghostify in post 😄 13:25 <+bridge> What about rendering the background without tees then all demos same free cam coordinates and let a video edit software do the magic ? 13:25 <+bridge> This would only work with a static view. Like zooming out. But with a moving “camera” the tee will be inside walls 13:25 <+bridge> You could do it somewhat easily if you: 13:25 <+bridge> 13:25 <+bridge> Save camera movement from one demo 13:25 <+bridge> 13:25 <+bridge> Record all the other demos with that camera movement and don't render the background or the map. 13:25 <+bridge> 13:25 <+bridge> Combine them in a video editor 13:25 <+bridge> Export the camera move yeah 13:26 <+bridge> How to do free camera coordinates 13:26 <+bridge> Anyway, no matter how you approach it, very annoying to mildly annoying problem 13:26 <+bridge> lol all 3 of us typed the same thing 13:27 <+bridge> Setting the camera position to a ghost should be doable without much work 13:27 <+bridge> Then render demo files 13:28 <+bridge> That’s why I am asking you, to find a not annoying way 13:29 <+bridge> I would use the camera move from the finished best run. 13:29 <+bridge> Render all other demos with that camera move but everything transparent except tees. 13:29 <+bridge> Render the good run with only bg, then only tees. 13:29 <+bridge> Layer them together 13:30 <+bridge> That's the least amount of coding I can imagine this project entailing 13:30 <+bridge> Thanks 13:30 <+bridge> I’ll try that 13:31 <+bridge> Do I have to edit the demo file directly to hide stuff or can I do that in the client? 13:31 <+bridge> I'd export the camera move as a list of coordinates per tick btw 13:32 <+bridge> You'll need to code those. I think with the vk renderer you just need to change some shaders to get invisible bg and tiles. @jupeyy_keks right? 13:33 <+bridge> just remove render map layers it's like 1 line 13:34 <+bridge> Couldn’t I “spoof” the map of the demo and remove tiles 13:35 <+bridge> You can try. Patch out the crc check and use an empty map with green bg, but then you'll need to chroma key out the green 13:36 <+bridge> I think editing the shader or jjst removing the map layers render line is easier 13:36 <+bridge> s\/jjst/just/ 13:40 <+bridge> With ogl it's probably easier ^^ 13:40 <+bridge> Couldn’t I “spoof” the map of the demo and remove tiles 13:41 <+bridge> Ty anyway Ill show you my results 13:42 <+bridge> With vk you don't need to recompile though. Why do you think gl would be easier? 13:46 <+bridge> Ah the vk shaders are compiled, right 13:51 <+bridge> Yeah VK only knows spirv 13:51 <+bridge> nvm, this is easier in code, we use the same shader for stuff like map items 13:55 <+bridge> empty entities asset + cl_text_entities 0 + green background might do the trick without editing the client or demo 13:56 <+bridge> Isn't the camera movement the biggest problem? 13:56 <+bridge> It has to match in all demos 13:57 <+bridge> You still get stuff like map items, doors etc 14:00 <+bridge> indeed that will still need to be coded or edited in the demos if possible 14:01 <+bridge> oh didn't think of that 14:21 <+bridge> spirv best 14:21 <+bridge> llvm has spirv target too iirc 14:21 <+bridge> https://github.com/KhronosGroup/SPIRV-LLVM-Translator 14:22 <+bridge> https://llvm.org/docs/SPIRVUsage.html 16:06 <+bridge> https://cdn.discordapp.com/attachments/293493549758939136/1121441160699850802/image.png 16:06 <+bridge> how to solve this 16:08 <+bridge> This PR fixed it: https://github.com/ddnet/ddnet/pull/6730 16:08 <+bridge> Are you up-to-date? 17:25 <+bridge> Interesting why this was needed all of a sudden 17:26 <+bridge> https://tenor.com/view/error-windows-ok-loading-gif-16959051 17:26 <+bridge> windows 17:45 <+bridge> VS update in github's windows agents 17:46 <+bridge> Yeah but why in the new version of vs we need to link to ntdll explicitly? 18:04 <+bridge> would like to select many groups in editor .... sry if it's not possible . 18:17 <+bridge> Maybe the old version linked to it implicitly 18:23 <+bridge> https://svelte.dev/blog/svelte-4 18:23 <+bridge> svelte is better than react btw 19:11 <+bridge> yo amigos anyone know what im doing wrong with the CMakeLists here? It gives me this error even though as far as i can tell the files are sorted and all in the cmakelists file 19:11 <+bridge> https://cdn.discordapp.com/attachments/293493549758939136/1121487599857578187/image.png 19:12 <+bridge> it sadly doesnt use the directory like sorting 19:12 <+bridge> but instead purely ascii based afaik 19:13 <+bridge> hmm but isnt it in the right place still? since behavior... starts with a 'b' 19:13 <+bridge> but the items in itself 19:14 <+bridge> @jupeyy_keks bot alert 19:14 <+bridge> VULKAN=OFF triggers me more here 19:14 <+bridge> xd 19:14 <+bridge> ahaha 19:14 <+bridge> my old ass pc doesnt even support vulkan 19:15 <+bridge> got an amd gpu from like 2012 19:15 <+bridge> i never heard of that year 19:15 <+bridge> 2012 wow 19:16 <+bridge> AMD Radeon HD 7770 D: 19:20 <+bridge> also thanks, i got the order right finally. Bit of an annoying way to list source files IMO, though I'm not an expert on cmake 19:20 <+bridge> its not cmake related 19:20 <+bridge> someone simply decided it like this 19:20 <+bridge> but yeah just accept, its easier xd 19:21 <+bridge> it just stops unnecessary bike-shedding discussions about the correct order if it's forced to be sorted 19:22 <+bridge> @jupeyy_keks what do you think of doing like this vs having a CMakeLists per directory? 19:22 <+bridge> i see 19:22 <+bridge> i dunno, sounds annoying too 19:22 <+bridge> to find them all 19:36 <+bridge> https://cdn.discordapp.com/attachments/293493549758939136/1121493927002906695/image.png 19:36 <+bridge> ^ currently a bug 19:40 <+bridge> ninja cooldown indicator still isn't fixed 19:41 <+bridge> i believe it's still in the top left 19:41 <+bridge> I think that's by design (?) 19:41 <+bridge> can you link the issue? 19:41 <+bridge> it's impossible to see when you're focused on your tee 19:41 <+bridge> idk if there's one, will check later 19:43 <+bridge> making the ninja countdown with the bar might be hard 19:44 <+bridge> making it as usable as it was with stars 19:45 <+bridge> Theres a PR which moves the below the tee IIRC 19:45 <+bridge> Theres a PR which moves the bar below the tee IIRC 19:48 <+bridge> https://github.com/capnproto/capnproto-rust 19:50 <+bridge> xD 19:50 <+bridge> good bug 19:54 <+bridge> what "standard" binary serialization formats are there? which should I use when? 19:54 <+bridge> I also know ASN.1 and protobuf 19:54 <+bridge> Values are encoded in a format that is suitable not only for transmission over a network and persistence to disk, but also for zero-copy in-memory traversal. That is, you can completely skip serialization and deserialization! It's in this sense that Cap'n Proto is "infinity times faster" than alternatives like Protocol Buffers. 19:54 <+bridge> ASN.1 is standard but incredibly looked down upon for reasons I don't know 19:54 <+bridge> https://capnproto.org/encoding.html 19:54 <+bridge> cap n proto is made by the guy who made protocol buffers 19:54 <+bridge> and left google 19:54 <+bridge> so when should I use capnproto? 19:54 <+bridge> is there tooling support? can I read it without a schema? 19:54 <+bridge> e.g. can wireshark decode capnproto? 19:54 <+bridge> rpc 19:54 <+bridge> like protocol buffers i guess 19:54 <+bridge> i just found it out thanks to a coworker 19:54 <+bridge> so calls between different programming languages, basically 19:54 <+bridge> ? 19:54 <+bridge> or over the network? or both? 19:54 <+bridge> both i guess 19:54 <+bridge> i dont know 19:55 <+bridge> > Like Data, but the content must be valid UTF-8, and the last byte of the content must be zero. The encoding allows bytes other than the last to be zero, but some applications (especially ones written in languages that use NUL-terminated strings) may truncate at the first zero. 19:55 <+bridge> weird to require null termination. I guess this is so that C can use the stuff with zero copies 20:31 <+bridge> is there a way to not render any bullets 20:43 <+bridge> Did he leave google because they made protobuf too bloated? 20:43 <+bridge> https://github.com/kentonv 20:43 <+bridge> @learath2 he is tech lead in cloudflare now 20:43 <+bridge> idk 20:44 <+bridge> @learath2 https://twitter.com/KentonVarda/status/969325438685216770 20:44 <+bridge> here 20:44 <+bridge> the reason 20:46 <+bridge> https://twitter.com/ryan_landay/status/1337962155661025281 20:46 <+bridge> https://capnproto.org/cxx.html 20:57 <+bridge> <_voxeldoesart> https://www.youtube.com/watch?v=Z60f2g-COJY 20:57 <+bridge> <_voxeldoesart> @ryozuki 20:58 <+bridge> blazingly fast 20:58 <+bridge> sadly i dont watch videos about programming 20:58 <+bridge> unless they are talks by the one and only 20:58 <+bridge> fastest, safest 20:58 <+bridge> he is on windows anyway 20:59 <+bridge> domas 20:59 <+bridge> https://www.youtube.com/watch?v=lR0nh-TdpVg 21:01 <+bridge> he forgot to disable file content indexing ig 23:53 <+bridge> who is? 23:54 <+bridge> @stnwtr the vid i sent 23:55 <+bridge> he is god himself 23:55 <+bridge> if u watch the full vid u will see why 23:55 <+bridge> intel fears this man 23:55 <+bridge> i think they hired him xd 23:55 <+bridge> Gross 23:56 <+bridge> If it's not WASDK then it shouldn't be a system utility 23:59 <+bridge> it's web LOL 23:59 <+bridge> <_voxeldoesart> i didnt even watch it 23:59 <+bridge> I just went to the repo