Guild icon
DDraceNetwork
Development / developer
Development discussion. Logged to https://ddnet.tw/irclogs/ Connected with DDNet's IRC channel, Matrix room and GitHub repositories — IRC: #ddnet on Quakenet | Matrix: #ddnet-developer:matrix.org GitHub: https://github.com/ddnet
Between 2022-07-15 00:00:00Z and 2022-07-16 00:00:00Z
Avatar
little idea I had, still needs a bit of work but is it something we'd wanna add?
Avatar
Avatar
Ravie
little idea I had, still needs a bit of work but is it something we'd wanna add?
would be nice for midground scaling
Avatar
Avatar
bluesky
@ The Windows Users, what IDE are you all using for C/C++ ? (edited)
eclipse best
f4 1
Avatar
Avatar
Ravie
little idea I had, still needs a bit of work but is it something we'd wanna add?
yes please
Avatar
i use visual studio / microsoft compiler on windows. i use visual studio just for building. vscode for coding. with the c++ extensions pack by microsoft. which is actually only available in the microsoft branded version of vs code i think. i also tried to build ddnet with mingw in msys or in wsl or i tried the cmake gui, but didn't make the cmake gui work. but with visual studio it's just one click. i don't care about the bloat xd
02:06
aaand: that said, i actually am eager to use mingw / vim / neovim / any open source setup instead of vscode. and also not use electron.
02:10
the one thing that i not get done is accessing files in a big projcet with vim. in ides you simply have a file tree. or ctrl + p. but in vim i open files from terminal. i know there is nerdtree, which maybe could be useful. or fzf. but i kind of feel lost with only vim in a big code base. but i feel lost in a big ide with ten menus in the top bar with 20 undermenus xd 😅
Avatar
Avatar
cauldron
i use visual studio / microsoft compiler on windows. i use visual studio just for building. vscode for coding. with the c++ extensions pack by microsoft. which is actually only available in the microsoft branded version of vs code i think. i also tried to build ddnet with mingw in msys or in wsl or i tried the cmake gui, but didn't make the cmake gui work. but with visual studio it's just one click. i don't care about the bloat xd
thats alot of information
02:15
thanks for the answer
02:16
i heard of all that stuff but never used it
02:17
i guess i will stick with VS for now since i mainly use windows. I will try the other Editors at some point (edited)
02:18
=))))
02:18
VS is just a great all-in-one solution
Avatar
i agree
Avatar
Is this how ENTTYPE_LASER works? Or is every laser just the same and is server-sided only when it comes to difference between lasers?
Avatar
Avatar
Voxel
Is this how ENTTYPE_LASER works? Or is every laser just the same and is server-sided only when it comes to difference between lasers?
Mʎɹ シ 2022-07-15 04:15:22Z
Every laser is same, but on server side it have different functions
Avatar
Is there a way for the client to communicate with the server to determine which laser is which?
Avatar
Avatar
Voxel
Is there a way for the client to communicate with the server to determine which laser is which?
you mean vice versa? for the purposes of differentiating them i imagine
Avatar
Avatar
lynn
you mean vice versa? for the purposes of differentiating them i imagine
Yea
Avatar
i suppose it could be done in tandem with different settings for the colors. could create a github issue for it
05:34
i assume you mean the desire to change the color per type
Avatar
Yeah. The plan in my head is there for there to be 3 or 4 different types: Rifle, Shotgun and Game/Freeze
Avatar
Avatar
Voxel
Is this how ENTTYPE_LASER works? Or is every laser just the same and is server-sided only when it comes to difference between lasers?
vanilla compat stuff
Avatar
Avatar
cauldron
i use visual studio / microsoft compiler on windows. i use visual studio just for building. vscode for coding. with the c++ extensions pack by microsoft. which is actually only available in the microsoft branded version of vs code i think. i also tried to build ddnet with mingw in msys or in wsl or i tried the cmake gui, but didn't make the cmake gui work. but with visual studio it's just one click. i don't care about the bloat xd
You can get the extension pack in codium by using the microsoft store btw
Avatar
Avatar
cauldron
the one thing that i not get done is accessing files in a big projcet with vim. in ides you simply have a file tree. or ctrl + p. but in vim i open files from terminal. i know there is nerdtree, which maybe could be useful. or fzf. but i kind of feel lost with only vim in a big code base. but i feel lost in a big ide with ten menus in the top bar with 20 undermenus xd 😅
There is also the command-t plugin for vim, which is basically ctrl-p from other editors
Avatar
Avatar
Voxel
Is there a way for the client to communicate with the server to determine which laser is which?
You'd have to come up with that one. One could maybe try to sneak a entity subtype or atleast a laser subtype somewhere like we snuck the owner and flags into projectiles
Avatar
Avatar
Voxel
Is there a way for the client to communicate with the server to determine which laser is which?
yes, thats what EntityEx is for
Avatar
Avatar
Learath2
You'd have to come up with that one. One could maybe try to sneak a entity subtype or atleast a laser subtype somewhere like we snuck the owner and flags into projectiles
no. and please not more of this. never again.
Avatar
Ah we do have a proper way now, forgot we added that
Avatar
Can one fix the projectiles btw
Avatar
Wym by fix?
Avatar
Its sad that I can not use them properly due to the fact that high velocity makes the client think its a packed one and therefore its completely broken
Avatar
Hm, I thought the extended flag was high enough that you'd never really want a projectile that fast
Avatar
Avatar
fokkonaut
Its sad that I can not use them properly due to the fact that high velocity makes the client think its a packed one and therefore its completely broken
wym with packed (edited)
Avatar
I thought so too, but it happes due to the way I use projectiles to fake them, with faked velocities in order to have them stable and be shown good on the client. For prediction.
Avatar
Avatar
bluesky
wym with packed (edited)
There is extra info packed into the normal data fields, which the client will use if a specific flag is activated
Avatar
okay what would be an example for the extra data
10:27
well the code overall is pretty divers and a few comments that say "do this better and nicer" and "todo" and such so yeah there is still alot to optimise 😄
10:28
but i dont wanna touch those until i am more familiar with the whole codebase (edited)
10:29
i started 2 weeks ago or so
10:30
oh well no, not even 2 weeks XD
10:31
this channel is a good place to learn, i love it
Avatar
More like this chanbel is the only place to learn justatest
Avatar
Avatar
Ryozuki
More like this chanbel is the only place to learn justatest
there are also indian tutorials on YT
Avatar
About ddnet?
Avatar
probably
Avatar
Avatar
Ryozuki
More like this chanbel is the only place to learn justatest
i dont talk about ddrace specifically. i mean dev in general (edited)
Avatar
Avatar
cauldron
the one thing that i not get done is accessing files in a big projcet with vim. in ides you simply have a file tree. or ctrl + p. but in vim i open files from terminal. i know there is nerdtree, which maybe could be useful. or fzf. but i kind of feel lost with only vim in a big code base. but i feel lost in a big ide with ten menus in the top bar with 20 undermenus xd 😅
Vim has a ctrl p plugin to search files
10:35
Using fzf
10:36
My neovim uses fzf + fd (made in rust, faster)
10:37
And it previews files, highlighted with bat (made in rust too, like cat)
10:37
Its probs way faster
Avatar
@Ryozuki are you coding on linux?
10:38
Ofc
Avatar
yo guys, did u remove cl_show_quads on last nightly?
Avatar
Im not a masochist
Avatar
Avatar
Ryozuki
Im not a masochist
well true except if you mainly develop .net apps
Avatar
Avatar
szaro
yo guys, did u remove cl_show_quads on last nightly?
They didnt follow their own rules about not renaming options for no reason, because players would be confused, so its cl_showquads now.
10:40
DDNet people do many things that they wouldnt allow for others, they mostly just do things out of the moment :)
Avatar
Yes yes go take ur childish grudge elsewhere
Avatar
Ok boomer
Avatar
Avatar
szaro
yo guys, did u remove cl_show_quads on last nightly?
To reenable quads for everyone who accidentally disabled it or has the bind to accidentally disable them Checklist Tested the change ingame Provided screenshots if it is a visual change Tested...
Avatar
Avatar
bluesky
well true except if you mainly develop .net apps
Mono isn't too horrible nowadays
Avatar
Avatar
Learath2
Mono isn't too horrible nowadays
mono is great
Avatar
But yes, if I had to develop .net apps all the time, I would also be on windows
happy 1
Avatar
Avatar
fokkonaut
They didnt follow their own rules about not renaming options for no reason, because players would be confused, so its cl_showquads now.
It's not for no reason, it was to reset it. Ideally we'd have another way to do that, but we don't
Avatar
why was the bind not removed then
11:08
xd
Avatar
Avatar
fokkonaut
why was the bind not removed then
i mean people still use it, it was just a reset for everyone
11:10
"To reenable quads for everyone who accidentally disabled it or has the bind to accidentally disable them" def-
Avatar
yea, "or has the bind to accidentally disable them"
Avatar
i dont know people with a bind for that
Avatar
Wasnt there a standard bind for it?
11:11
Well idk, for me it seems useless to reset it
Avatar
[quakenet] Konsti BOT 2022-07-15 11:26:03Z
how can i unbind ctrl+mouse2
11:26
in editor it makes me swap from game layer to some design layer always and its super annoying
Avatar
Avatar
fokkonaut
Wasnt there a standard bind for it?
i think pagedown maybe
Avatar
Avatar
szaro
yo guys, did u remove cl_show_quads on last nightly?
renamed to cl_showquads. Why do you use it?
Avatar
Avatar
fokkonaut
DDNet people do many things that they wouldnt allow for others, they mostly just do things out of the moment :)
How about asking for the reason instead of assuming the worst?
12:01
I keep getting bug reports where people accidentally turned off quads and didn‘t realize what happened. This fixes it for them while still allowing people who have a use case for quads off to use it
Avatar
But how can this fix it long term? The same thing will happen again
12:08
especially if we dont remove the default bind (as i said idk if it stil lexists)
Avatar
Avatar
deen
renamed to cl_showquads. Why do you use it?
it's on pagedown by default and i sometimes use it when i want to play with textures but dont want the background to distract me as much
Avatar
[quakenet] Konsti BOT 2022-07-15 12:26:10Z
i think there are not that less people using it. But since u can easily adapt your entities and background to make any map look like u want it may exstinct
Avatar
Avatar
fokkonaut
But how can this fix it long term? The same thing will happen again
No, we don't have the bind anymore by default
12:29
The problem was that before we had a default bind for it, so people would just randomly click it. This is the only way to remove a bind from everyone's config
Avatar
Avatar
szaro
it's on pagedown by default and i sometimes use it when i want to play with textures but dont want the background to distract me as much
Fair enough, but some maps use quads for game relevant stuff
Avatar
I have my own quad bind and one for high details, its really good to be able to have "different themes" depending on which map and design, cause some maps cant be played in entities, when there are just insanely many tiles, or the old hookthrough i specific places, then i prefer to play without and turn off quads or so, depending on how ugly or unplayable the real design is
Avatar
I really want to do something about default configs. Maybe we could only save ones that are different from the default instead of all settings? People getting stuck with old settings is so annoying
Avatar
isnt that the case already? at least i somehow thought so
Avatar
No, the client will save the entire set of settings, so you'll get stuck with old defaults
Avatar
Ah, well idk but this wouldnt have fixed this issue anyways
Avatar
Maybe something over info.ddnet.tw?
Avatar
Something like a config update pushed over the network. Each update could have a serial and the config serial would be bumped after each update. That way after a config update gets pushed out people can still change it back and it wouldnt get overridden
Avatar
then we could also rename configs without problems, when the new info gets fetched the client could set the new config to the old value
12:39
(optional, of course not in cases like this, but in general)
Avatar
Yep, that could also be achieved, some sort of OTA update capability and not saving defaults might be nice
Avatar
[quakenet] Konsti BOT 2022-07-15 12:43:17Z
haha deen i remember when Cloudly died in Lava at Lockdown tournament and went really mad because it was invisible without quads
Avatar
Avatar
Learath2
Yep, that could also be achieved, some sort of OTA update capability and not saving defaults might be nice
agree
Avatar
[quakenet] Konsti BOT 2022-07-15 12:44:16Z
but yeah, some old maps have looping kill tiles for example, u wont see them. Wont happen in new maps because people will be told to put some marking below the quad
Avatar
Avatar
[quakenet] Konsti
haha deen i remember when Cloudly died in Lava at Lockdown tournament and went really mad because it was invisible without quads
I have a speedup made of moving quads on my server, which is pointing downwards, and for people without quads on I placed a tile layer behind the background because that is also not shown when quads are off, so that they can see tile layer speedups on that spot
12:44
testers should look for stuff like that and especially point that out and force stuff like this
Avatar
[quakenet] Konsti BOT 2022-07-15 12:45:20Z
yes they do. Lockdown was released due some mafious structures :justatest:
Avatar
ah ye
12:45
do they do nowadays?
Avatar
[quakenet] Konsti BOT 2022-07-15 12:46:19Z
of course. We already had the case. its also possible to animate tiles without quads
Avatar
i know, but not moving, just color
Avatar
How is intels website so bad with some of the best engineers on earth??
Avatar
Avatar
Ryozuki
Vim has a ctrl p plugin to search files
i know i also have fd and fzf. but i need a visual filetree maybe to see the project. im not good at having all my vim plugins in place. i actually try to avoid them like oh-my-zsh or vim plug. maybe i can make it work with a single neovim config. i lately put visual representation for tabs and spaces and always have spaces. i like this and its only a setting. maybe there is a way to make vim/nvim show the tree of the root folder of the git repo you're in right now. without plugin. arent there panes? so have a 10 or 20 % pane on the left with nvim showing the filetree without distracting by accidently entering into this pane. i like this idea i try it
15:08
i mean why plugins, mostly you can get similar functionality without by configuring, at least try
15:10
i want to.try
Avatar
U dont need file trees honestly
15:11
I also thought like that
15:12
Before becoming :based:
15:12
Stupid mobile
15:12
PES2_BasedGe
Avatar
Avatar
Learath2
How is intels website so bad with some of the best engineers on earth??
all the budget goes into chip making?
Avatar
It's absolutely bizarre how shit this website is. How hard is it to code a login page?
Avatar
Their licensing system for the FPGA software is so horrible. This is the reason I hate proprietary software. They can't even do it properly
Avatar
what you doing with FPGA and VHDL?
Avatar
[quakenet] ChillerDragon BOT 2022-07-15 15:20:24Z
Konsti: pink rat
Avatar
Avatar
Chairn
what you doing with FPGA and VHDL?
uni course on computer architecture has a bit of lab work involving fpgas
15:21
not absolutely necessary but I've always been interested
15:22
I already hate it thanks to intel
Avatar
i've never used any intel stuff for fpga
15:26
or did they completely incorporated altera stuff into intel website?
Avatar
I think intel did acquire all of altera and merge it into their own site
15:27
it's now intel quartus and intel questa
Avatar
I spent an hour trying to simulate a design to no avail, until I found some random stackoverflow post where a guy suggested adding -voptargs="+acc" without any explanation, added it works perfectly
16:21
Isn't proprietary software like this supposed to be documented oh so better than open source hypervomit software?
Avatar
In general, i use -novopt
16:24
slightly slower, but should be more robust
Avatar
I was using that too, but -novopt option is now deprecated and will be removed in future releases.
Avatar
funnily enough -novopt is actually the default still in quartus, so if you just open a waveform and click simulate it just won't work
16:25
and you are left wondering for an entire hour what went wrong
16:25
How do 2 pieces of software shipped by the same company, possibly charging thousands for a proper license not work together perfectly
Avatar
you need the extra support license for only 10k$ 🙂
16:27
that's why companies usually lag a few years behind on production software
Avatar
If I was paying 10k$ and I got errors while simulating a full adder I'd be furious 😄
Avatar
during my phd, we were using version from 2010
16:27
worked fine
Avatar
But finally, my 5 bit adder can be simulated
16:32
Ngl I'm a little disappointed, when I heard the class and the material were based on a 7gb proprietary editor I was a little irked but I was happy atleast it'd all justwork(tm) and I could focus on doing things rather than setting up things
16:33
I spent an hour trying to get it to install, another hour trying to license it and another hour digging in awful documentation trying to find what they replaced that one deprecated option with only to find it on stackoverflow
Avatar
Avatar
Learath2
But finally, my 5 bit adder can be simulated
gg next step is now sequential logic
16:37
then you can reimplement ddnet in vhdl 😄
16:37
with VGA output
Avatar
I was really excited for it when I started yesterday but now I'm just a little exhausted
16:38
I was going to make both a CLA and a sequential adder
Avatar
how come you have classes in summer?
16:38
sequential adder is kinda useless
Avatar
Avatar
Chairn
how come you have classes in summer?
I don't, I'm the laziest person on the face of earth, so I didn't study when I was supposed to
Avatar
Now I need to learn all the material everyone else learned over 4 months, in 1 month
16:39
The only saving grace is that I already know a lot of the basics unlike the people taking the class
16:40
I can also skip the part they learn some motorola 68k assembly, I'm already familiar with the ISA
Avatar
did you learn about propagation delay yet? (edited)
16:42
Not as part of this class though, I learned about some of this content 5 years back when I was building an 8bit cpu on a breadboard
16:43
Obviously inspired by that video series on youtube by ben eater 😄
16:43
Avatar
lol, crazy guy 😄
Avatar
it's actually surprisingly fun to make and you learn a lot along the wya
16:46
way*
16:48
Actually, I think the first time I encountered propagation delay was probably in minecraft. The lack of propagation delay there made some interesting circuits possible
16:51
both server and client
Avatar
want me to check it out or did you already figure it out?
Avatar
i didn't figure it out
16:53
i guess that somehow, a size is implied somewhere
16:54
this is client backtrace: #0 0x7b7e05 in CLayers::InitTilemapSkip() /nobackup/opt/ddnet/clangbuild/../src/game/layers.cpp:191:11 #1 0x7b98f4 in CLayers::InitBackground(IMap*) /nobackup/opt/ddnet/clangbuild/../src/game/layers.cpp:167:2 #2 0x1361a8f in CMenuBackground::LoadMenuBackground(bool, bool) /nobackup/opt/ddnet/clangbuild/../src/game/client/components/menu_background.cpp:267:15 #3 0x135e576 in CMenuBackground::OnInit() /nobackup/opt/ddnet/clangbuild/../src/game/client/components/menu_background.cpp:50:3 #4 0x17daa6e in CGameClient::OnInit() /nobackup/opt/ddnet/clangbuild/../src/game/client/gameclient.cpp:265:15 #5 0xcee84a in CClient::Run() /nobackup/opt/ddnet/clangbuild/../src/engine/client/client.cpp:3143:16
Avatar
..., i thought this linking issue thing was removed?
16:55
and server backtrace: .#0 0x79ae55 in CLayers::InitTilemapSkip() /nobackup/opt/ddnet/clangbuild/../src/game/layers.cpp:191:11 .#1 0x799cb6 in CLayers::Init(IKernel*) /nobackup/opt/ddnet/clangbuild/../src/game/layers.cpp:115:2 .#2 0xb37697 in CGameContext::OnInit() /nobackup/opt/ddnet/clangbuild/../src/game/server/gamecontext.cpp:3210:11 .#3 0x86b7fe in CServer::Run() /nobackup/opt/ddnet/clangbuild/../src/engine/server/server.cpp:2631:16
Avatar
lol the first github issue has tons of unintentional references (edited)
Avatar
meh, I thought that was fixed :/
16:57
@Chairn those look like parts of the map format btw, I can see that breaking things actually
16:58
a vector4_base<int> probably wouldn't break
Avatar
it was int before, but colors are actually unsigned chars so i thought reducing memory footprint
16:59
but yeah you're right, it's probably due to map files hence both crash
Avatar
Avatar
Chairn
it was int before, but colors are actually unsigned chars so i thought reducing memory footprint
We probably use that CColor directly as is inside the map format :/
Avatar
const char * const CSkins::ms_apColorComponents[NUM_COLOR_COMPONENTS] = {"hue", "sat", "lgt", "alp"};
18:06
why would you use the modifier two times in C++ code? (general question) (edited)
Avatar
first const if for the pointed data
18:06
second const if for the pointer itself
18:07
thx
18:09
you can override a const pointer, so why would you still use the modifier const infront of it ? (edited)
Avatar
it is a member variable which gets set here
Avatar
example: const CSkin::SSkinTextures *pSkinTextures = pInfo->m_CustomColoredSkin ? &pInfo->m_ColorableRenderSkin : &pInfo->m_OriginalRenderSkin; render.cpp
Avatar
const char *data --> data is immutable but may point to wherever you want
18:12
const char * const data --> data is immutable and the pointer cannot point to anywhere else
✅ 1
Avatar
thanks^_^
Avatar
Avatar
Chairn
const char *data --> data is immutable but may point to wherever you want
sry i still got a question
Avatar
Avatar
Chairn
const char *data --> data is immutable but may point to wherever you want
in what sense is a non const * less "immutable" than a const *
Avatar
in the first case, you can assign to whatever you want: data = &otherdata;
18:15
in the second, you cant
18:16
or i don't get your question?
Avatar
like even another type
Avatar
Avatar
Chairn
or i don't get your question?
nah, i am just bad at explaining sry const CSkin::SSkinTextures *pSkinTextures CSkin::SSkinTextures *pSkinTextures (edited)
18:16
i can do the same thing with both
Avatar
no, first case you cannot modify the pointed data
Avatar
do you mean i can assign whatever i want to the latter, even another type?
Avatar
Avatar
Chairn
no, first case you cannot modify the pointed data
ay wait, discord removed the * for the pointer OOOOOOOOOOOOOF
Avatar
for instance, you cant do: c++ const char* pData = &otherdata; str_format(pData, "%s", "abcdef");
18:18
because pData points to const data
18:18
but you can do:
Avatar
Jupstar ✪ 2022-07-15 18:18:47Z
c++ char aBuf[] = { 'a', 'b', 'c' }; const char* p1 = aBuf; p1[0] = 'z'; // <-- error char* p2 = aBuf; p2[0] = 'z'; // <-- no error (edited)
18:20
however you are right too i think
18:20
if u do it with a struct you can copy it into a non const ptr
18:23
example c++ struct a { int* p; }; struct a tmp; const a *pPtr = &tmp; int* pPtrModify = pPtr->p; *pPtrModify = 1; will probably work
18:23
bcs you aren't modifying the struct
18:23
just what it points to
18:26
Looks all weird to me
18:26
but i kinda get it
Avatar
Avatar
Jupstar ✪
c++ char aBuf[] = { 'a', 'b', 'c' }; const char* p1 = aBuf; p1[0] = 'z'; // <-- error char* p2 = aBuf; p2[0] = 'z'; // <-- no error (edited)
this makes sense to me
18:27
OKAY I GET IT NOW
Avatar
Something that helped me understand consts: const X is actually syntactic sugar for X const, meaning const is usually on the right of what it qualifies. and const char * const is the same as char const * const, const std::string& is the same as std::string const&…
Avatar
I think now understand it: You can change where it points to but you cant modifie individual member values Am i on the right path? @Jupstar ✪ @Chairn (edited)
Avatar
that way you can better see whether it's the char part or the * part which is const
Avatar
Avatar
k2d222
Something that helped me understand consts: const X is actually syntactic sugar for X const, meaning const is usually on the right of what it qualifies. and const char * const is the same as char const * const, const std::string& is the same as std::string const&…
you mean my last question i guess. i understood that already. Thanks tho!happy (edited)
Avatar
Avatar
bluesky
I think now understand it: You can change where it points to but you cant modifie individual member values Am i on the right path? @Jupstar ✪ @Chairn (edited)
Jupstar ✪ 2022-07-15 18:31:13Z
yes
brownbear 1
Avatar
Avatar
Learath2
I really want to do something about default configs. Maybe we could only save ones that are different from the default instead of all settings? People getting stuck with old settings is so annoying
we only save those that are different from default
18:43
but that's not a good solution either
18:43
that makes changing config defaults bad if we don't want to change it for existing configs
18:43
we should always save all configs, and make explicit migrations
Avatar
Avatar
heinrich5991
we only save those that are different from default
Are you sure? We did discuss it but I don’t remember it getting implemented
Avatar
yes, sure
18:44
we have a discussion about it when we change config defaults
18:44
because suddenly that's something to discuss, because it changes existing players' configs
Avatar
Avatar
heinrich5991
that makes changing config defaults bad if we don't want to change it for existing configs
Hm, I can’t imagine not wanting to change configs for players that haven’t touched them
18:45
We do want everyone on what we think is the sane default unless they explicitly opt out, no?
Avatar
it's unclear if they have touched it or not
18:45
they just changed it to default again or not
18:45
think e.g. default fullscreen setting
18:45
I'm sure most people set it to what they prefer
18:45
if we change it, it'll change for everyone who was on the old default
18:46
that's really annoying (edited)
Avatar
That’s a small issue, no? They can just change it back. It’s desirable that everyone who doesn’t care ends up with good defaults
Avatar
Avatar
heinrich5991
we should always save all configs, and make explicit migrations
you achieve that with this ^
18:47
but without the downsides
18:47
check the discussions where we change defaults
Avatar
Avatar
Learath2
That’s a small issue, no? They can just change it back. It’s desirable that everyone who doesn’t care ends up with good defaults
Jupstar ✪ 2022-07-15 18:47:51Z
even tho i agree, the defaults on many linux apps suck xDD
Avatar
Avatar
heinrich5991
you achieve that with this ^
Does that really fix it? If we change a default and make a migration for it, the people who would be annoyed by the default change will get annoyed
Avatar
it somewhat fixes it because we can then explicitly decide whether to change existing players config
18:48
for something like fullscreen, that'd probably be a "no, don't change"
Avatar
Hm, but that doesn’t help with the people that don’t care getting good defaults. We make a migration it’ll migrate everyone
18:53
Say we want to make vulkan default, we push a migration for it, konsti gets annoyed because he really wants opengl 1.4 for whatever reason
Avatar
I guess with that approach, we could even let people opt out of config migrations?
Avatar
Avatar
fokkonaut
yes, thats what EntityEx is for
that's one step closer to what I'm searching for! Now all I need to figure out is how Rifles and Shotguns connect into the equation!
Avatar
wym?
Avatar
My plan is to have make something like this. Doors and Freeze Lasers will also have their own color(s), but my main focus is making it so that the ability for different colored lasers is possible.
20:21
i was also thonking of different laser colors in fng for different teams
Avatar
Avatar
cauldron
i was also thonking of different laser colors in fng for different teams
that would be fun, but i would have to figure how to do use teams in this
Avatar
its not gonna happen.i think
20:26
its server feature i believe
Avatar
i mean this exists
Avatar
ill check, or maybe someone here knows
Avatar
Maybe I'm thinking about this whole thing wrong. What if instead of focusing on specifics, I could just create 4 abstract "modes" with laser colors. Given the names will be the same, it would save the hassle of trying to loop around what is what. And instead call for a mode when it's needed by one laser.
Avatar
you mean make all laser brown when shotgun is selected? then other people with real laser would shoot brown laser too
Avatar
Avatar
Voxel
My plan is to have make something like this. Doors and Freeze Lasers will also have their own color(s), but my main focus is making it so that the ability for different colored lasers is possible.
nice
Avatar
Avatar
cauldron
you mean make all laser brown when shotgun is selected? then other people with real laser would shoot brown laser too
does the server not recognize other people's weapons?
Avatar
Avatar
Voxel
Maybe I'm thinking about this whole thing wrong. What if instead of focusing on specifics, I could just create 4 abstract "modes" with laser colors. Given the names will be the same, it would save the hassle of trying to loop around what is what. And instead call for a mode when it's needed by one laser.
I think best is if we do this in a kinda mod friendly way. Either, we choose the color based on the entity type (shotgun, rifle, door, freeze wall), or a separated thing to tell the color.
20:33
You dont have to struggle with weapon holding or whatever
Avatar
I was thinking the first thing, but if the second is more reccomended, then i could go with that (edited)
Avatar
It'll probably be the first thing
Avatar
Idk the best way to do it, but we should probably try to make it in a way that provides some prediction information too so it's not completely wasting bandwidth just for visual stuff
Avatar
not really a waste if it creates different visuals, but I agree that having prediction information is nice, too
Avatar
Huh, EntityEx is surprisingly rigid wtf
Avatar
How did we get it so wrong with such a recent addition? 😦
Avatar
thats what im wondering every time, these kinda things just get merged
20:37
and i always get told to check explicitly and to talk before and so on
Avatar
Avatar
fokkonaut
thats what im wondering every time, these kinda things just get merged
I remember we talked hours about EntityEx
Avatar
but not enough :d
20:37
and: we talked about it when it was too late already (?)
Avatar
I'm sure we must have been thinking something when we accepted such a generic name for something that looks so rigid
Avatar
Also the way it works is not really nice.
20:39
It creates a separate snap object for each entity
Avatar
after all you can.do anything client side (edited)
Avatar
#4236
Avatar
An attempt to fix #4233. The problem was (as guessed) that the contains a very large number of laser doors, which each has an EntityEx. Calling SnapFindItem (which does a linear search) for each on...
Avatar
EntityEx seems to be about static entities in the map(?)
Avatar
@Learath2 doesnt change anything about my sentence
Avatar
#4176 actually
Avatar
Adds the prediction for pickups and projectiles (based on #4108) For blinking entities (deactivated by switch) I also used the extended info to make the blinking effect happen client-side. So inste...
Avatar
Avatar
fokkonaut
It creates a separate snap object for each entity
this is desired imo
Avatar
Well... Its okay in general, if we had extended snapshots
Avatar
extended = larger?
Avatar
@heinrich5991 hm, that does seem to be the case. Should have been names StaticEntityEx
Avatar
you can rename it @Learath2
Avatar
Avatar
heinrich5991
extended = larger?
I was thinking a SNAP_MORE where we can put the overflow instead of dropping it
20:42
We can't have variable sized stuff in the snap, can we?
Avatar
I haven't investigated, but we recently merged some changes that allowed incomplete snap objects by filling some defaults. This mechanism should be made explicit: Mark the fields that are optional and that are automatically filled.
Avatar
@Learath2 hm, I'm not sure if our snap diffing works for an object that changes size
20:44
but I think it could be made to work
Avatar
Now that I think about it, there is no harm in introducing new extended types, right? we are not constrained on space that way
Avatar
we are not constrained in any way (edited)
Avatar
We don't need this to be very generic, we can just have a DDNetLaser like we have a DDNetProjectile
Avatar
Avatar
heinrich5991
we are not constrained in any way (edited)
We are a little tight on snap space, some of the larger maps were having issues before we started clipping more aggressively because of the sheer amount of EntityEx's
Avatar
Avatar
Learath2
We don't need this to be very generic, we can just have a DDNetLaser like we have a DDNetProjectile
I think all of this would make it too complicated no?
Avatar
On the contrary, I thought it'd be simpler than a more generic DynEntityEx for entities that are spawned at runtime
20:49
i have the feeling we can soon simply create a new Snap function called SnapDDNet()
Avatar
We can have a NetInt or NetEnum for laser type so we can get prediction information, and we can have a NetInt for color
20:50
we rename the old one to LegacySnap
Avatar
and thanks to recent work our clients can handle netobjects getting larger
Avatar
for older clients + 0.7
Avatar
Trying to split that up leads to the same issues I've had while trying to keep the 0.7 compatibility stuff split. As you go down the callstack you lose more and more information about specifics
20:52
s/down/up/
Avatar
so i tried doing this for the menu just to see if i could create a mockup for preview rendering turns out this softlocked my computer into fronting the frozen client and i had to restart. was this not a valid shortcut?
22:08
inb4 im called yanderedev
Avatar
IsRifle = false
22:08
is that a single equals?
22:09
fixed
Avatar
it looks like you might want to use a different font 😄
22:09
it looks hard to distinguish in your font ^^
Avatar
i'm using Fira Code
Avatar
Your font is too fancy, it replaces -> with an actual arrow, == with a long =. That looks slightly confusing 😄
Avatar
I mean the arrow isn't that bad, but the equals apparently leads to problems 😛
Avatar
do you have font reccomendations?
Avatar
no, I mostly use defaults
22:12
I think my terminal uses dejavu sans mono or so
Avatar
I just disabled ligatures. It's a bit better now.
Avatar
weird colors
22:24
little tip, you don't need == true or == false on bools
Avatar
Ohh. That's useful.
Avatar
Is there anywhere a concrete list of symbols you can write in chat?
Avatar
is there any symbol you can't write in chat?
Avatar
I'm just wondering on what types of emotes you can write or anything for that matter
Avatar
ah
22:42
idk, you'd probably have to look at the font for that
Avatar
what's the font?
Avatar
Avatar
Voxel
I just disabled ligatures. It's a bit better now.
much better 😉
Avatar
Avatar
estguy
what's the font?
dejavu sans I think
Avatar
DejaVuSans.ttf
22:47
there's also Icons.otf, but i don't know what it contains
Avatar
there's also some fallback font for asian languages
Avatar
how to I make the two weapons stack and not overlap?
Avatar
Avatar
Voxel
how to I make the two weapons stack and not overlap?
do another HSplitTop I think
23:01
Nowhere near close to the final product, but this is a solid head start for what I want the idea to head to.
Avatar
@bluesky progress
Avatar
which code do you prefer ? c++ new(pDemoHeader) std::remove_pointer<decltype(pDemoHeader)>::type; new(pTimelineMarkers) CTimelineMarkers;
23:22
first line ensure type is safe but is more verbose
23:23
second line makes no guarentee on the type if pTimelineMarkers type is changed, new will override neighboring memory or not initialize enough (with the wrong parameters)
Avatar
can't you do decltype(*pDemoHeader) in the first case?
23:29
error: new cannot be applied to a reference type
23:30
roughly, decltype(*pDemoHeader) returns a reference to a class (here CDemoHeader&) which cannot be passed to new...
Avatar
ah, unlucky
Avatar
Avatar
Voxel
so i tried doing this for the menu just to see if i could create a mockup for preview rendering turns out this softlocked my computer into fronting the frozen client and i had to restart. was this not a valid shortcut?
The hard quit shortcut ctrl+shift+q should always work iirc
Avatar
didn't that shortcut get removed because of trolling?
Avatar
Hm, if it did then you are stuck, which is annoying
23:38
Maybe we should add it back with a #ifdef DEBUG it's so useful in debug builds
Avatar
yeah closing the game is annoying when you're in fullscreen and get an exception
Avatar
looks like it got removed
23:40
it has no effect on latest master
Avatar
Should definitely get it back in for debug builds, it saved my ass so many times while debugging SDL issues on macOS
Avatar
Avatar
Chairn
which code do you prefer ? c++ new(pDemoHeader) std::remove_pointer<decltype(pDemoHeader)>::type; new(pTimelineMarkers) CTimelineMarkers;
first form also works for array which is nice 🙂
Avatar
Literally the only way out is that hard bind
Avatar
alt f4 is always a thing
Avatar
Avatar
Chairn
which code do you prefer ? c++ new(pDemoHeader) std::remove_pointer<decltype(pDemoHeader)>::type; new(pTimelineMarkers) CTimelineMarkers;
I like the first one, but the second one is definitely prettier
Avatar
df82d24ff (deen/pr-ctrl-shift-q) Remove panic quit button (1 year, 11 months ago)
Avatar
Avatar
Ravie
alt f4 is always a thing
when messing with things like SDL you can cause that event to get eaten aswell accidentally
23:42
ahahahha, you accepted the PR @Learath2
Avatar
heh, I guess the alt+f4 argument convinced me back in the day 😄
Avatar
why would it not work anyway?
23:43
if main loop is running, it should work?
Avatar
well on mac once I was messing around with raw input, I ended up in a state where I was stealing all the inputs
Avatar
ddnet as keylogger, nice one 😄
23:45
did you manage to steal your own password 😛 ?
23:45
It was more to try to get the mouse to capture, but even with raw input it didn't look very good so I gave up on that
23:46
Another weird issue on mac again is real fullscreen, if you launch the game in real fullscreen it'll launch just a blackscreen with a non-running appdelegate, so all your cmd+q are going nowhere
23:47
But yeah, outside of mac weirdness I guess the WMs kill shortcut should just work
23:48
on linux even if that doesn't work you can drop down to a tty, on windows I think ctrl+alt+del doesn't even go through the WM, the kernel is catching it iirc
Exported 395 message(s)