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 2021-06-15 00:00:00Z and 2021-06-16 00:00:00Z
Avatar
i can also just patch is, we have a microsecond implementation that doesnt cache
00:16
its safer anyway to not use time_get in a different thread
Avatar

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-addresssanitizer--u...
Avatar
Lets finally move to c++, there is no real disadvantage, but there are advantages:
  • std::chrono
  • no C89 limitations or whatever MSVC uses
  • no functions with unspecified parameters

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...
👀 1
monkalaugh 1
Avatar
So there is always a list rendered(not the "Getting serverlist" string) This isn't really finished. The goal should be to also cache the server list to disk and load it, so there is never an empty list. Also currently I just made the "Refresh" button say "(Fetching) Refresh" to be clear the list might change. Personally i think greying out the list could be a way to show it "more elegant". Anyway, didn't really test it, if somebody wants to test out, give feedback or even build upon ...
Avatar
Avatar
deen
Would it help to pay for Cloudflare? I think they have better routing for paid accounts
Nope, CF routing is shit also on Paid accounts
07:32
If they have problems in a location, they just shut down It, Milan location for example is online 1 time over 10 /year
07:32
😂 😂
Avatar
Q: Assuming empty caches, a host pinging another host in their own subnet would just do an ARP request, no?
Avatar
plus ICMP ping
11:48
what do you mean by "pinging"?
Avatar
Can you see any reason for this insanity?
11:49
Ah at A...
Avatar
yes, only the ARP request is broadcast
Avatar
At the switch we'd see ARP Req, ARP Reply, ICMP Req, ICMP Reply. Right?
Avatar
yes
Avatar
The way they drew it made me think it was a shared bus, not a switched network
Avatar
Is it not possible to set up a limit for the console? For the test server it would be very useful because sp someone always comes when we test on the server and causes with his spam timeouts
12:19
I already asked @murpi but he said it's impossible?
Avatar
It is possible but it requires some engineering and I'm not completely sure how best to fix it
12:34
@heinrich5991 any idea on how to fix it?
Avatar
I think we talked about it before for a bit but I don't think we came up with any solution that satisfied both of us
Avatar
can you change map on the testing servers?
12:35
with the rcon
Avatar
I think it also annoys murpi that I have to ask him all the time if we can get a server with a new pw
Avatar
Well the map changes only used to cause it because they spammed fron with vote added
Avatar
Avatar
Cøke
I think it also annoys murpi that I have to ask him all the time if we can get a server with a new pw
I don't mind
Avatar
s/fron/rcon/ wtf
12:36
I think the issue was that we are running out of space in the retransmit queue?
Avatar
yes
12:36
we ignore the error though (not a good thing)
12:36
and when the client asks for retransmits, it'll eventually get dropped because we don't have the packets anymore
Avatar
how would we even sanely handle running out of space? fwiw imo this shouldn't even be possible to begin with
Avatar
do we use the nuclear test servers for anything specific?
Avatar
Some throttling for rcon log lines or maybe merging duplicated lines?
Avatar
we either throw lines away or disconnect the player
12:38
I don't see many alternatives
Avatar
rcon messages are VITAL, maybe they shouldn't be vital?
Avatar
we could also make the buffer larger, making it harder to reach
12:39
we could introduce a new vital message type that is only actually sent if the queue is less than 50% full
Avatar
or maybe we introduce something like SOFTVITAL, if we can reliably deliver it
12:39
heh, we came up with the exact same idea 😄
Avatar
no, you want to send it as non-vital, I want to drop it on the server
12:40
it's similar, I guess
Avatar
The first one I said was sending it non-vital, but that's not really good. I was thinking the exact same idea for SOFTVITAL
Avatar
ah 🙂
Avatar
if the queue isn't too busy deliver reliably, if not either send it non-vital and pray for the best or drop it
Avatar
just drop it, shouldn't happen during normal usage
12:41
maybe also introduce a log message that it happened
12:41
and watch out for it in the logs
12:41
(rate limited!)
Avatar
I don't know anything about this, but how about doing it like twitch, all non testers are allowed to make an entry every 10sec.
Avatar
then you can't use stuff like up anymore, I guess?
Avatar
U can use tele
Avatar
I would take a look at it but I have a computer networks exam tomorrow and even though I know the material I'll feel bad if I don't atleast pretend I studied for it 😛
Avatar
there are alternatives, sure
12:42
but up won't be usable anymore?
12:43
or quickly respawning at a tele to retry a part?
Avatar
I don't think so
Avatar
sounds like a bad idea
Avatar
We could also just ratelimit the rcon lines per second as a quick patch and just drop the messages
Avatar
Maybe 1sec is enough?
Avatar
well everyone can log in on test servers so that's not particularly useful
Avatar
But as non tester u got only helper role
Avatar
@heinrich5991 ah I have one more idea, we can also separate out the consoles finally, so not every logged in person gets the entire server log
Avatar
This guy gave 11.68ms transmission time for one packet in an exercise. What kind of evil entity gives such a horrible number in an exam without calculators?
Avatar
942cbba Init mouse diff floats in editor - Jupeyy a4e2457 Merge #3905 - bors[bot]
Avatar
a43d169 Use time_get_microseconds in ChoseMaster class - Jupeyy 4a13ba2 Merge #3912 - bors[bot]
Avatar
what are the conditions for a successful vote
Avatar
Avatar
NeXus
what are the conditions for a successful vote
Exclude Nexus from the vote troll
Avatar
Oh cmon its quiet easy. You need to go with a free bottle of beer to everyone who can make a vote and try to reason them why they should F3 =]
Avatar
Include LCSG47 troll
Avatar
Avatar
Tsin
Oh cmon its quiet easy. You need to go with a free bottle of beer to everyone who can make a vote and try to reason them why they should F3 =]
It almost feels like you have to seo ur reasons and do everything so people start to vote
Avatar
@NeXus ingame: all of the players who have veto must agree, and a majority of the players must agree
Avatar
Veto for map vote I suppose?
Avatar
Welcome to elections this is how nowadays voting works =]
Avatar
afk players don't count, people get veto if they're >20min on the server or >20min in the race
15:28
ah yes
15:28
true, vetos only exist for map votes
Avatar
We try to kick someone and I've noticed this serveral times now, its almost impossible to kick a blocker by vote
15:29
bcs most people just dont vote and I guess their vote counts f4
Avatar
how long do you have to be afk to make it count (exclude you from voting) ?
Avatar
seems like 2min?
15:31
on official servers. default is 5min
Avatar
From October 2025, there will be no new updates or security fixes for Windows 10.
15:44
monkalaugh
Avatar
hum
15:46
looks weird, I thought win10 was forever
Avatar
I guess it's just new branding?
Avatar
While PC sales still dominate - 79.4 million shipped in 2020, according to Gartner - Google's alternative is proving popular, with 11.7 million Chromebooks, which run on Google's Chrome OS, shipping in the same timeframe.
15:47
chromebooks creating competence?
Avatar
Honestly, HN may want to just consider banning any site that runs this news article from being posted on HN, because this claim is basically proof they did not do even cursory research before posting.
>
Here's the 2015 story covering this date announcement, which bears no relation to recent rumors at all: https://www.ghacks.net/2015/07/20/microsoft-to-support-windo...
Avatar
ye im reading that
15:48
but i dont think they will ban bbc
Avatar
I'm more commenting on the story itself
15:49
i.e. that it's not clear that this is some actual news
Avatar
@heinrich5991 || @Ryozuki do either of you know an expression that will easily get optimized out but would fail if a field of a struct doesn't exist?
16:38
s/fail/fail to compile/
16:38
(in rust)
Avatar
&struct.field;
Avatar
struct.0?
16:39
idk what u mean
16:39
xd
16:39
i dont know much about what gets optimized or not
16:39
i never rly cares much
16:39
cared*
16:41
:o
16:41
16:41
maybe u find something here
Avatar
@Learath2 tell us what you need 🥺
Avatar
I need a macro to fail to compile if an invalid field name is given
Avatar
but you don't have an instance of the struct?
16:42
I can create one in the macro if rust will optimize it out, but then I need to find a way to create a unique identifier
Avatar
dont macros accept :ident which will always be ok?
Avatar
maybe let _ = |x: Struct| x.field; ?
Avatar
oh, if the struct doesnt have it?
Avatar
that looks like it'd work, let me give it a try
Avatar
Avatar
Learath2
I can create one in the macro if rust will optimize it out, but then I need to find a way to create a unique identifier
theorically rust macros are partially hygienic,
Avatar
I also noticed I could just create a block and name it whatever I want inside there
Avatar
Got offered 15k/month with provided accommodation
16:53
15k cny
Avatar
15k pennies?
16:53
ah ok
16:53
xd
16:53
1,931.05 Euro
16:53
thats rly good, atleast here
Avatar
Well it is in Beijing so it is OK.
Avatar
provided accomodation means u dont pay for a flat?
16:54
if so then even better
Avatar
Ye that's pretty sweet
Avatar
i would take it
Avatar
But only because they are a really small team with like 10 people, and they want me to live upstairs above the office lol.
16:55
But still pretty swee
16:55
T
16:55
I probably would too.
Avatar
what is the job?
Avatar
sounds cool tbh
16:56
well depends what they want u to do
Avatar
Avatar
Learath2
what is the job?
Ripping off ddnet
16:57
(温馨Tip: 请深吸一口气)《森林大会》是一款2d、逗趣、休闲、多人、跳台、合作、闯关、超Q、动作、IO、party game(呼..好长…)q群传送门:950996165 欢迎...
Avatar
i wouldnt want to live above my job
Avatar
Avatar
Patiga
Is there any way for me to test changes to the ddnet-discordbot without running it myself? I'm trying to set up the bot right now, but it seems hard and I'm running into problems
@Learath2 pinging you since you are the person I had in mind might have done it in the past, in case you missed it
Avatar
thats really shit
Avatar
"Hi, everybaby~ 我们是来自北京的独立游戏团队" 😄
Avatar
Avatar
TsFreddie
that is hilarious o.o
Avatar
Hi, everybaby~ We are an independent game team from Beijing - Connected Star Dreams
Avatar
Avatar
Patiga
@Learath2 pinging you since you are the person I had in mind might have done it in the past, in case you missed it
Nope, you do need to run it and it is indeed quite a hassle to get it running
Avatar
I'm pretty sure that's a demo. And they are hiring to redo the whole thing
16:59
But it is funny nonetheless
Avatar
Avatar
TsFreddie
haha what the fuck
Avatar
I'm about 30 minutes away from rolling a bot to replace the global bans, so I can debug it on both sides
Avatar
xd
Avatar
Reference and borrowed from the Steam classic multiplayer cooperative game "DDrace network", interested partners can try it on PC https://store.steampowered.com/app/412220/DDraceNetwork/
>
At the same time, the game also continues the Bowl. 1. multiplayer cooperative IO game 2. advocate friendship and mutual aid, positive sunshine positive energy 3. micro-pit pleasant character detection mechanism Added the now popular 4. custom skin and creative workshop
>
Above, I hope that everyone, whether you know, or passers-by, can be in the process of mutual pit, while also experiencing the joy of saving people. Sam gas full of every day, adjourn ~
>
Translated with www.DeepL.com/Translator (free version)
Avatar
that's what you're doing with rust? ^^
Avatar
just as soon as rust decides to accept my macro notation
17:00
why dont u show the code?
Avatar
Avatar
heinrich5991
that's what you're doing with rust? ^^
yes, for now it'll just replace the bans, it is quite dirty after all
Avatar
Avatar
Ryozuki
Reference and borrowed from the Steam classic multiplayer cooperative game "DDrace network", interested partners can try it on PC https://store.steampowered.com/app/412220/DDraceNetwork/
>
At the same time, the game also continues the Bowl. 1. multiplayer cooperative IO game 2. advocate friendship and mutual aid, positive sunshine positive energy 3. micro-pit pleasant character detection mechanism Added the now popular 4. custom skin and creative workshop
>
Above, I hope that everyone, whether you know, or passers-by, can be in the process of mutual pit, while also experiencing the joy of saving people. Sam gas full of every day, adjourn ~
>
Translated with www.DeepL.com/Translator (free version)
They went on here and asked deen tons of questions. deen basically agree to the attribution
Avatar
@Ryozuki https://github.com/Learath2/discordbot I already asked you to take a look at it, it isn't made for long term usage, it's more for me to learn more rust and debug the problems plaguing the mods
Contribute to Learath2/discordbot development by creating an account on GitHub.
Avatar
And it is probably why I got offered
17:01
Imagine not looking for jobs and ddnet discord gave you one.
Avatar
Avatar
TsFreddie
They went on here and asked deen tons of questions. deen basically agree to the attribution
fwiw our license even allows them to not attribute at all, so it's nice that they did it anywya
Avatar
Some access control
17:01
sounds dangerous
17:01
😄
Avatar
Avatar
heinrich5991
Some access control
imagine all users being able to ban people, that would be fun 😄
Avatar
there's a discord command framework
17:02
it doesn't look like you're using it. intentionally?
Avatar
Avatar
TsFreddie
And it is probably why I got offered
honestly if the office is near the center of the city i would do it
Avatar
@heinrich5991 I checked out a couple they were all very annoying to use
Avatar
kk
Avatar
I'll make my own afterwards, I just want to get the bans fixed first
Avatar
writing a lexer when u have a rly good lib for it
Avatar
@Learath2 no, I mean native support for commands in discord
Avatar
feelsbadman
Avatar
Avatar
Learath2
fwiw our license even allows them to not attribute at all, so it's nice that they did it anywya
They did it because our guy went to their game and did some heavy trolling. I didn't manage to stop hundreds of chn players jumping on the bandwagon
Avatar
try writing / here @Learath2
Avatar
Avatar
Ryozuki
writing a lexer when u have a rly good lib for it
I like my lexer, it's cute, and an actual lexer is actually not so easy to use since they usually take regex patterns that you have to mess around with
17:04
(and they usually don't have rewind :P)
Avatar
They really want to nod from deen to calm the trolls. 😅
Avatar
Avatar
heinrich5991
try writing / here @Learath2
Ah you mean slash commands, they are so new barely any frameworks implement them at all and those that do hardly document it and they don't usually have full support
Avatar
Create ridiculously fast Lexers. Contribute to maciejhirsz/logos development by creating an account on GitHub.
Avatar
want a *
Avatar
e.g. in serenity-rs slash commands need to be guild-wide
Avatar
I see
Avatar
in twilight they don't have any access control at all
Avatar
@Learath2
Avatar
@Ryozuki ofc it'll do better than me, but bringing in such a heavyweight component for the simplest language ever created sounded silly to me
Avatar
i rly disagree with that stance
17:08
but well i cant convince u, u did it
Avatar
I'm not parsing/lexing a programming language, it's just a command line with space as delimiters
Avatar
Avatar
Ryozuki
i rly disagree with that stance
I know you do, most people do. You do you, let me do me 🙂
Avatar
hence my second sentence :p
Avatar
I agree with Learath2 here, how many kilobytes will this dependency bring in?
Avatar
let me see
17:09
35kb
17:09
or 280kb
17:09
idk
Avatar
@heinrich5991 it likely is very efficient spacewise when compiled, DSMs optimize very well
Avatar
it actually has around 4600 lines
17:09
Create ridiculously fast Lexers.
17:09
monkalaugh
Avatar
I meant code size
Avatar
i love u optimize for space like u will release this on a microcheap
17:10
around 4600
17:10
lines
Avatar
but it also increases the compile time which is already annoying in rust imo
Avatar
I meant code size @Learath2
17:10
argh
17:10
communication
Avatar
Ryozuki: it seemed that Learath2 talked about runtime memory usage, so that's why I said "I'm talking about code size"
Avatar
Avatar
Learath2
but it also increases the compile time which is already annoying in rust imo
btw compile times rn are slower than usually because there is a miscompilation error in recent rust versions thats why it doesnt compile incrementally
Avatar
Avatar
Ryozuki
i love u optimize for space like u will release this on a microcheap
I'm optimizing for maximal rust learnage and maximal performance without delving into unsafe
Avatar
there are miscompilation errors when using incremental compilation
17:11
so it is disabled
17:11
in recent versions
Avatar
I don't need 300KB of code to split a string at whitespaces
17:11
that probably fits into <1KB
Avatar
😇 I wish I can care about code size.
Avatar
I don't want my application to be 100x as large as it needs to be
Avatar
Avatar
heinrich5991
that probably fits into <1KB
much much less if you are talking about just the lexer
Avatar
well ok i give it to u
17:12
if its just splitting spaces
Avatar
maybe quoting
Avatar
I mean this is a TRIVIAL dsm that you can just optimize in your head, even with quoting it's quite simple
Avatar
@Learath2 debug!(?req); is this a shorthand?
17:13
didnt know about it
Avatar
my bot just use a regex for commands 😅
Avatar
what's it do? @Ryozuki
Avatar
but anyway, I don't want to lex the entire line in one go either, I need rewind and I need the ability to use code to define the syntax of the commands
Avatar
Avatar
heinrich5991
what's it do? @Ryozuki
i guess its debug!("{:?}", req);
Avatar
Avatar
Ryozuki
@Learath2 debug!(?req); is this a shorthand?
it's from tracing when you want to just print one thing with debug formatting
Avatar
ah
Avatar
I thought it's the dbg! macro, my bad
Avatar
%req would print with Display formatting
Avatar
@Learath2 did u really need dyn Errors everywhere, instead of using thiserror?
Avatar
And the next version of tracing will make it even prettier, allowing things like debug!("login", user = ?u, thread = ?t);
Avatar
Avatar
Ryozuki
@Learath2 did u really need dyn Errors everywhere, instead of using thiserror?
do I have many dyn Errors? I should have like a single one and the rest should be well defined concrete error types
17:16
Anyway, I'm not really happy with how the error handling turned out anyway, I'd need to think more about it the next time but I like having concrete error types, allows me to make sure at compile time that I handle all cases
Avatar
@Learath2 xD
17:24
change the box dyn
17:24
to CommandError
17:24
and compile
17:26
u never had to use that in the first place
17:27
whenever u use ? it calls .into() to the error btw
Avatar
I was initially planning to let fatal errors bubble up all the way to there
Avatar
and since u implement From it works
Avatar
but then I changed my mind, so yeah I guess that can be a CommandError now
17:28
this mess should be split into multiple modules too but I honestly don't have the energy anymore
Avatar
also why use a closure at all?
17:28
u can make another function
Avatar
I'll just finish this up and get to fixing the global bans
Avatar
closures in rust are harder to debug
Avatar
Which closure are we talking about?
17:29
well
17:29
lambda
17:29
or whathever u call it
Avatar
Heh, that's an artifact from when I was messing around with a command system, it can indeed now be a function
Avatar
well atleast from my experience from reading reddit
17:30
maybe this one here doesnt matter
Avatar
Yeah, it's fine now that I'm not passing it around
Avatar
@Learath2 btw idk if u know, but usually Errors in rust implement Error
17:33
if u implement it you can implement the source function
17:33
which u can use to provide the internal error info
17:33
kinda
17:33
Error is a trait representing the basic expectations for error values, i.e., values of type E in [Result]. Errors must describe themselves through the [Display] and [Debug] traits, and may provide cause chain information:
17:33
the thiserror crate does it all for u btw
17:33
feelsbadman
Avatar
I would indeed use thiserror the next time I do this, as I said I tried to maximize learnage here 😄
Avatar
@Learath2 the usual way to have a CommandError like u do is
17:35
to declare it as an enum
17:35
have a variant for each From implementation u want
17:35
maybe u find it util
17:37
Avatar
i know
Avatar
it feels so unreal, familiar yet so different ^^
Avatar
we have to shut down ddnet so they stop ripping it off
17:52
there is a way to disable / give to everybody the strong hook in ddnet srv?
17:53
i check gamecontext.cpp and my brain stopped working ;c
Avatar
Avatar
Deleted User
there is a way to disable / give to everybody the strong hook in ddnet srv?
Use SaturateAdd after summing all the dragging velocity
18:16
directly for ddnet code
19:54
it seems it wasnt that far fetched
19:54
19:54
monkalaugh
Avatar
Oh no, Windows 10 X will be a complete failure what do we do. Cancel it. And what should we do about the "new icons set" they look so nice. Ok cancel windows 10 X and move those nice icons to Windows 10 and rename Windows 10 to Windows 11. (edited)
Avatar
they'll change the name just to mess with leakers
Avatar
LOL didn't microsoft say some shit few years ago about never releasing a new version of windows, only updating 10? (edited)
20:05
why would they even say that
20:06
they could have said nothing and they wouldn't be called out now for lying
Avatar
"We will never need 32 bits system" Bill Gates
21:20
Seems like predicting wrong future is a requirement to be at Microsoft 😄
Avatar
well we are at 64bit xd
Avatar
chillerdragon BOT 2021-06-15 22:00:08Z
arent we going back to 32?
Avatar
not really
Avatar
guys i dont hear pickup sound and laser bounce sound why?
Exported 320 message(s)