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 2023-02-27 00:00:00Z and 2023-02-28 00:00:00Z
Avatar
The image in this tweet displays its own MD5 hash. You can download and hash it yourself, and it should still match - 1337e2ef42b9bee8de06a4d223a51337 I think this is the first PNG/MD5 hashquine.
Likes
8709
Retweets
2058
Avatar
that is rather old
01:31
i've seen the post when it was posted if this is the original one (edited)
Avatar
Update on my Godot 4 extension: made new functions to access them across all classes and not make duplicated code made character class having a proper input system, where with a boolean, it either automatically detects input (mouse, keyboard or joystick) and changes actions depending on the input pressed, or it's not automatic and it only detects one type of input expended data for dashing, walljumping, wallsliding, gliding and game knowledge (hp, mana, stanima)
05:59
I think I'm in a good direction, I don't feel overwhelmed, because of how I organize my code, it's insane
07:49
dbe4135 Izanagi -> Iza - murpii 02150e5 Merge pull request #244 from murpii/patch-2 - def-
Avatar
where will ddnet work possibly better: linux or windows?
Avatar
linux
10:22
if you are planning to host a server - use linux probably
Avatar
Funnily enough ddnet might be the only game that has a client that works better on linux too 😄
Avatar
Avatar
Learath2
Funnily enough ddnet might be the only game that has a client that works better on linux too 😄
factorio?
Avatar
I haven't tried but wouldn't be surprised if it did work very well. Those guys know how to write good code
Avatar
in fact they support asynchronous autosaving in linux
10:32
but not in windows
10:32
but thats not big problem
10:32
what does exactly "fifo" mean? i mean ddnet 16.8 will support "fifo" on windows
Avatar
Funnily enough for me many games work better simply because dxvk is better written then dx9 drivers and default on Linux
Avatar
Avatar
Gewinum
what does exactly "fifo" mean? i mean ddnet 16.8 will support "fifo" on windows
first in first out
Avatar
i have read it, but whats exactly it will do
10:33
is it working with packets or what
Avatar
You can echo commands in a fifo file that will get executed
10:34
so thats why named pipe was used
10:34
i guess
Avatar
technically named pipe == fifo
Avatar
Avatar
Learath2
Funnily enough ddnet might be the only game that has a client that works better on linux too 😄
Best
10:39
Ddnet is linux first
10:39
Windows is an afterthought
10:39
gigachad
Avatar
Avatar
Gewinum
what does exactly "fifo" mean? i mean ddnet 16.8 will support "fifo" on windows
First in first out
10:41
Oh should have red
Avatar
I use windows
childeinsane 1
Avatar
Windows uses you
Avatar
i'll switch to linux when I can play current games that I do like to play alot (edited)
11:12
like Escape From Tarkov, which is playable but the biggest problem = Battleye
Avatar
Give up on that game. It's not worth it xd
Avatar
Avatar
Jupstar ✪
Give up on that game. It's not worth it xd
it is
11:23
6k hours
Avatar
6k hours u could have spent into teeworlds
Avatar
Avatar
Jupstar ✪
Give up on that game. It's not worth it xd
Why do you not appreciate Nikita's work?
Avatar
I appreciate teeworlds work more;)
Avatar
Hjjhhjmhgghopk
13:37
Hhhhhhjoknbbfd for the delay
13:37
Nnnmm animal animal
Avatar
no drinking and texting
13:44
very dangerous
Avatar
Voice message.ogg
Avatar
Avatar
maede_
Voice message.ogg
gigachad 🙏
Avatar
I have a question and an Idea: What do you think of removing height and width from the mapper and doing it automatically (adjusting shift/width/height when saving the map/placing tiles)? (edited)
Avatar
interesting
15:39
how do you handle the edge tiles?
15:39
those that replicate endlessly
Avatar
exactly like before, you could add a button showing the current borders of the selected layer
15:41
this would allow playing tiles outside the current borders while mapping, because before placing, the map would auto adjust to the new size (edited)
15:42
this would also allow for automatically make layers smaller and shrinking the map filesize
Avatar
definitely sounds good
15:43
but I don't understand your solution for edge tiles
Avatar
Avatar
heinrich5991
those that replicate endlessly
I now understand your issues, imagining a floating island 🤔
Avatar
And then u zoom out accidentally place a tile and now?
15:44
Should it always reduce width and height every time a tile is placed?
Avatar
now you delete it again
Avatar
Avatar
Jupstar ✪
Should it always reduce width and height every time a tile is placed?
Is removed*
Avatar
Avatar
Jupstar ✪
Should it always reduce width and height every time a tile is placed?
on the borders, yes, should be rare
15:46
you could also set the start layer size to 200/200 or something, since it's dynamically adjusted anyhow (edited)
Avatar
But could create quite some lag
15:46
Checking border. Or if border is empty, find new border
15:47
I doubt it happens that rarely if everything is automatic
Avatar
you can be relaxed with it
Avatar
A mapper often adds and removes tiles when creating a new map
Avatar
like doubeling/halfing it
15:47
as long as you adjust it while saving
Avatar
Avatar
AssassinTee
like doubeling/halfing it
But then u cannot only rely on border again
15:48
Which makes the calculation even shower
15:48
Slower
Avatar
Avatar
Jupstar ✪
But then u cannot only rely on border again
I don't get this one
Avatar
How do u know the current border is u doubled the size
15:49
If
Avatar
Perfect ide theme found
Avatar
if I double the border, the new border coordinates are twice as large?
Avatar
Avatar
AssassinTee
if I double the border, the new border coordinates are twice as large?
Ok let's say I place a tile somewhere outside... U would double width or height right?
Avatar
yes, I double until it's inside
Avatar
What if u remove the tile again?
15:51
It's not part of the border
Avatar
slowly checking the last col/row and reducing the size one by one so that it's now cpu heavy could be an option. The size only matters for the editor itself, as I said saving could rearrange it anyway. Also maybe not making it smaller at all could be an option, too
Avatar
A decrease means copy all tiles that exists
15:54
And increase
15:55
It's not a two dim array
15:56
I mean it's certainly somehow possible. But if u implement it, you might end up having to rewrite the rendering
15:56
And use a different date structure to save the tiles in editor
Avatar
sounds like a quadtree, now that you say it
Avatar
yup
15:57
also thought that 😄
Avatar
how do I decrease? The leaf is empty
15:58
how do I save? Making a quadtree into an array
15:58
how do I increase? adding nodes
16:00
still the issue of @heinrich5991 remains, the only thing I can think of is placing invisible tiles, but that's bad
Avatar
This can make the rendering much slower than it already is tho
Avatar
I don't think it's that much if you have a good leaf size
Avatar
Depends on the data structure itself
16:02
A continues array is very fast in accessing and irritating
16:02
Iterating
Avatar
A quadtree is faster if you only need to access parts of it
Avatar
I dunno. I'd say it's much much slower
Avatar
we have a render limit and a zoom limit, you don't need to render the full map, just the part that you are looking at
Avatar
Qquadtrees are good if u want to find a specific region
Avatar
Avatar
AssassinTee
we have a render limit and a zoom limit, you don't need to render the full map, just the part that you are looking at
That's not my point
16:08
Explain to me how do u render each tile after each other in a quadtree efficient
16:08
U have a x start y start. X end y end
16:09
Array access is basicaly 2-3 instructions
16:09
Y * width+x
Avatar
first you only need to render the leafes inside the FOV, each leave can be an array too?
Avatar
How do u find the required leafs
Avatar
x, y, w, h inside a node
Avatar
And then go over all leafs
Avatar
no
16:11
you go from the root of the tree
Avatar
Avatar
AssassinTee
I have a question and an Idea: What do you think of removing height and width from the mapper and doing it automatically (adjusting shift/width/height when saving the map/placing tiles)? (edited)
not removing but adding auto-scale
16:11
i still need my borders :<
Avatar
Anyway, implement it. Now I'm interested
Avatar
is there a quadtree already in ddnet accessible? For player collisions or somethign
Avatar
Entity collision and interaction is THE usecase of a quadtree 😮
Avatar
It is yes
Avatar
tried to implement it on 07, broke whole protocol xd
Avatar
we just do the O(n²) thing
Avatar
BCS u go from a specific point ^^
16:15
But even here. For 64 players it's maybe already worth. For 16 players it's maybe already slower
16:15
U also have to maintain the quad tree^^
Avatar
Avatar
gerdoe
tried to implement it on 07, broke whole protocol xd
A retro multiplayer shooter. Contribute to AssassinTee/teeworlds development by creating an account on GitHub.
Avatar
Avatar
AssassinTee
I have a question and an Idea: What do you think of removing height and width from the mapper and doing it automatically (adjusting shift/width/height when saving the map/placing tiles)? (edited)
the idea is good but moving the top or left border can break some parts
Avatar
Avatar
Jupstar ✪
Any benchmarks?
I had some other issues with it: the update order!
Avatar
Avatar
Ravie
the idea is good but moving the top or left border can break some parts
for example?
Avatar
any part that relies on some specific floating point behavior like kill edges or freezejumps
Avatar
Avatar
gerdoe
not removing but adding auto-scale
Maybe simple adding an autoscale tool would do just 🤔
Avatar
Avatar
Ravie
any part that relies on some specific floating point behavior like kill edges or freezejumps
this is true, arguments could be made that this is ... bad mapping
Avatar
I agree that it is but it's far too common to ignore
16:18
it's also the reason why our discord bot doesn't automatically resize physics layers
Avatar
I already had the same problem creating an insanely hard jump map
16:20
So, okay, I think the old proposal is out of the window, but here is a new one: adding autoscale and (only) expanding when clicking outside the map borders? (edited)
Avatar
Avatar
Ravie
it's also the reason why our discord bot doesn't automatically resize physics layers
does this also happen when changing the map height/width or only when shifting?
Avatar
it happens when the position of tiles relative to world origin changes
Avatar
so when shifting
Avatar
I think the automatic resizing sounds like a good idea. I think a fine workaround for now would be to be generous with the map size until the map is finished (increasing it a lot whenever you need new space), at which point you optimize it
Avatar
I think this could be done with an additional tool, there is already a tool to remove envelops
16:25
at least the resizeing
Avatar
that's a good idea
Avatar
both of those functionalities are already in the ddnet discordbot
Avatar
it could also warn in a tooltip or something that it can change behavior of some parts
Avatar
(but should probably be in the client at some point)
Avatar
but it doesn't, because the relation to the origin doesn't change?
16:26
just adjusting width and height, not touching shift
Avatar
Avatar
Patiga
both of those functionalities are already in the ddnet discordbot
not all maps are submitted to ddnet and this can still be useful to mappers for other mods
👍 2
Avatar
jupstar would argue, it might, because it's a 1 d array 🤔
Avatar
I don't know what you mean by 'shift'. on $optimize, only the tiles layers are touched. but with the $edit command it can optimize physics layers as well. it can also $edit --extend-<direction> <number> where direction is one of up, down, left, right, to extend all tilemap layers (including physics layers) by the specified amount of tiles. (this does change physics, but this is point of this command)
Avatar
you can offset a layer, (even for half blocks), it can be really usefull
Avatar
you can only do that for entire groups, and not on the game/physics group
Avatar
yes, but you could use that to make file sizes smaller, too
16:31
when the first 20 rows of a tileset are empty, you can remove the first 19 and add a shift instead
16:32
but as @Ravie pointed out, this could change physics
Avatar
ah yes, the tool does exactly that
16:32
but that cannot be done with physics layers and can't affect physics because of that
Avatar
yes, which makes sense
16:32
my point is, that a tool is missing inside the editor
Avatar
physics are affected when you change where the top-left corner of the physics layers is, so if you extend the map upwards or to the left, the physics change
Avatar
Avatar
Anime.pdf
Perfect ide theme found
damn wtf justatest
Avatar
yes, I agree that it would be handy for the client. I could also see if I can make the tool simply more accessible. the $edit command is a pretty direct frontend to the twmap tools
Avatar
Can somebody tell me, where the "remove unused envelopes" tool is hidden on Github? (edited)
Avatar
that one is actually also in the editor now
16:39
top left next to File is a Tools dropdown
Avatar
yes I know, I mean the sourcecode, I hoped it has an entry point for other tools
Avatar
apart from that, the discordbot uses https://gitlab.com/Patiga/twmap/-/tree/master/twmap-tools , in particular twmap-edit
16:40
oh yea I misread your message, oop
Avatar
The popup menu is created by PopupMenuTools
16:40
This shows a confirmation popup and calls RemoveUnusedEnvelopes when confirmed
👍 1
Avatar
Thank you
Avatar
@heinrich5991 you've been talking about a proxy/well split backwards compatibility layer for a while now, how feasible do you think that actually is?
Avatar
I have one for 0.5/0.6
Avatar
While working on the 0.7 bridge I encountered many places where I had a lot of trouble splitting off the compatibility stuff due to the sheer amount of information that is lost as you go down the stack
Avatar
ah, you mean 0.7 is sufficiently different?
Avatar
Avatar
heinrich5991
ah, you mean 0.7 is sufficiently different?
Yeah, especially the things that moved from snaps to netmsgs and vice versa
Avatar
you shouldnt compare 0.6 to 0.7 anyway u should compare whatever we have now with whatever is possible
17:04
and then every single backward compability sucks
Avatar
Avatar
Jupstar ✪
you shouldnt compare 0.6 to 0.7 anyway u should compare whatever we have now with whatever is possible
you're talking about breaking backward compatibility old client → new server, right?
17:05
or also new client → old server?
Avatar
A translation layer between CServer and CGameContext just didn't have enough information to construct the stuff necessary to feed a 0.7 client. I can't imagine it being any easier further down you go. I can't even think how to do it between CServer and CNetwork e.g.
Avatar
yeah why would we need this? even without adding new stuff to network we have so much useless branches to supports some features the client does not support
Avatar
Avatar
Learath2
Yeah, especially the things that moved from snaps to netmsgs and vice versa
these things specifically seem fine if the proxy can keep state
Avatar
Avatar
Jupstar ✪
and then every single backward compability sucks
I'd love to move to a new protocol and keep the backwards compatibility if it doesn't have to have this very invasive approach we currently have
Avatar
why btw, serious question, why?
17:07
name me one game that does this stupidy
Avatar
compatibility with existing content
Avatar
nobody except you wants it
Avatar
I doubt you'd be satisfied if we named one ^^
Avatar
Avatar
heinrich5991
these things specifically seem fine if the proxy can keep state
This was the approach I was going with early on, but it just felt so wrong to double the state
Avatar
i also dont say break it every week
17:08
we could break all clients older than ddnet 16 without any problem today
17:08
and all vanilla clients
17:08
then we can start to see what we can refactor with just that information already
Avatar
tbf you could do that with the proxy approach as well, but you also seem to be against that hypothetical approach
Avatar
Avatar
Jupstar ✪
why btw, serious question, why?
Well, if it's not invasive it doesn't lead to ugly code and it means less drama. Let's be realistic we get a temper tantrum in here everytime we break a decade old version, do you think actually breaking compatibility we'll get people to follow us? They'll just use old versions and host their own
Avatar
hm, probably broken by me or so
Avatar
Avatar
Learath2
Well, if it's not invasive it doesn't lead to ugly code and it means less drama. Let's be realistic we get a temper tantrum in here everytime we break a decade old version, do you think actually breaking compatibility we'll get people to follow us? They'll just use old versions and host their own
see i understand what u mean but someone is always mad, 99% of the players wont care
17:10
what we do is listen to the 1%
Avatar
Avatar
Jupstar ✪
@deen https://ddnet.tw/ down
Fixed
17:11
Well not sure which one of us fixed, I assumed nginx didn't reload after renewing the certificate so I gave it a reload but someone else might have done something too 😄
Avatar
Avatar
Jupstar ✪
what we do is listen to the 1%
The 1% gets very mean, then I feel bad, then I don't sleep well
Avatar
the 1% dont even give bad steam review, bcs they clearly dont use the steam version xDDD
Avatar
Instead they voice their concerns in dms telling you that you are a sea slug for removing their favourite bug
Avatar
Avatar
Learath2
Well not sure which one of us fixed, I assumed nginx didn't reload after renewing the certificate so I gave it a reload but someone else might have done something too 😄
I turned off certificate verification on cloudflare (edited)
17:16
for ddnet.tw
17:16
that probably fixed it
17:16
"fixed"
17:17
IOW someone™ should check why the certificate for ddnet.tw wasn't valid
Avatar
I swear to god certbot is the worst piece of software ever engineered. It's so horrible that I knew it was made in python before I ever checked
17:17
there's acme_tiny.py
17:17
I use it
17:17
it's really good (despite being python?)
Avatar
I put all my money on certbot being stuck on.... something
Avatar
Avatar
heinrich5991
there's acme_tiny.py
I use acme.sh, mostly because that's the one I found first when looking for a certbot alternative
Avatar
A tiny script to issue and renew TLS certs from Let's Encrypt - GitHub - diafygi/acme-tiny: A tiny script to issue and renew TLS certs from Let's Encrypt
Avatar
Ah this one doesn't generate the csrs for you, that's probably why I never bothered
Avatar
exec openssl req -new -sha256 -key domain.key -subj "/" -addext "subjectAltName=DNS:heinrich5991.de,DNS:www.heinrich5991.de,DNS:cd.heinrich5991.de,DNS:grafana.heinrich5991.de,DNS:hc.heinrich5991.de,DNS:kaiser.heinrich5991.de,DNS:teeworlds-friends.heinrich5991.de,DNS:yadam.heinrich5991.de" > domain.csr (edited)
Avatar
It is good that it just does one thing and does it well. I approve 😄
Avatar
not rocket science :p
Avatar
Like just do one thing, is it really so hard?
Avatar
Avatar
Learath2
I swear to god certbot is the worst piece of software ever engineered. It's so horrible that I knew it was made in python before I ever checked
No need to check, just to know you have to use snap to install the current maintained version proves it's shit ad
17:43
Af*
Avatar
I asked chatgpt to create a quadtree c++ template and it did it flawlessly
Avatar
There are lots of implementations of it out there, it shouldn't be that hard 😛
Avatar
might wanna check if it copied some implementation
17:54
due to licensing
Avatar
there are different types of them, if you want one that automatically expands/shrinks itself it's a bit harder 😉
Avatar
I meant hard for the gpt model. It was probably trained on enough implementations of it
Avatar
yeah probably
Avatar
eyo where is the definition ofCNetObj_Character ? (edited)
Avatar
protocol.h
19:04
which is generated
19:04
so idk where the original def comes from
19:04
but for linkage purposes u want that
19:23
Gpt is just a function with a billion parameters
Avatar
Good evening everyone, can you explain what I need to do to remove these errors and successfully complete the compilation?
Avatar
how did you download the ddnet source code?
20:03
did you use the built-in method to clone a git repository?
Avatar
Avatar
heinrich5991
did you use the built-in method to clone a git repository?
No, I just downloaded the repository from github https://github.com/DDNet/DDNet
DDraceNetwork, a free cooperative platformer game. Contribute to ddnet/ddnet development by creating an account on GitHub.
Avatar
Avatar
heinrich5991
♥
Exported 260 message(s)