00:56 < bridge> i failed 00:56 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1167597601697300490/IMG_3836.png?ex=654eb501&is=653c4001&hm=e9289acd32a3f3571247345ebe5eef1f3cd7ed84c65b71c3630e9bdee75a8104& 02:21 < bridge> HOLY FUCK thank you function overloading, you wasted a significant amount of my time 02:22 < bridge> remember kids, `ivec2(env_indices.y)` is not the same as `ivec2(env_indices.y, 0)` 02:22 < bridge> one will correctly index into a 1-d texture, the other not 02:22 < bridge> πŸ™ƒ 02:32 < bridge> πŸ˜΅β€πŸ’« 02:34 < bridge> :pepeW: 03:03 < bridge> @tsfreddie @jupeyy_keks @k2d222 The shader didn't turn out all that bad 03:03 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1167629733178130583/quads_layer.gdshader?ex=654ed2ed&is=653c5ded&hm=2c824d47ac7c9abcfc2a2d87c9f627e825ec9f2f9bb087ecfa66d9c34102d669& 03:04 < bridge> (discord-friendly version) 03:04 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1167629956810035270/quads_layer.gdshader.txt?ex=654ed323&is=653c5e23&hm=08809c1679694ada08f64fed00aa76060c71d566c5f2061ca006db7555102914& 03:24 < bridge> Fun game 03:24 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1167635050150494258/Screenshot_20231028_032421_Chrome.jpg?ex=654ed7e1&is=653c62e1&hm=fa30e285a7c163432d208a393abd739a7d83ecd5b602221ce54083824c25a8e2& 03:27 < bridge> Implementing (parts of) teeworlds in Godot? 08:48 < bridge> did anyone change the font code recently 08:49 < bridge> now where's the screenshot πŸ‘€ 08:49 < bridge> yea srsly 09:37 < bridge> @gerdoe ok git revert revert xdd 09:37 < bridge> 09:37 < bridge> if you use 09:37 < bridge> ``` 09:37 < bridge> setx VK_ICD_FILENAMES .\\lvp_icd.x86_64.json 09:37 < bridge> ``` 09:37 < bridge> in powershell 09:37 < bridge> 09:37 < bridge> it indeed works 09:37 < bridge> @gerdoe then u have a working vulkan driver πŸ˜„ 09:45 < bridge> @gerdoe step by step for you (and so i dont forget xdd) 09:45 < bridge> 09:45 < bridge> 1. download https://github.com/pal1000/mesa-dist-win/releases/download/23.2.1/mesa3d-23.2.1-development-pack-mingw.7z 09:45 < bridge> 2. from the x64 dir, unpack `lvp_icd.x86_64.json` and `vulkan_lvp.dll` into the root dir of the project (see image) 09:45 < bridge> 3. 09:45 < bridge> in powershell type: 09:45 < bridge> ``` 09:45 < bridge> setx VK_ICD_FILENAMES .\\lvp_icd.x86_64.json 09:45 < bridge> ``` 09:45 < bridge> 4. start 09:45 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1167730794719092877/image.png?ex=654f310c&is=653cbc0c&hm=3ac85aaaca4beff8ee769a159daf543476c2fbcfb16fccea1832797342236335& 09:45 < bridge> @gerdoe step by step for you (and so i dont forget xdd) 09:45 < bridge> 09:45 < bridge> 1. download https://github.com/pal1000/mesa-dist-win/releases/download/23.2.1/mesa3d-23.2.1-release-mingw.7z 09:45 < bridge> 2. from the x64 dir, unpack `lvp_icd.x86_64.json` and `vulkan_lvp.dll` into the root dir of the project (see image) 09:45 < bridge> 3. 09:45 < bridge> in powershell type: 09:45 < bridge> ``` 09:45 < bridge> setx VK_ICD_FILENAMES .\\lvp_icd.x86_64.json 09:46 < bridge> ``` 09:46 < bridge> 4. start 09:46 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1167730794719092877/image.png?ex=654f310c&is=653cbc0c&hm=3ac85aaaca4beff8ee769a159daf543476c2fbcfb16fccea1832797342236335& 09:47 < bridge> @gerdoe step by step for you (and so i dont forget xdd) 09:47 < bridge> 09:47 < bridge> 1. download https://github.com/pal1000/mesa-dist-win/releases/download/23.2.1/mesa3d-23.2.1-release-mingw.7z 09:47 < bridge> 2. from the x64 dir, unpack `lvp_icd.x86_64.json` and `vulkan_lvp.dll` into the root dir of the project (see image) 09:47 < bridge> 3. in powershell type: 09:47 < bridge> 09:47 < bridge> ``` 09:47 < bridge> setx VK_ICD_FILENAMES .\\lvp_icd.x86_64.json 09:47 < bridge> ``` 09:47 < bridge> 4. start 09:47 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1167730794719092877/image.png?ex=654f310c&is=653cbc0c&hm=3ac85aaaca4beff8ee769a159daf543476c2fbcfb16fccea1832797342236335& 09:57 < bridge> morning 09:57 < bridge> good morning 10:01 < bridge> some random html ads platform filler game that happened to blow up. 10:02 < bridge> pro 12:23 < bridge> I swear its Godot 12:23 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1167770535766269992/2023-10-28-122235_1920x1080_scrot.png?ex=654f560f&is=653ce10f&hm=d9e7f53856db2f5598a1116ac80a5205180846fb51b0a51a114f7c1bf4dd3b1a& 12:23 < bridge> yea :) 12:39 < bridge> when map editor in godot 12:41 < bridge> I considered implementing compatibility with the "Tiled" map editor https://www.mapeditor.org/, but envelopes would not be supported last time I checked 12:42 < bridge> envelopes are a different kind of difficult task 12:43 < bridge> we have animation trees and stuff to make anything we want (color, position, conditions, etc) 12:43 < bridge> but then it's very unsafe due to it running anything you give, even running different code 12:43 < bridge> but then it's very unsafe due to it running anything you give, even running different code (so nono on AnimationTree nodes) 12:52 < bridge> nais looks good already 12:52 < bridge> any limitations in this format? 12:52 < bridge> the tilemap borders, still ^^ 12:52 < bridge> i c 12:52 < bridge> btw do u plan to do something with this renderer? like do u plan to use godot physics or smth 12:53 < bridge> I plan to integrate it with Zwelf's TwGame, which provides gamestate 12:54 < bridge> which map is this btw? 12:54 < bridge> dm1 12:54 < bridge> ah lol true 12:54 < bridge> very niche map xd 12:55 < bridge> the platform confused me 12:55 < bridge> but it's actually in tha tmap xd 12:55 < bridge> but it's actually in that map xd 12:56 < bridge> TwGame can already process teehistorian and demos (I think). I hope that Zwelf will support a server connection somehow in the future 12:56 < bridge> but why godot is still the question 12:57 < bridge> to get something running I think ^^ 12:58 < bridge> like controls and stuff? 12:58 < bridge> It's kinda hard for me to make progress in twgpu, maybe if I come back to it now, I'd make progress more quickly 12:59 < bridge> it kinda just seemed like a fun project to do maybe 13:01 < bridge> does the engine perform well? 13:01 < bridge> got any benches? 13:01 < bridge> hm not yet, I'll take a look 13:02 < bridge> i'd also be interested in startup time 13:02 < bridge> when i hear godot i think of a monster engine u know xd 13:02 < bridge> big maps are horrible in terms of load times, because the tilemap format is drastically different 13:03 < bridge> the engine itself 13:03 < bridge> I'd have to try out a release build I guess 13:03 < bridge> hm, right 13:03 < bridge> only in release godot will the rust code run in release mode 13:03 < bridge> so it might not be that bad after all 13:05 < bridge> I'll do parallax zoom, and do the other stuff after 13:42 < bridge> @ryozuki can i build linux-6.1.57-gentoo without changing it on eselect kernel? 13:42 < bridge> why 13:42 < bridge> changing eselect kernel doesnt do anything important 13:42 < bridge> u can do it without care 13:42 < bridge> what r u scared of 13:43 < bridge> breaking everything :cluess: 13:43 < bridge> u cant 13:43 < bridge> im very talanted at it 13:43 < bridge> because u dont boot from /usr/src/linux 13:43 < bridge> its just the source 13:43 < bridge> it is installed somewhere else 13:45 < bridge> @patiga public project? 13:45 < bridge> not yet, will make it public tho 13:45 < bridge> maybe simply today 13:46 < bridge> it might just have given me enough motivation to continue with twgpu ^^ 13:46 < bridge> Is it just the map loader so far or more? 13:47 < bridge> just map 13:47 < bridge> you are welcome to extend it ^^ 13:47 < bridge> I just might do that 13:48 < bridge> good morning 13:48 < bridge> good morning! 13:48 < bridge> slept well? 13:48 < bridge> πŸŒ… 13:48 < bridge> no 13:48 < bridge> :kek: 13:48 < bridge> @mr.gh0s7 didnt u do like tw in 3d? 13:48 < bridge> :twintri: 13:48 < bridge> and i wasted a whole day 13:49 < bridge> Ping or DM me when you've set up a repo, please 13:49 < bridge> yeah xD but it's not a public project cause it sucked. I hooked up to a normal client with fifos so it was really slow 13:49 < bridge> and i'm downloading that five nights of freddy's movie 13:49 < bridge> but was it also in godot? 13:50 < bridge> yeah 13:50 < bridge> non public project gang 13:50 < bridge> :gdamogus: 13:50 < bridge> I'm waiting for Patiga's implementetion so I can borrow the networking :) 13:50 < bridge> ez 13:50 < bridge> but it sounds like patiga continues with twgpu 13:50 < bridge> instead of godot 13:50 < bridge> why would a map viewer need networking 13:51 < bridge> I realized that I could do UI there as well using egui or smth 13:51 < bridge> To make it a server/client 13:51 < bridge> and I do like twgpu more still ^^ 13:51 < bridge> :owo: 13:51 < bridge> but I also kinda wanna learn some Godot, maybe participate in some game jam sometime 13:52 < bridge> to make it a client :p 13:52 < bridge> oh 13:52 < bridge> Godot is great. Use it daily on my job, highly recommended 13:52 < bridge> oi exciting, where do you work? 13:52 < bridge> i mean it's c++, just embed ddnet in engine 13:53 < bridge> Small game studio, remote work 13:53 < bridge> I'm so damn bad for getting game ideas, but Godot is really interesting. Have a friend who used to work with Unity & for what he does he was attracted by Godot also 13:53 < bridge> i honestly does not really like godot everytime i use it 13:53 < bridge> is the project public or can't you tell? 13:53 < bridge> Skill issue 13:53 < bridge> Not yet 13:54 < bridge> I did work on things like the Godot Modloader 13:55 < bridge> And a collaboration addon that'll release later this year 13:55 < bridge> unity sucks and cooperation and proprietary and all that. but it's so much work to extend the editor in godot for team use compared to unity. although unreal isn't really good on the editor part as well but at least they have a whole suite of in-house ready-to-go solutions 13:55 < bridge> godot still got a long way to go :justatest: 13:56 < bridge> at least the engine modules aren't too difficult to work with 13:56 < bridge> I understand that extending some parts is hard, but the editor itself isn't one of them 13:56 < bridge> ah lol 13:56 < bridge> this is a different blade than the one i was thinking of 13:56 < bridge> Ah, you talking core engine 13:56 < bridge> ikr 13:56 < bridge> was like, wtf since when is he dev 13:56 < bridge> xD 13:56 < bridge> Happens all the time 13:57 < bridge> That's why on the official teeworlds server I renamed myself to "Blade." 13:57 < bridge> Much more unique 13:57 < bridge> the other blade is still rocking stolen avatar of mine 13:57 < bridge> the other blade is still rocking the stolen avatar of mine 13:58 < bridge> Checks out 13:58 < bridge> oh lol blade isn't actually blade 13:58 < bridge> @DR.3AM hi, sry for ping 13:58 < bridge> I use irc mode so couldn't tell 13:58 < bridge> Fine, I'll add the dot here too 😭 13:58 < bridge> imagine discord taking away the identifier numbers to make this more confusing 13:59 < bridge> imagine 2 blades are typing 13:59 < bridge> oh wait they did 13:59 < bridge> confusion level > 9000 13:59 < bridge> I can't even nickname myself 13:59 < bridge> somehow i can 14:00 < bridge> You may have permission since you're moderator 14:00 < bridge> oh right 14:00 < bridge> forgot about the moderator part 14:01 < bridge> i wasn't really moderating anything as you could imagine 14:01 < bridge> :kek: 14:01 < bridge> Relatable 14:03 < bridge> By the way @patiga did you do the implementation as a GDExtension? 14:04 < bridge> yes, the map code is Rust 14:04 < bridge> 😭 14:04 < bridge> not again 14:04 < bridge> the camera is Godot code though 14:04 < bridge> everyone is using the fancy code that I can't understand 14:04 < bridge> I swear to god 14:04 < bridge> C++ is already hard enough 14:05 < bridge> i hate that I still can't learn rust 14:05 < bridge> @blade67 you don't need to use Rust yourself though ^^ 14:05 < bridge> I just find it easiest 14:05 < bridge> isn't rust binding still experimental 14:05 < bridge> its community-maintained 14:05 < bridge> I'd rather just port the code from C++ 14:05 < bridge> https://godot-rust.github.io/ 14:06 < bridge> oh cool 14:06 < bridge> still have that yellow part of the readme 14:07 < bridge> ah 14:07 < bridge> > The public API introduces breaking changes from time to time. Most of these are motivated by new features and improved ergonomics for existing ones. See also API stability in the book. 14:08 < bridge> also a huge issue of rust for me is just how slow it is to use cargo in china 14:08 < bridge> not that npm is any better but i already know a few mirrors 14:08 < bridge> Looks like I'll stick to my TS server implemetation for now 14:08 < bridge> hi. my name is TS-Freddie 14:09 < bridge> TypeScript, Freddie, TypeScript. 14:09 < bridge> :owo: i do love typescript as well 14:09 < bridge> i would take length to make sure everyone on my team at work knows typescript 14:11 < bridge> That's fair. I mean, it gives code safety at least. Not on runtime but eh 14:11 < bridge> Can always use zod for that 14:11 < bridge> (Or similar) 14:11 < bridge> @patiga is it ez to compile? 14:12 < bridge> ur project i mean 14:12 < bridge> i'd imagine it would just compile like any other cargo packages 14:12 < bridge> yeah but with godot deps 14:12 < bridge> and godot has 200000 deps 14:12 < bridge> and the deps have 20000 deps 14:12 < bridge> i think binding doesn't really need deps to compile 14:12 < bridge> Safety :kek: 14:13 < bridge> but how do i get godot? xd 14:13 < bridge> download it? 14:13 < bridge> yup 14:13 < bridge> i didnt invent linux to use my browser 14:13 < bridge> xd 14:13 < bridge> use 14:13 < bridge> sure 14:14 < bridge> `scons .` and wait for 10 minutes 14:14 < bridge> done 14:14 < bridge> xd 14:14 < bridge> ez 14:14 < bridge> People actually have to wait that long for Godot to compile? 14:14 < bridge> @patiga so you challenge me to my tw version 14:14 < bridge> 14:14 < bridge> nice 14:14 < bridge> i mean it wasn't that fast on my laptop 14:14 < bridge> for the first compile 14:15 < bridge> for the release build 14:15 < bridge> Compiles in less than 2 minutes for me... then again I have a 16 core cpu... 14:15 < bridge> ok i have 16 cores 14:15 < bridge> should be fast af 14:15 < bridge> Ya 14:15 < bridge> I have 8c16t 14:15 < bridge> I'm on it 😎 14:15 < bridge> maybe it was old 14:15 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1167798895108165712/image.png?ex=654f7079&is=653cfb79&hm=cabb8fab0145a06b5d540e4770c8b681ba34781b3e5e1378843fb83bf538851f& 14:16 < bridge> @robyt3 learn rust, we need to beat @patiga and zwelf 14:17 < bridge> I still have to learn C++ properly, why do people go with rust now D: 14:17 < bridge> @jupeyy_keks are you not in the rust gang yet 14:17 < bridge> i am quite good in rust already i think 14:17 < bridge> i have no idea how you would learn C++ properly either 14:17 < bridge> wdym by 'we then 14:18 < bridge> robyte and me vs patiga and zwelf 14:18 < bridge> 14:18 < bridge> and robyte when afk right after you tagged them 14:18 < bridge> and robyte went afk right after you tagged them 14:19 < bridge> he was like: shit here we go again 14:19 < bridge> speaking of c++ 14:19 < bridge> asked our new hires and interns about what they use as textbook for cs 14:20 < bridge> apparently the chinese c++ textbook that teaches you UBs as facts and quiz you on those is still in use 14:20 < bridge> :kek: 14:20 < bridge> xDD 14:21 < bridge> never been in a chinese college but it's just funny that the old ass textbook is still around 14:21 < bridge> maybe it's only because no one bothered to write a new one 14:22 < bridge> Anyone here has a minimal server implementation in any language that isn't rust? lol 14:22 < bridge> I know there's a C# one 14:22 < bridge> ddnet's protocol code is technically in python 14:22 < bridge> :owo: 14:23 < bridge> But that's only ddnet, right? 14:23 < bridge> it was like that since teeworlds 14:23 < bridge> and it was just a code gen so i guess it is still c++ 14:24 < bridge> @robyt3 when first team meeting 😬 14:25 < bridge> i prefer to be in the winning team 14:25 < bridge> https://github.com/search 14:25 < bridge> since when did they had this search engine looking page 14:25 < bridge> I really just need a barebones implementation 😭 14:25 < bridge> hot 14:39 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1167804951284686939/image.png?ex=654f761d&is=653d011d&hm=cd6d792a26a76e1e176884b43a7175a75a2f4b5a2e1b955a3eeab8310a22757f& 14:40 < bridge> epic 14:45 < bridge> wtf is that swap size? 14:45 < bridge> believe it or not with 32 threads u can easily get over 32gb RAM usage while compiling πŸ˜„ 14:46 < bridge> and yeah i tried some ML 14:46 < bridge> next pc has to have 256GB RAM to be future ready 😬 14:49 < bridge> right i remember. i compiled the vulkan-validation-layers-git on arch and that actually went over 32GB RAM xd 15:04 < bridge> <_voxeldoesart> when was last update release 15:04 < bridge> 2023-09-23 15:09 < bridge> Yay :poggers2: 15:09 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1167812395939401728/IMG_20231028_160746.jpg?ex=654f7d0c&is=653d080c&hm=f89921253e101353dd0c3a38cbc88efe9e6ffcb2f5f6e614a404f3c67f0323fe& 15:10 < bridge> gentoo can do 15:10 < bridge> @deen We should update the credits for the next release, we got quite a few new contributors 15:10 < bridge> Can do what 15:11 < bridge> panic apparently 15:12 < bridge> Thanks God there is old version otherwise it would ve joeover 15:12 < bridge> <_voxeldoesart> gentoo can panic? 15:12 < bridge> <_voxeldoesart> no wonder why ryozuki uses it 15:12 < bridge> wowo didnt want to start the 3rd world war xdd 15:15 < bridge> theres only 1 place where i could do something wrong :thonk: 15:20 < bridge> nop, its the same commands 15:20 < bridge> whoopsie daisy 16:37 < bridge> @ryozuki u never had a similar problem? :owo: 16:57 < bridge> i had kernel panics in the past 16:57 < bridge> not now tho 16:57 < bridge> when i used arch 16:57 < bridge> @milkeeycat r u using grub? 16:57 < bridge> did u run the grub command after compiling and installing kernel 16:57 < bridge> yep 16:58 < bridge> i ran grub-mkconfig -o /boot/grub/grub.cfg 16:58 < bridge> is ur fstab correct 16:58 < bridge> eeehm 16:59 < bridge> other kernels work 16:59 < bridge> is it possible that its wrong? 16:59 < bridge> did u configure it wrong 16:59 < bridge> when u configure the kernel urself u need to know to enable some things 16:59 < bridge> for example did you enable ext4 support 16:59 < bridge> if ur partition uses ext4 17:00 < bridge> i just yoinked .config i had in dist kernel 17:00 < bridge> i though if it worked i can use that 17:00 < bridge> ok ur on ur own 17:01 < bridge> u shouldnt use gentoo if u dont understand and do research by urself tbh 17:02 < bridge> @patiga wth is wrong with this map you created for me at some point? it crashes the client when going ingame even on old client versions, somehow it tries to load way more sounds than exist in the map file 17:02 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1167840704161132654/testing_many_sounds.map?ex=654f9769&is=653d2269&hm=6ab46131eb117e19c0500cef3df82187b87f6a4b16ad2d33ca75cc0840a69996& 17:02 < bridge> 1 google away literally https://wiki.gentoo.org/wiki/Knowledge_Base:Unable_to_mount_root_fs 17:02 < bridge> i though maybe u had something similar and there's an easy way but sure ill be researching it myself 17:02 < bridge> no i havent had this because i know how to configure my kernel 17:02 < bridge> ok, thanks 17:02 < bridge> :justatest: 17:03 < bridge> Somehow it works completely fine in the editor though 17:03 < bridge> what was that map again? just a lot of embedded sounds? 17:03 < bridge> Yeah, in the editor I see 100 sounds 17:03 < bridge> I'll take a look 17:03 < bridge> In the console when going ingame I see 17:03 < bridge> ``` 17:03 < bridge> 2023-10-28 16:56:20 T datafile: loading data. index=0 size=18 uncompressed=10 17:03 < bridge> 2023-10-28 16:56:20 I sound/opus: failed to open file. filename='mapres/bg_cloud1.opus' 17:03 < bridge> 2023-10-28 16:56:20 T datafile: loading data. index=0 size=18 uncompressed=10 17:03 < bridge> 2023-10-28 16:56:20 I sound/opus: failed to open file. filename='mapres/bg_cloud1.opus' 17:03 < bridge> 2023-10-28 16:56:20 T datafile: loading data. index=1 size=18 uncompressed=10 17:03 < bridge> 2023-10-28 16:56:20 I sound/opus: failed to open file. filename='mapres/bg_cloud2.opus' 17:03 < bridge> 2023-10-28 16:56:20 T datafile: loading data. index=3 size=22 uncompressed=14 17:03 < bridge> 2023-10-28 16:56:20 I sound/opus: failed to open file. filename='mapres/grass_doodads.opus' 17:04 < bridge> 2023-10-28 16:56:20 T datafile: loading data. index=4 size=19 uncompressed=11 17:04 < bridge> 2023-10-28 16:56:20 I sound/opus: failed to open file. filename='mapres/grass_main.opus' 17:04 < bridge> 2023-10-28 16:56:20 T datafile: loading data. index=5 size=18 uncompressed=10 17:04 < bridge> 2023-10-28 16:56:20 I sound/opus: failed to open file. filename='mapres/mountains.opus' 17:04 < bridge> 2023-10-28 16:56:20 T datafile: loading data. index=8 size=29716 uncompressed=30604 17:04 < bridge> 2023-10-28 16:56:20 I sound/opus: failed to decode sample 17:04 < bridge> 2023-10-28 16:56:20 E mapsounds: Failed to load map sound 107: failed to load name. 17:04 < bridge> 2023-10-28 16:56:20 E mapsounds: Failed to load map sound 108: failed to load name. 17:04 < bridge> 2023-10-28 16:56:20 E mapsounds: Failed to load map sound 109: failed to load name. 17:04 < bridge> 2023-10-28 16:56:20 E mapsounds: Failed to load map sound 110: failed to load name. 17:04 < bridge> ``` 17:04 < bridge> @milkeeycat do u have a initramfs 17:04 < bridge> Looks like it tries to find more sound items in random regions of memory 17:04 < bridge> forget it, ill fix it myself πŸ™‚ 17:04 < bridge> ok 17:04 < bridge> thats the chad gentoo way 17:05 < bridge> @milkeeycat btw i recommend u keep a usb with a live gentoo, so u can fix ur install in case u cant boot, u do the same when installing, u mount the filesystem and arch-chroot 17:09 < bridge> the map itself seems totally fine to me, so I'm not sure 17:09 < bridge> The crash log is random each time, look like memory corruption :monkaS: 17:10 < bridge> have you checked if there is some hardcoded limit for sounds somewhere? the client also only allows 64 images before it shows random textures last time I tried it 17:10 < bridge> oh 17:10 < bridge> :kek: 17:10 < bridge> `int m_aSounds[64];` 17:11 < bridge> :hey: 17:11 < bridge> welp, time to add another check in twmap I suppose ^^ 17:11 < bridge> that explains why `std::vector m_vSourceQueue;` was getting corrupted 18:33 < bridge> Can anyone help me understand the data part of map files? 18:34 < bridge> https://dontasktoask.com/ πŸ™‚ 18:36 < bridge> ..? I didn't ask to ask, I asked... 18:37 < bridge> you asked to help for your following questions to be answered 18:38 < bridge> Do you have a specific question? A good starting point would be reading https://github.com/heinrich5991/libtw2/blob/master/doc/map.md and then ask about things that are not clear 18:38 < bridge> Do you have a specific question? A good starting point would be reading https://github.com/heinrich5991/libtw2/blob/master/doc/map.md and https://github.com/heinrich5991/libtw2/blob/master/doc/datafile.md and then ask about things that are not clear 18:42 < bridge> I'm just not sure how the data is split up 18:42 < bridge> chinese chatters have a old habbit of asking others "are you online?" before saying anything else 18:42 < bridge> I hate those 18:43 < bridge> What do you mean with "split up"? Do you mean how it's layed out in the file? 18:44 < bridge> Yes 18:44 < bridge> All data elements are written to the file on after the after 18:44 < bridge> And the file positions are stored in the datafile header 18:44 < bridge> I have the item offsets and the data offsets but I'm not sure how they get me each data element 18:45 < bridge> If I ever forget about that link I am gonna write: "Hey I need help". :kek: 18:45 < bridge> I assume the data elements are from data_offset[n] to data_offset[n + 1] ? 18:47 < bridge> yeah, but map version 4 also stores the item sizes in the header 18:48 < bridge> I can't really give you the details immediately either, I just read the reference implementation (i.e. `datafile.cpp`) 18:49 < bridge> The indices are set up in `CDataFileReader::Open` 18:49 < bridge> yeah, but map version 4 also stores the data sizes in the header 18:50 < bridge> So this should be correct 18:50 < bridge> ```py 18:50 < bridge> buffer = data_buffer.slice(data_offsets[x], (data_offsets[x + 1] if x + 1 < data_offsets.size() - 1 else header.data_size)) 18:50 < bridge> ``` 18:50 < bridge> Note that I'm implementing this in Godot 18:53 < bridge> But when I try to compare the data element's size to the data_sizes I just get 18:53 < bridge> ``` 18:53 < bridge> data_elements: [[216, 224, 223, 75, 106, 0, 0, 0, 15, 0, 0, 0, 0, 0, 0], [], [216, 224, 223, 75, 106, 0, 0, 0, 12, 0, 0, 0], [], [216, 224, 223, 75, 106, 0, 0, 0, 13, 0, 0, 0, 0], [], [216, 224, 223, 75, 106], [], [], [], [], [], [], [], [], [], [], []] 18:53 < bridge> data_sizes: [15, 4194304, 12, 4194304, 13, 5767168, 5, 152, 152, 2432, 152, 304, 36000, 40000, 40000, 40000, 40000, 40000] 18:53 < bridge> ``` 18:53 < bridge> xd 18:53 < bridge> wait 18:53 < bridge> So something's wrong somewhere 18:54 < bridge> you are reimplementing the map parsing in Godot now? :wtf: 18:54 < bridge> is data_buffer the entire file, or the segment which contains the data items? 18:54 < bridge> the data offsets are not absolute in the map file, they are relative to the start of their segment 18:54 < bridge> Segment, or at least it should be 18:54 < bridge> so the first data offset is always 0 iirc 18:55 < bridge> ah right 18:55 < bridge> zlib compression 18:55 < bridge> data size is the uncompressed size 18:55 < bridge> *decompressed 18:56 < bridge> I mean, should be `data_element.append(buffer.decompress(data_sizes[x], 0))` 18:57 < bridge> I don't know what all those variables and function parameters are, but it looks about right 18:59 < bridge> usually slice functions are exclude the last element, so maybe `[x]` instead of `[x + 1]`, might ofc be different in godot 18:59 < bridge> so now you are implementing the import process of maps in godot? ^^ 19:00 < bridge> ya 19:00 < bridge> well firstly: gl, cool project 19:01 < bridge> secondly: why? there happens to already be a relatively new implementation of that :p 19:04 < bridge> Yeah buts its in Rust 19:04 < bridge> I want complete access to it 19:04 < bridge> :HammyShock: 19:05 < bridge> I effectively transfered this project to Godot but getting stuck at roughly line 100 19:05 < bridge> https://github.com/edg-l/teelib/blob/master/teelib/map/loader.py 19:05 < bridge> Specifically the check at line 114 19:07 < bridge> what kind of access are you looking for? pretty much everything should be possible with it 19:07 < bridge> Doesn't really matter if it does, I always prefer native implementations 19:08 < bridge> In my TS implementation I have exactly the same issue btw 19:08 < bridge> could you show your code? 19:08 < bridge> Which part? 19:09 < bridge> the whole code, or the part where you think that the error is 19:09 < bridge> ``` 19:09 < bridge> var map_data : Array = [] 19:09 < bridge> for x in range(header.num_data): 19:09 < bridge> var buffer : PackedByteArray 19:09 < bridge> if data_offsets.size() < x: 19:09 < bridge> buffer = data_buffer.slice(data_offsets[x]) 19:09 < bridge> else: 19:09 < bridge> buffer = data_buffer.slice(data_offsets[x]) 19:09 < bridge> 19:10 < bridge> if version_header.version == 4: 19:10 < bridge> map_data.append(buffer.decompress(data_sizes[x], 1)) 19:10 < bridge> else: 19:10 < bridge> map_data.append(buffer) 19:10 < bridge> ``` 19:10 < bridge> ``` 19:10 < bridge> var map_data : Array = [] 19:10 < bridge> for x in range(header.num_data): 19:10 < bridge> var buffer : PackedByteArray 19:10 < bridge> if data_offsets.size() < x: 19:10 < bridge> buffer = data_buffer.slice(data_offsets[x]) 19:10 < bridge> else: 19:10 < bridge> buffer = data_buffer.slice(data_offsets[x], (data_offsets[x + 1] if x + 1 < data_offsets.size() - 1 else header.data_size)) 19:10 < bridge> 19:10 < bridge> if version_header.version == 4: 19:10 < bridge> map_data.append(buffer.decompress(data_sizes[x], 1)) 19:10 < bridge> else: 19:10 < bridge> map_data.append(buffer) 19:10 < bridge> ``` 19:12 < bridge> Let me push it to github real quick 19:14 < bridge> what is this for? 19:14 < bridge> ``` 19:14 < bridge> if data_offsets.size() < x: 19:14 < bridge> buffer = data_buffer.slice(data_offsets[x]) 19:14 < bridge> ``` 19:15 < bridge> Honestly, didn't think about it, just converted the python code :KEKW: 19:15 < bridge> the code until the assertion would be helpful 19:20 < bridge> Here https://github.com/Blade67/TeeworldsGD 19:21 < bridge> The file in question is in lib/map/Loader.gd 19:22 < bridge> why blade 67 :feelsbadman: could you add add at least 2 19:22 < bridge> hm, have you somehow verified that the code up until that point is working correctly? 19:22 < bridge> Postal code of the region I grew up 19:23 < bridge> Given that that is the only point where it fails, I would say so, yes 19:25 < bridge> Ima have to take a break here tho. Been at this since this morning and haven't eating yet \:) 20:19 < bridge> Note that all the results I get up to that point are identical to my TS implementation, however, the TS implementation doesn't handle data yet 21:06 < bridge> @blade67 at which index is the assertion failing? 21:08 < bridge> first time u didnt post your cat 21:08 < bridge> xd 21:09 < bridge> @patiga r u finished already with ur project? 21:09 < bridge> ah true 21:09 < bridge> I did parallax zoom before dinner 21:10 < bridge> now on to trying to export the project and testing performance 21:10 < bridge> epic 21:10 < bridge> if you want to already take a look I can push first 21:10 < bridge> tomorrow vanila gameplay? then ddnet 2.0 the day after tomorrow 21:10 < bridge> 1 21:10 < bridge> no it's better if you test it first xd 21:32 < bridge> If you could validate with your implementation that the values are correct or even remotely similar, that'd be cool @patiga 21:34 < bridge> You could try out https://ide.kaitai.io/# with https://github.com/heinrich5991/libtw2/blob/690e8ea95880aaaf2329bd33fc5131e8d6e6cbd5/doc/datafile_v4.ksy, its basically a binary viewer, however with struct support. With the second file you can parse datafiles and view the entire data 21:34 < bridge> <_voxeldoesart> ddnet 2.0 sounds more like a buzzword now 21:38 < bridge> I haven't spotted anything with the code, the decompressor seems correct too 21:39 < bridge> That is super cool, thanks! 21:46 < bridge> @jupeyy_keks it performs really bad zoomed out and it can't handle big maps with my implementation, I would guess that it doesn't like big tilemaps 21:48 < bridge> on normal sized maps it performs well, you gotta judge yourself there (I'll upload in a sec) 21:48 < bridge> apparently I did the tileflags not quite right, they are sometimes rotated wrong, but no big deal 21:48 < bridge> hallo devs πŸ‘‹ 21:48 < bridge> I tested on dm1 and Tutorial, both of which don't have rotated tiles xd 21:48 < bridge> heyo :) 21:50 < bridge> yet again i am here seeking for a little help πŸ‘‰πŸ‘ˆ, could anyone familiar with `wgpu` help me find the problem with textures please? :owo: 21:51 < bridge> I have some experience with wgpu 21:51 < bridge> Don’t ask to ask 21:53 < bridge> @jupeyy_keks https://gitlab.com/Patiga/ddnet-godot 21:53 < bridge> anyways, my `Surface` supports only `Bgra8Unorm`/`Bgra8UnormSrgb` formats but all my code is designed to work with `Rgba8UnormRgba`, the code worked perfectly yesterday and i am losing my mind over this :pepeH: 21:54 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1167914329820123146/image.png?ex=654fdbfb&is=653d66fb&hm=85fbe25266a4bb8fccaf5296bccfe67b72cd3095938eae0eff5b8a7699c7af8e& 21:57 < bridge> ah, can you just pass `Some(Rgba8UnormSrgb)` to the `RenderPassDescriptor`? 21:59 < bridge> render pass uses the format i specify in my `SurfaceConfiguration`? 21:59 < bridge> i don't provide any format to the pass 21:59 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1167915677160591431/image.png?ex=654fdd3c&is=653d683c&hm=d9524d621abf375cdde33265386777bb5c246dddedfc70f5df02a6e3969293bc& 22:00 < bridge> I'll take a look at how twgpu does it 22:01 < bridge> btw @patiga I found my issue. Now it's just the last entry that is 1 byte short for whatever reason 22:02 < bridge> but again, this code worked perfectly yesterday, and now my gpu doesn't support the format anymore????? also when i force the backend to opengl everything works as usual, except that opengl sux 22:02 < bridge> anyways, thanks for listening :heartw: 22:03 < bridge> https://docs.rs/wgpu/latest/wgpu/struct.FragmentState.html#structfield.targets 22:05 < bridge> in the twgpu code, I let the user pass the target format of the surface/texture which it should render to. it needs to be set in the `FragmentState` and also in the render pass creation by the looks of it https://docs.rs/wgpu/latest/wgpu/struct.ColorTargetState.html#structfield.format 22:05 < bridge> do you do that? 22:06 < bridge> nope 22:06 < bridge> my code is basically a modified version of tutorial, with support of multiple passes with different materials 22:06 < bridge> ah true, not in the render pass creation 22:07 < bridge> but I think whenever you create a render pipeline with FragmentState, you need to pass the TextureFormat of the target surface 22:07 < bridge> and depending on the backend, the format of the surface might be different I guess 22:09 < bridge> you didn't update dependencies since yesterday? the inconsistency is still weird 22:09 < bridge> how the hell does this work, do i have to convert every single image to bgra now? 22:09 < bridge> uhh 22:09 < bridge> no 22:10 < bridge> the vulkan driver package broke 2 days ago and i rolled back 22:10 < bridge> you only need to set the correct target textureformat 22:10 < bridge> weird, the introduction didn't account for that... 22:11 < bridge> the code is just like "put rgba everywhere, it'll be fine" 22:12 < bridge> well surfaces usually have Bgra afaik 22:12 < bridge> what??? who even uses that 22:12 < bridge> monitor maybe, I dunno 22:12 < bridge> bruh, why is everything else is rgba then... 22:13 < bridge> https://www.reddit.com/r/vulkan/comments/p3iy0o/why_use_bgra_instead_of_rgba/ 22:13 < bridge> first comment first two sentences: 22:13 < bridge> > It is quite common that the display controller in your GPU works with BGRA, not RGBA. So you get your swapchain images in the format that can be displayed so there's no extra hidden conversion needed. 22:13 < bridge> but you don't really have to worry about that 22:13 < bridge> like I said, you only need to add that textureformat to your targets in your FragmentStates 22:14 < bridge> hmm, okay.... 22:14 < bridge> thanks for the help ❀️❀️ 22:14 < bridge> i have a lot to learn 22:15 < bridge> why, we have 3 different ddnet implementation competitions 22:15 < bridge> @jupeyy_keks I got sidetracked by the question. you only need to run cargo build in the rust directory and then open godot with the godot directory 22:16 < bridge> ok 22:18 < bridge> im gonna do the 4th 22:19 < bridge> how do i load a map? 22:19 < bridge> oop forgot 22:19 < bridge> as command line argument 22:19 < bridge> but only after `--` 22:19 < bridge> ah 22:19 < bridge> well 22:19 < bridge> if you are in the godot editor 22:19 < bridge> then you can only change the string in the main.gdscript file 22:20 < bridge> but if you somehow manage to export 22:20 < bridge> then you can do it as a command line argument `./DDNet.x86_64 -- path/to/map` 22:21 < bridge> up until the end I only ever changed the script 22:21 < bridge> exporting was clicking around a lot and downloading some 800MB first 22:21 < bridge> Project -> export 22:21 < bridge> ``` 22:21 < bridge> Loader.gd:73 @ load(): Current index: 2112 Data size: 583393 Buffer size: 585504 Last entry: 245 Expected entry: 218 22:21 < bridge> ``` 22:22 < bridge> It doesn't copy the last byte for whatever reason 22:22 < bridge> yeah doin that rn 22:23 < bridge> now that I think about it, it didn't actually use the rust release build on my machine coz I never compiled that :thonk: 22:23 < bridge> ok worked 22:24 < bridge> noice, sounds like you managed that faster than me :p 22:26 < bridge> i simply renamed release to debug xd 22:26 < bridge> xd 22:27 < bridge> you could also edit `godot/rust.gdextension`, but by the look of the file it should already use release on release builds o.o 22:28 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1167922738216841256/image.png?ex=654fe3cf&is=653d6ecf&hm=cefadfe6d945135f4e75a006c6a938f58ab7fd5e4d7c2ca921750b23bf112740& 22:28 < bridge> woohoo! it also runs on not-my-machine πŸ₯³ 22:28 < bridge> now i try arctic frost 22:34 < bridge> we'll never hear from our dear Jupstar again, their computer exploded 😒 22:35 < bridge> my mouse cursor is gone xd 22:35 < bridge> an not only captured by the window? 22:35 < bridge> uff 22:35 < bridge> moving the camera makes it drop fps hard 22:35 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1167924662790013038/image.png?ex=654fe59a&is=653d709a&hm=4822034c4cd5875add9f406a1c67bf8c37e09d22d1919f8a13b8356c0686a824& 22:35 < bridge> < 30fps 22:36 < bridge> and on the normal zoom level? 22:36 < bridge> it has glitches btw 22:36 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1167924874103230577/image.png?ex=654fe5cc&is=653d70cc&hm=fda712926d3f50cbbe5de4c001ca2aa8839a554fc548918460ca643a09afe4c0& 22:36 < bridge> yeye, some tileflags are wrong 22:36 < bridge> but I didn't bother to fix 22:36 < bridge> should be ez tho 22:37 < bridge> I think on rotation I need to toggle h+v-flip 22:37 < bridge> ~320 fps when not moving 22:37 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1167925052948353145/image.png?ex=654fe5f7&is=653d70f7&hm=43d607122d1aa9a0ff5dec1c27b416266e87c7f873d6dff716e80f1d30329e51& 22:37 < bridge> but moving = rip 22:37 < bridge> < 30 fps always 22:37 < bridge> and with moving <10? 22:37 < bridge> moving <30fps, else 300fps 22:37 < bridge> ah 22:37 < bridge> well that ain't playable :D 22:38 < bridge> well, let's just change the gameplay to celeste-style 22:38 < bridge> No more errors! :HYPERS: 22:38 < bridge> the camera is always static and we switch scene when the tee crosses the borders 22:39 < bridge> 2.2GB RAM usage 22:39 < bridge> ~400MB VRAM usage 22:39 < bridge> check out the very nice kaitai struct thing @patiga made 22:39 < bridge> it's probably really helpful in understanding how to read datafiles 22:40 < bridge> ah, already suggested πŸ˜„ 22:40 < bridge> It was! He sent it to me just earlier and it helped a lot! 22:40 < bridge> In the end it was just a single byte breaking everything πŸ™‚ 22:40 < bridge> @patiga btw release vs debug makes almost no difference 22:40 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1167925908087263232/image.png?ex=654fe6c3&is=653d71c3&hm=1e2d23932f3f15bb4f044bd7de566bc828fcbd96c0ccca056e155fa24f9b61c1& 22:40 < bridge> basically same fps 22:40 < bridge> guess the bottleneck is inside godot 22:46 < bridge> when using ddnet i get ~5k fps (without mangohud) and ~2500 fps with mangohud xdd 22:46 < bridge> 22:46 < bridge> so it's probably better than shown 22:47 < bridge> didn't know that overlay is so expensive to render 22:47 < bridge> but ofc it won't make the 30fps better πŸ˜„ 22:47 < bridge> mangohud? 22:47 < bridge> yeah 22:47 < bridge> what's that? πŸ™‚ 22:48 < bridge> the overlay in the screenshots 22:48 < bridge> https://github.com/flightlessmango/MangoHud 22:48 < bridge> ah, cool πŸ™‚ 22:48 < bridge> but too expensive xd 22:48 < bridge> i guess i'll use mesa hud instead 22:50 < bridge> ``` 22:50 < bridge> VK_INSTANCE_LAYERS=VK_LAYER_MESA_overlay ./binary 22:50 < bridge> ``` 22:50 < bridge> also drops frames tho 22:52 < bridge> mh ok the minimal mangohud is faster 22:52 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1167928877469925406/image.png?ex=654fe987&is=653d7487&hm=1ac96d9f3f332ab0cea34344542dd7dbf73650a0c1c5e22f374e04223612f693& 22:52 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1167928877948096623/image.png?ex=654fe987&is=653d7487&hm=fabc7d09e7944998f9dc1d5226167d085b4dfd597482ccac828b818fd195d861& 22:52 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1167928878216523887/image.png?ex=654fe987&is=653d7487&hm=63f67416143cbbe51dd83557b4162680fa63cf8c0e3965691b5613f391ce9ae7& 22:52 < bridge> but they still drop over 1k fps xd 22:58 < bridge> i just watched the fnaf movie 22:58 < bridge> dd-pg vs godot vs ddnet 22:58 < bridge> 22:58 < bridge> @patiga in case you care xd 22:58 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1167930509817561150/image.png?ex=654feb0c&is=653d760c&hm=b4c42bc17128f2ce3adba3472ce166d406c9c8204acb17320ac2429504f59dc0& 22:58 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1167930510241173626/image.png?ex=654feb0c&is=653d760c&hm=3fccd0e946e052ddc087714cb23eedba0a0b4dd89fcb168f3941fd25fa1bf966& 22:58 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1167930510543175700/image.png?ex=654feb0c&is=653d760c&hm=a4a9d548d8abf1b6add3e10c95b0d3e7bc3954ea754bc4cf44c2636dc26bd1de& 22:59 < bridge> cpp version still wins 😬 22:59 < bridge> but i have health hud disabled on ddnet 23:00 < bridge> which i can't rn on dd-pg πŸ˜„ 23:00 < bridge> what is ddpg 23:00 < bridge> ddnet pog 23:00 < bridge> teeworlds in rust 23:00 < bridge> is there a dd-pg-13 23:00 < bridge> no what does the 13 mean? 23:01 < bridge> american fsk/usk 23:01 < bridge> parental guidance or so? 23:01 < bridge> ah 23:01 < bridge> that 23:01 < bridge> "Parental Guidance: Some material may be inappropriate for children under 13 to 15." 23:02 < bridge> can you see servers in ddnet? 23:02 < bridge> funny, deen said postgress xd 23:03 < bridge> i call it playground 23:03 < bridge> bcs im a kiddo 23:03 < bridge> 😬 23:03 < bridge> im old 23:04 < bridge> don't remind me that i am old 23:11 < bridge> hm, I kinda hoped that Godot itself would also run faster on release :/ 23:12 < bridge> im23 23:12 < bridge> so is the engine itself also built in debug mode? 23:12 < bridge> I have no clue about that 23:12 < bridge> ok 23:14 < bridge> and are you satisfied with the startup time? ^^ 23:15 < bridge> xdd 23:15 < bridge> totally 23:15 < bridge> tbf, ctf1 starts quite quick 23:18 < bridge> did you export it 23:18 < bridge> the export templates are release builds 23:18 < bridge> yes 23:18 * ChillerDragon hehe heinrich gone 23:18 * ChillerDragon chiler home alone 23:18 < bridge> do you know if the debug exports also use release built of the engine? 23:18 < bridge> then ye it was release build 23:19 < bridge> (i didnt use it, but i am curious) 23:19 * ChillerDragon axaxax censor free chat 23:19 < bridge> the export is literally copying compressed game data beside a prebuilt engine 23:20 < bridge> that's how the engine works. it's just a player 23:20 < bridge> so if the export template is release then the build is release 23:21 < bridge> the editor does not build another engine core. 23:21 < bridge> unity does the same thing actually 23:23 < bridge> well i guess the gdext can be unoptimized if you tell godot to load a debug lib. i was talking about godot itself 23:24 < bridge> yeah 23:24 < bridge> i also only meant godot itself 23:24 < bridge> as for gdscript, literally pure vm no jit, so.... 23:24 < bridge> :nouis: 23:25 < bridge> so basically precompiled? 23:25 < bridge> WASM 23:25 < bridge> xd 23:25 < bridge> they should use WASM 23:25 < bridge> instead of an own script xdd 23:27 < bridge> honestly, they probably didn't really find a vm language that supports operator overloading other than c# so they just made one up 23:28 < bridge> and then gdscript doesn't have operator overloading itself 23:28 < bridge> they just made everything a built-in type 23:29 < bridge> or did it tho, i should double check 23:30 < bridge> it didn't 23:30 < bridge> also gdscript is really confusing about the built-in types 23:32 < bridge> lots of stuff are built-in, basically all flat data that lives in stack are builtins 23:32 < bridge> including Vector3 etc. 23:32 < bridge> i am never sure about learning a new language 23:32 < bridge> but the documentation still treats them as classes 23:33 < bridge> but you cant new them, and assign operator does different things to builtin vs non-builtin but they are all classes. 23:34 < bridge> the documentation never told you when assign is by valve when is by reference 23:34 < bridge> and you'll just have to assume, bcs they are all classes 23:35 < bridge> :owo: 23:36 < bridge> and it`s 5am 23:36 < bridge> gn 23:37 < bridge> :pepeW: 23:37 < bridge> im not sleeping 23:37 < bridge> still repowering from doing nothing 23:37 < bridge> still recovering from doing nothing 23:38 < bridge> burnout 23:38 < bridge> freddie mate, maybe we should go on a mission of relieving teeworlds of one specific person 23:38 < bridge> the one who ddos a lot 23:39 < bridge> sounds like something to do at 5 am 23:39 < bridge> i am in bed tho 23:39 < bridge> just not sleeping 23:39 < bridge> :Bedge: 23:40 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1167940887087681567/Screenshot_20231027_194757.jpg?ex=654ff4b6&is=653d7fb6&hm=b91f7736fb593e1441a32f33f1d5c6b8c33bf4192b9f837f8f02df252db82bb3& 23:40 < bridge> Well, should you? :D 23:40 < bridge> i definitely should 23:40 < bridge> have u tried allergy pills 23:41 < bridge> or w/e they are called 23:41 < bridge> sounds wild, but a lot of those have something that is also utilized in sleeping pills 23:42 < bridge> i m not having problem sleeping 23:42 < bridge> aight then 23:42 < bridge> :kek: 23:44 < bridge> on a side note, what do you reckon is worth visiting in china on a tourist trip @tsfreddie 23:45 < bridge> hmm 23:45 < bridge> good question 23:46 < bridge> ive just been conteplaining about where to go if i were to visit another country 23:46 < bridge> probably depends on what you want to do here 23:47 < bridge> for food then chongqing is a start 23:47 < bridge> something special, not the stuff that people visit in hoardes, you know 23:47 < bridge> for culture, literally any third-tier city could do 23:47 < bridge> oh yeah food is relevant 23:48 < bridge> yun nan might be fun but if you are like me who think mountains are just montains then probably not 23:48 < bridge> what so special about food in chongqing? iirc food in china is incredibly spicy 23:49 < bridge> chongqing is the spicy place 23:49 < bridge> so ye 23:50 < bridge> also how about moving this convo to #off-topic 23:50 < bridge> i am not afraid of getting banned of all things but yeah sure 23:53 < bridge> Silly question, but embeded images should always be 1024x1024, right?