#bitfighter IRC Log

Index Search ←Prev date Next date→

IRC Log for 2013-07-26

Timestamps are in GMT/BST.

00:01:38Flynnn has joined
00:32:31Nothing_Much has joined
00:32:31Nothing_Much Quit (Changing host)
00:32:31Nothing_Much has joined
01:08:12Flynnn Quit (Quit: Leaving)
01:16:21koda has joined
01:20:43LordDVG has joined
01:37:04LordDVG Quit (Ping timeout: 264 seconds)
01:38:05LordDVG has joined
02:21:21watusimoto has joined
02:21:21ChanServ sets mode +o
04:11:38LordDVG Quit (Remote host closed the connection)
07:02:35Wuzzy has joined
08:30:58bobdaduck has joined
09:38:35raptor has joined
09:38:35ChanServ sets mode +o
09:38:39raptorgood dya!
09:39:01raptorok voting closed
09:39:03raptortop 3 or top 5?
09:39:58raptori favor top 5 because... chilled monkey brain
09:42:52watusimotothat made my top 3 :-)
09:43:17watusimotoyou can do top 5, but the danger is too many options
09:43:24Sinistar has joined
09:43:26raptoryes
09:43:33raptorexperiment!
09:43:37watusimotodo it!
09:44:10watusimotoyou've obviously decided what you are going to do; I appreciate being asked, but know that you are going to do 5 regardless... so go for it!
09:44:12SinistarHello.
09:44:15watusimotohi
09:44:20kaenhello
09:44:20raptorha!
09:44:22kaenmorning all
09:44:24raptorhi Sinistar
09:44:25raptorhi kaen
09:44:55kaenI'm kind of bummed progrematic didn't stick around...
09:45:03raptori am always willing to be convinced otherwise...
09:45:25raptorkaen: did he say he was leaving? or just that he hasn't continued to ask questions, etc.?
09:45:52SinistarGah, I wish this torrent would finish already.
09:46:06raptorSinistar: you're torrenting bitfighter? :)
09:46:22SinistarNah, but that is currently downloading.
09:46:46SinistarHeard it was the spiritual successor to Zap and I became interested.
09:46:57raptorwelcome!
09:46:57kaenhe didn't say anything about leaving, but he made no report about his attempt to compile and hasn't said anything since then
09:47:10kaenso I guess I'm just assuming that he bailed :P
09:47:21kaenmaybe he looked at UIEditor.cpp too soon...
09:47:25raptorhmm... he did register..
09:47:26raptorhaha
09:47:40SinistarNever really was all that good at the game but I still enjoyed it.
09:47:46kaenwell, hopefully I'm wrong :P
09:47:53SinistarSame with all the other games at IA before it closed down.
09:47:54kaenSinistar, I know the feeling :)
09:49:42kaenso
09:49:43kaenguys
09:49:53kaencan we start writing up a release checklist for 019 yet?
09:50:57kaensorry for using the R word, but I'm getting antsy!
09:51:27bobdaduckOoh Sinstar came from Z.A.P.?
09:51:43SinistarYeah.
09:51:51raptorI'm working on my Lua API TODO list...
09:51:55thread_ has joined
09:52:01bobdaduckI'M SO SORRY.
09:52:08Sinistar?
09:52:12raptorI guess I've sort of decided to own that in my head
09:52:30bobdaduckJust the general consensus is that Z.A.P. was one of the worst games we'd ever seen
09:52:30bobdaduckxD
09:52:38thread_uuuuhhh... wrong moment to join the conversation
09:52:50kaen thinks Z.A.P was cool
09:52:54kaenincluding the graphics
09:52:58bobdaducklol
09:52:59SinistarI enjoyed ZAP though.
09:53:03SinistarWhat was so bad about it?
09:53:11kaenbob hates GL shaders or something
09:53:19SinistarAH.
09:53:21bobdaduckThey took everything bad about Zap! and amplified it
09:53:21kaenergo worst game ever made
09:53:51SinistarI see.
09:54:01kaenI made a clone of bitfighter with shader support (for Z.A.P-style graphics) and bob nearly had an aneurysm
09:54:01bobdaduckOkay, just because the graphics made us sick
09:54:05raptor still can't keep his Z.ap.!s straight...
09:54:17bobdaduckZap! > Z.A.P. > bitfighter
09:54:29kaenouch.
09:54:32SinistarBoba, I came from Zap!
09:54:34raptorthat can't possibly be the code path
09:54:48bobdaduckZ.A.P was the instant action version
09:54:50raptorthere was no bubbly graphics with opentnl
09:54:53SinistarOh, I see.
09:54:56bobdaduckZap! was the version before it
09:55:01SinistarThen yeah, I came from there.
09:55:11bobdaduckbecause they made it into a fancy acronym for "Zero all productivity" for some reason.
09:55:41kaenmy guess is licensing
09:55:52bobdaduckI especially liked how they made it so repair takes no energy and instaheals everything
09:56:02bobdaduckAnd that all bots can use like all the modules at once
09:56:07bobdaduckThat part was cool
09:56:31SinistarExcuse me for being forgetful but what exactly was the reason for IA shutting down again?
09:56:45bobdaduckFunding, I assume
09:56:47raptorbobdaduck has equiped his sarcasm module
09:57:01bobdaduckNo, I'm like 90% serious
09:57:07bobdaduckAnd bots had infinite energy
09:57:21bobdaduckAnd you had all weapons at once
09:57:37SinistarI don't remember healing being done instantly
09:57:39bobdaduckso you had to press E four times to get to mine
09:58:11SinistarI really do not remember ANYTHING that you're mentioning.
09:58:25Skybax has joined
09:58:29bobdaduckThe bot stuff was more "feels like bots were this way"
09:58:34bobdaduckbut you definitely had all five weapons at once
09:58:41SkybaxGoodmorning
09:58:53bobdaduckAnd almost all the bots automatically had repair and shield and it felt like they could hold down boost indefinitely at the same time
09:58:54raptorgood morning
09:58:55kaenmorning
09:59:19bobdaduckOh, and the bots shield timing was *perfect*, so they didn't actually lose any energy.
09:59:51bobdaduck(You had to play with bots because the game died to about 10 players after about a week)
09:59:56kaensee, those all seem like small flaws that are fixable in a minor version bump
10:00:09kaenexcept the last
10:00:15kaenwhich bitfighter itself struggles with...
10:00:24raptorvoting round 2 is open...
10:00:41kaenI was glad to see so much use of levelgens
10:00:53kaenthere must be at least three or four scripters now!
10:00:54raptorme too!
10:00:58bobdaduckI like how Zap!'s motto was "Don't let graphics get in the way of your gameplay" and then they turn around and try to make it halo
10:01:01SinistarOH GOD I DON'T REMEMBER HOW TO PLAY THIS AT ALL
10:01:07bobdaduckrofl
10:02:27SkybaxxD
10:03:08bobdaduckAnyway, Z.A.P quite directly took the worst features of Zap! and focused on them, while ignoring the good aspects.
10:03:17bobdaduckOr getting rid of them, in many cases.
10:03:18watusimotobitfighter did the opposite!
10:03:28watusimotoonly good aspects!
10:03:47bobdaduckJury is still out on engineer
10:03:50bobdaduckBUT SURE.
10:04:06SkybaxI love engineer
10:04:21kaenEngineered Teleporters were definitely a good move
10:04:32kaenI'm undecided on the rest of it
10:05:01bobdaduckOoh! Ooh!
10:05:09bobdaduckAnd don't forget Z.A.P's lack of a map editor.
10:05:20SkybaxYeah that was lame
10:05:26raptor(just don't look at the code of bitfighter's...)
10:05:29bobdaduckSo you were forced to play their eight stock maps over and over with yourself
10:05:38kaenyour eyes will spontaneously combust
10:05:43Skybaxbobdaduck played with himself a lot
10:05:44kaenand your mind will auto-pretzelize
10:06:15raptorauto-pretzelize is the perfect verb for that...
10:06:21bobdaduckrofl
10:06:23kaenI totally just made it up
10:06:33SkybaxxD
10:08:01bobdaduckcan we replace
10:08:02bobdaduckhttp://bitfighter.org/wiki/index.php/History_of_Bitfighter
10:08:04bobdaduckwith my fanfic?
10:08:42raptorMaybe add it to the bottom as the 'true' story of bitfigher..
10:08:55kaenI'm not sure everybody grasps the full meaning of the allegory
10:10:00SinistarBreaking news: I learned I am worse than I remembered I was.
10:10:15SkybaxCool story
10:10:19kaenbots are ridiculously hard
10:10:29kaento me anyway
10:10:48kaenare you playing online?
10:10:51kaenI want to play right now
10:10:52raptorour bots have decision-making problems.. but they sure know how to shoot!
10:11:17SkybaxThe bots suck at avoiding phaser trails, so if one starts chasing you, just fly away and shoot at it. They won't even shoot back
10:11:20SinistarYeah I noticed when the bot on my team just decided he would faze back and forth throughout the entirety of the match.
10:11:55bobdaducklol
10:12:03SkybaxWell I'm out of the contest xD
10:12:35raptorshhh!
10:15:10bobdaduckIs vote changing enabled?
10:15:35raptoryes
10:15:40bobdaduckOkay
10:15:48bobdaduckI'll go ahead and tentatively vote then
10:15:48bobdaduckxD
10:15:52SkybaxHay get on the contest server
10:16:06bobdaduckI'M SLEEPING.
10:16:10bobdaducker
10:16:11bobdaduckWORKING.
10:16:15raptork
10:23:03Sinistar Quit (Quit: Page closed)
10:29:41thread_ Quit (Ping timeout: 250 seconds)
10:30:58SkybaxQuartz was online that whole time and didn't join us
10:31:04SkybaxMaybe he was mapmaking
10:31:17SkybaxIf only Bitfighter made a noise when someone connected...
10:32:01bobdaduckyeah he's mapmaking
10:32:02bobdaduckhe does that
10:32:19SkybaxI know
10:32:37SkybaxI was hinting
10:38:08raptorSDL2 RC4 is up
10:47:24raptorwatusimoto: what do you think about enabling/disabling engineer in-game via the Lua API?
10:47:32raptorthis issue: http://code.google.com/p/bitfighter/issues/detail?id=226
10:49:12watusimotoprobably
10:49:21watusimotoshould do that
10:50:04watusimotothe problem would be enabling/disabling mid-game
10:50:24watusimotoif you are carrying a resource item and the engineer gets disabled... or you are changing your loadout... etc.
10:50:39watusimotomaybe that could be enabled only at the beginning of the game?
10:50:46bobdaduckthen its useless
10:50:52bobdaduckJust enable it from the editor
10:51:03watusimotowhy is it only useful to change mid-game?
10:51:20watusimotois there a compelling use case that makes it worth the hassle and confusion?
10:51:33kaenhow about only disabling the ability to *deploy*?
10:51:43watusimotowell... actually, hold your thoughts, and tell me when I come back on
10:51:44kaensurely that's much simple?
10:51:47kaen+r
10:52:00watusimotoor hash it out amonst yourselves and tell me what we've decided :-)
10:52:07watusimotoback ater!
10:52:09watusimotobye!
10:53:18raptorbye
10:53:28bobdaduckbye
10:54:29raptorsee i brought this up (I think thread_ is asking for it?) because I have no idea if it's a good addition or not
10:55:04bobdaduckSo my first thought is just "delete engineer so its a nonissue"
10:55:08bobdaduckbut I'm willing to look at this.
10:55:46bobdaduckIt has obvious applications in dungeons, where a player has to find the "zone of engineering" in order to make a teleporter to get past a challenge
10:55:48bobdaduckor whatever
10:56:16bobdaduckperhaps a level where people can only engineer in certain places?
10:56:25bobdaduckThough that would be hard to manage with a global toggle
10:56:31raptorkaen / bobdaduck, can either of you see a reason to a Lua method 'getAllObjects' in levelgens or bots? It's available to editor plugins..
10:56:51bobdaduckuh
10:56:54kaengetAllObjects?
10:56:55bobdaduckThat would be nice
10:57:12kaenI thought there was a findAllObjects somewhere...
10:57:15raptoryeah, it just returns a list of *every* game object
10:57:20watusimoto Quit (Ping timeout: 248 seconds)
10:57:22kaenmaybe I'm just "remembering"
10:57:31raptorbut it's used only in plugins
10:57:33kaenlike bob "remembers" Z.A.P :p
10:57:42bobdaduckYOU NEVER PLAYED IT
10:57:45bobdaduckIT REALLY WAS THAT BAD.
10:58:03kaenI can see how it wa
10:58:04kaenwas
10:58:17kaenlike, those ship trails
10:58:26kaenI like all the particles though
10:58:30raptorseems like it could be done with other methods - like findObjectByType or findObjectById
10:58:31kaenalso lighting effects
10:59:34bobdaduckAlso teleporters.
11:00:23kaenhow about
11:00:27kaenunify them
11:01:14raptori can't tell who is talking about what..
11:02:46kaenfindObjects
11:02:47kaentakes a type, id, or nil
11:02:47kaenfor the behavior of *ByType, *ById, and getAllObjects respectively
11:02:47kaenraptor, ^
11:03:10kaen"<kaen> how about" onward is regarding the findObjects* methods
11:03:31bobdaduckOkay how about this
11:03:41bobdaduckwe can do particle effects and stupid showy stuff for no reason
11:03:50bobdaduckif you give me a lua method to findAllParticles
11:03:50raptorok, just got your messages kaen
11:03:57bobdaduckand let me setVel.
11:03:58raptor(I think your connection is bad?)
11:04:06kaenquite possible
11:04:23raptorhmm... unifying them..
11:04:43raptorI'm still not sure how i feel about returning *every* object in game..
11:04:44kaenI guess there's a quirk in that ById should only return a single object
11:05:14kaenscripters are responsible for their own shenanigans imo
11:05:33raptorheh, yes - we seem to keep coming back to that..
11:05:34kaenif you make a script that crashes or locks the server, you have more learning to do
11:05:51kaenI know it's like a slippery slope...
11:06:10kaenbut the way I see it you should either not do it, or do it well
11:06:27bobdaduckZOMG Brownies
11:06:53bobdaduckAnd engineer
11:07:59kaenhonestly, I can't find a purpose for finding all objects in the game either
11:08:16kaenmaybe you just want to clear the level and regenerate it?
11:08:30bobdaduckOr maybe I want to shift the entire level over by ten grid units
11:09:36kaenbut we should make an orthogonal API, and since we can get objects filtered by some criteria, it would be logical to assume we could get all of the objects
11:09:43bobdaduckor... Give everything velocity or something?
11:09:59kaensince we can get all of the objects, it would just be even less performant than having an API method
11:10:01bobdaduckYeah, just call the function a bunch of times for each object type
11:12:01kaenbobdaduck, I think you'll have much better results if you only animate things that have built-in velocity
11:12:14kaenvelocity data is expensive when it's non-zero
11:12:20bobdaduckWall:setVel()
11:13:43bobdaduckturret:setVel()
11:13:59raptorah, that brings up a good point: getAllObjects would return walls.. and probably mostly walls, which you cannot manipulate
11:14:41kaenfunction (uselessFeature) if bobdaduck:hasTheCash() then kaen:implement(uselessFeature) else keepDreaming() end end
11:15:03bobdaduckrofl
11:21:11koda Quit (Read error: Connection reset by peer)
11:48:33Flynnn has joined
11:50:30bobdaduckFlynn
11:50:41bobdaduckWhat happened with the runes levelgen?
11:50:42Flynnnhmm yes?
11:50:52FlynnnI assumed you were not interested in it
11:51:06bobdaduckI'd still like the code, if that's possible
11:51:11FlynnnI thought I gave it to you?
11:51:16bobdaducknope
11:51:38kaenI've started putting my levelgens and plugins in a git repo
11:51:54bobdaduckalso raptor: Burst:assignPlayer(bobdaduck) would be really useful in my DnD level
11:51:55kaenwell, in separate git repos actually
11:52:23kaenperhaps Projectile:assignOwner(playerInfo)
11:52:31kaenalthoguh
11:52:45kaeniirc, Burst doesn't inherit from Projectile :<
11:52:57raptornope
11:53:03bobdaduckyeah something like that
11:53:24kaenmadness
11:53:35bobdaducknothing inherits from projectile
11:53:40Flynnnone sed bob
11:53:41bobdaduckyou can't even do phaser:setVel()
11:53:42Flynnn**sec
11:53:52bobdaduckI'm doing lunch pretty soon here..
11:54:13raptoryou would know it, but i've already tried twice to clean-up the projectile stuff...
11:54:20raptor*wouldn't
12:09:38bobdaduck Quit (Remote host closed the connection)
13:03:35raptorkaen: if you would like to add to my Lua TODO, check it out here: http://beta.etherpad.org/p/019Lua
13:04:40BFLogBot Commit: df73cd43f0f0 | Author: buckyballreaction | Message: Lua API: Handle deprecation of TeamInfo()
13:09:46Flynnnwhoa
13:09:50Flynnnwhen did etherpad come back to life?
13:12:40koda has joined
13:21:27raptori've always used it for quite notes in contests, etc
13:34:12Watusimoto has joined
13:35:52Flynnn Quit (Ping timeout: 264 seconds)
13:38:21Watusimotohi
13:41:18bobdaduck has joined
13:41:57bobdaduckSup dawgs
13:43:06raptorhi Watusimoto
13:43:27raptorWatusimoto: I started a Lua API TODO list for myself (since I've decided to 'own' this piece of 019..)
13:43:31raptorhere: http://beta.etherpad.org/p/019Lua
13:43:36Watusimotolucky you!
13:43:37raptorfeel free to comment, make additions
13:47:32Watusimoto Quit (Read error: Connection reset by peer)
13:47:55Watusimoto has joined
13:48:19WatusimotogetTeamIndx --> there was a reason I chose this name... probably not needed any more... renaming is fine
13:48:35Watusimotoa couple of quick hits on the discussion items
13:49:11WatusimotogetCPUTime is useful if you want to know how long it's been since something happened... perhaps letting you build custom timer like things
13:49:24raptorwe already have getMachineTime
13:49:24WatusimotoI don't knwo what getTime does... time left in game?
13:49:32Watusimotook, we only need one
13:49:39Watusimotosubscribe should be on bf
13:49:52raptorgetTime is: getCurrentMove().time
13:50:23Watusimotoprobably not needed... I think that value is passed to the onTick handler
13:50:34Watusimotoand that's the only place where it really makes sense to use it
13:52:04raptorok
13:52:19raptorbobdaduck, please chang your color
13:52:33Watusimotomessaging should be made consistent -- I guess it makes sense on the bf object... bf:teamMsg(bot:getTeam(), msg)? though bot:teamMsg(msg) is kind of nice...
13:52:36bobdaduckuh okey
13:52:42raptorbeautiful, thanks!
13:53:14Watusimotoremove levelgen:addLevelLine -- I think yes, or at least leave it as is and remove from the documentation
13:53:36Watusimotobobdaduck: everything can be added "manually" now
13:53:47bobdaducknope
13:53:48bobdaduckslipzones
13:53:50WatusimotoI think every object has a constructor -- one of the students did that last summer
13:53:51bobdaduckand worms
13:53:54bobdaduckand walls
13:54:08WatusimotoI'm sure walls do
13:54:15bobdaduckand any projectile other than phaser and burst
13:54:18raptoroh yeah...
13:54:20Watusimotoslipzones missing can be considered a bug
13:54:20raptoruhh
13:54:29Watusimotoand worms, too, probably
13:54:39bobdaduckWorms can be considered a bug
13:54:40bobdaduckin general
13:54:44WatusimotoI agree
13:55:10bobdaduckI mean they're almost cool but not of any real value as a seperate entity. I can see levelgens doing some cool things with them
13:55:17Watusimotoso those are my answers to your questions
13:55:26Watusimotoat least my first take
13:55:52Watusimotodid you guys come to any conclusions about the levelgen question?
13:55:54raptorfor messaging: bot:teamMsg goes right to its own team, but levelgen:teamMsg requires an argument for which team
13:56:00bobdaduckWhich question was that?
13:56:25Watusimotobobdaduck: should levelgens be able to activate engineer
13:56:29bobdaduckoh right.
13:56:38Watusimotoraptor: definitely move levelgen: to bf:
13:56:40bobdaduckNo we should just remove engineer in the first place.
13:56:46bobdaduckBut uh
13:56:57bobdaduckI guess I can see uses for it but its hard as a global toggle
13:56:59Watusimotomaaaaaybe we keep the ones on bot?
13:57:15bobdaduckIf we could enable engineer on certain ships... Now THAT would be interesting.
13:57:20WatusimotoI think it would make sense to limit toggle to startup phase
13:57:25bobdaduckBut I dont' see a whole lot of use for it other than dungeons
13:58:23Watusimotolevelgens seem tailor made for dungeons
13:58:41WatusimotoI'll make a deal with you bobdaduck: I'll remove engineer if I can also remove dungeons
13:58:48bobdaduckDeal
13:58:52bobdaduckGet rid of all of them
13:58:53Watusimotowhat?
13:59:03Watusimotoyou might want to sober up and reassess
13:59:14bobdaduckWhat no. I hate playing dungeons xD
13:59:40bobdaduckDungeons are fun to make because you think outside the box and design challenges and stuff, but playing them? Ugh.
14:00:48bobdaduckAnyway, I don't see a whole lot of use for levelgen toggles of engineer except for dungeons.
14:01:14Watusimotomy thought was that a levelgen should be able to basically control the game parameters
14:01:27Watusimotoengineer ability being one
14:01:40bobdaduckif you could do it on a ship-to-ship basis, you could restrict engineer to certain areas and stuff
14:01:59bobdaduckNo wait, I see one map case:
14:02:22bobdaduckEvery 2 minutes, forcefields close up each base, and engineer is enabled to build bases
14:02:37bobdaduckand then after the 2 minutes engineer is disabled and each team fights each other.
14:03:24raptorWatusimoto: there is one levelgen method that i'm not sure about moving: lua_addWall
14:03:37Watusimotoadds a wall!
14:03:44bobdaduckwut.
14:03:51bobdaduckThat exists? xD
14:03:56raptorwhich only works in start-up phase
14:04:00Watusimotowhat do you mean unsure about moving/
14:04:04raptorit is what replaces addLevelLine
14:04:19WatusimotoI thought you could add walls any time
14:04:39raptoroh wait
14:04:41raptoryeah...
14:04:57raptorusing WallItem.new() then bf:addItem()
14:05:00bobdaduckYou can but they won't show up
14:05:03raptorso we don't need addWall
14:05:07bobdaduckright?
14:05:08raptorcan I remove?
14:05:13raptorbobdaduck: right
14:06:02Watusimotoget rid of it or hide it for backward compatibility
14:06:07Watusimotohell, just kill it
14:06:46raptori've been killing stuff that is rarely used or unused completely - i figure out which ones by searching the forums and testing bobdaduck's knowledge :)
14:07:00bobdaducklol
14:07:16raptoroh yuk
14:07:21raptormazeracer uses gridsize
14:07:29bobdaducklawl
14:08:52Watusimotoit can probably unuse it
14:15:37Flynnn has joined
14:16:11bobdaduckHey again Flynn
14:16:15Flynnnhello
14:16:16Nothing_Much Quit (Read error: Connection reset by peer)
14:16:37Nothing_Much has joined
14:16:43bobdaduckDid you forum pm the runes levelgen to me?
14:16:47Flynnnno
14:19:04Flynnnhttp://pastebin.com/9De0PqGr
14:20:13bobdaduckYOU HAVE FUNCTIONS THAT DO NOTHING BUT PRINT GLOBALMSGS.
14:20:43bobdaduckxD
14:20:46FlynnnI do not see any functions excusively dedicated to calling globalmsg
14:20:47bobdaduckthanks!
14:21:02bobdaduckthey're all the stuff at the top
14:21:12Flynnnoh, those are example functions
14:21:27Flynnnfill them with whatever you want to happen when the rune executes
14:21:33bobdaduckyeah
14:23:40BFLogBot Commit: bc035fab690f | Author: buckyballreaction | Message: Lua API: Remove levelgen:addWall and levelgen:addLevelLine. Use standard bf:addItem() with a WallItem.new() now. Mazeracer is quite broken now..
14:24:24BFBuildBot_build containing revision(s) [bc035fa] on bitfighter-linux-x86_64 is complete: Failure [failed build] Build details are at http://buildbot.bitfighter.org/builders/bitfighter-linux-x86_64/builds/95 blamelist: buckyballreaction@gmail.com
14:24:36BFBuildBot_build containing revision(s) [bc035fa] on bitfighter-osx-i386-cross is complete: Failure [failed shell_1] Build details are at http://buildbot.bitfighter.org/builders/bitfighter-osx-i386-cross/builds/110 blamelist: buckyballreaction@gmail.com
14:25:13raptoroh crud what did i do
14:25:56bobdaduckxD
14:26:22bobdaduckInteresting programming style! Gonna be fun to disect
14:26:36Flynnnthankyou, I did a bit of a fail though
14:26:46Flynnn"DetectPlayers" should be closer to the top
14:26:53BFLogBot Commit: 856b70979d07 | Author: buckyballreaction | Message: Finish removing addLevelLine and addWall
14:27:09Flynnnas that would more closely replicate the call order
14:27:17bobdaduckhah
14:27:49BFBuildBot_build containing revision(s) [856b709] on bitfighter-linux-x86_64 is complete: Success [build successful] Build details are at http://buildbot.bitfighter.org/builders/bitfighter-linux-x86_64/builds/96
14:28:04Flynnnbut I used a lot of functional design
14:28:13bobdaduckI like how main() is in the middle
14:28:18FlynnnI separated the algorithm into approximately three subsections
14:28:24BFBuildBot_build containing revision(s) [856b709] on bitfighter-osx-i386-cross is complete: Success [build successful] Build details are at http://buildbot.bitfighter.org/builders/bitfighter-osx-i386-cross/builds/111
14:28:27Flynnnthe topmost subsection is your configuration section
14:28:38FlynnnIt requires zero programming, and you can add, remove, modify runes
14:28:47bobdaduckyeah
14:28:51FlynnnI view those functions at the top as "variables"
14:29:02raptorFlynnn: when did you start scripting??
14:29:05Flynnnbelow the "static variables (including those functions" comes the p
14:29:07raptor(another scripter on the loose!!)
14:29:11FlynnnRaptor: back in 2008
14:29:21FlynnnxD sorry raptor
14:29:25raptorI meant for bitfighter...
14:29:27raptorheh
14:29:36Flynnnoh for bitfighter
14:29:43bobdaduckAs far as I know, just the one script for me?
14:29:50FlynnnYeah, pretty much
14:30:00FlynnnI have toyed with some bots in the past, but nothing substantial
14:30:29Flynnnanywho, below the static vars,
14:30:33Flynnnyou have your main program
14:30:38bobdaduckyeah
14:30:39Flynnnwhich consists of two parts
14:30:40raptorso that means our scripters-on-the-loose now include thread, bobdaduck, fordcars, quartz?, Little_Apple?, and Flynnn
14:30:55Flynnnlol, what is a scripter on the loose?
14:30:55bobdaduckPretty much just thread and me.
14:31:07Flynnnfordcars has done some interesting stuff
14:31:12FlynnnI'd count him in too
14:31:19raptorwe better release 019 before more people use things i've removed from 018a...
14:31:24bobdaduckford just does bots, little_apple has only done like one or two, quartz doesn't, and flynn hasn't really anything yet
14:31:50Flynnnwell I have theorized about creating a ninja bot
14:32:00Flynnnwhich creates a large polygon area around it
14:32:14Flynnnand then uses some line-intersection to "delete" portions of the polygon
14:32:18Flynnnalong hte paths of bullets
14:32:23Flynnnall bullets currently flying
14:32:31Flynnnthen teleporting to the nearest location where the polygon is not deleted
14:33:05Flynnnthe problem is it doesnt take time into account, so as far as actually dodging something, instead of just teleporting to a "safespot" it could end up crossing paths with a bullet before it gets anywhere
14:33:05bobdaduckHow do you define these runes here flynn?
14:33:15bobdaduck{{90-45}, {-1,0.3, 0.1},
14:33:38Flynnnalright, so, I think I have alot of the runes commented out for some reason
14:33:47Flynnnbut
14:33:52Flynnn--{{90}, {-1,0.3, 0.1}, {180}, {0,0.5,0.1}, {270}, {0.1,0.5,0.1}, {360}, {0.1,0.5,0.1}, {90}, {0.1,0.5,0.1}, MightyDiamondOfPower}, let's look at this syntax
14:34:24Flynnnhmm
14:34:26Flynnnaha
14:34:26Flynnnyes
14:34:34Flynnnokay, so you have it grouped by a couple of things
14:34:38Flynnnbasically, that is your dataset
14:34:43Flynnnthe dataset is organized like this:
14:34:51FlynnnS, T, S, T, S, T, F
14:35:12Flynnnwhere S is a status
14:35:14Flynnnand T is a timing
14:35:24Flynnnbasically, you have to keep the right timing T between each status S
14:35:31Flynnnand those are organized chronologically
14:35:37Flynnnso that when you get to the last bit, F gets activated
14:36:02Flynnnso a status just represents what your ship needs to look like
14:36:07Flynnnthere are two kinds of data that a status can rely on
14:36:11FlynnnType one: a relative data
14:36:14FlynnnType two: a static data
14:36:24Flynnnyour ship's rotation is a static data, because it does not rely on the status that came before it
14:36:39Flynnnhowever, there exists another type of "status"
14:36:45Flynnnin fact, there are three
14:37:07Flynnnthere is only one static status type, and that is the rotation of your ship
14:37:16Flynnnthe other ones are relative, and are relative to the previous status
14:37:17Flynnnthese are:
14:37:28FlynnnDistance from where ship was when previous status was reached
14:37:40FlynnnPositional angle from swhere ship was when previous status was reached
14:37:55Flynnnand there also may be exact X-Y relative coords, but I may have removed that
14:38:08Flynnnbut angle and distance are definitely in there
14:38:16Flynnnyou CANNOT use a relative datatype for the first status in a sequence
14:38:27Flynnnyou also CANNOT have a timing before the first status, because timings are relative to the last status
14:38:35Flynnnboth are relative to the last status
14:38:42Flynnnthat's why these sequences always start with a status
14:38:46Flynnnanyways
14:38:54Flynnnlet me explain timings
14:39:32raptorWatusimoto: i'm not sure if i can deprecate getTeamIndx() without breaking scripts... it's on the BfObject
14:39:59Flynnnso basically, here is how it works
14:40:00raptorso any child with getTeamIndx() would have to be handled, too...
14:40:04Flynnneach timing is a set of three values
14:40:08raptormaybe I should just break scripts..
14:40:15Flynnnraptor: go for it
14:40:19bobdaduckjust break scripts
14:40:24bobdaduckadding an e is not hard
14:40:25Flynnnraptor: it'll give the scripters something to do
14:40:45bobdaduckif you could, give me like a personalized error message "getTeamIndx() needs an E now dude"
14:41:00raptorthat what I mean...
14:41:00bobdaduckso that I remember 2 months from now when 019 is released
14:41:02raptorI can't really do that
14:41:07raptorbecause so many objects use it
14:41:26Flynnnraptor: so the internal systems use it too?
14:41:36raptorsince it's object oriented
14:41:42Flynnnmakes sense
14:41:43Flynnnhmm
14:41:47raptorit's on the parent BfObject:getTeamIndx()
14:41:52WatusimotoI don't see why you can't... you create the new method, then have the old one print a message then reidrect to the new one
14:42:19raptorso you can use it on anything like: ResourceItem:getTeamIndx() or FlagItem:getTeamIndx()
14:42:48Watusimotoyes... I'm not sure I see the problem?
14:42:56FlynnnRaptor: since it's implemented at the toplevel, changing it at the top level should change it for all objects?
14:43:00Watusimotois the problem in the bf code, or in the fact that lots of scripts use it?
14:43:19raptorok, maybe I'm misunderstanding something..
14:43:35Watusimotoor maybe I am...
14:43:37raptorin Lua, if I print a deprecation warning for BfObject:getTeamIndx()
14:43:57raptorwill that correctly catch calling getTeamIndx() on *any* game object?
14:44:10raptorall in Lua here - nothing c++ ish
14:44:18Flynnnhmm
14:44:22Watusimotounless an object overrides it, it will catch any object
14:44:43Flynnngive it a shot and see what happens maybe?
14:45:02FlynnnI'm not sure if lua will respect the object oriented nature of the definition
14:45:08Watusimotowrite a test case! :-)
14:45:14Watusimotolua might not, but c++ will
14:45:32Watusimotolua doesn't understand c++ obj hiearchy
14:45:47Watusimotoand mostly doesn't need to
14:47:04Flynnnstill here, bob?
14:47:36bobdaduckyes
14:47:44FlynnnSo, do you follow everything so far?
14:48:04bobdaduckI understand the concepts
14:48:11Flynnnalright
14:48:15Flynnnbut?
14:48:29raptoryes, but i'd need to keep the method around in c++... which I don't want to
14:48:55bobdaduck90-45 though
14:48:55bobdaduckwhat is that.
14:48:55bobdaduck45?
14:48:55bobdaduckxD
14:48:55bobdaduckwhat the actual numbers do I don't see yet.
14:49:09Flynnnyeah, 90-45 is 45 lol
14:49:17bobdaduckwhy not just say 45?
14:49:30Flynnnbecause 90-45 helped me think spacially, and helps stay true to what I'm actially doing
14:49:36Flynnnwhich is rotating backward from 90
14:49:41bobdaduckoh okay xD
14:50:09Flynnnanyways
14:50:16FlynnnEach timing is made up of three values
14:50:21Flynnnthe first value is the "early" terminator
14:50:27Flynnnthe second value is the "late" terminator
14:50:38Flynnnand the third value is the "minimum" progressor
14:50:46FlynnnLet's say you are at STATE_1
14:51:01Flynnnif you go to STATE_2 sooner than the "early" terminator, you fail
14:51:15Flynnnif you go to STATE_2 later than the "late" terminator, you fail
14:51:31bobdaduckokay
14:51:40Flynnnand if you do not stay at STATE_1 longer than the "minimum" progressor, you do not progress, but you do not fail
14:52:04Flynnnso you have to stay at STATE_1 for at least as long as the third value, constantly
14:52:24Flynnnafter that, you can only move to STATE_2 after the early terminator, and before the late terminator
14:52:28bobdaduckgot it
14:52:30Flynnnokay
14:52:38Flynnnso between every state, there is a timing
14:52:44Flynnnand we just explained timings
14:52:48Flynnnso, time to explain states
14:53:05Flynnnbasically,
14:53:18Flynnneach state is made up of three numbers
14:53:29Flynnnit *looks* like some of them are made up of only one
14:53:30bobdaduckif you are at the third point of a rune you are in state_3
14:53:40Flynnnbut all of them are actually made up of three numbers
14:53:47Flynnnwell, here
14:53:48Flynnn--{{90}, {-1,0.3, 0.1}, {180}, {0,0.5,0.1}, {270}, {0.1,0.5,0.1}, {360}, {0.1,0.5,0.1}, {90}, {0.1,0.5,0.1}, MightyDiamondOfPower},
14:54:03Flynnn{90} is the STATE_1 descriptor
14:54:11Flynnn{-1,0.3, 0.1} is the TIMING_1 descriptor
14:54:18Flynnn{180}, is the STATE_2 descriptor
14:54:26Flynnn{0,0.5,0.1} is the TIMING_2 descriptor
14:54:31Flynnnsee how that works?
14:54:35raptorwhy am i seeing words like 'MightyDiamondOfPower' in a bitfighter level script?
14:54:38bobdaduckoh okay
14:54:51FlynnnI made a levelgen that adds runes to the game lol
14:54:57bobdaduckI'm working on a global script with Flynn that implements a magic system into the game
14:55:01bobdaduckDon't worry bout it
14:55:15raptorhaha... hehe... aaaaa
14:55:40Flynnndon't look at me, he's the one who requested it lol
14:55:43Flynnnanywho
14:55:46bobdaduckBitfighter needs spellcasting
14:55:51bobdaduckAnyway.
14:55:54Flynnndo you see how that works?
14:55:56bobdaduckYeah
14:55:59Flynnnalright
14:56:02Flynnnso,
14:56:06raptori see bobdaduck has bent you to his will...
14:56:08Flynnnpick a random state descriptor
14:56:18Flynnnraptor: I was admittedly curious about an algorithm I had been theorizing
14:56:20bobdaduckWell my first iteration of it wasn't working for some reason
14:56:28Flynnnraptor: this was a perfect opportunity for me to test my pattern matching algorithm
14:56:55bobdaduckAll I wanted Flynn to do was fix my script. He disappears for a bit, tinkering in his cave, and comes out with... This... This.
14:56:57Flynnnbob: I completely deleted whatever you had
14:56:58bobdaduckxD
14:57:14FlynnnxD bob, you realize I shoed you this script a month ago, right?
14:57:18Flynnn** showed
14:57:20bobdaduckyeah
14:57:26Flynnnlol alright,
14:57:26raptorhaha, wow
14:57:46FlynnnI did not realize you jsut wated me to fix it xD
14:57:50FlynnnI wanted to try a new algorithm
14:57:52Flynnnlol sorry
14:57:54bobdaduckNah
14:57:57bobdaduckyours is better
14:57:59FlynnnI just really wanted to try my patternmatcher
14:58:20FlynnnxD well, thankyou, I'm sure it's not all that great, but anyhow!
14:58:25Flynnn{0,0.5,0.1}
14:58:28Flynnnerm
14:58:30Flynnnwhy did I paste that
14:58:31Flynnnunkown
14:58:34Flynnnanyways
14:58:46Flynnncan you grab a random little state descriptor from the above definition? :)
14:58:49Flynnnany will do
14:58:52Flynnnjust grab it and paste it xD
14:59:12bobdaduckExcept for all the programmer terms. I do much better with brospeak.
14:59:16bobdaduckBUT STILL.
14:59:27bobdaduck{{90-45},
14:59:30bobdaduckthat?
14:59:40Flynnnyessir! although technically, {90-45} is the descriptor array
14:59:50bobdaduckyeah yeah yeah
14:59:56FlynnnxD sorry, my apologies
15:00:05bobdaduckBrospeak!
15:00:05bobdaduckxD
15:00:07FlynnnI'm tryign to be a clear as possible, I don't meant to knit-pick
15:00:12bobdaduckNah its okay
15:00:24Flynnnthankyo uxD I will tone it down a bit
15:00:38Flynnnalright so {90-45} comes out as {45}
15:00:42Flynnn{45} is a state descriptor
15:00:49Flynnnall state descriptors are made up of 3 numbers
15:01:06Flynnnyes, {45} is three numbers
15:01:19Flynnnno, I am not high
15:01:24bobdaducklol
15:01:31Flynnn{45} = {45, nil, nil} in lua
15:01:36Flynnnthe last two numbers are nil
15:01:41Flynnnso we can just ignore them altogether
15:01:47bobdaduckyeah
15:01:51Flynnnalright! good good
15:01:53Flynnnso,
15:02:03Flynnnthe first number describes the static state variable
15:02:07Flynnnwhich is the required ship rotation
15:02:15Flynnnthe next two are relative to the previous status
15:03:16Flynnnbut I'm ahead of myself
15:03:18Flynnnbasically,
15:03:24bobdaduckI've commented down here
15:03:34Flynnnlol
15:03:35bobdaduck--angle, angle relative, or distance from previous spot
15:03:46Flynnnoh I see
15:03:55Flynnnwhen any of those three slots are nil, that means it's ignored
15:04:05Flynnnall of the non-nil conditions have to be true
15:04:12bobdaduckyeah
15:04:12Flynnnnow the second two "numbers" are actually four numbers
15:04:21Flynnnhere is an example of a full state descriptor:
15:04:46raptori have re-found the joys of 'netcat'
15:04:56Flynnn{ship_rotation, {minimum_relative_angle, maximum_relative_angle}, {minimum_relative_distance, maximum_relative_distance}}
15:05:00FlynnnIE,
15:05:16Flynnn{90, {45,90}, {100, 10000}}
15:05:29Flynnnwould require that your ship be facing rotation 90
15:05:41Flynnnand that it had moved in a direction between 45 and 90 from its previous state
15:05:48Flynnnand that it had moved a minimum distance of 100 from that state
15:05:54bobdaduckyeah
15:06:00Flynnnand that's it
15:06:04Flynnnthat's how you define a rune
15:06:30Flynnnnow, as I said, the program is spearated into "three" parts
15:06:41bobdaduckyeah
15:06:42Flynnnthe first part, are the static vars, which I just explained. those include the functions at the top
15:06:47Flynnnthe second part
15:06:50Flynnnis where all the other parts are
15:06:53Flynnnthat is the main program
15:06:58Flynnnthe main program is separated into two sections
15:07:03Flynnnthe patternmatch algorithm
15:07:10Flynnnand the patternmatch syntax specifiers
15:07:23Flynnnthe patternmatch algorithm can accept *ANY* data
15:07:29Flynnnall the patternmatch algorith cares about is timing
15:07:46Flynnnit takes all the state specifiers, and gives them to a *different* algorithm, to see if your ship ahs matched those states
15:08:02Flynnnso you can put *anything* into those state specifiers, as long as you rewrite the status algorithms accordingly
15:08:33bobdaduckI have no idea what you just said, but I won't use it anyway so we're good
15:08:33Flynnnfunction WriteStatusData(playerinfo) specified what data should be saved, whenever a player attains a certain state
15:08:37raptorbobdaduck: you OK with me break getTeamIndx...?
15:08:37Flynnnoh, okay
15:08:59bobdaduckraptor: I'd prefer you give me some sort of "hey doofus, you forgot to add the new e in getTeamIndex()"
15:09:03bobdaduckso that I know what to fix
15:09:07bobdaduckbut other than that, sure.
15:09:27Flynnnhmm
15:09:28raptorhmm..
15:09:30Flynnnokay, I am done talking
15:09:34FlynnnI must get back to my studies
15:09:35bobdaduckhmm
15:09:40bobdaduckAlright
15:09:44FlynnnI will not send the script again, so be sure to save it
15:09:51bobdaduckyeah
15:10:05bobdaduckI'll work on it when I get home, and I'll call you again when I get lost!
15:10:07bobdaduck^.^
15:10:39bobdaduckBut thanks! This is going to work really well.
15:10:55FlynnnI am glad :)
15:11:00Flynnnjust be warned
15:11:04Flynnnthe beta test was a mess
15:11:06bobdaducklol
15:11:07Flynnnspam was everywhere
15:11:12FlynnnI got more wtfs than an acronym splicer
15:11:19bobdaduckrofl
15:11:23bobdaduckyeah I remember
15:11:33Flynnnit really only works when one person is in the server
15:11:38Flynnnotherwise the messages are too confusing
15:11:43Flynnnwell,
15:11:44Flynnnspecifically
15:11:57bobdaduckIn my *final* version, I'll probably hide the messages and/or only enable them on the tutorial level
15:11:57Flynnnyou can only *TEACH* people when there is one person in the server
15:12:04Flynnnbe careful
15:12:10Flynnnsome of the messages need to remain
15:12:15Flynnnotherwise you will find yourself shooting in the dark
15:12:34Flynnnif everyone in the server knows how to use the runes, then you can have as many peope as you want
15:12:38bobdaduckyeah
15:12:39Flynnnbut if a newcommer joins a room with five people...
15:12:46bobdaducklol yeah
15:12:59Flynnnthat's why a pvmsg would be so very nice
15:13:10Flynnnglobalmsg is just too... spammy xD
15:13:14bobdaduckyeahhh
15:13:19Flynnnbut privatemsg would allow each player to receive only their own stuff
15:13:40Flynnnif somebody can get the xcode revision working, I'll see about adding privatemsg myself
15:13:52Flynnnbut I don't have time to deal with either of those thigns tbh xD
15:14:00FlynnnI don't even have time to be here! what am I doing
15:14:13Flynnnthe people in ##math are ignoring me xD
15:14:35Flynnnthey are all really sucked into something
15:15:11bobdaduckThere is a #math irc channel. lol
15:15:19Flynnnyes lol
15:15:29Flynnn(fx)*(hx) = (fhx^2), right?
15:15:35FlynnnI know, simple question
15:15:46Flynnnbut this guy I'm watching said (fx)*(hx) = (fhx)
15:16:01raptorha
15:16:04bobdaducklol
15:16:12bobdaduckI might even be able to do that one!
15:16:21Flynnnand I'm trying to figure out if I'm crazy or not xD
15:16:26bobdaduckFoil right?
15:16:36FlynnnYeah, or distributive property
15:16:50Flynnnwe're multiplying (fx + g)(hx + j)
15:16:55Flynnnwhich becomes
15:17:04Flynnn(fx)(hx + j) + (g)(hx + j)
15:17:06Flynnnwhich becomes
15:17:18Flynnn(fx)(hx) + (fx)(j) + (g)(hx) + (g)(j)
15:17:21Flynnnwhich becomes
15:17:41Flynnnfhx^2 + fxj + ghx + gj
15:17:47Flynnnbut the guy on this video says it becomes
15:17:50Flynnnfhx + fxj + ghx + gj
15:18:03raptormaybe it's a different kind of math..
15:18:08bobdaduckYeah
15:18:11Flynnnsame kind of math, definitely
15:18:19bobdaduckYeah um
15:18:42bobdaduckI'm pretty sure (fx)(hx) does not beome fhx
15:18:52bobdaducklike... There are two xs there.
15:18:54Flynnnright
15:18:57Flynnnnow,
15:19:03Flynnnfx + hx would be: x(f+h)
15:19:05Flynnnbut that's different
15:20:00Flynnnmeanwhile, everyone else is asking things like:
15:20:05Flynnn"Algebraist, is it possible then to say that 1/x is infinitely discontinuous as x *approaches* 0? or how can I classify this function?"
15:20:07bobdaduckrofl
15:20:13bobdaduckI see that.
15:20:19Flynnnlol did you join #math?
15:20:22bobdaduckyeah
15:20:26Flynnnoh yes I see that you did
15:20:56Flynnnlol my favorite quite is:
15:21:00Flynnn"infinitely many infinities"
15:21:10bobdaduckrofl
15:21:11Flynnn** quote
15:21:20Flynnnand that is a butterfly proof, or whatever
15:21:23Flynnnor something
15:21:29Flynnnbutterfly derivative
15:21:30Flynnngah I dunno
15:21:43bobdaduckIt doesn't even matter man. Once you have infinitely many infinites
15:21:47FlynnnI remember half of htis crap, I just want to know if my instructor is crazy or not
15:21:50Flynnnwell apparently it does,
15:21:53bobdaduckmath has accomplished its purpose and is no longer useful to humanity.
15:21:55Flynnnbut you see, infinity is undefined
15:22:05Flynnnwell this is apparently basic calculus
15:22:09Flynnnwhich they use a ton in electronics xD
15:22:21bobdaduckInfinitely many infinites. Like what even.
15:22:30Flynnnwell as you approach infinity
15:22:37Flynnnalthough actually
15:22:41Flynnnit probably has to do with set theory
15:22:47Flynnna set of infinit sets, each set containing infinite numbers
15:22:55FlynnnI dunno
15:23:19bobdaduckIt sounds more like I have infinitely many infinites of infinitely many infinitely many infinites.
15:23:31bobdaducklike at that point, it is just stupid and you should quit school.
15:23:41Flynnnthat sounds like a 5D set xD
15:23:47Flynnnwhich is apparently useful in string theory
15:24:07Flynnnstring theory postulates that hte universe has about 11 dimensions
15:24:16Flynnnor at least string theory uses that postulation
15:24:21bobdaduckSomeone needs to go ahead and disprove string theory already
15:24:24Flynnnwhyyy am I beking a knowitall sorry
15:24:56BFLogBotAs a math atheist, I think I should be excused from this. -- Calvin, to Hobbes
15:25:14bobdaduckwow.
15:25:16raptorwow
15:25:24Flynnnwhat are the odds
15:25:36bobdaduckimprobability formula, complete!
15:25:36Flynnndid.
15:25:39Flynnndid that just happen?
15:25:47Flynnnwho programmed that bot?
15:25:52Flynnnmath math math math math math math
15:26:10Flynnnthere must be a timeout
15:26:20raptori programmed it
15:26:24Flynnnoh I see
15:26:31Flynnndid you add anything to watch the context of conversation?
15:26:37bobdaducknope xD
15:26:52Flynnnlike, if a word shows up a bunch, find a quote with that word in it? xD
15:26:52raptorit parses a fortune file to serve up calvin and hobbes quotes when ever you mention its name or it receives a ping request
15:26:58raptorthey're random
15:27:01Flynnnwow
15:27:18FlynnnBFLogbot is sentient
15:27:18BFLogBotIf you care, you just get disappointed all the time. If you don't care nothing matters so you are never upset. -- Calvin
15:28:24FlynnnBflogbot, can you hear me?
15:28:24BFLogBotI have plenty of common sense, I just choose to ignore it. -- Calvin
15:28:32raptorhaha
15:28:36Flynnnlol
15:28:48FlynnnBflogbot, what do you think about sadness?
15:28:48BFLogBotKnow what I pray for? The strength to change what I can, the inability to accept what I can't and the incapacity to tell the difference. -- Calvin
15:29:45FlynnnBflogbot, are you god?
15:29:45BFLogBotYou don't get to be mom if you can't fix everything just right. -- Calvin
15:30:06raptorit's not really eliza
15:30:37FlynnnxD I'm just asking purposefully calvin related questions to see if I get aresponse by accident that makes any sense
15:30:40Flynnnbut I'll stop annoying
15:30:49Flynnndamnit what do I do
15:30:54Flynnnthis instructor's entire lesson
15:30:58raptoryou can see the source code here: http://code.google.com/p/bitfighter/source/browse/?repo=tools#hg%2Fbitfighter-logbot
15:31:00Flynnnrevolves around the fact
15:33:17Flynnn!log
15:33:29FlynnnBFLogBot
15:33:29BFLogBotThat's the problem with science. You've got a bunch of empiricists trying to describe things of unimaginable wonder. -- Calvin
15:33:41Flynnnif (message.equals(getNick().toLowerCase())) {
15:33:41FlynnnsendAndLogMessage(channel, "I'm a real boy.... I think?");
15:33:52FlynnngetNick() returns "BfLogBot" does it not?
15:33:52BFLogBotThat's the problem with nature, something's always stinging you or oozing mucous all over you. Let's go and watch TV. -- Calvin
15:34:05raptoryou can private message the bot and test things, too..
15:34:10Flynnnsorry,
15:34:15raptor:)
15:34:16BFLogBotMy life needs a rewind/erase button. -- Calvin
15:34:27raptoryes, getNick() should be its current name
15:34:44Flynnnit seems to not want to say "I'm a real boy.... I think?"
15:35:07raptorheh - that might be broken..
15:35:23Flynnnoh xD sorry hmm
15:35:29raptoroh wai
15:35:36raptoryou're looking in the wrong place
15:35:40raptorthat is the old java-based bot
15:35:41Flynnnhmm? oh dear
15:35:44Flynnnoooh
15:35:46Flynnnthis is old code
15:35:54raptorthe one named 'bitfighter-logbot' is the one
15:35:59Flynnngot it, okay, thanks
15:36:03raptorthe new, shiny python bot!
15:36:48Flynnnhehe
15:38:55BFLogBotMom and dad say I should make my life an example of the principles I believe in. But every time I do, they tell me to stop it. -- Calvin
15:47:45Flynnn!
15:48:01raptor?
15:48:24FlynnnI wanted to see if it would still private message me if I sent an invalid command if I senti t in a public channel
15:49:04raptorone thing to remember is that a PRIVMSG (private message) command is actually *any* message to a channel or person
15:49:19FlynnnI see
15:49:31Flynnnhere's what I don't get,
15:49:48Flynnndef on_pubmsg(self, c, e):
15:49:51Flynnnwe append to the log
15:49:58Flynnnthen we do command if it beigns with !
15:50:17FlynnnI've checked append_to_log, and I see nothing that sends a calvin and hobbes message
15:51:47raptor:)
15:51:54raptori did some trickyness
15:52:01raptorlook in the modules folder
15:52:11raptori basically register a module on bot startup
15:52:18raptorthen it duplicates the event to the module
15:52:36raptorso there's an equivalent on_pubmsg in the module
15:53:07FlynnnI see
15:53:43Flynnnso you created some kind of... amalgamated object?
15:53:50Flynnnwith both Fortune, and BfLogBot in it?
15:53:50BFLogBot"The dynamics of inter-being and mono logical imperatives in Dick and Jane: A study in psychic transrelational gender modes". Academia, here I come. -- Calvin
15:54:11Flynnnsuch that when on_pubmsg gets called, both classes receive the call?
15:54:15raptoryes
15:54:22Flynnninteresting
15:54:23raptorwell
15:54:48raptorbasically, the bot receives the on_pubmsg event, then it sends it off to *any* modules that are registered
15:54:58raptorand it will handle it itself, too, of course
15:54:59raptorso
15:55:21Flynnnoh on_pubmsg is an event, not a function
15:55:28raptori tried to make it relatively easy to expand logbot to do other nifty things if wanted
15:55:42raptorit is a function
15:55:50Flynnnhmm
15:55:50raptorbut it's tied to the event
15:55:55FlynnnI see
15:56:04Flynnnso BFLogBot listens to an event from client
15:56:04BFLogBotWeekends don't count unless you spend them doing something completely pointless. -- Calvin
15:56:06Flynnnand so does Fortune
15:56:12raptoryes
15:56:22Flynnnfascinating
15:56:26BFLogBotBut Calvin is no kind and loving god! He's one of the old gods! He demands sacrifice! -- Calvin
15:56:28BFLogBotSometimes one should just look at things and think about things without doing things. -- Calvin
15:57:07raptorso theoretically you can add other modules that do different things on any IRC event
15:57:23raptorall in the same bot
15:57:36raptori thought it was nifty..
15:57:38raptor:)
15:58:28bobdaduckI dunno enough about coding bots to be impressed
15:58:44bobdaducksorry xD
15:58:48Flynnnit's more about object oriented design
15:58:50Flynnnthan bots
15:58:57Flynnnand, impressive design, yes
15:59:02bobdaduckWell... I don't know enough about that either!
15:59:11raptori steal code from the best!
16:00:30bobdaducklol
16:00:36Flynnnlol
16:00:55raptoralright bobdaduck.. i have coded in a warning for the getTeamIndx...
16:01:01raptorit will get quite annoying, too
16:01:06raptorwhich is good..
16:01:11bobdaducklol?
16:03:43raptoryeah, because people use getTeamIndx in onTick().. so... a deprecation warning will be very noisy in onTick()
16:03:58bobdaduckoh.
16:04:03bobdaducklol
16:04:13bobdaduckWell great!
16:05:07Nothing_Much Quit (Quit: l8r)
16:05:34Watusimotofaaaaling asleeeeep
16:05:39Watusimotogoooood niggghhht
16:05:47raptornight
16:05:49Watusimoto Quit (Remote host closed the connection)
16:06:00raptori think that was his head hitting the keyboard..
16:06:09bobdaducklol
16:06:37bobdaduckUm
16:06:39bobdaduckShy request
16:06:44bobdaduckCan I have a dedicated button?
16:07:14raptorexplain
16:07:16bobdaducklike, H or something
16:07:30bobdaduckAnd when the player presses it, then *all* it does, is notify the levelgen.
16:07:41raptor??
16:07:52bobdaduckBut then in levelgen, I have an onLevelgenButtonPressed() method
16:07:53raptorexplain
16:07:57raptorohhh
16:08:00raptorha
16:08:12bobdaduckMy original solution to this was the flag drop key
16:08:19raptorhmm..
16:08:19bobdaduckbut um, that isn't tracked by levelgens either.
16:08:46bobdaduckAnd then my final solution was the runes system that I am now working on.
16:09:04bobdaduckBut there's no real way to communicate directly with the levelgens for the player, short of either chat commands
16:09:11bobdaduckor stealing a module.
16:09:53raptorso a client key that is just 'do something' that sends an event to the server which then makes it available to levelgens..
16:10:06bobdaduckYeah.
16:10:22raptorit sounds intriguing...
16:10:29raptori'd run it by watusimoto, too..
16:10:38raptorseems like that might be good to debug with
16:11:36bobdaduckI didn't think of that
16:11:48bobdaduckI was thinking more like, actually doing things with.
16:12:10bobdaducklike if I wanted someone to be able to have like, some speed launcher boost thing, but it only activates when they pull the ripcord
16:12:27bobdaduckSo they get all into position and then hit H and then they go flying
16:12:50bobdaduckRather than using either timers, chat commands, or module use
16:14:20bobdaduckOr when I implement quests into DnD in 019, have a "chat with NPC" key
16:14:43bobdaduckBut... Yeah I guess it would be good for debugging
16:15:39SkybaxSounds nifty
16:16:29raptorhaha
16:17:35bobdaduckAlso wizards in DnD kind of suck and need to be able to cast fireball.
16:17:40bobdaduckBUT THAT'S BESIDES THE POINT.
16:18:00bobdaduckHeading out
16:18:02bobdaduckseeyall
16:18:05bobdaduck Quit (Remote host closed the connection)
16:30:44raptorgotta go!
16:30:47raptor Quit ()
16:32:54thread_ has joined
16:37:09thread_ Quit (Ping timeout: 250 seconds)
16:38:17Wuzzy Quit (Quit: Wuzzy)
16:39:23FlynnnWhat about localscripts with the ability to send an arbitrary message to server?
16:39:36Flynnnlevelgen that runs on client
16:40:00Flynnnbut that cannot create objects like a normal levelgen
16:40:08Flynnnand on the flipside, has access to kepresses and other things
16:40:20kaenhmm
16:40:37kaenthat sounds nicer, but it would require adding yet another script context
16:40:39Flynnnpossibly too complicated, but it would be an end-all-be-all solution
16:40:41Flynnnright
16:40:41kaenand methods for it
16:40:55kaentough call
16:41:07kaenif it were up to me, I'd thumbs-down the whole issue
16:41:10kaenat least for 019
16:41:17FlynnnYeah, better to keep things clean
16:41:23BFLogBot Commit: e3c7967e226f | Author: buckyballreaction | Message: Lua API: Deprecate :getTeamIndx() on PlayerInfo and BfObject objects. Use :getTeamIndex(), with an 'e', instead
16:41:26kaenthere's just so much going into 019 already
16:41:53Flynnnno, I agree. things like this can screw up a major endeavor
16:43:04kaenI'd be interested to hear what wat thinks, though
16:43:26kaenhe's been hard to read on the whole issue levelgens letting you almost write your own game
16:44:01Flynnnit might be better to generalize them as "serverscripts" as they don't really do levelgen anymore xD
16:44:08Flynnnbut yeah, it's a tough call
16:44:24Flynnna game can lose its identity if there is *too much* creative power
16:44:49kaenI like the idea of building something flexible enough to be able to do it with
16:45:11Flynnnwell, you could go down the mechanical rout
16:45:14Flynnn** route
16:45:20kaenbut bitfighter is a space game. it has ships. you crash into asteroids. your main weapon is a phaser
16:45:24kaenyou shouldn't be able to add in swords
16:45:35Flynnnit's complicated, but if you gave people the ability to add "circuits"
16:45:47Flynnnwhich, could open doors, or soemthing
16:45:54Flynnnall you need is a wire, and a NOT gate
16:46:01Flynnnand people could build entire CPUs
16:46:17Flynnnbut again, that makes it something different
16:46:18kaenI've actually had this exact thought
16:46:22Flynnninteresting
16:46:35Flynnnwell the biggest problem, besides the game kind of changing attitudes, is the physics
16:46:43Flynnnyou'd want to be able to make walls be attatched to joints
16:46:49Flynnnrigidbody walls, basically
16:47:19Flynnnthat would take a revamo of the entire engine xD
16:47:38kaenhave you seen the contest entries?
16:47:47kaenthere's a soft body simulation in one of the levels
16:47:53Flynnnoh wow, that's interesting
16:47:56kaenwith resource items
16:48:02kaenDough
16:48:08Flynnnhaha
16:48:23Flynnnso you're thinking entire walls and levels made out of resource items?
16:48:34Flynnnor maybe some kind of "wallsphere" that can be moved by code?
16:48:41Flynnn** wallcircle
16:49:07kaenactually it was more of a counterpoint to making bitfighter a sandbox
16:49:23Flynnnit performed terribly? xD
16:49:32kaenlike, it's cool that scripters can do that stuff, but that's not at all what bitfighter was meant to be
16:49:39Flynnnright
16:49:42bobdaduck has joined
16:49:42kaenit does okay under about 50 particles
16:49:48kaenit would look better on a local machine
16:49:59Flynnndefinitely
16:50:23kaenbut back to my point, it's actually bad for both parties when stuff like that happens
16:50:40Flynnnbitfighter gets confusing and loses its vision
16:50:48kaenit chips away at bitfighter's distinct character, but also, bitfighter is a terrible engine for that sort of thing
16:51:10kaenthere are legitimate game libraries for lua or javascript that would require less effort and yield better results
16:51:22FlynnnI actualy spent many years with a game that went down this route
16:51:26Flynnnit completely lost its personality
16:51:35kaenso my thought really is just that we should keep bitfighter bifightery
16:51:38Flynnnbut none of the members are willing to let go of custom worlds. programming wasn't even allowed!
16:51:43Flynnnbut the worlds weren't force-themed
16:51:50kaenheh
16:52:03FlynnnYeah, I do agree
16:52:08Flynnnnot that I should have any say in it anyways
16:52:21FlynnnI'm just suggesting ideas, and offering opinions xD but don't lose your game character, ever
16:52:29Flynnn** your game's character
16:52:35kaenit's nice to have some input
16:53:02kaenexposing myself to a wide variety of perspectives has forced me to evolve my opinions on the topic
16:53:27Flynnnthat's good!
16:53:38kaenI went from "sandbox everything" to "no game mechanic violations" to "let's make a whip out of goal zones" to where I am now.
16:53:51bobdaduck checks logs
16:53:52Flynnnhaha
16:56:25bobdaduckI... I still don't understand what is being discussed.
16:56:58Flynnnhow far back did you read?
16:57:13bobdaduckfrom when I left work
16:57:42kaenlua API
16:57:52kaenhow potentially ridiculous it is
16:58:03kaenalso how to make it more ridiculous
16:58:08Flynnnpossible sandbox directions for bitfighter, negative reprecautions
16:58:29Flynnnhuhuh becuzz there cun bee positiive rebrecussions
16:58:39Flynnnsorry xD mawking myself
16:58:41Flynnn** mocking
16:59:00bobdaduckheh
16:59:04bobdaduckI used to be super against such things.
16:59:09bobdaduckI appear to have embraced it.
16:59:18Flynnnit's a fun novelty for a while
16:59:20bobdaduckAs a positive argument though
16:59:27bobdaduckI have used it for good.
16:59:28kaenI myself made the opposite transformation
16:59:39bobdaduck hosts gladiators server
16:59:52Flynnncustom game modes *would* be cool
16:59:56Flynnnand not too sandboxy
17:00:04Flynnnand actually
17:00:05bobdaduckCome take a look at this server I've got here.
17:00:10Flynnndoesn't the levelgen api allow for that?
17:00:14FlynnnxD sorry I have to keep doing math
17:00:17kaena little occupied atm
17:00:24kaennew game modes? no
17:00:25bobdaduckoh aight
17:00:30kaengame modes are written in c++
17:00:43bobdaduckDungeons/emperors revenges/mothership/DnD
17:00:46kaenI made my own game mode once. like a PvE survival game
17:01:20Flynnncan a server script set the location for a player?
17:01:24kaenlike, it was a real game mode in c++
17:01:25bobdaduckeasily
17:01:29Flynnnexcellent
17:02:42bobdaduckbahaha
17:02:45bobdaduckI thought we found all those
17:02:55bobdaduckmap "waluigi" on kaen test
17:03:01Flynnnfound all what? xD
17:03:03bobdaduckis one of the ones that crashes the server
17:03:08Flynnnlol
17:03:16kaenwhoa. it *still* crashes the server?
17:03:31bobdaduckyeah
17:03:35kaenbummer
17:03:47bobdaduckno that was funny
17:03:52bobdaducknobody plays kaen test anymore anyway
17:04:00kaengood
17:04:03kaengood...
17:04:10kaenhehe
17:04:12kaenhehehahahah
17:04:16kaenaHAHAHAHHAHAHAHAH
17:04:18kaenMUAHAHAHAHHAHAHHAHAH
17:04:23bobdaduckrofl
17:06:45Flynnn._. what justh appened? xD
17:07:08bobdaduckNothing
17:07:19Flynnnexcellent :)
17:07:23bobdaduckthat server just makes people go a little nutsy
17:07:33Flynnnhehehehhehe
17:07:36FlynnnI see
17:08:15Flynnn Quit (Quit: Leaving)
17:08:37bobdaduck Quit (Remote host closed the connection)
17:36:41Nothing_Much has joined
17:55:38raptor has joined
17:55:38ChanServ sets mode +o
17:56:13raptorkaen's master plan to get people to not play on kaen test: just keep it alive long enough for people to get tired?
17:56:59bobdaduck has joined
17:57:45bobdaduckWhat do I do about sleazy mechanics?
17:59:49raptoruhh... this is bitfighter..
18:01:49bobdaduckuh
18:02:04bobdaduckwhat do I do about sleazy... Game... Developers...?
18:02:37bobdaduckThere! Now its on topic.
18:04:41raptoruhh.. what's your definition of sleazy?
18:05:34bobdaduckIt doesn't matter. Whatever definition you use.
18:06:54bobdaduckbecause this guy is sleazy for pretty much all meanings of the word.
18:07:11raptorChumpChange?
18:07:21bobdaducksure.
18:07:35raptorI admit that I do not know what you are talking about
18:07:43raptor goes back to Lua API fixes
18:07:51bobdaduckSleazy car mechanics!
18:07:54bobdaduckI don't know what to do!
18:08:53BFLogBot Commit: 4c1ec185e3cb | Author: buckyballreaction | Message: Lua API: Remove bot:getTime() and bot:getCPUTime(). They were never used and are unneeded since we getMachineTime()
18:09:59bobdaduckraptor come see this new level
18:11:36bobdaduckWell I mean, I guess whenever you're ready.
18:12:14raptork
18:28:02bobdaduck Quit (Remote host closed the connection)
18:35:06Skybax Quit (Quit: Skybax)
19:02:05Nothing_Much Quit (Quit: l8r)
19:34:23kaen#3 watusim...@bitfighter.org
19:34:23kaenAh yes, I could have been clearer! (and see kaen, I AM using google code for bugs now!)
19:34:29kaenheh. I missed that gem
19:34:47raptorhaha
19:39:33kaenhmm. level db screenshots seem completely broken now
19:40:23raptorwatusimoto made some change to those...
19:40:40kaenyep. looking through them right now
19:40:51kaenI sure could use a blame-annoted view of this file right now
19:41:00raptorhaha
19:41:20raptoractually... do those exist?
19:41:28raptorbecause that would be awesome!
19:42:45raptoroh hey.. mercurial supports that..
19:43:16raptorhg blame
19:43:22raptorneat!!
19:45:58kaennot sure if you saw the -u flag
19:46:00kaenit's awesome
19:46:36raptorperfect!
19:47:13raptori can now point fingers to my heart's content
19:48:14raptorthis is so cool
19:50:48raptori likw -luw
19:50:53raptor*like
19:52:16raptoractually -l seems a bit useless
20:24:08koda Quit (Quit: koda)
20:50:40Nothing_Much has joined
20:50:40Nothing_Much Quit (Changing host)
20:50:40Nothing_Much has joined
20:54:22Flynnn has joined
20:54:24Flynnn Quit (Client Quit)
20:55:01Flynnn has joined
21:14:01raptorkaen: what should our convention be with regards to spaces/tabs for lua scripts distributed with bitfighter
21:14:13raptorbecause right now, everything i've written has one tab for an indent
21:14:31raptorand everything watusimoto has written has a mixture of 2, 3, and 4 spaces for indent..
21:15:16raptorand i'm going crazy..
21:59:32Flynnn Quit (Quit: This computer has gone to sleep)
22:15:14BFLogBot Commit: 86a68982af37 | Author: buckyballreaction | Message: I found and returned the missing 'e's
22:15:15BFLogBot Commit: b94e3f02539f | Author: buckyballreaction | Message: Fix mazeracer
22:17:31Flynnn has joined
22:22:49Flynnn Quit (Quit: This computer has gone to sleep)
22:42:24BFLogBot Commit: 114c17613602 | Author: buckyballreaction | Message: Be consistent with neutral and hostile team indices in Lua. Fixes issue 224
22:56:24Flynnn has joined
23:24:21BFLogBot Commit: 7c689b0ad869 | Author: buckyballreaction | Message: Don't break deprecated getTeamIndx() methods with newly changed Team.Neutral and Team.Hostile
23:38:54raptornight
23:38:57raptor Quit ()
23:45:51Flynnn Quit (Remote host closed the connection)

Index Search ←Prev date Next date→

These logs were automatically created by BFLogBot on irc.freenode.net.