00:56 < bridge> Sharing bot compilations in official ddnet dev channel axaxaxax 00:59 < bridge> ? You mean it’s not symmetrical? Should it be? Symmetric is boring and from what I understood the original isn’t either. 00:59 < bridge> chillerbot 00:59 < bridge> No proof 01:03 < bridge> @_voxeldoesart: honestly not sure what your images mean. You gotta use words to explain it. Btw I placed one really ugly hack as Easter egg for you to find in some of the tiles 01:03 < bridge> <_voxeldoesart> >symmetric is boring 01:03 < bridge> <_voxeldoesart> boring =/= visually pleasing 01:03 < bridge> <_voxeldoesart> 01:03 < bridge> <_voxeldoesart> >the original isnt either 01:03 < bridge> <_voxeldoesart> https://cdn.discordapp.com/attachments/293493549758939136/1173412792997523527/image.png?ex=6563dcd2&is=655167d2&hm=fd4d7c9b027e53954493b19ad6e2dbda34bef8d4b44e2285e07ce4dcc642bfba& 01:03 < bridge> Uhm 01:04 < bridge> Okay yea maybe you have a point there :D 01:04 < bridge> how many tees do u have ingame lmao 01:04 < bridge> Go send fix pr mr artist 01:04 < bridge> yes 01:04 < bridge> <_voxeldoesart> ok one second 01:05 < bridge> which matrix client do u use on phone ? 01:05 < bridge> Element and FluffyChat 01:05 < bridge> iOS 01:05 < bridge> why both 01:05 < bridge> Idk 01:06 < bridge> To enjoy all the bugs 01:07 < bridge> <_voxeldoesart> ok for one im going to steal your bolts because i dont know how to make it myself 01:07 < bridge> Wat is a bolt 01:09 < bridge> https://image.tmdb.org/t/p/original/hAQoJ4pku20vy3EqRKtj94RH7vC.jpg 01:09 < bridge> https://static.independent.co.uk/s3fs-public/thumbnails/image/2016/07/21/16/usain-bolt2.jpg 01:10 < bridge> <_voxeldoesart> T_T 01:10 < bridge> @_voxeldoesart: ? 01:10 < bridge> Wat is it 01:10 < bridge> <_voxeldoesart> https://cdn.discordapp.com/attachments/293493549758939136/1173414583684300830/image.png?ex=6563de7d&is=6551697d&hm=adb9f55f8c216396059a66ffc027a6cee394b4fdc14f440954c3611172046216& 01:10 < bridge> The whole thing is a bolt? 01:11 < bridge> Or only the smaller ones inside 01:11 < bridge> Aren’t you the artist? You don’t know how to make those? o.0 01:17 < bridge> <_voxeldoesart> im not skilled enough to make utter jank 01:19 < bridge> Woah 01:19 < bridge> Guess I’m ArtistDragon now then 01:20 < bridge> More skilled than voxel 01:20 < bridge> Check out my artworks https://www.deviantart.com/chillerdragon 01:21 < bridge> <_voxeldoesart> chiller do you want the tiles or not 01:21 < bridge> https://tenor.com/view/squidward-eyes-open-t34gii-gif-23188408 01:21 < bridge> the fucking what now 01:21 < bridge> JK it’s not my deviantart profile xd 01:22 < bridge> <_voxeldoesart> im fixing chiller's unhooks 01:22 < bridge> ok i can sleep 01:22 < bridge> Yea please if you think you can pixel perfecelize my work please adapt it and pr your improvement:) 01:29 < bridge> <_voxeldoesart> halfway done btw 01:32 < bridge> Nice I’ll sleep now. I will check your pr tomorrow :) 01:32 < bridge> Thanks for doing it 07:46 < bridge> @_voxeldoesart tbh the vanilla ones look buggy with those broken edges 07:46 < bridge> Do you think it was intended? 08:20 < bridge> Put me as reviewer by chance 08:34 < bridge> What broken edges? 08:34 < bridge> I don’t even see the changes haha 08:47 < bridge> Sry i meant corners 08:47 < bridge> The corners of the inner quads 08:47 < bridge> Top left corner to be precise 08:47 < bridge> It looks bit cut off 08:47 < bridge> But to me chillers look more correct 09:43 < bridge> trollerdragon 09:43 < bridge> 09:43 < ChillerDragon> @Jupstar ✪ opsi didnt see ur message and alr merged 09:43 < bridge> chillerdragon: we actually have a rule that, if something fixes vanilla stuff we can keep it 09:43 < ChillerDragon> i still do not know what you mean 09:44 < bridge> ok wait 09:44 < ChillerDragon> overall voxels thing is way better checkout my comparison gif 09:44 < ChillerDragon> but yea maybe you are onto some little something 09:45 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1173544034036367462/Screenshot_20231113-094434_Chrome.png?ex=6564570d&is=6551e20d&hm=c0e8c7c95345cab3b3fe6c1f12ff31bcb79ea7d1ba8a1071b7bda41ff593706e& 09:45 < bridge> i'd say both versions have some stuff better 09:45 < ws-client> ok when jopsti pr with best of both worlds 09:45 < bridge> lmao 09:46 < ws-client> ok so which edge you like better? 09:46 < bridge> i like your corners more. but your big quad is bit worse than voxels 09:46 < bridge> it has some weird offset between inner and outer quad 09:47 < ChillerDragon> I like voxels corner more 09:47 < ChillerDragon> his is more correctly matching and id arge it is not a bug 09:47 < bridge> but why is there a random rounding? 09:47 < bridge> yeah but why has vanilla this rounding xDD 09:47 < ChillerDragon> you can also see it while tilting those in editor 09:47 < bridge> to me that looks completely random tbh 09:47 < ChillerDragon> they are not symmetric 09:47 < ChillerDragon> makes them swag 09:48 < bridge> yeah i understand that vanilla has those. but why xD 09:48 < ChillerDragon> you wouldnt understand you are not a artist 09:48 < bridge> ok, so only for swag, i c 09:48 < bridge> yeah true 09:48 < bridge> my brain only knows symmetry 09:48 < ChillerDragon> symmetry is lazy 09:48 < bridge> and perfection 09:48 < ChillerDragon> perfection is not best looking 09:48 < bridge> german engineering 09:48 < bridge> 😬 09:48 < ChillerDragon> :D 09:49 < ChillerDragon> makes it more organic 09:50 < bridge> but unhook is metal 09:50 < ChillerDragon> you are mental 09:50 < bridge> it's meant to look unorganic 09:51 < ChillerDragon> https://zillyhuhn.com/cs/.1699865516.png 09:51 < ChillerDragon> get one of those in da editor and press the rotate key :D 09:51 < ChillerDragon> its pog 09:52 < ChillerDragon> i dont see how a corner like that happens by accident but im pretty sure there is some genius artwork behind 09:52 < ChillerDragon> who even made the tileset? landil? 09:52 < ChillerDragon> its masterpiece 09:53 < bridge> LMAO 09:54 < bridge> @_voxeldoesart read all this, i need your art brain to judge. but try to be objective in a sense that you don't look as vanilla to be the best one 09:54 < ChillerDragon> @_voxeldoesart i take all my bolt bullying back you are truely one of the artist. I u fan now 09:56 < ChillerDragon> jopsti thing is it looks good like a dynamic shadow 09:56 < bridge> yeah he is really good 09:56 < bridge> almost as good as an AI 09:56 < ChillerDragon> creating such a corner is more work than spanning a perfect rectangle 09:56 < ChillerDragon> it was to be placed intentionally 09:56 < bridge> yeah dunno. brain = symmetry 09:56 < ws-client> https://user-images.githubusercontent.com/20344300/205356641-7c205d8f-4751-4248-9806-0cd15ed89aa4.png 09:56 < ws-client> this is a bug 09:57 < bridge> uff 09:57 < ChillerDragon> wat now 09:57 < bridge> which texture is that 09:57 < ChillerDragon> cloud9 09:58 < ChillerDragon> idk one of the clouds 09:58 < ChillerDragon> i fixed it in my submission dont worry 09:58 < bridge> ok, maybe it was a artist genius moment 09:58 < bridge> maybe you broke it 09:58 < ChillerDragon> omg trol 09:59 < bridge> ok i rq now, cya later.always good to talk about art 10:25 < quaker99> Hello 10:25 < quaker99> From quacknet 10:25 < quaker99> quakenet* 10:49 < bridge> helo 11:30 < bridge> @jupeyy_keks what are good resources to learn vulkan? :D 11:33 < bridge> i have 0 idea 11:33 < bridge> 11:33 < bridge> i read https://vulkan-tutorial.com/ 11:33 < bridge> 11:33 < bridge> especially for the setup code. 11:33 < bridge> 11:33 < bridge> 11:33 < bridge> but once i had all this stuff used once, i got a feeling for how vk works.. then i mostly used the vulkan docs indeed 11:33 < bridge> what 100% helps are validation layers. and always fix the errors it says. because that makes some stuff clearer in your head 11:35 < bridge> also what is important to note is. Knowing OpenGL 3.3 doesn't really help 11:35 < bridge> 11:35 < bridge> Opengl 4.4+ probably more. 11:35 < bridge> 11:35 < bridge> vulkan is not a global state machine like opengl 3.3 11:35 < bridge> thanks :owo: 11:36 < bridge> yee.. vulkan aint for grugs :pepeW: 11:36 < bridge> yeah, stuff like glEnable(BLEND) or smth in vulkan (at least if you don't use dynamic rendering) is really setup code already 11:36 < bridge> u need to know what your app will use in advance 😄 11:37 < bridge> i never know it 11:37 < bridge> rip 11:37 < bridge> 11:37 < bridge> anyway, it's mostly just tryhard 11:37 < bridge> u should not give up if you debug a single thing for a whole day 11:38 < bridge> i feel like it will be a fun journey 😬 11:38 < bridge> it is xd 11:38 < bridge> i went full tryhard back then xDD 11:38 < bridge> i stood up, worked on it, went to sleep 11:39 < bridge> i miss those times ;~; 11:39 < bridge> wanna forget everything and relearn again :justatest: 11:49 < bridge> i'd also recommend to use the c headers to learn 11:49 < bridge> 11:49 < bridge> but later switch cpp headers or in rust to ash 11:49 < bridge> 11:49 < bridge> it's not fundamental different, but it helps you a bit to make fewer stupid mistakes you make because c sucks to work in xdd. be it ptrs or stuff like that 11:49 < bridge> 11:49 < bridge> imo that helps to make you understand the higher level header files a bit more and get a feeling how vulkan returns error codes etc. 11:50 < bridge> and also, don't copy paste too much xd 11:50 < bridge> 11:50 < bridge> if you do an own project you are forced to actually understand what you are doing.. that's worth more than just reading code 11:51 < bridge> i just want to understand how graphics work :justatest: 11:51 < bridge> all these fancy ahh words 11:51 < bridge> and such 11:51 < bridge> graphics work like this: 11:51 < bridge> u have triangles 11:51 < bridge> u rasterize triangles 11:51 < bridge> u have pixels 11:51 < bridge> u colorize pixels 11:51 < bridge> Fair 11:52 < bridge> i dunno what exactly you want to learn 11:52 < bridge> vulkan removes the driver overhead. it wont make your GPU run faster 11:52 < bridge> I just want to understand ddnet code 11:52 < bridge> that's very important to understand 11:52 < bridge> In 3 weeks.. i didnt understand much :justatest: 11:52 < bridge> e.g. for ddnet it's much faster bcs the memory model is MUCH more explicit 11:52 < bridge> 11:53 < bridge> i can control when to flush memory. i can say if i want coherent memory etc. 11:53 < bridge> but GPU wise vulkan doesn't run any faster. it's really mostly CPU wise 11:59 < bridge> see the problem is, reading ddnet vk code is probably not a good idea to learn. 11:59 < bridge> 11:59 < bridge> I can give you a very quick summary what the idea of the backend is: 11:59 < bridge> 11:59 < bridge> - streamed memory is always batched, flushed at once before work is submitted to the GPU 11:59 < bridge> - in-use memory is always bound to the frames, so cleanup is delayed until the frame gets in use again 11:59 < bridge> - render threads are just there to collect draw calls. they don't mutate vulkan state 11:59 < bridge> - there is a memory heap that classifies between buffers, staging buffers (buffers that are used to copy content to images or vertex buffers), textures (which have sub classes, depending on the texture requirements & streamed buffers (per frame filled buffers) 12:00 < bridge> 12:00 < bridge> if you see these concept in the code, u understand what's different compared to opengl backend 12:01 < bridge> Im not reading ddnet code to understand vk code, i wanna take a look at vk to understand ddnet vk code XD 12:03 < bridge> ok, anyway, i'd recommend to not look too much into the setup code. most important is simply to understand that there is no real global state. 12:03 < bridge> 12:03 < bridge> so you will not find something like changing texture wrap mode on fly 12:03 < bridge> 12:03 < bridge> it's all done in setup code.. later it's only like an array access 12:03 < bridge> 12:03 < bridge> pipelines[MY_BLEND_MODE_INDEX][MY_WRAP_MODE_INDEX] 12:10 < bridge> hi sometimes i get this error in the console and server shuts down 12:10 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1173580658187186256/err.png?ex=65647928&is=65520428&hm=7f187d6512adcf220dff9449613e282d386173d9d6765f7ff280354a446a8566& 12:10 < bridge> someone help? 12:14 < bridge> is that windows? 12:15 < bridge> yes 12:15 < bridge> 1. dump from %appdata%/DDNet/dumps would be nice 12:15 < bridge> 2. is this latest DDNet-Server or custom server? 12:18 < bridge> read the src :justatest: :justatest: 12:19 < bridge> fair 12:19 < bridge> i installed it on ddnet.org 12:19 < bridge> and 12:19 < bridge> can i share dump 12:19 < bridge> here? 12:21 < bridge> yea. 12:21 < bridge> try not to leak ips if you share. 12:21 < bridge> yea. 12:21 < bridge> try not to leak ips. 12:22 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1173583638944821309/DDNet-Server_win64_crash_log_2023-11-13_11-32-31_4552_5032e0ee7a9f4406defc14873506356dde476d0c.RTP?ex=65647bef&is=655206ef&hm=c6ca0097f6c95f507146727fdcb9876718d07eac548075a5f5c7c7b9506040cc& 12:24 < bridge> thanks, if you have a github account you could create an issue on gh repo. 12:24 < bridge> 12:24 < bridge> Else i do it later if i don't forget it 12:25 < bridge> okay thanks 17:49 < bridge> i drink coke zero sometimes 17:50 < bridge> coke is too sweet 17:50 < bridge> also makes u fat 17:50 < bridge> sweeteners often make u hungry 17:50 < bridge> so i dunno if that helps 17:51 < bridge> <_voxeldoesart> whats blake3 17:51 < bridge> the successor of blake2 17:51 < bridge> ye but technically then u can just eat healthier food 😹 17:51 < bridge> exactly.. sweet drinks are always a problem 17:51 < bridge> diet coke > coke zero though 17:52 < bridge> bcs drinks don't make your body fed 17:52 < bridge> <_voxeldoesart> what does blake3 do 17:52 < bridge> u could say it's basically alternative to sha256 17:52 < bridge> if u ever heard of that 17:52 < bridge> it is a cryptographic hash function 🤓 17:52 < bridge> <_voxeldoesart> i think? ddnet uses it maybe 17:52 < bridge> <_voxeldoesart> oh ok 17:53 < bridge> ddnet uses it for file identifying 17:53 < bridge> e.g. your downloaded map 17:54 < bridge> <_voxeldoesart> when replace with blake3 17:54 < bridge> wasn't there that one time zombietroll used the map scraper to upload a funny map 17:55 < bridge> whats the diff 17:55 < bridge> idk diet tastes better imo 17:55 < bridge> better aftertaste 17:55 < bridge> when we still used CRC instead of sha? 18:40 < bridge> @robyt3 could I maybe move the https download URL into community json? 18:41 < bridge> that way you don't have to do string concatenation to extract the actual URL 18:42 < bridge> So you specify the full URL for every community object individually? Fine for me, though I don't think the string concatenation is a problem in itself. 18:43 < bridge> yes, that's what I mean 18:43 < bridge> the problem I see with not doing it is that every consumer of this JSON has to implement it on its own 18:43 < bridge> Hm, yeah, I suppose it's better if the json is standalone 18:44 < bridge> Would also be easier to change URLs in the future then 18:44 < bridge> yes 18:44 < bridge> only one nightly version with this has shipped so far? 18:44 < bridge> no official releases? 18:44 < bridge> yeah 18:44 < bridge> I don't think we need additional compatibility for those few 18:44 < bridge> yes 18:46 < bridge> while I'm at it, I'd also remove the `"ranks-key": ""` if it's empty 18:46 < bridge> to distiguish between empty string and non-existent value 18:46 < bridge> would that also be okay? 18:47 < bridge> thanks for the amazing PR btw ^^ 18:47 < bridge> was a lot of good stuff and I'm only nitpicking here 18:47 < bridge> Seems fine to use default `""` if it's missing, but you also have to adjust the validation because the entry would otherwise be considered invalid 18:48 < bridge> I'd consider the empty string a valid key then (no longer treating it special) 18:48 < bridge> You mean differentiate between missing key and empty key? What would the empty key be useful for? 18:49 < bridge> Right now the community entry is only considered valid if the attribute exists and is of type string, is what I mean with validation 18:49 < bridge> we're not going to use it, but I find it weird to special-case the empty string 18:49 < bridge> theoreticlaly (we're not going to do it), you could use the empty string as the key for the community ranks 18:50 < bridge> Yeah, conceptually leaving the key out or using `null` would be cleaner 20:39 < ChillerDragon> any admin up for dms? 20:39 < bridge> do tiles behind clipping get rendered and then hidden or does the game not bother rendering them at all 20:57 < bridge> they get clipped by the GPU 20:57 < bridge> so they vertices are called 20:57 < bridge> but they fragments are filtered 21:30 < bridge> <_voxeldoesart> jup isnt there a way to fake rotation in a fragment shader 21:30 < bridge> <_voxeldoesart> just realizing 21:31 < bridge> u either do a rotation or u dont xd 21:32 < bridge> or what kind of fake rotation does come into your mind 22:29 < bridge> aaaaaa 22:29 < bridge> src/game/editor/editor.cpp:8064:69: error: code should be clang-formatted [-Wclang-format-violations] 22:29 < bridge> auto nameIsTaken = [pNewImage](const std::shared_ptr& otherImage) { return str_comp(pNewImage->m_aName, otherImage->m_aName) == 0; }; 22:29 < bridge> ``` 22:29 < bridge> src/game/editor/editor.cpp:8064:69: error: code should be clang-formatted [-Wclang-format-violations] 22:29 < bridge> auto nameIsTaken = [pNewImage](const std::shared_ptr& otherImage) { return str_comp(pNewImage->m_aName, otherImage->m_aName) == 0; }; 22:29 < bridge> ``` 22:30 < bridge> whats the issue :pepeW: 22:31 < bridge> `& ` -> ` &` is one clang-format issue, we also capitalize variable names (but not prefixes), so `NameIsTaken` and `OtherImage` 22:32 < bridge> yuck 22:32 < bridge> If you use Visual Studio then you can also run Clang-Format directly in there 22:33 < bridge> im trying out clion :^) 22:34 < bridge> Should be possible to use clang-format in CLion, but maybe you need to install/compile clang-format separately 22:35 < bridge> Do All Variable Names Really Need To Be Like This? 22:36 < bridge> https://wiki.ddnet.org/wiki/Development#Code_conventions 22:36 < bridge> Single letter variable can be lower case, e.g. `i`, `x`, `y` 22:36 < bridge> Single letter variables can be lower case, e.g. `i`, `x`, `y` 22:39 < bridge> even if it's not the best casing for variables (which is completely subjective) it's still best to have consistent casing schemes for different keywords 22:41 < bridge> ive seen worse is ok 22:45 < bridge> wdym 22:50 < bridge> i mean that its very ugly but ive seen worse 22:55 < bridge> <_voxeldoesart> you said you can't rotate things inside a fragment shader, right? 22:56 < bridge> AFAIR you can but then there would have to be another stage in the shader for it. Having the images pre-rotated is more efficient 23:01 < bridge> <_voxeldoesart> Hm, I guess so. 23:30 < bridge> @axel_vestin You should consider configuring your git user name and email so they are linked with GitHub user, it currently doesn't link your profile on your commits 23:30 < bridge> @axel_vestin You should consider configuring your git user name and email so they are linked with your GitHub user, it currently doesn't link your profile on your commits 23:34 < bridge> aaaaaaaa 23:37 < bridge> You can squash all your commits in #7451 and then rewrite the author of the current HEAD commit with `git commit --amend --author="Author Name " --no-edit` 23:37 < bridge> https://github.com/ddnet/ddnet/pull/7451 23:56 < bridge> :justatest: