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 2023-12-17 00:00:00Z and 2023-12-18 00:00:00Z
Avatar
yeah there's no reason to add vector in it
00:01
its just 3 const char*
Avatar
67c101b Add /join [player]. - furo321 4429347 Merge pull request #7662 from furo321/more-team-commands - def-
Avatar
#4100 was a mistake xddd
Avatar
Using bool instead of int for m_SendNAfkMsg Deleted m_pAfkMsg from CPlayer declaration Cleaned last activity check code Please test this PR, because I don't know what can go wrong here :P Check...
Avatar
chillerdragon BOT 2023-12-17 00:11:48Z
What is a pod
Avatar
plain old data
Avatar
chillerdragon BOT 2023-12-17 00:12:55Z
a
00:12
Thank
Avatar
Afaik it’s a term that has been deprecated in the standard
Avatar
c984c68 Fix clang warning -Wbitwise-instead-of-logical - furo321 4af28fd Merge pull request #7672 from furo321/bitwise-instead-of-logical - heinrich5991
Avatar
it’s not much of an explanation
00:32
chiller afaik pod structs are classes or structs which can only be comprised of c-compatible types (primitives and other POD structs) so they can be treated as a contiguous chunk of data and not something more conceptual like classes in cpp
00:33
so a POD struct won’t be decorated with things like automatic ctors and dtors
Avatar
chillerdragon BOT 2023-12-17 00:33:50Z
Ah no nesting hm
00:34
I thought it’s just about not having behavior/methods
Avatar
chillerdragon BOT 2023-12-17 00:34:48Z
Ah said they can contain other pod structs
00:34
Red your message wrong
00:35
pod is a myth anyway
Avatar
chillerdragon BOT 2023-12-17 00:35:11Z
Ok
Avatar
you shouldn’t need to have your struct be represented in this way unless you’re working with c code which needs to be able to understand your structure
00:36
the representation in memory is just an added bonus to that
Avatar
You want StandardLayoutType nowadays
Avatar
i got my dog back from the groomer
00:40
she is a very sweet girl
Avatar
Avatar
Ewan
it’s not much of an explanation
thats why i bringed SO answer but whatever
Avatar
nice this multialias workaround has no sense since name is first argument and we can't use variadic without messing up whole file to only get some fancy brackets
01:17
also brackets are disallowed in c macro
01:17
not the brackets itself tho
01:18
like preprocesser thinks that MACRO({"first", "second"}) has two arguments isntead of one
01:18
im giving up on this
01:18
2 hours of lurking xd
Avatar
As it makes no sense to allow the user to cycle through the command history while in the rcon login prompt.

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
  • [ ] Considered possible null pointers and out of bounds array indexing
  • [ ] Changed no physics that affect existing maps
  • ...
Avatar
Avatar
gerdoe
thats why i bringed SO answer but whatever
i didn’t see it
Avatar
Avatar
gerdoe
like preprocesser thinks that MACRO({"first", "second"}) has two arguments isntead of one
quotes around and escape the pair item quotes
03:44
it will get you somewhere with stringify
Avatar
5d2b62d A Twin Electric Field - ddnet-maps
Avatar
Avatar
gerdoe
#4100 was a mistake xddd
why xd
Avatar
ChillerDragon BOT 2023-12-17 09:36:23Z
jopsti where do u live
Avatar
morning vietnam
Avatar
chillerdragon: in almania
Avatar
Avatar
gerdoe
like preprocesser thinks that MACRO({"first", "second"}) has two arguments isntead of one
Protip: MACRO(({"first", "second"})) 😛
Avatar
time to write yet another proc macro
09:50
it will be my 10th proc macro. I am getting better in this
Avatar
ChillerDragon BOT 2023-12-17 09:52:38Z
jopsti which city
Avatar
good morning
09:53
jopsti which street
09:53
which house
Avatar
all i will say is, that it is "Münsterland"
Avatar
ChillerDragon BOT 2023-12-17 09:53:43Z
09:53
lerato!
09:53
im close to rq
09:54
next to bielefeld lmao
09:55
lerato whats your guess how many times or days we have been in the same city at the same time
Avatar
yeah
09:56
teero or smth is from bielefeld
09:56
this nobo
Avatar
ChillerDragon BOT 2023-12-17 09:56:24Z
xd
09:56
imagine nobody beliving you where you come from
Avatar
if you want some interesting history
09:57
The Battle of the Teutoburg Forest, described as the Varian Disaster (Latin: Clades Variana) by Roman historians, was a major battle between Germanic tribes and the Roman Empire that took place at modern Kalkriese from September 8–11, 9 AD, when an alliance of Germanic peoples ambushed Roman legions and their auxiliaries, led by Publius Quinctil...
09:58
this is the most famous one
09:58
also one of the most beautiful places around here
Avatar
ChillerDragon BOT 2023-12-17 10:04:35Z
o
10:04
im onto somsin
10:05
lerato u knew the full solution all along didnt u -,-
10:05
why am i coding this then
10:07
10:07
10:08
im sure heinrich loves the simplicity xd
10:09
im still not sure i like all the added ({})
Avatar
why do you use a macro?
Avatar
@ChillerDragon #include <iostream> using namespace std; template<typename H, typename ... T> constexpr auto last_of(H const& h, T const&... t) { if constexpr (sizeof...(t)) return last_of(t...); else return h; } template<typename H, typename ... T> constexpr void A(H const& h, T const&... t) { cout << h << " " << last_of(t...) << endl; if constexpr (sizeof...(t) > 1) A(t...); } int main(int, char**) { A("r","rescue", "command for ChillerDragon"); A("top","top5", "mess with selfesteem"); A("earrape", "fng only"); }
10:28
could be eased if the helptext comes first in the parameter list
Avatar
ws-client BOT 2023-12-17 10:33:14Z
<ChillerDragon> macros can be redefined as something else
10:33
<ChillerDragon> but i just realized my approach is fucked
Avatar
Do. Not. Use. Macros. Where. You. Can. Avoid. Them.
Avatar
ws-client BOT 2023-12-17 10:34:09Z
<ChillerDragon> Can we avoid them?
Avatar
not always ^^
10:34
but it's rare
Avatar
ws-client BOT 2023-12-17 10:34:33Z
<ChillerDragon> i mean in our case
10:34
<ChillerDragon> not in general
10:34
<ChillerDragon> Imo the macros bring something really nice for us here
Avatar
I posted a solution
Avatar
ws-client BOT 2023-12-17 10:35:01Z
<ChillerDragon> what about the client side then?
Avatar
I've to confess I don't have a clue what you mean 😦
Avatar
ws-client BOT 2023-12-17 10:36:09Z
<ChillerDragon> the client also includes the file
10:36
<ChillerDragon> but tbh we are not really using the power of macros yet
10:36
<ChillerDragon> but i would like to do that
10:36
<ChillerDragon> to also generate the function definitions of the callbacks
Avatar
macros are very difficult to debug
Avatar
ws-client BOT 2023-12-17 10:37:18Z
DDraceNetwork, a free cooperative platformer game. Contribute to ddnet/ddnet development by creating an account on GitHub.
10:37
<ChillerDragon> here we want the macro to mean something else than on the server side
10:37
<ChillerDragon> tbh i am also pro removing that
Avatar
Avatar
Fussel
Do. Not. Use. Macros. Where. You. Can. Avoid. Them.
Check lua source code troll
Avatar
ws-client BOT 2023-12-17 10:37:49Z
<ChillerDragon> @Fussel did anyone ever have to debug them?
Avatar
You don't really need macros and templates here, just always use {"cmd"} also if there is only one command and only work with an initializer list
Avatar
ws-client BOT 2023-12-17 10:38:14Z
<ChillerDragon> @Robyt3 you also wanna remove all macros!?
Avatar
he wanted to get rid of the {}, it was his choice 😄
Avatar
ChillerDragon BOT 2023-12-17 10:39:10Z
10:39
sos
Avatar
ChillerDragon BOT 2023-12-17 10:39:32Z
seems like the initializer list goes out of scope and then all breaks
Avatar
<ChillerDragon> here we want the macro to mean something else than on the server side ← and this is a good example for where things easily go wrong but are difficult to debug
Avatar
ChillerDragon BOT 2023-12-17 10:40:08Z
@Fussel i do not remember debugging being an issue there ever
10:40
also do you recommend to change the whole current implementation of 10yr old macro code just because it could be difficult to debug? xd
Avatar
as long as a macro works as intended, you don't need to do ^^
10:41
no, but it's unnecessary to proceed with this
Avatar
ChillerDragon BOT 2023-12-17 10:41:13Z
@Robyt3 i am not sure i understood what you mean
Avatar
I imagine it would look like this, untested: #define CHAT_COMMAND(names, params, flags, callback, userdata, help) \ for(const char *pName : names) \ m_pConsole->Register(pName, params, flags, callback, userdata, help); CHAT_COMMAND({"map"}, "?r[map]", CFGFLAG_CHAT | CFGFLAG_SERVER | CFGFLAG_NONTEEHISTORIC, ConMap, this, "Vote a map by name") (edited)
Avatar
ws-client BOT 2023-12-17 10:44:45Z
<ChillerDragon2> wont work
Avatar
ChillerDragon BOT 2023-12-17 10:44:50Z
i guess
10:44
because you didnt put (
10:45
CHAT_COMMAND({"map", "bar"}, "?r[map]", CFGFLAG_CHAT | CFGFLAG_SERVER | CFGFLAG_NONTEEHISTORIC, ConMap, this, "Vote a map by name")
10:45
here the , between map and bar ist a seperator for the macro args
10:45
so you need partenthesis around
Avatar
Makes sense
Avatar
ChillerDragon BOT 2023-12-17 10:46:04Z
which then breaks the : loop
10:47
and then the () are included
10:48
10:48
without it works fine
10:48
with it doesnt
10:48
so i decided to call std::initilaizer_list manually and let it use the parenthesis
10:48
problem is that variable i defined now goes out of scope and leaves a dangling pointer
10:49
in my test env i had warnings off and all worked fine but in ddnet code -Wdangling broke :c
Avatar
Avatar
ChillerDragon
lerato whats your guess how many times or days we have been in the same city at the same time
Once maybe
Avatar
ChillerDragon BOT 2023-12-17 10:49:51Z
yea sounds realistic
10:49
chiler reply guessing pro
10:50
i srsly developed another sense
Avatar
Avatar
Robyt3
You don't really need macros and templates here, just always use {"cmd"} also if there is only one command and only work with an initializer list
Now that is nasty, + it still requires the extra parens too because macros don't care about braces
Avatar
ChillerDragon BOT 2023-12-17 10:51:22Z
so how to fix
10:51
im out of ideas
Avatar
Remove the macro entirely and pass an initializer list directly to an overloaded function pepeH
Avatar
Just mess around with it until you get bored. I'll give it a lookover if you don't find the solution
Avatar
ChillerDragon BOT 2023-12-17 10:52:58Z
omg robsit
10:53
but then it breaks my epic macro plan
10:53
of deleting half of gamecontext.h
Avatar
If you want to get rid of macros you can also use polymorphism to achieve the difference in behaviour
Avatar
ChillerDragon BOT 2023-12-17 10:53:58Z
i do not
10:54
want
10:54
to
10:54
get
10:54
rid
10:54
of
10:54
the
10:54
macros
Avatar
I love the macro too. So elegant
Avatar
get rid of the macros
10:54
use rust
Avatar
ChillerDragon BOT 2023-12-17 10:54:28Z
auh9wdh8oawd
Avatar
use proc macros
Avatar
Chat commands shouldn't really be registered for all mods as macros on the server side, if you want to support modding. This seems like a useless macro to me: #define CHAT_COMMAND(name, params, flags, callback, userdata, help) m_pConsole->Register(name, params, flags, callback, userdata, help);
Avatar
Avatar
Jupstar ✪
use proc macros
those are cleaner
10:54
actually in rust
Avatar
This code should be in the individual mod gamecontrollers
Avatar
we could have made a macro with a custom DSL for declaring commands
10:55
we could also do the localization with macros
Avatar
ChillerDragon BOT 2023-12-17 10:55:18Z
@Robyt3 it can be in gamecontrollers already
10:56
userdata and callback can be something other than cgamecontext
Avatar
AFAICT the only reason for the chat command macros to exist is because they are hard-coded for the client as well (#7665), which I agree should probably not be the case anymore (in some time when most mods had time to update to using chat command messages)
Avatar
Since #7649 the server can inform the client about what chat commands it has. The ddnet client has a list of commands which matches the current ddnet version and it will always autocomplete those. ...
Avatar
Now just expand the macro and the inclusion and it looks good, I don't see a reason for this indirection (edited)
Avatar
ChillerDragon BOT 2023-12-17 10:57:35Z
DDraceNetwork, a free cooperative platformer game. Contribute to ddnet/ddnet development by creating an account on GitHub.
10:57
wat does that mean robsti
10:58
which indirection
Avatar
It means removing the macro and the file
Avatar
ChillerDragon BOT 2023-12-17 10:58:10Z
o
Avatar
And putting the actual C++ directly into the file
Avatar
ChillerDragon BOT 2023-12-17 10:58:17Z
hm
10:58
bbut
Avatar
Because it only makes it more complicated to go to other files again
Avatar
ChillerDragon BOT 2023-12-17 10:58:31Z
imagine having to define functions in a header file
10:58
so annoying
10:58
when it can be macro generaterd
Avatar
That's why command callbacks should be std::functions so you can pass lambda expressions when registering the command
Avatar
ChillerDragon BOT 2023-12-17 10:59:05Z
oh
Avatar
This additional indirection of command handler functions is even more annoying
Avatar
ChillerDragon BOT 2023-12-17 11:00:01Z
ok you totally knocked me out now xd
11:00
yea sounds good but i suddenly lost motivation
Avatar
Can multiple joins/leaves happen between 2 consecutive snapshots?
Avatar
ChillerDragon: It's a huge change and I don't want you or me to do it right now, but that's the end result I would like to see
Avatar
ChillerDragon BOT 2023-12-17 11:01:00Z
yea but then
11:01
what am i doing here
11:01
:D
11:01
i just close the pr and call it a day
11:01
sad that i didnt get to generate headers
Avatar
In general I'd prefer less usage of the preprocessor instead of more
11:02
Hard-coded server console commands should also be removed from the client eventually
Avatar
ChillerDragon BOT 2023-12-17 11:02:46Z
yes
11:02
eventually
Avatar
chiller why did u ask btw
Avatar
ChillerDragon BOT 2023-12-17 11:06:51Z
i realized at 4am that i do not know where you live
11:07
which i really should know
11:07
so i waited until the morning to ask
Avatar
are you a beautiful, intelligent, althetic woman?
Avatar
ChillerDragon BOT 2023-12-17 11:07:39Z
no
Avatar
ah too bad
Avatar
ChillerDragon BOT 2023-12-17 11:07:57Z
xd
Avatar
ChillerDragon BOT 2023-12-17 11:08:15Z
i need to know where people live that i interact with in teeworlds
11:08
in case i am near by
11:08
to hookup
justatest 1
11:08
my address being public helped me meet zwelf for example
Avatar
yeah
11:09
i remember your photo in a photo of a magnet
Avatar
ChillerDragon BOT 2023-12-17 11:09:53Z
xd
Avatar
barcelona
Avatar
ChillerDragon BOT 2023-12-17 11:10:08Z
ik
11:10
ur
11:10
and i know lerato is homeless
Avatar
ChillerDragon BOT 2023-12-17 11:10:27Z
deen i forgot tbh xd
Avatar
let's all go to barcelona
11:10
at least there is good weather
Avatar
ChillerDragon BOT 2023-12-17 11:10:39Z
heinrich i already saw
Avatar
rip
11:11
was ccc around this dates
11:11
i wish they did smth similar here
Avatar
ChillerDragon BOT 2023-12-17 11:12:09Z
ryo go organize
Avatar
BREAKING: French diplomat has died of his wounds after being injured in Israeli airstrike on Gaza 💖 178 🔁 64
11:12
rip
Avatar
ChillerDragon BOT 2023-12-17 11:13:22Z
ohno politics
Avatar
chiller
Avatar
ChillerDragon BOT 2023-12-17 11:13:33Z
jopsi
Avatar
ChillerDragon BOT 2023-12-17 11:13:52Z
it was always planned as 2 episode thing
11:13
but i got a lot of requests i might do it
Avatar
but with a world tour again
11:14
0.7
Avatar
ChillerDragon BOT 2023-12-17 11:14:31Z
xd
11:14
jopsti 0.7 enjoyer
Avatar
dead version
Avatar
it's just so troll to play teeworlds somewhere in the world in the public
Avatar
make a ddnet vid
Avatar
such a influencer moment
Avatar
imagine
11:15
seeing a guy
11:15
with his laptop on the ground
11:15
middle of a park
11:15
with tw
11:16
saying 0.7 released!
11:16
x
11:16
d
Avatar
ChillerDragon BOT 2023-12-17 11:16:07Z
xd
Avatar
im sad resamvi doesnt do vids
11:16
best youtuber
Avatar
chiller do u want to meet ryo?
11:18
he is a blond latino
Avatar
ChillerDragon BOT 2023-12-17 11:18:21Z
yes
11:18
not latino
Avatar
ChillerDragon BOT 2023-12-17 11:18:31Z
next time im in barcelona
11:18
ima ping the shits out of ryo
Avatar
nice
Avatar
ChillerDragon BOT 2023-12-17 11:18:56Z
my next planned meet is some 12yo kid from block
11:18
thats gonna be cring
Avatar
wtf
11:19
pedo
Avatar
ChillerDragon BOT 2023-12-17 11:19:29Z
it indeed is weird
Avatar
why u meeting him
Avatar
ChillerDragon BOT 2023-12-17 11:19:47Z
we play a lot together and im in his home town
11:19
might as well say hi
Avatar
and he's literally 12?
Avatar
ChillerDragon BOT 2023-12-17 11:20:15Z
he might be 18 idk xd
Avatar
xDD
Avatar
maybe he is 40
Avatar
12 is only learath
Avatar
chiller pls
Avatar
ChillerDragon BOT 2023-12-17 11:20:31Z
wot
11:20
@Axi
11:20
did the ping work?
Avatar
yes
Avatar
he/him/bulgarian im a divorced 52 years old male and i have no life and friends
Avatar
hi axi
Avatar
ChillerDragon BOT 2023-12-17 11:21:04Z
@Axi how old r u
11:21
and you chiller?
Avatar
XDDDDDDDDDDDDDD
11:21
he'll troll u to death
Avatar
ChillerDragon BOT 2023-12-17 11:21:32Z
who who
11:21
bulgi biggest trol
11:21
@Axi how old
11:21
xd
Avatar
ChillerDragon BOT 2023-12-17 11:21:58Z
yea still weird af
Avatar
yeah
11:22
don't get raped by chiller
Avatar
how old r u chiller
11:22
im 23
Avatar
chiller is 25
Avatar
ChillerDragon BOT 2023-12-17 11:22:22Z
age reveal
Avatar
soon 30 sadboi
Avatar
i know everything about chiller
Avatar
ChillerDragon BOT 2023-12-17 11:22:50Z
ok afk
Avatar
Avatar
Ryozuki
im 23
i keep forgetting you still so young
11:25
why am i so old 😭
Avatar
how are u so old
Avatar
i dunno when the fuck the time passed so fast
11:32
i swear yesterday i was like 20
Avatar
i should make yt vids but lazy
Avatar
Avatar
cyberFighter
i should make yt vids but lazy
horse races or what are they about
Avatar
Avatar
Learath2
Protip: MACRO(({"first", "second"})) 😛
i did it all, couldnt compile either
Avatar
Avatar
Jupstar ✪
why xd
brought protocol structure for some reason
Avatar
Avatar
ChillerDragon
my next planned meet is some 12yo kid from block
Don't if you don't want to become jail
Avatar
Avatar
gerdoe
i did it all, couldnt compile either
tried one more time - still doesn't work xd
Avatar
Chiller are you still interested in the console command registration thing? If not I'll make template blackmagic
Avatar
hello jail I'm Teero
Avatar
Avatar
gerdoe
tried one more time - still doesn't work xd
There is no way the preprocessor is allowed to split that into two, are you sure you aren't testing it wrong?
Avatar
Avatar
Robyt3
I imagine it would look like this, untested: #define CHAT_COMMAND(names, params, flags, callback, userdata, help) \ for(const char *pName : names) \ m_pConsole->Register(pName, params, flags, callback, userdata, help); CHAT_COMMAND({"map"}, "?r[map]", CFGFLAG_CHAT | CFGFLAG_SERVER | CFGFLAG_NONTEEHISTORIC, ConMap, this, "Vote a map by name") (edited)
tested, preprocesser thinks that {"map", /* <- this one */ "nomap"} has two arguments isntead of one
12:09
templates > macros
Avatar
Skill issue
12:13
i have forgotten why did i close #6517
Avatar
There's nothing special, switched from previous global pool to local one. Next step is unifying m_apPlayers calls by introducing new CObjectPool *PlayerPool() const or CPlayer *GetPlayer(int Cl...
Avatar
seems to be messed up tho
Avatar
Avatar
ChillerDragon
Click to see attachment 🖼️
ah
12:17
real skill issue then
Avatar
Replace unnecessary gameclient.h include with more specific includes. Fix storage creation error message not being logged as the logger was initialized after checking for the failed storage creation. However, in this case we want to avoid non-error log messages so the tool's output is only the extracted demo chat, except in error cases. Rename Process function to ExtractDemoChat and make it static to avoid exporting it. Use log_error instead of dbg_msg.

Checklist

...
Avatar
Add log messages for errors and success. Extract function ResaveMap. Ensure reader is closed when writer could not be opened.

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
  • [ ] Considered possible null pointers and out of bounds array indexing
  • [ ] Changed no physics tha...
Avatar
chillerdragon BOT 2023-12-17 13:04:48Z
I have up and are totally out. Feel free to do whatever c:
Replying to @Learath2 Chiller are you still interested in the console command registration thi…
13:05
Gave
13:05
Fuxk phones
Avatar
1f5a648 Minor refactoring of demo_extract_chat tool - Robyt3 88ce582 Merge pull request #7676 from Robyt3/Tools-Demo-Extract-Refactoring - Chairn
13:27
a883018 Refactor map_resave tool - Robyt3 d3959e2 Merge pull request #7677 from Robyt3/Tools-Map-Resave-Refactoring - Chairn
Avatar
nah its unreal for me to make it work
Avatar
@TsFreddie im improving my flutter
13:46
dart is like modern java
13:47
Avatar
Avatar
Ryozuki
@TsFreddie im improving my flutter
make an AI Chat bot
Avatar
that can be cool
Avatar
so i can dump chillers chat history in there and have a mini chillerdragon in my pocket
Avatar
:O gimme gimme
Avatar
@TsFreddie do u know any public apis?
13:49
or run my own model
13:49
sounds expensive
Avatar
RWKV can probably run on phones
13:49
this?
13:50
but idk how to use this
Avatar
idk either lol
13:51
i tried compiling rwkv.cpp and it ran fine on cpu only.
Avatar
maybe something simpler as a first complex flutter app
13:51
xd
Avatar
It’s probably just a couple python calls
Avatar
actually ill use my own todo app as a list to buy groceries
13:51
i always wanted an add free one
Avatar
so its probably okay to run a 1.4b models on phones with cpu only
Avatar
Everything AI is made for the lowest common denominator. The new pRoGrAMmeRs
Avatar
Avatar
Learath2
It’s probably just a couple python calls
i prefer smth dart natvie
13:52
native
13:52
i need to see how dart can interface with python
13:52
Dart is a client-optimized language for fast apps on any platform.
Avatar
Avatar
Ryozuki
i always wanted an add free one
jtx Board is foss i think?
Avatar
btw the hot reload is insane
13:53
i literally run the app on all time
13:53
modern tooling is smth else
Avatar
Hot reload is such a pleasure to have
Avatar
also using the app on my phone is even seamless
Avatar
i mean, rwkv.cpp is native owo
13:56
rwkv ai00 server also has a vulkan implementation
13:56
its pretty cool to not rely on cuda or python
Avatar
also the refactor abilities are p good
14:07
on this editor
14:07
Avatar
when do we get better antiping xd
Avatar
get better internet
14:12
4Head
Avatar
literally every game ever accounts for poor internet except ddnet
Avatar
Avatar
Ryozuki
4Head
wtf is this emote
14:31
from twitch
Avatar
Avatar
Voxel
literally every game ever accounts for poor internet except ddnet
with a tradeoff
Avatar
i thought it was stepfunn
Avatar
the tradeoff is to give more control to client
14:31
which allows hacks
14:31
ddnet is completly server authoritive
14:32
and well it requires precise movements
Avatar
Avatar
Teero
when do we get better antiping xd
kog+bad internet+loud music
Avatar
Avatar
gerdoe
kog+bad internet+loud music
music not loud xddd
Avatar
kog players cant live without their loud music
Avatar
downloading gta6
Avatar
do you really want to replay trailer forever
Avatar
gta6 mid whens gd 2.2 gonna finish
nouis 1
Avatar
Avatar
Voxel
kog players cant live without their loud music
@Mixi they saw your videos MONKAS
Avatar
i did not
Avatar
Avatar
Voxel
gta6 mid whens gd 2.2 gonna finish
never
14:47
its like teeworlds 1.0
Avatar
oh yea i forgot teeworlds was forever under 1.0
Avatar
and will be forever
14:49
👏
Avatar
dead franchise
Avatar
teeworlds versions
Avatar
i shouldve joined ddnet 5 years ago max
Avatar
soon i'll know teeworlds for half of my life
pepeW 1
Avatar
cringe ur not from 2008
Avatar
yeah i am pretty late
Avatar
imagine u found the game after ddnet rls
Avatar
i got into it after all the fun stuff happened
Avatar
i think i almost started around when ddnet was released 😄
Avatar
Avatar
Voxel
i got into it after all the fun stuff happened
but ur new
14:56
it cant be
14:57
0.4.3 was next gen
Avatar
grandma coke
Avatar
pretty new
Avatar
Avatar
Cøke
but ur new
ik but i heard old versions / events were better than this one
Avatar
yes bcs nowdays nobody care
14:59
we had....wait....0 tourneys this year
Avatar
dead franchise x2
Avatar
only one will be a simple hh map that u can play one time
Avatar
only reason its still gonna go next year is because heinrich paid like 600+ for the servers LOL
Avatar
will be better when roles change
15:00
😛
Avatar
Avatar
Voxel
only reason its still gonna go next year is because heinrich paid like 600+ for the servers LOL
u dont know hahahah
15:00
it was like never reached
Avatar
damn so it Is dead
Avatar
deen has a good heart
15:01
and know the game is the best
Avatar
the best in...?
Avatar
all categorys
Avatar
u cant tell me a better game
Avatar
i guess games just suck then
15:02
womp womp
Avatar
no p2w, only own skillz
15:03
idk its the best game 😄
15:03
but kids these days want to be the best after 3 hours
Avatar
Avatar
Cøke
no p2w, only own skillz
skillz and The Internet Speed of Jesus Christ
Avatar
and good mouse
Avatar
but i can imagine how easy ddnet is when you guys release the same gameplay 7 times
15:05
in a month
Avatar
wat?
Avatar
and 3080
Avatar
now u confused me
Avatar
Avatar
Ryozuki
and 3080
no, most optimized for me GPU
15:05
😏
Avatar
Avatar
Jupstar ✪
now u confused me
current maps are a bore
15:05
its all just hh
Avatar
play gores
15:06
then u have smth to do for the next 3 years
Avatar
thats not any better
Avatar
it can't be boring if u are not good enough to solo finish
15:06
😬
Avatar
guess i joined ddnet too late then
15:07
oh well
Avatar
chill dude
15:07
just start game
15:07
play
15:07
die bcs u took it too serious
Avatar
get bored quit
Avatar
Avatar
Voxel
but i can imagine how easy ddnet is when you guys release the same gameplay 7 times
u cant bcs u are not playing
15:17
u dont even know the basics
Avatar
but do i want to
16:06
anyone wanna try my todo app
16:06
owo
16:06
(i promise no sus code)
Avatar
i made a google play console acc (edited)
16:08
i paid 25€ to the corpos
16:11
2f89297 Disable cycling through command history when logging in to rcon. - furo321 4ddf1df Merge pull request #7674 from furo321/history-login-prompt - Robyt3
Avatar
Hi, guys. Can you help me? I need pos of my crosshair (edited)
16:15
it is pChr->m_Input.m_TargetX and m_TargetY or something another?
16:15
logistic_robot
Avatar
Avatar
Cøke
0.4.3 was next gen
0.5 is mainstream then xd
Avatar
Avatar
Jupstar ✪
banhammer
i need to get is on the server side
16:15
poggers2
Avatar
it should be the cursor pos yes
Avatar
do i need to * 32?
16:16
or its correct already?
Avatar
but u could easily check by printing these variables
16:16
mhh dunno rn
Avatar
Avatar
Ryzen
do i need to * 32?
You don't need to multiply it.
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 (especially base/) or added coverage to integration test
  • [ ] 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-addresss...
Avatar
have any of you ever had cracking, popping sounds when try to play audio on discord, zoom in firefox justatest (also it can crash a page) (edited)
17:38
asking for a friend
Avatar
sounds weird
17:57
maybe the sound cracking is a side-effect to a driver problem?
Avatar
but spotify and youtube work fine (edited)
17:57
:\
Avatar
what os?
Avatar
gentoo justatest
Avatar
Avatar
MilkeeyCat
asking for a friend
xD?!
17:59
ill try to install chrome
Avatar
did you convert him to gentoo ala ryo style or is your friend you?
Avatar
Avatar
Mr.Gh0s7
did you convert him to gentoo ala ryo style or is your friend you?
2nd one is correct
18:00
and sooner or later ill install linux on my friend's pc
18:01
can you backtrace it in any way?
18:04
like are there logs or smt?
Avatar
there should be
18:05
and i installed chrome owo
18:05
time to remember password for discord pepeW
Avatar
ez 5th try, holy hel
Avatar
ez5thtry,holyh31 nice pwd
Avatar
nothing on chrome
18:07
always knew firefox sucks
18:07
im chrome andy now
Avatar
რილია 2023-12-17 18:16:56Z
hi
18:17
where is server log file ?
18:20
wow , here is not much going on without me 🙂
18:24
the quitting. please wait is so annoying on windows "idk about linux tho" it take sometimes a minute to quit the game
Avatar
yeah why does it do that
Avatar
The client needs to wait for all background jobs to complete before it can quit or it may crash when quitting
Avatar
რილია 2023-12-17 18:51:36Z
do you suggest i don't alt+f4 my way out ?
18:52
is it the same on linux ?
Avatar
Avatar
რილია
do you suggest i don't alt+f4 my way out ?
Probably doesn't cause problems right now, but I wouldn't recommend it. You could also Alt+Tab out already.
Avatar
Avatar
რილია
is it the same on linux ?
Should be, it's the serverlist refresh jobs taking the longest
Avatar
I can confirm the "bug" is on linux too
Avatar
Avatar
Robyt3
Should be, it's the serverlist refresh jobs taking the longest
it can't force jobs to end?
Avatar
Doesn't work very well with the current curl interface we are using, would be improved by #5842
Avatar
Supersedes #5092, I am still not very sure about this structure either, but I think it's time someone else takes a look. Remaining concerns: Should errors in the http module just be fatal? I...
🍻 1
Avatar
BlaiZephyr | meloƞ 2023-12-17 20:44:56Z
pepeW just client.cpp things (edited)
Avatar
about render text
20:47
can i make somehow to rainbow only the text i want to be rainbowed (edited)
20:48
cause it looks like
20:48
20:48
eww
Avatar
The text color is a global variable, you need to reset to the default text color after doing your colored text
✅ 1
Avatar
works, thanks
Avatar
i remember running into that problem when redoing the editor ui
💀 1
Avatar
1 more question
21:14
how can i put multiple names in strcmp?
21:14
Avatar
What do you want it to do? Check if the name matches either or matches both?
Avatar
put multiple names like -StormAx || melom etc
21:15
so i don't have to make 100500 new lines (edited)
Avatar
Move the logical or outside the function call: str_comp(..., ...) == 0 || str_comp(..., ...) == 0
Avatar
BlaiZephyr | meloƞ 2023-12-17 21:17:09Z
im getting special notice in your client ? monkaStop
Avatar
ofc ;D
21:18
ugmmm
21:18
like this?
21:18
Avatar
BlaiZephyr | meloƞ 2023-12-17 21:18:46Z
thats one way to do it, yes
Avatar
ok cool
21:19
:D
21:19
thanks
Avatar
Avatar
Robyt3
The client needs to wait for all background jobs to complete before it can quit or it may crash when quitting
Out of curiosity, are those jobs network oriented? I did not seem to encounter that screen when having a pretty good internet
Avatar
Avatar
Devinci
Out of curiosity, are those jobs network oriented? I did not seem to encounter that screen when having a pretty good internet
Yeah, it's the jobs to determine the best master server. If you have a good connection to all master servers then it should be done quickly
21:35
If you don't quit right after refreshing the server list (or after starting the client) then it should also quit pretty fast
Avatar
Oh that's very good to know. I'll keep in mind to not refresh before leaving, something that I do quite a lot xD. Thanks!
Avatar
chillerdragon BOT 2023-12-17 22:08:49Z
Can we cache that result across reboots?
Replying to @Robyt3 Yeah, it's the jobs to determine the best master server. If you have a g…
Avatar
Possibly, but I'm almost done reworking #7376. Now that jobs can be cancelled, the client quits almost immediately.
Avatar
We currently poll if specific background jobs are done in various places to perform some final computations on the main thread. To simplify job handling the virtual function IJob::Done is added to ...
Avatar
Avatar
chillerdragon
Can we cache that result across reboots?
You can create ddnet-serverlist-urls.cfg in the same directory as settings_ddnet.cfg and put a url there. https://master1.ddnet.org/ddnet/15/servers.json for example and it should be cached.
Avatar
I don't think that prevents the requests to determine the best master though
Avatar
It seems to, the game quits pretty much instantly now.
Avatar
At least for quitting after initial start it doesn't seem to make a difference, i.e. with command line ddnet quit
Avatar
It does for me? With ddnet-serverlist-urls.cfg DDNet quit 0.81s user 0.64s system 88% cpu 1.641 total Without DDNet quit 0.92s user 0.68s system 31% cpu 5.011 total
Avatar
Maybe it simply doesn't try other master servers
22:25
Jobs should simply get a bool "canceable" and skip execution if true and in destructor
22:26
Why does it matter that the http request is not finished?
22:28
Or can one not cancel curl requests?
Avatar
Avatar
Jupstar ✪
Or can one not cancel curl requests?
Yes, but we are not doing that at the correct time right now, we are only cancelling jobs in destructors when it's too late. I'll probably update 7376 tomorrow, adding IJob::Cancel.
Avatar
Avatar
Robyt3
Yes, but we are not doing that at the correct time right now, we are only cancelling jobs in destructors when it's too late. I'll probably update 7376 tomorrow, adding IJob::Cancel.
So our problem is that we don't handle any curl error if curl was stopped and what ever blocking call returned an error? Or is that simply not possible? (edited)
Avatar
The code is already there to properly abort the curl calls, but we only abort the HTTP requests when they are already done effectively
Avatar
Is there no global instance or something for curl, that we have to stop?
22:33
Or can stop*
Avatar
That's probably what curl-multi is for, it will make quitting even faster I assume
22:34
We neglect to call curl_global_cleanup
Avatar
Mh OK. Didn't know curl is such low level api
Avatar
Curl has a progressfunction callback that can tell curl to abort, but we don't tell curl to abort soon enough at the moment
Avatar
I find it really overkill how hard it is to use, considering we do like 2 http requests lmao
Avatar
theoretically we could just quit the process while the http requests are still running
22:38
but we don't have the signaling that the http requests are unimportant
22:38
and since we introduced important jobs, such as editor saving, we have to wait for some jobs, at least
Avatar
Well abort sounds like something a async code could support. So i guess that would be one good way.
Avatar
we're using the sync interface of curl (in a thread) (edited)
22:40
curl-multi would be the async interface
Avatar
Yeah but apparently we can handle aborts already
22:41
As far as i understood rbyte
Avatar
Avatar
Robyt3
The code is already there to properly abort the curl calls, but we only abort the HTTP requests when they are already done effectively
Here
Avatar
I'm not sure that actually works if no bytes are currently being received on the http stream
Avatar
Avatar
heinrich5991
I'm not sure that actually works if no bytes are currently being received on the http stream
Yeah, that's the issue with the current progress callback, it is only called when bytes are received
Avatar
Maybe we could use a simpler http lib
22:42
There doesn't seem very high interest by any Dev to maintain good code
Avatar
when "just quitting" works, what's the problem with libcurl?
22:43
curl is the de facto standard library for doing http(s) requests, don't htink we should switch to something else
Avatar
But apparently we cannot just abort requests
22:44
And we de facto don't have curl multi
Avatar
we can easily abort requests
22:44
(at the time where we want it)
22:44
by just not waiting for the curl threads to complete
Avatar
Ok then apparently we can now
Avatar
Seems to work well enough with what I have right now, but curl-multi would be even better (edited)
Avatar
You mean a quick exit?
Avatar
no
22:45
just no thread_join on the thread doing the http request
Avatar
That sounds like a hack to me. Leave it to the OS. Im lazy
22:46
In theory it could wait for it
Avatar
the OS is much better at cleanup anyway
Avatar
Avatar
heinrich5991
and since we introduced important jobs, such as editor saving, we have to wait for some jobs, at least
How would you model "important" jobs? bool IsImportant() with default false or bool IsCancellable() with default true?
Avatar
bool ShouldWaitBeforeQuitting()? maybe even defaulting to true to opt out of it?
Avatar
Avatar
heinrich5991
just no thread_join on the thread doing the http request
Slightly annoying because the process will linger around for a moment
Avatar
Avatar
heinrich5991
the OS is much better at cleanup anyway
That's same thinking as global variables. It's not modular, it's not reusable. I dislike it
Avatar
which process will linger around?
Avatar
Avatar
Jupstar ✪
That's same thinking as global variables. It's not modular, it's not reusable. I dislike it
it's also faster ^^
Avatar
Avatar
heinrich5991
which process will linger around?
Or does the process die immediately if only curl threads remain?
Avatar
Avatar
heinrich5991
it's also faster ^^
I can live with slower exit, if that means cleaner code
22:48
The Vulkan spec even forbids it
Avatar
Avatar
Robyt3
Or does the process die immediately if only curl threads remain?
it will exit immediately
22:52
since leaving main e.g. calls exit_group on Linux
22:52
which kills all other threads as well
Avatar
Avatar
Jupstar ✪
The Vulkan spec even forbids it
what does the vulkan spec forbid?
Avatar
Avatar
heinrich5991
what does the vulkan spec forbid?
Leaving resources alive
Avatar
at process exit?
23:02
got a link?
Avatar
Avatar
heinrich5991
at process exit?
It doesn't know about what a process is
Avatar
Very long instruction word (VLIW) refers to instruction set architectures designed to exploit instruction level parallelism (ILP). Whereas conventional central processing units (CPU, processor) mostly allow programs to specify instructions to execute in sequence only, a VLIW processor allows programs to explicitly specify instructions to execute...
Avatar
Avatar
Jupstar ✪
It doesn't know about what a process is
would still be interested in a link
Avatar
Avatar
heinrich5991
would still be interested in a link
Avatar
Prior to destroying a device, an application is responsible for destroying/freeing any Vulkan objects that were created using that device as the first parameter of the corresponding vkCreate* or vkAllocate* command.
23:09
is that what you're talking about? it seems to talk about not freeing parent objects before freeing all children
23:09
(like not calling curl_global_cleanup while stuff is still running)
Avatar
Nope. Read the note
23:10
It does not give you that guarantee
Avatar
Prior to destroying a device, an application is responsible for destroying/freeing any Vulkan objects that were created using that device as the first parameter of the corresponding vkCreate* or vkAllocate* command.
23:10
this?
23:11
it still seems to only say that you need to free children objects before the parent (edited)
Avatar
This is also it. But you quoted the same thing again
Avatar
ah. oops
Avatar
Avatar
heinrich5991
it still seems to only say that you need to free children objects before the parent (edited)
Why only?
23:11
You need to do that
Avatar
it doesn't seem to be unambiguous to me
Avatar
It's not a matter of opinion. The Vulkan spec says it. If you don't do it it's undefined behavior
Avatar
it is critical to turn off the engine prior to leaving the car to avoid fuel wasting
23:13
this doesn't tell me to leave the car AFAICT?
Avatar
If you don't clean it. It might leak
23:14
Just because our awesome operating systems will be more clever than us doesn't mean it's correct
Avatar
that doesn't seem to be useful
23:15
the operating system always has to clean up this stuff to function correctly
23:15
the process might be killed, for example
Avatar
Ok. I have sleep to catch. Not worth my time. Night
Avatar
night 🙂
Avatar
The purpose of this blog post is to celebrate the anniversary of two really neat methods on the Cell type: from_mut and as_slice_of_cells. Both methods were released in version 1.37.0 of Rust, exactly one year ago from the date this post was published.
Avatar
yea, seen it in the stdlib docs
23:28
net: phy: add Rust Asix PHY driver This is the Rust implementation of drivers/net/phy/ax88796b.c. The features are equivalent. You can choose C or Rust version kernel configuration.
Avatar
interesting
Exported 676 message(s)