#bitfighter IRC Log

Index Search ←Prev date Next date→

IRC Log for 2013-09-15

Timestamps are in GMT/BST.

00:27:23Platskies Quit (Quit: Platskies)
00:29:09Platskies has joined
00:50:56FlynnnNT has joined
00:53:04FlynnnNT is now known as Flynnn
01:34:41koda has joined
01:47:54koda Quit (Quit: Leaving)
01:51:57Platskies Quit (Read error: Connection reset by peer)
01:53:51Platskies has joined
02:05:23koda has joined
02:19:58koda Quit (Ping timeout: 260 seconds)
02:42:29koda has joined
02:57:28koda Quit (Ping timeout: 246 seconds)
03:14:12koda has joined
03:15:17kodab has joined
03:17:22Flynnn Quit (Quit: Leaving)
03:18:10Watusimoto has joined
03:18:49koda Quit (Ping timeout: 246 seconds)
03:20:14FlynnnNT has joined
03:23:34koda has joined
03:25:28kodab Quit (Ping timeout: 246 seconds)
03:26:35FlynnnNT is now known as Flynnn
03:34:20koda Quit (Ping timeout: 256 seconds)
04:19:04Flynnn Quit (Quit: This computer has gone to sleep)
04:33:05FlynnnNT has joined
04:34:27FlynnnNT Quit (Client Quit)
04:41:31Watusimoto_ has joined
04:43:27Watusimoto__ has joined
04:44:34Watusimoto Quit (Ping timeout: 246 seconds)
04:45:59Watusimoto_ Quit (Ping timeout: 260 seconds)
05:51:00Watusimoto has joined
05:54:01koda has joined
05:54:18Watusimoto__ Quit (Ping timeout: 256 seconds)
05:58:14kodab has joined
06:00:53koda Quit (Ping timeout: 264 seconds)
06:03:04koda has joined
06:04:30kodab Quit (Ping timeout: 256 seconds)
06:49:48koda Quit (Ping timeout: 260 seconds)
07:06:35Watusimoto Quit (Ping timeout: 260 seconds)
07:06:40koda has joined
07:25:15koda Quit (Ping timeout: 260 seconds)
07:26:34koda has joined
07:28:17Watusimoto has joined
08:08:33BFLogBot Commit: 55cd93229aa3 | Author: buckyballreaction | Message: Fix popping font context in UIInstructions
08:11:31koda Quit (Ping timeout: 256 seconds)
08:29:27koda has joined
08:34:19BFLogBot Commit: 11414017363f | Author: buckyballreaction | Message: Convert various in-game scary red warnings to fancy boxes
08:41:34Platskies Quit (Quit: Gotta go)
08:42:40kodab has joined
08:43:54koda Quit (Ping timeout: 264 seconds)
09:24:26Watusimotohello
10:03:17kodab Quit (Quit: Leaving)
11:31:11fordcars has joined
11:35:49Watusimoto Quit (Ping timeout: 246 seconds)
11:37:06fordcars Quit (Quit: Page closed)
12:01:49Watusimoto has joined
12:32:46raptor has joined
12:32:46ChanServ sets mode +o
12:33:11raptorhello
12:33:40Watusimotohi
12:33:57Watusimotomy family is getting sick of hearing my web services presentation
12:34:14WatusimotoI'm presenting at that conference next week
12:34:23raptorfun!
12:34:39WatusimotoI hope so!
12:34:46raptorand by that i mean: i would hate to do that!
12:34:56WatusimotoI think it will actually be fun
12:35:17raptorgoing to wear a cowboy hat?
12:35:33WatusimotoI should. the maintainer of a very important package that we use will be at my presentation
12:35:47WatusimotoI've been trying to get him to include my patches
12:36:28Watusimotoit's a;ways nice to meet these people in the flesh. I would have liked to have met koda last year
12:38:00raptoryes. maybe one day we'll meet too!
12:38:02raptor:)
12:39:49WatusimotoI really like visiting Utah, so it seems entirely possible
12:40:22Watusimotoas long as its not at a java conference!
12:41:03raptoroh man
12:41:07WatusimotoI've been writing some interesting code...
12:41:09raptora java conference..
12:41:12raptorblech
12:41:18Watusimoto(what could be more boring!)
12:41:31Watusimotofor testing I need a way to inject a level into the server
12:41:56Watusimotocurrently we pass a list of level files when we run, but I don't want to have to rely on a file for testing
12:42:17Watusimotoso I rewrote some stuff so now we can have a generic LevelSource object that provides the levels
12:42:34Watusimotoat the beginning we'll haev a folder source that is pretty much what we've got today
12:42:56Watusimotoas well as a code source (or something) where the acutal level code is passed in
12:43:30Watusimotothe cool thing is we could (later) perhaps add a database source, or a http source, or a playlist source that provides new hositng capabilitieis
12:44:09Watusimotomaybe a plieaeieaaese source
12:44:16Watusimoto(I think I may have spelled that wrong)
12:50:02raptorheh
12:50:24raptorso... before I go all 'feature creep!'... is this refactor going to break lots of things?
12:52:30WatusimotoI hope not
12:52:46WatusimotoI'm testing level downloads now
12:52:59Watusimotoregular hosting seems to work fine
12:53:04Watusimototesting from the editor is good
12:53:32WatusimotoI found a couple of issues with level downloads that are unrelated, but I'm fixing anyway
12:54:12Watusimotobut there's always the possibility!
12:54:29WatusimotoIt's not a huge refactor
12:54:45Watusimotobasically involves putting the level list into a container and passing that
12:54:58Watusimotothere's more to it than that, but that's the bulk of it
12:55:28Watusimotoit will be done tonight, almost certainly
12:58:10raptori think i love the phrase 'almost certainly'
13:01:55Watusimotoyou almost certainly do
13:03:46raptorback to my oglconsole slog...
13:04:18Nothing_Much Quit (Ping timeout: 264 seconds)
13:04:19Watusimotough! bit again by the bug of returning a const char* that points to a string that gets cleaned up after returning!
13:04:27Watusimotoget lots of cool binary data that way!
13:04:35raptorha!
13:05:00raptorremember the rule: if there is a 'char' somewhere in your c++ code, there is also a bug somewhere
13:07:15Watusimotothat bug could easily be warned by the compiler
13:07:22Watusimotoit is common, subtle, and easy to detect
13:08:06Watusimotoyup, that was it
13:09:00Watusimotoha
13:09:14WatusimotoI was typing in the / window, and there was a mine under the text entry box
13:09:34Watusimotoas my cursor approached it, I got nervous, and paused in my typing to avoid hitting it
13:09:41Watusimotothen I realized it was silly
13:09:41raptorhahaha
13:09:43Watusimotojust silly
13:18:37Nothing_Much has joined
13:18:37Nothing_Much Quit (Changing host)
13:18:37Nothing_Much has joined
13:20:38Watusimotomy refactor is essentially finished; I'm just going to review the interface I've created, and try to make it slightly less dooky. it's pretty haphazard now
13:29:40BFLogBot Commit: 084afb3f0a77 | Author: watusimoto | Message: First pass at replacing lists of level names with a generic LevelSource object -- this should make it possible to get past the next hurdle with testing. Sigh. On the upside, we could potentially create LevelSources that draw levels from a playlist or a remote server or something else creative.
13:29:42BFLogBot Commit: dbd51481edd2 | Author: watusimoto | Message: Merge
13:29:43BFLogBot Commit: fc4f59130417 | Author: watusimoto | Message: Rename method
13:29:45BFLogBot Commit: 0f2a0b521fba | Author: watusimoto | Message: Wrap LevelSources in a smart pointer to ensure no memory leaks
13:29:46BFLogBot Commit: c9d2c61eeb61 | Author: watusimoto | Message: Rename LevelInfo variable, fix some potential bugs
13:29:48BFLogBot Commit: a9370b59b2b9 | Author: watusimoto | Message: Make error messages more consistent
13:29:49BFLogBot Commit: 6b07ea33407d | Author: watusimoto | Message: Doing this here could send invalid levels to system
13:29:51BFLogBot Commit: f08b6fcdf044 | Author: watusimoto | Message: When a new level is added to the server, announce it to the levelchangers
13:29:52BFLogBot Commit: f5df240e8540 | Author: watusimoto | Message: Don't overwrite existing files when downloading new levels
13:29:54BFLogBot Commit: 36f33b9d26be | Author: watusimoto | Message: Shuffle some functionality around
13:29:55BFLogBot Commit: 450986f9f606 | Author: watusimoto | Message: Fix string/const char* pointer corruption bug
13:29:57BFLogBot Commit: 399db95fd519 | Author: watusimoto | Message: Fix incorrect return value
13:29:58BFLogBot Commit: ac8dd312196f | Author: watusimoto | Message: Allow redownload of levels marked as deleted
13:30:00BFLogBot Commit: 0e903d758274 | Author: watusimoto | Message: Oooops... forgot to add these... will need these to build!
13:30:01BFLogBot Commit: 6145b015004f | Author: watusimoto | Message: Rename functions to match latest in LevelSource
13:30:04BFLogBot Commit: c07bf7dbdd43 | Author: watusimoto | Message: Merge
13:30:22Watusimotook, totally certain
13:30:27Watusimotoc'mon there....
13:30:27Watusimotohere boy!
13:30:37Watusimotothere we go!
13:31:08Watusimotothe levelsource interface is basically a mess; will clean it up as we develop it further
13:31:26Watusimotobut I tested all ways I know of to load files
13:32:51raptorok
13:33:00raptori'll, uh, try and compile...
13:36:19Watusimotoyou should be fine
13:37:27kaenhey guys
13:37:45kaenI've got a lua function to expose clipper.execute all set up, but the output has "holes"
13:38:11raptorhi
13:38:17BFLogBot Commit: 0cde18b2e963 | Author: buckyballreaction | Message: Minor compile fix
13:38:26kaendo you know of a way to remove these holes and then merge the triangles into as large holeless polygons as possible?
13:38:59raptormight be a different boolean function
13:39:23kaenmerge will happily returns holes
13:39:44raptormerge uses the 'union' function
13:39:48raptori think...
13:39:55kaenright, that's what I'm testing with
13:40:21kaenthe botnav stuff returns convex polygons
13:40:25kaenwhich is better than triangles
13:40:31kaenbut I'd like more aggressive merging
13:41:19kaenif not, it's no big deal
13:41:48raptori can't remember exactly what recast is doing..
13:41:52kaenwhat I have works great if you don't make holes, and if you make holes then maybe you should have to deal with convex polygons
13:41:57kaenit's building a navigation mesh
13:42:19kaenit also mentions merging polygons (probably exactly as I want) but it looks hard to wire in
13:42:31raptori think it goes: clipper (for cleanup) -> poly2tri -> recast ( for convex-ing)
13:43:03kaenthat's my understanding
13:43:15raptorand you just want clipper to output outlines?
13:43:30kaenyeah, if there's a switch to make it never output holes that'd be perfect
13:43:33raptori'm reading here: http://www.angusj.com/delphi/clipper/documentation/Docs/Overview/_Body.htm
13:43:55raptormaybe it's the 'polygon filling'
13:43:59kaenI was digging through the docs and couldn't find it if it exists
13:44:37kaenno, that affects when it considers a point to be "in" or "out" if it's inside multiple polygons
13:45:01raptorhttp://www.angusj.com/delphi/clipper/documentation/Docs/Units/ClipperLib/Types/ClipType.htm
13:45:07raptorunion looks like it shoudl work..
13:45:21kaenthose control which boolean operation to run
13:45:27kaenI'm testing through a working Union call
13:45:33kaenthe output of *that* has holes in it
13:45:53kaenin fact clipper goes out of its way to use holes instead of multiple "good" polygons
13:45:59kaen(simple?)
13:46:12raptormaybe the holes are the polygons?
13:46:24kaenumm, it outputs holes with polygons
13:46:33kaenI'm to the point where I'm actually making polywalls with the output
13:46:50raptorwhat if you just discarded the holes completely?
13:47:21kaenthen the holes totally get discarded, which seems worse than returning a correct set of many convex polygons
13:47:34kaenand the outer polygons are filled where they should not be :P
13:47:39kaenhere I can screenshot
13:47:52raptoryes please... i'm having trouble visualizing
13:48:43Watusimotoraptor: thank you for fixing that compile bug -- that's one that comes up so rarely, we'd never get it figured out
13:48:52raptorheh
13:49:53raptorglad i could do the heavy lifting
13:51:26Watusimotowhat should we call a LevelSource that is just a levelfile in a string?
13:51:39Watusimotoi.e. all the levelcode is passed as a string
13:51:44kaenhttp://imgbin.me/view/ARJACMVX
13:51:50kaenhttp://imgbin.me/view/FHKWYVFI
13:51:59Watusimotowhen you get the files from a folder (as we usually do), it is called a FolderLevelSource
13:52:01kaenin the second one, the outer polygon is completely filled
13:53:00WatusimotoStringLevelSource !!
13:53:07kaen^ that was my suggestion :)_
13:53:15kaener, without the _
13:53:54raptorok kaen, explain those two images
13:54:46kaenthe first (polywalls) is pre-merge
13:54:51kaenthe second (goalzones) is post-merge
13:55:15raptorso the first is more than one polywall?
13:55:21kaenright
13:55:23kaenoops sorry
13:55:35kaenit's two polygons
13:55:41kaenoverlapped to make that hole in the center
13:56:05raptorok
13:56:23kaenand I want it to return some polygon (probably two) that make that shape, respecting the hole, but without holes in the output
13:56:30raptorah
13:56:36raptornow that's... interesting
13:56:53raptorbecause that doesn't fit any known polyboolean function
13:57:11kaenright, I've got it through clipper's polyboolean stuff, now I'm cleaning up the output
13:57:30Watusimotobtw, kaen, on a differnt topic, the test currently uses only regular code... all the conditional compile and ifdef stuff I was working on last week is currently unused
13:57:31raptorbecause there'd need to be a break somewhere for the output to be a continuous one
13:57:33kaenall the four boolean operations work great until you start making holes
13:58:55kaenraptor, not sure I understand
14:00:03kaenthis polygon simplification stuff seems undoable without complicating the system, so I'll just return convex polys if you make holes
14:00:34kaenwell... actually if I do that then it won't give correct output for simple cases...
14:00:35kaengah
14:00:46kaenWatusimoto, that's good to hear, are you planning to change that?
14:00:54Watusimotonot if I don't have to
14:01:03kaeneven better news!
14:01:04Watusimotowe'll see how far I can get with the current approach
14:01:06kaenok
14:01:13WatusimotoI too like it better
14:01:30WatusimotoI just lament all the work I did that has either been trashed or languishes unused
14:01:31FlynnnNT has joined
14:01:33Watusimotobut whatever
14:02:26kaen"plan to throw one away"
14:02:28kaen:)
14:03:01Watusimotogood advice. but painful
14:03:23Watusimoto(but I won't pass that on to my wife)
14:03:30kaenhehehe
14:03:37Watusimoto(or better, my kids)
14:06:40raptorkaen: http://www.twiddla.com/1309108
14:12:51raptorkaen: Triangulate::Process is old garagegames code to triangulate barrier interiors for client-side display
14:13:56kaendoes that thing still work? and is it going to give me merged polygons or little triangles?
14:14:10raptorlooks like lots of little triangles
14:14:16kaenthat's what I thought
14:14:17raptorit is currently doing the barrier fill
14:14:27kaenI'm already at that point using processComplex, actually
14:14:37kaennow I just need to merge the guys
14:14:56raptoryeah, that's recast..
14:15:03kaenoh boy
14:15:05raptorbut it does it into convex polygons
14:15:13raptorther emay be some way to change it..
14:18:02Watusimotoactually, triangulate is code I copied off the internet
14:18:07Watusimotofrom some math forum
14:18:12raptoroh really?
14:18:17raptorhah!
14:18:21Watusimotobefore using that, you couln't have concave zones
14:18:33Watusimotoit was kind of lame
14:18:49raptori remember there being a huge memory leak in it that sam686 found and fixed
14:18:55WatusimotoI did that pretty early on, when I was still figuring out c++, and I felt pretty badass when i did it
14:19:02Watusimotoah, sam
14:19:07raptoroh, uh... good job!
14:19:10Watusimotogood ol' sam
14:19:20Watusimotono worries
14:19:25Watusimotoit wasn't my code
14:20:38raptori've heard that before!
14:20:40raptor:)
14:27:56Watusimoto+
14:35:41raptor-
14:37:43bobdaduck_m has joined
14:39:43bobdaduck_m Quit (Client Quit)
14:51:39Watusimotook, this is it
14:51:41Watusimotogoing to bed
14:51:48raptornight!
14:51:50Watusimotoin the mroning, I leave for my conference
14:51:53BFLogBot Commit: 12eb0037da59 | Author: watusimoto | Message: Add StringFileSource and update tests to reflect LevelSource refactor. Doesn't really demonstrate that it works yet, but at least tests are passing. And that is something!
14:51:54BFLogBot Commit: 897b92f83c86 | Author: watusimoto | Message: Comment
14:51:56BFLogBot Commit: 58c2b95b6e79 | Author: watusimoto | Message: Change sample level to make it clearer if it was transmitted
14:51:57BFLogBot Commit: 4f1f8f346d69 | Author: watusimoto | Message: Mark ServerGame where more work will need to be done to make it work with non-file based LevelSources. Will take care of this in coming days, but need to mark it now while I can.
14:52:01WatusimotoEverything is working as far as I know
14:52:02raptorbring the 5-gallon hat!
14:52:09Watusimoto10 gallon!
14:52:21raptorbest efforts!
14:52:27WatusimotoI wear big boots!
14:52:50WatusimotoANyway, I'll finish off this StringFileSource during the week. I'm sure i'll get a chance.
14:52:57raptorokey doke
14:52:58Watusimotoso have fun!
14:53:04raptoryou too
14:53:07raptor:)
14:53:10Watusimotolaterz
14:53:13raptornight
14:58:07Watusimoto Quit (Ping timeout: 246 seconds)
17:10:22raptorprogress!
17:10:31raptorthe console now renders the text in reverse order!
17:10:41raptor(i couldn't even get text to show before...)
17:11:12Nothing_Muchyay!
17:34:49FlynnnNT Quit (Quit: Leaving)
17:43:31raptorkaen: you around?
17:59:41kaenjust got back
18:00:10kaenraptor, ^
18:02:19raptorhi
18:02:26raptorhmm, what was my question..
18:02:28raptoroh
18:02:30raptorok
18:02:37raptoroglconsole right now uses a bitmap font
18:02:47raptorit's very crisp
18:03:10raptorand it does use gl_quads
18:03:24raptorI've switched it out to use fontstash, but the droidsans mono isn't as crisp
18:04:34raptorso the question is, is this OK? If not, is there some way to make droidsans mono crisper at that size? Maybe i need to use a different font?
18:05:35raptorcurrent font at size 12 (ignore the positioning): http://imagebin.org/271046
18:06:55raptori suppose that isn't so bad
18:09:25raptoralthough it scales with the game on alt+enter, whereas the oglconsole implementation didn't
18:15:07kaeninteresting
18:15:19kaenit looks ok to me
18:15:45kaenI suspect that droid fonts are meant to be used with hinting enable so that the edges are crisper
18:16:12kaenbut I've looked and haven't found any hinting support in fontstash
18:18:04raptorok
18:20:27kaenah
18:20:34kaenit's in stb_truetype's todo list
18:23:17kaenso...
18:23:22kaenI use 10pt when I code :)
18:23:48kaenif it's legible, droid will probably have less noticeable artifacts at that size
18:38:02raptorlet me see what 10 pt does..
18:39:05kaenit occurs to me that executePolys is a terrible function name
18:39:12raptorchange it!
18:39:20kaencertainly
18:39:22kaenbut to what?
18:39:23raptorbecause... i think we've killed enough of 'em
18:39:51raptorwhat are you doing?
18:40:03raptormergeAndSimplifyPolys
18:40:06raptoror something
18:40:20raptorwhenInDoubtUseReallyLongAndDescriptiveVariableNames
18:40:28kaenhere's the sig:
18:40:29kaenbool (ClipType operation, Vector<Vector<Point >> subjects, const Vector<Vector<Point >> clips, const Vector<Vector<Point >> &solution)
18:40:47kaenexecuteBooleanOperationOnPolygons(...)
18:40:48kaen?
18:41:04kaenI've exposed it to lua, too
18:41:09raptorthis is your custom function that passes stuff to clipper, then does some other logic?
18:41:13kaenyeah
18:41:26kaenexecuteBooleanOperationOnPolygonsAndCleanTheResult(...)
18:41:34raptorcleanUpPolys
18:41:46raptorpolyClean
18:41:50kaenbut it handles all four boolean operations
18:41:58kaenin fact boolean operations are its main purpose
18:42:08raptorso polyClipAndClean
18:42:24kaenclipAndCleanPolys ?
18:43:04kaenso a call looks like: clipAndCleanPolys(ctUnion, subj, clip, solution)
18:44:00kaen`clip` is definitely a good word for it
18:45:04kaenI was also thinking about Geom:operate(op, subj, clip) for lua
18:45:31raptorsure
18:45:33kaenor now maybe Geom:clip
18:45:42raptoryou're thinknig of hijacking Geom for other geom functions, too?
18:45:57kaenwell, since it's not really a class but just a namespace object
18:46:02kaenI thought it would be harmless
18:46:12kaenalthough I'd *really* like a Geom class in lua
18:46:33kaengeom:getPolyline() and geom:getPolygon() would save a ton of special cases I have in my plugins
18:47:21kaenmaybe even
18:47:27kaengeom:union(geomlist)
18:47:27raptori'd say do whatever you need, with an eye towards not needing to make changes in the future (with regards to Lua)
18:47:35kaenhmm
18:47:35raptorooo, that's good too
18:48:15kaeninterestingly, clipper takes a *group* of polygons as its subject and/or its clip
18:48:27kaenso this function works against two groups of polygons
18:49:03kaenhow's 10pt working out?
18:49:42raptorlooks rather ugly, actually, with droid sans
18:49:51raptorI'm thinking of coding in bitmap rendering...
18:50:23raptorso the one issue I have with moving to TTF, is that when I press alt+enter, the 'console size' stays the same
18:51:01raptore.g. say the console at normal 800x600 is 100x40 characters
18:51:24raptorwhen doing alt+enter, it used to go to 250x 90 or whatever
18:51:32raptorfont stayed the exact same pixel size
18:51:36raptornow with TTF, it scales
18:51:53raptorI suppose I can code a flag to turn off scaling..
18:52:22raptorwould that be too bad?
18:52:22kaenheh
18:52:29kaenI think it's reasonable
18:52:47kaenthe more options the better, I think
18:53:02kaenwith the caveat that they should be ripped out if they cause trouble
18:54:05raptorwhen you say 'they' do you refer to my bitmap idea or to non-scaling?
18:54:26kaenoptions
18:54:31raptorok
18:54:41kaensince they usually require an additional codepath
18:54:50raptormaybe it should be a flag in FontManager with a getter/setter
18:56:02raptorused like the pop/pushFontContext - setDoFontScaling(true/false)
18:56:11raptorbut i don't like it on that object..
19:05:14kaenman, working with these polygon manipulation libraries are making like really interested in data transformations
19:05:42kaenlike, taking a stream of geometry data, transforming it into the right format, performing the operations, and moving them to the right output format
19:05:52kaenand just stringing a few instances of that together
19:06:08kaento make some visible product that couldn't be produced by any single lib alone
19:11:51raptori think it's magic
19:12:07raptorsome of the geometry stuff I see...
19:30:42Platskies has joined
20:30:12Platskies Quit (Quit: Sleep time…)
20:35:15raptor Quit ()
20:41:28kaen Quit (Ping timeout: 246 seconds)
20:42:29kaen has joined
20:47:41kaen Quit (Ping timeout: 264 seconds)
21:10:21FlynnnNT has joined
21:14:08FlynnnNT is now known as Flynnn
21:14:21kaen has joined
21:22:54Flynnn Quit (Quit: Leaving)
21:33:26FlynnnNT has joined
21:33:26FlynnnNT is now known as Flynnn
22:10:12Flynnn Quit (Quit: Leaving)
23:10:26FlynnnNT has joined
23:10:45FlynnnNT is now known as Flynnn

Index Search ←Prev date Next date→

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