Guild icon
DDraceNetwork
Development / developer
Development discussion. Logged to https://ddnet.org/irclogs/ Connected with DDNet's IRC channel, Matrix room and GitHub repositories — IRC: #ddnet on Quakenet | Matrix: #ddnet-developer:matrix.org GitHub: https://github.com/ddnet
Between 2024-10-30 00:00 and 2024-10-31 00:00
Avatar
GitHub BOT 2024-10-30 00:18
Fixed inconsistencies between the number displayed next to the brush and the placed number. It now always matches the brush. Also, now it'll show a number when selecting a brush from the tile picker instead of no number at all - only visual

Checklist

  • [x] Tested the change ingame
  • [ ] Provided screenshots if it is a visual change
  • [ ] Tested in combination with possibly related configuration options
  • [ ] Written a unit test (especially base/) or added coverage to integration t...
Avatar
It sucks being American because like, most of the devs here are asleep
02:10
I had a cool idea I wanted to tell Jupstar, but I doubt he's awake
Avatar
Hello I had a nightmare and just woke up
05:29
What's the idea?
Avatar
Jupstar ✪ 2024-10-30 07:15
I can also read it afterwards
Avatar
GitHub BOT 2024-10-30 08:30
cf5d9f7 Add 14 € donation by OsuIst - def-
08:54
768384a Fix editor tele layer brush number - KebsCS df3eeff Merge pull request #9180 from KebsCS/pr-fix-tele-brush - def-
Avatar
Loco.rs is like Ruby on Rails for Rust. Use it to quickly build and deploy Rust based apps from zero to production.
10:41
im using this and its dope
10:41
its the most dev friend you have in rust for web related
Avatar
hey guys, quick question: are dekos streamable?
11:28
demos*
Avatar
Jupstar ✪ 2024-10-30 11:29
streamable?
Avatar
yeah, is there any method to stream demos?
Avatar
Jupstar ✪ 2024-10-30 11:30
? XD
11:30
Stream in what sense
Avatar
live stream
Avatar
not like a binary file, but a demo that can be played in realtime
11:30
yeah
Avatar
Jupstar ✪ 2024-10-30 11:31
Without video conversion?
Avatar
ah wait, its just client
11:31
xddddd
Avatar
Jupstar ✪ 2024-10-30 11:31
I mean a demo is kinda just snapshots
Avatar
yeye xd
Avatar
Jupstar ✪ 2024-10-30 11:31
So you can stream a demo ig
Avatar
yeah then i need a web client kekeke
11:32
afair there was one
11:34
But it's quite a bit outdated already
Avatar
@Jupstar ✪ where is the collision data for rendering entities loaded in the vulkan backend?
Avatar
Avatar
Teero
@Jupstar ✪ where is the collision data for rendering entities loaded in the vulkan backend?
Jupstar ✪ 2024-10-30 11:57
maplayers.cpp
11:57
But it doesn't use collision data like you think
11:58
It just loads the physics group layers from the map directly and puts them into a buffer. They don't use some collision class
Avatar
Avatar
Jupstar ✪
It just loads the physics group layers from the map directly and puts them into a buffer. They don't use some collision class
the collision class just has pointers to the same physics layers so maybe it'll work
Avatar
Avatar
Teero
the collision class just has pointers to the same physics layers so maybe it'll work
Jupstar ✪ 2024-10-30 14:01
What you try to do still needs a reupload of the layer
14:01
You cannot change memory on the CPU and hope that it gets updated on GPU
Avatar
Avatar
Jupstar ✪
What you try to do still needs a reupload of the layer
exactly what i am doing
Avatar
Jupstar ✪ 2024-10-30 14:01
Nice
Avatar
*or trying to do
Avatar
Jupstar ✪ 2024-10-30 14:02
Updating the whole layer might be slow tho xd
14:02
You should not expect it to outperform OGL 1.1
Avatar
well it only gets done once so it is fine
14:02
it should be just like loading the map again
Avatar
Jupstar ✪ 2024-10-30 14:02
Ah
14:02
Perfect
Avatar
it worked :DDD
Avatar
Jupstar ✪ 2024-10-30 14:05
@Teero btw one question. Do you need vk for zooming or other reasons?
Avatar
vk just looks better xd
14:06
i don't want to render on opengl 1.4
Avatar
Jupstar ✪ 2024-10-30 14:06
Ok bcs there is another way if you just want to fix rendering
14:06
find m_GLTileBufferingEnabled = m_pBackend->HasTileBuffering(); and replace it with m_GLTileBufferingEnabled = false; //m_pBackend->HasTileBuffering();
14:06
Then you have OGL 1.1 rendering with vulkan
14:06
xd
14:06
But without the rendering issues
14:07
That is also what is used in the editor
Avatar
Avatar
Jupstar ✪
You cannot change memory on the CPU and hope that it gets updated on GPU
Maybe you can't
Avatar
Avatar
Learath2
Maybe you can't
Jupstar ✪ 2024-10-30 14:07
I mean you can allocate coherent memory that is visible to both, CPU & GPU and it will probs work
14:08
But usually it's rather slow. I tried that before I instead flushed the memory properly
Avatar
Avatar
Jupstar ✪
I mean you can allocate coherent memory that is visible to both, CPU & GPU and it will probs work
How is this facilitated btw?
Avatar
Avatar
Learath2
How is this facilitated btw?
Jupstar ✪ 2024-10-30 14:12
I wonder about that too. Vulkan is about giving away control from driver to programmer and then they add such stuff that sounds rather difficult BUS wise and cache wise and what do I know how hardware works in detail. But it seems GPU vendors implement coherent memory. In theory they don't have to. Also for integrated GPUs it's ofc easy, since CPU & GPU share the memory anyway
Avatar
Avatar
Jupstar ✪
I wonder about that too. Vulkan is about giving away control from driver to programmer and then they add such stuff that sounds rather difficult BUS wise and cache wise and what do I know how hardware works in detail. But it seems GPU vendors implement coherent memory. In theory they don't have to. Also for integrated GPUs it's ofc easy, since CPU & GPU share the memory anyway
Yeah I was about to ask whether it's igpu/combined memory systems only
14:13
I wonder if there is some flag one can check to see if coherent memory is fast/cheap on this device
Avatar
Jupstar ✪ 2024-10-30 14:13
Yes
14:14
If coherent memory is device local and host local
14:14
Then you know it's iGPU
14:14
But then you also don't need coherent memory, because it's 99% also HOST_CACHED
14:14
xd
14:14
Well dunno if there are exceptions
14:16
Ok there is no HOST_LOCAL. HOST_CACHED is kinda what I mean instead
14:16
Then it makes sense
14:16
DEVICE_LOCAL_BIT HOST_VISIBLE_BIT HOST_COHERENT_BIT HOST_CACHED_BIT
14:16
Most say qualcomm
14:16
So it's clear that isn't about dedicated GPUs
14:17
Qualcomm, Apple M1-3, Intel, AMD APU. But only like 4 nvidia
Avatar
why would a linker not link a symbol
Avatar
because symbol doesn't exist ?
Avatar
today ld --whole-archive saved me
Avatar
Avatar
Chairn
because symbol doesn't exist ?
if i make a shared library that links a static library which has a method i want to make available in the shared libary it may not be included always
14:42
with --whole-archive i fixed it
14:43
i think i fixed it
14:43
justatest
Avatar
hmm, probably because the symbol pulls other symbols
14:43
hence --whole-archive makes sure that all symbols required are included
14:54
a good linux marketing video kek
Avatar
the nm tool is nice
Avatar
lol this guy is just a glazer
Avatar
anyone knows good way to passthrough igpu with qemu+kvm?
Avatar
not a mao, but an actual gameplay owo
17:59
mao
🇨🇳 2
17:59
map, i mean
Avatar
Avatar
zhn
not a mao, but an actual gameplay owo
Jupstar ✪ 2024-10-30 18:02
It has a demo player
18:02
What else do you need? 😄
Avatar
Avatar
Jupstar ✪
It has a demo player
source >:D
Avatar
Jupstar ✪ 2024-10-30 18:03
DDraceNetwork Playground. Contribute to Jupeyy/ddnet development by creating an account on GitHub.
18:03
well it's super outdated
18:03
and building for emscripten is around as hard as android xd
18:04
good luck
Avatar
Avatar
Jupstar ✪
and building for emscripten is around as hard as android xd
Jupstar ✪ 2024-10-30 18:04
building the libs*
Avatar
uh oh, i will try anyway
18:04
not in the near future though xd
Avatar
damn nix i'm sorry!
Avatar
MilkeeyCat 2024-10-30 19:49
Rust pros, do you know a crate which has a macro to implement a Display trait for enum variants, for example: enum Foo { #[fmt("Dat's bar")] Bar, #[fmt("Dat's baz")] Baz }
Avatar
MilkeeyCat 2024-10-30 19:55
thanks 😄
🥛 1
🐱 1
Avatar
First step on splitting everything apart: Splitting only the emoticons image and trying to find out how to properly load it
20:20
Seems very hard because the code feels extremely dependant on having it be sprites instead of just images
20:20
I could just load in all the images as 1x1 sprites
Avatar
Jupstar ✪ 2024-10-30 20:21
The client already splits all images internally
20:21
It doesn't use an texture atlas for rendering
Avatar
I'm just trying to disect src/game/client/gameclient.cpp, and the CGameClient::LoadEmoticonsSkin function, since that's how the emoticons are actually loaded in
Avatar
Jupstar ✪ 2024-10-30 20:22
Yeah
Avatar
Don't know if I was supposed to do this, but I stored everything related in content.py as an image and not a sprite
20:24
container.images.Add(Image("oop", "images/emoticons/oop.png"))
Avatar
Jupstar ✪ 2024-10-30 20:25
Something is VERY wrong with the Game layer near (910, 24). Please report this at https://github.com/ddnet/ddnet/issues, you will need to post the map as well and any steps that you think may have led to this. lmao never seen that
20:26
Oh wow that doesn't even exist anymore in newer ddnet code
20:27
it wasn't really very wrong I think, it only means an some specific entity is near the border of the map
Avatar
I don't know why I'm trying to do this update when Jupstar already did it and better LOL
Avatar
Avatar
Voxel
Don't know if I was supposed to do this, but I stored everything related in content.py as an image and not a sprite
Jupstar ✪ 2024-10-30 20:29
Maybe it's time to get away from content.py if you want to split it anyway ^^
Avatar
I mean, I'd have to figure out how to like, load everything manually
Avatar
Probably makes sense to not use content.py anymore. Would also make more sense if the emoticon textures were managed in CEmoticon instead
Avatar
Right. I feel like all textures would have to be inside gameclient.h somehow, then.
20:34
Or, nevermind. This is a huge rabbit hole LOL
Avatar
good night everyone
👋 2
Avatar
Good night!
Avatar
Good night!
20:40
and welcome back Voxel!
Avatar
I'm just here for devloupment help, that's all!
21:00
Since I finally have the guts to try to do an actual update for this game
Avatar
So would something like this work? I have all the textures stored in an OnInit() run in emoticon.cpp https://imgur.com/gWe3UHc
🧊 1
21:04
The whole code is still messy, since I have to remove dependancy of the original emoticons image
Avatar
You'll need to be careful not to free the same texture handle twice or forget freeing one if you copy the handles. Doesn't look like many uses of m_EmoticonsSkin though
Avatar
That's going to be a challenge for me, since I still have extremely basic knowledge on memory management
21:09
But I'll try. And when that works out I'll send it to GitHub and have you guys have a closer look, before I even think about sending it as a PR Draft
Avatar
https://imgur.com/ESzjYzK Is this even right? It's still all showing up as white squares. This is inside emoticon.cpp
Avatar
Jupstar ✪ 2024-10-30 21:42
No errors in F1?
Avatar
2024-10-30 17:45:06 E png: failed to open file for reading. filename='images/emoticons.png' (only shows when it i open Settings>Assets, which shows a 4 colored box. It's all just white squares in_game)
21:46
So It's definitely loading SOMETHING, just not the thing I want.
Avatar
Maybe you copy the handles in gameclient before you load them in CEmoticon::OnInit
21:49
So you only copied an unloaded handle
21:50
The previews in the Assets settings are separate anyway, those will probably also need to be revised (edited)
Avatar
Yeah, I know that. Though, I do have ideas for that side of things.
Avatar
Either we provide a preview icon.png in every zip file or we somehow show a collage of all the individual images
Avatar
I was thinking an icon.png
Avatar
Definitely simpler, yeah
Avatar
So you're saying add something into CGameClient::OnInit() about the texture handles in CEmoticon?
Avatar
No, I meant your error is probably that you copy the texture handles before they are loaded. That would be fixed if you remove the emoticon handles from the gameclient and only refer to CEmoticon as the source of truth.
Avatar
I see
Avatar
I'd add a getter function, e.g. IGraphics::CTextureHandle CEmoticon::EmoticonTexture(int Emoticon) const, for that (edited)
Avatar
GitHub BOT 2024-10-30 22:01
1. Type /add in the chat, the preview will show weapon 2. Move the cursor to the left 3. The command preview overlaps the input: !image
Avatar
GitHub BOT 2024-10-30 22:12
Add a command to clear all lines of chat messages, same as the clear_local_console/clear_remote_console commands for the consoles. This is useful for example when taking screenshots or recording videos with initially empty chat.

Checklist

  • [X] Tested the change ingame
  • [ ] Provided screenshots if it is a visual change
  • [ ] Tested in combination with possibly related configuration options
  • [ ] Written a unit test (especially base/) or added coverage to integration test
  • [...
Avatar
Jupstar ✪ 2024-10-30 22:13
Voxel now that you are here: That is also smth I want. More customization shared between all clients.
owo 1
poggers2 1
Avatar
@Insanity don't forget to message Deen about uploading the halloween logo and banner to github, so it's not lost 😄
Avatar
Avatar
Jupstar ✪
Voxel now that you are here: That is also smth I want. More customization shared between all clients.
Sounds like a lot of asset downloading or configurations to handle
Avatar
@juppey_keks YES
22:22
this is half the reason why i want to split it, so its easier to send through servers
22:22
like, you can send weapon skins and not have to worry about, yknow, the everything else
Avatar
definitely would save a lot of internet traffic
Avatar
voxuis
Avatar
Headbot
Avatar
Head3DS
Avatar
GitHub BOT 2024-10-30 22:49
c978ece Add clear_chat command - Robyt3 215c683 Merge pull request #9182 from Robyt3/Client-clear_chat-Command - def-
Avatar
Avatar
Jupstar ✪
Voxel now that you are here: That is also smth I want. More customization shared between all clients.
cyberfighter 2 2024-10-30 22:49
yeah
22:50
i want that too
Avatar
Avatar
Cellegen
Sounds like a lot of asset downloading or configurations to handle
Jupstar ✪ 2024-10-30 22:58
Once an asset is downloaded it, it is load from disk the next time. Considering our current skin system downloads skins the whole time I think this should be fine xd Ig it also depends on how big a possible database for assets would be 😄
Avatar
heinrich5991 2024-10-30 22:58
Considering our current skin system downloads skins the whole time I think this should be fine xd
@Robyt3 fixed that 🙂
Avatar
Avatar
Voxel
this is half the reason why i want to split it, so its easier to send through servers
Jupstar ✪ 2024-10-30 22:59
I dunno if that makes it easier xd
Avatar
heinrich5991 2024-10-30 22:59
it's now only doing a If-Modified-Since request which returns no data if the thing didn't change
Avatar
Avatar
heinrich5991
it's now only doing a If-Modified-Since request which returns no data if the thing didn't change
Jupstar ✪ 2024-10-30 22:59
But ig it still needs to do a http request, even if cheap?
Avatar
heinrich5991 2024-10-30 23:00
yes
Avatar
Jupstar ✪ 2024-10-30 23:05
One qol advantage of having an index is that you can show the database content inside the client ui easily
Exported 180 message(s)
Timezone: UTC+0