#bitfighter IRC Log

Index Search ←Prev date Next date→

IRC Log for 2013-04-13

Timestamps are in GMT/BST.

00:01:16kaencool... only have to dis-upgrade twice to get the unstable debian branch...
00:01:22kaendist-upgrade*
00:01:39raptoris there to be another debian soon? (7?)
00:02:07raptorand are you switching distros?
00:02:20raptor(to debian)
00:02:36kaennot soon, by my mark
00:02:58kaenbut I am probably switching to debian
00:05:37kaenbut it does not look like bitfighter will make it into "testing" before the next release
00:06:01kaenalthough I'm not sure exactly what the probationary period is from unstable to testing
00:08:04kaenbefore the next debian release*
00:09:31kaenin other news, packing and building on debian is mercifully simple
00:09:42kaenthe hardest part is definitely the miles of red tape
00:10:23raptorpackaging is simple? how so?
00:10:41raptormy experience with building debs has not been friendly... but that was before our cmake system
00:17:02kaenwell, I guess that's a relative statement
00:17:16kaenit's simple compared to learning a new PHP framework and hooking it up to a bitfighter client
00:17:22raptorhaha, ok
00:17:29raptorI believe you now..
00:18:08kaento learn CakePHP I had to read a book and most of the api docs
00:18:24kaenpackaging for debian has been only a dozen or so wiki pages and a short manual section
00:18:39BFLogBot Commit: b53cc2efb8ae | Author: watusimoto | Message: Get rid of (almost) all vestiges of Vector representations of loadouts. Still needed for communication between client and server, but otherwise mostly gone.
00:19:30kaenwhoa, nice commit wat
00:19:52raptorhooray!
00:20:08raptorand it's huge!
00:20:08Watusimotoit was just ridiculous
00:20:25Watusimotothat's what she said!!!!
00:20:32Watusimotosorry, couldn't resist
00:20:38kaenbahaha
00:20:41raptorhey.... rated G channel?
00:20:51raptor looks at commit
00:21:00Watusimotoindeed-- she said it was a huge checkin. What did you think I meant?
00:21:13kaenand also she said it was ridiculous
00:21:25raptorthe mind has been poisoned - never again will I watch network television
00:21:26kaenboth accurate assessments of the situation.
00:21:51raptorok so
00:22:00raptorthe new representation of a loadout is a string?
00:22:22kaenthat's just INI parsing I think
00:22:30raptordinner! back soon
00:23:20fordcars Quit (Ping timeout: 245 seconds)
00:29:22BFLogBot Commit: 9fd66454a4b3 | Author: watusimoto | Message: Hmmmm... displayMessagef looks very similar to displayMessage...
00:29:30Watusimotothis commit seems too obvious to be right. I feel I must be missing something.
00:33:53kaenlooks right to me :x
00:39:56raptorback!
00:40:08BFLogBot Commit: 73ddb63ad9b1 | Author: watusimoto | Message: dyanmic_cast -> static_cast
00:40:09raptorso I read somewhere that varargs lists are evil
00:40:15raptoris this true?
00:41:00Watusimotothey seem pretty necessary to me
00:41:14Watusimotoevil, sure, but a necessary evil
00:41:24Watusimotokind of like she said jokes
00:41:56raptorI think the workaround was to use vector
00:42:07raptorbut I never got a clear reason on why they were evil..
00:42:08Watusimotoa vector of what?
00:42:18raptorofwhatever
00:42:23raptorinstead of varargs
00:42:27WatusimotoVector<whatever>
00:42:32raptorexactly!
00:42:32Watusimotovarargs can be mixed types
00:42:41raptorthey can?
00:42:51raptorthat's... sick, wrong... and useful
00:43:03Watusimotoprintf("%s %d", "types", 2)
00:43:23Watusimotothat's what she said!
00:43:28raptorsigh
00:43:29Watusimoto(about varargs, that is)
00:43:32masterkaen has joined
00:43:36kaen Quit (Ping timeout: 260 seconds)
00:43:42masterkaen is now known as kaen
00:43:52BFLogBot Commit: 73ddb63ad9b1 | Author: watusimoto | Message: dyanmic_cast -> static_cast
00:43:55kaen Quit (Changing host)
00:43:55kaen has joined
00:44:24Watusimotoso until Vector can take random stuff, I think we're stuck with varargs
00:45:27raptorhmmm...
00:45:38WatusimotoI really really really prefer typed languages like C++ and Java to those looser languages, but varargs does point out a small chink in the armor
00:46:04Watusimotosometimes you just need to pass any old junk and make it work
00:46:21raptorso... what is the horribleness of it? the fact that if it was a public method, you could potentially exploit flaws?
00:46:55WatusimotoI'm not sure. I dislike it because I had a related bug once that took me a week to fix
00:47:30raptorit seems bad for some reason, but I can't quite seem why - maybe just because it goes against the overall 'typed' feel of the language?
00:47:59Watusimotothat's probably it
00:48:14fordcars has joined
00:48:22Watusimotothat and the fact that it is difficult to pass them on to other functions
00:48:46Watusimotohence the 500 variations we have of compressing them into a string
00:49:41raptormaybe we should force string building first, before passing in stuff..
00:50:28Watusimotothat would only make the problem worse -- more string building code everywhere
00:51:36raptori find that two-part epoxy is a good solution to broken plastic stupid stuff
00:52:03Watusimototo what probem is two-part epoxy not a good solution?
00:52:38raptorgood question - I'm not sure there is an exception
00:52:43Watusimotovarargs
00:52:54raptorok you win
00:55:50Watusimotoso we have tons of code in ClientGame like this:
00:55:51WatusimotogetUIManager()->getGameUserInterface()->renderEngineeredItemDeploymentMarker(ship);
00:55:58Watusimoto(chosen completley randomly)
00:56:24WatusimotoI am thinking that client game should not worry about which component of the user interface will do the rendering
00:56:34WatusimotoI am thinking that the code should look like this:
00:56:54Watusimotoui->renderEngineeredItemDeploymentMarker(ship);
00:57:07Watusimotoand that the ui object should do this:
00:57:12Watusimoto>getGameUserInterface()->renderEngineeredItemDeploymentMarker(ship);
00:57:36Watusimotobecause why should clientgame care where the rendering is done?
00:57:51Watusimotothe updside is a more streamlined clientGame object
00:57:55raptorok
00:58:08raptorso that means loads of virtual methods on the UI class?
00:58:11Watusimotothe downside is a huge number of passthrough functions in the ui object, whatever that is
00:58:54kaen!raptor
00:58:54BFLogBottlhIngan toQDuj!
00:58:57Watusimotobut this seems a start of getting UI specific code out of ui
00:59:09Watusimotosorry, out of clientgame
00:59:46raptorhi
00:59:53kaenhi, sorry
00:59:58kaenI edited the logbot ini
01:00:05raptorso please tell me, because I'm not sure, what is ClientGame supposed to be?
01:00:13raptorkaen: heh.. you found it!
01:00:16Watusimotonot sure
01:00:29- *raptor* !kae *raptor* !kaen
01:00:52WatusimotoAt one point, I thought we should rename our gameType objects to game, and client/servergame to client/serverGameContext
01:01:05Watusimotobut it didn;t really work fully in my mind
01:01:16raptorhandle non-UI general application logic
01:01:30raptorhmmm
01:01:35Watusimotoso the gametype is kind of the type specific variations on the game
01:01:37kaenit routes game stuff to ui logic afaict
01:01:45kaenclientgame, I mean
01:01:45Watusimotoand the game is the general framework in which gametypes sit
01:01:59kaenyes, that is my understanding.
01:02:03Watusimotobut should it?
01:02:30kaenwell, gametype-specific logic is good to keep out of clientgame (or whatever it should really be called)
01:02:31WatusimotoI am thinking that clientgame should say "hey, we need to render a message that such and such has happend,. You -- ui guy, make it happen!"
01:02:49raptormaybe it could be by what ServerGame does..
01:02:53Watusimotowhat's happening now is more like my former boss, where it's doing a lot of micromanaging
01:02:58raptor*could be defined
01:03:56Watusimotoit does seem to be the central communication hub through which lots of stuff happens
01:04:19Watusimototake this fn for example
01:04:21Watusimotovoid ClientGame::gotPingResponse(const Address &address, const Nonce &nonce, U32 clientIdentityToken)
01:04:21Watusimoto{
01:04:21Watusimoto getUIManager()->getQueryServersUserInterface()->gotPingResponse(address, nonce, clientIdentityToken);
01:04:21Watusimoto}
01:04:33raptorand do ClientGame/ServerGame even need to inherit from the same object?
01:04:41Watusimotoso the thing generating the ping response has no concept of a UI, so it tells the game about it
01:05:00Watusimotoand here, game figures out which UI the info should be displayed on and passes the message on
01:05:10Watusimotoyes, they probably do
01:05:20kaenI would so they do, as well
01:05:29Watusimotoin this example, I would think that gotPingResp should just say:
01:05:33kaenServerGame is authoritative, ClientGame is written to display whatever the ServerGame on the other end says, with some interpolation, so it's truely just a client
01:05:39Watusimotoui->gotPingResponse(address, nonce, clientIdentityToken);
01:05:47Watusimotoand then ui would have the
01:05:52WatusimotogetQueryServersUserInterface()->gotPingResponse(address, nonce, clientIdentityToken);
01:05:53Watusimotoin it
01:06:14Watusimotothis seems a lot cleaner, but is basically just creating about a thousand pass through functions like that
01:06:18Watusimotowhich I hate
01:06:54Watusimotobut if we want to separate ui code from game logic, I think this is the way
01:07:17Watusimotoand if we want to do any testing, we need to seperaet the ui from the game logic
01:07:36kaentesting!?
01:07:51kaenI'm on board :)
01:07:53Watusimotomaybe only a little
01:07:55raptorah yes, the test framework we're going to make our GSoC student do...
01:08:01kaena little is a good start
01:08:11Watusimotoone test would be a big start
01:08:15kaena reasonable goal would be a testable servergame class
01:08:19Watusimotothough i do have one test coded in lua
01:08:30kaenI have a google-test framework setup with one test
01:08:44kaenit gets to the point of adding bots to the game, but fails to simulate any frames for some reason...
01:09:18raptoroooo Baconator is online
01:09:19Watusimotothe stuff I want to test usually lives in clientgame, because that's where I have been doing far more work
01:09:21kaenthe problem I ran into before any UI stuff (which could be mocked out for testing) was the dependencies
01:09:38kaenbetween core classes
01:09:53Watusimotoyou probably need to load all the classes en masse
01:09:58kaenexactly
01:10:06kaenbut some things should almost be singletons
01:10:10kaenfoldermanager
01:10:14Watusimotobut then you can do more sophisticated tests! :-)
01:10:21kaenmake them injectable
01:10:34kaenbut grab them if they're not injected
01:11:21kaenmSingletonPointer = singleton ? singleton : Singleton::get();
01:11:51Watusimotoso you were suggesting folderManager has too many dependencies on othe robjects?
01:11:52kaensingletons are difficult to test though if you need more than one instance
01:12:22kaenno, that games absolutely can not be usefully instantiated unless you hand it a folder manage
01:12:31kaenmanager
01:12:54WatusimotoI see
01:13:21Watusimotobut the game cannot hope to function without one
01:13:33kaenright, but it should just get one
01:13:36kaenif it isn't handed one
01:13:48kaenthat would make it easier to test
01:14:09Watusimotoit should just get one if it isn't handed one?
01:14:27WatusimotoI don;t understand that
01:14:55BFLogBot Commit: 945d81cf624b | Author: watusimoto | Message: Formatting
01:15:24Watusimotosee, I am looking at the code!
01:16:58raptorI'm slowly beginning to think my loadout changes aren't gone to merge well..
01:17:23kaenokay, http://pastie.org/7469929#64
01:17:34Watusimotoso instead of having getSettings()->getFolderManager() everywhere, we should have mFolderManager, and have that set at construction?
01:17:43raptorooo, you found a dynamic_cast somewhere.. I thought I killed most of them
01:17:56kaenyes, that would be good
01:18:06kaenand just set the default value to null
01:18:11kaenif it's null, get the singleton
01:18:19kaenfoldermanager isn't, but it could be
01:18:22kaeneventmanager is
01:18:52kaenthat link is the minimal amount of work required to instantiate a "still untestable" game object
01:19:17WatusimotoI see, and you'd like to reduce that code
01:19:20kaenyes
01:19:24kaennew ClientGame()
01:19:34raptora test-driven code base! say it ain't so!
01:19:48kaen designs the interface of his dreams
01:19:55Watusimotoand the code you want to run is the for (int i = 0; i < 10000; i++) { game.idle(20); } but
01:19:57Watusimotobut
01:19:59Watusimotobit
01:20:02Watusimoto!!!
01:21:00kaenyes
01:21:39kaennotice I *had* to declare gServerGame in my test
01:21:43kaenand set it...
01:21:47Watusimotoso... if you had no bots, you wouldnt need the botdir, you could have a default (empty) level... seems that we could pare that down a fair bit
01:21:50kaenand put a frowny face
01:22:35kaenright now I believe it has to have at least one level
01:22:44kaenbut I wrote that code several months ago to be honest
01:23:24kaenoh, and this is actually code for testing luaw
01:23:30kaenso that's why there are bots
01:23:39kaenthey had to kill each other
01:26:13Watusimotowell, I've got go get to bed, but I'll look at that code again tomorrow and see if I can find a way to simplify things. What would be helpful is if you could post an altered version of that with what you would like ot be able to do
01:26:38Watusimotoi.e. how would you write that test if things worked as you wished they did
01:26:38kaenokay I'll take another look at it
01:26:54kaengot it
01:26:57Watusimotothen I can see if there's anything I can do to help make that happen
01:27:18Watusimotoalright. gentlemen. good night
01:27:39Watusimoto(I'll read the logs tomorrow)
01:32:47Watusimoto Quit (Ping timeout: 276 seconds)
01:37:18- *kaen* !rapto *kaen* !raptor
01:37:22- *kaen* !rapto *kaen* !raptor
01:37:23- *kaen* !raptor *kaen* !raptor
01:37:31- *kaen* raptor *kaen* raptor
01:44:25raptornight!
01:44:58fordcarsnight!
01:45:34kaen Quit (Ping timeout: 256 seconds)
02:15:21koda has joined
02:16:07Platskies has joined
02:20:26Platskies Quit (Ping timeout: 248 seconds)
02:26:41koda Quit (Quit: K Thx Bai)
02:29:07Platskies has joined
02:34:08Platskies Quit (Ping timeout: 245 seconds)
02:39:50koda has joined
02:41:27Platskies has joined
02:44:57koda Quit (Ping timeout: 245 seconds)
02:45:24fordcarswow, are you joning or not, guys?
02:46:13raptor?
02:46:27koda has joined
02:47:03fordcarssorry, koda and platskies kept joining/leaving
02:47:15fordcarsprobably internet problems
02:49:01koda Quit (Client Quit)
02:52:39fordcarshey raptor, how do I get lua to get the relative directory "robots"?
02:52:54fordcarswell the path
02:53:26raptornot sure - you're entering new ground here!
02:53:58fordcarsheh, I am making a high scores systeme for my super-awesome bot :P
02:54:03raptoralso note that your discovery of the ability to use IO may mean we remove that - it's a huge risk
02:54:16fordcarshaha ok :P
02:54:42raptoror at least replace it with some mechanism to write to a certain location (but none else)
02:56:28fordcarsok :P
02:57:44fordcarsio.wirte("bitfighter.ini", "w") -- ouch
02:58:12raptorOUCH
02:59:08fordcarsmaybe I will just go without high scores then
03:01:35Platskiesfordcars: My internet is third-world :(
03:01:39PlatskiesI'm sorry
03:02:20fordcarsit's fine, I won't go crying over it ;)
03:02:49fordcarsI have slow internet too sometimes
03:03:11fordcarsbut happily the dude that lives in our basement will be going soon :D
03:03:31PlatskiesMy internet just plain drops out for periods of time, it's really sucky
03:04:20fordcarsthe dude in my basement downloads on average 4 gb per day, haha
03:05:08Platskieson average my ISP's site says usually 600 MB to a GB
03:05:20Platskiesmebbe more
03:06:10fordcarsah ok
03:06:43fordcarsbefore the dude in our basement came, we were using around 25 gb per month
03:06:57fordcarsnow we use 150 gb per month :P
03:34:26fordcarsYES I am finally done my super-epic bot!
03:35:56fordcarsposting on forums,,,
03:36:45kaen has joined
03:37:05fordcarsPlatskies: did you ever make a complaint about your internet? This kinda sucks
03:37:15fordcarsto your ISP
03:37:30PlatskiesWell I don't think we should even have broadband, lol
03:37:38fordcarslol
03:37:40PlatskiesBut we somehow got it :D
03:37:58Platskieshave you heard about the NBN in Australia?
03:38:14fordcarsnope
03:38:31PlatskiesBasically a huge fibre network we're supposed to get
03:38:47PlatskiesIt's not clear when our suburb gets it though :(
03:39:07kaenbuilding 018a against debian unstable...
03:39:15kaenfingers crossed gentlemen
03:39:33Platskies"Construction to commence within one year - we will commence construction in your area from Nov 2012 in phases with last construction scheduled to commence in Mar 2014*."
03:39:36Platskies>.<
03:39:37fordcarskaen: is there going to be a bot contest soon?
03:39:40kaenhehehe
03:39:46kaennot that
03:39:46kaenI know of
03:39:53fordcarshaha
03:39:58fordcarshaha
03:40:00kaenbut I know sam would make an entry
03:40:08kaenand I would too
03:40:11fordcarsok, I will post my bot on forums
03:40:13fordcarswell duh
03:40:46fordcarsall the devs do, and a few "MooBots" A_Bot show up in the contest too ;)
03:41:25fordcars*Moobots/a_bots
03:41:38fordcars*A_Bots
03:43:02fordcarsbut your/sam's bot would probably be a bot to hack in the bank of america or something :P
03:44:37kaenI was thinking it could be a combat bot competition
03:44:57kaenplay the bots against each other like a player tournament
03:47:36fordcarsnice!
03:47:51fordcarswe may need spectator mode, though
03:49:38kaenI've actually been working on it
04:10:11fordcarsneat
04:19:42fordcarsbrb
04:24:10fordcars Quit (Ping timeout: 245 seconds)
04:53:17fordcars has joined
05:43:02Platskies Quit (Ping timeout: 276 seconds)
05:50:40raptorI cannot change the laws of physics!
05:51:59raptor Quit ()
06:19:04bobdaduck has joined
06:59:24bobdaduck Quit (Remote host closed the connection)
07:06:09fordcarsargh
07:10:25fordcars Quit (Ping timeout: 245 seconds)
07:10:53fordcars has joined
07:19:54fordcars_ has joined
08:03:39fordcars_night guys!
08:07:05fordcars Quit (Ping timeout: 245 seconds)
08:07:55fordcars_ Quit (Ping timeout: 245 seconds)
08:46:55Platskies has joined
10:10:05Platskies Quit (Remote host closed the connection)
10:17:38Watusimoto has joined
10:43:17LordDVG has joined
13:09:50LordDVG Quit (Remote host closed the connection)
13:16:20kaen!raptor
13:16:20BFLogBottlhIngan toQDuj! And two-part epoxy advocate.
13:59:21LordDVG has joined
14:22:57raptor has joined
14:22:58ChanServ sets mode +o raptor
14:23:25kaen!raptor
14:23:25BFLogBottlhIngan toQDuj! And two-part epoxy advocate.
14:23:34raptorha!
14:24:04kaenI got this from a Debian dev today: "Please contact me if you need assistance."
14:24:10kaenwhich I guess is a green light
14:24:35raptoryay!
14:25:40Watusimoto Quit (Ping timeout: 255 seconds)
14:28:00Watusimoto has joined
14:28:26sam686 Quit (Read error: Connection reset by peer)
14:30:00raptorWatusimoto: did you see the response from the TNL guy?
14:30:04kaenokay, I just ran into this while reading the new maintainer stuff:
14:30:05kaenThe license must not restrict anyone from making use of the program in a specific field of endeavor. For example, it may not restrict the program from being used in a business, or from being used for genetic research.
14:30:08raptorI'm not sure how to interpet it..
14:30:21kaenwhich immediately makes me think of Triangle
14:30:29raptorinteresting
14:30:41raptorwe may not be compliant..
14:30:54kaen dies
14:31:25raptorhowever - I've had the idea of replacing it with this: http://sites-final.uclouvain.be/mema/Poly2Tri/
14:31:45kaenhttp://packages.debian.org/squeeze/libtriangle-1.6
14:31:48kaenit's non-free
14:31:48raptorin fact, we almost did once (for 015a)
14:31:52kaenwe'd have to be non-free too
14:31:56raptorbooo
14:32:23kaenaccording to debian, bitfighter is therefore not "free" software :x
14:32:26kaeninteresting
14:32:39kaen inspects the linked library
14:32:41raptorwell, they have a 'high' standard
14:32:44Watusimoto Quit (Ping timeout: 264 seconds)
14:32:48sam686 has joined
14:32:48ChanServ sets mode +v sam686
14:33:04kaencertainly
14:33:54raptorif you want to know, the issue with poly2tri was: we got Triangle to work first, we were tired of spending time on bot zone generation, and we were eager to release..
14:34:33kaenthat's as good a reason as any
14:35:17raptorbut I have had plans to try and adapt it and use in stead of Triangle - it seems to be the best alternative, although I haven't tested to see how well it works..
14:39:46raptorthe 'effeciency' table in the above poly2tri link mentions other possible libraries, too
14:40:04raptorply2tri is a google code project: https://code.google.com/p/poly2tri/
14:40:06kaenokay if I'm reading the source correctly there is only one call to triangle
14:40:14kaendoes that sound accurate?
14:40:30kaenBotNavMeshZone.cpp:513
14:40:32raptoryep - we actually tried to abstract it enough so that we could use other libs
14:40:36raptorif needed
14:41:03kaenwell, that's probably the easiest library transplant any could ever do
14:41:21kaenas long as I can muscle into and out of poly2tri's format
14:42:31kaenplus there's already debugging facilities and a working system to test it with
14:43:24raptorthe one thing I remembered worrying about was this: https://code.google.com/p/poly2tri/issues/detail?id=34
14:43:49raptorone of the issues says there is a problem with coincident vertices
14:44:48raptoroh neat, there's several repos for different langauges...
14:44:55raptor'default' is c++ I think
14:46:12raptorfound someone's github project: https://github.com/jhasse/poly2tri
14:52:10kaenthat's a vexxing issue
14:53:28kaen"Poly2Tri does not support repeat points within epsilon."
14:54:41kaenugh. it should just partition the polygons when repeat vertices are found.
14:59:43raptoryeah... *sniff*
15:03:41Watusimoto has joined
15:06:54raptorFIST is another one, but I can't find anything on the license..
15:15:25raptorkaen: maybe I should open an SO question on the matter?
15:22:01kaenraptor, https://code.google.com/p/polypartition/
15:22:14kaenwill that do it?
15:22:28raptoryour search has been more fruitful!
15:22:33raptorlooking..
15:22:49kaenit's one .cpp file
15:23:03kaenhas unit tests...
15:23:06raptorit needs to support holes
15:23:09kaenit does
15:23:16raptorreally??
15:23:39kaen4/5 supplied algorithms do
15:23:42raptoroh yeah, huh...
15:23:51kaenoops, 3/5
15:25:07raptorhuh
15:25:36kaenand it has a one-call interface
15:27:16raptori'd say let's try it
15:27:37raptornot sure which algo to test with... maybe we'd just do all of them on a variety of crazy levels
15:28:27kaenstart with the top one since it's recommended as a generic solution
15:28:40raptorthat's the one FIST uses, I think
15:43:12kaencodelite doesn't even run on debian unstable...
15:43:21kaentime to give eclipse-cdt another spin
15:47:33raptormmmm RAM nomnom
15:55:32raptorwhere would a good place be to keep the ServerPermissions enum that I'll be creating?
15:57:12raptori.e for None, LevelChange, Admin, Owner
16:07:43kaenI'd maybe call it ClientRole and put it on clientinfo
16:08:22kaenalternatively, ServerGame
16:08:30kaenif the client doesn't need to know about it
16:11:45Wuzzy has joined
16:18:08kaenby my estimation eclipse will take about an hour to index the whole bitfighter tarball...
16:18:15kaener, repo
16:18:23raptoroh... uh.. you should exclude the boost headers
16:18:29kaenoh hahaha
16:18:33kaendidn't even think about that...
16:19:08raptorproject -> properties -> resource -> resource filters
16:19:29raptori did an 'exclude all' name matches 'boost'
16:19:30raptoror something
16:19:53kaenI deleted the folder from the project
16:19:59kaenand am just using cmake to build
16:27:23raptortaking off for a few hours - i'll back later this afternoon
16:27:52raptor Quit ()
16:39:35LordDVG Quit (Ping timeout: 256 seconds)
16:43:13koda has joined
16:43:45BFLogBot Commit: 854fe6b7bbcf | Author: watusimoto | Message: Rename function, implement in parent (sort of) to avoid cast
16:43:46BFLogBot Commit: 8f2395b15633 | Author: watusimoto | Message: Move setting loadout to ClientInfo, where all the action was anyway
16:43:48BFLogBot Commit: 3a3ad98579a7 | Author: watusimoto | Message: I think I figured out how to remove gServerGame from ClientInfo. If the assert doesn't trigger after a while, we can remove it and call it good.
16:56:46BFLogBot Commit: 59d99eb4b316 | Author: watusimoto | Message: Flag possible bug in MeritBadges enum
16:56:47BFLogBot Commit: d7826ba7ce57 | Author: watusimoto | Message: Remove gServerGame from gameConnection... this one was a gimme
16:58:32LordDVG has joined
16:58:36LordDVG Quit (Remote host closed the connection)
17:20:57Watusimoto Quit (Ping timeout: 246 seconds)
17:29:52bobdaduck has joined
17:58:23BFLogBot Commit: ce9ec71ff586 | Author: sam8641 | Message: Fixed errors from level having "Spawn 0 3.402823466e+38 3.402823466e+38" - fix triangulation less then 3 vertex crash - fix emitMovementSparks crash - fix openAL freeze from NAN point position
17:58:25BFLogBot Commit: 415fa205a3fa | Author: sam8641 | Message: Fix always starting from keyboard when joystick is available.
18:53:31koda Quit (Quit: Leaving)
19:54:35VeSun has joined
19:54:41VeSunYo
19:55:00VeSun Quit (Client Quit)
19:55:36fordcars has joined
20:06:04bobdaduckOkay so what we do
20:06:21bobdaduckis allow for dynamic level editing while actually playing the level
20:06:32bobdaduckAnd then steal all the minecraft players
20:06:47fordcarsheh
20:07:00fordcarsthat some way of doing it
20:20:08bobdaduckHoly crap
20:20:18bobdaduckWho coded the logic for the [j]oin command in the editor?
20:20:21bobdaduckits BEAUTIFUL.
20:22:34bobdaduckI just joined two polywalls and it worked amazingly better than I had hoped xD
20:24:25fordcarsheh, probably raptor
20:24:41fordcarsit's neat, huh? try joining loadouts it is aweosme
20:25:50bobdaduckHOLY CRAP YOU CAN DO THAT?
20:26:00bobdaduckHOLY CRAP
20:29:26Darrel has joined
20:30:07fordcarshehe, it's way cleaner than seeing a bunch of GOALs or LOADOUTs everywhere :P
20:37:42bobdaduckarg where's raptor when I need him
20:42:13Watusimoto has joined
20:42:56bobdaduckGoodmorning, gentlewat.
21:04:59Darrel Quit (Read error: Connection reset by peer)
21:15:16LordDVG has joined
21:20:38Watusimotohi
21:22:18fordcarshi
21:30:47sam686hi
21:43:21raptor has joined
21:43:22ChanServ sets mode +o raptor
21:45:51raptorhwody folks
21:45:57raptorwe're all here!
21:46:08raptorit's Saturday!
21:47:44raptorwow sam686 how do you find these weird bugs...
21:48:04fordcarslater
21:49:43raptorFYI bobdaduck, I think it was Watusimoto that did the polywall join stuff..
21:50:23sam686just one question, why use ABS if there is abs in #include <math.h>?
21:51:28Watusimotoeither 1) it extends to zap days or 2) it extends to the days before I knew there was a math.h or 3) the math.h version only works on floats or something stupid like that
21:51:44sam686MathUtils.h line 44, i almost want to have a #define ABS abs instead of what is currently there..
21:52:26sam686abs works on integer and floats, that what the function descriptions saying..
21:52:29fordcars Quit (Ping timeout: 245 seconds)
21:53:44Watusimotoif abs works, no need to redefine it
21:53:50Watusimotowe can replace ABS with abs
21:54:05Watusimotobut I'm starting to remember that there is a reason why it is there
21:54:18Watusimotowhich, if you replace it, I suspect you'll discover
21:54:29Watusimotoand then you can tell me :-)
21:55:09sam686I will test it first as #define ABS abs before going everywhere to replace it..
21:56:07sam686ok it appears to work fine..
22:02:37fordcars has joined
22:03:45bobdaduckRaptor did you get the DnD levelgen working?
22:05:58raptorhi
22:06:10raptorbobdaduck: no... it'll actually involve another registry
22:06:54raptor(and I haven't had time - maybe today or tonight..)
22:08:38raptorkaen: how go your Triangle replacement exploits?
22:09:00Watusimotoreplacing triangle???
22:09:02Watusimotowhy???
22:09:05LordDVG Quit (Remote host closed the connection)
22:09:10WatusimotoI <3 triangle!
22:09:33raptorbecause of it bitfighter will go under the 'non-free' debian repo
22:09:48Watusimotoonly that?
22:09:55raptoryeah, that's it..
22:10:19raptorand so kaen and I embarked upon research to replace it..
22:10:50Watusimotothere is no replacement
22:11:23raptoryeah - it hasn't seemed easy to find one - I was hoping that maybe 2 years later we'd come across something just as good but more open
22:11:37WatusimotoIs this the problem?
22:11:38WatusimotoDistribution of this code as */
22:11:42Watusimotooops
22:11:53WatusimotoDistribution of this code as part of a commercial system is permissible ONLY BY DIRECT ARRANGEMENT WITH THE AUTHOR.
22:12:24Watusimotobecause that's the only "not free" part of the license I see
22:12:32raptoralso because libtriangle is in the non-free part of debian
22:12:36fordcarsor.......... make your own Triangle 0.o
22:12:47sam686I still remembered my first attempt to have automatic bot zone generation, a LUA script runs as a levelgen that generates only squares and rectangles bot zones..
22:12:56raptorwell... debian has 'high' standards
22:13:14Watusimotoalso there's a clause about compensation
22:13:25Watusimotosam686: we've sure come a long way!
22:13:56raptori looked at poly2tri again but it isn't as robust
22:14:13Watusimotofordcars: the source code for triangle is over 16,000 lines
22:14:25fordcarsoh
22:14:34Watusimotothough we don't need all of it
22:15:05Watusimotoit's big, but it is **fast**
22:15:50fordcarswell, good luck :3
22:16:06WatusimotoI'm trying to figure out how to get a ServerGame object into an object constructed from Lua
22:16:23Watusimotowhich means tangling with luaw again
22:16:37WatusimotoI'm still not sure I'm ready yet
22:16:44WatusimotoI'm having flashbacks
22:17:03raptordon't do it!
22:17:28WatusimotoI'm in a mood to cut back on gServerGames, and this is the only way
22:17:31raptoroh hey, latest commit compiles. thanks!
22:18:01Watusimotodid an earlier one fail?
22:19:37raptorno... it's just that 2 windows developers are back at the code.. :)
22:19:55raptoroh also, did you see the response from the TNL2 guy?
22:21:18sam686raptor, on MathUtils.h line 44, does changing to this compiles? #define ABS abs
22:21:24raptori will test
22:21:38sam686if yes, we could get rid of define and rename ABS to abs..
22:21:47raptorok
22:23:32raptoralmost done..
22:23:41Watusimotoraptor: just read it
22:23:47Watusimotonot sure what it means...
22:24:01raptoryeah...
22:24:20raptorI don't know either - I honetly don't see any of our changes merging
22:24:20bobdaduck Quit (Ping timeout: 264 seconds)
22:24:28raptoror vice versa
22:25:18raptorsam686: compiles and seems to run just fine
22:27:36kaenjust woke up from a much-needed post-work slumber
22:28:16raptorwelcome back to the land of the living
22:29:08Watusimotosome of our fixes were minor -- they might merge
22:29:16Watusimotowe haevn't really done that much to tnl
22:31:21bobdaduck has joined
22:31:48raptorWatusimoto: where would a good place be for the Permissions enum? kaen suggested ClientInfo
22:32:06bobdaduckBut raptor I'm 7/8ths done with the actual level and I can't unveil it until the levelgen is ready! *bambi eyes*
22:32:11Watusimotowhere is most of the relevant permission code handled?
22:32:17raptoreverywhere!
22:32:19WatusimotoClientInfo seems like a good place
22:32:28raptorclientgame and clientinfo
22:32:29raptorok
22:32:29fordcars Quit (Ping timeout: 245 seconds)
22:32:30BFLogBot Commit: 5c9f28c8583c | Author: sam8641 | Message: Get rid of ABS define and use abs instead.
22:32:39Watusimotoyeah, clientInfo
22:41:49fordcars has joined
22:42:00the-quartz has joined
22:42:12the-quartzStaying classy in the bitfighter forums
22:42:26raptorhi the-quartz
22:42:32the-quartzhi the-raptor
22:42:42bobdaduckhi the-bobdaduck
22:42:45bobdaduck...wait.
22:42:47kaen kaen cautiously opens his browser...
22:42:47fordcarshi the
22:42:48the-quartzda-bobdaduck
22:42:53the-quartzhi the-kaen
22:42:54bobdaduckperfect
22:43:00kaenbob-daduck
22:43:01bobdaduckI dunno if kaen is around
22:43:08bobdaduckda-bobduck?
22:43:17the-quartzBobduck, I've called you that before.
22:43:25kaenhow about: bobdaduck
22:43:31bobdaducklol
22:43:32the-quartzAlso Mormon Cores is like
22:43:39the-quartzTeam Bobducks vs. Quartzducks
22:43:42bobdaduckxD
22:43:47fordcars.
22:43:48the-quartzI was just playing it with this new guy and he lost
22:43:52the-quartzgood times
22:43:59fordcarsmain_gi?
22:44:00the-quartzyes
22:44:08fordcarsheh
22:44:11the-quartzmain_gi came in and was like "YEAH SO I'M SUPER COOL, I MAKE ADVENTURE MAPS NOT NORMAL MAPS"
22:44:11WatusimotoI just figured out how to use luaW to create a seperate constructor for Lua specific objects without creating an initialize() function. Here is an example: http://pastie.org/7492974 Which do you prefer? The top, or the bottom (which is our current way of doing things)
22:44:22the-quartzI'm like okay ... cool story bro. let's play some dungeons
22:44:29fordcarshaha
22:44:40bobdaducklol
22:44:42raptorWatusimoto: wait what?
22:45:32Watusimotolook at the code; the bottom version uses a constructor for creating an item from lua (L is supplied) or for TNL (no L). The two constructors are combined together currently
22:45:35raptorWatusimoto: top seems cleaner
22:45:44raptorinteresting - i had no idea you could do that
22:46:06Watusimotoyou pass a custom allocator function (lua_constructor in this case)
22:46:18Watusimotothere is a third option let me write that up
22:46:42the-quartzanyone want to see my new crappy Rabbit map
22:46:44the-quartzGet online I'll host it
22:47:05bobdaducksure
22:47:12bobdaduck*continues to make bambi eyes at raptor*
22:48:34Watusimotohttp://pastie.org/7493000
22:48:39Watusimotothe new one is at the bottom
22:48:44Watusimotohence my comment about the init function
22:49:05Watusimotobecause that last option was always available, and is used in some places
22:50:56kaenI like the custom allocator option
22:51:04WatusimotoI think I prefer the top version as well; the middle one is expedient, and the bottom one is ugly
22:51:27Watusimotothe problem is the amount of work to implement the top one is rather painful... it's kind of an all-or-nothing thing
22:51:38Watusimotoevery lua class would need to be rewritten
22:51:48Watusimotoor at least the constructors would
22:52:19Watusimotobut it does seem to untangle the logic a bit
22:52:53kaensounds like a wishlist type item. unless there are some immediate gains from it?
22:53:10kaenor other compelling motivation for it.
22:53:27Wuzzy Quit (Quit: Wuzzy)
22:54:12Watusimotowell, I was hoping to use this method to get rid of a whole stack of gServerGames, but I don't think it will work
22:54:29WatusimotoI was going to add Servergame as a second param to the lua_constructor
22:54:46bobdaduckbrb
22:54:47Watusimotobut that makes creating a NexusZone from lua... challenging
22:55:13Watusimotoas we have no servergame object there
22:57:40Watusimotoone other nice thing about the custom allocator is it would let us keep our lua specific constructor code with the rest of the lua methods in the .cpp files
22:57:55Watusimotoright now they are sperarated in a way that feels unnatural
22:59:39raptoris it bad to have a gServerGame? (I probably ask this everytime you go down this road)
23:00:31Watusimotoare you trying to get me to replay the 3 day argument I had with my coworker at my last job about this?
23:00:42Watusimoto(there I was arguing in favor of a global object)
23:00:53raptorheh
23:01:12Watusimotoit was one of thsoe scorched earth arguments
23:01:28raptornobody wins and every leaves wanting to strangle everyone
23:01:29WatusimotoI had to destroy the village to save it
23:02:13WatusimotoI am of the opinion that fewer global objects are better
23:02:24Watusimotoand serverGame feels like a pretty major thing to be a global
23:02:33Watusimotoespecially as it only exists some of the time
23:03:11Watusimotothere are a few places where it seems ok, like when the client game does some fancy debugging display showing things like bot zones that the client doesn't ordinarliy have access to
23:03:27Watusimotobut it feels worse for mainline functionality like our lua code
23:03:55Watusimotosomething that kaen said last night got me thinking about this
23:09:57WatusimotoI think there is no way to pass a server game into a lua-called constructor, nor to provide it as part of the method signature, so we may be stuck with a global
23:11:10Watusimotoalthough... the main place we use them is in LuaGame, which provides info about the current game
23:12:17Watusimotowe could provide that via a different mechanism (i.e. a table that is continuously updated, like the recent changes to ModuleInfo) and that would get rid of a lot of methods and a lot of gServerInfos
23:13:58Watusimotowe did manage to completely eliminate gClientGame
23:14:15Watusimotoand the code feels better for it
23:15:21raptorhmmm
23:23:00raptorI broke it now!
23:31:55the-quartz Quit (Quit: Page closed)
23:35:29bobdaduck Quit (Remote host closed the connection)
23:53:07BFLogBot Commit: 976e1388fa2a | Author: watusimoto | Message: Comments, formatting
23:53:09BFLogBot Commit: 091be4cd72cd | Author: watusimoto | Message: Move function closer to where it's used
23:53:11BFLogBot Commit: 5b1590665813 | Author: watusimoto | Message: Move render function into UIGame
23:53:12BFLogBot Commit: fad80f753f40 | Author: watusimoto | Message: Mercurial going bananas!
23:53:14BFLogBot Commit: 40a411450a4f | Author: watusimoto | Message: Clean up a sloppy implementation
23:53:22fordcarsScript Help String ------ What is this in editor plugins (.ini)?
23:54:07Watusimotodefines a plugin
23:54:08WatusimotoPlugin1=Ctrl+;|draw_arcs.lua|Make curves!
23:54:27fordcarsahhhhhhhhh thanks!
23:54:38Watusimotopress ctrl + ;, runs draw_arcs, displays Make curves in help
23:55:36fordcarsbtw, there aren't the plug-ins in help menu anymore, watusimoto
23:55:45fordcarsinstructions
23:57:02Watusimotodid you try from the editor?
23:57:06fordcarsyep
23:57:10Watusimotolast page of help
23:57:16WatusimotoI see them in my current build
23:57:24sam686http://sam6.25u.com/upload/text1304/130413_18-04-09.txt maybe a bug that keeps duplicating the entries maybe on version update?
23:57:28raptorit's autogenerated only if it finds editor plugins set up properly in the INI
23:57:57WatusimotoI see it on 018a as well
23:57:58fordcarswatusimoto, I see "Scripting Console", coming soon
23:58:04Watusimotoafter that
23:58:06fordcarsin 018a
23:58:10Watusimotoyes
23:58:11fordcarsnothong else
23:58:19fordcars14 pages
23:58:29Watusimotoeditor help is only 6 pages
23:58:34Watusimotoyou're looking at regular help
23:58:52sam686018a have only 4 pages of editor help..
23:59:16fordcarsoh right, I checked out editor menu, still has 4 pages and no plug-ins
23:59:27fordcars4th page is Scripting COnsole
23:59:29Watusimotoactually , I see 5, with plugins
23:59:35fordcarsah
23:59:44Watusimotoon 018a
23:59:50fordcarsso plugins are missing for me, but I think I know why
23:59:51Watusimotofordcars: make sure you have some plugins defined in your ini

Index Search ←Prev date Next date→

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