Timestamps are in GMT/BST.
| 00:33:50 | | Platskies has joined |
| 00:57:35 | | HylianSavior Quit (Read error: Connection reset by peer) |
| 01:10:06 | | Darrel has joined |
| 02:09:41 | | Skybax Quit (Ping timeout: 240 seconds) |
| 02:09:55 | | watusimoto Quit (Read error: Connection reset by peer) |
| 04:37:54 | | Watusimoto has joined |
| 04:57:34 | | Invisible1 has joined |
| 05:01:31 | | Darrel Quit (Read error: Connection reset by peer) |
| 05:44:38 | | Invisible1 Quit (Ping timeout: 248 seconds) |
| 05:45:39 | | Watusimoto Quit (Ping timeout: 256 seconds) |
| 05:47:19 | | Invisible1 has joined |
| 06:47:37 | | Platskies Quit (Quit: Gotta go) |
| 06:58:41 | | HylianSavior has joined |
| 07:21:24 | | Invisible1 Quit (Ping timeout: 256 seconds) |
| 07:49:44 | | koda has joined |
| 07:55:41 | | watusimoto has joined |
| 07:55:41 | | ChanServ sets mode +o |
| 08:20:18 | | raptor has joined |
| 08:20:18 | | ChanServ sets mode +o |
| 08:27:41 | | koda Quit (Quit: K Thx Bai) |
| 08:32:15 | watusimoto | hello |
| 08:32:34 | watusimoto | raptor: do you know the status of kaen's geometry |
| 08:32:37 | watusimoto | ugrade? |
| 08:33:03 | watusimoto | I'm wondering if that might be the resolution to the coordinate issue in the bug tracker |
| 08:33:28 | watusimoto | I know it won't fix the underlying problem (which I think I understand) but it might make the symptoms bearable (i.e. no crashes) |
| 08:35:28 | watusimoto | another solution might be to use doubles in the editor |
| 08:35:33 | watusimoto | or possibly ints |
| 08:45:53 | raptor | hi |
| 08:46:38 | raptor | watusimoto: I do not know the status |
| 08:47:08 | raptor | I think he did get it to generate zones once, but not handle the complicated issues yet (like holes in holes) |
| 08:49:27 | raptor | we could use doubles in the editor, but I don't think that will help because I think the precision loss is too large for it to be just a float problem (but I may be wrong) |
| 08:53:15 | raptor | and you said it only does it with polywalls not other geom objects? (I should verify..) |
| 08:53:59 | watusimoto | I think it is a float problem -- I looked at how the math works, and it seems consisstent |
| 08:54:52 | watusimoto | when you move an item A, and move it to location B, the math does not work as A = B (which would eliminate the issue), but rather A = A + (B - A), which introduces a tiny precision loss |
| 08:55:18 | raptor | yeah, but that large of a precision loss?? |
| 08:55:21 | watusimoto | and each frame you are dragging, that compuation gets done again, so those tiny losses are introduces multiple times |
| 08:55:58 | watusimoto | so in my experiments, I get a loss that looks to me like it is the "next" F32 |
| 08:56:28 | watusimoto | but because the problem depends on many factors, it is inconsistent to reproduce; sometimes the error is larger, sometimes it is 0 |
| 08:56:31 | raptor | yeah but it amounts to a loss of 0.5 points in some cases |
| 08:56:37 | raptor | (255 * 0.002) |
| 08:56:46 | watusimoto | It may be larger if you are further from 0 |
| 08:57:13 | watusimoto | also, I only tested the initial precision loss -- the step 1-3 loss in the steps you outlined earlier |
| 08:57:17 | raptor | would there be a way to detect the snap an equalize the point? |
| 08:57:23 | watusimoto | saving seems to compund the issue |
| 08:57:28 | raptor | yes |
| 08:57:49 | raptor | I think if 1-3 were solved, it may be OK the rest of the way.. |
| 08:57:54 | watusimoto | snapping is first of all complex |
| 08:58:02 | watusimoto | but specifically, no |
| 08:58:03 | raptor | oh yes |
| 08:58:12 | watusimoto | imagine you are dragging a triangle |
| 08:58:16 | raptor | that's why i couldn't find the appropriate code.. |
| 08:58:24 | raptor | imagining |
| 08:58:27 | watusimoto | and snapping it to another identical triangle |
| 08:58:32 | watusimoto | (my test case, btw) |
| 08:58:53 | watusimoto | it would be possible to snap the point being dragged to the destination point (probably) with a little recoding |
| 08:59:33 | watusimoto | but the other points would not be cleanly snapped unless we manually snapped all three points to whatever happened to be nearby. Which would almost always be wrong |
| 08:59:59 | watusimoto | manually is the wrong word |
| 09:00:09 | watusimoto | just remove it from the statement above |
| 09:00:30 | raptor | ok, that makes sense |
| 09:00:41 | raptor | and i can see how that could be a float problem |
| 09:01:05 | watusimoto | the solutions I see fall into two camps: 1) use ints or somesuch to eliminate these issues or 2) find ways to tolerate the issues so they don't mess things up downstream |
| 09:01:29 | raptor | but in reality the snapping case is probably the only one that would happen |
| 09:01:36 | watusimoto | yes |
| 09:01:43 | watusimoto | and only when dragging |
| 09:01:45 | raptor | yes |
| 09:01:47 | raptor | so |
| 09:01:50 | watusimoto | I think when placing a new item it is not an issue |
| 09:02:02 | raptor | let's say we use ints |
| 09:02:16 | watusimoto | and for most things, a small offset has no consequences whatsoever |
| 09:02:23 | raptor | do we upscale all points by 1000 in the editor? |
| 09:02:29 | watusimoto | yes |
| 09:02:47 | raptor | maybe we should use longs |
| 09:03:00 | watusimoto | or impose a sane max level size |
| 09:03:16 | watusimoto | if we're using S32s, then the max level size would be S32MAX / 1000 |
| 09:03:21 | watusimoto | which is pretty big |
| 09:03:32 | raptor | i don't know.... 4 million points might n ot be enough... |
| 09:03:49 | watusimoto | especially if the game is running off floats which get really weird too far from 0,0 |
| 09:04:24 | raptor | yes, true |
| 09:04:37 | raptor | ints are nice... it's why clipper is so fast and accurate |
| 09:04:49 | watusimoto | but we're probably getting rid of clipper |
| 09:05:04 | watusimoto | but yes, they are nice |
| 09:08:08 | raptor | would using ints + 1000 scaling factor be better or worse performance than doubles? |
| 09:08:24 | watusimoto | in the editor? I think it would hardly matter |
| 09:08:43 | watusimoto | doubles would be easier to implement |
| 09:09:22 | watusimoto | but probably not easy |
| 09:10:01 | raptor | well with doubles we wouldn't need to constantly convert from S32 <-> F32 |
| 09:10:40 | watusimoto | but if we can elminate the downstream problems, we can live with what we have, no? |
| 09:11:08 | raptor | that seems like a bigger gamble |
| 09:11:14 | raptor | because the problems start with the save file |
| 09:12:11 | watusimoto | one easy thing to try would be to, after a drag operation, try snapping all the dragged vertices to existing vertices within a tiny tolerance |
| 09:13:05 | watusimoto | aother thing would be to try to group the coordinate calucations after the drag-and drop operation; you do the drag and drop as now, but then go back and recalculate the total offset once so it becomes one calculation instead of hundreds of tiny ones |
| 09:13:27 | watusimoto | since our problem seems to be isolated to this one operation, we may be better off in the short term fixing that rather than redoing the whole editor |
| 09:15:00 | watusimoto | because that will introduce an entirely new set of bugs |
| 09:15:31 | raptor | heh |
| 09:18:49 | raptor | I still think if we can equalize the floats on the snapped case, it'll solve most of our issues |
| 09:19:07 | watusimoto | yes, I agree. that's where we should focus our efforts |
| 09:22:11 | | kaen has joined |
| 09:28:01 | raptor | so where can I find the logic with the snapped case? |
| 09:28:13 | raptor | because i was going round and round trying to find it a couple nights ago |
| 09:33:32 | watusimoto | Point EditorUserInterface::snapPoint(GridDatabase *database, Point const &p, bool snapWhileOnDock) |
| 09:33:38 | watusimoto | that's the main fn, I think |
| 09:34:23 | watusimoto | look inside the if(mSnapContext != NO_SNAPPING) block |
| 09:35:35 | watusimoto | that fn is probably ok -- it just returns the point to snap to |
| 09:36:28 | watusimoto | the problem is probably where it is called from onMouseDragged() |
| 09:36:55 | watusimoto | down in the part after the SDL_SetCursor(Cursor::getSpray()); call |
| 09:37:45 | watusimoto | more specifically in the else// larger items section |
| 09:38:05 | watusimoto | that statement and the translate just below are what need to be changed |
| 09:38:57 | watusimoto | after looking at it again, the translations aren't additive... that is, we always calcuate the transate offset by comparing the current location to the original location |
| 09:39:33 | watusimoto | no, scratch that |
| 09:39:41 | watusimoto | the translate is incremental and additive |
| 09:43:17 | | Invisible1 has joined |
| 09:43:30 | | Watusimoto_ has joined |
| 09:50:24 | watusimoto | I think the main problem is we don't have the objects' original location anywhere, only the location of their most recent drag |
| 09:50:44 | watusimoto | however, we might sock soemthing useful away when we start dragging an obj |
| 09:55:48 | watusimoto | we have it: mMoveOrigins |
| 09:56:36 | | HylianSavior Quit (Quit: Leaving) |
| 09:56:44 | watusimoto | so you can use a combination of mMoveOrigins and mMoveOrigin and the snap point to snap objects in one go rather than bit by bit as they are dragged |
| 10:00:43 | | HylianSavior has joined |
| 10:07:13 | | kodafly has joined |
| 10:51:40 | | watusimoto Quit (Ping timeout: 272 seconds) |
| 10:52:03 | | Invisible1 Quit (Ping timeout: 245 seconds) |
| 10:52:27 | | Watusimoto_ Quit (Ping timeout: 245 seconds) |
| 11:09:48 | | raptor Quit () |
| 11:20:05 | | kodafly Quit (Quit: Page closed) |
| 11:31:12 | | Nothing_Much Quit (Ping timeout: 272 seconds) |
| 11:42:43 | | raptor has joined |
| 11:42:43 | | ChanServ sets mode +o |
| 11:44:26 | raptor | hello again |
| 11:54:51 | HylianSavior | hi |
| 11:59:20 | kaen | hi |
| 12:04:12 | HylianSavior | so bf is still under active dev huh |
| 12:04:16 | HylianSavior | is it all C++ |
| 12:10:22 | | Watusimoto has joined |
| 12:17:46 | Watusimoto | raptor: did you do any work on the snapping stuff? if not, I can take a look |
| 12:34:07 | | Watusimoto Quit (Ping timeout: 264 seconds) |
| 12:38:40 | raptor | hi |
| 12:38:45 | raptor | you lefT! |
| 12:39:37 | raptor | HylianSavior: bitfighter is mostly C++ with some C, Lua, python and PERL thrown in |
| 12:43:34 | raptor | actively developed, yes! |
| 12:47:41 | HylianSavior | C++ is scary though ;-; |
| 12:48:16 | raptor | yes, very scary - i learned it through working on bitfighter :) |
| 12:48:21 | HylianSavior | are there non C++ things i can contribute to |
| 12:48:59 | raptor | oh sure - are you good with scripting languages? |
| 12:49:10 | raptor | because our bots and editor plugins are run in Lua |
| 12:49:26 | raptor | and our main bot s_bot needs more brains |
| 12:49:29 | HylianSavior | i know ASM, C, Java, Python, Lisp |
| 12:49:36 | HylianSavior | i could probably pick up lua |
| 12:49:41 | raptor | Lua is cake |
| 12:50:33 | raptor | even bobdaduck picked it up... |
| 12:53:11 | kaen | why on earth did you learn ASM? |
| 12:53:22 | kaen | and how is C++ scary after that |
| 12:53:28 | raptor | (and he thinks c++ is scary..) |
| 12:53:35 | raptor | heh |
| 12:54:12 | kaen | ASM is in one sense scarier, but only because there is usually only a few right answers mixed in with a million ways to get it wrong |
| 12:54:42 | kaen | with C++ there's at least a human-readable grammar (and named identifiers...) |
| 12:56:00 | kaen | I did learn some ASM though back when I was just getting into compiled languages. It was interesting from a purely academic standpoint |
| 12:56:36 | kaen | writing a silly little Class with some method invocations, disassembling the exe with gdb and witnessing first-hand the black magic of virtual dispatch |
| 12:58:07 | raptor | dark, dark stuff |
| 12:58:16 | kaen | almost sinister |
| 12:59:27 | raptor | ooo players! |
| 12:59:31 | kaen | and then there's dynamic symbol resolution... on linux that involves a field of these little resolver stubs that scan the virtual address table for the final address of the desired function on the first invocation of a dynamically loaded symbol |
| 12:59:49 | kaen | mildly interesting stuff. |
| 12:59:51 | | Nothing_Much has joined |
| 13:00:09 | kaen | I try to play with those guys but all I ever do is scare them away... |
| 13:00:35 | raptor | ha, that's what it feels like for me, too |
| 13:01:35 | kaen | I try to make small chat, show them how to disable my forcefields, sometimes I even purposefully fire right by them |
| 13:01:37 | kaen | no dice. |
| 13:07:21 | | Watusimoto has joined |
| 13:18:27 | raptor | Watusimoto: I did not get to work on it (I had kid duty and now I'm at work) |
| 13:26:33 | Watusimoto | ok |
| 13:26:51 | Watusimoto | I'm working on soemthing else at the moment |
| 13:27:07 | Watusimoto | but I may be able to see if I can fix things later |
| 13:28:09 | raptor | thank you for your in-depth search, though, i wasn't expecting that.. |
| 13:29:31 | Watusimoto | no worries |
| 13:29:53 | Watusimoto | kaen, are you around? |
| 13:30:30 | Watusimoto | oh wait, now I remember |
| 13:31:15 | kaen | I'm around |
| 13:31:44 | Watusimoto | I was going to ask you how to retrieve a level's rating, but them remembered we disucssed the server should send it |
| 13:32:00 | kaen | ok |
| 13:32:08 | Watusimoto | I was looking for a http method |
| 13:32:17 | Watusimoto | but... that would be wrong |
| 13:32:19 | kaen | you mean the master, right? |
| 13:33:22 | Watusimoto | I might mean that |
| 13:34:13 | Watusimoto | the master has the data, so yes, I suppose it should be a direct request from c2m |
| 13:34:45 | Watusimoto | I hate working on the master :-( |
| 13:34:52 | Watusimoto | so fraught with danger |
| 13:35:00 | | Nothing_Much Quit (Ping timeout: 260 seconds) |
| 13:35:14 | kaen | yeah :/ |
| 13:35:45 | raptor | you can survive it - I've done it many times now |
| 14:29:54 | | Skybax has joined |
| 14:30:02 | Skybax | Goodmorning |
| 14:30:48 | | Nothing_Much has joined |
| 14:34:18 | kaen | morning! |
| 14:35:19 | kaen | except that it's 1:30 pm here :P |
| 14:36:44 | Nothing_Much | kaen, did you move? |
| 14:36:57 | kaen | nope |
| 14:37:01 | kaen | still in WA |
| 14:37:10 | Nothing_Much | ohh, I thought you were on the east coast! |
| 14:37:13 | kaen | hah |
| 14:37:31 | kaen | maybe someday... |
| 14:37:42 | kaen | for now I live in the greatest state in the union :) |
| 14:38:51 | Watusimoto | when did you move to oregon, dude? |
| 14:39:59 | kaen | hahaha |
| 14:40:13 | kaen | oregon is a very narrow second |
| 14:46:10 | kaen | surely you've seen this, Watusimoto http://www.youtube.com/watch?v=AVmq9dq6Nsg |
| 14:46:33 | kaen | it also applies to most of the Washington coast and parts of Downtown Spokane (near the Riverside) |
| 14:47:10 | kaen | where the local Anarchist club holds weekly meetings in the Community Building... |
| 14:48:29 | Watusimoto | I have. https://www.youtube.com/watch?v=V3nMnr8ZirI |
| 14:49:36 | Skybax | Yeah kaen it was 1:30 here too but I had just woken up haha |
| 14:51:24 | kaen | ahaha |
| 14:52:18 | Skybax | An Anarchist Club seems contradictory |
| 14:52:34 | Watusimoto | please show your membership card at the door |
| 14:53:24 | kaen | I can't remember the name, but it was sponsored by some larger national Anarchist organization marketed to youngsters |
| 14:53:49 | Watusimoto | The International Anarchist Guild, if I remember correctly |
| 14:54:08 | Watusimoto | you start out as an apprentice and work your way up |
| 14:54:20 | Watusimoto | you train with a master |
| 14:54:27 | Watusimoto | and learn the craft |
| 14:54:55 | kaen | hahaha |
| 14:54:57 | Skybax | The redundancy of that blows my mind |
| 14:55:33 | Watusimoto | kaen: are there any methods for retrieving rating stuff from the database? |
| 14:55:41 | kaen | he was joking, Skybax :P |
| 14:55:44 | kaen | Watusimoto: nope |
| 14:55:52 | Watusimoto | excellent! |
| 14:56:09 | Watusimoto | a player's rating will always be -1 0 or 1, right? |
| 14:56:39 | kaen | correct |
| 14:56:44 | kaen | ah, found it! http://www.crimethinc.com/ |
| 14:56:46 | kaen | .com |
| 14:56:48 | kaen | anarchist |
| 14:57:20 | kaen | that's part and parcel of the hypocrisy |
| 14:59:24 | kaen | it's even got a 1984 reference in its name and distributes literature with that faux screen-printed style |
| 14:59:35 | kaen | man I forgot how ridiculous these guys are |
| 15:00:34 | Watusimoto | awesome1 |
| 15:02:06 | kaen | including this internet-famous ideological gem about to comport yourself when being arrested: http://www.crimethinc.com/old/police/when_dealing_with_police.pdf |
| 15:04:00 | Watusimoto | though this is pretty cool |
| 15:04:01 | Watusimoto | http://www.crimethinc.com/prism/ |
| 15:05:08 | kaen | alright, you got me |
| 15:05:11 | kaen | those are pretty cool |
| 15:05:21 | | fordcars has joined |
| 15:06:07 | Skybax | Hai ford |
| 15:06:11 | Watusimoto | this is probably a more useful guide to dealing with the police |
| 15:06:13 | Watusimoto | https://www.youtube.com/watch?v=igQDvYOt_iA |
| 15:06:41 | fordcars | Hai |
| 15:07:13 | Skybax | Did you get your house done? x) |
| 15:09:50 | fordcars | Npt yet :PPP |
| 15:10:10 | kaen | "obey the law" |
| 15:10:15 | kaen | pretty much my entire strategy. |
| 15:10:21 | Skybax | Yep yep yep |
| 15:12:18 | raptor | oh no, pleiades was publically posted... |
| 15:12:40 | kaen | yeah... |
| 15:13:00 | kaen | not quite the slashdotting I had expected though :) |
| 15:13:16 | raptor | uhh... does that mean wiping it before release can't happen? |
| 15:13:50 | kaen | hmm |
| 15:14:18 | kaen | ok, maybe I should add a beta banner |
| 15:14:28 | kaen | with a nice visible warning about the pre-release wipe |
| 15:19:12 | Watusimoto | hey kaen, I can't tell if this was intentional or not: |
| 15:19:23 | Watusimoto | in c2mRequestHighScores |
| 15:19:25 | Watusimoto | HighScores *hightScores = getHighScores(3); |
| 15:19:39 | Watusimoto | high==>t<==Scores |
| 15:19:47 | Watusimoto | there is also a static called highScores |
| 15:19:49 | raptor | haha |
| 15:19:53 | kaen | heh |
| 15:19:56 | Watusimoto | both are used in that method |
| 15:20:01 | kaen | oh wow |
| 15:20:08 | Watusimoto | but I can't really tell what was intended |
| 15:20:10 | kaen | wow that's crazy |
| 15:20:28 | kaen | I don't think I wrote that, but it seems unintentional from that line |
| 15:20:37 | raptor | if I coded it, it was unintentional |
| 15:20:54 | raptor | i would have done something like highScoresT |
| 15:20:59 | Watusimoto | ah, it looks like hightscores is a pointer to hightscores |
| 15:21:20 | Watusimoto | I think this is your code... isBuzy |
| 15:21:26 | Watusimoto | that that look like something you'd write? |
| 15:21:38 | raptor | haha, not sure |
| 15:21:42 | Watusimoto | (again, can;t tell if it's busy or soemthing a bee would do) |
| 15:21:50 | raptor | i remember writing the initial high scores code, but you made several modifications |
| 15:21:56 | Watusimoto | a bee isBuzy |
| 15:22:04 | Watusimoto | I definitly would not use isBuzy |
| 15:22:19 | raptor | easily attributed to late night coding by either one of us... :) |
| 15:22:19 | kaen | clearly there should be two z's there |
| 15:22:34 | Watusimoto | either way it's wrong! :-) |
| 15:22:34 | raptor | actually, there is a way to find out.. |
| 15:22:47 | Watusimoto | this uses some threading action I've never seen ebfore |
| 15:22:54 | raptor | use 'hg annotate' on the file |
| 15:23:43 | Watusimoto | ok, I see what's going on... hightscores is not supposed to be highscores |
| 15:23:51 | Watusimoto | they're different things |
| 15:23:57 | Watusimoto | but I think one is getting a rename |
| 15:24:02 | Watusimoto | and I know which one :-) |
| 15:24:35 | raptor | what class file are you in? |
| 15:25:08 | Watusimoto | master.cpp |
| 15:25:19 | Watusimoto | line 1147 |
| 15:25:30 | Watusimoto | or so (I've added some stuff) |
| 15:25:55 | Watusimoto | renaming hightscores to highScoresGroup |
| 15:27:18 | raptor | behold: http://imagebin.org/274334 |
| 15:32:31 | Watusimoto | I thought kaen wrote all that stuff |
| 15:32:43 | Watusimoto | well, I can get rid of the buz |
| 15:32:50 | raptor | ha |
| 15:33:19 | raptor | I'm pretty sure I wrote the initial pass, then you and sam modified/fixed all my bugs (and introduced funny var names) |
| 15:33:41 | kaen | I haven't touched any of the highscore stuff. Any time I read "2m" my palms get sweaty and my pulse quickens |
| 15:34:29 | kaen | so I just sort of curl up in the fetal position and let a big kid handle it :) |
| 15:34:37 | raptor | haha |
| 15:35:22 | raptor | I think I fixed/made it so CMake can compile the master locally |
| 15:35:38 | raptor | then i point my INI to it and develop that way.. |
| 15:36:09 | Watusimoto | the problem is this is all intertwined with our database, so hard to test locally |
| 15:36:47 | raptor | sqlite! |
| 15:37:28 | raptor | oh, uh, actually I do use a local instance of the bitfighter database, too |
| 15:37:48 | raptor | i take one of the _phpbb and _stats exports |
| 15:38:51 | Watusimoto | ok, I may need your help figuring all that out... when it's time |
| 15:39:34 | raptor | are you on a linux box? |
| 15:39:38 | Watusimoto | kaen, one flaw with our design |
| 15:39:40 | Watusimoto | raptor: no |
| 15:39:52 | Watusimoto | but I can work around that, I think |
| 15:40:14 | Watusimoto | kaen: the design with sending ratings via http to enable pleiades caching |
| 15:40:26 | kaen | yes? |
| 15:40:30 | Watusimoto | the problem is that we cannot do caching on the master |
| 15:40:43 | kaen | how so? |
| 15:40:52 | kaen | when would it be invalid? |
| 15:41:07 | Watusimoto | because we don;t know when the ratings have changed, because all change orders go via http |
| 15:41:15 | kaen | oh ok |
| 15:41:46 | Watusimoto | maybe the client should send ratings to master, and the master can spawn off an http request to notify pleiades? |
| 15:42:40 | kaen | yeah that's ok... a lot more work for the server. I'm not sure that we'd net any performance savings by doing an HTTP request to save a DB query |
| 15:43:18 | kaen | especially since the DB has good indexing |
| 15:44:27 | kaen | there's a lot of string formatting to build the requests, and then there's a potential I/O block if it exceeds the loopback buffersize |
| 15:44:50 | Watusimoto | sometimes requesting the high scores takes a loong time |
| 15:44:59 | Watusimoto | before things are cached |
| 15:45:04 | Watusimoto | not sure what the hold up is |
| 15:45:16 | Watusimoto | once cached, it's very fast |
| 15:45:26 | Watusimoto | maybe the db is asleep |
| 15:45:32 | raptor | master vps has to wake up |
| 15:46:28 | Watusimoto | could be... though vps should already be awake because you're already talking to the master |
| 15:46:41 | Watusimoto | and it needs to be awake for that |
| 15:47:18 | kaen | sounds like there's a lot of paging back and forth, depending on how complex those queries are |
| 15:47:55 | kaen | they might just be legitimately slow queries that get a lot of mileage out of query caching. |
| 15:48:51 | kaen | especially when you get into "JOIN" and "SORT BY" territory |
| 15:49:24 | raptor | if it comes from a 'veiw' then it's several queries at once |
| 15:49:30 | raptor | *view |
| 15:49:46 | raptor | maybe we should hack on 'materialized' views (or at least mysql's equivalent) |
| 15:50:16 | raptor | I mean several table joins (not queries) |
| 15:50:45 | kaen | ah, there's a terrible memory |
| 15:51:23 | kaen | so yeah, joining and sorting tables on potentially unindexed columns is a likely culprit |
| 15:51:42 | kaen | btw there's already a monthly "materialized view" for the /stats page |
| 15:52:29 | kaen | I can't imagine needing any more data than what's in that |
| 15:52:48 | kaen | although iirc highscores right now are weekly |
| 15:52:56 | Watusimoto | YES |
| 15:52:59 | Watusimoto | sorry |
| 15:53:00 | Watusimoto | yes |
| 15:53:19 | Watusimoto | maybe we need a weekly materialized view |
| 15:53:36 | Watusimoto | though we also have week-to-date |
| 15:53:37 | raptor | it's a 'view' right now |
| 15:53:53 | kaen | maybe we should work on just putting the master in charge of making those MVs |
| 15:54:00 | kaen | I already wrote the monstrous SQL for it |
| 15:54:17 | raptor | how about database as files! |
| 15:54:27 | raptor | simple text files it could write to... |
| 15:56:02 | | thread_ has joined |
| 15:57:14 | kaen | umm if we just have the master make the MVs (or set the triggers that do it) then the master can take advantage of the performance gains and the stats page becomes less fragile (the triggers have to be loaded whenever mysql gets restarted or the stats page never updates) |
| 15:57:40 | kaen | (couldn't tell if you joking or not, raptor, sorry) |
| 15:57:43 | kaen | you were* |
| 15:58:05 | raptor | :) |
| 15:58:18 | raptor | I'm currently working with a system at work that is using plain text files in that manner |
| 15:58:21 | raptor | it's nice to edit |
| 15:58:26 | raptor | but very clunky |
| 15:59:11 | kaen | yeah, it makes me uncomfortable |
| 15:59:17 | kaen | hopefully it's not the payroll system :) |
| 15:59:26 | raptor | heh |
| 15:59:27 | kaen | or maybe hopefully it is ;) |
| 15:59:35 | raptor | luckily i haven't had to touch that one yet... |
| 16:00:11 | kaen | morning thread_ ! |
| 16:00:22 | thread_ | morning |
| 16:00:32 | thread_ | or afternoon... depending on where you are |
| 16:00:34 | kaen | (it's always morning in #bitfighter) |
| 16:00:40 | thread_ | ah |
| 16:05:51 | | amgine123 has joined |
| 16:06:01 | amgine123 | hello |
| 16:06:07 | amgine123 | anything new? |
| 16:11:26 | Watusimoto | hi, not much |
| 16:11:48 | Watusimoto | so I'm kind of stuck on how to proceed. for each player, we need to numbers; their personal rating and the overall average rating |
| 16:12:12 | Watusimoto | there will tend to be a cluster of requests, and the average rating can be cached to be used in all those requests |
| 16:12:21 | Watusimoto | but the personal rating not so much |
| 16:13:10 | Watusimoto | the only way that would be reused is if the level is replayed, or player quits and rejoins (and perhaps both can be handled by local caching on the client) |
| 16:13:22 | Watusimoto | so the question is, do I make one or two requests to the databse? |
| 16:13:53 | Watusimoto | one is unavoidable (but cheap -- just find a record and pull out a value) |
| 16:14:12 | Watusimoto | the other is more expensive(averaging several records) |
| 16:14:18 | Watusimoto | so... maybe two requests? |
| 16:19:30 | fordcars | later gtg |
| 16:23:24 | amgine123 | hmm i think 2 would be better |
| 16:23:55 | | fordcars Quit (Ping timeout: 250 seconds) |
| 16:24:38 | Watusimoto | yeah, I'm doing it as two requests |
| 16:25:33 | amgine123 | is layering possible in BF |
| 16:25:42 | amgine123 | ie one object is displayed over another |
| 16:26:19 | amgine123 | cause goal zones laoudout zones and regualr zones need to be layered under everthing esle it makes placing stuff imposible if you need large zones |
| 16:26:46 | amgine123 | also is it possible to ake the grid be displayed on top of everything? |
| 16:28:54 | raptor | there is no concept of a layering 'level' in bitfighter |
| 16:29:42 | raptor | however, all objects that occupy a specific location are sorted teh same way. so you get some consistency, like ships should always be above healthitems, etc. |
| 16:29:47 | raptor | repairitems |
| 16:33:22 | amgine123 | oh ok i just think it would be convenent if bolth the grid and zones were disaplayed unde evertyhintg esle if you ened 1 large zone persay yuo place it but then everything under is is hard to build or locate |
| 16:33:32 | amgine123 | oops grid aqbove |
| 16:33:41 | amgine123 | zones below |
| 16:33:46 | amgine123 | like when you are playign a game |
| 16:34:19 | amgine123 | would it be possible to implement that into the level editor? |
| 16:34:31 | amgine123 | its very hard for when I need to do it |
| 16:34:42 | raptor | have the grid show above items? |
| 16:35:50 | amgine123 | yeah |
| 16:36:00 | amgine123 | and zones below everything |
| 16:36:10 | raptor | zones no |
| 16:36:21 | raptor | that has to do with the auto-sorting I mentioned above |
| 16:36:26 | raptor | there isn't a concept of layering |
| 16:36:34 | amgine123 | well it auto sorts wrong in the editor |
| 16:36:40 | amgine123 | it places zones above everything |
| 16:36:44 | raptor | that's how it works in game, too |
| 16:37:03 | amgine123 | try placing a huge zone in hte level editor then try making a level under it |
| 16:37:19 | amgine123 | and no it doesnt un game zones are under polywalls not above it |
| 16:37:22 | raptor | yes, that would be very hard |
| 16:37:31 | raptor | try making the level first, then placing the zone above... |
| 16:37:57 | amgine123 | right but thats alot harder then it needs to be it would be more convient for level designers |
| 16:38:17 | amgine123 | if auto sorting was somehow implemented in the level editor |
| 16:38:59 | amgine123 | ive actully heard on ocassian complaints about that in game |
| 16:39:11 | amgine123 | but its wuncommen |
| 16:39:14 | amgine123 | uncommen |
| 16:39:30 | raptor | I'm not saying it isn't a problem - but I think the editor should show the exact same behavior as the game |
| 16:40:05 | raptor | maybe zones in the editor could be rendered semi-transparent or something.. |
| 16:40:20 | Watusimoto | kaen: would you sometime today write me two snippets of sql: one to get the average rating of a level with id "id" and antoerh that gets a player's rating for level with "id" given "player_id"? |
| 16:40:32 | raptor | i'm talking about trigger zones, not loadout zones... |
| 16:40:33 | Watusimoto | I'm not going to finish this tonight, and don't need it immediately |
| 16:40:38 | amgine123 | I guess what might work after all your right it should match the in game parameters |
| 16:40:41 | Watusimoto | but you can figure it out a lot faster than I can |
| 16:40:58 | amgine123 | well it apollys to all 3 |
| 16:41:33 | Watusimoto | kaen: sorry given a player's name "name" |
| 16:41:46 | amgine123 | Ugh I have the worst case of fatfingering |
| 16:41:50 | amgine123 | Xd |
| 16:43:16 | amgine123 | raptor IT does aplly to all 3 and you are right it should match the in game parametrs but while transparancy is a temp fix it doesnt match the main game although I dont know what is prgramable or not |
| 16:43:42 | amgine123 | anyways just a idea i had its been a issue for a few versions but keeps seem to being forgot or put off |
| 16:50:53 | amgine123 | well shoot how did tht happen i was playing a game and BF crashed |
| 16:51:07 | amgine123 | weird |
| 17:13:55 | raptor | gotta go! later |
| 17:13:59 | | raptor Quit () |
| 17:17:00 | amgine123 | bbl piano lesson pc me for later |
| 17:38:37 | | kaen Quit (Read error: Connection reset by peer) |
| 17:46:41 | | thread_ Quit (Ping timeout: 250 seconds) |
| 17:57:43 | | Watusimoto Quit (Ping timeout: 240 seconds) |
| 18:04:29 | amgine123 | back |
| 18:21:26 | | Skybax_ has joined |
| 18:23:28 | | Skybax Quit (Ping timeout: 245 seconds) |
| 18:26:25 | | Skybax_ has left #bitfighter |
| 18:26:36 | | Skybax_ has joined |
| 18:29:19 | amgine123 | hi |
| 18:29:31 | Skybax_ | Hi |
| 18:38:37 | | Nothing_Much Quit (Ping timeout: 252 seconds) |
| 18:44:24 | | Skybax_ Quit (Ping timeout: 260 seconds) |
| 18:57:40 | | Nothing_Much has joined |
| 19:27:48 | | fordcars has joined |
| 19:28:04 | fordcars | Heh, I am done my BitTown house |
| 19:37:54 | | raptor has joined |
| 19:37:55 | | ChanServ sets mode +o |
| 19:41:02 | | Platskies has joined |
| 19:46:59 | amgine123 | lurk |
| 19:58:30 | | Platskies Quit (Quit: Platskies) |
| 20:22:16 | amgine123 | zzz zzz |
| 20:26:35 | | fordcars Quit (Ping timeout: 250 seconds) |
| 20:31:13 | | Skybax has joined |
| 20:35:49 | | Flynnn has joined |
| 20:42:26 | Skybax | raptor, how does join (j) work in the editor? |
| 20:42:28 | Skybax | I can't figure it out |
| 20:43:21 | | fordcars has joined |
| 20:44:35 | Skybax | Hey ford xD your house is small haha |
| 20:44:49 | Skybax | Thx for the submission tho |
| 20:44:51 | raptor | Skybax: i think it only works for polygon objects of same type |
| 20:45:05 | Skybax | raptor, I'm trying to merge two loadout zones |
| 20:45:19 | Skybax | I got it to work for walls, but the loadout zones won't merge |
| 20:45:26 | raptor | yeah, I think they have to be touching, and no holes in between... |
| 20:45:44 | raptor | i mean, completely surrounded holes.. |
| 20:45:49 | raptor | LET ME TEST |
| 20:45:55 | raptor | oops; let me test |
| 20:46:03 | Skybax | So could I use them to make a donut-esque loadout zone? |
| 20:46:07 | Skybax | Cause that's what I'm trying to do lol |
| 20:46:13 | raptor | ha |
| 20:46:15 | raptor | no |
| 20:46:16 | Skybax | Except square |
| 20:46:38 | raptor | because wehn you think about it... how can a donut-like shape have one *continuous* line? |
| 20:46:58 | Skybax | Every donut has two continuous lines lol |
| 20:47:03 | raptor | exactly |
| 20:47:10 | raptor | and a single zone only ever has one |
| 20:47:20 | raptor | otherwise it's not a polygon |
| 20:47:37 | Skybax | So donuts aren't polygons? |
| 20:47:42 | raptor | nope |
| 20:47:50 | Skybax | I have to google this now ._. |
| 20:48:13 | raptor | they fall under the category of polygon-with-a-hole |
| 20:48:22 | raptor | so it's basically two polygons |
| 20:48:29 | raptor | one cut out of the other |
| 20:48:59 | fordcars | Skybax I was in the limits!! |
| 20:49:23 | Skybax | Ford, yes you were xD you were well below the limits lol |
| 20:49:26 | fordcars | Donuts are easy |
| 20:49:32 | Skybax | I think you were 520 of the 1020 |
| 20:49:33 | fordcars | ???? |
| 20:49:38 | fordcars | oh oops |
| 20:49:50 | Skybax | Hop on BF and I'll show you lol |
| 20:50:11 | raptor | ok, gotta go... |
| 20:50:16 | raptor | sorry Skybax, no donuts |
| 20:52:35 | Skybax | Hahahaha ford xD |
| 20:52:40 | | raptor Quit () |
| 20:52:46 | fordcars | Skybax, just mercge a bunch of loadouts to make one loadout with lots of vertexes, then shape them into a curve, and make a donnunt |
| 20:52:50 | fordcars | What sky? |
| 20:53:00 | Skybax | You were right, your house is 4 squares |
| 20:53:04 | fordcars | hah |
| 20:53:07 | fordcars | hahahahha |
| 20:53:09 | fordcars | mhahahahaç |
| 20:53:14 | fordcars | MHAHAHAHAHAHAHAHAHAHA |
| 20:53:14 | Skybax | However, I said 4 squares by 4 squares |
| 20:53:21 | fordcars | doh |
| 20:53:29 | Skybax | Meaning 4 long and 4 tall |
| 20:54:25 | Skybax | Your house is 510x510, and I said 1020x1020 |
| 20:54:35 | Skybax | So you filled up exactly half of your given space lol |
| 21:15:55 | amgine123 | i need to make a doughnut for my level XD |
| 21:19:18 | fordcars | Skybax, do I put a spawn point? |
| 21:20:09 | Skybax | You can if you want, or else I can place one for you |
| 21:22:28 | fordcars | Ok thanks |
| 21:27:15 | fordcars | Skybax, my new house : http://pastie.org/8420280 |
| 21:27:23 | fordcars | Hehehe |
| 21:30:08 | | Skybax Quit (Ping timeout: 245 seconds) |
| 21:30:20 | | Skybax has joined |
| 21:30:48 | Skybax | Awesome |
| 21:33:54 | Skybax | Done lol |
| 21:34:06 | Skybax | Now I just need everyone else's submissions and I can give raptor the level x) |
| 21:34:30 | Skybax | And ford, if you feel so inclined, feel free to submit anything else you might want to be put in the town lol doesn't have to be a house xD |
| 21:39:32 | fordcars | Sure! |
| 21:45:07 | Nothing_Much | fordcars, How's your Pi? |
| 21:47:09 | Skybax | Pi is tasty |
| 21:47:56 | Skybax | bobdaduck mentioned the need for a town square type thing lol |
| 21:48:09 | Skybax | I think I'm gonna make BitForest |
| 21:48:15 | Nothing_Much | Also, hello everyone |
| 21:48:21 | Skybax | Hiya Nothing |
| 21:49:24 | fordcars | Hi Nothing! |
| 21:49:42 | | bobdaduck has joined |
| 21:49:48 | fordcars | I don't know what to do when SDL doesn't compile :P |
| 21:49:50 | bobdaduck | Why the knrl |
| 21:49:55 | bobdaduck | do bursts explode |
| 21:50:01 | bobdaduck | When they hit a teleporter |
| 21:50:03 | | bobdaduck Quit (Remote host closed the connection) |
| 21:50:25 | Skybax | Hahaha xD |
| 21:51:23 | Nothing_Much | fordcars, Oh darn :( |
| 21:51:39 | Nothing_Much | I thought SDL2 was already available as a package on Raspbian |
| 21:52:32 | fordcars | NO, it only works on Raspbian :P |
| 21:52:35 | fordcars | *No |
| 21:53:32 | Nothing_Much | http://www.raspberrypi.org/phpBB3/viewtopic.php?t=58180&p=437288 |
| 21:54:22 | Nothing_Much | Have you tried that fordcars ? |
| 21:54:50 | fordcars | No, it uses sdl2, but I need sdl2 -dev |
| 21:54:53 | fordcars | :((((( |
| 21:55:22 | fordcars | Wait, |
| 21:55:26 | fordcars | It might work! |
| 21:55:44 | Nothing_Much | Bitfighter just needs to be pointed to the proper lib, I'm sure |
| 21:55:48 | Nothing_Much | Where the heck is kaen? |
| 21:55:54 | Nothing_Much | He's normally here all the time. |
| 21:56:19 | fordcars | heh I don' t know |
| 21:57:40 | Nothing_Much | He's probably still setting up Ubuntu 13.10 |
| 21:57:49 | Nothing_Much | Or enjoying his sounds and stuff |
| 21:58:33 | Skybax | Hey fordcars, how good are you at text art? |
| 21:59:32 | fordcars | uh, why? |
| 21:59:42 | fordcars | ≧◔◡◔≦ |
| 21:59:49 | fordcars | Heh, nope |
| 21:59:59 | fordcars | That's Google |
| 22:00:01 | Skybax | I need someone to make a water feature out of text with a big thing coming out of the middle for me to put the flag on lol |
| 22:00:18 | fordcars | _░▒███████ ░██▓▒░░▒▓██ ██▓▒░__░▒▓██___██████ ██▓▒░____░▓███▓__░▒▓██ ██▓▒░___░▓██▓_____░▒▓██ ██▓▒░_______________░▒▓██ _██▓▒░______________░▒▓██ __██▓▒░____________░▒▓██ ___██▓▒░__________░▒▓██ ____██▓▒░______ |
| 22:00:21 | fordcars | HAhahaha |
| 22:00:31 | Skybax | Cause BF doesn't have line items that make it easy to draw thing >.> |
| 22:00:33 | fordcars | I guess Quartz could do that |
| 22:00:47 | fordcars | I think Bf has a line item actually |
| 22:00:53 | Skybax | It does? |
| 22:01:13 | Skybax | Is it in 019? Or in 018a but just hidden lol |
| 22:01:19 | Nothing_Much | I have no idea what that says lol |
| 22:01:52 | | Flynnn Quit (Quit: Leaving) |
| 22:04:37 | Skybax | I guess I could try going into the level code and adding a LineItem and seeing what happens xD |
| 22:06:36 | fordcars | I think allot of people use them, but I don't know how haha |
| 22:06:46 | fordcars | Check out a level file that has one I guess |
| 22:21:45 | Nothing_Much | How is everyone? |
| 22:26:45 | | raptor has joined |
| 22:26:46 | | ChanServ sets mode +o |
| 22:26:53 | raptor | hold the squiggly ~~~~~ |
| 22:27:00 | raptor | for line items, then draw like barriers |
| 22:27:02 | raptor | ok bye |
| 22:27:08 | | raptor Quit (Client Quit) |
| 22:36:17 | amgine123 | bye |
| 22:37:38 | | Skybax Quit (Ping timeout: 245 seconds) |
| 22:40:29 | | amgine123 Quit (Ping timeout: 250 seconds) |
| 22:43:45 | Nothing_Much | fordcars, did you try that thing I linked ya out? |
| 22:44:16 | Nothing_Much | *for the RPi? |
| 22:44:47 | | Skybax has joined |
| 22:45:14 | Nothing_Much | Bleep |
| 22:58:17 | Skybax | Yay squggly |
| 23:18:28 | fordcars | Night guys! |
| 23:18:31 | | fordcars Quit (Quit: Page closed) |
| 23:20:20 | Nothing_Much | g'night |
| 23:23:53 | | Skybax Quit (Ping timeout: 245 seconds) |
| 23:24:07 | | Skybax has joined |
| 23:38:11 | | Skybax Quit (Read error: Connection reset by peer) |
| 23:39:26 | | Skybax has joined |
| 23:59:12 | | Skybax_ has joined |
| 23:59:18 | | Skybax Quit (Ping timeout: 245 seconds) |