00:06 < bridge> Waiting on QUIC to be more exact I guess 00:42 < bridge> i remember being stuck entire map spectating someone bcs i didnt know about that 00:42 < bridge> I believe you, it's just funny bcs i think new players simply don't know any of them 00:42 < bridge> I didn't even know you could /spec someones name 00:42 < bridge> xdd 00:43 < bridge> i read the commands 00:43 < bridge> But tbh I find 6 discord msgs related to ppl being stuck 00:43 < bridge> i seen ok i can spec someone makes sense 00:43 < bridge> and theres no way to unspec 00:44 < bridge> I wonder why we even support such non-intuitive chat commands 00:44 < bridge> Like why do we extend an existing chat cmd by some random feature that is completely unrelated 00:44 < bridge> is the spec menu just executing the chat command? 00:44 < bridge> that /spec is called /spec is ofc already a problem 00:45 < bridge> I don't think so, it probs has a proper network packet 00:45 < bridge> /spec isn't even for specing someone 00:45 < bridge> I'm not so sure 00:45 < bridge> It's to remove your tee and go /pause 00:46 < bridge> But how would that work in vanilla based mods? 00:46 < bridge> i think it sends packet "i want to spec someone" 00:46 < bridge> nvm 00:46 < bridge> with chat command server reads it and gives u spectator 00:47 < bridge> it seems weird to have a chat command for something that already has a proper net message 00:47 < bridge> bad uz 00:47 < bridge> bad ux 00:49 < bridge> its better that way i guess 00:49 < bridge> just no way of knowing there is something like the spectator menu selector 00:49 < bridge> unless u read discord 00:49 < bridge> bad ux again 00:51 < bridge> Not your fault kebs, but WTF is this pause state code bro xD 00:51 < bridge> 00:51 < bridge> ```cpp 00:51 < bridge> if(-PauseState != CPlayer::PAUSE_NONE && PauseType != CPlayer::PAUSE_NONE) 00:51 < bridge> ``` 00:51 < bridge> Who should be able to understand such stuff without 300 IQ 00:51 < bridge> idk i took it from old code 00:51 < bridge> Yeah i saw that 00:51 < bridge> "-PauseState" is really innovative 00:51 < bridge> i had to set breakpoint every time i change spectator mode to see what this even does 00:52 < bridge> I've also noticed that the spectator state on the client is a huge mess in other places 00:52 < bridge> there should be some message like press middle mouse to select spectator mode 00:52 < bridge> yeah 00:52 < bridge> just like there is when you open debug mode 00:52 < bridge> but something less intrusive 00:53 < bridge> but people who already know about it will find the text annoying 00:53 < bridge> yes thats what i mean 00:53 < bridge> same for entities toggle 00:53 < bridge> I think normal games would just have the text there anyway and ignore those people lol 00:53 < bridge> Normal games would display a tip once, probably 00:54 < bridge> not true really 00:54 < bridge> display a tip popup and make u close it 00:54 < bridge> league does it 00:54 < bridge> so u dont miss it 00:54 < bridge> so until u dont close the popup itll be there every time 00:54 < bridge> We do have tips in chat constantly being sent by the server, though they're all in english afaik 00:54 < bridge> you often see games with dynamic controls overlay where the graphic changes based on what you have your controls bound to 00:55 < bridge> many many games have "use {key} to {action}" text appear hundreds/thousands of times during gameplay 00:57 < bridge> or make it impossible to not learn about the menu by binding it to HOLD spec so it always appears when you enter spectate 00:58 < bridge> A window that goes over the controls when you first launch the game could work, have people press the buttons and see the result 00:59 < bridge> I'm not a fan of one time popups 00:59 < bridge> I think that's bad design 00:59 < bridge> Could have a button in the menu to redisplay it 00:59 < bridge> people don't read them/forget immediately 01:00 < bridge> I assume many new players use the ESC ingame menu 01:00 < bridge> 01:00 < bridge> I'd probably add a spectate button that opens a list of options to choose. 01:00 < bridge> 01:00 < bridge> Spectator -> [Spectate a player, Freecam] 01:00 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1282838136275206287/image.png?ex=66e0cf9d&is=66df7e1d&hm=961e3b58ef20c88a8568c5352c05afebf412236bae5138865e01f6f74ddd0431& 01:01 < bridge> There you can also write the bind for this 01:01 < bridge> you could have 01:01 < bridge> ``M3: Spectate Menu`` 01:01 < bridge> appear on the bottom right of the screen then fade out after 5 seconds. 01:01 < bridge> in small text 01:03 < bridge> quickly checking what's ahead of you would just mean the message is there always 01:03 < bridge> meh 01:05 < bridge> there's already other hud elements on the screen anyway like chat/death messages 01:05 < bridge> FPS for many people 01:06 < bridge> well so something like current debug mode has 01:07 < bridge> maybe just bit smaller and transparent i guess 01:15 < bridge> Could just replace the pointless "Free-View" text with it? 01:25 < bridge> "Following X" "Free-View" "Multi-View" is all rather pointless text, replacing it with bind information / how +spectate works would probably be better use of that space 01:26 < bridge> maybe 02:00 < bridge> Something like this, I think rshift is self explanatory once you know the button exists, since it'll flash when you press it, and you'll see your cursor 02:00 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1282853205088407584/cOsIBrrok3.png?ex=66e0dda6&is=66df8c26&hm=fc2fd930e3f03f92fab1d4b5dfe66698128d5cf406bdee77fd6ab1f81a13785a& 02:01 < bridge> Something like this, I think just saying the button for change view is self explanatory, once you know the button exists since it'll flash when you press it, and you'll see your cursor 02:01 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1282853205088407584/cOsIBrrok3.png?ex=66e0dda6&is=66df8c26&hm=fc2fd930e3f03f92fab1d4b5dfe66698128d5cf406bdee77fd6ab1f81a13785a& 02:07 < bridge> You can have it detect if it's spec or pause and display the bound key for either 02:08 < bridge> i dont think it can distinguish between those 02:08 < bridge> i think its the same 02:08 < bridge> and since ddnet wants to be backwards compatible etc 02:08 < bridge> Ya probably 02:08 < bridge> some servers dont allow you to exit out of pause/spectate 02:09 < bridge> I guess when in actual spec you'd just display "Change view: rshift" 02:12 < bridge> The way it is currently is a cute touch, but it's not really useful at all for anything, people already know they're in free view, and they already know who they're spectating by their name. (I guess some people hide names, but you see their name when you're selecting them from the rshift list 02:12 < bridge> The way it is currently is a cute touch, but it's not really useful at all for anything, people already know they're in free view, and they already know who they're spectating by their name. (I guess some people hide names, but you see their name when you're selecting them from the rshift list) 02:16 < bridge> "I guess when in actual spec you'd just display "Change view: rshift" this should resolve that, you can't enter pause in vanilla modes so not displaying "Exit pause" when in spectators would resolve this, ya? 02:16 < bridge> some modes wont let you change it either 02:16 < bridge> zcatch for example 02:17 < bridge> some modes wont let you change who youre specatating either 02:17 < bridge> Aaah right 02:17 < bridge> Should we really care about that though? 02:17 < bridge> idk from what ive seen ddnet wants to support everything even 0.7 02:18 < bridge> I mean, you'd just press it and nothing would happen, no? 02:18 < bridge> I don't see the harm in that 03:01 < ws-client> TIL forks do not appear in the search on github by design to avoid pollution 03:01 < ws-client> I always liked to fork to give credit to the upstream and somehow it felt clean even for non contribution forks that extend the project in their own way 03:02 < ws-client> I am thinking about unforking https://github.com/ddnet-insta/ddnet-insta/ just for SEO -.- 09:51 < ws-client> @patiga so wat i do in the mr? 09:51 < ws-client> i know u like twstorage and stuff but should i revert the change to get the pipeline to fail again and then you do the storage stuff or whats your plan here? 09:52 < ws-client> for the CI speeds we could build a Dockerfile that you can push to your gitlab registry that is used as a base in the CI so it does not have to install rust and so on. Why is CI speed a conern for you? 09:54 < bridge> nah the ci ran into the error in less than 3 mins, no worries there 09:54 < ws-client> yea less than 5min CI seems fine to me 09:54 < ws-client> so wat about the path? 09:55 < bridge> I just had ba dexperiences with CIs that ran for like 45 mins, where every change took very long 09:55 < ws-client> ye same 09:55 < ws-client> *caugh* ddnet *caugh* 09:55 < ws-client> but you mostly don't have to wait for the CI i would say 09:55 < bridge> gimme like 1 day for that function 09:56 < ws-client> so you do it? 09:56 < bridge> gimme 1 day and I'll add the function, yea 09:56 < bridge> 1-2 days 09:56 < ws-client> so i revert my code for now? 09:56 < ws-client> i could also just change it to the debian path then you can merge a passing pipeline 09:57 < bridge> only the small change where you try to guess the mapres path 09:57 < ws-client> then it fails .. 09:57 < bridge> everything else I'll merge directly when I'm back 09:57 < ws-client> ok 09:57 < bridge> if you dislike the ci failure, then we delay the mergw 09:58 < ws-client> i dont mind i thought you do 09:58 < ws-client> i was thinking you could just revert what i did when you swap it out with the new 09:58 < ws-client> but whatever ill reverted it pipeline is now failing :D 11:01 < bridge> Hello chiller the ultimate tw unionist. 11:01 < bridge> Don't you agree that twgame should have a chance, for your ultimate goal to unite all teeworlds projects, too? 11:02 < bridge> 11:02 < bridge> You could contribute a switch layer, or tune layer or speedup layer support: 11:02 < bridge> 11:02 < bridge> https://gitlab.com/ddnet-rs/twgame 11:23 < bridge> Do you have 0.7 support? 11:30 < bridge> That will be chillers task too ofc 11:30 < bridge> Unite everything into a big mono repo 11:31 < bridge> 40 million lines of code. linux kernel looks like a joke next to it 11:34 < bridge> Sorry, no support for you if you don't support the holy 0.7 11:37 < bridge> make the server send the protocol as wasm, then that's no longer the client's problem xd 11:38 < bridge> xd 12:14 < bridge> :monkaStop: :monkaStop: 12:15 < bridge> @jupeyy_keks I'll add colored lasers, colored broadcasts and 0.7 skins :gigachad: 12:17 < bridge> I'll contribute 0.5 support. The very best version 12:18 < bridge> 0.4 pls ty 12:21 < bridge> colored lasers could be really cool for fng xd 12:21 < bridge> I could actually look into it if you want - no proper hud yet tho 12:21 < bridge> I'll do fng support anyway 😄 12:21 < bridge> 👍:cat_smug: 12:22 < bridge> I'd love to see if people support twgame tho. It still needs lot of work. 12:22 < bridge> A launcher, to see if it works out (e.g. how fast game starts etc.) would be good to know too 12:22 < bridge> I'd love to see that people support twgame tho. It still needs lot of work. 12:22 < bridge> A launcher, to see if it works out (e.g. how fast game starts etc.) would be good to know too 12:23 < bridge> If you don't mind the launcher written in go - I have a really fckn interesting story to tell you 12:23 < bridge> :gigachad: :KEKW: 12:23 < bridge> I mean if at least one maintainer can read/write go 12:23 < bridge> why not 12:23 < bridge> It should run on every potato pc tho 12:23 < bridge> Lea and milkeey are working professionally with go iirc 12:24 < bridge> @learath2 how stable is golang on old machines? Let's say towards debian and windows 7 :owo: 12:25 < bridge> Who knows, I only run it on ubuntu 14 and gentoo 12:25 < bridge> Ah I don't mean old OS 12:25 < bridge> I mean old GPUs 12:26 < bridge> Yeah I realized you meant hardware 12:26 < bridge> It shouldn't require modern backends 12:26 < bridge> I'll look into it later when I'm home 12:26 < bridge> For go 1.21 it's Windows 10 or later 12:26 < bridge> We only support Win10 anyway 12:26 < bridge> That isn't the issue 12:26 < bridge> For go 1.20 it's win7 or later 12:27 < bridge> Teeworlds 0.8 is out 12:27 < bridge> Why does the launcher care anyway? I'm sure there is a ui library out there for go that supports all the way back to xp sp3 12:28 < bridge> Yeah that's basically the exact reason. I don't want a launcher that prevents OGL 1.x users to launch the game. 12:28 < bridge> There are defs modern UI solutions that use OpenGL 3.3+ 12:30 < bridge> I'm currently using lyne, now idea how backwards compat this is towards older hardware 12:30 < bridge> I'm currently using lyne, no idea how backwards compat this is towards older hardware 12:31 < bridge> Why are we getting a launcher anyway btw? One of these? 12:31 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1283011985801478205/conf.png?ex=66e17186&is=66e02006&hm=05288165e35082aa9cd13ead00d657cba2208338944cfd9f6e49f97f7d23f46b& 12:32 < bridge> the forest launcher 12:32 < bridge> @patiga do you have script to merge map images to one big atlas and replace quads on map with this atlas? 12:32 < bridge> Well I want to replace the main menu, with a launcher instead. 12:32 < bridge> 12:32 < bridge> The launcher can catch crashes 12:32 < bridge> The launcher should have a "skip launcher" button to not trigger ppl 12:32 < bridge> 12:33 < bridge> and then we could have a downloader for other versions 12:33 < bridge> and also do breaking changes aka ddnet-rust version xdd 12:33 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1283012318241882152/image.png?ex=66e171d5&is=66e02055&hm=35067ccd9d889ae7682831c5f99a7546d01acc6deb4b720e9f93aa2a0698b158& 12:33 < bridge> I thought like a launcher with embedded terminal output, startup, performance, debugging information etc outside the game - not a - start game launcher 12:33 < bridge> Well I want to replace the main menu, with a launcher instead. 12:33 < bridge> 12:33 < bridge> The launcher can catch crashes 12:33 < bridge> Can edit config 12:33 < bridge> The launcher should have a "skip launcher" button to not trigger ppl 12:33 < bridge> 12:33 < bridge> and then we could have a downloader for other versions 12:33 < bridge> and also do breaking changes aka ddnet-rust version xdd 12:33 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1283012318241882152/image.png?ex=66e171d5&is=66e02055&hm=35067ccd9d889ae7682831c5f99a7546d01acc6deb4b720e9f93aa2a0698b158& 12:33 < bridge> Lol 12:33 < bridge> Will you hit me if I say I really disagree with that direction? 12:33 < bridge> What would be your suggestion? 12:34 < bridge> One of these so we can help people with gfx issues change backends without going into the config by hand. This trampoline binary can also transparently handle updates fixing the issues we have all the time 12:35 < bridge> But how is that different to a launcher? 12:35 < bridge> To me that is a launcher just for graphics 12:36 < bridge> There is significant graphics work involved with having a full launcher, then there is more significant work discussing how we can support stuff like "other versions" 12:36 < bridge> I'd claim that isn't far off of this: 12:36 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1270471820352552970/image.png?ex=66e14e56&is=66dffcd6&hm=00483184c62bf7b6783bc3b7624200835071a479d4af63b30356c5ef9971172d& 12:36 < bridge> Then there is even more significant work discussing and implementing how we can incorporate 3rd party clients when people inevitably demand that 12:37 < bridge> An almost always hidden trampoline is nice and safe. No discussions needed, a straight improvement that can be made without discussing anything with anyone 12:37 < bridge> But that are future plans. 12:37 < bridge> 12:37 < bridge> As a first step it's simply replacing the ugly main menu ingame 12:37 < bridge> and adds crashpad 12:38 < bridge> No politics about how taters client got in but xxxhackerguyxxx's client didn't and how ddnet maintainers are a cabal holding teeworlds hostage 12:38 < bridge> Well with other clients I didn't mean clients that are not from ddnet 12:38 < bridge> I guess we disagree on that too. I don't think the main menu is that ugly 12:39 < bridge> Ok but it could be replaced with a launcher and serve the same functionality 12:40 < bridge> But why? It's imo just extra work having to think about an entirely new gui and gui library 12:40 < bridge> Currently we already have a launcher from steam (which allows selecting different gfx backends). 12:40 < bridge> 12:40 < bridge> So for most users this isn't really a worse experience than they have now 12:40 < bridge> Yes but end of the year I want to present an alternative version to ddnet 12:41 < bridge> And if ppl like it, then i'd also like to make it more discoverable 12:41 < bridge> and I'm guessing you don't feel like having a main menu in your version? 12:41 < bridge> 100% not 😄 12:41 < bridge> I don't have any use for that 12:42 < bridge> A internal server directly starts when you clikc "LAN" anyway 12:42 < bridge> the editor can be accessed from the server browser 12:42 < bridge> the settings too 12:42 < bridge> A play button is useless af xd 12:42 < bridge> discord etc. can be in the launcher 12:42 < bridge> So if ddnet also moves to a main-menuless UX you can just use that work instead 12:43 < bridge> I guess that makes some sense. We could ask other people what they feel about the main menu 12:44 < bridge> I personally think a game requires a main menu of sorts, just dropping people into a serverbrowser is overwhelming 12:44 < bridge> :poggers::poggers::poggers: ask people what they want 12:45 < bridge> We can but all the people that respond will just be power users that already know everything about the game and want to get into a server ASAP 12:45 < bridge> I like the main menu xd 12:45 < bridge> Tbh I also find it stupid we don't have a "Skip main menu" button 12:45 < bridge> We do, for the nerds 12:46 < bridge> we had a PR for that and deen declined it 12:46 < bridge> Yeah in the settings 12:46 < bridge> Yeah, just set it 12:46 < bridge> But very honestly, the main menu is nice for 5 starts 12:46 < bridge> afterwards it's just annoying 12:47 < bridge> We don't have like "load a save game" or smth 12:47 < bridge> In all the time that the main menu has existed, I haven't once thought oh let me optimize out this one click from my UX 12:47 < bridge> that i'd consider useful 12:47 < bridge> or a "change your skin" directly in the main menu 12:47 < bridge> that gives it a bit of charm 12:47 < bridge> it's just 5 ugly buttons 12:47 < bridge> I don't understand why tho 😄 12:48 < bridge> Just dropping someone into a serverbrowser feels wrong UX wise for a game. It feels more like you are using Usenet in the 80s 12:48 < bridge> But this game is 100% about multiplayer 12:49 < bridge> ddnet story mode when? 12:49 < bridge> Fwiw all the 100% multiplayer games I can think about right now all have main menus 12:49 < bridge> Also, I know I am a hater, but i really find our main menu ugly. 12:49 < bridge> 12:49 < bridge> If I start a game and it looks like this, I'd think it's a cheap game xD 12:50 < bridge> rust, dayz, valorant, csgo 12:50 < bridge> roblox 12:50 < bridge> but CSGO's isn't really a main menu is it? 12:50 < bridge> I mean it's different 12:50 < bridge> it has no "play, editor" buttons 12:50 < bridge> It does have a play button to get into matchmaking 12:51 < bridge> It has inventory and stuff, they don't drop you into the source server browser 12:51 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1283017006974631956/latest.png?ex=66e17633&is=66e024b3&hm=2c9777a506b62e0f51f7fa624c1cb3ec9292e780b173fdf9a75db3c8a8ce847d& 12:51 < bridge> Some launcher with fancy art can look good too, I really like larians launcher, it's simplistic and looks professional 12:51 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1283017095793086465/image.png?ex=66e17648&is=66e024c8&hm=0fb88345ac0bb82571f430df57655201051682fc2f6bd60c191b5043296ccf7f& 12:52 < bridge> It definitely can but I see no extra value to it unless we want to support launching old versions or different branches. If we remove the main menu it might however make sense to have a launcher like this 12:53 < bridge> tf is this 12:53 < bridge> It's Larian's launcher for their games 12:53 < bridge> Yeah I mean tbf, ofc I mean for different branches 12:53 < bridge> Yes I agree. But I’m not a pro coder who can hax some tw core physics rust crate. 12:54 < bridge> Yes you can 12:54 < bridge> Do you accept 0.7 support prs into dd-pg? 12:55 < bridge> yes but this is out of the game, not ingame 12:55 < bridge> like tarkov 12:55 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1283017932733026395/image.png?ex=66e17710&is=66e02590&hm=cf4f433ab8a6ae7c6a125419728dafb3674de269ad87b784bf74c9ddf19948c6& 12:55 < bridge> Even better, I allow you to do backward compatibility changing stuff that makes the game BETTER than 0.7 12:55 < bridge> you press play to start the game 12:55 < bridge> Sure, but the main menu would be gone for that 12:55 < bridge> He doesn't want a main menu 12:55 < bridge> A trade basically 12:55 < bridge> Having both kinda sucks too 12:56 < bridge> I'd maybe still add a "back to launcher" ingame or smth, But basically the launcher should be the main menu 12:56 < bridge> nah would be annoying af 12:56 < bridge> Once u click play, no need to go back to mainmenu/launcher 12:56 < bridge> main menu ingame better 12:56 < bridge> What functionality does the main menu give you? 12:56 < bridge> editor is in the browser 12:57 < bridge> settings too 12:57 < bridge> milkeey has a job? I thought he is 12 yo genius hacker who is chilling in school during the day and is haxing during the night. 12:57 < bridge> demos too 12:57 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1283018430689312819/image.png?ex=66e17787&is=66e02607&hm=1a919eca740c7077274b801fe35c74047b39a13d8afef6b5efa856a0dd3a0200& 12:57 < bridge> run server could be automated 12:57 < bridge> or moved to LAN tab 12:57 < bridge> game already loaded, i'd say that's the most important 12:57 < bridge> if u have a launcher the game is definetly off 12:57 < bridge> Ok but how does that help? 12:58 < bridge> I gtg do work I'm paid for. Overall: 12:58 < bridge> - I disagree with not having a main menu at all 12:58 < bridge> - I kinda agree that we need a binary to run before the actual client 12:58 < bridge> - I definitely agree that if we have a full-fledged launcher with many buttons and bells and whistles, we shouldn't have a main menu, it's just too much time before getting into the game 12:58 < bridge> I mean the menu like that is very intuitive for users 12:58 < bridge> If we have a "skip launcher", then it's the same 12:58 < bridge> just without main menu 12:58 < bridge> unity removed their default launcher because people hated it so much xd 12:58 < bridge> ingame settings are much better 12:59 < bridge> Ingame settings will stay 12:59 < bridge> It's only about the main menu 12:59 < bridge> You misunderstand what he wants. Technically the launcher will only have one button and it'll launch you straight into the serverbrowser 12:59 < bridge> What does that give what a launcher or the game can't/doesn't already do 12:59 < bridge> Woah so late to mention that. Jopsti is speaking about the launcher since forever. 12:59 < bridge> It's not too late 13:00 < bridge> what is the purpose then? 13:00 < bridge> We can still replace the whole game at once 13:00 < bridge> :lol: 13:00 < bridge> Do allow selecting between nightly/ddpg/normal ddnet 13:00 < bridge> Whatever 13:00 < bridge> Well there are many technical benefits, but the graphical part of the launcher I'm guessing he wants for the different versions/branches support 13:00 < bridge> And that too 13:01 < bridge> we already have that on steam if that's what you're talking about. I'm fine with that launcher 13:01 < bridge> Idk how that would interact with steam btw. We disable our updater and stuff on steam 13:01 < bridge> Exactly that is a reason for a launcher 13:01 < bridge> The ppl already have this extra step anyway 13:01 < bridge> We can remove the steam thing again 13:01 < bridge> We probably wouldn't be allowed to ship a launcher in steam that can just download arbitrary unsigned unaudited binaries from our servers 13:01 < bridge> you can remove the steam yourself already 13:02 < bridge> No need to download 13:02 < bridge> Just ship them all? 😄 13:02 < bridge> Our steam directory is build to add all 13:02 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1283019706399457361/image.png?ex=66e178b7&is=66e02737&hm=dbbb8bed1bad720922be0d11d49418accbd34e0bafd8d48d0aae2c87651eeb26& 13:02 < bridge> Yeah the first download isn't fast, but all others will only download the diffs 13:02 < bridge> So I think generally that isn't too bad 13:02 < bridge> I mean that already is a bad workaround 13:02 < bridge> why tho? 13:03 < bridge> how is your different 13:03 < bridge> how is yours different 13:03 < bridge> Yeah good question 13:03 < bridge> Why is that different to a real launcher 13:03 < bridge> But then we need to ship dozens of old versions of binaries, libraries 13:03 < bridge> ddpg can start in 200ms.. So there must be some GUI lib that is faster lmao 13:03 < bridge> "real launcher" is not a thing 13:03 < bridge> Ah I don't mean like a minecraft launcher 13:04 < bridge> Where you can download java 1 edition 13:04 < bridge> Probably not unless you want one of those configurator screens. We can just winapi/xlib those and it would be quicker 13:04 < bridge> steam already does a good job of this imo. 13:04 < bridge> unless you also want the launcher for non-steam purpose 13:04 < bridge> That too 13:04 < bridge> It could be the downloader 13:04 < bridge> for updates 13:05 < bridge> steam is very good at that 13:05 < bridge> So old versions can’t be downloaded, we can perhaps ship like a couple extra branches. Idk I think the steam version of this launcher would have to be gutted a lot 13:05 < bridge> That doesn’t sound very united when the official tw client can’t join your servers :c 13:05 < bridge> Contriboot support 13:06 < bridge> I allow you to host a network layer that is not part of the upstream code, that translate everything 13:06 < bridge> For every client 13:06 < bridge> Ever 13:06 < bridge> I mean if steam policy doesn't allow binary downloads, but ppl want to download teewars, we _could_ still do that in the offline launcher 13:06 < bridge> I'm not sure it's allowed to have a launcher on steam that will auto download your updates since you're skipping the approval process. 13:07 < bridge> But this isn't even what i care about 13:07 < bridge> That's random discussion about what any launcher could do. 13:07 < bridge> Any launcher could also download Tater-client 13:07 < bridge> But I care about THE launcher first xd 13:07 < bridge> For steam this ofc isn't needed 13:08 < bridge> so then it's only for 0.5% of the playerbase 13:09 < bridge> like android support 13:09 < bridge> First of all, before we add anything 13:09 < bridge> I will see if ppl even like what I did 13:09 < bridge> Otherwise that discussion is useless anyway 13:10 < bridge> But if ppl want to support me, a launcher and twgame and the main things I don't want to influence 13:10 < bridge> Twgame should be supported anyway 13:10 < bridge> I would +1 a gfx configurator, a trampoline for crashes and updates 13:10 < bridge> I would maybe +1 a launcher with stuff like old versions if it’s done well 13:10 < bridge> I would definitely -1 a direct removal of the main menu 13:10 < bridge> Bcs it will allow teehistorian to demo 😄 13:10 < bridge> I thought we already have that 13:11 < bridge> The original one is pretty subpar. But Zwelf’s new version is looking pretty good 13:12 < bridge> what is bad about it? 13:12 < bridge> or missing? 13:12 < bridge> tbh it sounds kinda not that hard 13:13 < bridge> That's what everyone who attempts it says 😄 13:13 < bridge> The original one is basically just a quick hack. It only has player positions and hooks, that's all 13:14 < bridge> ok well 13:14 < bridge> I could do better than that 13:14 < bridge> https://i.imgur.com/kPdqTYf.png 13:14 < bridge> 6000 FPS on a 4080 SUPER 😄 13:14 < bridge> what is Zwelf's missing? 13:14 < bridge> So a proxy that can be slapped in front of client or server to act as a bridge? Will the upstream server get support for proxies then? Where ips are forwarded and the server can kick players without kicking the entire proxy? 13:15 < bridge> @murpi did Zwelf ever finish up a teehistorian2demo implementation? I think his approach should be generating perfect replays 13:16 < bridge> @murpi did Zwelf ever finish up a teehistorian2demo implementation? I think his approach should be generating perfect demos 13:16 < bridge> I don't think it's done yet. Last time I checked there was still practice implementation missing 13:17 < bridge> But yeah, it's 1000% better than teehistorian2demo already 13:17 < bridge> you need special /practice code? 13:17 < bridge> Nice around as much as a gtx 760 on Linux 13:17 < bridge> 😬 13:17 < bridge> I think this is purely a CPU bottleneck 13:18 < bridge> melon has almost 20k fps on linux 13:18 < bridge> with rx 7900xtx 13:18 < bridge> I'm on a Ryzen 7 7800x3D 13:18 < bridge> or smth 13:18 < bridge> Is that in entities btw? 13:19 < bridge> No, without entities, on Linear 64p 13:19 < bridge> Let me see how much I get on rx 6900 + Ryzen 3950x 13:19 < bridge> I love the performance. I am tempted to switch to vanilla teeworlds client for gaming because ddnet became so slow to start. I switched from vscode to neovim primarily because of startup time. If yours is blazingly fast you got me. Sadly non teeish ui is a dealbreaker. I can’t handle the ui you made yet .\_. 13:19 < bridge> I think it's always cpu bottleneck 13:20 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1283024182397108224/image.png?ex=66e17ce2&is=66e02b62&hm=c912c6218ddf88beeb3dd2c6caab9b43ec53006123ae056ad11a84f22b006be5& 13:20 < bridge> ~4700 on Linux 13:20 < bridge> now let's see in ddpg xdd 13:20 < bridge> Tee positions weren't updated whenever a team is in practice 13:20 < bridge> wha 13:21 < bridge> I'm not even sure why teehistorian2demo needs to be aware of /practice status 13:21 < bridge> does it need to run physics to get the full gamestate back from teehistorian? 13:22 < bridge> Yes, that's how it recreates the demos 13:22 < bridge> https://gitlab.com/ddnet-rs/twgame/-/tree/master 13:23 < bridge> it doesn't save positions of all tees every tick? 13:23 < bridge> It does, that's how the original teehistorian2demo was able to create a crude representation 13:23 < bridge> Epyc gemer moment 13:23 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1283025112618242092/image.png?ex=66e17dc0&is=66e02c40&hm=5b48d8ea8635fe3a556abf7790d87963a4eb5cf31f1a4aa276ecd5a793389206& 13:23 < bridge> 6000 FPS 13:23 < bridge> It does, that's how the original teehistorian2demo was able to create a crude demo 13:23 < bridge> How many tees? 13:24 < bridge> solo, but i was in team in cpp version too 13:24 < bridge> but this is ctf game mode tbf xd 13:24 < bridge> so it doesn't save other stuff? 13:24 < bridge> projectile positions? 13:24 < bridge> Melons PC go BRRRR - around 800fps on pipe 13:24 < bridge> but on other news, i see a rendering bug 13:24 < bridge> 😬 13:24 < bridge> I think we tested it together jupsti :kek: 13:25 < bridge> ah yeah 13:25 < bridge> didn't you say 10k 13:25 < bridge> Those aren't saved 13:25 < bridge> Was it 10K ? I made a screenshot 13:25 < bridge> I thought it was much lowere 13:25 < bridge> Will check when I'm home 13:26 < bridge> https://github.com/ddnet/ddnet/blob/master/src/game/server/teehistorian.h you can see everything that is saved in a teehistorian file here 13:30 < bridge> It can only create a demo for all physics it knows 13:31 < bridge> https://gitlab.com/ddnet-rs/twgame 13:31 < bridge> In the readme there is an overview 13:31 < bridge> based on this header file I think you cannot just pipe the data into TW game and expect it to work 13:31 < bridge> Teehistorian are basically just input files 13:32 < bridge> I don't think you can rely only on inputs 13:32 < bridge> Plus a little bit of extra 13:32 < bridge> You can, there is no randomness to teeworlds 13:32 < bridge> Well there is just a tiny bit, but we save the prng seed too 13:32 < bridge> ok except there is 13:32 < bridge> given how dd-pg is structured I don't see why it shouldn't 13:33 < bridge> you need to account for chat commands 13:33 < bridge> which affect physics 13:33 < bridge> Someone didn't spot `RecordConsoleCommand` 13:33 < bridge> swap, tp, team, kill, save, load, rescue 13:34 < bridge> Apart from tp and rescue none of those affect physics or am I missing something 13:34 < bridge> And kill obviously 13:34 < bridge> Any console command, including chat commands are saved, unless they are marked with `CFGFLAG_NONTEEHISTORIC` 13:35 < bridge> idk how you don't think the others affect physics. maybe swap is the only one that doesnt 13:35 < bridge> Feels good to be able to play CP2077 with PT now :greenthing: 13:35 < bridge> Personal Trainer? 13:35 < bridge> path tracing 13:36 < bridge> That makes more sense 13:36 < bridge> I can see having a personal trainer in CP - screaming at you constantly 13:36 < bridge> hi 13:36 < bridge> Saves and Loads are explicitly saved too apart from just the command btw 13:37 < bridge> Ryo I summarized your wiki pinged messages pls don't hate 13:37 < bridge> its ok 13:37 < bridge> ```c 13:37 < bridge> void RecordPlayerSwap(int ClientId1, int ClientId2); 13:37 < bridge> void RecordTeamSaveSuccess(int Team, CUuid SaveId, const char *pTeamSave); 13:37 < bridge> void RecordTeamSaveFailure(int Team); 13:37 < bridge> void RecordTeamLoadSuccess(int Team, CUuid SaveId, const char *pTeamSave); 13:37 < bridge> void RecordTeamLoadFailure(int Team); 13:37 < bridge> ``` 13:37 < bridge> saves can summon projectiles into the game right? 13:37 < bridge> They can't 13:37 < bridge> @learath2 today i compiled firefox so fast i didnt notice 13:37 < bridge> oh ok 13:37 < bridge> i was browsing for 5 mins and gentoo finished 13:37 < bridge> 1000% easier lmao 13:37 < bridge> :gigachad: 13:38 < bridge> Takes me 18 minutes 13:38 < bridge> Is it incremental builds? 13:38 < bridge> nein 13:38 < bridge> If you wanna give it a go feel free, the more teehistorian2demo implementations the better 13:38 < bridge> You compiled Firefox from scratch no cache in 5 mins? 13:38 < bridge> 7900x3d 13:38 < bridge> 8 mins to be honest 13:38 < bridge> Firefox more light weight than ddnet lol 13:39 < bridge> 5.66ghz 13:39 < bridge> 24 cores 13:39 < bridge> Woah 13:39 < bridge> whoa 13:39 < bridge> 7950X masterrace 13:39 < bridge> What cpu is that 13:39 < bridge> big one ! 😮 13:39 < bridge> :justatest: 13:39 < bridge> 24 real cores? 13:39 < bridge> oh chiller has the poggest one right 13:39 < bridge> 12 real iirc 13:39 < bridge> I thought so 13:40 < bridge> Ok, that's more sensible 13:40 < bridge> 64gb ram at 6000mhz, firefox sources were in a tmpfs on ram 13:40 < bridge> I was actively looking for the strongest single core cpu when buying my pc last time 13:40 < bridge> But time passed 13:40 < bridge> wait 1 more amd gen 13:40 < bridge> I really need to stop chatting here and do actual real work 13:40 < bridge> no 13:40 < bridge> no 13:40 < bridge> no 13:41 < bridge> but if they fire me I can't ask for a recommendation letter 13:41 < bridge> @learath2 one day ill get my threadripper 13:41 < bridge> or epyc cpu 13:41 < bridge> the epyc cpu has 1gb l3 cache 13:41 < bridge> it only costs 10k 13:41 < bridge> In Germany we call this a Schnäppchen 13:41 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1283029698284093441/image.png?ex=66e18205&is=66e03085&hm=d4957d3f09aee80af6c1e9a9e19bd4a21d4f43b85c3d923434a6abb47ebebcd3& 13:42 < bridge> Get it now, go into debt 13:42 < bridge> 192 threads 13:42 < bridge> Also get 256g of ram 13:42 < bridge> any rust application still building for 10 minutes :xd: :pepeW: 13:43 < bridge> Cargo nightly has parallel build tho right? 13:43 < bridge> Atleast something like that 13:43 < bridge> rust is already paralel 13:43 < bridge> Yes but it breaks htop xd and if the max single core is worse than your current cpu it will bottle neck in all those single threaded moments 13:43 < bridge> but the paralelism is limited to diferent crates 13:43 < bridge> intra crate paralelism is nightly ye 13:43 < bridge> Yeah I forgot the actual term 13:44 < bridge> distcc compilation machine with a threadripper and a local 9950x3d for the single thread performance 13:44 < bridge> if I was making the teehistorian format I would design it so that every tick you re-initialize the tees from the state saved into teehistorian, then tick them by 1 and handle anything else that happens yourself. So basically remove all "event" based physics data. 13:44 < bridge> 13:44 < bridge> but maybe this is already what it does 13:45 < bridge> Yes that sounds good. But last time I used distcc it was a bit of a mess haha 13:46 < bridge> Teehistorian was designed for MASS storage. Any extra state you save in there is an issue 13:46 < bridge> Compressed we store more than 5TB of teehistorian files now 13:46 < bridge> well it's already saving excessive data by including any tee state at all 13:46 < bridge> you're already 90% of the way to my design data wise 13:47 < bridge> Just the x and y position of a tee is not enough to regenerate the entire state of the tee 13:48 < bridge> it's probably 90% of the data though 13:48 < bridge> actually no 13:48 < bridge> the inputs are 13:49 < bridge> I would be happy to check that later today but I would be very surprised if it's close to that 13:49 < bridge> There could be one more solution though, if we just stored the entire state, every tick it would technically still compress very well 13:49 < bridge> I think the "figure it out later" plan was not good 13:50 < bridge> but it's really hard to figure out what the "entire state" is with how spaghetti the ddnet code is 13:50 < bridge> hmm 13:50 < bridge> if you ignore saves it's a lot easier 13:51 < bridge> Well we'd have lost a lot of runs while discussing what the "entire state" is. With this approach it's very obvious what is needed to recreate a run 13:52 < bridge> well inputs are the entire state 13:52 < bridge> Nope, there is also the switch state 13:53 < bridge> can be derived from inputs 13:53 < bridge> I recommend backing up ssh keys if they are your only option to auth on the server. You don’t want to wipe your server just because you lost the key. 13:53 < bridge> Now you are back to the exact design we have. Store the minimum needed to derive the state at every tick 13:53 < bridge> nice reply time 13:54 < bridge> Thank 13:54 < bridge> i have everything saved even tho i don't have any servers 😏 13:55 < bridge> If it’s just for git clouds it doesn’t matter too much because you can reset them 13:55 < bridge> the issue with saving just inputs is that you risk desyncing if you forget anything. 13:55 < bridge> which is really hard with /save 13:55 < bridge> but they would be really small 13:57 < bridge> What could you really forget even? There is the client raw input, there are game netmsgs and there console commands, some of which alter the state asychronously for which you need extra support 13:58 < bridge> What could you really forget even? There is the client raw input, there are game netmsgs and their console commands, some of which alter the state asychronously for which you need extra support 13:59 < bridge> good news, i didn't block hacked after i uploaded my passwords to github, who could've thought that nobody gives a fuck about random person xddd 14:00 < bridge> not much really 14:01 < bridge> but it's very different from the other idea I had where it's basically "stateless" in that you could scrub the teehistoiran file with minimal inaccuracies after a long enough playback period 14:04 < bridge> the only hard part is /save. for everything else you can just trick the server into thinking it's running a real game while feeding it inputs/physics commands 14:04 < bridge> Wot passwords 14:05 < bridge> You mean encrypted tho right? 14:05 < bridge> ye 14:05 < bridge> Yea epic win 14:06 < bridge> I get hibbie jibbies every time I push to that repo :justatest: 14:09 < bridge> basically minimum state for playback without physics vs minimum state playback with physics. 14:17 < bridge> Bro Tater do you ever sleep 14:24 < bridge> potato never sleeps 14:26 < bridge> You want to tell me Tater's PF is meant to be a potato? xd 14:28 < bridge> Tater = potato 14:28 < bridge> see lord of the rings 14:29 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1283041625182044202/image0.gif?ex=66e18d21&is=66e03ba1&hm=19808bb2c99beefd79dfbc97b50433a6652d3a962606041aeb226eaaf77cca5a& 14:29 < bridge> Epyc 14:29 < bridge> Should rewatch in english 14:29 < bridge> best nick 14:29 < bridge> With `scrcpy` I have reached a new level of laziness. I now don't even have to get up and grab my phone 14:30 < bridge> xd 14:30 < bridge> There is QtScrcpy and it allows to map keyboard presses to the touch locations. 14:30 < bridge> 14:30 < bridge> With that you can play mobile games like pokemon unite with keyboard xdd 14:51 < bridge> do these kind of links work on windows? ddnet://192.168.0.103:8303 14:51 < bridge> 14:51 < bridge> i got this by clicking "copy info" in the server info tab 14:51 < bridge> 192.168.0.103:8303 is not a DDraceNetwork or Community server. 14:51 < bridge> maybe we could make them work on linux with xdg-open and `MimeType=x-scheme-handler/ddnet` in the .desktop entry 14:53 < bridge> hmmm i see you already did this but it doesn't work with the steam game because i suppose we can't control the .desktop file there 14:56 < bridge> We have a steam version of the connect link too, but yeah those don't really work 14:57 < bridge> do they work in windows? 14:57 < bridge> yes 14:58 < bridge> I didn't find any way to do it automatically on non-Windows, see #6072 14:58 < bridge> https://github.com/ddnet/ddnet/issues/6072 14:58 < bridge> do you know on top of your head if it works with a domain instead of an ip? 14:59 < bridge> it just connects to whatever string you have after `ddnet://` 14:59 < bridge> https://ddnet.org/news/ddnet-links/ 14:59 < bridge> It works with domains too 15:00 < bridge> awesome thx 15:50 < bridge> chillerdragon: any recommendations on where to start with connecting a tee to a server, i know nothing about ddnet's networking xd 15:51 < bridge> You first need to implement the packer 15:53 < bridge> noted, thanks! 15:54 < bridge> brb in 5 days :pepeW: 16:26 < bridge> Го 16:49 < bridge> https://chillerdragon.github.io/teeworlds-protocol/ 17:23 < bridge> https://blog.cloudflare.com/pingora-saving-compute-1-percent-at-a-time/ 17:37 < bridge> am i late 17:37 < bridge> https://lobste.rs/s/ixb3v7/nix_2_24_is_vulnerable_remote_privilege 17:38 < bridge> @ryozuki @blaiszephyr 17:38 < bridge> always late 17:38 < bridge> i wonder if ryo has his rss news eater on second screen 17:39 < bridge> https://tvix.dev/ 17:39 < bridge> :kekw. 17:39 < bridge> :kekw: 17:39 < bridge> why is everyone rewriting everything in rust ._: 17:44 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1283090844840235028/images.jpg?ex=66e1baf8&is=66e06978&hm=832ae63f4631c21131e1a00eae1993c8965910d81d40264c3df96fe0edec82a1& 17:49 < bridge> пр 18:42 < bridge> @learath2 are you `nullptr`, `nil` or `NULL` person? 18:46 < bridge> `NULL` in C, `nullptr` in C++, `NULL` if I were making my own language. Short, to the point, stands out 18:47 < bridge> `int *var = {NULL};` 18:47 < bridge> I find `nil` ugly xd 18:47 < bridge> `if != nil` is weird syntax but its straight to the point 18:47 < bridge> `if x != nil` is weird syntax but its straight to the point 18:47 < bridge> go masterrace 18:47 < bridge> you're missing `0` 18:48 < bridge> `NULL` is typedefef 0 :santatrollet: 18:48 < bridge> isnt NULL just a const int 18:48 < bridge> `NULL` is typedefed 0 :santatrollet: 18:48 < bridge> most of the time it is something like (void*)0 18:49 < bridge> so just a cast to void* - damn 18:49 < bridge> if you write 0 you don't have to include stddef.h, that's why I do it 18:49 < bridge> but with C23 bringing nullptr no more 18:49 < bridge> hey we dont code in c23 yet - you need to wait atleast 10 years 18:49 < bridge> if you write 0 you don't have to include stddef.h, that's why I do it 18:49 < bridge> but with C23 bringing nullptr no more need 18:50 < bridge> 0 is a null pointer constant so it's very legal 18:50 < bridge> But keyword is cooler 😏 18:51 < bridge> use `NONE` :kekw: 18:51 < bridge> undefined 18:52 < bridge> `let x: i32 = NONE;` 18:52 < bridge> `let x: i32 = NU_UH;` 18:53 < bridge> Btw now after i changed syntax for variable declarations i can infer types from from expressions 18:53 < bridge> Btw now after i changed syntax for variable declarations i can infer types from some expressions 18:54 < bridge> daily nixOS meme - poor dude never came back 18:54 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1283108235447894018/image.png?ex=66e1cb2a&is=66e079aa&hm=b0ccc637e95e9a331d22b6fb6ec28ea0e0d8d96bcf9b3d572f78338b37820535& 18:54 < bridge> that’s me 18:55 < bridge> sometimes in ts I say “ok brb ill reboot” and won’t be back for hours 18:55 < bridge> Hahhaahah - i wanted to debug something with Rei so i said "hey let me screenshare" - and i messed up something in my config, i said "wait let me reroll really quick"... it took me 2 hours 18:55 < bridge> yep 18:57 < bridge> i love this discord very much 18:57 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1283108989134966815/image.png?ex=66e1cbde&is=66e07a5e&hm=06582a05461ebe1cffa803c87e15bd9a48cac777e09d57f65ba5e90914d6ff9e& 18:57 < bridge> does any compiler fully support c23? 18:57 < bridge> I don't think so 18:57 < bridge> clang 19 maybe 18:57 < bridge> hm will test 18:57 < bridge> thank 18:57 < bridge> nah, i think gcc is furthest with c23 support 18:57 < bridge> but none are "fully supporting" it yet 18:58 < bridge> probably both support `nullptr` at this time 18:58 < bridge> is it a keyword now? 18:58 < bridge> nop 18:59 < bridge> lazy ass msvc dev will not even support c89 18:59 < bridge> fuck them 18:59 < bridge> rip 18:59 < bridge> @gerdoe https://en.cppreference.com/w/c/compiler_support/23 19:00 < bridge> i did unironically try to get all my desktop stuff written in rust or c 19:00 < bridge> rofi le sux 19:00 < bridge> le python 19:01 < bridge> no wonder msvc doesn't support even 10 features of c23 xd 19:02 < bridge> rofi hangs my desktop when I use it 19:02 < bridge> so I just use wofi even tho it also kinda sucks 19:03 < bridge> eh im on xorg 19:03 < bridge> dmenu enjoyer here 19:03 < bridge> dmenu is as simple as it is 19:03 < bridge> ye i use it too 19:03 < bridge> funny enough it doesn't support monitor centring 19:04 < bridge> and some freebsd revision of dmenu has it 19:04 < bridge> :justatest: ' 19:04 < bridge> wtf 19:50 < bridge> no, not yet :) 19:56 < bridge> nice i have the most fame PR xddddd 19:56 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1283123940574760980/image.png?ex=66e1d9ca&is=66e0884a&hm=405fd0f68eaf8640a1adf441b78e39cab139a5d2135b0f078e63687e2d6178f2& 19:57 < bridge> Also funny that Robytes touch controls are already in the list 19:57 < bridge> even tho that pr only exists like few weeks 20:02 < bridge> @robyt3 do you still plan any bigger change to the touch controls, or do we want to merge this soon? 20:02 < bridge> @jupeyy_keks check ticket 1102 pls 20:03 < bridge> I have no rights to see tickets 20:03 < bridge> pidor 20:03 < bridge> i am not gay bcs i cannot see tickets 20:03 < bridge> xuila ebanaya 20:03 < bridge> ? 20:04 < bridge> Ask a moderator or admin or simply wait 20:15 < bridge> I'd like to also make the controls adjustable without exporting to clipboard, but I guess we could also merge what we have already soon. The json format seems to works, including the positioning on the 1,000,000² grid. I'll have some more time next week to finish it up. 20:15 < bridge> I'd like to also make the controls adjustable without exporting to clipboard, but I guess we could also merge what we have already soon. The json format seems to work, including the positioning on the 1,000,000² grid. I'll have some more time next week to finish it up. 20:21 < bridge> is there an ios version of ddnet 20:22 < bridge> no 20:23 < bridge> Ok, how about a 32bit android, i forgot if there was one 20:23 < bridge> there is 20:23 < bridge> got link? 20:24 < bridge> https://discord.com/channels/252358080522747904/1277345584080097320 20:25 < bridge> check pinned messages 20:26 < bridge> xd 20:26 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1283131565370511370/image.png?ex=66e1e0e4&is=66e08f64&hm=4911aa4fda801bc9c3380c7193ffff1cf442ac1c877703bcc6675856a61688da& 20:28 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1283131903247122554/DDNet_assert_log_2024-09-10_23-26-39_26144.txt?ex=66e1e135&is=66e08fb5&hm=357a6cf3d0dce7ade4feb497cf1cb5f16a2ed4c7ebb718725494e90a09e61709& 20:28 < bridge> yeah 20:28 < bridge> if you want, you can provide a fix to the editor 20:28 < bridge> that handles this situation more gracefully 20:29 < bridge> Like revert #8670 ? 20:29 < bridge> https://github.com/ddnet/ddnet/pull/8670 20:29 < bridge> Unused :justatest: 20:29 < bridge> auto convert to rgba 20:29 < bridge> xd 20:29 < bridge> well idc 20:30 < bridge> Prevent loading RGB images 20:30 < bridge> i mean auto converting rgb to rgba with alpha full opacity doesnt sound too bad 20:31 < bridge> i want use more 64 images in map, or which optimal atlas image size i must use? i just tried add empty white bg PNG 2048x2048, everything worked fine, created a quad in the editor, and then after some time the game crashed 20:31 < bridge> since this is only for editor isnt it 20:31 < bridge> u cannot add more than 64 images 20:31 < bridge> this is the hard limit bcs of backward compatilibity xd 20:32 < bridge> 64 2048x2048 images use: 20:32 < bridge> (64×2048×2048×4)×2 20:32 < bridge> = 20:32 < bridge> 2147483648 20:32 < bridge> bytes of vram 20:32 < bridge> i'd recommend not doing that 20:32 < bridge> except your player base uses modern GPUs only 20:33 < bridge> you recommend doing (64×1024×1024×4)×2×N where N my atlases number?) 20:34 < bridge> oh i dont see 64 images in you message 20:34 < bridge> dunno, in at lases you can do what you want 20:34 < bridge> dunno, in atlases you can do what you want 20:34 < bridge> for now i need only one 2048x2048 atlas 20:34 < bridge> oh ok 20:34 < bridge> oh i dont seen 64 images in you message 20:35 < bridge> oh i dont seen "64 images" in you message 20:35 < bridge> oh I didn't see "64 images" in you message 20:36 < bridge> can you recommend a tool that will automatically generate an atlas? where you can set the space between images 20:36 < bridge> generally should be fine, but i bet there are few ppl that only have pcs with 1024x1024 max texture size. 20:36 < bridge> 20:36 < bridge> ddnet will then downscale and it will look like shit 20:36 < bridge> other than that should be fine 20:36 < bridge> 4x 1024x1024 is safer tho 20:37 < bridge> no idea tbh 20:37 < bridge> ok thx 21:32 < bridge> @0xdeen may I be allowed to use VPNs on ddnet servers? without it my shitty internet will just throw out unavailable DNS connections which make me disconnect. :justatest: 21:32 < bridge> It happens randomly and I ain't going to play knowning that my internet will go out any moment during runs 21:33 < bridge> if you're wondering, I'm using Cloudflare WARP 22:33 < bridge> get cheap vps 22:33 < bridge> setup vpn, get single ip whitelisted 22:36 < bridge> given, that even fixes your problem 22:36 < bridge> on the other hand, you might want to analyze what's the actual problem. Change your dns server in your router? 22:37 < bridge> to like 8.8.8.8 or 9.9.9.9, 1.1.1.1, etc. 23:53 < bridge> That won't work for my network, Cloudflare WARP redirects my connection in a way which is more stable, than using only DNS 23:59 < bridge> rescue chat commands are not implemented in twgame yet iirc (@zwelf2 ?) 23:59 < bridge> save and load is indeed implemented 23:59 < bridge> though twgame does recognize whenever rescue mode starts and ends. in general, teehistorian files should be sufficient to properly replay ddnet gameplay 23:59 < bridge> the player positions are in there, to be able to validate a replay implementation afaik. they also record some bugs in ddnet, which can't be explained as of yet (e.g. https://github.com/ddnet/ddnet/issues/8172). the positions simply help nicely with any inconsistencies that can pop up :) 23:59 < bridge> they also make it a **lot** easier to work with teehistorians files with scripts