06:51 < bridge> Which programming language should I use to write a level system/ as well as registration and login. 07:18 < bridge> ty 09:05 < bridge> C++ would be the best pick to start with, I recommend looking at chillers ddnetPP to get started, it's pretty simple 09:23 < bridge> C++ is pretty much the only pick if you want to mod ddnet/teeworlds 09:29 < bridge> meanwhile random python enjoyer: 09:29 < bridge> https://github.com/MageDelfador/DDNet-show-points-in-game 10:26 < bridge> That is rude. TeeSharp is pretty pog. 10:29 < bridge> LOL, I forgot this existed. Yes you can inject raw assembly into ddnet using any language 10:29 < bridge> LOL, I forgot this existed. Yes you can inject raw machine code into ddnet using any language 11:18 < bridge> Me when account system with rust API :gigachad: 11:55 < bridge> Since when there's actions stats on github 0_o 11:55 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1300412728166322187/image.png?ex=6720bf3a&is=671f6dba&hm=87b9e7942a61f6e699a9aebfe849b111ab50c27fabd8529fc3b39ce9c4a1d1a5& 12:25 < bridge> Wow 12:46 < bridge> Ok vanilla elitests (chillerdragon, zhn), my three question of the day: 12:46 < bridge> - Why is there no friendly fire as option? 12:46 < bridge> - Why can you hit & dmg yourself with a rocket, but not laser? 12:47 < bridge> - Should a rocket really have no friendly fire by default? 13:05 < bridge> - Because vanilla doesn't have friendly fire as an option and vanilla is always right 13:05 < bridge> - Because vanilla doesn't let reflected lasers damage you and vanilla is always right 13:05 < bridge> - A rocket really shouldn't have friendly fire by default as that's how vanilla does it and vanilla is always right 13:05 < bridge> Especially vanilla 0.7, that one is the most right 13:06 < bridge> And in tournament mode? 13:06 < bridge> 13:06 < bridge> I kinda think a grenade would be less OG if it has friendly fire. Same as nades in CSGO 13:06 < bridge> Or generally friendly fire 13:06 < bridge> Or how the cool kids say: CS2 13:07 < bridge> If we are talking about game design, it might be interesting to experiment with all sorts of self damage and friendly fire, it however does allow some toxic patterns, without countermeasures you might just create the most toxic version of teeworlds 13:10 < bridge> XD true 13:10 < bridge> ig in cs you get banned after too many team kills in a row 13:10 < bridge> It's extremely strict, you don't get "many" team kills at all before getting kicked from the current game 13:11 < bridge> iirc you can kill 2 people max 😄 13:34 < bridge> Hello I need support, my game crashes 13:35 < bridge> Pls 13:35 < bridge> Help 13:36 < bridge> Any error? 13:36 < bridge> Nobody can help you if you don't provide better info 13:36 < bridge> When I enter the game and want to go into the texture pack settings, the game crashes 13:39 < bridge> you will help me 13:39 < bridge> @jupeyy_keks 13:40 < bridge> I can drop a video of how it works 13:45 < bridge> any error msg? 13:45 < bridge> or just close 13:45 < bridge> but sounds like u have too many assets 13:45 < bridge> delete some 13:48 < bridge> Video 13:49 < bridge> dont need video 13:49 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1300441195104964618/VID_20241028_144639.mp4?ex=6720d9bd&is=671f883d&hm=dc935d5ee689fc3bd5c98ac37955e3bccc958cd1dc57d872de0ea3711e0ec9d9& 13:49 < bridge> i tell you 13:49 < bridge> too late :lol: 13:49 < bridge> you installed 4k assets 13:49 < bridge> and have shit gpu 13:49 < bridge> always the same 13:49 < bridge> you dont need 4k assets 13:49 < bridge> but u want 13:50 < bridge> yeah bro wtf. did u install 3000 assets or what xD 13:50 < bridge> I got the texture packs, I installed them and everything started 13:50 < bridge> Can you delete it somehow please 13:53 < bridge> After a week of trying to check how other people implement it, in the end I got an idea in a dream xd 13:55 < bridge> So 13:55 < bridge> So what should I do? 13:57 < bridge> delete the assets u put in \AppData\Roaming\DDNet\assets 13:59 < bridge> And how I can't 14:00 < bridge> mark, press delete 14:00 < bridge> have u never deleted a file before? xd 14:01 < bridge> not so much of hacker 14:01 < bridge> can computers delete files? 😮 14:01 < bridge> however you installed them alone, you can also delete them alone ig xd 14:01 < bridge> In ddnet no 14:01 < bridge> it's the same just press delete this time 14:02 < bridge> And maybe there is a video 14:02 < bridge> - open file explorer 14:02 < bridge> - change path to %appdata%/DDNet/assets 14:02 < bridge> - delete all files 14:03 < bridge> here u can change path 14:03 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1300444865729134621/image.png?ex=6720dd29&is=671f8ba9&hm=b328755271c2b2caafbfe75c30a80d6a268d2a108de5503751c386f79e798710& 14:03 < bridge> if that is the hardest thing for you 14:04 < bridge> @hackertv192 where did you download your texture pack? 14:04 < bridge> Everything is out 14:04 < bridge> Видалити 14:04 < bridge> nice 14:05 < bridge> I'm checking 14:05 < bridge> now start client 14:05 < bridge> Thank you all 14:05 < bridge> ^ 14:32 < bridge> ``` 14:32 < bridge> apt: symbol lookup error: /lib/x86_64-linux-gnu/liblz4.so.1: undefined symbol: LZ4_XXH32 14:32 < bridge> ``` 14:32 < bridge> 14:32 < bridge> I think I'd be doomed as linux nobo 14:32 < bridge> How can they have such a critical bug lmao 15:28 < bridge> https://semiengineering.com/gddr7-memory-supercharges-ai-inference/ 15:28 < bridge> @jupeyy_keks gddr7 15:28 < bridge> GDDR7 can, therefore, accommodate much higher data rates than the previous generation. The first GDDR7 memory devices are expected to run at around 32 GT/s, but the JEDEC specification leaves room for future expansion of data rates up to 48 GT/s. 15:32 < bridge> Wow that is a lot 😄 18:59 < bridge> I think there is a friendly fire option ^^ 19:00 < bridge> https://github.com/teeworlds/teeworlds/blob/c56fa9e6a20cfc9d7d16502e18c7d7633acdf492/src/game/variables.h#L116 19:01 < bridge> `sv_teamdamage 1` 19:01 < bridge> I think you can't hit yourself with either, it's just that the explosion of the grenade also hits you. if you shoot a grenade up and jump into it, it doesn't explode, I think 19:04 < bridge> wrt. the last point: I heard from vanilla pros that the grenade isn't really that strong because you can avoid it. they consider laser a bit overpowered instead since you can reliably chase a flag carrier down with it 20:23 < bridge> what type of curse have I brang into this world :kek: 20:24 < bridge> not proud of it myself but the impact I've made is insane 20:24 < bridge> yeah, why does an explosion not dmg everyone xdd 20:25 < bridge> what do you mean? 20:25 < bridge> have you invented 4k skins or what 20:25 < bridge> also ddnet could just disallow them 20:25 < bridge> or improve it's lazy loading 20:25 < bridge> correct, the grenade only explodes on two conditions: 20:25 < bridge> - if the grenade has hit a surface like hookable or unhookable which can explode on 20:25 < bridge> - or if the timer for it's explosion is expired 20:26 < bridge> I trended it on Teeworlds Data, you serious? xd 20:26 < bridge> it also explodes if u shoot others 20:26 < bridge> we have a whole ass argument about it back then 😄 20:26 < bridge> Tee hitbox is also a surface, so ye 👍 20:26 < bridge> So why do ppl still use them now? 20:26 < bridge> It's simply bcs ppl hear 4k 20:27 < bridge> and think of high quality 20:27 < bridge> cuz people don't know better :justatest: 20:27 < bridge> they simply don't understand what 4k means 20:27 < bridge> just like I was, I was only wondering why nobody makes hq skins and stuff. 20:27 < bridge> just like you when you started with it 😬 20:27 < bridge> xD 20:27 < bridge> See? 20:27 < bridge> You simply don't understand how people play the game. Zoom level 100 go 20:28 < bridge> But in any way, I don't know if ddnet should disallow them. 20:28 < bridge> 20:28 < bridge> I'm 50:50 on that 20:28 < bridge> I don't want to read about ppl having laggs and then use they shitty 4k skins 20:28 < bridge> of loading that shit into memory sucks 20:28 < bridge> I usually play like this and those blurry pixels are disgusting 20:28 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1300541828247851008/image.png?ex=67213776&is=671fe5f6&hm=69685e1da0efbbe95ab8d308801ca38ad08e94298aa6a46099f4ea8a0a719bae& 20:29 < bridge> well, considering that the client load **all fucking assets** into memory, instead of conditionally place the needed ones into memory is insane to me still 20:29 < bridge> that is only about total consumption tho 20:29 < bridge> even on my relatively high-end GPU the loading of a 4k skin takes more than a few milliseconds 20:29 < bridge> for 60 fps you have 16ms 20:29 < bridge> if i waste 10ms for uploading a single skin 20:30 < bridge> But it loads for ya, doesn't matter for the avarage braindead player no? 20:30 < bridge> then you have some nice fps drops 20:30 < bridge> Yeah, normally you need about 8-10ms free processing to make everything smooth 20:30 < bridge> yay asset streaming, easy and fun I swear 20:30 < bridge> including physics and UI 20:30 < bridge> "and UI"???? 20:31 < bridge> Well UIs can have it's own complications 20:31 < bridge> like an ingame mouse for example 20:31 < bridge> I guess font rendering can be slow but like otherwise it should not take any time at all 20:31 < bridge> do NOT put a browser in your game 20:31 < bridge> If you have one, you have to count for it's current thread being separate from physics threads to not make it lag behind 20:32 < bridge> That alone requires you to set up a set amount of resources to that thread 20:32 < bridge> which thread?? 20:32 < bridge> not CPU thread mind you 20:33 < bridge> you don't or cant just separate processes into threads which is both efficient and... yk works 20:33 < bridge> I still have no idea what you're talking about. What are we splitting off onto its own thread? 20:33 < bridge> And why is it taking any CPU time at all? 20:33 < bridge> Have you programmed before? 20:34 < bridge> Yes! 20:34 < bridge> I know shitty take 20:34 < bridge> but still 20:34 < bridge> Are you talking about a thread specifically for processing the UI?? 20:34 < bridge> or for processing input?? 20:34 < bridge> You've been very unclear 20:34 < bridge> `Besides the point` 20:34 < bridge> What even is your point?? 20:35 < bridge> There is an issue with lazy loading skins, it's lag when someone joins. It won't matter for normal resolution skins but 4k ones will cause you to drop some frames 20:35 < bridge> :what: 20:35 < bridge> Assets can have a clever system to accumulate any changes that can conditionally place or free memory for needed assets 20:35 < bridge> yes asset streaming hard I know 20:36 < bridge> Can the same be told for other picture formats with the same resolution? 20:36 < bridge> So 4k skins just shouldn't really exist 😄 20:36 < bridge> Like jpegs 20:36 < bridge> Just support SVG skins :D 20:36 < bridge> 4k PNG skins shouldn't exists imo 20:36 < bridge> 4k PNG skins shouldn't exist imo 20:37 < bridge> yeah either using SVG or JPEG saves many processes, but I don't know how it would. 20:37 < bridge> Some gpus support compressed textures which can help 20:38 < bridge> but even SVG skins would get rendered to a texture and that texture used for rendering the actual players 20:38 < bridge> That depends on GPU as well ye? 20:38 < bridge> Which would again take the same time to copy to the gpu 20:38 < bridge> like how much cache can you push into the GPU 20:38 < bridge> Wouldn't it get rendered *on* the GPU? 20:39 < bridge> U want 10 fps xD 20:39 < bridge> Yes, but it needs data, the larger the data, the slower it's processing gets, cuz other data might override the current large one 20:39 < bridge> Eh, there are ways to do it directly on the gpu so you only push the vectors/svgs into there but they are not very good 20:39 < bridge> Rendering an SVG to a texture *once* causes the game to run at 10fps?? 20:39 < bridge> Yes, but it needs data, the larger the data, the slower it's processing gets, cuz other data might override the current large one 20:39 < bridge> (feel free to correct me, idk exactly) 20:39 < bridge> Rendering complex vector graphics doesn't lend well to gpu acceleration 20:40 < bridge> Then you have the same issue as before 20:40 < bridge> If it takes 5ms of your frame time 20:40 < bridge> it will drop fps 20:40 < bridge> @jupeyy_keks is there a way to chunk the copy over several frames? 20:40 < bridge> The best solution is: everyone gets a 4090 for free 20:41 < bridge> There's a reason why almost no games use vector graphic assets 20:41 < bridge> Even if it's compressed? how so? can the data not be smaller cuz of it? 20:41 < bridge> Yes, probably possible. Just the question how many frames, and what to do if you load lots of skins. And how complex the backend gets for something that is kinda a workaround 20:41 < bridge> no moni for it :pepeW: 20:41 < bridge> Compressed? 20:41 < bridge> Compressed textures are not lossless 20:41 < bridge> Like using SVG or JPEG 20:42 < bridge> Mh 20:42 < bridge> I don't understand 20:42 < bridge> I guess one would have to start actually profiling and figuring out how much time we can allocate to copying stuff feasibly. Then spread it over chunks of that size 20:42 < bridge> If the problem for the client is too much virtual memory being taken, decreasing the size of the Assets would solve the problem no? 20:43 < bridge> The problem about Assets making the game lag is Hardware issue then 20:43 < bridge> having a setting for texture streaming budget isn't that hard so the first question isn't hard to answer 20:43 < bridge> How is that not hard? 20:44 < bridge> Just have a limit on the bytes transferred per frame? 20:44 < bridge> Just allocating 67MB of VRAM might already create a lag 20:44 < bridge> And that is inevitable 20:44 < bridge> How 20:44 < bridge> Mh 20:44 < bridge> I don't understand 20:44 < bridge> Is the pipeline for it really sucks? 20:45 < bridge> Could you allocate large chunks of VRAM once when loading and divide those up later? 20:45 < bridge> It is what it is. Gpus/drivers behave the way they do, you have to work around it 20:45 < bridge> The vulkan backend already does that anyway 20:45 < bridge> I'm using around 110MBs of VRAM when testing out a 3D environment and having no issues at all on an OpenGL backend 20:45 < bridge> When do you load these 110MB? 20:46 < bridge> Do you allocate and fill it in one step? 20:46 < bridge> Loading 110MBs worth of pure Asset data, in Godot ofc :gigachad: 20:46 < bridge> Do you even talk about GPU? XD 20:46 < bridge> I'm using both CPU and GPU processing 20:46 < bridge> I wish I could understand what you trying to tell me 20:47 < bridge> But I really can't xD 20:47 < bridge> May be slow, but it's consistent enough that all data goes through smootly in between 10ms of processing 20:47 < bridge> well no shit sherlock I don't explain the methods I use xd 20:47 < bridge> Sry to tell you but my 240hz Monitor needs 4ms per frame 20:47 < bridge> max 20:47 < bridge> ain't no DDNet player running at 100fps 20:47 < bridge> ok now you're just sounding like a big dumbass 20:47 < bridge> normal games use 4k 60fps max :pepeW: 20:48 < bridge> resolution - 20:48 < bridge> resolution -^ 20:48 < bridge> Are they secret or what? 😄 20:48 < bridge> normal games use 4k 60hz max :pepeW: 20:48 < bridge> I'm using some of them in Tee Galaxy, so ye 👍 20:48 < bridge> Ah understandable 20:48 < bridge> Yes, Godot secrets 20:49 < bridge> Godot devs are based af 20:49 < bridge> Frfr 20:49 < bridge> Well I can ensure you loading a map like arctic frost at once will take you longer than 10ms 20:49 < bridge> I want to see how you can do it faster 20:50 < bridge> If I have my map editor ready, then I can optimize it further 20:50 < bridge> Even if I disable tile buffering loading the pngs takes already loading with 16 CPU cores 20:50 < bridge> It's not a mather of how, it's a matter of when cuz I don't make money from it :pepeW: 20:50 < bridge> to load 20:51 < bridge> dare I say skill issue? 20:51 < bridge> ``` 20:51 < bridge> opening the full map file took 0.00s / 0ms 20:51 < bridge> decompressing all sounds took 0.01s / 5ms 20:51 < bridge> decompressing all map images took 0.06s / 56ms 20:51 < bridge> initialzing the map layers took 0.28s / 281ms 20:51 < bridge> preparing the map buffering took 0.51s / 507ms 20:51 < bridge> loading the full map (excluding opening it) took 0.51s / 507ms 20:52 < bridge> ``` 20:52 < bridge> decompressing all map images took 0.06s / 56ms 20:52 < bridge> If you want to say the rust png lib has a skill issue 20:52 < bridge> Have you considered decompressing faster? 20:52 < bridge> go ahead and create an issue on their side 20:53 < bridge> Are you parallelizing btw? "decompressing" pngs should parallelize very well 20:53 < bridge> was it a command dear? 😄 20:53 < bridge> If I may 20:53 < bridge> it is literally decompressing, no scare quotes needed 20:54 < bridge> A what? xd Sry I don't understand what that is 20:54 < bridge> I see 20:54 < bridge> At least 16 threads have been used 20:54 < bridge> it has to load these textures 20:54 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1300548348541145138/image.png?ex=67213d89&is=671fec09&hm=15c081db39289a3f8021a317400ca6cce840685ed58255c760a94435ecc4c25e& 20:55 < bridge> 56ms is probably already pretty fast 20:55 < bridge> Considering the avg user has a much worse CPU than me 20:55 < bridge> No idea why I put quotes around it. Perhaps one drink too many 20:59 < bridge> he did it again! 20:59 < bridge> 56ms is nothing in mapload tbf. 20:59 < bridge> a 21:00 < bridge> :greenthing: 21:00 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1300549666538258525/image.png?ex=67213ec3&is=671fed43&hm=067f009ee01fa3b3d6f69f6cd2f679fb569df8c66a8ba7e904efda1bd6721950& 21:01 < bridge> 46ms slower than cellegen doing much more work tho 😉 21:02 < bridge> Cellegen just wills the data into the vram 21:02 < bridge> He just uses VRAM as harddrive 21:02 < bridge> problem solved 21:02 < bridge> the other way around 21:02 < bridge> Clever 21:03 < bridge> :pepeW: 21:03 < bridge> why do you feel like you're bullying me? 21:04 < bridge> I am not 21:04 < bridge> You just gotta prove your statement and I respect you the most 21:05 < bridge> You just gotta proof your statement and I respect you the most 21:05 < bridge> If only I have my time being worth that much 21:07 < bridge> You mean having my respect is not worth your precious time? 21:07 < bridge> 21:07 < bridge> Now I feel insulted :c 21:08 < bridge> But you already have my respect 21:08 < bridge> You have a dream, Tee Galaxy. And try to make it happen 21:08 < bridge> All respect for that 21:08 < bridge> My time is not precious enough to prove your respect to me, I'm the one who insults itself 21:09 < bridge> :greenthing: 21:09 < bridge> like, I don't deserve it at all 21:10 < bridge> Why do think so bad of yourself lol 21:11 < bridge> I have my reasons 21:13 < bridge> ?xd 21:40 < bridge> nouis 21:42 < bridge> nouis 21:42 < bridge> helo fokko 21:42 < bridge> Did someone summ up laser types and subtypes with maybe some kind of preview and result in antiping behaviour? 21:42 < bridge> ```cpp 21:42 < bridge> enum 21:42 < bridge> { 21:42 < bridge> LASERTYPE_RIFLE, 21:42 < bridge> LASERTYPE_SHOTGUN, 21:42 < bridge> LASERTYPE_DOOR, 21:42 < bridge> LASERTYPE_FREEZE, 21:42 < bridge> LASERTYPE_DRAGGER, 21:43 < bridge> LASERTYPE_GUN, 21:43 < bridge> LASERTYPE_PLASMA, 21:43 < bridge> NUM_LASERTYPES 21:43 < bridge> }; 21:43 < bridge> ``` 21:43 < bridge> Searching in client code sounds boring :Zzz_7062057890308424505: 21:43 < bridge> it's sad that ddnet doesnt have proper utf8 support yet, ik this would increase master info etc. But kinda sad, can't use unicode playing cards in nameplates nicely :( in 0.7 it's fixed 21:43 < bridge> Are you sending from server? 21:43 < bridge> Yeah 21:43 < bridge> `CGameContext::SnapLaserObject` 21:43 < bridge> Then, it's mostly for prediction. 21:43 < bridge> If antiping is turned off, it will perform as the colored laser 21:44 < bridge> you can check out f-ddrace, i use it all over the place 21:44 < bridge> My taser (freeze rifle) uses freeze laser for example 21:44 < bridge> Okay, thanks! 21:44 < bridge> https://github.com/search?q=repo%3Afokkonaut%2FF-DDrace%20ddnetlaser&type=code 21:45 < bridge> you're welcome, if you need more help let me know 21:46 < bridge> Actually, I believe if you just send the colored laser (different type) it will not affect prediction just color 21:46 < bridge> I think ddnet laser object got extended tho at some point. Didn't keep up with all the stuff recently 21:47 < bridge> (ignore types: dragger, gun, plasma) 21:47 < bridge> they use door color, iirc 22:01 < bridge> Can you elaborate? This looks like it works, although the font doesn't contain jokers 22:01 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1300565233848553592/image.png?ex=67214d43&is=671ffbc3&hm=2aaa476038c4baba5415d07dc779c2c283957168fd66977b2d86546c5492b717& 22:01 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1300565234209001633/image.png?ex=67214d43&is=671ffbc3&hm=ccae71872b7d5cf86fffd324798b1a01d43758af5c7a24ef5b59cdd5f6b6771d& 22:02 < bridge> Actually it does involve jokers as you can see :D 22:02 < bridge> But what I'm talking about is that in 0.7 you can have 15 utf8 chars as your name 22:02 < bridge> so you have 4*16 bytes 22:03 < bridge> in my server, i actually reverted that patch 22:03 < bridge> in order to match ddnet 22:03 < bridge> :D 22:03 < bridge> I guess that makes it harder to have the whole hand of cards as a name :justatest: 22:03 < bridge> yep :( 22:03 < bridge> Wanted to make my blackjack very fancy 22:03 < bridge> i'm already thinking about abusing fake player's nameplates 22:04 < bridge> or spec char name, or whatever 22:04 < bridge> or an animation which drags the card towards you, but your name gets replaced by "K, J, ..." 22:04 < bridge> But it's all kinda too messy 22:05 < bridge> another abandoned idea 22:05 < bridge> https://cdn.discordapp.com/attachments/781552659709820958/1299101325744799826/image.png?ex=67213fe4&is=671fee64&hm=6e8dc5fdd1b1b4becf27c606a52428cdc7e909c0f0064ae402aba6bd5d110b71& 22:08 < bridge> #2875 would be useful I guess. Should also be used for DDNet though, e.g. for better formatting of `/help` or `/credits` 22:08 < bridge> https://github.com/ddnet/ddnet/issues/2875 22:09 < bridge> Might help, yea, but that would also mean I still have to code my initial idea; for 0.7 clients 😄 22:12 < bridge> Adding support for longer player/clan/skin names in a backwards compatible way everywhere seems pretty annoying though 22:13 < bridge> impossible 22:31 < bridge> Hello people it is me, the new green person. 22:31 < bridge> *red 22:32 < bridge> :monkaS: 22:34 < bridge> boteero 22:34 < bridge> You know being ddnet admin means stopping to play this game 22:34 < bridge> I hope you are true to these words 22:35 < bridge> it will happen as you say 22:37 < bridge> ddnet has proper utf8 support. you mean fonts 22:37 < bridge> No, I mean the actual string size 22:38 < bridge> ah. it's common to use storage size for limiting 22:38 < bridge> yes 22:38 < bridge> in fact, I think unicode recommends against the 0.7 approach 22:38 < bridge> in fact, I think the unicode consortium recommends against the 0.7 approach 22:38 < bridge> probably, i mean for that purpose it's fully okay, but ddnet master json could increase drastically 22:39 < bridge> bcs of decoding performance or why 22:39 < bridge> I think 0.7 is right here to use char limit and not byte limit 22:39 < bridge> it's not a char limit, it's a codepoint limit that 0.7 imposes 22:40 < bridge> What is the 0.7 approach? A grapheme limit? 22:40 < bridge> which is important because one codepoint doesn't really correspond to a user-perceived character 22:40 < bridge> Ah codepoint limit 22:40 < bridge> or utf-32 limit, whatever you want to cal it 22:40 < bridge> or utf-32 limit, whatever you want to call it 22:40 < bridge> In ddnet it does tho 22:41 < bridge> because ddnet can't render accents and emojis so far? 22:41 < bridge> https://github.com/teeworlds/teeworlds/blob/c56fa9e6a20cfc9d7d16502e18c7d7633acdf492/src/game/variables.h#L77 22:41 < bridge> at least if robyte didnt add that recently xD 22:42 < bridge> but cutting emojis sound less bad than only allowing like 3 character names 22:42 < bridge> i am happy to not be chinese 😬 22:43 < bridge> chinese isn't the real problem IMO 22:43 < bridge> it makes sense that you can use fewer chinese characters than latin ones, because each represents a lot more meaning 22:43 < bridge> the actual trouble is languages like greek or russian, which only get half the length 22:44 < bridge> and have an alphabetic language like latin 22:44 < bridge> But afai understod forgottencat, even chinese ppl like to westernize some of their names but use chinese letters 22:44 < bridge> Can you have Hindu in ddnet? 22:44 < bridge> besides that i hate grapheme. most complicated shit ever 22:45 < bridge> how can we live in a world where we make it impossible to use text in a sane matter 22:45 < bridge> xd 22:45 < bridge> that escalated quickly 22:45 < bridge> i dunno, what could be the problem? 22:45 < bridge> we could probably have a storage limit and a grapheme limit 22:46 < bridge> i think i have seen characters that look hindu xd 22:46 < bridge> We don't have a font for it 22:46 < bridge> so increase the storage but limit the number of graphemes to like 15 or so 22:46 < bridge> but it would be advantageous to chinese 22:47 < bridge> because you can have three sentences in your name, suddenyl 22:47 < bridge> but we don't even need grapheme rn, but hopefully never do 22:47 < bridge> @forgottenabscat can you elaborate on this one? haven't heard about that 22:47 < bridge> Hm, I vaguely remember Hindu requiring accents 22:47 < bridge> sounds simple; 3 chinese characters = 3 character left 22:48 < bridge> I'd like to have it implemented properly and not actively against unicode's recommendations, if we want to increase the limit for non-latin languages 22:48 < bridge> Counting graphemes is expensive, you need a massive lookup table iirc 22:48 < bridge> and what do we do rn 22:48 < bridge> just cut the char 22:48 < bridge> we have a storage limit 22:48 < bridge> or smth like "heinrichXX" would not work already 22:48 < bridge> which is a very sane thing for a network protocol 22:49 < bridge> Cut it properly though 😅 22:49 < bridge> we limit the number of utf-8 bytes 22:49 < bridge> Not grapheme safe? 22:49 < bridge> true, we cut at codepoints 22:49 < bridge> Yeah, just cut it to the last valid codepoint 22:49 < bridge> so yes, that's also wrong 22:49 < bridge> using "char" in the context of unicode is very confusing 22:49 < bridge> So we could just use codepoint limits and have smth better 22:49 < bridge> you probably mean byte, codepoint or grapheme 22:50 < bridge> Well it wouldn't technically change anything really. It only changes the amount of 2byte codepoints you can have 22:51 < bridge> it's just such a modern programmer thing, add some complex shit above smth existing 22:52 < bridge> if 32-bit codepoints are not enough to represent everything, we simply need 64-bit or 128-bit standard 22:52 < bridge> instead we have 20 definitions for characters 22:52 < bridge> Just don't use the word character honestly 22:53 < bridge> I just go with the currently safest language, which also decodes into 32-bit code points 22:53 < bridge> Everything above is out of my league 22:53 < bridge> swift has proper grapheme handling IIRC 22:54 < bridge> but yea, rust is a step up from stuff like JS 22:55 < bridge> I kinda feel the monthly heinrich utf16 moment 22:55 < bridge> :lol: 23:38 < bridge> I have to say tune zones for vanilla-type game modes could be really fun. 23:38 < bridge> 23:38 < bridge> They were so easy to implement and having projectiles changing direction when they enter a zone is also kinda cool. 23:38 < bridge> 23:38 < bridge> I wish I could see a proper map that designs a tune modified gctf map or smth xd 23:38 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1300589617627533362/t.mp4?ex=672163f8&is=67201278&hm=a7c7b0474dab7e42fb57af66069f54a056cd81f7b41e99a6d3f4d8b7016121b1& 23:41 < Voxel> I don't know if you saw my question about how seperating the texture atlas will affect preformance, but if you did, I closed the tab before I saw any answer I'm sorry! 23:41 < Voxel> Not used to Quakenet 23:42 < bridge> omg Voxel, nice to see you! :D 23:42 < Voxel> Hi! I just wanted to check in, only for development questions. Something about modding DDNet will never die in my heart. 23:42 < bridge> It certainly has an impact. 23:42 < bridge> But since loading can be async it doesn't have an impact where it matter, e.g. during upload to GPU or similar 23:43 < bridge> its about separating the atlas in the files, right? 23:43 < bridge> In dd-pg i already added support for loading single assets that in a container. But since the loading happens async I don't really notice it 23:43 < bridge> In dd-pg i already added support for loading single assets that are in a container. But since the loading happens async I don't really notice it 23:44 < bridge> i guess they mean smth like taylor swift=泰勒·斯威夫特 23:44 < Voxel> @patiga Yeah, I just wanted to know the preformance impact before I try anything, I don't want to add it in just for it to be extremely sluggish. 23:44 < Voxel> My first step is just splitting apart the entire texture atlas, then I'll add in the ZIP format. 23:44 < bridge> I heared Win11 can load .tar files finally 23:44 < bridge> no need for zip 23:44 < bridge> 😏 23:45 < Voxel> I still have Windows 10. 23:45 < bridge> @jupeyy_keks hm what impact are you thinking of? to me it sounds like it would be very much negligible 23:45 < bridge> Voxel the question is really more about whether it is more annoying to design IMO 23:45 < bridge> i guess they mean some phonetic transliterations like taylor swift=泰勒·斯威夫特 23:45 < bridge> thats fair 23:46 < bridge> You load a container full of pngs, that you have to decompress. 23:46 < bridge> 23:46 < bridge> But as said, I don't notice it in my async loading 23:47 < Voxel> @jupeyy_keks The one question is how it would be able to like, know which is which. I don't think it's very optimal to have each texture pack as a ZIP file if we're going to be using different textures for each type of item in-game. 23:47 < bridge> true I suppose there would be a performance impact, but not a significant one 23:47 < bridge> In dd-pg assets like skins also have audio and not textures alone, so I decided to support also loading the current 0.6 skin files, and auto split them, like before. 23:47 < bridge> 23:47 < bridge> I just hear that the putting stuff into a container makes it too annoying to use 23:47 < Voxel> Since wouldn't you have to have more than 1 ZIP file loaded for each category? Not sure how it works. 23:47 < bridge> ux is probably the most important point here 23:48 < Voxel> I do want to add in an image-splitter and an image-merger inside the DDNet codebase for ease of texture handling. 23:48 < bridge> I don't directly understand that. Is your idea to have a "global" container that loads many assets unrelated to each other (skins, weapons etc.) 23:49 < Voxel> As for how the actual texture packs are handled, I'm not too sure on how it would work. Like, what the heirarchy would look like. 23:49 < bridge> In dd-pg assets like skins also have audio and not textures alone, so I decided to support also loading the current 0.6 skin files, and auto split them, like before. 23:49 < bridge> 23:49 < bridge> I just fear that the putting stuff into a container makes it too annoying to use 23:49 < Voxel> Yeah, I don't know. It's why I want to talk this out before I take action onto anything. 23:51 < bridge> I can only say that I for now only put single assets into containers, mostly to have support for changing supports on a per assets base, while still supporting the "legacy" formats (texture atlas, for ease to use). 23:51 < bridge> 23:51 < bridge> That also has the advantage that you still keep the key-value pair as is. One name is one assets container. 23:51 < bridge> 23:51 < bridge> Which still makes it easy to download etc. 23:51 < bridge> 23:51 < bridge> 23:51 < bridge> If you want to load assets packs, that defs makes it harder 23:51 < bridge> And there the performance impact is much harder to guess, because you might load assets into memory that you don't even want to load in first place 23:52 < bridge> e.g. if you select a single skin from that container, but don't use anything else from that container 23:52 < bridge> And as Patiga also said, UX is harder probably 23:52 < bridge> How do you want to display which assets are in this pack 23:52 < Voxel> I think it'd be kind of cool to have an icon image, for the display of the pack. 23:53 < bridge> Generally speaking I think a long term goal could be adding databases for all assets with discord integration instead 23:53 < Voxel> Yeah, that'd be awesome. 23:53 < bridge> Generally speaking I think a long term goal could be adding databases for all assets with discord integration instead (similar to skin db) 23:54 < Voxel> If anything, my goal for this is to have it be easier to add in more things without the hassle of squeezing things into an already established image 23:54 < Voxel> For right now, at least. 23:54 < bridge> Yeah i certainly understand the motivation, extending existing images sucks too and breaks existing assets 23:55 < Voxel> Looking at you, extras.png!!! 23:55 < bridge> The hud.png for example is kinda unused and lately got a new icon added, which breaks everything xd 23:55 < bridge> ah or extras.png 23:55 < bridge> true 23:55 < bridge> but hud too i think 23:55 < bridge> team0 mode 23:55 < Voxel> Oh yeah, HUD was very annoying to deal with. 23:57 < Voxel> I think I want the categories to be: Weapons, Particles, HUD and Map_Items. And maybe a GUI category to shove all the GUI images in, if anyone cares. 23:57 < bridge> I have to admit that is IMO the hardest part xD 23:58 < bridge> E.g. should the explosion for nades be really under particles or under the nade weapon 23:58 < bridge> Here is my _current_ structure, which I am only partially happy with: 23:58 < bridge> 23:58 < bridge> https://github.com/Jupeyy/dd-pg/tree/29bc281e6301402ad9289d252dc7283ddbb75aad/data 23:58 < Voxel> Two explosion images, one for grenades and one for non-grenade projectiles /j 23:59 < Voxel> Ohh, including sounds in the packs sound kind of fun! 23:59 < bridge> Yeah 23:59 < Voxel> Though adds a bit of complexity.