IRC logs of Freenode #BZFlag for Tuesday, 2020-08-25

OkinaSo quick thing with forums, should opening a new tab trigger logout?00:02
OkinaSince it seems to do so in my case.00:02
Okina(Non-static IP if relevant and FireFox as preferred browser.)00:03
blast007nope, shouldn't do that00:04
blast007do you have some extension that messes with your user agent string?00:06
OkinaSeems to happen more often on default configuration.(No extensions.)00:08
OkinaAnd "uBlock" should not be messing with agent strings, as far as I can tell.00:09
blast007I use Firefox here and I open forum links in new tabs all the time00:09
blast007and by "uBlock" do you mean "uBlock Origin"?00:10
OkinaYes.00:10
blast007is your IP drasticly changing?00:11
OkinaI'm not certain, but it probably changes frequently, unless constantly connected.00:12
Okina(Either by download or IRC like connection.)00:12
*** Okina <Okina!~Keiki_Han@unaffiliated/zehra> has quit IRC (Read error: Connection reset by peer)00:37
*** Andradite <Andradite!~Keiki_Han@unaffiliated/zehra> has joined #bzflag00:37
*** _I_Died_Once <_I_Died_Once!~I_Died_On@unaffiliated/idiedonce/x-1828535> has quit IRC (Ping timeout: 260 seconds)02:23
brlcadwho02:34
*** Andradite <Andradite!~Keiki_Han@unaffiliated/zehra> has quit IRC (Quit: Quit)03:29
*** infobot <infobot!ibot@96-86-209-99-static.hfc.comcastbusiness.net> has quit IRC (Ping timeout: 240 seconds)03:41
*** infobot <infobot!ibot@96-86-209-99-static.hfc.comcastbusiness.net> has joined #bzflag04:36
*** ChanServ sets mode: +v infobot04:36
*** Sgeo <Sgeo!~Sgeo@ool-18b982ad.dyn.optonline.net> has quit IRC (Read error: Connection reset by peer)07:06
*** spldart <spldart!~spldart@bzflag/contributor/spldart> has quit IRC (Ping timeout: 260 seconds)09:08
*** spldart <spldart!~spldart@bzflag/contributor/spldart> has joined #bzflag09:13
*** ChanServ sets mode: +v spldart09:13
*** _I_Died_Once <_I_Died_Once!~I_Died_On@unaffiliated/idiedonce/x-1828535> has joined #bzflag09:31
*** FieldSobers <FieldSobers!~User49@unaffiliated/user49> has joined #bzflag09:32
*** User49 <User49!~User49@unaffiliated/user49> has quit IRC (Ping timeout: 256 seconds)09:34
*** User49 <User49!~User49@unaffiliated/user49> has joined #bzflag12:53
*** FieldSobers <FieldSobers!~User49@unaffiliated/user49> has quit IRC (Ping timeout: 256 seconds)12:56
*** User49 <User49!~User49@unaffiliated/user49> has quit IRC (Ping timeout: 260 seconds)12:59
*** Sgeo <Sgeo!~Sgeo@ool-18b982ad.dyn.optonline.net> has joined #bzflag14:10
*** MarderIII <MarderIII!~MarderIII@enneman.demon.nl> has joined #bzflag15:00
*** Agatha <Agatha!180a9d90@c-24-10-157-144.hsd1.ut.comcast.net> has quit IRC (Remote host closed the connection)15:29
*** FieldSobers <FieldSobers!~User49@unaffiliated/user49> has joined #bzflag15:48
*** Agatha <Agatha!180a9d90@c-24-10-157-144.hsd1.ut.comcast.net> has joined #bzflag16:27
AgathaHi16:29
Agatha(This is not Agatha BTW. But I'm helping her with the C++ for her plugin.)16:29
AgathaOn Thursday, she was advised that to delete a shot, one must bypass the official API and "send a raw endshot for that shot".16:30
AgathaSo we're trying to do that.  Here's our attempt: https://gist.github.com/agatha2/3305591e2282b8eb47fbc9742135b17116:30
AgathaIt doesn't work right (the client that fired still sees the bullet, though other clients, correctly, do not).16:30
AgathaIt has lots of comments about what we think we're doing.16:30
AgathaBasically, I think we're not calculating the shot id to delete correctly.16:30
AgathaAny pointers? Thanks16:30
CaptainRoberts[mit's going to be super janky16:30
CaptainRoberts[myou sould probalby capture the ID when the shot is created16:31
CaptainRoberts[mthis is outside of the normal API features, so it won't be easy16:31
AgathaYes, exactly. So what do you suggest I do? The standard API doesn't expose the shot id (bz_ShotFiredEventData_V1's shotID member is bogus), and calculating it myself (as in the Github gist I linked) doesn't work correctly. I also notice there is a ShotCreated event callback in Shots::Manager, which I could set (but I think it would do the same16:39
Agathathing).16:39
CaptainRoberts[mI also belive shot manager is rather untested16:39
CaptainRoberts[mbest thing is to modify the API to send the shot ID16:40
CaptainRoberts[myou are allready out of the scope of normal API work16:40
AgathaYes, I definitely understand that this is beyond the official API.16:41
CaptainRoberts[mShot manager is trying to assign a global ID to shots, but shot IDs are actualy local to the player. so they are effectivly made up of two parts, the player ID, and the local shot ID16:41
CaptainRoberts[mand player local shot ids wrap around16:41
CaptainRoberts[mthe server tells each client the max number of shots16:42
CaptainRoberts[mand the IDs go from 0 to max shots -116:42
CaptainRoberts[mso if a server is set to only allow 1 shot, the shot ID for a player is always 016:42
CaptainRoberts[mthe server player is the only player that's allowed more shots than the shot limit, for world weapons16:43
CaptainRoberts[mso if you are just trying to kill the shot that was fired, use the shotID field form the fired event16:44
blast007my suggestion is to not bypass the API since that will be blocked on some compilers already16:44
CaptainRoberts[mthe "GUID" from shot manager isn't used in network transport16:44
CaptainRoberts[myeah, only exported functions may be calllable by the plugins dynamic library16:44
blast007extend the API, if you must, and then maintain your forked copy16:44
CaptainRoberts[mwhat you are doing is very fragile16:45
CaptainRoberts[mbut your problem is the assumption that shot manager's GUID is the ID to send in transport. ShotManager has a FindShot method that takes a GUID and returns a ShotRef, the ShotRef has the shot, and the shot has the FiringInfo, and the FiringInfo has the ShotUpdate, and that has the local ID16:47
CaptainRoberts[mbut you don't need shot manager at all16:47
CaptainRoberts[mbut a simple compiler flag will break your code, when it blocks off access to non exported functions16:51
CaptainRoberts[mI'm surprised that flag hasn't been enabled by default in the project already.16:52
*** Agatha <Agatha!180a9d90@c-24-10-157-144.hsd1.ut.comcast.net> has quit IRC (Remote host closed the connection)16:54
blast007I tried with gcc, but it seemed to just export it all anyway16:55
blast007I think clang might be hooked up to do it16:56
*** Agatha <Agatha!180a9d90@c-24-10-157-144.hsd1.ut.comcast.net> has joined #bzflag17:01
AgathaSorry! This IRC keeps disconnecting me for some reason?17:01
Agatha"use the shotID field form the fired event" <- Note: as I said, the shotID field is invalid in the fired event, so this doesn't work.17:01
AgathaThe explanation above about the global ID vs. local ID was very helpful.17:02
AgathaLet me try the FindShot thing you described later. Again, the shot doesn't exist in it until after the event completes, but perhaps I can reference the shot later, and kill it in the tick event? Not ideal, but might work . . .17:02
AgathaAnd about forking the whole project and relying on compiler flags . . . look, the "right" solution might be to refactor the codebase, and also expose a lot of new stuff in the API. I am even willing to help with that, in the limited way to which I am able . . . but it's just not realistic for me, a relative outsider with little experience, to do17:09
Agathathat all by myself just for a one-off plugin.17:09
AgathaYes, a brittle solution is clearly not ideal, but at the end of the day one just has to write something that works, even if it's hacky and bad. Maintaining a plugin is definitely also easier and smaller in scope. If the API improves in the future, I think we'll be happy to update it to the newer standard. :)17:09
blast007this isn't something we'll add to the official game17:09
CaptainRoberts[mwhat makes you think the shot ID is invalid?17:09
Agathablast: that's fine. I think it's probably a bad idea to add to the main game anyway.17:09
blast007I'm talking about the API changes17:10
blast007so, you're gonna have to have local modifications to the API, thus a fork17:10
blast007the plugin will only work on your fork17:10
AgathaRoberts: see bzfs.cxx line 4192, and referenced constructor which initializes it to -1. This is then passed immediately into the event callback.17:11
Agathablast007: Ah. No, I meant more, in some potential future where the external API or the internal bzfs code changes (both of which seem likely)—not necessarily to specifically support these features, but, you know, changes *somehow*, then those changes are likely to affect the plugin. That's fine. We'll update the plugin. Please don't think we're17:16
Agathatrying to suggest that the API needs to be changed just for us. Our use-case might be a good motivation for changing it to consider, but CPI modifications should follow some overarching, coherent direction, and in any case be well thought-out.17:16
Agatha*but API modifications17:16
blast007I just don't get what you're hoping to accomplish17:30
AgathaAt a technical level? Delete shots in a plugin, potentially using undocumented, unofficial features, while accepting and understanding the risks that come with same. Or did you mean what's the point of the plugin? I can get Agatha to explain that one if you want, but basically it's just new weapon varieties, for fun.17:35
blast007it's not going to work17:35
blast007unless you're on LAN server with a world with no obstacles17:36
blast007shot messages are UDP, so you can't guarantee that they arrive in order or at all17:37
blast007and a slight amount of latency will make it wonky, not wacky17:37
blast007and I don't know if you can even affect the client's own shots17:37
CaptainRoberts[myou can't17:38
CaptainRoberts[mnot in 2.4 at least17:38
CaptainRoberts[m2.6 had more code to do that kind of stuff17:38
CaptainRoberts[myou are trying to turn a car into an airplane, it's possible but it's going to be very hard17:39
CaptainRoberts[mand dangrous17:39
CaptainRoberts[mFancy shots would be cool and all, unfortunately the BZFlag code-base is not at a place to do that right now.17:39
blast007as I said to Agatha, that should be something coded client-side, not server-side17:40
CaptainRoberts[mthe shot ID of -1 to the event is a bug and should be fixed17:47
AgathaNote: in allejo's plugin starter, it is documented as "// (int)          shotID    - (UNUSED) Value exists, however it is never set.", which made us think it was intentional. At any rate, the (server side) shot id is created by adding it to the shot manager, yet the event can cancel that from ever happening. So there's a circular dependency on17:53
Agathasetting it before the event fires.17:53
AgathaWell, deleting shots is important, but I guess not *critical* for this plugin. I'll have to talk with Agatha and see what she thinks. And maybe also look at the code some more myself. It feels like it should be possible.17:54
CaptainRoberts[mThe documents are based on the code, the intent was to set the ID, it's a bug. The server side shot ID thing is new and like I said, mostly unused. It was added to help server side bots. The shot message from the client has the ID so it can be sent to the API.17:55
CaptainRoberts[mthe API documents came after the API was initially written. The API is riddled with bugs.17:56
AgathaYeah. Sounds good; was just FYI.17:56
AgathaI guess . . . big picture question—what's the story here? What we gathered is that some kind of 3.0 release was planned, but it was too ambitious, so it partially merged back into the 2.* series? Looks like there's continual progress being made, but I can't quite tell what that means for the project. I guess 2.5 is next?18:01
CaptainRoberts[mthat's pretty much it18:02
CaptainRoberts[mthat situation has happened multiple times in the development history18:03
CaptainRoberts[m2.6 would be the next version that breaks the network protocol and would be incompatible with older clients and servers.19:50
AgathaIs some kind of rough timeline for this available?19:53
CaptainRoberts[mNope19:53
CaptainRoberts[mit's an open source project, people work on it when they want to19:54
AgathaYeah I get that. That's why I specified rough: think more like "guess". Just looking at previous releases, it looks like a few months for 2.5. But perhaps a better estimate is possible.19:57
CaptainRoberts[mthe 2.4 release has been going on for years and years19:58
CaptainRoberts[mpeople are STILL only working in 2.419:58
CaptainRoberts[mI would not expect a major release of bzflag for at least a year or two.19:59
Agathaokay thanks19:59
CaptainRoberts[mpeople won't let go of 2.419:59
AgathaOh? There is some attachment to it? Existing plugins, perhaps?20:00
CaptainRoberts[mpeople fear change20:00
CaptainRoberts[mand it's hard to get people to test an incompatible version20:01
CaptainRoberts[m2.4.0 was made 9 years ago20:02
*** MarderIII <MarderIII!~MarderIII@enneman.demon.nl> has quit IRC (Ping timeout: 264 seconds)20:23
allejo2.6 requires effort20:30
allejoand who likes putting in effort into anything?20:31
*** Zehra <Zehra!~Keiki_Han@unaffiliated/zehra> has joined #bzflag21:40
*** FieldSobers <FieldSobers!~User49@unaffiliated/user49> has quit IRC (Ping timeout: 256 seconds)22:09
ZehraI noticed thread recently posted was moved to "Plug-in Releases", despite 1 out of a few plug-ins completed.22:37
ZehraTherefore while it is a completed plug-in, it is not the completed set of plug-ins, so therefore incomplete as a collection.22:38
Zehra(This may be considered partially "violation" of spirit of said rules.)22:39
ZehraHowever it would be fine, if it remains. (Since it anyways will be completed, just a bit earlier than expected.)22:39
allejomoved to plugin dev22:40
ZehraThanks allejo.22:40
*** FieldSobers <FieldSobers!~User49@unaffiliated/user49> has joined #bzflag22:46
ZehraWould anyone happen to recall of one server or mod of where game clients got differing "world" files?22:55
ZehraOr something similar to that manner.22:56
blast007intentionally?22:56
ZehraYes.22:56
blast007there was a bug in some REALLY early version, but I don't see why you'd do that intentionally22:57
blast007might have been a bug in a 1.7 development version as well22:57
ZehraAh, okay, well mainly it would have been to provide differing material/object properties per team.22:59
blast007Agatha: at this point, most of what is being done with 2.4 is just fixing SDL bugs and making the game better for first time players22:59
blast007as for timeline, there's not really one, but a major goal for 2.6 is to have full IPv6 support, which also requires changes to the authentication system and the server list23:03
BulletCatcherGit commit f618a20c fixed a bug in doomed version 2.99 where a new random map was generated when the player in slot 0 left.  The remaining players would be on the old map and newly joined players would be on the new map.  Hillarity ensued.23:04
blast007ah yeah, I knew that issue had returned somewhere :)23:05
Zehraplayers: "why is that tank up there, there isn't any objects", new player: "I see them and you can't??". (oO)23:18
ZehraIn all seriousness, would it be alright for myself or anyone to provide guidance regarding code contributions?23:18
ZehraBut not the actual code itself.23:18
Zehra"the effect may be achieved by changing line from so, to so"..etc23:19
blast007what do you mean?23:19
ZehraBasically in other words, a template and instruction guide to achieve certain functionality. (Which could be given to anyone.)23:20
ZehraSimilar to one of previous posts for "automatic respawns".23:22
blast007certain functionality?23:24
ZehraWell, for instance, if a better version of the "2.6.x" planned branch of geno is provided as "instructions" or "guide"...23:25
Zehraif anyone takes it, provided it is properly licensed, could it be accepted as code contribution?23:26
Zehraso person provides guide under CC0, person2 uses guide to achieve mod, person2 submits "contribution"23:27
blast007I don't know what you're talking about23:28
ZehraWould forwarded code contributions be accepted, person1 gives person2 rights to code contribution and person2 submits.23:31
ZehraIn simplest essence.23:31
blast007What are forwarded code contributions?23:32
CaptainRoberts[mHe wants to be involved in other people's contributions, like an agent.23:33
blast007and agent of confusion?23:33
ZehraPerson1 implements code modification and tests it, waives all rights and grants them to person2, person2 is the one who "sends" it. :p23:33
blast007Zehra: why would you want to do that?23:33
blast007or are you person2 in this situation?23:34
blast007gonna hire someone on Fiverr to be person1?23:34
Zehraperson1 would be myself.23:34
blast007so why wouldn't you just submit it yourself?23:34
blast007the real name for the authors thing?23:35
ZehraSince I have not currently founded a corporation. (Yes.)23:35
ZehraIf the guide is under Creative Commons Zero, there does not seem to be any issue.23:37
Zehra(And I'd certainly like to see 2.6. released.)23:37
blast007a guide isn't code though23:37
blast007and I'd like to see these 20 hotspots on the floor configure themselves23:37
ZehraThat's the thing, if it is not code, there should not be any issues for whoever submits the code achieved by the guide.23:39
*** Zehra <Zehra!~Keiki_Han@unaffiliated/zehra> has quit IRC (Remote host closed the connection)23:39
*** Andradite <Andradite!~Keiki_Han@unaffiliated/zehra> has joined #bzflag23:39
Andradite"That's the thing" was my last post and last read on IRC.23:40
AndraditeAlso, person2 will learn and gain insights on the subject.23:41
Andradite(On my side, I get to see more possibilities with more stable code.)23:41
CaptainRoberts[mDoes the guide tell you how to make a simple process overly complex?23:41
Andraditehehe, if it did, it certainly would not be accepted, now would it?23:43
CaptainRoberts[mthen I think you've answered your own question23:43
AndraditeI'll take that as a yes: https://forums.bzflag.org/viewtopic.php?f=78&t=2040023:44
CaptainRoberts[m🤦23:45
AgathaIncidentally, the question has some bearing on me, too . . . the bug I found earlier, with the shot ID being -1? There's a one-line fix for that. I would like to delegate that as public domain.23:46
CaptainRoberts[mthen just submit a pull request23:47
allejoyes, please just submit pull requests. it really makes our lives significantly easier23:50
allejoyou don't see other projects saying, "we accept patches in these 20 different ways!" they'll always point you to the one source of truth. whether it's github or a mailing list23:50
allejoour source of truth is github23:51
CaptainRoberts[mthat is literally what pull requests are for, to get community submissions23:51
AgathaHmmm my friend tells me that's standard for open source projects, so okay. Give us a moment.23:52
CaptainRoberts[myeah it's super standard. There is a developer agreement that you effectively agree to when you submit a pull request. You grant the rights for the maintainer to use the code etc... No need for public domainness.23:58

Generated by irclog2html.py 2.17.3.dev0 by Marius Gedminas - find it at https://mg.pov.lt/irclog2html/!