Guild icon
DDraceNetwork
Development / developer
Development discussion. Logged to https://ddnet.tw/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 2022-06-30 00:00:00Z and 2022-07-01 00:00:00Z
Avatar
756ef3d simplify the snowflake - C0D3D3V 03c5e6a Merge #5537 - bors[bot]
Avatar
f908e4a Updated french language - Chairn 96e9364 Fix more unsafe define - Chairn c345bc6 Merge #5535 #5536 - bors[bot]
Avatar
f3bdcad M 1of4, M 3of4, M Delension, M Desert Night, M HDP_OnOff, A Vagrant, M WallJump, M ctf5_solo - ddnet-maps
Avatar
Avatar
deen
@c0d3d3v In general I really appreciate the HUD changes, freeze bar and snow flakes. Starts to feel more like a proper game when we're not just abusing every old graphical element but implement our own 🙂
soon at this pace and the account system will appear and api for mods trollet
Avatar
hello dumb question. if you fork a repo and want to stay "compatible" with the newest ddnet/master, but you want to have your own master like fork/master. and put all your features into your own master plus change readme and everything. whats the best workflow? i am confused. merge? make my repo as origin/upstream and frequently merge ddnet/master into my fork master? having ddnet master as a second remote named ddnet, but not upstream for any branch? i just want to put some features together but dont want to stay behind ddnet/master. (edited)
07:25
i just have the problem that i have a feature branch where i changed hud specific things but the branch is one month behind and now with the new hud in master i have merge conflicts...
07:25
i guess ill just code it again
07:26
based on current master, easier than understanding all the merge conflicts
Avatar
it might be easier to do a rebase
07:28
If you do it with a good IDE, you could also use the new hud files and ignore changes from you and reimplement it. The other changes could be merged as usual
Avatar
yes ok, i'll just reimplement (edited)
07:31
whats the ide got to do with it? is rebase a manual thing like resolving merge conflicts? i use ms vscode
Avatar
separating your changes into separate files or functions and making minimal changes to original code makes it a lot easier when possible.
Avatar
Make ur own branch
Avatar
can we have a ingame wordfilter? at least for twitch?
Avatar
u can hide whole chat or only show msgs from friends already
Avatar
@Tater have you considered simply sending multiple input packets?
10:42
our game/engine packets are coalesced into UDP packets
Avatar
map editor autosaving
Avatar
@Simon yes, that would probably be good for streamers
Avatar
Avatar
c0d3d3v
I'm sorry about this.
no worries, as maintainer i should have called that out earlier
Avatar
Avatar
heinrich5991
our game/engine packets are coalesced into UDP packets
The packets are automatically combined? Are you sure it doesn't add significant overhead sending lots of input packets every tick? it would certainly be easy to do if thats the case
Avatar
they are automatically combined until you send a packet with NETSENDFLAG_FLUSH
11:00
NETSENDFLAG_FLUSH tells the network to send everything it has out
11:00
(or until the buffer for one packet is full)
Avatar
oh wow that's very nice
Avatar
extra overhead per sub-packet: 2 bytes (edited)
11:02
"chunk header"
Avatar
I'll look more at that later, it would probably be better if trml implemented this system but I'll give it a try if he is busy
Avatar
you don't need to implement anything server-side, right?
Avatar
well in my testing the server is currently not very good at handling duplicate packets, I was able to fix it but the code path for inputs on the server seems very complex
Avatar
ah 😦
Avatar
I don't really know why it's so complex but its rather scary code to touch especially with the lack of any tests
Avatar
Avatar
GitHub
Click to see attachment 🖼️
that is very appreciated
Avatar
"Don't think that helps much personally. There can always be creative wordings that are not blocked." what about not blocking names but ip adresses, so u cant just rejoin with another name?
Avatar
939c51b Add IsPlaying to engine sound - Robyt3 3db3f0a Code style: remove unnecessary indentation - Robyt3 4bc8871 Refactoring: move variable declarations in engine sound - Robyt3 1fb46b7 Code style: rename variable id to NextID - Robyt3 d3e4ebf Simplify loop body and reduce duplicate code - Robyt3 a8949cb Fix log message context - Robyt3 82425f2 Handle WavpackUnpackSamples failure - Robyt3 757d7d0 Change m_SoundEnabled from int to bool - Robyt3 b4a82b1 Reduce visibility of engine sound members and methods - Robyt3 525527f Add IsPlaying to sounds client component - Robyt3 9932bd7 Update menu music state when the config variables change via console - Robyt3 9390ae9 Fix OOB access when stopping a sound that has invalid samples - Robyt3 2e200c8 Use consistent sizeof expression for Mix calls - Robyt3 d8e72ad Handle op_read errors and EOF - Robyt3 b8d6298 Rename OpusFile to pOpusFile - Robyt3 2bd1273 Merge #5514 - bors[bot]
Avatar
various refactoring
Avatar
Avatar
Simon
"Don't think that helps much personally. There can always be creative wordings that are not blocked." what about not blocking names but ip adresses, so u cant just rejoin with another name?
people are actually really motivated to spam and use proxies to circumvent IP bans
Avatar
4b1b5bf Add 22.22 € donation by ReD - def-
Avatar
281c766 Add APPEARANCE Settings page - C0D3D3V a26285c Add cl_nameplates_strong to settings page - C0D3D3V cee071e The appearance settings page has been revised to look more like the general and DDNet settings page - C0D3D3V 5e0eada Merge #5517 - bors[bot]
Avatar
Avatar
AssassinTee
If you do it with a good IDE, you could also use the new hud files and ignore changes from you and reimplement it. The other changes could be merged as usual
ah... i'll just try to merge with resolving conflicts, not want to reimplement xd
Avatar
Avatar
Ryozuki
Make ur own branch
yes, that's the best way, but can i somehow say github that they sould show my branch as default branch on my fork. because i want a "fork readme" and not the master branch that's identical to the ddnet master
Avatar
you can name the upstream branch upstream and have your own master branch be the main
Avatar
i never forked something before, i guess it's obvious how to do it... xd i'll just change the default branch i think, name it "cauldron" and push it to my own repo. merge all my other branches into the cauldron branch and merge ddnet/master into the cauldron branch. in my theory it's cool.
13:54
but maybe not xd
Avatar
Avatar
Matodor
soon at this pace and the account system will appear and api for mods trollet
lol, So it will be, there are more and more people, therefore, the community is growing nouis
Avatar
b62894d Switch to loading screen, when map creation takes too long - Jupeyy 5e7ec64 Merge #5486 - bors[bot]
Avatar
just found a variable lasterOutlineColor instead of laserOutlineColor + double comment

Checklist

  • [ ] Tested the change ingame
  • [ ] Provided screenshots if it is a visual change
  • [ ] Tested in combination with possibly related configuration options
  • [ ] Written a unit test if it works standalone, system.c especially
  • [ ] Considered possible null pointers and out of bounds array indexing
  • [ ] Changed no physics that affect existing maps
  • [ ] Tested the change with [ASan+U...
Avatar
1c340da fix typo and comment - luk 21178e2 Merge #5538 - bors[bot]
Avatar
See https://youtu.be/jghPB-Y2BsQ Please review it carefully. I made all the changes manually and was careful. I don't think I made a mistake, but it can happen.

Checklist

  • [x] Tested the change ingame
  • [x] Provided screenshots if it is a visual change
  • [ ] Tested in combination with possibly related configuration options
  • [ ] Written a unit test if it works standalone, system.c especially
  • [x] Considered possible null pointers and out of bounds array indexing
  • [x] Chang...
Avatar

Checklist

  • [ ] Tested the change ingame
  • [ ] Provided screenshots if it is a visual change
  • [ ] Tested in combination with possibly related configuration options
  • [ ] Written a unit test if it works standalone, system.c especially
  • [ ] Considered possible null pointers and out of bounds array indexing
  • [ ] Changed no physics that affect existing maps
  • [ ] Tested the change with [ASan+UBSan or valgrind's memcheck](https://github.com/ddnet/ddnet/#using-addresssanitizer--und...
Avatar
3c7847a Fix variable name WasUnknwon -> WasUnknown - Robyt3 d5594d8 Fix variable name EntitesAreMasked -> EntitiesAreMasked - Robyt3 d9b0304 Use sizeof instead of constant - Robyt3 747fe93 Merge #5540 - bors[bot]
20:05
@ReiTW hehe
20:05
@Jupstar ✪ this update makes it even easier to write kernels
20:05
before u had to do some config to disable the red zone
20:05
with the new compile target u dont need to
20:06
also now rust uses its on mutexes instead of using pthread
20:06
from 40 byte overhead to 5 bytes
20:06
20:06
BASED
Avatar
epic
Avatar
20:08
discussion
Avatar
now only godot 4 is missing
Avatar
Avatar
Ryozuki
Click to see attachment 🖼️
I wonder what they did with mutexes on windows, they also have something similar to futexes but they also have critical sections that are part of the winapi. The two have very different performance characteristics obv
20:27
Also futex based locks can't really be moved either, I wonder what they were talking about there
20:29
heck, it's also the reason pthread based mutexes can't be moved because glibc and most other libcs use futexes under the hood 😄
Avatar
it rly improved perf tho
20:29
idk
20:30
but i guess the key part is this
20:30
The pthreads locks support more features than the Rust APIs themselves do, including runtime configuration, and are designed to be used in languages with fewer static guarantees than Rust provides.
20:30
and are designed to be used in languages with fewer static guarantees than Rust provide
20:30
A few weeks ago, on January 12th, the @rust-lang/libs team discussed a plan to improve std::sync::Mutex, std::sync::Condvar, and std::sync::RwLock. On most platforms, these structures are currently...
Avatar
I don't doubt that it improved performance, why would they lie about that. I was just wondering what they were talking about with movability and what they did on windows for parity
Avatar
Avatar
Learath2
I don't doubt that it improved performance, why would they lie about that. I was just wondering what they were talking about with movability and what they did on windows for parity
no
20:31
they said that pthread cannot be moved
20:31
and so to make that guarantee on rust
20:31
they have to be boxed
20:31
and thats an allocation
20:31
which is now removed
20:31
by using their own impl
Avatar
Ah, so the new implementation might not be movable either, it just doesn't need a box
Avatar
as far as i udnerstand
20:33
@Learath2 i think before it did 2 allocations
20:33
if u used arc mutex
20:33
so now its 12
20:34
1
20:34
in the future when they stabilize scoped threads without a needed a library as is now, you can avoid the arc (edited)
20:34
Avatar
Huh, bizarre, how does this thread scope thing even work? Seems you can spawn 2 threads in the same scope and both can borrow the same thing at the same time
Avatar
Avatar
Learath2
Huh, bizarre, how does this thread scope thing even work? Seems you can spawn 2 threads in the same scope and both can borrow the same thing at the same time
because with the scope rust can know the value lives as long as needed (aka as long as the scope lives)
20:39
the std says it better
20:39
Unlike non-scoped threads, scoped threads can borrow non-'static data, as the scope guarantees all threads will be joined at the end of the scope.
>
All threads spawned within the scope that haven’t been manually joined will be automatically joined before this function returns.
Avatar
Oh, so when thread::scope returns the threads spawned within it will have joined already
20:40
yeah
20:40
and u can handle errors by joining them explicitly
20:40
otherwise if one panics it will panic too
Avatar
I see, that does sound useful indeed
Avatar
it allows to avoid Arc on most cases
Avatar
A lot of Arcs can be avoided that way
20:41
Arc is the multithreaded way to make a value live for 'static more or less
20:41
xd
20:43
@Learath2 have u used lazy_static?
Avatar
yes, with a regex
Avatar
i hate tweets but she tweets a lot of good stuff about rust
20:44
🦀 Starting in @rustlang 1.63, Mutex::new, RwLock::new, and Condvar::new are all const functions! That means you can now finally use these types as static variables, without needing lazy_static or once_cell or other workarounds. 🎉
Likes
1460
Retweets
182
20:44
tldr u can avoid it in 1.63
20:44
due to mutex new being const
Avatar
Oh that's nice too
Avatar
"On Linux and *BSD these use futex() syscalls directly. On Windows, they're wrappers around SRW locks. On macOS, these (still) use pthread's locks, but now lazily allocated and initialized."
20:45
macos always there to be funny
Avatar
This is the new mutex implementation?
Avatar
nah thats for the future const new mutex
20:46
well yeah
Avatar
SRW locks are nice
Avatar
but maybe it uses that on 1.62
20:50
20:50
found it
Avatar
Huh, surprising they didn't match parking_lot in the no contention case given how similar their implementation looks
20:58
but that's a massive improvement indeed, very nice to see things moving forward in a language
20:58
C++ is permastuck with pthread ones
Avatar
Those who forget history often inadvertently repeat it. Some of us recall that twenty-one years ago, the most popular code hosting site, a fully Free and Open Source (FOSS) site called SourceForge, proprietarized all their code — never to make it FOSS again. Major FOSS projects slowly left SourceForge since it was now, itself, a proprietary s...
21:25
If it is, as you claim, permissible to train the model (and allow users to generate code based on that model) on any code whatsoever and not be bound by any licensing terms, why did you choose to only train Copilot's model on FOSS? For example, why are your Microsoft Windows and Office codebases not in your training set?
Avatar
Difference between github and sourceforge is that github isn't a shit product. It's very convenient and pretty, furthermore new generation of open source developers aren't as ideological as the ones we had back in the day. Good luck convincing hipsters that fetishize UI/UX to switch
21:48
The only way I see github ever dying like sourceforge is if massive projects decide to move away from it, which is unlikely given most seem to be moving to github rather than away from github
Avatar
Closes #5220.

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 if it works standalone, system.c especially
  • [ ] Considered possible null pointers and out of bounds array indexing
  • [ ] Changed no physics that affect existing maps
  • [ ] Tested the change with [ASan+UBSan or valgrind's memcheck](https://github.com/ddnet/ddnet/#using-addres...
Avatar
@c0d3d3v so what are the gameinfo flags controlling the hud?
Avatar
i implemented them
22:26
the gameinfoEx can send up to 3 flags
22:26
one for armor/heartzs
22:26
one for ammo
22:26
and one for ddrace hud
22:27
if multiple ones get sent, they get adjusted donwwards
22:27
u can try that on my server, i can show you
22:27
i have implemented all versions already, depending on what u do
Avatar
how do I check them out?
Avatar
come visit me, i will show you
Avatar
I'm on your server
Avatar
Avatar
Learath2
@c0d3d3v so what are the gameinfo flags controlling the hud?
I just debugged KOG, they do not even send a single flag O.o
22:31
ah xDD I guess I know what goes wrong
22:33
yep @fokkonaut removed the check that the server is sending extended character data. So the client does not fall back to the vanilla hud
22:33
I will add it back in
Avatar
6d0806f Fix engine client flags not being updated under some conditions - Robyt3 f3fbe89 Fix player input player flags translation with sixup - Robyt3 2cba4dd Merge #5541 - bors[bot]
Avatar
Avatar
c0d3d3v
I will add it back in
I will do that tomorrow... I'm tired...
22:36
@Learath2 check the screens
Avatar
that check... As I copied your delete I forgot why I added it... but now it makes sense xD (edited)
22:42
Actually we could also just only display the weapon display and the jumps...
Avatar
So if the server isn't sending extended character data we shouldn't render the new hud, that makes sense to me given we don't try to predict it by default
Avatar
Avatar
c0d3d3v
Actually we could also just only display the weapon display and the jumps...
Let's not change it for servers that don't want to change it, @Avolicious can start sending HUD_DDRACE if he wants the new hud on kog
Avatar
Some data would be predicted... but not perfectly
Avatar
i'll print that
Avatar
Avatar
Learath2
Let's not change it for servers that don't want to change it, @Avolicious can start sending HUD_DDRACE if he wants the new hud on kog
at least as I debuged it, ... at least the servers I tested do not send any gameinfo... we use the pFallbackServerInfo infos... thats why it is categorised as a DDRace server, but it is not sending DDNetCharacters
Avatar
@Learath2 ahhh i know why jumps didnt work. because i havent merged displayinfo into ddnetchar
Avatar
Oh wait, so KoG doesn't send gameinfo at all?
Avatar
Avatar
Learath2
Oh wait, so KoG doesn't send gameinfo at all?
theyre old af
Avatar
at least 3 updates are made... But when I debug it the version is always -1
Avatar
I guess then the fallback info should be upgraded to include HUD_HEALTH_ARMOR and HUD_AMMO
Avatar
but it does not send any extended net objects
Avatar
Avatar
c0d3d3v
at least 3 updates are made... But when I debug it the version is always -1
That is the old gameinfo, not extended ddnet gameinfo
Avatar
Avatar
Learath2
I guess then the fallback info should be upgraded to include HUD_HEALTH_ARMOR and HUD_AMMO
it should
22:48
ah
22:49
i see why it didnt work
Avatar
Avatar
Learath2
That is the old gameinfo, not extended ddnet gameinfo
ah
22:49
true
Avatar
Info.m_HudHealthArmor = !DDNet; this doesn't look very correct, right? I guess this is it?
Avatar
this is ddnet server:
Avatar
yes, this is it @Learath2
Avatar
Yeah, so just a small fix to the fallback info is needed and we are fine
Avatar
Avatar
Learath2
Info.m_HudHealthArmor = !DDNet; this doesn't look very correct, right? I guess this is it?
no it is ok
Avatar
yeah, and which?
22:50
its not easy to predict everythign correctly xd
22:50
like, for all types
Avatar
Avatar
Learath2
Info.m_HudHealthArmor = !DDNet; this doesn't look very correct, right? I guess this is it?
it should just fallback to Info.m_HudHealthArmor if we do not get extended game info
22:51
+ ammo
22:51
the default way
Avatar
It should already
Avatar
no, bcs kog is ddnet
22:51
so it falls back to nothing
22:51
but the ddrace hud
22:51
which is not shown
22:51
due to the other case
22:51
they just gotta update. its unbelievable :D
Avatar
It falls back correctly, the values you chose are wrong afaics
Avatar
why?
Avatar
It should be true, true, false. That was the old behaviour we want to preserve
22:53
yes
22:53
i did it the other way around
Avatar
Even if a server is deemed to be IsDDNet unless it's sending the new gameinfo and the character with the new values, we should just render the old hud. Atleast that's how I have it in my head
Avatar
ta-da KOG server ... just by adding this:
Avatar
Now that looks very wrong
Avatar
pls no
Avatar
need to check if this is fine... tomorrow... I will make a fix
Avatar
do what learath and me just said
Avatar
But yes, true true fals 😄
Avatar
just at the top xd
22:54
in the initial place
Avatar
Anyway, I need to sleep too. Good thing we caught it before release, I guess kog people just don't play with rcs ever
Avatar
ye (edited)
Avatar
you mean like this
22:57
it should stay like this no matter teh gametype.
22:57
because this is the main teeworlds setting
22:57
defualt
22:57
and once the server sends the right flags and version > x + the extended info = show ddrace hud
Avatar
Avatar
c0d3d3v
you mean like this
yes, like that
Avatar
Avatar
Learath2
Also futex based locks can't really be moved either, I wonder what they were talking about there
you can only move stuff in rust when you have the sole reference to it
23:53
in that case, you can obviously move the futex-based mutex because no one can have it locked at the time (because no one else has a reference to it)
23:53
but apparently you're not allowed to move pthread mutexes in that case
Avatar
Avatar
heinrich5991
in that case, you can obviously move the futex-based mutex because no one can have it locked at the time (because no one else has a reference to it)
Oh that's very clever
23:54
I wonder why that's not the case with pthread mutexes, the same idea should apply, no
23:54
?
Avatar
it looks like they might have an internally linked list
Exported 238 message(s)