00:48 <+bridge> with a pitch fork and a dead microsoft logo on the ground 10:09 <+bridge> @patiga do you have a use case for detecting maps from images? or did you just build it to build it? 10:27 <+bridge> <0xdeen> I had the same thought when I read about the layoffs. I think https://www.machinegames.com/, which is next to id Software, not below it; but also belongs to Xbox. 10:35 <+bridge> He does work at machine games yes 10:41 <+bridge> matricks the goat 10:57 <+bridge> chillerdragon: I saw too many times that people ask for help on a map part with a screenshot and don't care to mention which map they are on. Also, sometimes people want to know which map a clip from a video is. This was in the back of my mind for some time, and then I had image classification as a subtopic in a uni course. That's where I first took this as a challenge (and there is also a sub-channel on this discord where people can post images and 11:00 <+bridge> the repo I use for those two project rn is this one: https://gitlab.com/ddnet-rs/twml 11:00 <+bridge> (and if you are interested in the weights I trained last time, I also freely shared them here) 11:49 <+bridge> Ooooh, so if we get the discord bot to run your algorithm to identify what segment of what map it is, the bot can just immediately tell us based on the screenshot where exactly it is 11:49 <+bridge> Sounds actually useful 13:16 <+bridge> :kek: 13:33 <+bridge> Interestingly there are a dozen of duplicate functionality in map editor code with slight differences that can be combined into one thing 13:34 <+bridge> I'll investigate that once I'm done with my own stuff I guess 13:48 <+bridge> I think I managed to place 7 segmentation faults in a single line of code gg 13:48 <+bridge> `str_copy(pClient->m_aInput + Idx - 1, aRight, sizeof(pClient->m_aInput) - Idx);` 14:10 <+bridge> when is a custom engine applicable in game development just wondering like is it easier is it more free 14:10 <+bridge> (and if you have double the time maybe give tiny opinion on raylib vs custom engine) 14:31 <+bridge> the closest game engine I could give a fair comparison with other custom game engines (when it comes to Teeworlds / DDNet) is Godot Engine. Mainly C++ oriented, scalable and probably more stable than DDNet's current engine 14:31 <+bridge> To implement a fully functional client however... eh, I would rather try implementing it from scratch instead of copying everything DDNet has. 14:33 <+bridge> - performance 14:33 <+bridge> - niche things like the physics engine not fitting or wanting to support weird platforms 14:33 <+bridge> - its more fun 14:36 <+bridge> if you want to build a game engine, build a game engine. if you want to build a game, use an existing game engine, otherwise you're likely never going to get a game 14:40 <+bridge> i think if i were to make a game like Noita would make my own engine, but if i make a game like dead cells not 14:40 <+bridge> https://store.steampowered.com/app/881100/Noita/ 15:25 <+bridge> Noita mentioned :deen_star: 15:25 <+bridge> I had enldess fun with this game 15:26 <+bridge> To go into your conversation: It really depends on what game you want to make. Don't create a custom engine if you don't need it - in the case of Noita there was no engine that would support the vision of the game so they had to create their own 15:28 <+bridge> raylib is like a good middleground - you can still create your own engine on top of raylib and it makes a lot of stuff easier - but it's not as feature complete as the unity engine for example 15:36 <+bridge> To go with a large game on an unknown engine, idk how to feel about that 15:38 <+bridge> that's because you checkout a lot of gameengines before you choose one that fits your needs - like make a small audit 15:38 <+bridge> that's why you checkout a lot of gameengines before you choose one that fits your needs - like make a small audit 15:39 <+bridge> then it's not unknown anymore 16:01 <+bridge> never :saddo: 16:29 <+bridge> :pepeW: But I will 16:29 <+bridge> It's horrible 16:29 <+bridge> Not the implementations themselves, just the process of adding new features 18:22 <+bridge> Can someone check out the branch for this half-baked WebP support prototype? I ain't expecting this to be a release-ready change, but at least we can have a moment to experience using WebP textures in DDNet 18:22 <+bridge> https://github.com/VertaireStudio/ddnet/tree/webp-support 18:22 <+bridge> I tried giving my fairest assumption of the change in the generated files. 18:23 <+bridge> I tried giving my fairest assumption of the change in the generated files. And yes, I did read the code 😄 18:26 <+bridge> > And yes, I did read the code 18:26 <+bridge> Did you write the code? 18:27 <+bridge> No, that's why it's a prototype, a concept that it's possible to do 18:27 <+bridge> If we need to change things, we can argue about it and change it together, without AI 18:28 <+bridge> I'm sure there will be tons of people happy to read the LLM generated code 18:28 <+bridge> :pepeW: That's why I don't PR it bruh 18:28 <+bridge> Pushing it as is will definitely make me the asshole 18:29 <+bridge> So, that's why I want your opinion on my public branch instead, easier to mess around that way 18:46 <+bridge> :justatest: robyt noticed it 18:49 <+bridge> I'm a weblate noob, how do I add my translations? Do I have to suggest them? 18:49 <+bridge> https://cdn.discordapp.com/attachments/293493549758939136/1525182142928392273/image.png?ex=6a52740f&is=6a51228f&hm=60e5e9a026c18d4d7f5304f8d235c4c144a551d09ddb045a4ed04add6c730003& 18:58 <+bridge> @robyt3 Turns out it is useful in terms of file size compression, as in we don't really care about the encoding / decoding speed different between PNG and this. 18:58 <+bridge> With a lossless WebP picture that retains the same quality of a lossless PNG picture, I can determine the following: 18:58 <+bridge> - for low resolution files (max. 1024x1024), file decreased by ~5-20% 18:58 <+bridge> - for high resolution files (max. 4096x4096), file decreased by ~40-60% 18:58 <+bridge> 18:58 <+bridge> Given a simple test of converting PNG textures of described sizes into WebP textures of the equilavent size and quality, it proves a better file compression. 18:58 <+bridge> 18:58 <+bridge> Assuming that the bare minimum of 10-20% size reduction in https://maps.ddnet.org/ is to be expected, it is a good deal. 18:58 <+bridge> Reducing a map size from 1MB to <800KBs in terms of the download speed you get from DDNet servers, it's a huge W 18:58 <+bridge> @robyt3 Turns out it is useful in terms of file size compression, as in we don't really care about the encoding / decoding speed different between PNG and WebP. 18:58 <+bridge> With a lossless WebP picture that retains the same quality of a lossless PNG picture, I can determine the following: 18:58 <+bridge> - for low resolution files (max. 1024x1024), file decreased by ~5-20% 18:59 <+bridge> - for high resolution files (max. 4096x4096), file decreased by ~40-60% 18:59 <+bridge> 18:59 <+bridge> Given a simple test of converting PNG textures of described sizes into WebP textures of the equilavent size and quality, it proves a better file compression. 18:59 <+bridge> 18:59 <+bridge> Assuming that the bare minimum of 10-20% size reduction in https://maps.ddnet.org/ is to be expected, it is a good deal. 18:59 <+bridge> Reducing a map size from 1MB to <800KBs in terms of the download speed you get from DDNet servers, it's a huge W 18:59 <+bridge> I think I once mentioned the same thing (but with less detail and proof) of the same concept years ago 19:00 <+bridge> roby closed it with dependency/maintenance cost as a reason, not that its a bad format 19:01 <+bridge> Well, maintenance is responsibility from whoever implements it, I guess they don't want to do that for years. 19:01 <+bridge> we could theoretically propose WebP solely for maps.ddnet.org 19:01 <+bridge> I can take responsibility 19:02 <+bridge> I understood half of the implementations related to file searches and just loading in the texture to memory, however Idk how saving / loading textures from maps work yet 19:02 <+bridge> we could theoretically propose WebP solely for maps.ddnet.org (not client embedded) 19:02 <+bridge> wouldn't there need to be a converter.... plus a way to use WebP files anyway? 19:03 <+bridge> I wouldn't be mad if we just keep maps with the PNGs, but when downloading DDNet maps, we use a special WebP version of it 19:04 <+bridge> where, maybe for backwards compat, converting to PNGs for unsupported clients are advantagious 19:04 <+bridge> actually, idk how old clients could interact with WebP based formats without conversion 19:06 <+bridge> In Arabic you can only suggest translation after the last incident where someone broke most translations (strings need to be reverse manually because the client doesn't support proper RTL rendering). 19:07 <+bridge> Suggestions should get accepted after 3 positive votes. 19:11 <+bridge> And for other languages I can set translations and they don't require explicit approval by owners? 19:12 <+bridge> Yes, you only need to save the string. They should get synced with the git repository every 24 hours or so. 19:18 <+bridge> The size reduction doesn't really seem that useful for how much complexity it adds. Downloading via HTTP is much faster than via game server anyway. 19:19 <+bridge> complexity? Nobody bothered with the PNG format for years, and I have essentially vibecoded my way to a working prototype in less than an hour 19:19 <+bridge> It's not only about all the glue code but also about adding a dependency on libwebp itself. 19:20 <+bridge> Well, is there a problem with webp lib's license? 19:21 <+bridge> In general adding more dependencies should be carefully evaluated. Can't have any vulnerabilities in the webp format by not supporting it. 19:22 <+bridge> Yeah, which is why I need people to review my branch first, then once every bit of necessity is applied to the branch, I could then confidently PR it 19:23 <+bridge> At least you could look at the branch for a moment, I tried to give my best for the commits 19:24 <+bridge> The WebP formatted textures load into memory as WebPs for now, but the moment you try to save it to a map, it converts it to a PNG 19:24 <+bridge> The WebP formatted textures load into memory as WebPs for now, but the moment you try to save it to a map, it converts it to a PNG 19:24 <+bridge> that's the only note worthy bug I noticed yet 19:24 <+bridge> (And the map extract only detecting .png formats, as expected) 19:27 <+bridge> I'll try to make it work 19:28 <+bridge> I did look at the branch. It looked like AI code to me --- correct on the surface but also with various issues. You disabled the CI on your repository but I assume it wouldn't pass. 19:29 <+bridge> Yes, as the commits also say on some files only checking for linux distributions 19:29 <+bridge> Obviously I won't forget about that cross-platform compatibiltiy 19:29 <+bridge> Obviously I won't forget about that cross-platform compatibility 19:32 <+bridge> Hashed images will probably get u like 90% filesize reduction 19:32 <+bridge> png is also a lot more familiar and historically worked fine so i cant see the benefits of supporting more extensions 19:32 <+bridge> (as in mapres decoupled from map files) 19:33 <+bridge> decoupling images from mapfiles will probably get u like 90% filesize reduction 19:34 <+bridge> webp is pretty much used on the internet as one of the most recognizable image formats 19:34 <+bridge> It would make sense, given the fact that ddnet was once built to a web application to run, to have some sort of WebP support 19:34 <+bridge> And the benefits are just a nice bonus 19:50 <+bridge> there's little reason to introduce a second image format to ddnet 19:50 <+bridge> we already have one that works, png, and I doubt there are significant savings justifying the introduction of a second image format to ddnet 19:51 <+bridge> for this, decoupling images from maps would net much better savings. they wouldn't have to be downloaded for each map individually 19:51 <+bridge> we have an issue for this: https://github.com/ddnet/ddnet/issues/5165 19:55 <+bridge> I don't know if you do this on purpose, or you truly believe that based on what I just mentioned, you don't even consider ever implementing one if it's inferior 19:56 <+bridge> I'll try to make my implementation work with as least amount of errors as I can detect, then we can discuss this properly, no? 19:57 <+bridge> I don't think we should implement webp if it's merely a bit superior, no 19:58 <+bridge> that doesn't depend on whether you provide an implementation or not 19:58 <+bridge> good to know 19:59 <+bridge> (if you look above, you can see that @robyt3 also thinks so) 19:59 <+bridge> If I look above? 20:00 <+bridge> I spoke to him 😄 20:00 <+bridge> And I understand that he might not want it, especially in it's current state. But at least he's open about it and he's willing to give me advices 20:13 <+bridge> Out of curiousity, is there someone implementing that? Cuz that means reconstructing and exporting maps on the server 20:14 <+bridge> I don't think anyone is implementing that right now 20:14 <+bridge> https://github.com/ddnet/ddnet/issues/5165 20:15 <+bridge> damn, a lot of discussion there 20:15 <+bridge> he's open about saying that he doesn't want it 20:15 <+bridge> he's not open about having it AFAICT 20:15 <+bridge> xd, ok now you are doing it on purpose 20:15 <+bridge> you win I guess 20:27 <+bridge> Apparently GitHub finally fixed their search index so that all PRs/issues are shown again. Now the update time of a bunch of PRs/issues appears to have been bumped to roughly the same time though. 21:54 <+bridge> If I want to add previously used string, can I copy it from .txt file or does that string have to be reversed? 21:56 <+bridge> Yeah, the strings in the txt should have been reversed properly already. 22:01 <+bridge> @robyt3 do you know by any change what's the Ewe language? I can't find `.txt` file for it 22:10 <+bridge> Looks like some kind of mistake with the language code being interpreted incorrectly. It looks like Estonian. 22:31 <+bridge> ^ Fixed. You can adjust the `Add friend` string assuming it's Estonian. I'll rename the file/translation after the changes from Weblate are pushed to the repository.