IRC log for #bzflag on 20171009

01:00.22*** join/#bzflag bertman (~bert@unaffiliated/bertman)
07:19.54allejohttps://travis-ci.org/allejo/bzflag/builds/285415448
07:20.46allejolibsound was whitelisted. can't run ./configure with --enable-debug since there are some warnings that are treated as errors
07:21.05allejoseems like macos builds are having issues on Travis atm so can't test yet: https://github.com/travis-ci/travis-ci/issues/8552
07:21.38allejosee here https://travis-ci.org/allejo/bzflag/jobs/285413694#L1687 for the --enable-debug error that prevents it from building
07:43.54*** join/#bzflag BZnotify (~BZnotify@192.30.252.45)
07:43.54BZnotify[13bzflag] 15allejo opened pull request #89: Add Travis to test builds on macOS + Linux (062.4...06feature/travis-tests) 02https://git.io/vdgod
07:43.54*** part/#bzflag BZnotify (~BZnotify@192.30.252.45)
16:17.30JeffMblast007: when are you going to turn that GCC export flag on?
16:17.54blast007I don't know.  Should it happen in 2.4, or wait for a major?
16:18.11JeffMhow many plugins use the fake API?
16:18.23blast007probably one or two
16:18.26JeffMit is not proto breaking
16:18.42JeffMfind out what they use, add that to the real API, turn it on
16:18.43JeffMdone
16:18.55JeffMhell tell me what they use from it and I'll add it to the API for you
16:19.03blast007well, the main thing that I know it's been used for is changing teams in-game
16:19.17JeffMthen add an API function that does whatever the lib does
16:19.22JeffMclearly bzfs can do it in proto
16:19.27JeffMif the lib does it
16:19.32blast007(which is done by sending out a quit/join message to everyone)
16:19.39JeffMoh...
16:19.43blast007yeah... :)
16:19.45JeffMthat us Feed up
16:19.52JeffMumm yeah break that please4
16:19.58blast007lol
16:20.21JeffMthe plugin it self can do that can't it?
16:20.41blast007there's no API for team changes
16:20.44JeffMoh wait, it doens't kick them, it just pretends like everyone else rejoined
16:20.47blast007yeah
16:20.52JeffMoh that's not too bad
16:21.05JeffMI hate that less
16:21.06blast007and the client sees it's own join message and is like "I joined, and I'm on team X"
16:21.11JeffMok
16:21.23blast007I don't know if it works *well* though
16:21.24JeffMI'd not be against that being in bzfs untill a real message was had
16:21.33JeffMwell I'd resent score too
16:21.41JeffMafter that it should be fine
16:21.42blast007allejo: does the hackish team changing stuff behave well?
16:22.13JeffMor make it be like bzapi_ChangeTeamsBadly
16:22.16blast007we could add a note that it's very experimental and hackish in 2.4
16:22.43JeffMflag it as a temporary API, that eventualy gets removed
16:22.53JeffMor add a seperate header
16:23.00JeffMbzapiEXP_
16:23.03blast007bzfs_api_crap.h
16:23.13JeffMstuff in there is like extension methods to openGL, for testing only
16:23.39JeffMbut yes, a seperate header wiht real exprots, but don't ship the header as part of the public API
16:24.05JeffMthen once something has been proven in that API, it gets migrated to the real API
16:24.23JeffMand if you use that header you understand that you will eventualy have to rebuild your plugin
17:11.18allejoblast007, yea it behaves and is potty trained
17:12.30allejothe only other function that accesses BZFS headers in that library is a "trigger spawn"
17:12.50allejocall it and it causes a client to spawn
17:16.07allejojust mark the change team "experimental" but keep the signature the same for a proto break
17:16.31allejoor make a bzfsAPI-next.h
17:34.25JeffMit forces a player to respawn?
17:35.16JeffMor spawns an instance of a client executable? :)
17:53.30blast007what's the use case for forcing a player to spawn?  besides April 1 jokes?
17:54.12JeffMevent driven teleports?
17:54.25JeffMcustom CTF?
17:54.38JeffMLULZ
17:55.04blast007custom CTF that forces a player into an alive state even if they're not ready or at their computer?
17:55.27JeffMcode could call it for non limbo players
17:56.43blast007but why?
17:59.14JeffMif a cap returns all players, with out killing them
17:59.31JeffMI'm thinking cobined with the spawn location override event.
17:59.38JeffMbut yes, I am reaching
17:59.42allejoquick attempt to move a player without having them respawn
17:59.46blast007so it's not about forcing a player to spawn and more about moving them to a new location?
17:59.59JeffMyeah, spawn in the only message that would do that
18:00.08JeffMit's more like teleport :)
18:00.10allejopretty much. kill them, set a new spawn location, force them to respawn
18:00.45JeffMdo you have to kill them?
18:00.49JeffMwhat does the client do if it's alive?
18:01.12allejonever explored the option of actually moving the client without killing
18:01.47JeffMdeath should only happen when people are killed
18:02.01BulletCatcherThe client thinks it is authoritative about its own location, except when spawning.
18:02.28JeffMthen that would be good, a client should just POP when spawning, assuming it's not also checking allive
18:05.01allejoif there’d be a teleport option, that’d fix my need for the force respawn wrapper. that was my only use for it
18:08.16JeffMsomeone should look over the code to see if there are any returns in the client message handler of that
18:08.23JeffMand then test it on a real client
18:08.47JeffMit would even have an "instant teleport" effect from the spawn effects
18:09.15JeffMblast007: how about a custom bad flag that teleports you every 3 shots? :)
18:09.20JeffMSliders Flag
18:09.41allejooh I’d have fun with that one
18:10.51blast007I think I'd find a different server to join :P
18:23.48*** join/#bzflag I_Died_Once (~I_Died_On@unaffiliated/idiedonce/x-1828535)
18:30.45*** join/#bzflag BZnotify (~BZnotify@192.30.252.35)
18:30.45BZnotify[13bzflag] 15JeffM2501 opened pull request #90: Upgrade projects to VC15 (2017) (062.4...062.4_VC2017) 02https://git.io/vd2Au
18:30.45*** part/#bzflag BZnotify (~BZnotify@192.30.252.35)
18:30.50JeffMif you want it
18:32.39blast007any idea if the dependencies build with VC15?
18:33.51blast007guess I could just try that here
18:36.48blast007*downloads installer*  *installer needs to update itself*  ...
18:37.51blast007oh, guess I already have 2017 installed  :)
19:03.33*** join/#bzflag TimRiker (d831ba32@bzflag/projectlead/TimRiker)
19:03.33*** mode/#bzflag [+o TimRiker] by ChanServ
19:16.48JeffMI just used your last set of deps, they worked fine
19:21.55blast007c-ares, curl (because c-ares did), and SDL2 fail to build
19:40.35JeffMnice
19:41.50JeffMthe upgrade is less important, 2017 can fully run with the 2015 settings. Windows developers would just need to remember to not commit the project files.
19:42.03JeffMso you could leave it as 2015 and support both versions
19:42.13JeffMit's not like 2015 that needed code changes to build
19:42.39blast007not saying it can't work, it just didn't work swapping out the versions/paths
19:42.45JeffMahh
19:42.59JeffMthe joy of a mixture of build systems :)
19:43.16blast007I think all of them have CMake support now
19:43.40allejough jeff. you suck at PRs. all those merged commits
19:44.47JeffMallejo: probably
19:45.04JeffMI still don't know how to merge my branch with the upsream
19:45.10JeffMI click buttons untill there are no errors
19:45.28blast007git pull --rebase
19:45.40blast007oh, from a branch..
19:45.47JeffMyeah I have a fork
19:45.54allejohttps://help.github.com/articles/syncing-a-fork/
19:46.09JeffMI try to sync that to your stuff, then make a branch for each PR
19:46.21JeffMallejo: I was told your links are "Scarry"
19:46.37JeffMhow do I do that from a clicky thingy
19:46.49allejothat only applies to links in other channels ;)
19:47.20allejowhat clicky thingy are you using?
19:47.25JeffMtort
19:47.46blast007haven't used TortoiseGit in a long time
19:48.20allejomy condolences
19:48.37JeffMI'll switch off it once VC2017 gets SSH key support
19:49.14blast007maybe github desktop can do it?
19:49.27JeffMno thanks
19:49.48JeffMthere is a github plugin for VC, I should probalby try it
19:49.58allejohttps://stackoverflow.com/a/7297491
19:49.59JeffMI mostly use gitlab, free private repos
19:50.54JeffMI may have picked the wrong thing
19:51.18allejobasically, you just need to add a remote to the original repo (bzflag-dev/bzflag) and then provided you have a clean branch, just pull/merge from that origin. it'll fast-forward the repo for you and then you just push up back to github and it's synced
19:51.24JeffMI have that
19:51.30JeffMI htink I picked the wrong remote
19:52.17allejooh
19:52.52blast007"Ah, this is the one for the BluRay, not the cable box.."
19:53.07JeffMnow I think i made it worse :)
19:53.14JeffMmaybe time to kill the fork and start over
19:53.22allejolol
19:53.30blast007nuke it from orbit. it's the only way to be sure.
19:53.38JeffMthough I guess it has no conflicts now, just shitty history
19:54.15allejono git bash on your computer? one of the few things that's much easier without a gui
19:54.51JeffMSorry 💩 history
19:55.06JeffMoh yeah I have git bash, real bash, all kinds of bash
19:55.09JeffMI just don't use em
19:55.24JeffMit should be easy with a GUI :)
19:55.51JeffMI can do it in SVN, I can do it in surround, next week I'll be trained how to do it in Perforce
19:55.56JeffMand I've done it before in Git
19:55.59JeffMI think I just hozed myself
19:56.08blast007arg.. why does the cares-1_11_0 tag have 1.10.1, and cares_1_12_0 have 1.11.1 ...
19:56.23allejoagrees that it should easy with a GUI
19:56.38blast007I guess they tab *before* they change the version string for release..? :P
19:56.39JeffMif you look at the PR, is it still messed up?
19:56.43blast007tag*
19:57.39allejoconflict in the PR is gone and if we just squash it when it's merged it, it *should* be fine but you touching the git history is still on there
19:57.56JeffMlet me try another branch
19:58.21JeffMmy forks 2_4 branch should be clean, that's why I always make a local branch before each change.
19:59.27allejothat's the sane way of doing it
20:00.38JeffMnope, screwed up my fork too
20:01.38allejowhispers "git bash"
20:01.49JeffMyou should 💩can my outstanding PRs and I'll restart
20:01.53JeffMDEATH FIRST!
20:02.38JeffMwhat bash command would fix my 2_4 branch?
20:03.15allejogood question. i'd think maybe, git reset --hard upstream/2.4
20:03.35JeffMlet me get a clean working dir and see what I can do
20:08.04JeffMnope, still shows a history item of @JeffM2501  JeffM2501 Merge remote-tracking branch 'remotes/parrent/2.4' into 2.4  â€¦
20:08.53allejoyou did the reset and then force push? (you could check `git log` before a force push) and it shouldn't show your merge commit
20:11.25JeffMyup
20:12.02JeffMhttps://usercontent.irccloud-cdn.com/file/Xi3uTaWb/
20:14.13allejonot sure what's up with yours then. i just did a hard reset on a clone of your fork and that fixed it for me
20:15.31JeffMthere we go
20:15.33JeffMspaces
20:15.36JeffMextra spaces
20:16.03allejo?
20:16.30JeffM-- hard vs --hard
20:16.49JeffM-- hard gives no error made it look like it worked
20:18.59allejohuh didn't realize the extra spaces would work
20:21.28allejofor your PR branch, this should clean things up: git reset --hard upstream/2.4; git cherry-pick d1d1524851fc0aab3072827579f3d889814e97c5
20:22.23JeffMI have another branch wiht it clean
20:22.34JeffMI can just do a PR for that
20:22.59allejothat works too
20:23.10*** join/#bzflag BZnotify (~BZnotify@192.30.252.42)
20:23.10BZnotify[13bzflag] 15JeffM2501 opened pull request #91: upgrade to VC2017 (062.4...062.4.VC15_2017) 02https://git.io/vdat5
20:23.10*** part/#bzflag BZnotify (~BZnotify@192.30.252.42)
20:24.09allejoit's clean!
20:24.39allejonow, should `<WindowsTargetPlatformVersion>10.0.15063.0</WindowsTargetPlatformVersion>` be the minimum windows version we support or does that not matter?
20:25.04JeffMno, it's just the SDK used
20:25.35*** join/#bzflag BZnotify (~BZnotify@192.30.252.42)
20:25.36BZnotify[13bzflag] 15allejo closed pull request #90: Upgrade projects to VC15 (2017) (062.4...062.4_VC2017) 02https://git.io/vd2Au
20:25.36*** part/#bzflag BZnotify (~BZnotify@192.30.252.42)
20:25.40JeffMbzflag doens't use any of the APIs that don't exist on older stuff
20:25.54JeffMI mean it doesn't suport XP
20:25.58JeffMbut why would you want to do that?
20:26.16JeffMit'll run fine on vista+
20:26.29JeffMjust as a developer you'd have access to the win10 apis
20:26.53JeffMthe installer would need to be upgraded too, with the 2017 runtimes
20:28.10allejoah that makes sense
20:50.32JeffMugg.. you did it all in header....
20:50.37JeffMyou'd love boost ;)
20:51.46JeffMhmm you kill to observer.. I undrstand why but it's not ellegant
20:52.21JeffMalso not sure why you need to call add and remove
20:56.01JeffMyeah looking at client code, MsgAlive doesn't require the player to be dead
20:56.16JeffMso you can use that to zap anyone anywhere
20:58.07JeffMallejo: how does observer to real team work?
20:59.42allejofor players that sit on obs for a while, swapping them to a real team would cause them to get idle kicked. so the workaround there is to mark them as alive so I can update their idle time to 0, and then mark them as dead so they can spawn
20:59.56allejoif I left them marked as "alive" they wouldn't be able to spawn
21:00.10JeffMwhat message tells the client it's ok for them to request a spawn?
21:00.56JeffMis to/from observer what you mostly use it for?
21:01.34allejowell i used it for both to even out unfair teams and to move players to observer without kicking them during timed matches such as Last Tank Standing
21:02.06allejofrom observer to team i've never really used other than players doing it through a slash command
21:02.07JeffMwhat happens on a client if it gets a team message but is not dead?
21:02.58allejoa team message but is not dead? they'd get the message...?
21:04.39JeffMand what would the client do?
21:04.51JeffMwold it change the team in the local player record?
21:05.22JeffMdid you map the code path on the client for all the messages you send? or are you just relying on the kill to handle it all?
21:08.29allejocan't say I really looked into how the client handled the messages, was more so trial and error. if a client is alive and is swapped from real team to real team, the client handles it fine. it's just confusing for players that they're suddenly on a new team
21:09.26allejoi can't take credit for it either, was based off Murielle's work. i just cleaned up a tad and fixed some odd issues
21:23.01JeffMtook it, cleaned it up, packaged it in a way that made more people use it and think it would exist forever ;)
21:24.37allejoisn't that the Microsoft motto?
21:24.57JeffMyeah but they put it in a real API ;)
21:24.59JeffMyou did not
21:25.20JeffMthey do end up with a TON of backend code for compatiblity in old API stuff
21:25.38JeffMbut that's the point of the API, so the people working on the core code KNOW that there is an expected interface.
21:25.48JeffMI could break your code by changing the signature to addPlayer
21:25.52JeffMall my code would work fine
21:26.12JeffMbecause I would not know that your random whackass plugin was calling it too
21:26.44JeffMbut if it was in the API, I'd break the API code in bzfs and SEE that it has an expected signature
21:27.30JeffMany work on server side players could have busted those functions
21:27.43JeffMyou are just lucky bzflag is dead and nobody changes anything
21:27.54allejoyup
21:28.14allejoi mean, if it were alive then i'd probably put more effort into getting a cleaner/proper solution
21:28.51JeffMwhat message changes the team?
21:29.02JeffMplayerINfo?
21:29.07allejoi kinda just wanted a single location of helper functions. up until now, no one else has used my header files that I know of
21:29.21JeffMthere is a lib we publish
21:29.26JeffMfor helper functions
21:30.01JeffMplugin_utils
21:30.11JeffMthats where stuff should go
21:30.34JeffMchange that all you want, it's a static lib IIRC, no binary compat needed.
21:31.38allejothere are some stuff i eventually intend on moving to there, just lack of interest
21:32.13allejothe change team functionality had been brought up before but since it was a wonky hack, it was turned away. so i just moved it to its own thing
21:32.13JeffMMsgAddPlayer
21:32.42JeffMhow many plug-ins that people HERE care about use the team functionality?
21:33.28allejorealistically, probably only Last Tank Standing
21:34.00JeffMand it sends people to observer?
21:34.03allejoyup
21:34.16allejoteam balance was used too, but then i went and broke it on accident
21:34.18JeffMdoes it change real teams?
21:34.46allejoteam balance, did. lts, just playing team to observer
21:35.36JeffMhmm, I wonder how you are getting around this in the client,  printError ("Server error when adding player, player already added");
21:36.45allejoisn't that why the player's removed first?
21:36.52JeffMprobably
21:37.05JeffMgeenrates a lot of chat spam I'd guess
21:37.39allejojust displays a part + join message
21:37.48JeffMthats what I mean
21:37.53allejosame as a rejoin, just with no inconvenience to the player
21:38.09JeffMon a rejoin they don't see the chat spam :)
21:38.14JeffMsince they are disconnected
21:38.33allejowhat chat spam are you referring to? seeing themselves part and join?
21:38.34JeffMyeah, I would not put that in the real API
21:38.37JeffMyeah
21:38.47JeffMI'm imagining a case where everyone was pushed to observer
21:38.50JeffMlike if a match ended
21:38.58JeffMthat'd be several lines per preson
21:39.41allejoyou see yourself joining (iirc) when you connect to a server. not sure about parting though
21:39.53allejoand well yea, that's the same for a /superkill
21:39.56JeffMyou get a different message
21:40.02JeffManother stupid message :)
21:40.28allejoi'm sticking to the theme of stupid messages ;)
21:41.03JeffMwell if it was up to me blast007 I'd break it now, so that people would have time to come up with the new API functions they'll need for the next version.
21:41.10allejobut yea, this is the same conclusion that was reached last time this was brought up (don't add it to the real API). hence my making it it's own thing with no guarantees that it'd always work
21:41.17JeffMsince it's well known that NOBODY is going to test anything
21:41.42JeffMallejo: except it won't always work, like I said, I change addplayer to take another arg, and you are boned.
21:42.01JeffMyou've FORCED addPlayer to be a real API function
21:42.25JeffMit's going to get broken
21:42.32allejoi know, hence this being a hack
21:42.44JeffMthe question is do you want it to break on known terms or just randomly somtime later?
21:43.43JeffMit's a published hack, that's the problem, that makes it more than just a hack a person knows about
21:45.05allejoi'd prefer to know when it's broken, so if there's a workaround I could make a note of it
21:45.25JeffMcool, blast007  break it now :)
21:47.44blast007lol
21:48.32JeffMDamned millennials messin up the sanctity of my API.
21:48.45allejo:p
21:49.18JeffMget a job
21:49.32allejowanna hire me?
21:49.39JeffMwe had an opening
21:49.56JeffMI think there is one in San Diego
21:49.59JeffMlike for serious
21:50.41allejoclose to finishing school, so gotta do that before i can freely explore options
21:50.51JeffMthat is wise
21:51.19allejo:D
21:51.32JeffMyeah , SD is hiring a few software engineers
21:52.03JeffMand some project managers
21:53.51allejowhat was your location hiring for? out of curiosity
21:53.57allejosame thing?
21:54.24blast007Would we need an equivilent of DLL_LOCAL here?  https://gcc.gnu.org/wiki/Visibility
21:54.26JeffMJr software eng
21:54.46JeffMblast007: you have that
21:54.57JeffMall the API headers are prefixed with the BZAPI #def
21:55.08JeffMit's already there and #defed as nothing for linux
21:55.10blast007that's DLL_PUBLIC
21:55.33JeffMyou can set the default visiblity in the build options to gcc so all unflaged things are local
21:56.04JeffMI'd not do two defines
21:56.05blast007well, it looks like it's for hiding things that are inside an exported class, for instance
21:56.09JeffMyeah
21:56.14JeffMsomething the API doens't do
21:56.17blast007k
21:56.26blast007and I'm not gonna care about Cygwin ;)
21:56.37JeffMyeah I don't see why
21:56.46JeffMI had a branch that had the #def I liked
21:58.54JeffMguess I never saved it
21:59.09blast007should just be changing the non-windows one to: #define BZF_PLUGIN_CALL extern "C" __attribute__ ((visibility ("default")))
21:59.14blast007plus modding the build system
21:59.21JeffMsomething like that
21:59.32blast007dunno if clang has to be handled special
21:59.47JeffMnone of the other subsystems like game or obstacle are built as .so files right?
22:00.32blast007the only .so files in my build are plugins
22:27.11JeffMgood then it should work fine
22:27.42JeffMbut that would be somethign to remember, if you do end up wiht like a LibBZW.so, it too needs to export a clean API
22:29.34JeffMSDL and anything else that uses a DLL on windows should be good anyway
23:07.21blast007Looks like Star Wars Battlefront 2 has anti-cheat code worse than BZFlag.  At least we can (usually) detect people moving 3 times the normal speed.  :P
23:08.01JeffMSecurity Third!
23:08.48allejowho's on first
23:09.27blast007Zero
23:34.26blast007k... so the visibility change didn't seem to do anything...
23:35.16allejoyou forgot to chant, "ready or not. here i come!"
23:46.59blast007-fvisibilty=hidden being passed to gcc for everything, and even without the change to bzfsAPI.h it all still builds...grr

Generated by irclog2html.pl Modified by Tim Riker to work with infobot.