Guild icon
DDraceNetwork
DDraceNetwork / mapping
Here you can talk about mapping, ask mapping related questions or request new ratings for released maps
Between 2025-01-15 00:00 and 2025-01-16 00:00
Avatar
ChristophR 2025-01-15 03:21
got a question about Time CPs. if I put them into my map do I need to add all 1-25 in one map and second what if you got a skip in your map that would skip a CP. would that be a problem if a tee goes through CP 3 then 6 because of skipping 4 and 5. would it still work or do I need to insert 4 and 5 on the skip also. hope someone can help me
Avatar
All tees has to pass/touch TimeCPs so you need to place them in correct spots, if there is a cheat then either place it after the cheat or before (depending how you distribute your TimeCP). You don't need all 25. Just spread them throughout the whole map evenly until you reach finish.
😊 1
Avatar
if someone skips a time cp they just dont have a time cp for those parts
03:25
you can see an example of this on polarity using ddstats
03:25
Avatar
ChristophR 2025-01-15 03:28
so that means ok first I can do it with less CP got that. and second yes you can skip cps and it would not "crash" the system. if polarity is still working. so you could add cps 1-3 before the skip then on the normal way cp4 and after the skip cp5. and one tee who goes through the shortcut would just get no time for cp4 but it still works after that.
Avatar
yes
Avatar
ChristophR 2025-01-15 03:31
thank you both 🙂
owo 1
Avatar
playing around with gradients
07:59
some really interesting stuff comes out
Avatar
heres some other examples (edited)
poggers 4
Avatar
Avatar
meloƞ
the day ddnet-rs's editor works as planned i'll explicitly use it's editor - i'm hyped about co-op mapping the most
Jupstar ✪ 2025-01-15 08:40
The easiest is if someone tests it out and gives feedback. The network feature is already in ^^
Avatar
Avatar
Jupstar ✪
The easiest is if someone tests it out and gives feedback. The network feature is already in ^^
catseyenebulous 2025-01-15 08:55
:o Excessive use incoming! Who is working on it? (Where do I provide feedback)
Avatar
Avatar
catseyenebulous
:o Excessive use incoming! Who is working on it? (Where do I provide feedback)
Jupstar ✪ 2025-01-15 09:08
Currently only I am working on it. But if someone is using it I might be more motivated to take it more seriously 😄 Feedback can be provided to me directly or create an issue on https://github.com/ddnet/ddnet-rs
Avatar
Avatar
Jupstar ✪
Currently only I am working on it. But if someone is using it I might be more motivated to take it more seriously 😄 Feedback can be provided to me directly or create an issue on https://github.com/ddnet/ddnet-rs
catseyenebulous 2025-01-15 09:11
Great, I’ll try it out when I’m home!
Avatar
Avatar
catseyenebulous
Great, I’ll try it out when I’m home!
I'm home in like 5 hours, hit me up we can test the dual mapping together owo
Avatar
Jupstar ✪ 2025-01-15 10:24
We can't create threads in this channel, can we?
deen_star 2
10:24
^ Gives a very quick tut how to host & join.
10:25
There are lot of small nits you'll find, just saving a map twice I already noticed the file explorer always resets which is a bit annoying. But you can give me all kinds of feedback, even such small things, then we can collect them and fix it.
Avatar
Avatar
meloƞ
I'm home in like 5 hours, hit me up we can test the dual mapping together owo
catseyenebulous 2025-01-15 10:39
Roger that. owo
Avatar
Wait an ingame dual mapping tool?poggers2
Avatar
Jupstar ✪ 2025-01-15 11:21
Sadly no, the ddnet physics are not finished, so I didn't invest time connecting the editor ingame yet. The editor simply fixes smth no other editor fixes: You can zoom out far and modify huge chunks of the map at once
Avatar
Ah okay. But nontheless i would root for a dual/teammapping ingame. Hanging out together, exchanging ideas. Huge motivation boost (edited)
Avatar
https://github.com/ddnet/ddnet/issues/7666 is the first step in smth like that
Not sure how exactly it should look like. I quickly came up with a poc that looks like this NetMessageEx("Sv_ModifyTile", "modify-tile@netmsg.ddnet.org", [ NetIntAny("m_X&q...
Avatar
Avatar
Souly
heres some other examples (edited)
these are awesome
f3 1
Avatar
Avatar
louis
https://github.com/ddnet/ddnet/issues/7666 is the first step in smth like that
Koll Potato 2025-01-15 12:15
ddnet is slowly transforming into minecraft
Avatar
Jupstar ✪ 2025-01-15 12:21
As cool as it sounds, a robust multi user editor is really really not as trivial as it might sound. If one user modifies a layer while a second changes it size you have to cleanly check if all the actions are still valid and do not create out of bounds actions. E.g. I tried to never use any function that can panic in rust, and handle all cases but even now I could not 100% guarantee it's perfect ^^
Avatar
Avatar
louis
https://github.com/ddnet/ddnet/issues/7666 is the first step in smth like that
Jupstar ✪ 2025-01-15 12:23
I guess if you'd split the map into chunks you could update loaded chunks with reliable in-order packets. and if a new chunk is loaded the server must check if e.g. the chunk hash matches. However neither ddnet rendering nor the network is build for this at all
Avatar
Avatar
Jupstar ✪
As cool as it sounds, a robust multi user editor is really really not as trivial as it might sound. If one user modifies a layer while a second changes it size you have to cleanly check if all the actions are still valid and do not create out of bounds actions. E.g. I tried to never use any function that can panic in rust, and handle all cases but even now I could not 100% guarantee it's perfect ^^
ye i can imagine xd
Avatar
i would just lock the entire layer while properties tab is opened by someone
Avatar
Avatar
louis
i would just lock the entire layer while properties tab is opened by someone
Jupstar ✪ 2025-01-15 13:39
Sure, but what if i delete a layer? what if i have a ping of 300 and don't know yet that the layer is locked and my client still sends a modify action. What you suggest is defs nice to give the mappers visually a feedback that the action is not good at that moment, but in code u still have to make sure all actions are properly handled
13:40
I am also interested in the performance on weaker computers. E.g. here i use a tile brush on the game layer with size 4000x1000. And as can be seen I get to the limitations of what is possible with that. Copying and updating the VRAM with so huge buffers is simply not much faster. Even if I could still improve it a bit probably. E.g. i compared it to krita & gimp and they also don't perform much better with huge pixel count. Tho i doubt u ever modify so many tiles at once realistically. But yeah
Avatar
Avatar
Jupstar ✪
Sure, but what if i delete a layer? what if i have a ping of 300 and don't know yet that the layer is locked and my client still sends a modify action. What you suggest is defs nice to give the mappers visually a feedback that the action is not good at that moment, but in code u still have to make sure all actions are properly handled
catseyenebulous 2025-01-15 15:21
What if a layer is locked for others as long as someone is working on it / has it selected?
15:21
@meloƞ Let me know when you are here!
Avatar
Avatar
catseyenebulous
What if a layer is locked for others as long as someone is working on it / has it selected?
Jupstar ✪ 2025-01-15 15:23
Let's do some worst case: You have a massive lag and have no internet for 20 seconds. The other player resized the layer to 1x1 and then closed the window again. Your client doesn't know about it Your lag makes your client think you still have a 4000x4000 layer and you would modify out of bounds because your client simply sends your action after the lag (edited)
🤔 1
15:24
I mean modifying a map is always racy. if two ppl modify the same layer they might overwrite the other's person change
15:25
So a robust implementation is a good start and other features, like locking, can build on top of it
Avatar
Avatar
catseyenebulous
@meloƞ Let me know when you are here!
soon! just need to inhale that godsent of a dürüm
😳 1
Avatar
ok i should be ready in like 10-15 minutes @catseyenebulous
👍 1
15:40
ah shoot i need to set a free port (edited)
Avatar
Avatar
Jupstar ✪
Let's do some worst case: You have a massive lag and have no internet for 20 seconds. The other player resized the layer to 1x1 and then closed the window again. Your client doesn't know about it Your lag makes your client think you still have a 4000x4000 layer and you would modify out of bounds because your client simply sends your action after the lag (edited)
what about asking/recieving data that shows when was the last ping, if it was a long time ago it wont let you do x
Avatar
Avatar
Cammodude
what about asking/recieving data that shows when was the last ping, if it was a long time ago it wont let you do x
Jupstar ✪ 2025-01-15 15:46
You can also break down this worst case to only 1 second if someone has fast fingers 😬
Avatar
well its adjustable
15:47
send many pings, or send only a few
15:47
i dont know enough networking to guess how it should be done
Avatar
Jupstar ✪ 2025-01-15 15:48
In any way, my point is simply that it's super hard to rely on concepts like locking
Avatar
or both clients can have a local copy, if someone regains connection the copies are compared and depending on the changes they go trough or are stopped
Avatar
Jupstar ✪ 2025-01-15 15:48
Realistically you have to deal with actions that are not valid
Avatar
Avatar
Cammodude
or both clients can have a local copy, if someone regains connection the copies are compared and depending on the changes they go trough or are stopped
Jupstar ✪ 2025-01-15 15:48
That is not trivially either, esp. with bigger maps
Avatar
not individual tiles
15:49
but for big actions like resizing a layer
15:50
obviously the best solution would probably be a combination of all of this
Avatar
does it not have a single ground truth server/map hoster?
Avatar
Jupstar ✪ 2025-01-15 15:59
yes, but if the client says: modify the tiles with offset (x,y) - (w,h) what should that server do?
15:59
just apply the action ?
15:59
Without networking I'd say yes.. bcs the action is not invalid
16:00
but with networking u suddenly have delays and stuff
Avatar
i mean its not trivial but its not difficult either to dictate what happens, maybe annoying to code
Avatar
Jupstar ✪ 2025-01-15 16:01
just look how often i used anyhow::ensure! or ok_or https://github.com/ddnet/ddnet-rs/blob/52a494858080ae83c0229a91a074edaab87b9a10/game/editor/src/action_logic.rs#L571-L1998 Because I had to make sure all actions are never doing out of bounds stuff that would crash the editor (edited)
16:02
a normal editor would never do most of these
Avatar
Avatar
louis
i mean its not trivial but its not difficult either to dictate what happens, maybe annoying to code
Jupstar ✪ 2025-01-15 16:03
It's simply easy to miss a case
16:03
and that single case could lead to a crash
Avatar
Jupstar ✪ 2025-01-15 16:03
It's not hard in a sense that u need super math understandings or similar
16:03
it's just tedious
Avatar
ya i agree
Avatar
@catseyenebulous ok we can go now - how we do dis
Avatar
Jupstar ✪ 2025-01-15 16:05
make a timer how long it takes until u broke the editor
16:05
😬
Avatar
Avatar
Jupstar ✪
make a timer how long it takes until u broke the editor
xd
Avatar
Avatar
Jupstar ✪
make a timer how long it takes until u broke the editor
catseyenebulous 2025-01-15 16:06
10sec.
Avatar
Avatar
meloƞ
@catseyenebulous ok we can go now - how we do dis
catseyenebulous 2025-01-15 16:06
Dunno. :o
Avatar
meet me in my dm's! peepoCute
owo 1
Avatar
Jupstar ✪ 2025-01-15 16:10
i defs want to know what happens if one person resizes while the other modifies heavily now lol
16:10
now that we talked about it for 2h
justatest 1
Avatar
Avatar
Jupstar ✪
make a timer how long it takes until u broke the editor
12 seconds after selecting a tile and placing it down btw
kek 1
Avatar
Avatar
meloƞ
12 seconds after selecting a tile and placing it down btw
Jupstar ✪ 2025-01-15 16:14
no way
16:15
Where is the livestream
Avatar
true 1 sec
Avatar
Jupstar ✪ 2025-01-15 16:18
eypyc mapper moment
Avatar
why do you have a gun
Avatar
catseyenebulous 2025-01-15 16:29
@Jupstar ✪ Please tell @meloƞ to let me in. c:
Avatar
Could someone link the data ddnet discord thingy for mapres and stuff
Avatar
catseyenebulous 2025-01-15 18:32
@Jupstar ✪ Awesome work! I had a lot of fun and it's already pretty useful. Thanks a lot! heartw
🌟 1
Avatar
i enjoyed every second of it - @Jupstar ✪ my 🐐
Avatar
Jupstar ✪ 2025-01-15 18:41
but it's not even as finished as the web editor tho xD
Avatar
when the todo's are done - i'd consider the editor to be 80% done
Avatar
Jupstar ✪ 2025-01-15 18:42
auto mapper is defs the biggest missing part 😄
Avatar
Avatar
Jupstar ✪
auto mapper is defs the biggest missing part 😄
@Hecta did a "rework" of this system in c++ - so maybe if you two exchange it's not to far away owo
Avatar
its not even close to done yet nouis
18:44
and its not even a rework, its a content update
Avatar
Jupstar ✪ 2025-01-15 19:55
CHANGELOG: - CTRL + S to save added Normal ppl: wooow /s @meloƞ : LET'S FCKING GO (edited)
poggers2 2
WW 1
Avatar
LETSFUCKINGGGOOOOOOOOOOOOOOK
20:01
AquaTriggered AquaTriggered AquaTriggered
Avatar
chillerdragon BOT 2025-01-15 20:02
ctrl+s goated
20:02
I press it twice a minute
Avatar
Avatar
chillerdragon
I press it twice a minute
catseyenebulous 2025-01-15 20:16
So relatable. :D
Avatar
Im 'corneum 2025-01-15 21:03
i made a dummy version of hardcore 2
21:04
used the original and solo version as help
Exported 101 message(s)
Timezone: UTC+0