[2/28/2011 1:01:44 AM] buckyballreaction: that assert piece you added to TNL was needed because it ws removed in recast in a recent revision [2/28/2011 1:05:14 AM] buckyballreaction: i mean: compared to recast sources (Recast.cpp) the following ifdef was removed from what you checked into bitfighter: #ifdef WIN32 # define _CRT_SECURE_NO_DEPRECATE // Avoid warnings about vsnprintf #endif /* WIN32 */ [2/28/2011 1:54:18 AM] buckyballreaction: it's funny: the spam bots almost always choose 'Football' as an interest in the forums [2/28/2011 2:36:53 AM] Samuel Williams: ? [2/28/2011 2:37:54 AM] buckyballreaction: hi sam [2/28/2011 2:38:25 AM] Samuel Williams: hi bbr? [2/28/2011 2:38:48 AM] buckyballreaction: i have a question: how do you fix linking errors of the form: undefined reference to XXXX when the reference in question is a static object? [2/28/2011 2:39:36 AM] Samuel Williams: search for XXXX in all files, maybe you forgot to include that file in project build [2/28/2011 2:39:54 AM] buckyballreaction: it's there... maybe it isn't initialized? [2/28/2011 2:40:31 AM] Samuel Williams: yes, that might be true, uninitalized. [2/28/2011 2:41:11 AM] Samuel Williams: Example is there might be Extern int number234, but there is no real int number234 anywhere, so linker complain. [2/28/2011 2:41:42 AM] buckyballreaction: so i have in a header: static unsigned char* m_triareas; [2/28/2011 2:42:23 AM] buckyballreaction: then in the .cpp:void BotNavMeshZone::initRecastData() { m_triareas=NULL; } [2/28/2011 2:42:54 AM] buckyballreaction: is that not properly initialized? [2/28/2011 2:43:09 AM] buckyballreaction: it compiles fine, just not linking [2/28/2011 2:43:26 AM] Samuel Williams: umm, maybe the header (.h) file is wrong? or maybe it is a problem with static? [2/28/2011 2:43:38 AM] buckyballreaction: yeah, i think it has something to do with static [2/28/2011 2:44:31 AM] buckyballreaction: i'm just trying to learn my way through a refactor... [2/28/2011 2:49:16 AM] Samuel Williams: sometimes, it fail linking when it did not compile all needed files. [2/28/2011 2:58:11 AM | Edited 2:59:51 AM] Samuel Williams: ok, when having "static S32 number" inside a struct for .h file, need to add "S32 struct_name::number = 0;" in cpp file [2/28/2011 2:58:33 AM] Samuel Williams: this is only for using statics. [2/28/2011 3:01:02 AM] buckyballreaction: interest [2/28/2011 3:01:05 AM] buckyballreaction: ing [2/28/2011 3:01:29 AM] buckyballreaction: static has a weird behaviour sometiems [2/28/2011 3:02:07 AM] Samuel Williams: yes, sometimes need to be careful with static, as it is being shared everywhere. [2/28/2011 3:02:20 AM] Samuel Williams: on all instance of structs. [2/28/2011 3:13:37 AM] buckyballreaction: oh my goodness i got it to compile [2/28/2011 3:23:30 AM] buckyballreaction: do you need to 'delete' a struct if all the data in the struct are integers or floats? [2/28/2011 3:24:16 AM] buckyballreaction: (i still have lots to learn about memory management) [2/28/2011 3:24:16 AM] Samuel Williams: if using this: somestruct *a = new somestruct; then need to delete. [2/28/2011 3:25:11 AM] buckyballreaction: what about: someStruct myStruct; myStruct->someInt = 0; [2/28/2011 3:25:33 AM] Samuel Williams: if using only this: somestruct a(1,2,3) then there is no need to delete.. [2/28/2011 3:25:47 AM] buckyballreaction: ok [2/28/2011 3:25:49 AM] Samuel Williams: can't use -> if not using someStruct * [2/28/2011 3:26:01 AM] buckyballreaction: yes, sorry, i meant to add the '*' [2/28/2011 3:26:26 AM | Edited 3:26:39 AM] Samuel Williams: ok, then in that case need to "delete myStruct;" when done. [2/28/2011 3:27:21 AM] buckyballreaction: i did that, but I got a 'double free or corruption' error [2/28/2011 3:27:59 AM] Samuel Williams: trying to delete twice? [2/28/2011 3:28:48 AM] buckyballreaction: what if i did it like this (no pointers involved): someStruct myStruct; myStruct.someInt = 0; [2/28/2011 3:28:56 AM] Samuel Williams: ok, if passing through function? void something(Point *a) [2/28/2011 3:29:19 AM] Samuel Williams: there would be no need to delete while inside the function. [2/28/2011 3:29:40 AM] buckyballreaction: ah ok [2/28/2011 3:29:46 AM] buckyballreaction: i guess i don't need to delete then [2/28/2011 3:29:49 AM] buckyballreaction: thanks [2/28/2011 3:54:38 AM] buckyballreaction: ok, i have a linking error with another static method, but this time i had to pull it into the cpp with: extern bool someMethod(); [2/28/2011 3:55:08 AM] buckyballreaction: someMethod() is declared as static in a third-party .cpp file i do not wish to modify [2/28/2011 3:55:28 AM] buckyballreaction: (it wasn't declared in the third-party .h file) [2/28/2011 3:56:33 AM] Samuel Williams: extern static bool someMethod ? [2/28/2011 3:56:41 AM] buckyballreaction: yes, sorry [2/28/2011 3:56:46 AM] buckyballreaction: well no [2/28/2011 3:57:09 AM] buckyballreaction: no static modifier when declaring extern: it threw an error [2/28/2011 3:57:52 AM] Samuel Williams: maybe just "static bool someMethid();" [2/28/2011 3:58:54 AM] buckyballreaction: nope didn't work [2/28/2011 3:59:53 AM] Samuel Williams: maybe just extern? [2/28/2011 4:00:51 AM] buckyballreaction: back to the linking error: undefined reference to `Zap::addVertex [2/28/2011 4:01:01 AM] buckyballreaction: so the extern is pulling it into the Zap namespace? [2/28/2011 4:01:21 AM] buckyballreaction: ah... maybe i'll put it without the namespace... [2/28/2011 4:01:41 AM] Samuel Williams: maybe put it above the line Namespace Zap { [2/28/2011 4:03:05 AM] buckyballreaction: rats, same error [2/28/2011 4:03:13 AM] buckyballreaction: still compiles though [2/28/2011 4:03:23 AM] buckyballreaction: ok, i won't waste your time [2/28/2011 4:03:28 AM] buckyballreaction: i'll do more research [2/28/2011 4:26:29 AM] buckyballreaction: well good night [2/28/2011 4:35:43 AM] Samuel Williams: maybe the only option is to remove "Static" because at http://www.cplusplus.com/forum/beginner/4758/ at the botton says this: "A static function at file/namespace scope (ie, not within a class) within a .cpp file is a function whose symbol is not exported in the .o; that is, the function is not visible outside that .cpp file." [2/28/2011 4:38:02 AM] Samuel Williams: good might.. [2/28/2011 11:43:41 AM] buckyballreaction: good morning [2/28/2011 1:58:35 PM] buckyballreaction: i think i'm starting to hate recast [2/28/2011 2:02:25 PM] Chris Eykamp: I understand; about the new/delete, the rule of thumb I use is that for every new, you must have a corresponding delete. [2/28/2011 2:02:47 PM] Chris Eykamp: ideally, you structure things so there is one and only one delete [2/28/2011 2:12:37 PM] Chris Eykamp: http://critterai.org/nmgen_polygen [2/28/2011 2:17:31 PM] buckyballreaction: that's actually exactly what i'm reading right now... [2/28/2011 2:19:29 PM] buckyballreaction: because lal we need is the merge [2/28/2011 2:20:16 PM] Chris Eykamp: still sick, unfotunately [2/28/2011 2:20:24 PM] buckyballreaction: that's ok [2/28/2011 2:20:32 PM] buckyballreaction: i've been getting used to c++ refactoring now [2/28/2011 2:22:56 PM] Chris Eykamp: they suggest merging in order from longest shared edge to shortest [2/28/2011 2:23:05 PM] Chris Eykamp: I wonder how important that is [2/28/2011 2:29:30 PM] Chris Eykamp: maybe we can create an associateive array where the key is a pair of vertices and the value is the triangle they belong to, and maybe the length of the edge... then we can easily find the two triangles to merge.. running out of steam on this thought [2/28/2011 2:37:32 PM] buckyballreaction: this may help with merging: http://www.angusj.com/delphi/clipper.php [2/28/2011 2:46:04 PM] buckyballreaction: that lokos promising: it allows merging of polygons that don't overlap as well (union) [2/28/2011 2:49:07 PM] Chris Eykamp: but we want something that will conditionally merge to produce convex polygons [2/28/2011 2:49:38 PM] buckyballreaction: explain ;conditionally; [2/28/2011 2:50:58 PM] Chris Eykamp: it may help, but I see no evidence that this solves our problem [2/28/2011 2:51:12 PM] Chris Eykamp: oh, sorry, misunderstood [2/28/2011 2:51:31 PM] Chris Eykamp: conditionally == merge if resulting poly is convex [2/28/2011 2:51:50 PM] buckyballreaction: ah yes [2/28/2011 2:51:52 PM] buckyballreaction: hmmm [2/28/2011 2:52:01 PM] buckyballreaction: maybe we should just write our own... [2/28/2011 2:52:52 PM] Chris Eykamp: maybe... it's a complex problem [2/28/2011 2:53:20 PM] Chris Eykamp: maybe this would work [2/28/2011 2:53:27 PM] Chris Eykamp: start with arbitrary triangle [2/28/2011 2:54:07 PM] Chris Eykamp: merge with neighbor if result is convex [2/28/2011 2:54:37 PM] Chris Eykamp: ummm... [2/28/2011 2:54:43 PM] Chris Eykamp: need to think this through [2/28/2011 2:55:14 PM] buckyballreaction: it's explain well enough here: http://critterai.org/nmgen_polygen [2/28/2011 2:55:19 PM] buckyballreaction: under 'Merge...' [2/28/2011 2:56:05 PM] Chris Eykamp: yes, that algo looks fine, it's just the implementation [2/28/2011 2:57:15 PM] Chris Eykamp: need a fast way of finding a triangle from an edge, hence the associative array idea I mentioned earlier [2/28/2011 3:05:23 PM] buckyballreaction: RecastMesh.cpp: getPolyMergeValue [2/28/2011 3:41:56 PM] Chris Eykamp: maybe we should work through rcBuildPolyMesh and do some timing of the bits in there, see what's slow, and see if there are any parts we don't need. [2/28/2011 3:42:05 PM] Chris Eykamp: and, make sure it really is working, of course. [2/28/2011 3:42:49 PM] buckyballreaction: i found the part that takes up 99% of the time: addVertex() [2/28/2011 3:42:50 PM] Chris Eykamp: since we have yet to actaully be able to even see the results [2/28/2011 3:42:55 PM] Chris Eykamp: really? [2/28/2011 3:42:58 PM] buckyballreaction: yep [2/28/2011 3:43:16 PM] Chris Eykamp: because it's called alot, or because it's slow [2/28/2011 3:43:23 PM] buckyballreaction: i don't know [2/28/2011 3:43:34 PM] buckyballreaction: i'm thinking both, but has something to do with the height [2/28/2011 3:43:39 PM] buckyballreaction: recast y coord [2/28/2011 3:50:10 PM] Chris Eykamp: maybe we can optimize a little given that we have no ys [2/28/2011 4:02:04 PM] Chris Eykamp: well, addVertex() doesn't really do much computation, and I think it has nothing to do with height. [2/28/2011 4:02:21 PM] Chris Eykamp: we could eliminate the middle test here: [2/28/2011 4:02:24 PM] Chris Eykamp: if (v[0] == x && (rcAbs(v[1] - y) <= 2) && v[2] == z) [2/28/2011 4:02:44 PM] Chris Eykamp: which we know will always be true, but that's not exactly a huge time waster [2/28/2011 4:03:36 PM] Chris Eykamp: this may use 99% of the time because it's called so often [2/28/2011 4:04:38 PM] Chris Eykamp: there's no reason this should take so long to run [2/28/2011 4:05:54 PM] buckyballreaction: argh [2/28/2011 4:06:01 PM] buckyballreaction: it isn't that method.... [2/28/2011 4:06:35 PM] buckyballreaction: but commenting out the while loop that surrounds it sure speeds it up to only a few milliseconds [2/28/2011 4:08:09 PM] buckyballreaction: ok, i need to better debug... [2/28/2011 4:15:02 PM] buckyballreaction: it's getPolyMergeValue [2/28/2011 4:22:50 PM] Chris Eykamp: so.. that works with the following steps: check for too many vertices check for common edges check for convexity do merge [2/28/2011 4:22:57 PM] Chris Eykamp: all critical [2/28/2011 4:23:30 PM] buckyballreaction: yup [2/28/2011 4:24:37 PM] Chris Eykamp: and none of whcih could be significaly simplied be removing the vertical component [2/28/2011 4:24:53 PM] Chris Eykamp: again, there might be a small efficiency gain, but not much [2/28/2011 4:25:30 PM] Chris Eykamp: btw, do you know terrence neo? [2/28/2011 4:26:31 PM] buckyballreaction: sounds familiar [2/28/2011 4:26:47 PM] buckyballreaction: oh the silent one in the room? [2/28/2011 4:26:51 PM] buckyballreaction: nope [2/28/2011 4:28:16 PM] buckyballreaction: i wish some of these variable names were a little clearer in getPolyMergeValue [2/28/2011 4:32:08 PM] buckyballreaction: so i'm getting numbers like -1186265571 being returned from getPolyMergeValue (shouldnt they be positive?) [2/28/2011 4:38:19 PM] Chris Eykamp: I agree that the code is not wrtten for clarity, but I'm beginning to figure it out [2/28/2011 4:38:29 PM] Chris Eykamp: it's a slow process [2/28/2011 4:39:06 PM] Chris Eykamp: return -1 indicates invalid merge [2/28/2011 4:39:26 PM] Chris Eykamp: otherwise, returns dx*dx + dy*dy [2/28/2011 4:39:31 PM] Chris Eykamp: I recon that should be positive [2/28/2011 4:39:35 PM] Chris Eykamp: unless... [2/28/2011 4:39:41 PM] Chris Eykamp: could be we using imaginary numbers here? [2/28/2011 4:41:04 PM] Chris Eykamp: dx, dy should always be positive (and here when they write dy, they really mean dz, they've confused their own crappy naming system) [2/28/2011 4:41:25 PM] buckyballreaction: bah [2/28/2011 4:41:37 PM] Chris Eykamp: do this returns the length squared of something [2/28/2011 4:41:44 PM] Chris Eykamp: but should be a smallish posiive value [2/28/2011 4:41:54 PM] Chris Eykamp: which suggests the possibility that the inputs are not correct [2/28/2011 4:44:13 PM] buckyballreaction: ok, caught it on a dy of -58526 [2/28/2011 4:45:51 PM] Chris Eykamp: 58526^2 overflows a singed 32 [2/28/2011 4:46:05 PM] Chris Eykamp: so we get a negative result [2/28/2011 4:46:38 PM] Chris Eykamp: so now the question why the big dy? [2/28/2011 4:46:49 PM] buckyballreaction: working backwards.... [2/28/2011 4:46:53 PM] Chris Eykamp: yes [2/28/2011 4:46:54 PM] Chris Eykamp: always fun [2/28/2011 4:46:55 PM] buckyballreaction: with lots of two letter vars [2/28/2011 4:47:19 PM] Chris Eykamp: va vb vc are all points [2/28/2011 4:47:48 PM] Chris Eykamp: ea eb are edges [2/28/2011 4:47:50 PM] buckyballreaction: vb = pa[ea]; [2/28/2011 4:47:54 PM] Chris Eykamp: pa pb must be points [2/28/2011 4:48:01 PM] buckyballreaction: (the first vb) returns 1006 [2/28/2011 4:48:25 PM] buckyballreaction: vb = pb[ea]; [2/28/2011 4:48:36 PM] buckyballreaction: (the second vb) returns 723 [2/28/2011 4:49:13 PM] Chris Eykamp: both longish but not outrageous [2/28/2011 4:49:16 PM] buckyballreaction: is it because we have too many triangles? [2/28/2011 4:49:25 PM] Chris Eykamp: I don't think we do [2/28/2011 4:49:43 PM] Chris Eykamp: we need less than 64000 or so, and we have that [2/28/2011 4:49:56 PM] Chris Eykamp: even on geowar [2/28/2011 4:50:49 PM] buckyballreaction: the third vb: vb = pa[(ea+1)%na]; returns 723 [2/28/2011 4:51:27 PM] buckyballreaction: i am doing vb becausse of: int dy = (int)verts[va*3+2] - (int)verts[vb*3+2]; [2/28/2011 4:51:30 PM] Chris Eykamp: I've been adding asserts to botnavmeshzone to make sure we don't exceed any lmitations [2/28/2011 4:51:43 PM] buckyballreaction: oh [2/28/2011 4:51:52 PM] buckyballreaction: you should fix something in RecastMesh.cpp [2/28/2011 4:52:21 PM] buckyballreaction: you set mesh.bmin twice instead of mesh.bmax [2/28/2011 4:52:37 PM] buckyballreaction: but even that fix didn't make it work [2/28/2011 4:53:22 PM] Chris Eykamp: got it [2/28/2011 4:53:41 PM] buckyballreaction: print verts[723] $27 = 40960 [2/28/2011 4:53:51 PM] Chris Eykamp: that's a problem [2/28/2011 4:54:21 PM] buckyballreaction: print verts[vb*3+2] $28 = 60016 (gdb) $29 = 60016 (gdb) $30 = 60016 [2/28/2011 4:54:29 PM] buckyballreaction: if vb is 723 [2/28/2011 4:54:38 PM] Chris Eykamp: so we've crossed some threshold [2/28/2011 4:55:21 PM] buckyballreaction: that ends up being verts[2171] [2/28/2011 4:55:29 PM] buckyballreaction: returns 60016 [2/28/2011 4:58:24 PM] buckyballreaction: well, i have a meeting... i'll talk to you later [2/28/2011 4:59:00 PM] Chris Eykamp: later [2/28/2011 9:04:46 PM] buckyballreaction: any further understanding of the verts? [2/28/2011 9:05:16 PM] buckyballreaction: could it be that the input verts need to be offset to a specific coordinate system? [2/28/2011 9:24:28 PM] Chris Eykamp: I found a bug in my visualization code, but that wasn't the entire problem. Now I'm getting heap corruption problems. Will check in my fixes shortly; [2/28/2011 9:34:50 PM] Chris Eykamp: they should be in. I want to try printing out all the points that come back to see if we're getting good data that's being post processed wrong, but these heap corruption problems have me baffled. [2/28/2011 9:36:11 PM] Chris Eykamp: it looks like recast is trying to delete a chunk of memory it had previously allocated, and so should be a good think, but something is going wrong. [2/28/2011 9:53:16 PM] Chris Eykamp: oops, didn't finish the fix [2/28/2011 9:53:22 PM] Chris Eykamp: pushed new code [2/28/2011 10:44:37 PM] buckyballreaction: ok taking a look [2/28/2011 10:46:52 PM] buckyballreaction: hey that was the same error i was getting before with my own hook-in with recast [2/28/2011 10:54:00 PM] buckyballreaction: lots of: i:0, j:3, vert#: 65535 i:0, j:4, vert#: 65535 i:0, j:5, vert#: 65535 i:0, j:6, vert#: 65535 i:0, j:7, vert#: 65535 [2/28/2011 10:55:27 PM] buckyballreaction: interesting - i got a different crash now that i didn't compile wiht -O2 [2/28/2011 10:56:06 PM] Chris Eykamp: 65535 is a marker that the vertex is unassigned [2/28/2011 10:56:51 PM] buckyballreaction: compiling with -O2 didn't allow me to get through rcBuildPolyMesh at all [2/28/2011 10:56:51 PM] Chris Eykamp: the number of vertex slots per polygon is constant (I set it at 10). Any unused slots retain 65535 [2/28/2011 10:57:16 PM] Chris Eykamp: so you might see what you posted if you had a triangle, and j0,1,and 2 were all good [2/28/2011 10:57:28 PM] buckyballreaction: ahhh [2/28/2011 10:57:40 PM] Chris Eykamp: but I'm seeing some bogus geometry. j0,1,2 are not good [2/28/2011 10:57:47 PM] Chris Eykamp: sometimes all point to the same vertex [2/28/2011 10:57:52 PM] Chris Eykamp: or other nonsense [2/28/2011 10:58:54 PM] Chris Eykamp: if you look in code, they first allocate space for all the polygons, then use memset to set the whole chunk of memory to 65535; anything not overwritten with good data retains that value [2/28/2011 10:59:00 PM] Chris Eykamp: it's kind of clever [2/28/2011 10:59:51 PM] Chris Eykamp: we could still be passing in bogus data [2/28/2011 11:00:01 PM] Chris Eykamp: good data, wrong structure [2/28/2011 11:00:06 PM] Chris Eykamp: that seems most likely [2/28/2011 11:00:20 PM] Chris Eykamp: I doubt recast itself is so obviusly broken [2/28/2011 11:02:38 PM] buckyballreaction: is this the error you are getting now?: #0 0x0000000000413510 in Zap::Rect::set (this=0x7fffffffc270, p1=..., p2=...) at point.h:184 #1 0x00000000004134f9 in Zap::Rect::Rect (this=0x7fffffffc270, p1=..., p2=...) at point.h:174 #2 0x000000000057382b in Zap::BotNavMeshZone::computeExtent (this=0xf03400) at BotNavMeshZone.cpp:165 #3 0x0000000000577265 in Zap::BotNavMeshZone::buildBotMeshZones (game=0xe181f0) at BotNavMeshZone.cpp:917 [2/28/2011 11:04:31 PM] Chris Eykamp: maybe, yes, think so [2/28/2011 11:04:39 PM] Chris Eykamp: that's due to bogus return values [2/28/2011 11:06:43 PM] buckyballreaction: i'm seriously considering porting the java nmgen triangle merge function\ [2/28/2011 11:07:08 PM] buckyballreaction: because it has variable names I can understand [2/28/2011 11:08:47 PM] Chris Eykamp: can you use it to rename the c++ vars? [2/28/2011 11:09:04 PM] Chris Eykamp: I think I understand this, so maybe I can belp [2/28/2011 11:09:16 PM] buckyballreaction: sort of - it looks like the java verssion uses a few different data structures [2/28/2011 11:09:40 PM] buckyballreaction: i know in one instance he uses a hashmap instead of an array for speed [2/28/2011 11:10:36 PM] Chris Eykamp: arrays are pretty much as fast as you can get, right? [2/28/2011 11:10:44 PM] Chris Eykamp: unless you are using them wrong [2/28/2011 11:10:56 PM] buckyballreaction: hashmap are faster for searching [2/28/2011 11:11:02 PM] buckyballreaction: constant time search [2/28/2011 11:11:19 PM] buckyballreaction: but much more memory usage [2/28/2011 11:11:21 PM] Chris Eykamp: searching, yes [2/28/2011 11:11:29 PM] Chris Eykamp: memory is cheap [2/28/2011 11:11:54 PM] Chris Eykamp: well, that may offer a clue how to speed the c++ version [2/28/2011 11:12:35 PM] buckyballreaction: it's just that i trust these algo developers to be better at algos than myself... [2/28/2011 11:13:02 PM] Chris Eykamp: yes, of course [2/28/2011 11:17:50 PM] buckyballreaction: maybe i'll just try to bring over more intelligible var names first [2/28/2011 11:18:58 PM] Chris Eykamp: I'm rearraning things slightly to make it easier to follow... [2/28/2011 11:19:11 PM] Chris Eykamp: I can check in before you start really going at it. [2/28/2011 11:19:23 PM] buckyballreaction: ok [2/28/2011 11:20:09 PM] buckyballreaction: i am still debating whether recast is still a good choice... because we are spending an awful lot of time just trying to adapt it [2/28/2011 11:20:39 PM] Chris Eykamp: yes [2/28/2011 11:20:59 PM] Chris Eykamp: but I really think it should be faster than anything we can write [2/28/2011 11:21:04 PM] Chris Eykamp: I [2/28/2011 11:21:09 PM] buckyballreaction: i agree [2/28/2011 11:21:24 PM] Chris Eykamp: I;ve looked for other triangle combining functions, without luck [2/28/2011 11:21:33 PM] Chris Eykamp: the other possibility is we leave everything as triangles [2/28/2011 11:21:57 PM] Chris Eykamp: but I think combining will produce better navigation results [2/28/2011 11:22:07 PM] Chris Eykamp: with less game-time overhead [2/28/2011 11:22:26 PM] Chris Eykamp: my latest changes are in [2/28/2011 11:22:31 PM] buckyballreaction: ok [2/28/2011 11:25:39 PM] Chris Eykamp: here's something I didn't notice before [2/28/2011 11:25:49 PM] Chris Eykamp: indices gets modified during the triangluate process [2/28/2011 11:26:12 PM] Chris Eykamp: but not by us when we pass in the triangles [2/28/2011 11:26:17 PM] Chris Eykamp: that may be important [2/28/2011 11:28:23 PM] Chris Eykamp: though it looks like it's only the high bit that gets modifed as an in-process flag [2/28/2011 11:28:29 PM] Chris Eykamp: so maybe it's ok [2/28/2011 11:28:46 PM] buckyballreaction: that's what i'm seeing, too [2/28/2011 11:29:34 PM] Chris Eykamp: I don't yet understand how indices is used [2/28/2011 11:30:21 PM] buckyballreaction: i think i may know where we have a problem: we are using one "contour" as input, but i think recast is expecting it to already be convex [2/28/2011 11:31:06 PM] Chris Eykamp: no, we're using the triagulation of on controur as input [2/28/2011 11:31:24 PM] Chris Eykamp: do you think it thinks the entire triangle collection is convex? [2/28/2011 11:31:32 PM] buckyballreaction: yes [2/28/2011 11:32:01 PM] buckyballreaction: because the original code loops through pre-calculated contours [2/28/2011 11:32:07 PM] Chris Eykamp: do you think it matters? [2/28/2011 11:32:16 PM] buckyballreaction: that's the million dollar question [2/28/2011 11:32:20 PM] buckyballreaction: i hope not [2/28/2011 11:32:22 PM] Chris Eykamp: :) [2/28/2011 11:32:31 PM] Chris Eykamp: we could create a set of triangles that's convex and pass that in\ [2/28/2011 11:32:45 PM] Chris Eykamp: just to see what happens [2/28/2011 11:35:18 PM] buckyballreaction: i'm wrong: Contour: Represents the detailed and simplified versions of a contour. * A contour is expected to always represent a simple polygon. * (Convex or concave.) [2/28/2011 11:35:34 PM] buckyballreaction: so simple polygon means no holes [2/28/2011 11:36:14 PM] Chris Eykamp: our triangluation has holes [2/28/2011 11:36:19 PM] buckyballreaction: lots of them [2/28/2011 11:37:01 PM] buckyballreaction: maybe we do need to build a contourSet first [2/28/2011 11:37:05 PM] Chris Eykamp: we could easily modify it so triangles spits back a triangle mesh with no holes [2/28/2011 11:37:27 PM] Chris Eykamp: but with areas it currently calls holes triangluated with specially marked triangles [2/28/2011 11:37:48 PM] Chris Eykamp: maybe we could assign those a different height contour, and make them non-walkable [2/28/2011 11:38:11 PM] Chris Eykamp: that might make triangle run faster, as it wouldn't need to remove tirangles in holes [2/28/2011 11:38:16 PM] Chris Eykamp: marginally faster [2/28/2011 11:38:40 PM] Chris Eykamp: so, there is a traingl option for ignoring holes. might be worth adding that to see if that fixes recast [2/28/2011 11:38:52 PM] Chris Eykamp: then we'd know if it were the holes that were the problme [2/28/2011 11:38:59 PM] Chris Eykamp: -H? [2/28/2011 11:39:45 PM] Chris Eykamp: triangle currently traingluates the holes, then "eats" the triangles marked by the hole list [2/28/2011 11:40:00 PM] Chris Eykamp: -O No holes. Ignores the holes in the .poly file. [2/28/2011 11:41:07 PM] Chris Eykamp: foo... [2/28/2011 11:41:11 PM] Chris Eykamp: heap corruption [2/28/2011 11:43:03 PM] buckyballreaction: blech [2/28/2011 11:55:56 PM] Chris Eykamp: interesting -- by reducing the number of triangles I tell recast about, the memory issues go away [2/28/2011 11:56:09 PM] Chris Eykamp: rcBuildPolyMesh(&context, 10, bounds, intPoints.address(), out.numberofpoints, out.trianglelist, out.numberoftriangles /2, mesh); [2/28/2011 11:56:16 PM] Chris Eykamp: adding the /2 fixes the problem [2/28/2011 11:56:33 PM] Chris Eykamp: perhaps a clue that we're doing osmething wrong [2/28/2011 11:56:50 PM] buckyballreaction: that's weird [2/28/2011 11:57:05 PM] Chris Eykamp: / 1.5, crash [2/28/2011 11:57:37 PM] Chris Eykamp: but it's crashing in a straight alloc call: [2/28/2011 11:57:39 PM] Chris Eykamp: rcScopedDelete edges = (int*)rcAlloc(sizeof(int)*maxEdges*3, RC_ALLOC_TEMP); [2/28/2011 11:58:03 PM] Chris Eykamp: maybe I should see how much it's asking for [2/28/2011 11:58:37 PM] Chris Eykamp: maxEdges is 222 [2/28/2011 11:58:41 PM] Chris Eykamp: so not really very much [2/28/2011 11:58:50 PM] Samuel Williams: Written more efficient Barrier::prepareRenderingGeometry. http://96.2.123.136/bitfighter/zap_d-20110228-2255119.png [2/28/2011 11:59:20 PM] buckyballreaction: OOoo sam, that looks good [2/28/2011 11:59:45 PM] Chris Eykamp: tell me about what it is [2/28/2011 11:59:57 PM] Samuel Williams: the new efficient method does not yet apply to map editor, as you can see here: http://96.2.123.136/bitfighter/zap_d-20110228-2254290.png [3/1/2011 12:00:22 AM] Samuel Williams: i have checked in my code with Barrier::prepareRenderingGeometry [3/1/2011 12:01:00 AM] Chris Eykamp: so... each segment goes from red to green? [3/1/2011 12:01:23 AM] Samuel Williams: yes, for temperory seeing each individual segments [3/1/2011 12:01:54 AM] Chris Eykamp: firefox keeps crashing on me, but it looks like you've reduced things quite a bit [3/1/2011 12:01:59 AM] Chris Eykamp: do you know how much? [3/1/2011 12:02:44 AM] Samuel Williams: don't know, probably by half number of lines or less (my guess) depends on map. [3/1/2011 12:02:57 AM] Chris Eykamp: well, half is good [3/1/2011 12:03:11 AM] Chris Eykamp: does it run pretty fast? [3/1/2011 12:03:31 AM] Chris Eykamp: that will reduce rendering time of level by a bit; that's good [3/1/2011 12:03:34 AM] Samuel Williams: it appears to run just as fast as the old code, not sure the speed difference. [3/1/2011 12:03:45 AM] Chris Eykamp: that's good enough! [3/1/2011 12:07:11 AM] Samuel Williams: one problem with my new code is it sometimes create open holes including where both barriers is on top of each other. GeoWar have 2 open holes.. [3/1/2011 12:07:51 AM] Chris Eykamp: yes, I see them [3/1/2011 12:08:19 AM] Samuel Williams: open holes can make triangle generator not work if it depends on prepareRenderingGeometry. [3/1/2011 12:08:35 AM] Chris Eykamp: do you know why the holes are there? [3/1/2011 12:08:45 AM] Samuel Williams: overlapping barriers [3/1/2011 12:09:54 AM] Chris Eykamp: and thus duplicate segments? [3/1/2011 12:10:16 AM | Edited 12:10:27 AM] Samuel Williams: it removes segments as it thinks it is colliding to another segments barriers [3/1/2011 12:14:12 AM | Edited 12:14:29 AM] Samuel Williams: When one barrier is on top of another at exact position, the old prepareRenderingGeometry generates duplicate segments, my new prepareRenderingGeometry doesn't generate segments. [3/1/2011 12:16:23 AM] Chris Eykamp: can you detect that situation? [3/1/2011 12:17:03 AM] Chris Eykamp: you got me thinking about rendering efficiency [3/1/2011 12:17:09 AM] Chris Eykamp: and I came up with this [3/1/2011 12:17:10 AM] Samuel Williams: i can, but then i would need to figure out not to generate segments on top of another. [3/1/2011 12:17:25 AM] Chris Eykamp: Replace this: [3/1/2011 12:17:26 AM] Chris Eykamp: //glBegin(GL_LINES); // for(S32 i = 0; i < edges.size(); i++) // glVertex(edges[i]); //glEnd(); [3/1/2011 12:17:34 AM] Chris Eykamp: with this [3/1/2011 12:17:35 AM] Chris Eykamp: glEnableClientState(GL_VERTEX_ARRAY); glVertexPointer(2, GL_FLOAT, sizeof(Point), &edges[0]); glDrawArrays(GL_LINES, 0, edges.size()); glDisableClientState(GL_VERTEX_ARRAY); [3/1/2011 12:17:47 AM] Chris Eykamp: I wonder if it's detectably faster [3/1/2011 12:18:56 AM] Chris Eykamp: it is detectably less clear [3/1/2011 12:18:57 AM] Samuel Williams: could always time it, and do the loop 1000 times on one render function to test speed. [3/1/2011 12:19:05 AM] Chris Eykamp: yes [3/1/2011 12:19:10 AM] Zoomber: wait, when did I say I live down the steet from you? [3/1/2011 12:19:33 AM] buckyballreaction: hi zoomber [3/1/2011 12:19:35 AM] Chris Eykamp: you didn't [3/1/2011 12:19:38 AM] buckyballreaction: aren't you i orem? [3/1/2011 12:20:08 AM] Chris Eykamp: that's in utah [3/1/2011 12:20:26 AM] Zoomber: lol [3/1/2011 12:20:49 AM] Zoomber: im in los angeles, just like it says in big letters on my forum profile :) [3/1/2011 12:21:05 AM] buckyballreaction: ah, i must have been thinking of someone else, then... [3/1/2011 12:21:11 AM] buckyballreaction: shadowX maybe [3/1/2011 12:21:47 AM] Zoomber: If I lived down the street from you, there wouldn't be a mac development..theyre'd only be Linux Development, Windows development, and the future [3/1/2011 12:22:28 AM] buckyballreaction: haha [3/1/2011 12:22:30 AM] Zoomber: meaning....everything mac related to bitfighter would get done in one night [3/1/2011 12:25:08 AM] buckyballreaction: for(S32 i = 0; i < out.numberofpoints; i+=2) [3/1/2011 12:25:16 AM] buckyballreaction: shouldn't htat be i+=4? [3/1/2011 12:25:47 AM] buckyballreaction: BotNavMeshZone 858 [3/1/2011 12:26:15 AM] buckyballreaction: wait, maybe not [3/1/2011 12:26:19 AM] Zoomber: i is less than the number of points dot out; i+ = 2 [3/1/2011 12:26:19 AM] buckyballreaction: nevermind [3/1/2011 12:26:27 AM] Zoomber: ok [3/1/2011 12:26:52 AM] Zoomber: sam, I'm trying to implement your modified version of quickbotv2 and your engineer bot in my map, but they only seem to show up in bitmatch [3/1/2011 12:27:02 AM] Chris Eykamp: no, we're iterationg over triangle output [3/1/2011 12:27:14 AM] Chris Eykamp: creating ints for recast [3/1/2011 12:27:32 AM] Chris Eykamp: just one more caluclation, then back to recast [3/1/2011 12:29:06 AM] Samuel Williams: replacing glVertex with glVertexPointer have good speed improvements. Look at my timing test. (glVertex) (glVertexPointer) 31245 16073 38925 9870 23962 9188 47310 9427 [3/1/2011 12:29:33 AM] Samuel Williams: i used Platform::getHighPrecisionTimerValue() to calculate time difference. [3/1/2011 12:36:20 AM] Chris Eykamp: AFTER 3880000 iterations [3/1/2011 12:36:30 AM] Chris Eykamp: new method takes 55% of old method [3/1/2011 12:36:54 AM] Chris Eykamp: but to get good numbers, I had to iterate over 10,000 times [3/1/2011 12:37:13 AM] Chris Eykamp: so that tells me that new method is faster, but old method is pretty darned fast as well [3/1/2011 12:37:15 AM] Zoomber: was this on purpose? placing test items and resource items on forcfeilds no longer activates them [3/1/2011 12:37:36 AM] Chris Eykamp: not that I'm aware of [3/1/2011 12:37:39 AM] Zoomber: if not that could be a bug [3/1/2011 12:37:59 AM] Zoomber: oh hold on [3/1/2011 12:38:01 AM] Chris Eykamp: so is faster method better, or clearer on? [3/1/2011 12:38:05 AM] Zoomber: i must have had it wrong [3/1/2011 12:38:07 AM] Zoomber: nvm [3/1/2011 12:38:37 AM] Samuel Williams: forcefiend can't activate when health pack is in the way. [3/1/2011 12:39:29 AM] Zoomber: i see [3/1/2011 12:39:32 AM] Zoomber: theyre still the same [3/1/2011 12:39:34 AM] Zoomber: however [3/1/2011 12:39:35 AM] Chris Eykamp: @sam -- were you timing what I just did? [3/1/2011 12:39:49 AM] Samuel Williams: yes... [3/1/2011 12:39:57 AM] Chris Eykamp: ok, our data agrees! [3/1/2011 12:39:58 AM] Zoomber: this time, they do not start out de-activated. now they only stay deactivated after you go past them [3/1/2011 12:41:22 AM] Chris Eykamp: maybe we need a general "render this vertex of points method" because it's kind of ugly and not intuitive to write [3/1/2011 12:41:54 AM] Chris Eykamp: I'll leave the new code in place; unless you want ot add it to your rendering fixes and check it in as a package [3/1/2011 12:42:19 AM] Chris Eykamp: actually, I'll just check it in [3/1/2011 12:44:10 AM] Zoomber: hmm [3/1/2011 12:44:14 AM] Zoomber: maybe a ghostship will do this [3/1/2011 12:45:17 AM] Zoomber: hmm, thats not doing it either anymroe [3/1/2011 12:49:47 AM] buckyballreaction: i think i'm useless - my brain is fried [3/1/2011 12:51:59 AM] Chris Eykamp: have you tried construcing some easy, sane inputs? [3/1/2011 12:52:25 AM] buckyballreaction: no. i got tied up in algorithm studying [3/1/2011 12:52:35 AM] buckyballreaction: which is probably early-morning work [3/1/2011 12:52:40 AM] Chris Eykamp: yes [3/1/2011 12:52:53 AM] Chris Eykamp: try creating a 3 triangle situation and see what happens [3/1/2011 12:53:06 AM] Chris Eykamp: bypass triangle altogether [3/1/2011 12:53:27 AM] Chris Eykamp: just define inputs for rcBuildPolyMesh with static arrays [3/1/2011 12:53:44 AM] Chris Eykamp: or a vertex of ints [3/1/2011 12:53:50 AM] buckyballreaction: good idea [3/1/2011 12:54:19 AM] Chris Eykamp: I'm still trying to follow what's going on [3/1/2011 12:56:44 AM] Chris Eykamp: I am adding comments to help share what I'm learning [3/1/2011 12:57:12 AM] buckyballreaction: the comments in the nmgen java API are very enlightening, too [3/1/2011 12:57:24 AM] buckyballreaction: at least for what maps directly to the c++ [3/1/2011 12:57:38 AM] buckyballreaction: which is about 80%, I think [3/1/2011 12:57:52 AM] Chris Eykamp: good point [3/1/2011 12:58:24 AM] buckyballreaction: it has cleared a lot up for me, but I got caught up into trying to wrap my head around all the data structures being used [3/1/2011 1:00:14 AM] Zoomber: back up [3/1/2011 1:06:06 AM] buckyballreaction: how would i modify out.trianglelist? [3/1/2011 1:07:18 AM] Chris Eykamp: don't; just create a new one [3/1/2011 1:07:26 AM] Chris Eykamp: unless I misunderstand? [3/1/2011 1:07:41 AM] Chris Eykamp: Vector newTraingleList [3/1/2011 1:07:50 AM] Chris Eykamp: and pass newTriangleList.address() [3/1/2011 1:07:57 AM] buckyballreaction: i've done that [3/1/2011 1:08:04 AM] Chris Eykamp: sorry... Vector [3/1/2011 1:08:07 AM] buckyballreaction: but you pass in something else from triangleio struct [3/1/2011 1:08:11 AM] buckyballreaction: called trianglelist [3/1/2011 1:08:33 AM] Chris Eykamp: trianglelist is the list of triangles [3/1/2011 1:08:39 AM] Chris Eykamp: a list of ints [3/1/2011 1:08:53 AM] buckyballreaction: a multidimensional array? [3/1/2011 1:08:55 AM] Chris Eykamp: t1v1 t1v2 t1v3 t2v1 t2v2 t2v3 t3v1... [3/1/2011 1:09:13 AM] Chris Eykamp: no, just a list of integers [3/1/2011 1:09:42 AM] Chris Eykamp: where the various v's are the index of the vertex in intPoints [3/1/2011 1:09:56 AM] Chris Eykamp: actual coords are in intPoints [3/1/2011 1:10:32 AM] Chris Eykamp: does that make sense? [3/1/2011 1:23:04 AM] buckyballreaction: wow [3/1/2011 1:23:04 AM] buckyballreaction: ok [3/1/2011 1:23:18 AM] buckyballreaction: i'm getting points like these out of the mesh: $4 = (const Zap::Point &) @0xec20e0: {x = 64958, y = 0} (gdb) print mPolyBounds[1] $5 = (const Zap::Point &) @0xec20e8: {x = 5, y = 44457} [3/1/2011 1:24:10 AM] Chris Eykamp: what is $4 mean? [3/1/2011 1:24:23 AM] buckyballreaction: sorry, that's just gdb stack [3/1/2011 1:24:55 AM] Chris Eykamp: so is 5 further from the current step, i.e. furtehr up the tree? [3/1/2011 1:25:29 AM] Chris Eykamp: or no wait, I see [3/1/2011 1:25:30 AM] buckyballreaction: that's just gdb storing the variables i have printed out so far in a stack [3/1/2011 1:25:32 AM] Chris Eykamp: right [3/1/2011 1:25:47 AM] buckyballreaction: so just to keep sane [3/1/2011 1:25:55 AM] Chris Eykamp: ok, so 4 looks bogus [3/1/2011 1:26:04 AM] Chris Eykamp: 5 looks bogus, in a different way [3/1/2011 1:26:14 AM] buckyballreaction: how is a point in the editor represented? [3/1/2011 1:26:19 AM] buckyballreaction: i mean [3/1/2011 1:26:29 AM] buckyballreaction: snap-to-grid / point [3/1/2011 1:26:49 AM] buckyballreaction: that's a dumb question, i can just look at the file [3/1/2011 1:26:56 AM] buckyballreaction: (told you my brain has had it) [3/1/2011 1:27:01 AM] Chris Eykamp: you'll have to because I don't understand the question [3/1/2011 1:27:18 AM] Chris Eykamp: If I did understand it, and I knew the anser, I'd be happy to tellyou [3/1/2011 1:27:24 AM] Zoomber: weeeeeeeeee [3/1/2011 1:27:36 AM] Chris Eykamp: so.... easier to explain, or easier to look up? [3/1/2011 1:27:42 AM] buckyballreaction: yes [3/1/2011 1:27:45 AM] buckyballreaction: :) [3/1/2011 1:28:17 AM] buckyballreaction: ok, so i made a rudimentary level that looks like a house, these are the coords in the .level file: 0 0 0 -1 1 -2 2 -1 2 0 0 0 [3/1/2011 1:28:54 AM] Chris Eykamp: ok [3/1/2011 1:29:06 AM] buckyballreaction: what would 1 unit translate to how many units from Triangle? [3/1/2011 1:29:14 AM] buckyballreaction: if that makes any kind of sense [3/1/2011 1:29:16 AM] Chris Eykamp: oh, mult by gridsize [3/1/2011 1:29:40 AM] Chris Eykamp: that's 255 [3/1/2011 1:29:43 AM] Chris Eykamp: unless you changed it [3/1/2011 1:29:49 AM] buckyballreaction: nope [3/1/2011 1:30:00 AM] buckyballreaction: so -1 = -255? [3/1/2011 1:30:05 AM] Chris Eykamp: yes [3/1/2011 1:30:21 AM] Chris Eykamp: -1 in editor == -255 in "game units" [3/1/2011 1:30:33 AM] buckyballreaction: ah ok [3/1/2011 1:32:39 AM] Chris Eykamp: I'm trying to figure out these heap corruption issues... [3/1/2011 1:32:44 AM] Chris Eykamp: "These are a rare, but e.g. broken RAM can cause heap corruption. " [3/1/2011 1:32:49 AM] Chris Eykamp: I think that's my problem [3/1/2011 1:32:53 AM] Chris Eykamp: broken ram [3/1/2011 1:32:59 AM] buckyballreaction: yeah, but i get them too [3/1/2011 1:33:08 AM] Chris Eykamp: your ram is also broken [3/1/2011 1:33:25 AM] buckyballreaction: sorry, "broken RAM" in my head meant hardware problem [3/1/2011 1:35:28 AM] Chris Eykamp: yes, it does [3/1/2011 1:37:30 AM] buckyballreaction: (gdb) print mPolyBounds[0] $10 = (const Zap::Point &) @0xec2210: {x = 64958, y = 0} [3/1/2011 1:38:06 AM] Chris Eykamp: looks bogus [3/1/2011 1:38:22 AM] buckyballreaction: this is in Zap::BotNavMeshZone::computeExtent [3/1/2011 1:38:27 AM] buckyballreaction: in the loop [3/1/2011 1:38:54 AM] buckyballreaction: :BotNavMeshZone:932 [3/1/2011 1:38:59 AM] Chris Eykamp: yeah, bogus [3/1/2011 1:39:03 AM] buckyballreaction: next iteration of the loop: [3/1/2011 1:39:15 AM] buckyballreaction: (gdb) print mPolyBounds[0] $11 = (const Zap::Point &) @0x0: (gdb) print mPolyBounds $12 = {mElementCount = 0, mArraySize = 0, mArray = 0x0} [3/1/2011 1:39:44 AM] buckyballreaction: and that's where it's crashing [3/1/2011 1:40:18 AM] Chris Eykamp: obviously something gone wrong [3/1/2011 1:40:57 AM] buckyballreaction: for that iteration of 'i': i:1, j:1, vert#: 65535 i:1, j:2, vert#: 1 i:1, j:3, vert#: 65535 i:1, j:4, vert#: 65535 i:1, j:5, vert#: 65535 i:1, j:6, vert#: 65535 i:1, j:7, vert#: 65535 i:1, j:8, vert#: 65535 i:1, j:9, vert#: 65535 [3/1/2011 1:41:11 AM] buckyballreaction: that iteration crashes [3/1/2011 1:41:23 AM] Chris Eykamp: well it's crap data [3/1/2011 1:41:40 AM] Chris Eykamp: no first vertex [3/1/2011 1:41:55 AM] Chris Eykamp: just a 1 vertex polygon with no first vertex [3/1/2011 1:41:59 AM] Chris Eykamp: bogus [3/1/2011 1:41:59 AM] buckyballreaction: is the 0, 0 point being writen as 65535? [3/1/2011 1:42:17 AM] Chris Eykamp: 65535 means there is no point [3/1/2011 1:42:29 AM] buckyballreaction: that's what i though [3/1/2011 1:42:35 AM] Chris Eykamp: recast never wrote there [3/1/2011 1:49:12 AM] Zoomber: sam is this lag? [3/1/2011 1:49:26 AM] Zoomber: i cant see naything [3/1/2011 1:50:11 AM] buckyballreaction: the vertex list got corrupted in rcBuildPolyMesh somehow [3/1/2011 1:50:29 AM] buckyballreaction: the first 5 vertices; {-75, 1, -578, 0, 15477104, 0, 15477104, 0, -75, 1, 75, 0, 1, 0, 15575880, 0, 585, 1, 75, 0} [3/1/2011 1:58:04 AM] buckyballreaction: does this look funny to you?: (gdb) print out.pointlist[1] $44 = -577.670593 (gdb) print intPoints[1*4] $45 = (int &) @0xec2770: 15476560 [3/1/2011 1:58:26 AM] Zoomber: lol [3/1/2011 1:58:28 AM] Chris Eykamp: 45does [3/1/2011 1:58:44 AM] Chris Eykamp: it's wrong [3/1/2011 1:58:47 AM] buckyballreaction: somehow this: S32(out.pointlist[i] < 0 ? out.pointlist[i] - 0.5 : out.pointlist[i] + 0.5) is turning -577.670593 into 15476560 [3/1/2011 1:59:02 AM] buckyballreaction: and that is being fed to recast [3/1/2011 1:59:07 AM] Chris Eykamp: ummm [3/1/2011 1:59:50 AM] Chris Eykamp: for the moment, just replace that bit with out.pointlist[i] [3/1/2011 2:00:00 AM] Chris Eykamp: let exactitude suffer [3/1/2011 2:00:05 AM] buckyballreaction: ok [3/1/2011 2:00:13 AM] Chris Eykamp: and make a note of why you took it out so we can go back and look at it later [3/1/2011 2:00:21 AM] Chris Eykamp: if it turns out to be important [3/1/2011 2:00:38 AM] buckyballreaction: i went all the way backwards through rcBuildPolyMesh back into BotNavMeshZone [3/1/2011 2:00:52 AM] Chris Eykamp: ! [3/1/2011 2:00:55 AM] buckyballreaction: and the data was being inserted into rcBuildPolyMesh badly [3/1/2011 2:01:07 AM] Chris Eykamp: as I've been suspecting [3/1/2011 2:03:14 AM] Chris Eykamp: you're doing something a little different than what I was thinking, so I've been trying this: [3/1/2011 2:03:26 AM] Chris Eykamp: feeding this data to recast [3/1/2011 2:03:26 AM] Chris Eykamp: static int pts[] = { 0,0,0,0, 2,0,0,0, 2,0,2,0, 0,0,2,0, 3,0,1,0 }; static int tris[] = { 0,1,2, 0,3,2, 3,4,2 }; [3/1/2011 2:03:37 AM] Chris Eykamp: should map out to your house example [3/1/2011 2:03:49 AM] Chris Eykamp: then [3/1/2011 2:03:50 AM] Chris Eykamp: rcBuildPolyMesh(&context, 10, Rect(Point(0,0),Point(2,3)), pts, 5, tris, 3, mesh); [3/1/2011 2:04:05 AM] buckyballreaction: i didn't understand the tris part... my brain could handle it [3/1/2011 2:04:11 AM] buckyballreaction: couldn't [3/1/2011 2:04:18 AM] Chris Eykamp: getting back unexpected but less completely bogus data [3/1/2011 2:04:26 AM] Chris Eykamp: see how pts are grouped [3/1/2011 2:04:43 AM] Chris Eykamp: first group is 0, 2nd it 1, ... [3/1/2011 2:04:51 AM] buckyballreaction: (gdb) print intPoints[0] $1 = (int &) @0xec27d0: -74 (gdb) print intPoints[1] $2 = (int &) @0xec27d4: 1 (gdb) print intPoints[2] $3 = (int &) @0xec27d8: -577 (gdb) print intPoints[3] $4 = (int &) @0xec27dc: 0 (gdb) print intPoints[4] $5 = (int &) @0xec27e0: 15476672 [3/1/2011 2:05:03 AM] buckyballreaction: even without the exactness [3/1/2011 2:05:23 AM] Chris Eykamp: first triangle is group 0, group1, group 2 [3/1/2011 2:05:27 AM] Chris Eykamp: etc. [3/1/2011 2:05:50 AM] Chris Eykamp: each group is x,y/z, z/y, ? [3/1/2011 2:06:12 AM] Chris Eykamp: lools good except for 5 [3/1/2011 2:06:50 AM] Chris Eykamp: unless there's just 4 points in the poly [3/1/2011 2:07:00 AM] buckyballreaction: that comes from this: intPoints[1*4] = out.pointlist[1]; [3/1/2011 2:07:20 AM] buckyballreaction: out.pointlist[1] evals to -577 [3/1/2011 2:07:24 AM] Chris Eykamp: no wait, there's only 2 good points there [3/1/2011 2:07:38 AM] buckyballreaction: so why would intPoints[1*4] be set to 15476672? [3/1/2011 2:07:38 AM] Chris Eykamp: do you expect -74 and -577? [3/1/2011 2:07:54 AM] buckyballreaction: sorry, that wasn't the full array [3/1/2011 2:07:55 AM] Chris Eykamp: something gone wrong [3/1/2011 2:13:01 AM] Chris Eykamp: say, do you happen to have that url that had the sampe coordinates for recast coded into it? [3/1/2011 2:13:24 AM] buckyballreaction: maybe, can you give more detail? [3/1/2011 2:14:05 AM] buckyballreaction: was i tthis one?: http://www.ogre3d.org/forums/viewtopic.php?f=5&t=62079 [3/1/2011 2:14:49 AM] Chris Eykamp: no. it was a site with a test file for recast; it had an array of point data similar to what I pasted earlier [3/1/2011 2:14:59 AM] Chris Eykamp: I remember the name "smoke" [3/1/2011 2:15:14 AM] buckyballreaction: ah yes [3/1/2011 2:15:18 AM] buckyballreaction: one moment [3/1/2011 2:15:20 AM] Chris Eykamp: and it might have been related to nmen (or whatever) [3/1/2011 2:15:55 AM] Chris Eykamp: since I'm trying something very similar, it might be good to double check my inputs [3/1/2011 2:15:59 AM] buckyballreaction: http://code.google.com/p/critterai/source/browse/#svn%2Ftrunk%2Fnmgen%2Fcpp%2Ftest-cli [3/1/2011 2:16:29 AM] Chris Eykamp: that's the one! [3/1/2011 2:18:21 AM] Chris Eykamp: I will say with my cobbled together data, the heap allocation errors are gone [3/1/2011 2:18:31 AM] Chris Eykamp: still not working, but looks less bogus [3/1/2011 2:19:05 AM] buckyballreaction: ok, I turned intPoints into an S32[] from a Vector [3/1/2011 2:19:10 AM] buckyballreaction: and here it is: print intPoints $1 = {-74, 1, -577, 0, 0, 0, -167748951, 32767, -74, 1, 74, 0, 48, 0, -15696, 32767, 584, 1, 74, 0, -154416608, 32767, -16217, 32767, 584, 1, -577, 0, 15474288, 0, 12, 0, -24, 1, -264, 0, -164716840, 32767, -164716824, 32767, -24, 1, 25, 0, 9, 32767, 5744543, 0, 25, 1, -24, 0, 15474256, 0, 5501740, 0, 25, 1, -214, 0, -12800, 32767, 11155672, 0, 25, 1, -244, 0, -16112, 32767, 4277702, 0, 255, 1, -544, 0, -16096, 32767, -164716928, 32767, 46, 1, -264, 0, -12800, 32767, 11155672, 0, 255, 1, -474, 0, 5501740, 0, 4237615, 0, 535, 1, -264, 0, -15792, 32767, 4655965, 0, 464, 1, -264, 0, -1030358303, 1142046556, -1005557013, 1117125345, 485, 1, -244, 0, 5, 0, 0, 32767, 535, 1, 25, 0, 0, 32767, 44, 0, 485, 1, -214, 0, 18, 18, 1, 1, 485, 1, -24, 0, 216, 0, 351, 0, -74, 1, -251, 0, 21, 0, 0, 0, 584, 1, -251, 0, 0, 0, -15728, 32767, 255, 1, -577, 0, 15403600, 0, 5501740, 0, -74, 1, -414, 0, 0, 0, 6691059, 0, 170, 1, -182, 0, 5501740, 0, 5729672, 0} [3/1/2011 2:19:32 AM] buckyballreaction: i can't for the life of me understand why that for loop is inputting the bogus data [3/1/2011 2:19:46 AM] Chris Eykamp: which loop? [3/1/2011 2:19:55 AM] buckyballreaction: line 858 [3/1/2011 2:19:59 AM] buckyballreaction: BotNav.... [3/1/2011 2:20:15 AM] Chris Eykamp: yeah [3/1/2011 2:20:31 AM] buckyballreaction: i played around with other primitive types, all goofy [3/1/2011 2:21:35 AM] buckyballreaction: i see a pattern [3/1/2011 2:22:02 AM] buckyballreaction: every point has 4 pieces: x, 1, y, 0 [3/1/2011 2:22:07 AM] Chris Eykamp: garbage in, garbage out? [3/1/2011 2:22:12 AM] Chris Eykamp: or a different pattern [3/1/2011 2:22:16 AM] Chris Eykamp: yes [3/1/2011 2:22:18 AM] buckyballreaction: different [3/1/2011 2:22:26 AM] Chris Eykamp: I'm paying attention now [3/1/2011 2:22:56 AM] Chris Eykamp: I see one too [3/1/2011 2:23:03 AM] Chris Eykamp: every second group of 4 is bogus [3/1/2011 2:23:08 AM] buckyballreaction: bah [3/1/2011 2:23:11 AM] buckyballreaction: you beat me to it [3/1/2011 2:23:14 AM] Chris Eykamp: :) [3/1/2011 2:23:16 AM] buckyballreaction: exactly [3/1/2011 2:23:25 AM] buckyballreaction: but why??? [3/1/2011 2:23:28 AM] Chris Eykamp: I know [3/1/2011 2:23:41 AM] buckyballreaction: please tell [3/1/2011 2:23:56 AM] Chris Eykamp: you're going to feel stupid; it seems so obviuos [3/1/2011 2:24:07 AM] buckyballreaction: i'm ready for it [3/1/2011 2:24:08 AM] Chris Eykamp: i+=2 [3/1/2011 2:24:11 AM] buckyballreaction: beat me over the head [3/1/2011 2:24:14 AM] buckyballreaction: the iterator? [3/1/2011 2:24:15 AM] Chris Eykamp: replace with i++ [3/1/2011 2:24:18 AM] Chris Eykamp: am I right [3/1/2011 2:24:19 AM] Chris Eykamp: ? [3/1/2011 2:25:01 AM] Chris Eykamp: ok, well, it made sense when I wrote it [3/1/2011 2:25:05 AM] Chris Eykamp: at the time [3/1/2011 2:25:12 AM] Chris Eykamp: or at least I thought it did [3/1/2011 2:25:20 AM] buckyballreaction: didn't i say something about that up the list...? [3/1/2011 2:25:27 AM] buckyballreaction: it worked! [3/1/2011 2:25:29 AM] Chris Eykamp: ah, no wait, it is correct [3/1/2011 2:26:05 AM] Chris Eykamp: I think the i+2 needs to stay, but the i*4 should be i*2 [3/1/2011 2:26:09 AM] Samuel Williams: ok, but then you world need intPoints[i*4 + 2] = S32(out.pointlist[i+1] < 0 ? out.pointlist[i """ *2 """+1] [3/1/2011 2:26:13 AM] buckyballreaction: no iti didn't work, but at least all the points are good now :) [3/1/2011 2:26:33 AM] Chris Eykamp: yes [3/1/2011 2:26:56 AM] Samuel Williams: and this: for(S32 i = 0; i < out.numberofpoints*2; i+=2) [3/1/2011 2:27:04 AM] Chris Eykamp: the i+=2 is there because points is an array where every second element is a new point [3/1/2011 2:27:09 AM] Chris Eykamp: x y x y x y [3/1/2011 2:27:10 AM] buckyballreaction: ah yes [3/1/2011 2:27:22 AM] Chris Eykamp: but the multiplier b0rks it [3/1/2011 2:27:27 AM] Chris Eykamp: so... what sam said [3/1/2011 2:27:44 AM] Chris Eykamp: no, not numberofpoints*2 [3/1/2011 2:27:50 AM] Chris Eykamp: still numberofpoints [3/1/2011 2:27:59 AM] Chris Eykamp: array is 2 * numnerpoints elements long [3/1/2011 2:28:20 AM] Chris Eykamp: 10 points yields an array of 20 ints [3/1/2011 2:28:21 AM] Samuel Williams: ok, i am used to seeing .size(), in this case it is not .size() [3/1/2011 2:28:47 AM] Chris Eykamp: right; Ive been looking at this for several days, so I see it right now [3/1/2011 2:28:53 AM] Chris Eykamp: but it takes a while [3/1/2011 2:29:00 AM] Chris Eykamp: I had to go back and check a number of times [3/1/2011 2:29:31 AM] Chris Eykamp: so i+=2, then i*2 should fix the bogus input data [3/1/2011 2:29:35 AM] buckyballreaction: ok, can you spare my feeble brain if you already know the changes i need to make? [3/1/2011 2:29:50 AM] buckyballreaction: ah ok [3/1/2011 2:30:10 AM] Chris Eykamp: for(S32 i = 0; i < out.numberofpoints; i+=2) { intPoints[i*2] = S32(out.pointlist[i] < 0 ? out.pointlist[i] - 0.5 : out.pointlist[i] + 0.5); // x intPoints[i*2 + 1] = 1; // z, recast calls this y intPoints[i*2 + 2] = S32(out.pointlist[i+1] < 0 ? out.pointlist[i+1] - 0.5 : out.pointlist[i+1] + 0.5); // y, recast calls this z intPoints[i*2 + 3] = 0; // ? } [3/1/2011 2:30:37 AM] Samuel Williams: i have fixed missing segments on prepareRenderingGeometry, but then i might want to fix duplicate segments.. [3/1/2011 2:31:06 AM] Samuel Williams: duplicate drawing line is easy to see with /linesmooth on. [3/1/2011 2:31:45 AM] buckyballreaction: $1 = {-75, 1, -578, 0, -75, 1, 75, 0, 585, 1, 75, 0, 585, 1, -578, 0, -24, 1, -264, 0, -24, 1, 25, 0, 25, 1, -24, 0, 25, 1, -214, 0, 25, 1, -244, 0, 255, 1, -544, 0, 46, 1, -264, 0, 255, 1, -474, 0, 535, 1, -264, 0, 464, 1, -264, 0, 485, 1, -244, 0, 535, 1, 25, 0, 485, 1, -214, 0, 485, 1, -24, 0, -75, 1, -251, 0, 585, 1, -251, 0, 255, 1, -578, 0, -75, 1, -415, 0, 170, 1, -182, 0, 5501740, 0, 4237615, 0, -15888, 32767, -15888, 32767, -15792, 32767, 4655965, 0, -1, 32767, 16108848, 0, -1030358303, 1142046556, -1005557013, 1117125345, -977537413, 18, -15152, 18, 5, 0, 0, 32767, 91, 0, 2, 0, 0, 32767, 44, 0, -1, 2, 2, 9, 18, 18, 1, 1, 0, 32767, 2, 0, 216, 0, 351, 0, 0, 0, 0, 0, 21, 0, 0, 0, 0, 0, -134236617, 32767, 0, 0, -15728, 32767, 0, 0, -134235941, 32767, 15404336, 0, 5501740, 0, -14704, 32767, -167644918, 32767, 0, 0, 6691267, 0, 1298964668, 0, 937852, 0, 5501740, 0, 5729672, 0} [3/1/2011 2:32:02 AM] buckyballreaction: something is still borken [3/1/2011 2:32:54 AM] Samuel Williams: maybe the printing of points is over-looping and reading junk data? [3/1/2011 2:33:48 AM] Chris Eykamp: my thought as well [3/1/2011 2:33:56 AM] Chris Eykamp: are you printing more points than you have? [3/1/2011 2:34:10 AM] Samuel Williams: Vector intPoints(out.numberofpoints * 4); it is doint it 4 times the amount of memory. [3/1/2011 2:34:54 AM] Samuel Williams: so reading 2 int and writing 4 ints should be (out.numberofpoints * 4 / 2) [3/1/2011 2:35:57 AM] Chris Eykamp: can you paste your printing code? [3/1/2011 2:36:10 AM] buckyballreaction: umm... i'm doing it within gdb :) [3/1/2011 2:36:25 AM] Samuel Williams: Vector intPoints(out.numberofpoints * 4 / 2); // 4 entries per point: x,y,?,? for(S32 i = 0; i < out.numberofpoints; i+=2) [3/1/2011 2:36:43 AM] Chris Eykamp: what are you doing with gdb? [3/1/2011 2:36:44 AM | Edited 2:37:06 AM] Samuel Williams: since we are counting out.numberofpoints as 2 integer [3/1/2011 2:37:51 AM] Chris Eykamp: and what is numberofpoints? [3/1/2011 2:37:53 AM] Samuel Williams: or not... [3/1/2011 2:38:18 AM] Samuel Williams: i just don't have updated source.. [3/1/2011 2:38:33 AM] buckyballreaction: i know why [3/1/2011 2:38:41 AM] buckyballreaction: intPoints[i*2] = out.pointlist[i]; intPoints[i*2 + 1] = 1; // z, recast calls this y intPoints[i*2 + 2] = out.pointlist[i+1]; // y, recast calls this z intPoints[i*2 + 3] = 0; [3/1/2011 2:38:53 AM] buckyballreaction: next iteration it will replace two of the previous values [3/1/2011 2:38:55 AM] buckyballreaction: and so on [3/1/2011 2:39:00 AM] buckyballreaction: since there are four [3/1/2011 2:39:16 AM] Samuel Williams: for(...; i+=2 ) [3/1/2011 2:39:24 AM] buckyballreaction: yup [3/1/2011 2:39:40 AM] Chris Eykamp: doh! [3/1/2011 2:40:14 AM] Samuel Williams: i = 0,2,4,6,... [i * 2 + 1] or [2*2+1] [3/1/2011 2:40:44 AM] Chris Eykamp: so back to i*4? [3/1/2011 2:41:19 AM] Chris Eykamp: no, *2 is right [3/1/2011 2:41:39 AM] Chris Eykamp: i increments by 2 [3/1/2011 2:42:12 AM] Samuel Williams: what is this? in.numberofpoints = coords.size() / 2; [3/1/2011 2:42:32 AM] Samuel Williams: line 836 [3/1/2011 2:42:52 AM] Samuel Williams: why divide if doing i += 2 ? [3/1/2011 2:44:19 AM | Edited 2:44:50 AM] Samuel Williams: either remove the divide, or go back to i*4. and for( i++) [3/1/2011 2:44:54 AM] Chris Eykamp: coords is list of coords. If there are 3 pts, coords will look like (x,y,x,y,x,y), and have len of 6 [3/1/2011 2:45:02 AM] Chris Eykamp: so number of points = 6/2 = 3 [3/1/2011 2:45:56 AM] Samuel Williams: yes, then use this: for(S32 i = 0; i < out.numberofpoints * 2; i+=2) or for(S32 i = 0; i < out.numberofpoints; i++) [3/1/2011 2:46:00 AM] Chris Eykamp: [Tuesday, March 01, 2011 2:38 AM] buckyballreaction: <<< intPoints[i*2] = out.pointlist[i];first iteration, i = 0, i*2 = 0 correct [3/1/2011 2:46:23 AM] Chris Eykamp: 2nd iteration: i = 2, i*2 = 4, correct [3/1/2011 2:46:38 AM] Samuel Williams: yes, i += 2 = 0,2,4,6,8,10,12... [3/1/2011 2:46:39 AM] Chris Eykamp: 3rd: i = 4, i*2 = 8, correct [3/1/2011 2:46:59 AM] Samuel Williams: yes.. [3/1/2011 2:47:04 AM] Chris Eykamp: so i *2 is right [3/1/2011 2:48:01 AM] Samuel Williams: if using divide, out.numberofpoints / 2 then use multiply: for(S32 i = 0; i < out.numberofpoints * 2; i+=2) [3/1/2011 2:48:28 AM] Samuel Williams: the divide at line 837 is there. in.numberofpoints = coords.size() / 2; [3/1/2011 2:50:44 AM] Samuel Williams: one point could be 2 numbers (x,y) or 4 numbers (x,y,z,?) [3/1/2011 2:51:55 AM] buckyballreaction: got it: [3/1/2011 2:52:01 AM] buckyballreaction: for(S32 i = 0; i < out.numberofpoints; i+=4) { intPoints[i*4] = out.pointlist[i/2]; intPoints[i*4 + 1] = 1; // z, recast calls this y intPoints[i*4 + 2] = out.pointlist[i/2+1]; // y, recast calls this z intPoints[i*4 + 3] = 0; } [3/1/2011 2:52:25 AM] Chris Eykamp: I don't think so [3/1/2011 2:52:37 AM] Chris Eykamp: i=0 everything is good; write to 0,1,2,3 [3/1/2011 2:53:10 AM] Chris Eykamp: when i = 4, 2nd iteration, you'll be writing to slots 16,17,18,19 [3/1/2011 2:53:15 AM] Chris Eykamp: slots 4-15 never get written [3/1/2011 2:53:23 AM] Samuel Williams: i += 4? and i*4? that will be 4*0, 4*4, 4*8, 4*12 [3/1/2011 2:53:34 AM] Chris Eykamp: and you'll only hit 1/4 of the input points [3/1/2011 2:54:12 AM] Chris Eykamp: if using *4, need to increment by 1 [3/1/2011 2:54:18 AM] buckyballreaction: oops [3/1/2011 2:54:20 AM] buckyballreaction: yes, that [3/1/2011 2:54:55 AM] Chris Eykamp: try this: [3/1/2011 2:54:55 AM] Samuel Williams: perhaps you got it reversed? trying to read 2 number and write to 4 numbers? [3/1/2011 2:54:56 AM] Chris Eykamp: for(S32 i = 0; i < out.numberofpoints; i++) { intPoints[i*4] = S32(out.pointlist[i*2] < 0 ? out.pointlist[i*2] - 0.5 : out.pointlist[i*2] + 0.5); // x intPoints[i*4 + 1] = 1; // z, recast calls this y intPoints[i*4 + 2] = S32(out.pointlist[i*2+1] < 0 ? out.pointlist[i*2+1] - 0.5 : out.pointlist[i*2+1] + 0.5); // y, recast calls this z intPoints[i*4 + 3] = 0; // ? } [3/1/2011 2:55:59 AM] buckyballreaction: got it [3/1/2011 2:56:09 AM] buckyballreaction: yes that was it [3/1/2011 2:56:27 AM] buckyballreaction: good data: (gdb) print intPoints $1 = {-74, 1, -577, 0, -74, 1, 74, 0, 584, 1, 74, 0, 584, 1, -577, 0, -24, 1, -264, 0, -24, 1, 25, 0, 25, 1, -24, 0, 25, 1, -214, 0, 25, 1, -244, 0, 255, 1, -544, 0, 46, 1, -264, 0, 255, 1, -474, 0, 535, 1, -264, 0, 464, 1, -264, 0, 485, 1, -244, 0, 535, 1, 25, 0, 485, 1, -214, 0, 485, 1, -24, 0, -74, 1, -251, 0, 584, 1, -251, 0, 255, 1, -577, 0, -74, 1, -414, 0, 170, 1, -182, 0, 419, 1, -577, 0, 584, 1, -414, 0, 255, 1, 74, 0, 255, 1, 25, 0, -74, 1, -88, 0, 90, 1, -577, 0, 584, 1, -88, 0, 535, 1, -119, 0, -74, 1, -332, 0, 339, 1, -182, 0, 395, 1, -404, 0, 337, 1, -577, 0, 584, 1, -332, 0, 90, 1, 74, 0, 419, 1, 74, 0, -24, 1, -119, 0, 172, 1, -577, 0, 115, 1, -404, 0, 115, 1, 25, 0, 337, 1, 74, 0, 395, 1, 25, 0, 185, 1, 25, 0, 172, 1, 74, 0} [3/1/2011 2:56:52 AM] buckyballreaction: is there a reason you are using a vector instead of an array? [3/1/2011 2:56:57 AM] buckyballreaction: for intPoints? [3/1/2011 2:57:25 AM] Chris Eykamp: Seems easier; less memory management [3/1/2011 2:57:57 AM] buckyballreaction: do you have to clean up arrays? [3/1/2011 2:59:32 AM] Chris Eykamp: depends how they're allocated [3/1/2011 2:59:39 AM] Chris Eykamp: if you use new, you do [3/1/2011 2:59:52 AM] Chris Eykamp: if you're definig static data, you don't [3/1/2011 3:00:11 AM] Chris Eykamp: (i.e. int data[] = {1,2,3,4} ) [3/1/2011 3:00:20 AM] buckyballreaction: ok [3/1/2011 3:00:36 AM] buckyballreaction: well, there is good data getting into rcBuildPolyMesh now [3/1/2011 3:00:38 AM] Chris Eykamp: vectors and other containers can be sized dynamically and just go away [3/1/2011 3:00:43 AM] Chris Eykamp: good [3/1/2011 3:00:55 AM] Chris Eykamp: assuming we've got the structure right! [3/1/2011 3:00:55 AM] buckyballreaction: but: i:1, j:1, vert#: 65535 i:1, j:2, vert#: 1 i:1, j:3, vert#: 65535 i:1, j:4, vert#: 65535 i:1, j:5, vert#: 65535 i:1, j:6, vert#: 65535 i:1, j:7, vert#: 65535 i:1, j:8, vert#: 65535 i:1, j:9, vert#: 65535 [3/1/2011 3:01:02 AM] Chris Eykamp: bogus! [3/1/2011 3:01:05 AM] buckyballreaction: :) [3/1/2011 3:01:31 AM] Chris Eykamp: ok, so maybe we've misunderstood something [3/1/2011 3:08:42 AM] buckyballreaction: ok so far the data is good up until the merge polygons section of rcBuildPolyMesh [3/1/2011 3:17:05 AM] Chris Eykamp: and I understand everything up to that point [3/1/2011 3:21:43 AM] buckyballreaction: phoew [3/1/2011 3:21:46 AM] buckyballreaction: that was rough [3/1/2011 3:21:46 AM] buckyballreaction: ok [3/1/2011 3:21:52 AM] buckyballreaction: data is good up until // Remove edge vertices. [3/1/2011 3:22:17 AM] Chris Eykamp: I don't think the input data is being corrupted [3/1/2011 3:22:30 AM] buckyballreaction: i am checking output data [3/1/2011 3:22:34 AM] Chris Eykamp: ah, good [3/1/2011 3:22:41 AM] buckyballreaction: and the various populates structures along the way [3/1/2011 3:23:10 AM] buckyballreaction: however [3/1/2011 3:23:38 AM] buckyballreaction: after the merging and populating, mesh.polys looks like this: 65535 , 40, 28, 39, 65535 , 24, 23, 3, 65535 , 12, 35, 19, 65535 , 1, 5, 36, 65535 , 38, 18, 4, 65535 , 29, 15, 30, 65535 , 7, 8, 10, 65535 , 22, 7, 10, 65535 , 34, 23, 33, 65535 , 37, 43, 15, 65535 , 9, 39, 20, 65535 , 35, 33, 24, 65535 , 16, 17, 32, 65535 ...} [3/1/2011 3:23:59 AM] buckyballreaction: which seems like everything is still a triangle [3/1/2011 3:24:09 AM] Chris Eykamp: yes, it does [3/1/2011 3:24:34 AM] Chris Eykamp: after the first merge, there should be one non-triangle [3/1/2011 3:26:17 AM] buckyballreaction: the merge step is never hitting mergePolys() [3/1/2011 3:26:31 AM] Chris Eykamp: mmm [3/1/2011 3:29:55 AM] Chris Eykamp: one area we might be able to improve on is that recast compares each poly to each other poly; if we know a bit about boundingn boxes, or can create a spatial database like we use in bitfighter for tracking walls, we might make that go faster. [3/1/2011 3:30:20 AM] buckyballreaction: 451 return dx*dx + dy*dy; (gdb) print dx $8 = 65422 (gdb) print dy $9 = -50 (gdb) print dx*dx + dy*dy $10 = -14926712 [3/1/2011 3:30:27 AM] buckyballreaction: so it's overflowing [3/1/2011 3:30:44 AM] Chris Eykamp: but that may be why it's slow... 1000 polyons comapred to 1000 polygons is 1M comparisons [3/1/2011 3:30:51 AM] Chris Eykamp: that again [3/1/2011 3:30:57 AM] buckyballreaction: yeah [3/1/2011 3:31:03 AM] Chris Eykamp: ok, why is dx 65422? [3/1/2011 3:31:23 AM] Chris Eykamp: I'll bet one of the vertices is 65535 or whatever [3/1/2011 3:31:34 AM] buckyballreaction: it is [3/1/2011 3:31:40 AM] buckyballreaction: do the data is bad before the merge [3/1/2011 3:31:43 AM] buckyballreaction: so [3/1/2011 3:31:47 AM] buckyballreaction: hmph [3/1/2011 3:33:20 AM] buckyballreaction: i think it's the addVertex method because it fills out mesh.verts [3/1/2011 3:35:50 AM] buckyballreaction: after first iteration of addVertex: 1012 if (v[3] & RC_BORDER_VERTEX) (gdb) print *mesh.verts@40 $9 = {65461, 1, 64958, 0 } [3/1/2011 3:36:54 AM] Chris Eykamp: that if should always be false [3/1/2011 3:37:04 AM] Chris Eykamp: RC_B_V is only for tiling [3/1/2011 3:37:11 AM] buckyballreaction: sorry ignore that line [3/1/2011 3:37:25 AM] buckyballreaction: that is just where it hit the break point after addVertex [3/1/2011 3:37:48 AM] buckyballreaction: then {65461, 1, 64958} was add as a vertex, which is WAY off [3/1/2011 3:46:43 AM] buckyballreaction: ha!!! [3/1/2011 3:46:45 AM] buckyballreaction: !!!!!! [3/1/2011 3:46:46 AM] buckyballreaction: !!!! [3/1/2011 3:47:10 AM] Chris Eykamp: ha? [3/1/2011 3:47:26 AM] buckyballreaction: print v[2] $25 = -578 (gdb) print (unsigned short)v[2] $26 = 64958 [3/1/2011 3:47:46 AM] buckyballreaction: it's the negatice being cast as unsigned shorts into addVertex [3/1/2011 3:47:50 AM] buckyballreaction: negative [3/1/2011 3:48:16 AM] buckyballreaction: line 1010 of RecastMesh.cpp [3/1/2011 3:49:32 AM] Chris Eykamp: my line numbers don't match up anymore [3/1/2011 3:49:46 AM] buckyballreaction: under // Add and merge vertices. [3/1/2011 3:50:12 AM] Chris Eykamp: [Tuesday, March 01, 2011 3:49 AM] buckyballreaction: <<< // Add and merge vertices.is 1009? [3/1/2011 3:50:17 AM] buckyballreaction: indices[j] = addVertex((unsigned short)v[0] [3/1/2011 3:50:26 AM] buckyballreaction: sure [3/1/2011 3:50:43 AM] Chris Eykamp: why ???? [3/1/2011 3:50:47 AM] buckyballreaction: a few lines below, and we have all our negative indices being cast as unsigned shorts [3/1/2011 3:51:11 AM] Chris Eykamp: wait... why do we have negative indices anywyere [3/1/2011 3:51:21 AM] buckyballreaction: sorry, not idices [3/1/2011 3:51:29 AM] buckyballreaction: negative points on vertices [3/1/2011 3:51:44 AM] buckyballreaction: this goes in: -75, 1, -578 [3/1/2011 3:51:46 AM] Chris Eykamp: right [3/1/2011 3:51:54 AM] buckyballreaction: this comes out: 65461, 1, 64958 [3/1/2011 3:52:06 AM] Chris Eykamp: so why would it do that cast? [3/1/2011 3:52:20 AM] buckyballreaction: because it wants to mess with my head late at night [3/1/2011 3:52:20 AM] Chris Eykamp: and do we have a min/max coord of 32K? [3/1/2011 3:52:40 AM] Chris Eykamp: if so, we'll need to check that going in [3/1/2011 3:53:10 AM] buckyballreaction: yes, but how to handle the casting? [3/1/2011 3:53:14 AM] buckyballreaction: remove it? [3/1/2011 3:53:16 AM] buckyballreaction: :) [3/1/2011 3:53:19 AM] Chris Eykamp: try that [3/1/2011 3:53:25 AM] Chris Eykamp: I mean... why not? [3/1/2011 3:53:26 AM] buckyballreaction: or add 32K to everything for fun [3/1/2011 3:53:41 AM] buckyballreaction: then subtract it on the way out [3/1/2011 3:53:46 AM] Chris Eykamp: either would work; we just want to get past this quickly and see if it otherwise works [3/1/2011 3:53:49 AM] Chris Eykamp: ok [3/1/2011 3:54:51 AM] Chris Eykamp: I'm adding a lot of comments to recast [3/1/2011 3:58:06 AM] buckyballreaction: ugh, too many unsigned casts [3/1/2011 4:02:23 AM] Chris Eykamp: this code feels pretty tight in many ways [3/1/2011 4:02:30 AM] Chris Eykamp: would be a pain to recreate [3/1/2011 4:09:49 AM] buckyballreaction: man, the vertices are still coming out bad [3/1/2011 4:09:58 AM] buckyballreaction: no merges are detected [3/1/2011 4:10:20 AM] buckyballreaction: I am adding 32768 to each vertex [3/1/2011 4:10:24 AM] buckyballreaction: x,y [3/1/2011 4:11:47 AM] Chris Eykamp: odd [3/1/2011 4:12:12 AM] buckyballreaction: verts look like this now: {32693, 1, 32190, 0, 32693, 1, 32843, 0, 33353, 1, 32843, 0, 33353, 1, 32190, 0, 32744, 1, 32504, 0, 32744, 1, 32793, 0, 32793, 1, 32744, 0, 32793, 1, 32554, 0, 32793, 1, 32524, 0, 33023, 1, 32224, 0} [3/1/2011 4:12:41 AM] Chris Eykamp: take a square, cut it down the diagonal, makes to triangles [3/1/2011 4:12:57 AM] Chris Eykamp: recast is telling me that the union o fhtose two would not be convex [3/1/2011 4:13:08 AM] buckyballreaction: really? [3/1/2011 4:13:36 AM] buckyballreaction: i can't see any way that woul dbe so [3/1/2011 4:13:46 AM] Chris Eykamp: are these the vertices of a square (1st and 3rd) [3/1/2011 4:13:51 AM] Chris Eykamp: 0,0,0,0, 2,0,0,0, 2,0,2,0, 0,0,2,0 [3/1/2011 4:14:01 AM] Chris Eykamp: 0,0 2,0 2,2 0 2 [3/1/2011 4:14:24 AM] buckyballreaction: yup [3/1/2011 4:14:37 AM] Chris Eykamp: so the first triangle is verts 0 1 2 [3/1/2011 4:14:47 AM] Chris Eykamp: and the 2nd is 0 3 2 [3/1/2011 4:15:01 AM] Chris Eykamp: oh... unless winding order matters [3/1/2011 4:15:08 AM] buckyballreaction: ahhh [3/1/2011 4:15:10 AM] buckyballreaction: winding [3/1/2011 4:15:13 AM] buckyballreaction: i think it does [3/1/2011 4:15:13 AM] Chris Eykamp: ah fuck [3/1/2011 4:15:29 AM] Chris Eykamp: there I just punctured the family atmosphere of our chat room [3/1/2011 4:15:36 AM] buckyballreaction: shame shame [3/1/2011 4:15:51 AM] Chris Eykamp: but we're hosed, I thihnk [3/1/2011 4:16:02 AM] buckyballreaction: does triangle not output vertices in order? [3/1/2011 4:16:03 AM] Chris Eykamp: unless we can rewrite all our triangles to go cw [3/1/2011 4:16:17 AM] Chris Eykamp: maybe it does. this is input I made up [3/1/2011 4:16:34 AM] Chris Eykamp: I'm going to reverse the 2nd triangle and run it again and see if something different happens [3/1/2011 4:16:38 AM] Chris Eykamp: phooey [3/1/2011 4:16:52 AM] Chris Eykamp: I was afraid soemthing like this would happen [3/1/2011 4:17:27 AM] Chris Eykamp: so 0,1,2 and 0,2,3 all go in the same order [3/1/2011 4:17:41 AM] buckyballreaction: ye [3/1/2011 4:17:41 AM] Chris Eykamp: I wonder if merely sorting the verts numerically would get them in the sma order [3/1/2011 4:18:26 AM] Chris Eykamp: no [3/1/2011 4:18:51 AM] buckyballreaction: from triangle doc: .ele files: First line: <# of triangles> <# of attributes> Remaining lines: ... [attributes] Nodes are indices into the corresponding .node file. The first three nodes are the corner vertices, and are listed in counterclockwise order around each triangle. [3/1/2011 4:19:30 AM] Chris Eykamp: oh, good [3/1/2011 4:19:41 AM] Chris Eykamp: well, at least we know [3/1/2011 4:19:51 AM] Chris Eykamp: for making bogus data [3/1/2011 4:21:00 AM] Chris Eykamp: now all the numbers and orders I have in my head are wrong [3/1/2011 4:22:16 AM] buckyballreaction: ok, found two problems: 1. no merges detected 2. line 1126: if (!buildMeshAdjacency(mesh.polys, mesh.npolys, mesh.nverts, nvp)) kills the vertices [3/1/2011 4:23:18 AM] Chris Eykamp: and bisected sqaures aren't convex [3/1/2011 4:23:28 AM] Chris Eykamp: still seeing that [3/1/2011 4:23:28 AM] buckyballreaction: haha [3/1/2011 4:23:34 AM] buckyballreaction: man [3/1/2011 4:24:08 AM] buckyballreaction: ok, well [3/1/2011 4:24:14 AM] buckyballreaction: i think i'm going to call it a night [3/1/2011 4:24:19 AM] Chris Eykamp: good plan [3/1/2011 4:24:34 AM] buckyballreaction: going nowhere slower and slower... [3/1/2011 4:24:35 AM] Chris Eykamp: let's regroup tomorrow after some sleep [3/1/2011 4:24:41 AM] buckyballreaction: okey doke [3/1/2011 4:24:41 AM] Chris Eykamp: and see what make sense [3/1/2011 4:24:50 AM] buckyballreaction: aggreed [3/1/2011 4:24:51 AM] Chris Eykamp: night [3/1/2011 4:24:52 AM] buckyballreaction: good night [3/1/2011 4:34:23 AM] Chris Eykamp: this requires triangles in clockwise order [3/1/2011 4:48:06 AM] Chris Eykamp: I *think* I've changed the code to work with traingels in ccw order [3/1/2011 4:48:23 AM] Chris Eykamp: still doesn't work, but it looks less broken than ever [3/1/2011 5:05:00 AM] Chris Eykamp: I'm checking my stuff in. I'm seeing 4 point polygons for the first time. Maybe with your fixes for the big negatives... [3/1/2011 5:05:36 AM] Chris Eykamp: Anyway, we're not there yet, but we are making more progress than we have since we started. [3/1/2011 2:20:09 PM] Chris Eykamp: I think I figured out why it's so slow [3/1/2011 2:55:27 PM] buckyballreaction: good day\ [3/1/2011 2:56:16 PM] Chris Eykamp: hi [3/1/2011 2:56:42 PM] buckyballreaction: hi [3/1/2011 2:56:48 PM] buckyballreaction: did you check stuff in? [3/1/2011 2:57:14 PM] Chris Eykamp: yes [3/1/2011 2:57:15 PM] buckyballreaction: i only checked in the intPoints loop data fix [3/1/2011 2:57:24 PM] buckyballreaction: sorry, i mean 'push' [3/1/2011 2:57:56 PM] buckyballreaction: you think you figured out the speed issue? [3/1/2011 2:58:04 PM] Chris Eykamp: yes [3/1/2011 2:58:21 PM] Chris Eykamp: maybe nmen has a better solution here; this seems really inefficient [3/1/2011 2:59:12 PM] Chris Eykamp: yes, but that's not really the problem [3/1/2011 2:59:25 PM] Chris Eykamp: sorry, ignore that [3/1/2011 2:59:31 PM] buckyballreaction: ok, reset [3/1/2011 3:00:04 PM] Chris Eykamp: there is a set of nested loops [3/1/2011 3:00:05 PM] Chris Eykamp: for (int j = 0; j < npolys-1; ++j) { unsigned short* pj = &polys[j*nvp]; for (int k = j+1; k < npolys; ++k) { unsigned short* pk = &polys[k*nvp]; int ea, eb; [3/1/2011 3:00:07 PM] Chris Eykamp: ... [3/1/2011 3:00:19 PM] Chris Eykamp: they run over and over caluclating the same thing [3/1/2011 3:00:37 PM] Chris Eykamp: c. 861 in RecastMesh.cpp [3/1/2011 3:00:39 PM] buckyballreaction: that's in getPolyMergeData [3/1/2011 3:00:44 PM] buckyballreaction: ok [3/1/2011 3:00:45 PM] buckyballreaction: before hand [3/1/2011 3:00:49 PM] Chris Eykamp: yes; that could be waaay streamlined I think [3/1/2011 3:01:13 PM] Chris Eykamp: it compares every tri to every other tri, trying to find the longest common segment [3/1/2011 3:01:25 PM] Chris Eykamp: what if we cached the common segment between any two polys? [3/1/2011 3:01:33 PM] Chris Eykamp: and then kept a sorted list [3/1/2011 3:01:44 PM] Chris Eykamp: when we merged, we could recalcuate all affected polygons [3/1/2011 3:01:47 PM] buckyballreaction: exactly what i was thinking [3/1/2011 3:01:47 PM] Chris Eykamp: then resort [3/1/2011 3:01:48 PM] Chris Eykamp: and pull from the top of the list [3/1/2011 3:01:59 PM] Chris Eykamp: that would be dramatically faster [3/1/2011 3:02:02 PM] buckyballreaction: nmgen actually does that [3/1/2011 3:02:20 PM] Chris Eykamp: we get an exponential increase in execution time as we add triangles [3/1/2011 3:02:28 PM] buckyballreaction: it keeps a map of [3/1/2011 3:02:39 PM] Chris Eykamp: that would help [3/1/2011 3:02:49 PM] Chris Eykamp: we can actaully get that from Traingle [3/1/2011 3:02:54 PM] Chris Eykamp: I think [3/1/2011 3:03:14 PM] Chris Eykamp: that tells you what you need to recalc as you merge [3/1/2011 3:10:47 PM] Chris Eykamp: btw, when I corrected my test input data (wherein I had a tiny error), I got back the expected results [3/1/2011 3:11:12 PM] buckyballreaction: really? [3/1/2011 3:11:18 PM] buckyballreaction: something merged? [3/1/2011 3:12:02 PM] Chris Eykamp: yes, several somethings [3/1/2011 3:12:09 PM] buckyballreaction: excellent [3/1/2011 3:12:10 PM] Chris Eykamp: exactly what I expected [3/1/2011 3:12:36 PM] buckyballreaction: did you use negative coords? [3/1/2011 3:13:00 PM] Chris Eykamp: no [3/1/2011 3:13:12 PM] Chris Eykamp: and there's still garbage on any real dataset, but we're getting closer [3/1/2011 3:13:15 PM] buckyballreaction: i wonder if you were to add 32768 to all the values [3/1/2011 3:13:23 PM] buckyballreaction: if it'd still work [3/1/2011 3:14:43 PM] Chris Eykamp: I've got to take off for a while. [3/1/2011 3:14:55 PM] buckyballreaction: ok [3/1/2011 3:14:59 PM] Chris Eykamp: The corrected test data is: [3/1/2011 3:15:00 PM] Chris Eykamp: /// test data static int pts[] = { 0,0,0,0, 2,0,0,0, 2,0,2,0, 0,0,2,0, 1,0,3,0 }; static int tris[] = { 0,1,2, 0,2,3, 2,4,3 }; [3/1/2011 3:15:08 PM] Chris Eykamp: looks like a house [3/1/2011 3:15:10 PM] buckyballreaction: great, thanks [3/1/2011 3:15:20 PM] Chris Eykamp: all triangles wind in a ccw manner [3/1/2011 3:15:28 PM] Chris Eykamp: and you should end up with one 5 pt polygon [3/1/2011 3:15:30 PM] buckyballreaction: can you push any changes you made to RecastMesh? (like doc..) [3/1/2011 3:15:43 PM] Chris Eykamp: I did last night [3/1/2011 3:15:59 PM] buckyballreaction: i don't see them in trunk [3/1/2011 3:16:04 PM] buckyballreaction: http://code.google.com/p/bitfighter/source/list [3/1/2011 3:16:31 PM] Chris Eykamp: something gone wrong [3/1/2011 3:16:40 PM] Chris Eykamp: moment... [3/1/2011 3:21:51 PM] Chris Eykamp: this one got messy as I had to kill hg mid process. looks ok, though... [3/1/2011 3:22:04 PM] Chris Eykamp: over and out [3/1/2011 3:22:08 PM] buckyballreaction: ok [3/1/2011 3:22:10 PM] buckyballreaction: later [3/1/2011 4:24:42 PM] karamazovapy: 680 messages? do you guys ever "work" at work? [3/1/2011 4:25:23 PM] buckyballreaction: :) [3/1/2011 4:25:28 PM] buckyballreaction: we were moonlighting [3/1/2011 4:25:49 PM] buckyballreaction: probably could have gotten the same amount done in 1/4 the time had it not been past midnight... [3/1/2011 4:30:43 PM] Chris Eykamp: this problem is really hard [3/1/2011 4:31:48 PM] karamazovapy: is it still the zone gen stuff? [3/1/2011 4:31:55 PM] buckyballreaction: i learned a funny term: 'wizard programmer' [3/1/2011 4:32:17 PM] buckyballreaction: the type that sit in their ivory tower up high and horde their gems of super hero code [3/1/2011 4:32:22 PM] Chris Eykamp: @k yes [3/1/2011 4:32:27 PM] buckyballreaction: and go at everything alone [3/1/2011 4:32:30 PM] Chris Eykamp: we want to make the zones much faster and better [3/1/2011 4:32:42 PM] karamazovapy: wizard programmer. hah. [3/1/2011 4:32:53 PM] Chris Eykamp: square zones work well 95% of the time, but we've found some failure cases [3/1/2011 4:33:18 PM] karamazovapy: are the squares mostly bad on levels with curves? [3/1/2011 4:37:50 PM] Chris Eykamp: no, not to bad there; long, thin 45deg corridors can be a problem [3/1/2011 4:38:05 PM] karamazovapy: ah, gotcha [3/1/2011 4:38:07 PM] Chris Eykamp: squares work better than triangles (our new method) on curves [3/1/2011 4:38:16 PM] karamazovapy: because the squares are always verticle and horizontal [3/1/2011 4:38:18 PM] Chris Eykamp: but triangles will be perfect on those corridors [3/1/2011 4:38:20 PM] Chris Eykamp: yes [3/1/2011 4:38:40 PM] Chris Eykamp: but, if this all works out, we may be done with hand editing of zones forever [3/1/2011 4:38:48 PM] Chris Eykamp: if we aren't already [3/1/2011 4:39:58 PM] buckyballreaction: do you think some sort of algo to segment curves before being input into Triangle would be a good idea? [3/1/2011 4:40:21 PM] Chris Eykamp: yes [3/1/2011 4:40:50 PM] Chris Eykamp: maybe try rounding inputs off to nearst 5, rather than nearest 1 or something. Lots of geowar segs will collapse [3/1/2011 4:41:17 PM] Chris Eykamp: or at least removing segs shorter than 5 [3/1/2011 4:41:33 PM] Chris Eykamp: and find a way to make triangle stop when trianges get too small [3/1/2011 4:41:42 PM] Chris Eykamp: maybe have it work with ints instead of floats [3/1/2011 4:42:13 PM] buckyballreaction: ints would speed it up [3/1/2011 4:42:18 PM] buckyballreaction: for the btifighter case [3/1/2011 4:42:21 PM] Chris Eykamp: probably [3/1/2011 4:42:47 PM] buckyballreaction: but i'm already impresed at how fast it is.. [3/1/2011 4:45:12 PM] Chris Eykamp: when you consider the ship is what 45 or so units across? loss of sub 1 precsion is not important [3/1/2011 4:45:32 PM] buckyballreaction: exactly [3/1/2011 6:51:48 PM] Chris Eykamp: do we want something like this on the website? [3/1/2011 6:51:50 PM] Chris Eykamp: http://sharethis.com/publishers/new-share-widget#faq [3/1/2011 6:53:03 PM] buckyballreaction: if speaking for myself: i block all social site add-ons with a browser plugin [3/1/2011 6:53:18 PM] Chris Eykamp: right [3/1/2011 6:53:32 PM] Chris Eykamp: well, considering our demographic, they probably actually use social sites [3/1/2011 6:53:39 PM] buckyballreaction: yes [3/1/2011 6:53:56 PM] buckyballreaction: when you say 'add it to site' do you mean to the forums? [3/1/2011 6:53:58 PM] Chris Eykamp: so I'm trying to leave aside my personal feelings about them [3/1/2011 6:54:02 PM] Chris Eykamp: perhaps [3/1/2011 6:54:10 PM] buckyballreaction: you mean like how they steal our wives' time? [3/1/2011 6:54:18 PM] Chris Eykamp: not MY wife [3/1/2011 6:54:29 PM] buckyballreaction: my wife just deleted her facebook account [3/1/2011 6:54:37 PM] Chris Eykamp: good [3/1/2011 6:54:41 PM] buckyballreaction: but I know too many examples... [3/1/2011 6:54:43 PM] buckyballreaction: many friends [3/1/2011 6:54:51 PM] Chris Eykamp: my wife thinks it's as pointless as I do [3/1/2011 6:54:57 PM] buckyballreaction: that's great [3/1/2011 6:55:05 PM] Chris Eykamp: unfortunately, that means I'll have less experience when my kids go crazy for it [3/1/2011 6:56:29 PM] buckyballreaction: i'm hoping it's a fad that will die soon: facebook is going (gone?) public; and for a tech company that means death [3/1/2011 6:56:35 PM] Chris Eykamp: yes [3/1/2011 6:56:37 PM] Chris Eykamp: indeed [3/1/2011 6:57:00 PM] Chris Eykamp: for the recast stuff, the main issue I think is figuring out that 65xxx problem [3/1/2011 6:57:20 PM] buckyballreaction: i figured it out [3/1/2011 6:57:25 PM] Chris Eykamp: once we get that licked, I think the rest will fall into place [3/1/2011 6:57:29 PM] Chris Eykamp: yes? [3/1/2011 6:57:36 PM] buckyballreaction: it was the negative points overflowing in the unsigned shorts [3/1/2011 6:57:46 PM] Chris Eykamp: right, ok, once we get it fixed [3/1/2011 6:58:15 PM] buckyballreaction: to get around it I added 32768 to all the points, and much more sane numbers were returned - however no merges occured [3/1/2011 6:58:17 PM] Chris Eykamp: whether we do that by adding an offset or changing the casting [3/1/2011 6:58:40 PM] Chris Eykamp: ok, well maybe that's the key. I just realized a mistake I made when trying that approach [3/1/2011 6:58:57 PM] Chris Eykamp: but the point being, I think that's the last non-performance-related obstacle [3/1/2011 6:59:17 PM] Chris Eykamp: I'm feeling pretty confident that tonight I'll be able to get some examples working [3/1/2011 6:59:45 PM] karamazovapy: yeah, facebook is about to die [3/1/2011 7:00:19 PM] buckyballreaction: i would like to know if you can get your test data with that offset to still merge [3/1/2011 7:00:31 PM] buckyballreaction: wait, i can do that... if you checked it all in [3/1/2011 7:00:37 PM] buckyballreaction: (sorry busy day) [3/1/2011 7:00:37 PM] Chris Eykamp: but farmville will live on [3/1/2011 7:00:59 PM] Chris Eykamp: That's ok, if you don't do it, I'll get to it this evening [3/1/2011 7:03:42 PM] Chris Eykamp: actually, hold off on this til you hear from me later... I had an idea I want to try [3/1/2011 7:03:55 PM] buckyballreaction: okey doke [3/1/2011 7:09:27 PM] buckyballreaction: well i did it anyways and the poly merged :) [3/1/2011 7:10:15 PM] Chris Eykamp: great! [3/1/2011 7:10:34 PM] Chris Eykamp: using my input data, or yours? [3/1/2011 7:10:43 PM] buckyballreaction: yours [3/1/2011 7:10:48 PM] Chris Eykamp: try making it more complex [3/1/2011 7:10:57 PM] Chris Eykamp: add a hole or something [3/1/2011 7:13:15 PM] buckyballreaction: { 0,0,0,0, 2,0,0,0, 2,0,2,0, 0,0,2,0, 4,0,2,0, 4,0,4,0 }; [3/1/2011 7:13:17 PM] buckyballreaction: { 0,1,2, 0,2,3, 3,4,5 }; [3/1/2011 7:16:24 PM] buckyballreaction: hmmm... only returned one poly - the square [3/1/2011 7:17:19 PM] buckyballreaction: oops, my bounds were wrong... [3/1/2011 7:28:01 PM] buckyballreaction: for some reason pint 4, 0, 4 isn't found in the resulting mesh.verts [3/1/2011 7:29:02 PM] Chris Eykamp: I think there's a bug in the output [3/1/2011 7:30:17 PM] Chris Eykamp: for(S32 j = 0; j < mesh.nvp; j += 1) { if(mesh.polys[(i * mesh.nvp + j)] == U16_MAX) // We've read past the end of the polygon break; [3/1/2011 7:30:21 PM] Chris Eykamp: compare to what you have [3/1/2011 7:31:11 PM] buckyballreaction: print *mesh.polys@30 $14 = {0, 1, 2, 3, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 1, 65535, 65535, 65535, 65535, 65535, 65535, 3, 4, 0, 65535, 65535, 65535, 65535, 65535, 65535, 65535} [3/1/2011 7:31:18 PM] buckyballreaction: so ther eis the square [3/1/2011 7:31:24 PM] buckyballreaction: then a loner [3/1/2011 7:35:33 PM] buckyballreaction: and somehow 3,4,5 became 3,4,0 [3/1/2011 7:41:40 PM] buckyballreaction: well, gotta go [3/1/2011 7:42:12 PM] Chris Eykamp: later [3/2/2011 12:03:33 AM] Chris Eykamp: I pushed a couple of edits I just made... for my test data set, this code works perfectly. On real data, it either crashes or brings back lots of invalid vertices. Need to figure out why [3/2/2011 12:04:11 AM] buckyballreaction: i thnk it's because one of the algos is expecting simple polygon input [3/2/2011 12:06:42 AM] Chris Eykamp: i.e. no holes [3/2/2011 12:06:48 AM] Chris Eykamp: well, ok, no problem [3/2/2011 12:07:07 AM] Chris Eykamp: run triangle with the O option [3/2/2011 12:07:24 AM] Chris Eykamp: holes will be there, but filled with triangles [3/2/2011 12:07:27 AM] Chris Eykamp: no empty space [3/2/2011 12:07:34 AM] Chris Eykamp: we just need to mark those somehow [3/2/2011 12:07:44 AM] Chris Eykamp: problem is when I've tried that, back to heap corruption errors [3/2/2011 12:10:05 AM] Chris Eykamp: I'm getting better, but now my wife is sick. that's even worse! [3/2/2011 12:10:12 AM] buckyballreaction: oh no! [3/2/2011 12:10:18 AM] Chris Eykamp: disaster! [3/2/2011 12:11:35 AM] buckyballreaction: i actually need sleep tonight - so I'll have to pick up again tomorrow [3/2/2011 12:11:45 AM] buckyballreaction: rotten unconsciousness [3/2/2011 12:12:27 AM] buckyballreaction: the problem with the rcBuildPolyMesh method [3/2/2011 12:12:43 AM] buckyballreaction: is that it is already expecting convex polygons [3/2/2011 12:12:49 AM] buckyballreaction: (contours) [3/2/2011 12:13:01 AM] buckyballreaction: and that the level has already been split around all the holes [3/2/2011 12:13:02 AM] Chris Eykamp: they're not convex, are they [3/2/2011 12:13:09 AM] buckyballreaction: well... [3/2/2011 12:13:14 AM] buckyballreaction: nmgen says 'simple' [3/2/2011 12:13:19 AM] Chris Eykamp: simple could mean concave [3/2/2011 12:13:32 AM] Chris Eykamp: it means no holes, all contiguous [3/2/2011 12:13:39 AM] buckyballreaction: yes, but i have my suspicions about recast [3/2/2011 12:13:48 AM] Chris Eykamp: yes [3/2/2011 12:13:58 AM] Chris Eykamp: but if you had those, you'd be done [3/2/2011 12:14:10 AM] buckyballreaction: maybe [3/2/2011 12:14:32 AM] buckyballreaction: we generate a convex hull from the map and include all the holes [3/2/2011 12:14:37 AM] Chris Eykamp: I think you have concave polys, you break into triangels, then reggregate to convex polys [3/2/2011 12:14:51 AM] Chris Eykamp: yes [3/2/2011 12:14:56 AM] Chris Eykamp: we haev a complex polygon [3/2/2011 12:15:06 AM] Chris Eykamp: broken into triangles [3/2/2011 12:15:25 AM] buckyballreaction: or we just do our own algo... :) [3/2/2011 12:15:31 AM] Chris Eykamp: may have to [3/2/2011 12:15:33 AM] Chris Eykamp: hope not [3/2/2011 12:15:42 AM] buckyballreaction: yeah, i'd rather not reinvent the wheel [3/2/2011 12:15:46 AM] Chris Eykamp: but we're getting to the point where we'll know soon [3/2/2011 12:16:41 AM] Chris Eykamp: I think the unsigned int thing comes from starting with a raster [3/2/2011 12:16:46 AM] Chris Eykamp: where corner is 0,0 [3/2/2011 12:16:54 AM] Chris Eykamp: so all coords are positive [3/2/2011 12:16:59 AM] buckyballreaction: makes sense [3/2/2011 12:17:59 AM] Chris Eykamp: I'm still feeling optimistic [3/2/2011 12:18:08 AM] Chris Eykamp: perhaps without reason [3/2/2011 12:18:23 AM] buckyballreaction: it's a pretty neat tech [3/2/2011 12:18:29 AM] Chris Eykamp: hard [3/2/2011 12:18:34 AM] buckyballreaction: yes [3/2/2011 12:18:43 AM] buckyballreaction: i find myself reading nmgen a lot because the guy focused on doc [3/2/2011 12:18:56 AM] Chris Eykamp: i may look at that more closely [3/2/2011 12:19:19 AM] Chris Eykamp: espeically if we need to depart from recast and change the algos [3/2/2011 12:19:27 AM] buckyballreaction: yes [3/2/2011 12:19:44 AM] buckyballreaction: it's much easier to follow in my opinion [3/2/2011 12:19:50 AM] Chris Eykamp: I don't doubt it [3/2/2011 12:20:05 AM] buckyballreaction: i wonder if you can compile java to native code.. [3/2/2011 12:20:19 AM] Chris Eykamp: I'm sure you can [3/2/2011 12:21:20 AM] buckyballreaction: if c# can, then java must be able to [3/2/2011 12:23:04 AM] buckyballreaction: http://gcc.gnu.org/java/ [3/2/2011 12:23:11 AM] buckyballreaction: imagine that, GNU [3/2/2011 12:23:30 AM] buckyballreaction: ugh, but it would mean MingW [3/2/2011 12:23:40 AM] Chris Eykamp: integrating into a multiplatform build process might be painful [3/2/2011 12:23:45 AM] buckyballreaction: oh yeah [3/2/2011 12:23:52 AM] buckyballreaction: just thinking about it pains me [3/2/2011 12:23:54 AM] Chris Eykamp: I tried to get bf to build under mingw, without luck [3/2/2011 12:24:24 AM] Chris Eykamp: compiled, but linking was awful [3/2/2011 12:24:32 AM] buckyballreaction: i bet [3/2/2011 12:24:47 AM] buckyballreaction: all the libraries probably had to be compiled in mingw, too [3/2/2011 12:24:50 AM] buckyballreaction: which is a nightmare [3/2/2011 12:25:30 AM] buckyballreaction: well, i'm gonna hit the sack early [3/2/2011 12:25:45 AM] buckyballreaction: talk to tomorrow. hope your wife gets better [3/2/2011 12:26:06 AM] Chris Eykamp: thanks [3/2/2011 12:26:08 AM] Chris Eykamp: night [3/2/2011 12:26:10 AM] buckyballreaction: night [3/2/2011 12:50:21 AM] Zoomber: hey watusimoto, are you still on? [3/2/2011 1:03:49 AM] Chris Eykamp: yup [3/2/2011 1:06:17 AM] Zoomber: Whats your view on this statement? [3/2/2011 1:06:30 AM] Zoomber: Why do today what you can put off till tomorrow [3/2/2011 1:07:29 AM] Chris Eykamp: works for me! [3/2/2011 1:10:12 AM] Zoomber: just what I was thinking [3/2/2011 1:16:51 AM] Chris Eykamp: I beleive it is very important to find a cliched platititude and live by it [3/2/2011 1:18:05 AM] Zoomber: and we have, my frend [3/2/2011 1:34:54 AM] Zoomber: night [3/2/2011 1:35:18 AM] Chris Eykamp: bye [3/2/2011 2:03:28 AM] Chris Eykamp: fixed the memory corruption problem [3/2/2011 3:04:19 AM] Chris Eykamp: Got it working! [3/2/2011 3:14:56 AM] Chris Eykamp: hmmm... seems to work when I send a polygon with holes [3/2/2011 3:15:12 AM] Chris Eykamp: let's try a real complex level [3/2/2011 3:16:35 AM] Chris Eykamp: WOW [3/2/2011 3:16:40 AM] Chris Eykamp: totally works! [3/2/2011 3:16:53 AM] Chris Eykamp: veeeery slow, but very nice zones!! [3/2/2011 3:17:12 AM] Chris Eykamp: this with the code that's checked in [3/2/2011 3:17:39 AM] Chris Eykamp: these zones look great [3/2/2011 9:14:47 AM] buckyballreaction: wow, they do look good [3/2/2011 10:02:37 AM] buckyballreaction: i removed the triangulate 'O' option, and it still worked on my test level. although the bots are a little dumb with the new zones [3/2/2011 12:12:25 PM] Chris Eykamp: yes, -O not needed or wanted [3/2/2011 12:13:07 PM] Chris Eykamp: oddly, recast allocates 2x memory it needs for polygons, and writes in every 2nd "slot" [3/2/2011 12:13:37 PM] Chris Eykamp: but now we just have a profiling and optimization problem [3/2/2011 12:24:55 PM] buckyballreaction: i found two problems, here is the test level (thanks sam): [3/2/2011 12:24:56 PM] buckyballreaction: http://96.2.123.136/upload/test3.level [3/2/2011 12:25:25 PM] buckyballreaction: problem #1: this level will fail the assertion in rcBuildPolyMesh:1040: rcAssert(vertCount == mesh.nverts); // Normally not necessarily true, but with Triangle output, there should be no dupes [3/2/2011 12:25:38 PM] buckyballreaction: commenting it out makes it work just fine [3/2/2011 12:26:38 PM] Chris Eykamp: that was just a random line I added [3/2/2011 12:26:59 PM] Chris Eykamp: tring to figure out if it really is true [3/2/2011 12:28:20 PM] buckyballreaction: problem #2: the bots are a little dumber [3/2/2011 12:29:37 PM] Chris Eykamp: interesting [3/2/2011 12:29:58 PM] Chris Eykamp: they seemed ok to me, but why do yoiu think that is? [3/2/2011 12:30:11 PM] buckyballreaction: this is why: http://96.2.123.136/upload/snapshot8.png [3/2/2011 12:30:14 PM] Chris Eykamp: and what do you mean by dumber? [3/2/2011 12:30:55 PM] buckyballreaction: they are dumber in that sometimes they'll just wait in a zone [3/2/2011 12:31:24 PM] Chris Eykamp: the way the nav algo works, they should be fine with these zones [3/2/2011 12:31:36 PM] buckyballreaction: yes, i would think so, too [3/2/2011 12:31:50 PM] buckyballreaction: let me try with my other map... [3/2/2011 12:34:21 PM] buckyballreaction: http://96.2.123.136/upload/1snapshot8.png [3/2/2011 12:34:27 PM] buckyballreaction: the bot isn't moving out of the zone [3/2/2011 12:34:30 PM] buckyballreaction: i am in zone 6 [3/2/2011 12:35:07 PM] Chris Eykamp: he'll move with triangle or square zones? [3/2/2011 12:35:27 PM] Chris Eykamp: haev you turned on showpaths? [3/2/2011 12:35:28 PM] buckyballreaction: yup [3/2/2011 12:35:32 PM] buckyballreaction: nope [3/2/2011 12:36:02 PM] Chris Eykamp: so... bot wants to move toward you, right? [3/2/2011 12:36:41 PM] buckyballreaction: yes [3/2/2011 12:36:46 PM] buckyballreaction: he keeps circling in 84 [3/2/2011 12:37:10 PM] buckyballreaction: let me try showpaths [3/2/2011 12:37:14 PM] buckyballreaction: didn't know that was there... [3/2/2011 12:37:17 PM] buckyballreaction: :D [3/2/2011 12:37:22 PM] Chris Eykamp: and can you lure him out of 84? [3/2/2011 12:37:32 PM] buckyballreaction: yes [3/2/2011 12:37:40 PM] Chris Eykamp: but only by getting in LOS [3/2/2011 12:37:49 PM] buckyballreaction: if i move into 10 [3/2/2011 12:37:52 PM] buckyballreaction: nope [3/2/2011 12:38:20 PM] buckyballreaction: moving to the lower edge of 6 gives him line of sight [3/2/2011 12:38:32 PM] buckyballreaction: while he's circling in 84 [3/2/2011 12:38:44 PM] buckyballreaction: and he still doesn't cross the 6 sided poly [3/2/2011 12:38:48 PM] buckyballreaction: beb [3/2/2011 12:38:49 PM] buckyballreaction: brb [3/2/2011 12:46:34 PM] buckyballreaction: i can lure him by moving into 10 [3/2/2011 12:47:56 PM] buckyballreaction: http://96.2.123.136/upload/11snapshot8.png [3/2/2011 12:47:59 PM] buckyballreaction: with show paths [3/2/2011 12:48:52 PM] Chris Eykamp: my guess is he thinks the border between 84 and 10 is that top blue line [3/2/2011 12:49:05 PM] Chris Eykamp: he goes to the border, then... wait... where am i going! [3/2/2011 12:49:30 PM] Chris Eykamp: maybe we need to add somehting to addpaths that shows the ultimate target so we know where he wants to go [3/2/2011 12:49:51 PM] buckyballreaction: or we could polug in detour :) [3/2/2011 12:49:55 PM] buckyballreaction: plug [3/2/2011 12:50:02 PM] Chris Eykamp: well, sure [3/2/2011 12:50:21 PM] buckyballreaction: i actually have that code compiling... [3/2/2011 12:50:25 PM] Chris Eykamp: we've come this far... the rest should be easy! (er) [3/2/2011 12:50:34 PM] buckyballreaction: but untested [3/2/2011 12:50:37 PM] Chris Eykamp: no turning back yet [3/2/2011 12:50:41 PM] buckyballreaction: haha [3/2/2011 12:50:41 PM] buckyballreaction: nope [3/2/2011 12:51:24 PM] Chris Eykamp: I've seen some other bot behavior (with sam's zones) that makes me think there is a bug in the pathfinding [3/2/2011 12:51:40 PM] buckyballreaction: yup [3/2/2011 12:52:00 PM] buckyballreaction: also, if you look at the zones on my test map, it still seems like it isn't as efficient as it could be [3/2/2011 12:52:44 PM] buckyballreaction: probaby because triangle is throwing down so many triangles in certain places that a merge doesn't join into a convex poly [3/2/2011 12:53:27 PM] buckyballreaction: but we can easily see with our eyes that a merge of lik 6 tiny tris can easily be put into a convex oply [3/2/2011 12:54:44 PM] Chris Eykamp: well, it only looks one by one... if any two can't be merged, it won't even look at the third [3/2/2011 12:55:24 PM] Chris Eykamp: but 51 & 53 should have merged, I'd think [3/2/2011 12:55:39 PM] Chris Eykamp: 6 & 52 [3/2/2011 12:55:47 PM] Chris Eykamp: 2 & 73 [3/2/2011 12:55:53 PM] Chris Eykamp: etc. [3/2/2011 12:56:19 PM] buckyballreaction: yup [3/2/2011 12:56:23 PM] Chris Eykamp: we don't need perfection; we need reduction in triangles and speed [3/2/2011 12:56:33 PM] Chris Eykamp: and we have one of those [3/2/2011 12:56:40 PM] Chris Eykamp: ctf3 took ~10 minutes [3/2/2011 12:56:43 PM] buckyballreaction: yes, i agree [3/2/2011 12:57:01 PM] Chris Eykamp: and we need zones that are not too goofball [3/2/2011 12:57:01 PM] buckyballreaction: haha [3/2/2011 12:57:12 PM] Chris Eykamp: ctf1 took about a minute [3/2/2011 12:57:20 PM] buckyballreaction: do you get crashes without the 'O' flag? [3/2/2011 12:57:22 PM] Chris Eykamp: so dramatic increse in time with increase in complexity [3/2/2011 12:57:27 PM] buckyballreaction: in triangle [3/2/2011 12:57:29 PM] Chris Eykamp: no, crashes are all fixed [3/2/2011 12:57:38 PM] buckyballreaction: except for that assertion [3/2/2011 12:57:43 PM] Chris Eykamp: yes, but that is mine [3/2/2011 12:57:57 PM] Chris Eykamp: I would like to know why that failed, but there's nothing important about it [3/2/2011 12:57:57 PM] buckyballreaction: yeah i haven't hit memor yproblems anymore [3/2/2011 12:58:07 PM] Chris Eykamp: just means I don't fully understand something [3/2/2011 12:58:29 PM] Chris Eykamp: it adds one poly per traingle at the beginning [3/2/2011 12:58:32 PM] buckyballreaction: (gdb) print vertCount $1 = 145 (gdb) print mesh.nverts $2 = 128 [3/2/2011 1:00:31 PM] Chris Eykamp: it found some dupes that we missed, obviously [3/2/2011 1:01:12 PM] Chris Eykamp: ah, here's why [3/2/2011 1:01:14 PM] Chris Eykamp: if (v[0] == x && (rcAbs(v[1] - y) <= 2) && v[2] == z) [3/2/2011 1:01:18 PM] Chris Eykamp: that's the criteria for a match [3/2/2011 1:01:25 PM] Chris Eykamp: ours is <= 1 [3/2/2011 1:01:29 PM] buckyballreaction: ah yes [3/2/2011 1:01:32 PM] Chris Eykamp: or == 0 [3/2/2011 1:01:45 PM] Chris Eykamp: so they're cutting our "precision" in half [3/2/2011 1:01:52 PM] Chris Eykamp: to reduce tiny triangles [3/2/2011 1:02:08 PM] buckyballreaction: let me try adjusting that [3/2/2011 1:02:16 PM] Chris Eykamp: we could probably skip our step of removing dupes and let this remove them all [3/2/2011 1:02:51 PM] Chris Eykamp: no sense in doing the same step twice [3/2/2011 1:04:01 PM] buckyballreaction: it don't see our step [3/2/2011 1:04:04 PM] buckyballreaction: anye more [3/2/2011 1:04:07 PM] buckyballreaction: did you move it? [3/2/2011 1:05:02 PM] Chris Eykamp: 812-824 BotnavMeshZone does same check [3/2/2011 1:05:04 PM] buckyballreaction: i see you added the offset, too [3/2/2011 1:05:22 PM] buckyballreaction: so then we shouldn't have negative [3/2/2011 1:05:29 PM] Chris Eykamp: yes, will make that dynamic in future, so different levels get shifted differently [3/2/2011 1:05:40 PM] Chris Eykamp: based on level bounds [3/2/2011 1:07:14 PM] Chris Eykamp: not sure what you mean by "our setup [3/2/2011 1:08:03 PM] buckyballreaction: where? [3/2/2011 1:09:09 PM] Chris Eykamp: [Wednesday, March 02, 2011 1:03 PM] buckyballreaction: <<< it don't see our stepsorry misread [3/2/2011 1:29:15 PM] buckyballreaction: well, removing the dupe code in BotNavMeshZone causes it to segfault [3/2/2011 1:31:09 PM] Chris Eykamp: oh, because we do that before triangle [3/2/2011 1:31:14 PM] Chris Eykamp: ok, well never mind [3/2/2011 1:31:59 PM] Chris Eykamp: we still should try to remove the dupe check, but it's not the real issue we're dealing with [3/2/2011 1:32:11 PM] buckyballreaction: but i commented out that piece in addVertex [3/2/2011 1:32:14 PM] buckyballreaction: still works fine [3/2/2011 1:32:22 PM] buckyballreaction: still lots of small tris [3/2/2011 1:32:28 PM] buckyballreaction: or smallish polys [3/2/2011 1:32:58 PM] Chris Eykamp: that check would have the effect of collapsing any tiny triangles... maybe it's good? [3/2/2011 1:33:22 PM] Chris Eykamp: but my assert should be removed as it's obviuosly wrong [3/2/2011 1:34:41 PM] buckyballreaction: this time i started in 6: http://96.2.123.136/upload/111snapshot8.png [3/2/2011 1:34:45 PM] buckyballreaction: and then added a bot [3/2/2011 1:34:55 PM] buckyballreaction: it went straight for the wall [3/2/2011 1:35:58 PM] buckyballreaction: oh and that has /showpaths on [3/2/2011 1:42:12 PM] Chris Eykamp: let's move on with detour [3/2/2011 3:27:24 PM] buckyballreaction: detour only handles polygons up to 6 vertices [3/2/2011 3:27:38 PM] buckyballreaction: In DetourNavMesh.h: // Maximum number of vertices per navigation polygon. static const int DT_VERTS_PER_POLYGON = 6; [3/2/2011 3:28:05 PM] Chris Eykamp: ok, we'll limit ours to 6 vertices [3/2/2011 3:28:15 PM] Chris Eykamp: I'm growing less enchanted [3/2/2011 3:28:21 PM] buckyballreaction: yep, me too [3/2/2011 3:28:35 PM] Chris Eykamp: but we've come this far... [3/2/2011 3:28:44 PM] Chris Eykamp: our fallback is to just use the triangles [3/2/2011 3:29:02 PM] Chris Eykamp: if we can get aggregation working faster, we can use aggregated zones [3/2/2011 3:29:03 PM] Chris Eykamp: with our current pathfinding [3/2/2011 3:29:20 PM] Chris Eykamp: if we get detour working, and it works, then great [3/2/2011 3:29:32 PM] Chris Eykamp: but we haven't lost everything if it doesn't work out [3/2/2011 3:38:10 PM] buckyballreaction: what is the radius of a ship? [3/2/2011 3:38:26 PM] buckyballreaction: 22? [3/2/2011 3:38:27 PM] buckyballreaction: 23? [3/2/2011 3:39:55 PM] buckyballreaction: ahh [3/2/2011 3:39:56 PM] buckyballreaction: 24 [3/2/2011 3:40:00 PM] buckyballreaction: collisionRadius [3/2/2011 4:30:29 PM] buckyballreaction: it compiles! [3/2/2011 4:30:53 PM] buckyballreaction: I have some rudimentary detour methods done, however, i need to plugin in the pathfinding one [3/2/2011 4:33:49 PM] Chris Eykamp: great [3/2/2011 4:34:18 PM] buckyballreaction: is the only thing called robot::findPath() ? [3/2/2011 4:34:27 PM] buckyballreaction: i think i may be able to plug into that [3/2/2011 4:35:02 PM] Chris Eykamp: I think so [3/2/2011 6:15:48 PM] Samuel Williams: [Wednesday, March 02, 2011 12:36 PM] buckyballreaction: <<< he keeps circling in 84That because of bitmatch, s_bots only go after enemies if it can see them, if s_bot can't see any enemy, the bot just circles where the location of enemy was last found. [3/2/2011 6:16:38 PM] Chris Eykamp: if I can't see him, he can't see me :) [3/2/2011 6:36:22 PM] Chris Eykamp: That's actually good to hear -- if the bots were unable navigate with those zones, it would imply a major bug in the wayfinding [3/2/2011 6:37:12 PM] Chris Eykamp: sam -- when you get the chance, would you take a look at that level that had a problem with the square zones, where there was a disontinuity in the zones through that long narrow corridor, and see how the zone generation looks with the triangle/recast scheme? [3/2/2011 6:37:16 PM] Samuel Williams: testing s_bot on capture the flag is the best option to test zones. [3/2/2011 6:37:25 PM] Chris Eykamp: yes -- the flag lures the bot out [3/2/2011 7:18:51 PM] buckyballreaction: hi [3/2/2011 7:19:02 PM] buckyballreaction: except I was in LOS of s_bot [3/2/2011 7:19:38 PM] buckyballreaction: I think it was stuck in the AStar:findPath() method and couldn't get past that zone [3/2/2011 7:23:45 PM] Samuel Williams: the problem with new level generator is it sometimes does not create zones. http://96.2.123.136/bitfighter/zap_d-20110302-1820352.png probably from my new prepareRenderingGeometry creating tiny holes on edges.. [3/2/2011 7:28:58 PM] Chris Eykamp: oh my. Do you think that disabling your optimization would fix it? [3/2/2011 7:30:04 PM] Samuel Williams: that might make it even slower without my optimizations, but visually my generated edges looks ok. [3/2/2011 7:30:29 PM] Chris Eykamp: oh, without doubt -- we want to keep your optimizations [3/2/2011 7:30:34 PM | Edited 7:30:48 PM] Samuel Williams: it is the triangulate that don't like even tinyest holes on the edges. [3/2/2011 7:30:48 PM] Chris Eykamp: yes, triangle does not like holes [3/2/2011 7:31:11 PM] Chris Eykamp: I just wanted to know how certain you are that it is holes that are the problem [3/2/2011 7:31:52 PM] Samuel Williams: it works before my new prepareRenderingGeometry [3/2/2011 7:31:58 PM] Chris Eykamp: ah, ok [3/2/2011 7:33:32 PM] Samuel Williams: not using my new prepareRenderingGeometry can cause triangulate to create even more tiny triangles and slow down (take longer) [3/2/2011 7:34:12 PM] Chris Eykamp: I want to convert triangle to work with ints [3/2/2011 7:34:19 PM] Chris Eykamp: that will help solve the small triangle problem [3/2/2011 7:34:32 PM] Chris Eykamp: you just can't make super small triangles with ints [3/2/2011 7:35:04 PM] buckyballreaction: good idea [3/2/2011 7:35:26 PM] buckyballreaction: almost done with the detour conversion [3/2/2011 7:35:40 PM] buckyballreaction: (then i'll see if it works...) [3/2/2011 7:37:08 PM] buckyballreaction: question: is the path list returned by AStar:findPath() just a list of Points, starting from the bot and going to the target? [3/2/2011 7:40:00 PM] Chris Eykamp: yes [3/2/2011 7:42:03 PM] Chris Eykamp: it basically represents a flight plan for the bot: if it flies from point-to-point along these points, it will get the (optimal, maybe) path to a given point. Of course, the bots make optimizations along the way... they look ahead on that waypoint list, and if they can see a more distant waypoint, they just head for that and ignore in-between points. Of course, our look ahead algo doesn't take width into consideration, so the ship tends to crash into projecting corners and such. [3/2/2011 7:42:33 PM] buckyballreaction: detour takes width into account [3/2/2011 7:42:37 PM] Chris Eykamp: yes [3/2/2011 7:43:02 PM] Chris Eykamp: without those in-flight optimizations, it is possible that ships would nto crash into things [3/2/2011 7:43:26 PM] Chris Eykamp: the path will include centroids of zones and the center of the border between zones [3/2/2011 8:09:16 PM] buckyballreaction: if i have a static member in a class, and it is used in several public methods of the same class, I get linker errors: undefined reference to `Zap::Detour::navQuery [3/2/2011 8:10:00 PM] Chris Eykamp: ugh... link errors [3/2/2011 8:10:11 PM] buckyballreaction: the fix is to initialize it in each method, but I can't do that: i can only initialize it the first time because I want to re-use the object in the other methods [3/2/2011 8:11:04 PM] Chris Eykamp: you only need to initialize it once [3/2/2011 8:11:34 PM] buckyballreaction: argh linker errors [3/2/2011 8:11:44 PM] buckyballreaction: and i though i was getting good at c++ eerrors [3/2/2011 8:12:52 PM] Chris Eykamp: I'm not sure how to fix it; It can be fixed [3/2/2011 8:13:26 PM] Chris Eykamp: I've had good luck googling the exact link error [3/2/2011 8:19:03 PM] Samuel Williams: [Wednesday, March 02, 2011 8:09 PM] buckyballreaction: <<< undefined reference to `Zap::Detour::navQueryare you trying to use extern Zap:((think))?? [3/2/2011 8:19:43 PM] buckyballreaction: no... I have found extern to be an evil hack that works only half the time [3/2/2011 8:20:06 PM] Samuel Williams: use extern outside namespace "Zap" [3/2/2011 8:20:19 PM] buckyballreaction: ok, i'll try that [3/2/2011 8:21:34 PM] buckyballreaction: but Zap::Detour::navQuery is a private static member and is only being used by methods internally to that class [3/2/2011 8:22:32 PM] Samuel Williams: not sure, i don't see any "Detour" [3/2/2011 8:22:43 PM] Samuel Williams: i may just not have the latest source.. [3/2/2011 8:28:04 PM] buckyballreaction: not checked in :) [3/2/2011 8:59:25 PM] buckyballreaction: ok [3/2/2011 8:59:26 PM] buckyballreaction: so [3/2/2011 9:00:09 PM] buckyballreaction: no luck so far with my linker error: how could I share an object among multiple static methods without declaring the object static? [3/2/2011 9:08:21 PM] Samuel Williams: are you sure all the files is included in build system? (makefile) [3/2/2011 9:13:20 PM] buckyballreaction: yup [3/2/2011 9:13:25 PM] buckyballreaction: i hate static now [3/2/2011 9:13:53 PM | Edited 9:14:41 PM] Samuel Williams: don't use static outside class/struct. [3/2/2011 9:14:41 PM] buckyballreaction: :) [3/2/2011 9:15:01 PM | Edited 9:15:16 PM] Samuel Williams: i was doing crazy (chat) edits... [3/2/2011 9:16:37 PM] Samuel Williams: detour a class, struct, or namespace? which file would navQuery be in? [3/2/2011 9:17:05 PM] Samuel Williams: is (detour) all inside Zap namespace? [3/2/2011 9:17:11 PM] buckyballreaction: let me try one thing, and when I fail, i'll show you code [3/2/2011 9:17:17 PM] buckyballreaction: it is a class in Zap [3/2/2011 9:17:35 PM] Samuel Williams: ok.. [3/2/2011 9:29:18 PM] buckyballreaction: ok, pushing code to my clone [3/2/2011 9:30:25 PM] buckyballreaction: here: http://code.google.com/r/buckyballreaction-bf5/source/list [3/2/2011 9:30:34 PM] buckyballreaction: changes: http://code.google.com/r/buckyballreaction-bf5/source/detail?r=1adcc2b40b0aeb14c6e5c840fce825826af9b290 [3/2/2011 9:30:52 PM] Samuel Williams: i will check now... [3/2/2011 9:31:16 PM] buckyballreaction: the problem is that outside methods need to call the new findPath() method - therefore it must be static [3/2/2011 9:31:25 PM] buckyballreaction: robot.cpp needs to call that as a static method [3/2/2011 9:32:13 PM] buckyballreaction: however, an internal object navQuery is populated (only once) by BotNavMeshZone and needs to be used by that static method - therefore it needs to be static (maybe not... but i don't know what to do) [3/2/2011 9:34:01 PM] buckyballreaction: i can move the members out of the Detour class [3/2/2011 9:35:04 PM] Samuel Williams: i don't know what is wrong, lets see if I can build it.. [3/2/2011 9:35:18 PM] buckyballreaction: it compiles fine, but doesn't link [3/2/2011 9:36:10 PM] buckyballreaction: i think i might actually like coding as a hobby - too bad i do it for work [3/2/2011 9:37:15 PM] buckyballreaction: if you clone my clone, do it from the tip, not that revision because i added some files afterwards [3/2/2011 9:37:16 PM] Samuel Williams: i have missing file error. fatal error C1083: Cannot open include file: 'Recast.h': No such file or directory [3/2/2011 9:37:22 PM] buckyballreaction: ah... [3/2/2011 9:37:39 PM] buckyballreaction: your project isn't properly set up to include the ../recast and ../detour directories [3/2/2011 9:42:58 PM] Samuel Williams: i got 11 link errors http://96.2.123.136/bitfighter/Output-Build.txt [3/2/2011 9:43:41 PM] buckyballreaction: unresolved external symbol "public: static class dtNavMeshQuery * Zap::Detour::navQuery" [3/2/2011 9:43:47 PM] buckyballreaction: that's the one! [3/2/2011 9:44:11 PM] buckyballreaction: ok, let me tell you what needs doing, and maybe you'll know a way to do it: [3/2/2011 9:45:37 PM] buckyballreaction: 1. build up navigation data once in BotNavMeshZone (navQuery object) 2. have several methods use that same data 3. call one of those methods from robot.cpp [3/2/2011 9:46:09 PM] Samuel Williams: ok.. [3/2/2011 9:46:16 PM] buckyballreaction: right now, robot.cpp calls the old static method findPath() [3/2/2011 9:46:27 PM] buckyballreaction: but that method didn't use an external object like navQuery [3/2/2011 9:48:05 PM] buckyballreaction: sorry, the old method is AStar:findPath(); [3/2/2011 9:53:21 PM] Samuel Williams: i know what going on, static needs to be initalized on .cpp file. dtNavMeshQuery* Detour::navQuery = NULL; dtNavMesh* Detour::navMesh = NULL; [3/2/2011 9:56:03 PM] buckyballreaction: where would that be put? [3/2/2011 9:56:06 PM] buckyballreaction: the header doesn't like it [3/2/2011 9:56:14 PM] buckyballreaction: i mean [3/2/2011 9:56:28 PM] Samuel Williams: namespace Zap { dtNavMeshQuery* Detour::navQuery = NULL; dtNavMesh* Detour::navMesh = NULL; ... } [3/2/2011 9:57:19 PM] Samuel Williams: anywhere inside Zap namespace, but not inside functions. [3/2/2011 9:57:43 PM] buckyballreaction: trying [3/2/2011 9:57:49 PM] Samuel Williams: put that in .cpp file [3/2/2011 9:59:16 PM] buckyballreaction: IT WORKED [3/2/2011 9:59:21 PM] buckyballreaction: i can't believe i miseed that [3/2/2011 10:00:12 PM] Samuel Williams: good, any static variable inside struct needs to be initalized in .cpp [3/2/2011 10:00:34 PM] buckyballreaction: thanks thanks thanks thanks thanks thanks thanks thanks thanks thanks thanks thanks thanks thanks thanks thanks thanks thanks thanks [3/2/2011 10:06:41 PM] buckyballreaction: all right it fails! [3/2/2011 10:06:44 PM] buckyballreaction: oh [3/2/2011 10:06:54 PM] buckyballreaction: i think it may be due to the offset... [3/2/2011 10:24:13 PM] buckyballreaction: ok, recast is finding the correct zones, which is good [3/2/2011 10:24:47 PM | Edited 10:24:55 PM] Samuel Williams: gooD. [3/2/2011 10:40:25 PM] buckyballreaction: ah yes [3/2/2011 10:40:30 PM] buckyballreaction: the y axis is flipped [3/2/2011 11:00:35 PM] buckyballreaction: i fi want to clean up my detour objects, should i do it in the destructor for BotNavMeshZone? [3/2/2011 11:02:43 PM] buckyballreaction: or better question: do the nav zones get cleaned up after each level, and if so, where is that done? [3/2/2011 11:03:55 PM] Samuel Williams: destructor is no use when using static variables and static functions inside structs. [3/2/2011 11:05:49 PM] Samuel Williams: there is a global list of all bot zones Vector > gBotNavMeshZones; // List of all our zones [3/2/2011 11:06:12 PM] Samuel Williams: it is cleared on Game::cleanUp() [3/2/2011 11:07:12 PM] Samuel Williams: ServerGame::cycleLevel() calls cleanUp() [3/2/2011 11:07:27 PM] buckyballreaction: excellent, thansk [3/2/2011 11:30:48 PM] buckyballreaction: i lied [3/2/2011 11:30:54 PM] buckyballreaction: the zone finding is not working [3/2/2011 11:31:02 PM] buckyballreaction: that's what's broken [3/3/2011 12:05:06 AM] karamazovapy: news flash - there's a developers group now [3/3/2011 12:05:13 AM] karamazovapy: I made it default for sam and zoomber [3/3/2011 12:05:25 AM] karamazovapy: watusimoto and raptor can select it as their default if they want to [3/3/2011 12:05:55 AM] buckyballreaction: ooo [3/3/2011 12:27:59 AM] buckyballreaction: well, i'm going to bed [3/3/2011 12:28:10 AM] buckyballreaction: i will check in my most recent changes/cleanup to my clone [3/3/2011 12:28:31 AM] buckyballreaction: the problem i see is with returning the correct zone with detour [3/3/2011 12:28:44 AM] buckyballreaction: not sure why it doesn't work - even with the offset [3/3/2011 12:29:24 AM] Chris Eykamp: beofore you go... [3/3/2011 12:29:28 AM] buckyballreaction: ok [3/3/2011 12:29:35 AM] Chris Eykamp: give me a 30 escond update of what you've done [3/3/2011 12:29:37 AM] Chris Eykamp: please [3/3/2011 12:29:55 AM] buckyballreaction: i have: 1. hooked into detour [3/3/2011 12:29:59 AM] buckyballreaction: tada! [3/3/2011 12:30:01 AM] buckyballreaction: ok for real [3/3/2011 12:30:16 AM] Chris Eykamp: does it work? [3/3/2011 12:30:21 AM] Chris Eykamp: or is that premature [3/3/2011 12:30:37 AM] buckyballreaction: doesn't work, but compiles [3/3/2011 12:30:54 AM] Chris Eykamp: ok, well that's a start [3/3/2011 12:31:08 AM] Chris Eykamp: i'm going to spend some time to see if I can make zone generation go faster [3/3/2011 12:31:12 AM] Chris Eykamp: without that.... [3/3/2011 12:31:15 AM] buckyballreaction: yeah [3/3/2011 12:31:20 AM] buckyballreaction: I created another class in BotNavMeshZone called 'Detour' [3/3/2011 12:31:38 AM] buckyballreaction: it has members: static dtNavMeshQuery* navQuery; static dtNavMesh* navMesh; static U16 findZone(const Point &point); static Vector findPath(S32 startZone, S32 targetZone, const Point &robotPos, const Point &targetPos); static void buildNavMeshData(rcPolyMesh* mesh); [3/3/2011 12:31:42 AM] Chris Eykamp: ok [3/3/2011 12:31:49 AM] Chris Eykamp: I'm not going to worry about that for the moment [3/3/2011 12:31:50 AM] buckyballreaction: so three methods [3/3/2011 12:31:56 AM] buckyballreaction: okey doke [3/3/2011 12:32:03 AM] Chris Eykamp: I have enough without that [3/3/2011 12:32:08 AM] buckyballreaction: :) [3/3/2011 12:32:09 AM] Chris Eykamp: ok, well have a good night [3/3/2011 12:32:17 AM] buckyballreaction: i'll be aroun for a few more [3/3/2011 12:32:23 AM] Chris Eykamp: ok [3/3/2011 12:32:25 AM] buckyballreaction: so i can at least get what I have checked in to my clone [3/3/2011 12:32:38 AM] Chris Eykamp: I just got home, and am having a little dinner [3/3/2011 12:32:42 AM] buckyballreaction: oh wow [3/3/2011 12:32:46 AM] buckyballreaction: long day at work? [3/3/2011 12:32:46 AM] Chris Eykamp: nothing serious for a while [3/3/2011 12:33:00 AM] Chris Eykamp: well, I was at a city meeting about planning for the next 30 ears [3/3/2011 12:33:04 AM] Chris Eykamp: years [3/3/2011 12:33:09 AM] buckyballreaction: cool [3/3/2011 12:33:19 AM] buckyballreaction: it's good to know cities think about the future [3/3/2011 12:33:31 AM] Chris Eykamp: probably, lots of good ideas, probably no followthrough [3/3/2011 12:34:10 AM] Chris Eykamp: everyone gets their hopes up, then we end up with a plan that expresses lofty ideals while the policies continue business as usual [3/3/2011 12:34:22 AM] buckyballreaction: ugh [3/3/2011 12:34:28 AM] Chris Eykamp: it's the natural cycle [3/3/2011 12:34:34 AM] Chris Eykamp: status quo always wins [3/3/2011 12:34:35 AM] buckyballreaction: that's why i believe in smaller communities [3/3/2011 12:35:02 AM] Chris Eykamp: but if they're full of old grumps, it can be even harder! [3/3/2011 12:35:11 AM] buckyballreaction: i guess that's true [3/3/2011 12:35:39 AM] buckyballreaction: old grumps or bob down the street that controls the only bar in town... [3/3/2011 12:35:52 AM] buckyballreaction: (i lived in wyoming once) [3/3/2011 12:35:53 AM] Chris Eykamp: come to portland; we have plenty of bars [3/3/2011 12:36:02 AM] Chris Eykamp: no shortage of bars here [3/3/2011 12:36:21 AM] buckyballreaction: you were considered a town in WY if you had a post office and a bar [3/3/2011 12:36:25 AM] Chris Eykamp: I can't even count the number in a 5 block radious [3/3/2011 12:36:45 AM] Chris Eykamp: in germany, you needed a brewery to be a city [3/3/2011 12:36:51 AM] buckyballreaction: haha [3/3/2011 12:37:02 AM] Chris Eykamp: or maybe a town; I forget [3/3/2011 12:37:27 AM] Chris Eykamp: now Portland has tons of breweries. [3/3/2011 12:37:37 AM] Chris Eykamp: almost as many as we have bars [3/3/2011 12:38:06 AM] Chris Eykamp: when I lived in SLC, as I recall, there were just 4 microbreweries in the entire state [3/3/2011 12:38:11 AM] Chris Eykamp: that's probably changed [3/3/2011 12:38:29 AM] Chris Eykamp: Utah probably has 5 now [3/3/2011 12:38:33 AM] Chris Eykamp: :) [3/3/2011 12:38:33 AM] buckyballreaction: haha [3/3/2011 12:38:48 AM] buckyballreaction: we have lots of meth labs [3/3/2011 12:38:59 AM] Chris Eykamp: we probably have you beat there, too [3/3/2011 12:39:11 AM] Chris Eykamp: Portland is the home of meth [3/3/2011 12:39:15 AM] Chris Eykamp: everyone else got it from us [3/3/2011 12:39:20 AM] buckyballreaction: i just found out about a house down the street that was a meth lab [3/3/2011 12:39:36 AM] Chris Eykamp: that's some serious stuff [3/3/2011 12:39:44 AM] buckyballreaction: apparently the law here condemns the house for like 10 years after it is taken down [3/3/2011 12:39:55 AM] Chris Eykamp: it's highly toxic [3/3/2011 12:39:56 AM] buckyballreaction: or maybe 5 years [3/3/2011 12:40:00 AM] buckyballreaction: crazy [3/3/2011 12:40:11 AM] Chris Eykamp: I'd prefer it be manufactured industrially and smuggled in [3/3/2011 12:40:13 AM] Chris Eykamp: a lot less mess all around [3/3/2011 12:40:22 AM] buckyballreaction: yeah [3/3/2011 12:40:44 AM] Chris Eykamp: don't smoke near that house [3/3/2011 12:40:51 AM] buckyballreaction: haha [3/3/2011 12:40:58 AM] Chris Eykamp: or use your cell phone [3/3/2011 12:41:11 AM] buckyballreaction: i should go back to chemistry... just because there is some really neat things you can do [3/3/2011 12:41:30 AM] Chris Eykamp: yes there are; most illegal [3/3/2011 12:41:38 AM] buckyballreaction: sadly illegal [3/3/2011 12:42:03 AM] Chris Eykamp: terrorism hysteria has not been kind to budding chemists [3/3/2011 12:42:07 AM] buckyballreaction: nope [3/3/2011 12:42:31 AM] Chris Eykamp: my father is a chemical engineer, and he did a lot of pretty dangerous stuff when he was a kid [3/3/2011 12:43:06 AM] Chris Eykamp: my kids will never know the joy of clearing the house with homemade tear gas [3/3/2011 12:43:11 AM] buckyballreaction: hahahaha [3/3/2011 12:43:32 AM] Chris Eykamp: they'll have to learn to program computer viruses instead [3/3/2011 12:43:55 AM] Chris Eykamp: it's the last frontier [3/3/2011 12:45:06 AM] Chris Eykamp: even rocketry is constrained [3/3/2011 12:45:13 AM] buckyballreaction: well, that issue is one that drives me crazy: forced safety/security [3/3/2011 12:45:24 AM] buckyballreaction: i believe in better responsibility instead [3/3/2011 12:45:37 AM] buckyballreaction: but i'd rather not get upset, too... [3/3/2011 12:45:54 AM] Chris Eykamp: easy to say until your kid gets maimed because of some idiot next door [3/3/2011 12:46:01 AM] Chris Eykamp: not everything can be compensated for [3/3/2011 12:46:02 AM] buckyballreaction: totally [3/3/2011 12:46:28 AM] buckyballreaction: yeah, the problem is the 'increased responsibility' would be a collective effort [3/3/2011 12:46:42 AM] buckyballreaction: and that type of effort goes against the status quo [3/3/2011 12:46:57 AM] Chris Eykamp: I agree with that notion in concept, but there also need to be some practical ground rules [3/3/2011 12:47:10 AM] buckyballreaction: yup [3/3/2011 12:47:25 AM] Chris Eykamp: in college a friend of a friend brought a whole carload of guns up from new jersey [3/3/2011 12:47:31 AM] buckyballreaction: driving is a good example [3/3/2011 12:47:32 AM] buckyballreaction: or guns [3/3/2011 12:47:40 AM] Chris Eykamp: he shot a shotgun out my freaking dorm room window\ [3/3/2011 12:48:03 AM] buckyballreaction: that's definitely not responsible [3/3/2011 12:48:13 AM] buckyballreaction: he had a gun license? [3/3/2011 12:48:24 AM] Chris Eykamp: who knows? he had a lot of guns [3/3/2011 12:48:26 AM] karamazovapy: was it loaded with marshmallow fluff? [3/3/2011 12:48:36 AM] karamazovapy: because I could support that [3/3/2011 12:48:43 AM] buckyballreaction: i always figure you have to pass the knowledge test and the idiot test [3/3/2011 12:48:44 AM] Chris Eykamp: we did go off to a quarry and shot some of the bigger artillery he had [3/3/2011 12:48:57 AM] Chris Eykamp: good luck implementing that! [3/3/2011 12:48:58 AM] buckyballreaction: but many states don't have an idiot test [3/3/2011 12:49:05 AM] buckyballreaction: if not all [3/3/2011 12:49:53 AM] Chris Eykamp: not to get too political, but I figure if you want to keep a loaded gun around the house, you've probably failed the idiot test [3/3/2011 12:50:02 AM] buckyballreaction: yup [3/3/2011 12:50:22 AM] Chris Eykamp: I would totally trust myself with just about any firearm [3/3/2011 12:50:39 AM] Chris Eykamp: but mostly because I'd be too paranoid to load it [3/3/2011 12:50:41 AM] buckyballreaction: but having it loaded is crazy, especially with kids [3/3/2011 12:50:46 AM] Chris Eykamp: yup [3/3/2011 12:50:57 AM] Chris Eykamp: luckily, that's not a huge issue in this neighborhood [3/3/2011 12:51:05 AM] Chris Eykamp: most of the parents are pretty sane [3/3/2011 12:51:42 AM] Chris Eykamp: though the guy up the street had a pretty big arsenal [3/3/2011 12:51:46 AM] Chris Eykamp: but no kids [3/3/2011 12:52:02 AM] Chris Eykamp: and he kept his assault rifles in a gun safe [3/3/2011 12:52:17 AM] buckyballreaction: they allow assault rifles in oregon? [3/3/2011 12:52:24 AM] buckyballreaction: i thought oregon was a bit gun-scared [3/3/2011 12:52:45 AM] Chris Eykamp: they didn't at the time :) [3/3/2011 12:52:52 AM] buckyballreaction: haha [3/3/2011 12:53:04 AM] Chris Eykamp: Once you leave Portland, Oregon is a pretty wild west kind of place [3/3/2011 12:53:29 AM] Chris Eykamp: you'd be hard pressed to tell the difference between eastern Oregon and Wyoming [3/3/2011 12:53:39 AM] Chris Eykamp: or ID [3/3/2011 12:54:01 AM] Chris Eykamp: we even had a city that made it _mandatory_ for every adult to own a weapon [3/3/2011 12:54:17 AM] buckyballreaction: haha [3/3/2011 12:54:17 AM] buckyballreaction: no way [3/3/2011 12:54:23 AM] Chris Eykamp: though I;m sure that didn't last [3/3/2011 12:54:39 AM] Chris Eykamp: I'll see if I can figure out which one it was. It was about 25 years ago, I think [3/3/2011 12:55:25 AM] Chris Eykamp: but, we're really two states rolled into one [3/3/2011 12:56:11 AM] Chris Eykamp: found this... [3/3/2011 12:56:12 AM] Chris Eykamp: http://www.northwestfirearms.com/legal-political/49613-south-dakota-introduces-law-makes-gun-ownership-mandatory-adults.html [3/3/2011 12:56:25 AM] Chris Eykamp: 2011 [3/3/2011 12:56:44 AM] Chris Eykamp: Not later than January 1, 2012, each citizen residing in the state of South Dakota who has attained the age of twenty-one years shall purchase or otherwise acquire a firearm suitable to their temperament, physical capacity, and personal preference sufficient to provide for their ordinary self-defense. [3/3/2011 12:56:51 AM] Chris Eykamp: HB 1237 [3/3/2011 12:57:06 AM] buckyballreaction: wow [3/3/2011 12:57:13 AM] Chris Eykamp: Sam's from SD [3/3/2011 1:02:10 AM] buckyballreaction: argh [3/3/2011 1:02:11 AM] buckyballreaction: ok [3/3/2011 1:02:23 AM] buckyballreaction: i pushed my changes to my clone [3/3/2011 1:02:24 AM] Chris Eykamp: well anyway [3/3/2011 1:02:40 AM] buckyballreaction: http://code.google.com/r/buckyballreaction-bf6/source/list [3/3/2011 1:02:42 AM] Chris Eykamp: ok. I'm going to finish this bottle of bourbon and clean my gun [3/3/2011 1:02:51 AM] buckyballreaction: haha [3/3/2011 1:02:51 AM] Chris Eykamp: but then I'll be back to the coding [3/3/2011 1:03:35 AM] buckyballreaction: so it all compiles, doesn't crash [3/3/2011 1:03:42 AM] Chris Eykamp: great [3/3/2011 1:03:46 AM] buckyballreaction: but detour doesn't return the proper zone for the path finding [3/3/2011 1:03:56 AM] Chris Eykamp: but it will [3/3/2011 1:04:17 AM] buckyballreaction: it can't seem to grab any polygons nearby the point it is given [3/3/2011 1:04:32 AM] buckyballreaction: and i'm too tired to debug it now... [3/3/2011 1:04:40 AM] Chris Eykamp: look at it tomorrow [3/3/2011 1:04:43 AM] buckyballreaction: but at least you or sam can pull if wanted [3/3/2011 1:04:52 AM] buckyballreaction: probably not you [3/3/2011 1:04:54 AM] buckyballreaction: :) [3/3/2011 1:04:55 AM] Chris Eykamp: ok; we'll see how my optimization goes [3/3/2011 1:05:21 AM] buckyballreaction: looking at detour - we could totally use integers everywhere as well [3/3/2011 1:05:34 AM] buckyballreaction: and there a few methods that do tile searching [3/3/2011 1:05:40 AM] buckyballreaction: and we only ever have one tile [3/3/2011 1:05:43 AM] Chris Eykamp: makes sense -- recast & detour were meant to work together [3/3/2011 1:06:17 AM] buckyballreaction: well good night [3/3/2011 1:06:41 AM] Chris Eykamp: night [3/3/2011 2:42:14 AM] Samuel Williams: Add level option SoccerPickup yes/no i just made a change to allow going back to old (can't pickup) soccer, and be compatible to existing version. Note that i added s2cSoccerCollide(bool enable) as a seperate RPC version 3, so it stays compatible, and old client version ignore it. [3/3/2011 5:40:07 AM] Chris Eykamp: needs more testing, but I speeded things up a little [3/3/2011 5:40:33 AM] Chris Eykamp: ctf1 used to take about 60000 ms, now takes 3000ms or so [3/3/2011 5:40:40 AM] Chris Eykamp: 10-20x improvement in speed [3/3/2011 5:40:57 AM] Chris Eykamp: still needs to be faster, but that helps a lot [3/3/2011 5:41:22 AM] Chris Eykamp: anyone know how to run a profiler? I'd like to know where it's still slow [3/3/2011 5:43:34 AM] Chris Eykamp: code pushed [3/3/2011 5:43:36 AM] Chris Eykamp: good night [3/3/2011 9:34:17 AM] buckyballreaction: wow, i register 20 times faster [3/3/2011 9:34:51 AM] buckyballreaction: one more order of magnitude to go [3/3/2011 10:00:49 AM] buckyballreaction: got profile data for you [3/3/2011 10:00:54 AM] buckyballreaction: i'll upload to sam's server [3/3/2011 10:05:32 AM] buckyballreaction: wait, i'm trying to filter it by function [3/3/2011 10:08:34 AM] buckyballreaction: http://96.2.123.136/upload/bitfighter_profile.zip [3/3/2011 10:08:35 AM] buckyballreaction: (thanks sam) [3/3/2011 10:09:09 AM] buckyballreaction: that is the full profile for bitfighter. all i did was start the game, opent the editor, open ctf3.level, /addbot, exit [3/3/2011 10:09:38 AM] buckyballreaction: looks liek the slow down is in getPolyMergeValue [3/3/2011 10:09:55 AM] buckyballreaction: i'm trying to get a more specific profile by function but not having luck yet [3/3/2011 10:11:02 AM] buckyballreaction: of use in deciphering the profile: http://www.cs.utah.edu/dept/old/texinfo/as/gprof.html#SEC5 [3/3/2011 10:26:50 AM] buckyballreaction: ok, here is a nice graphic that shows relative percentages of calls and call count in rcBuildPolyMesh: http://96.2.123.136/upload/profile_graphic.png [3/3/2011 10:27:56 AM] buckyballreaction: as you can see, the 1.3M calls to getPolyMergeValue take up half the time in rcBuildPolyMesh [3/3/2011 10:31:07 AM | Edited 10:31:14 AM] buckyballreaction: note that the percentages are in relation to the whole of my run of bitfighter [3/3/2011 10:33:21 AM] buckyballreaction: wait, i think i can get a better one that's easier to read and more comprehensive.... [3/3/2011 10:40:57 AM] buckyballreaction: graphic2 with alittle more detail: http://96.2.123.136/upload/profile_graphic2.png [3/3/2011 10:42:34 AM] buckyballreaction: also, here is the original callgrind file i used: http://96.2.123.136/upload/callgrind.out.7693.zip I used 'kcachegrind' to look at it with shiny graphics [3/3/2011 10:43:00 AM] buckyballreaction: note about graphic2: the arrows that point to dots with no function call represent skipped calls [3/3/2011 12:26:43 PM] buckyballreaction: forgot to mention that the callgrind file isn't complete until game exit - i had to cancel it after running the /addbot portion because the graphics were grinding it to a halt [3/3/2011 12:55:45 PM] Chris Eykamp: ok, good. 11% of time is spent calling max_element, and I should be able to significantly reduce that [3/3/2011 12:56:57 PM] Chris Eykamp: (or 43%, depending on which graph you look at) [3/3/2011 1:12:26 PM] buckyballreaction: 43% of the time spent in rcBuildPolyMesh [3/3/2011 1:12:42 PM] buckyballreaction: use the second graphic [3/3/2011 1:13:29 PM] Chris Eykamp: well, that's just sorting the same list over and over [3/3/2011 1:13:48 PM] Chris Eykamp: I'll try a different struct that can be sorted once and that should nearly eliminate that item [3/3/2011 1:14:12 PM] Chris Eykamp: this optimization I settled on is so superior to the original code [3/3/2011 1:14:20 PM] buckyballreaction: oh yeah [3/3/2011 1:14:36 PM] Chris Eykamp: not trying to toot my horn, but it was easy to implement, and eliminated a ton of pointless processing [3/3/2011 1:14:42 PM] buckyballreaction: :) [3/3/2011 1:14:53 PM] Chris Eykamp: I was pretty psyched when it worked [3/3/2011 1:15:01 PM] buckyballreaction: i would be too [3/3/2011 1:15:38 PM] Chris Eykamp: I was really sleepy, but could tell I was close, so I just kept pushing. I'm paying for it now, however [3/3/2011 1:15:48 PM] Chris Eykamp: didn't help my recovery [3/3/2011 1:16:19 PM] buckyballreaction: i saw the commits close to 4 in the morning.... [3/3/2011 1:16:24 PM] buckyballreaction: or maybe 3 your time [3/3/2011 1:17:13 PM] Chris Eykamp: don't remind me [3/3/2011 1:17:19 PM] buckyballreaction: ok [3/3/2011 1:18:28 PM] buckyballreaction: that rcSwap takes a good chunk, too [3/3/2011 1:18:38 PM] Chris Eykamp: that may be unavoidable... we'll see [3/3/2011 1:18:45 PM] Chris Eykamp: it's just swapping two ints [3/3/2011 1:19:06 PM] Chris Eykamp: maybe could be replaced with a macro to avoid a fn call [3/3/2011 1:19:15 PM] buckyballreaction: 8 million calls [3/3/2011 1:19:18 PM] buckyballreaction: wow [3/3/2011 1:19:18 PM] Chris Eykamp: or maybe there's a way to design around it [3/3/2011 1:19:30 PM] Chris Eykamp: 8M? seems like a lot [3/3/2011 1:19:41 PM] Chris Eykamp: actually, it's used all over [3/3/2011 1:19:43 PM] buckyballreaction: that's on ctf3 [3/3/2011 1:19:47 PM] Chris Eykamp: ah [3/3/2011 1:20:03 PM] Chris Eykamp: what was the total recast time on ctf3? as reported by bf? [3/3/2011 1:20:23 PM] buckyballreaction: uhh, it was 65 seconds under valgrind... [3/3/2011 1:20:29 PM] Chris Eykamp: no bad [3/3/2011 1:20:35 PM] Chris Eykamp: that's probably much slower than reality [3/3/2011 1:20:44 PM] Chris Eykamp: it was about 10mins on my machine under the old algo [3/3/2011 1:21:44 PM] buckyballreaction: well, on my work machine: Timings: 2 0 2 374 [3/3/2011 1:21:56 PM] buckyballreaction: on my home laptop it was something like 3 seconds [3/3/2011 1:22:04 PM] Chris Eykamp: ctf3?? [3/3/2011 1:22:08 PM] buckyballreaction: yeah [3/3/2011 1:22:12 PM] Chris Eykamp: really? [3/3/2011 1:22:21 PM] Chris Eykamp: well, that's x^2 for you [3/3/2011 1:22:31 PM] buckyballreaction: my work desktop is a beast of a beast [3/3/2011 1:23:03 PM] Chris Eykamp: well there's still room for improvement, but the big efficieicies have been taken [3/3/2011 1:23:22 PM] buckyballreaction: i'll say: it averages 20 times faster [3/3/2011 1:23:29 PM] Chris Eykamp: we can eliminate a few big memory allocations by removing things like tiling that we don't use [3/3/2011 1:23:48 PM] Chris Eykamp: but we're not going to get it another 20x faster [3/3/2011 1:24:01 PM] buckyballreaction: that's where i'm stuck with detour: it's searching the tiles for polygons [3/3/2011 1:24:09 PM] buckyballreaction: and no polygons are ever being returned [3/3/2011 1:34:43 PM] Chris Eykamp: well, they're there! [3/3/2011 1:35:01 PM] buckyballreaction: i know!!! [3/3/2011 1:35:11 PM] buckyballreaction: and i am getting to know gdb more than i ever wished [3/3/2011 1:36:25 PM] buckyballreaction: i just wish there was an easy way to view the complex object hierarchy while at a break point like there is in eclipse for java [3/3/2011 1:37:35 PM] Chris Eykamp: how do you do that with java? [3/3/2011 1:37:51 PM] Chris Eykamp: (what key?) [3/3/2011 1:38:00 PM] buckyballreaction: i've been spoiled with java... [3/3/2011 1:38:10 PM] buckyballreaction: mayeb a graphic will show you better. one moment... [3/3/2011 1:41:37 PM] buckyballreaction: http://help.eclipse.org/helios/topic/org.eclipse.jdt.doc.user/reference/views/variables/images/ref-variables_view.PNG [3/3/2011 1:41:59 PM] buckyballreaction: when you place a break point in eclipse, you can open the 'variables' view [3/3/2011 1:42:12 PM] Chris Eykamp: ah, I see [3/3/2011 1:42:13 PM] buckyballreaction: it has all the objects in memory loaded up and you can expand each one [3/3/2011 1:42:19 PM] buckyballreaction: and see the contents of evertyhing [3/3/2011 1:42:28 PM] buckyballreaction: that would be nice for detour... [3/3/2011 1:42:30 PM] Chris Eykamp: you can do that in VC++ as well [3/3/2011 1:42:50 PM] buckyballreaction: man, i'm missing out, then [3/3/2011 1:46:10 PM] Chris Eykamp: can you debug in Eclipse? [3/3/2011 1:46:36 PM] buckyballreaction: i have been having problems getting eclipse hooked in... [3/3/2011 1:46:47 PM] buckyballreaction: since i'm on linux, there are goofy Makefile problems [3/3/2011 1:46:56 PM] buckyballreaction: i just probably have to spend time doing it... [3/3/2011 2:30:02 PM] buckyballreaction: it works!!! [3/3/2011 2:30:07 PM] buckyballreaction: i got it hooked into eclipse [3/3/2011 2:32:35 PM] Chris Eykamp: excellent! [3/3/2011 2:34:15 PM] buckyballreaction: does vc++ follow pointers to their objects? [3/3/2011 2:34:55 PM] Chris Eykamp: I think so, not positive what you mean; you can see object contents [3/3/2011 2:35:32 PM] buckyballreaction: i can object contents, but when an object contains a pointer to another object, i can't pull up that child object for some reason [3/3/2011 2:35:38 PM] buckyballreaction: in eclipse [3/3/2011 2:36:17 PM] Chris Eykamp: ah, yes, I think so, not posiive [3/3/2011 2:47:42 PM] buckyballreaction: did we ever determin if the 'z' coordinate needs to be zero or one? [3/3/2011 2:49:40 PM] Chris Eykamp: we did no [3/3/2011 2:50:02 PM] buckyballreaction: maybe that's my problem... verts are coming back as x, 1, y [3/3/2011 2:50:10 PM] buckyballreaction: and i'm sending in x, 0, y [3/3/2011 4:18:12 PM] karamazovapy: any of you have first graders? get your kids' teachers a present at the end of the year. they deserve it. [3/3/2011 4:19:01 PM] Chris Eykamp: not any more [3/3/2011 4:19:07 PM] Chris Eykamp: besides, my kids are angels [3/3/2011 4:19:26 PM] karamazovapy: of course they are...when they're not in a group of two dozen! [3/3/2011 4:19:48 PM] Chris Eykamp: that's why we stopped after two [3/3/2011 4:19:59 PM] karamazovapy: good call on that [3/3/2011 4:20:19 PM] karamazovapy: now I've taught preschool, kindergarten, first grade, third, fourth, fifth, seventh, and highschool [3/3/2011 4:20:31 PM] Chris Eykamp: great [3/3/2011 4:20:34 PM] Chris Eykamp: music? [3/3/2011 4:20:51 PM] karamazovapy: mostly para professional and full class. I'm teaching gradeschool music next week [3/3/2011 4:21:05 PM] buckyballreaction: that's what my mom does: music [3/3/2011 4:21:07 PM] Chris Eykamp: ok kids, everyone blow into your recorders AS HARD AS YOU CAN! [3/3/2011 4:21:16 PM] buckyballreaction: haha [3/3/2011 4:21:37 PM] karamazovapy: they would totally get lightheaded and pass out [3/3/2011 4:22:18 PM] Chris Eykamp: that's the idea [3/3/2011 4:22:24 PM] Chris Eykamp: ah, peace at last [3/3/2011 4:22:33 PM] karamazovapy: I had a crazy day today [3/3/2011 4:24:40 PM] karamazovapy: when a first grade girl has two bathroom accidents in one day, my first thought is emotional or physical abuse at home [3/3/2011 4:25:27 PM] buckyballreaction: sad [3/3/2011 4:25:42 PM] karamazovapy: who knows [3/3/2011 4:25:55 PM] Chris Eykamp: maybe a driniking problem? [3/3/2011 4:26:16 PM] karamazovapy: all I know for sure is that it was a rough day [3/3/2011 4:26:30 PM] buckyballreaction: i respect you for being a teacher [3/3/2011 4:26:41 PM] karamazovapy: I'm just a sub [3/3/2011 4:26:49 PM] karamazovapy: but it's not easy! [3/3/2011 4:26:55 PM] buckyballreaction: nope [3/3/2011 4:42:30 PM] buckyballreaction: i wonder what it would take to get recast/detour working with negative numbers... [3/3/2011 9:36:25 PM] Chris Eykamp: worked on this for a quick bit when I got home, and I think I've improved the speed a bit [3/3/2011 9:36:33 PM] Chris Eykamp: this is likely as fast as it's going to get [3/3/2011 9:36:56 PM] Chris Eykamp: there are a few tiny additional efficiencies that might be gained, but we're at the point of diminishing returns [3/3/2011 9:38:04 PM] Chris Eykamp: Note that it still feels slow because it takes a long while to assmeble and analyze the zones once they come back from recast; this can no doube be made more efficient, or it may be possible to eliminate it altogether if/when we get detour working, as the data is already in the proper format [3/3/2011 9:38:34 PM] Chris Eykamp: I haven't tried this on very many levels yet, but ctf1 & 3 loaded fine and had good time [3/3/2011 9:40:19 PM] Chris Eykamp: also, depending on what detour needs, be might be able to reduce the memory requirements [3/3/2011 9:40:27 PM] Chris Eykamp: dinner guests just arrived, so I'll tune in later [3/3/2011 11:48:07 PM] buckyballreaction: i slayed my first SPAM bot that had registered the same account a few weeks ago [3/3/2011 11:58:18 PM] Chris Eykamp: ctf1 timings: 31 0 47 203 [3/3/2011 11:59:05 PM] buckyballreaction: that's great! [3/4/2011 12:00:41 AM] buckyballreaction: i'm almost there with detour... then i can start optimizations [3/4/2011 12:01:23 AM] buckyballreaction: right now i have to work around the following: normally when recast runs, it produces a second mesh called detailPolyMesh [3/4/2011 12:01:30 AM] buckyballreaction: we don't do that [3/4/2011 12:01:56 AM] buckyballreaction: that detail poly mesh basically re-breaks up the polygons into triangles again for fast point searching down the road [3/4/2011 12:02:22 AM] buckyballreaction: and detour uses that [3/4/2011 12:05:28 AM] Chris Eykamp: triangle->poly->triangle? [3/4/2011 12:05:35 AM] buckyballreaction: yeah [3/4/2011 12:05:37 AM] buckyballreaction: it's weird [3/4/2011 12:05:38 AM] Chris Eykamp: why not feed detour the triangles [3/4/2011 12:05:47 AM] Chris Eykamp: and skip poly aggregation? [3/4/2011 12:05:54 AM] Chris Eykamp: we've already got our detail mesh! [3/4/2011 12:06:27 AM] Chris Eykamp: have you checked in any of your detour stuff? [3/4/2011 12:06:32 AM] buckyballreaction: i makes me feel like i'm going in circles [3/4/2011 12:06:40 AM] buckyballreaction: or trangles... [3/4/2011 12:07:07 AM] buckyballreaction: i have another check-in to do with some recent changes to get me further [3/4/2011 12:07:26 AM] Chris Eykamp: maybe we can look at detour for some tips to improve our current nav algorithm -- that works pretty well, except for considering the ship width and a few other details [3/4/2011 12:07:51 AM] Chris Eykamp: though I am attracted to any system that can read the recast polys directly without further processing [3/4/2011 12:11:28 AM] buckyballreaction: ok, all my latest changes are now checked into my clone: http://code.google.com/r/buckyballreaction-bf6/source/list [3/4/2011 12:11:47 AM] buckyballreaction: if you decide to take a look, i'll tell exactly where I am [3/4/2011 12:14:15 AM] Chris Eykamp: I'm writing to the author of recast with my speed improvements [3/4/2011 12:14:25 AM] buckyballreaction: oh good! [3/4/2011 12:14:36 AM] buckyballreaction: i have been reading his blog [3/4/2011 12:14:45 AM] buckyballreaction: and he is working on other speed improvements, too [3/4/2011 12:15:00 AM] buckyballreaction: but stuff that is 3d specific [3/4/2011 12:17:12 AM] buckyballreaction: now that i got eclipse working, debugging isn't as painful [3/4/2011 12:17:21 AM] buckyballreaction: but still painful when compared to java :) [3/4/2011 12:30:48 AM] buckyballreaction: i'm actually brain dead tonight [3/4/2011 12:32:14 AM] Chris Eykamp: I know the feeling [3/4/2011 12:32:22 AM] Chris Eykamp: I'm going to check out your stuff [3/4/2011 12:32:35 AM] Chris Eykamp: what do I do -- create a separate repo? [3/4/2011 12:32:51 AM] buckyballreaction: yes [3/4/2011 12:32:58 AM] buckyballreaction: clone to a different directory [3/4/2011 12:33:10 AM] Chris Eykamp: does it include the stuff I checked in earlier this evening? [3/4/2011 12:33:56 AM] buckyballreaction: nope, but I can rebase real quick [3/4/2011 12:34:38 AM] Chris Eykamp: Either way... [3/4/2011 12:34:48 AM] Chris Eykamp: I'm actually checking out with the cmd line [3/4/2011 12:34:53 AM] buckyballreaction: woo hoo! [3/4/2011 12:36:50 AM] buckyballreaction: here is where I left off: 1. BotNavMeshZone.cpp:1442 (Detour::findPath) - navQuery->findNearestPolyInTile returns the poly reference, but isn't working. 2. follow to DetourNavMeshQuery.cpp:415 (dtNavMeshQuery::findNearestPolyInTile) - closestPointOnPolyInTile() is the method that is failing now. [3/4/2011 12:37:23 AM] buckyballreaction: if you make changes, just send me a patch and I can do all the rebasing [3/4/2011 12:37:46 AM] buckyballreaction: (if you don't want to deal with the pulling/merging) [3/4/2011 12:37:48 AM] Chris Eykamp: so, things should be hooked up and should be all set to work... except that it doesn't? [3/4/2011 12:37:54 AM] buckyballreaction: yep! [3/4/2011 12:37:58 AM] buckyballreaction: it compiles cleanly [3/4/2011 12:38:07 AM] buckyballreaction: a path is even shown on the map [3/4/2011 12:38:21 AM] Chris Eykamp: the right path? [3/4/2011 12:38:23 AM] buckyballreaction: it's not too clean an implementation yet - still have to clean up some data [3/4/2011 12:38:24 AM] buckyballreaction: nope [3/4/2011 12:38:37 AM] buckyballreaction: the problem is using the zone finding method [3/4/2011 12:38:58 AM] Chris Eykamp: is that a detour method? [3/4/2011 12:39:06 AM] buckyballreaction: I made a wrapper for it [3/4/2011 12:39:20 AM] buckyballreaction: it's in BotNavMeshZone.cpp called Detour::findZone() [3/4/2011 12:40:17 AM] Chris Eykamp: Detour::buildNavMeshData(&mesh) works? [3/4/2011 12:40:34 AM] buckyballreaction: seems to [3/4/2011 12:40:40 AM] buckyballreaction: all the data populates nicely [3/4/2011 12:41:23 AM] buckyballreaction: i see all the polygons references and pulled out within a radius specified in findZone(), so I assume it's working [3/4/2011 12:42:06 AM] buckyballreaction: oops, i think i found something... [3/4/2011 12:42:14 AM] Chris Eykamp: so findzone is the first obvious point of failure; everyuthgin apparently works til there? [3/4/2011 12:42:34 AM] Chris Eykamp: this needs some work to build for msvc++ [3/4/2011 12:42:42 AM] buckyballreaction: :( [3/4/2011 12:42:44 AM] buckyballreaction: sorry [3/4/2011 12:42:52 AM] buckyballreaction: it's builds no warnings in linux :) [3/4/2011 12:43:00 AM] Chris Eykamp: 56 errors, and I haven't even built yet! [3/4/2011 12:43:06 AM] buckyballreaction: what!? [3/4/2011 12:43:13 AM] buckyballreaction: same was able to build it... [3/4/2011 12:43:15 AM] Chris Eykamp: mostly it is undefined names [3/4/2011 12:43:15 AM] buckyballreaction: sam [3/4/2011 12:43:16 AM] buckyballreaction: oh [3/4/2011 12:43:19 AM] buckyballreaction: i know why [3/4/2011 12:43:31 AM] buckyballreaction: i moved the headers into BotNavMeshZone.h [3/4/2011 12:43:36 AM] buckyballreaction: detour and recast headers [3/4/2011 12:43:41 AM] buckyballreaction: and didn't use the relative path [3/4/2011 12:43:51 AM] buckyballreaction: i.e. "recast.h" instead of "../recast/recast.h" [3/4/2011 12:44:13 AM] buckyballreaction: so you have to either make them relative again or add the two folders to your include path [3/4/2011 12:44:55 AM] buckyballreaction: I don't mind either way but the convention I see in linux is to use the include folder instead of always putting relative paths everywhere [3/4/2011 12:44:58 AM | Edited 12:45:11 AM] Chris Eykamp: that's probably it [3/4/2011 12:46:19 AM] buckyballreaction: haha, i got it work a bit better.... [3/4/2011 12:47:12 AM] Chris Eykamp: still lots of problems [3/4/2011 12:47:22 AM] Chris Eykamp: but probably related to ... something [3/4/2011 12:47:49 AM] buckyballreaction: oh [3/4/2011 12:47:55 AM] buckyballreaction: you'll have to add all the detour classes, too [3/4/2011 12:48:02 AM] buckyballreaction: in the compile path [3/4/2011 12:48:46 AM] Chris Eykamp: where is dtMeshTile defined? [3/4/2011 12:49:18 AM] buckyballreaction: detourNavMesh.h [3/4/2011 12:49:27 AM] buckyballreaction: DetourNavMesh.h [3/4/2011 12:50:01 AM] buckyballreaction: everything is properly included in BotNavMeshZone.h at the top if you have '../detour' and '../recast' added to your project include path [3/4/2011 12:50:10 AM] Chris Eykamp: ah, only added recast [3/4/2011 12:51:16 AM] Chris Eykamp: I think we'll probably just suck in the critical routines from recast into the main bf code, and ditch recast as a separate entity [3/4/2011 12:51:25 AM] Chris Eykamp: because we're really not using much [3/4/2011 12:51:57 AM] Chris Eykamp: that fixed it [3/4/2011 12:52:08 AM] buckyballreaction: i agree [3/4/2011 12:52:42 AM] Chris Eykamp: I'll be interested to see how detour works [3/4/2011 12:53:13 AM] Chris Eykamp: see how much improvemt it offers over our stuff [3/4/2011 12:53:22 AM] Chris Eykamp: I really like our zones, thoguh [3/4/2011 12:54:04 AM] buckyballreaction: i foudna small bug in my implementation already if you want to add that real quick... [3/4/2011 12:54:09 AM] Chris Eykamp: sure [3/4/2011 12:54:23 AM] buckyballreaction: botmeshnavzone 1466 [3/4/2011 12:54:25 AM] buckyballreaction: and 1477 [3/4/2011 12:54:33 AM] buckyballreaction: shoult be: F32 startPos[3] = {robotPos.x + RECAST_OFFSET, 1, robotPos.y + RECAST_OFFSET}; F32 endPos[3] = {targetPos.x + RECAST_OFFSET, 1, targetPos.y + RECAST_OFFSET}; [3/4/2011 12:54:43 AM] buckyballreaction: (forgot the offset) [3/4/2011 12:55:14 AM] buckyballreaction: that seems to help a little.... in fact zone finding might be fixed now [3/4/2011 12:55:39 AM] Chris Eykamp: my line numbers aer different [3/4/2011 12:55:52 AM] Chris Eykamp: I see [3/4/2011 12:55:57 AM] buckyballreaction: 1462 [3/4/2011 12:56:01 AM] buckyballreaction: in Detour::findPath [3/4/2011 12:57:07 AM] Chris Eykamp: can I check in to this project? probably not [3/4/2011 12:57:21 AM] buckyballreaction: you can commit locally [3/4/2011 12:57:28 AM] Chris Eykamp: well, sure [3/4/2011 12:57:34 AM] buckyballreaction: i couldn't find any place to allow you to push though [3/4/2011 12:57:37 AM] buckyballreaction: i did search [3/4/2011 12:57:47 AM] Chris Eykamp: I guess you can check out from my local checkin [3/4/2011 12:57:54 AM] buckyballreaction: yup :) [3/4/2011 1:01:58 AM] buckyballreaction: argh, i'm having a hard time doing addition in my head [3/4/2011 1:02:08 AM] Chris Eykamp: bed time? [3/4/2011 1:02:30 AM] Chris Eykamp: I can't run this thing... it keeps trying to start the master, which wasn't even built [3/4/2011 1:02:57 AM] buckyballreaction: i don;t know about that [3/4/2011 1:03:07 AM] buckyballreaction: i didn't touch anything with the vc++ project [3/4/2011 1:04:18 AM] Chris Eykamp: no blaming you; it can get funny sometimes [3/4/2011 1:04:50 AM] buckyballreaction: don't worry, i'll take blame if it's mine. i was just trying to be informational :) [3/4/2011 1:05:37 AM] buckyballreaction: wow, i really like the zones [3/4/2011 1:05:45 AM] buckyballreaction: i just did ctf3 again [3/4/2011 1:05:49 AM] buckyballreaction: looks relaly nice [3/4/2011 1:06:46 AM] Chris Eykamp: I agree [3/4/2011 1:06:58 AM] Chris Eykamp: and looks are everything with invisible zones! [3/4/2011 1:08:54 AM] buckyballreaction: so i notice that the timings return quick enough, but there is still a hanging of bitfighter afterwards for a few seconds [3/4/2011 1:09:20 AM] buckyballreaction: this is ctf3 [3/4/2011 1:09:33 AM] Chris Eykamp: yes; that's the post processing to convert the zones into our format. completely unoptimized, perhaps totally unneeded [3/4/2011 1:09:49 AM] buckyballreaction: ahh [3/4/2011 1:09:49 AM] Chris Eykamp: if we use detour, we can just skip that step altogether [3/4/2011 1:12:13 AM] Chris Eykamp: TNLAssert(!status & DT_FAILURE ... [3/4/2011 1:12:23 AM] Chris Eykamp: is that !(status & DT_FAILURE [3/4/2011 1:12:29 AM] buckyballreaction: where? [3/4/2011 1:12:34 AM] Chris Eykamp: or (!status) & DT_FAILURE [3/4/2011 1:12:44 AM] Chris Eykamp: botnavmeshzone.cpp 1480 [3/4/2011 1:13:38 AM] Chris Eykamp: where precedence is not totally obvious, I like to use ()s. C++ precedence is very complex and confusing [3/4/2011 1:13:56 AM] buckyballreaction: yes me too, it is probably a typo on my part [3/4/2011 1:14:19 AM] Chris Eykamp: no worries -- just looking because I'm getting a build error there (though didin't before...) [3/4/2011 1:14:26 AM] Samuel Williams: is probably !(status & DT_FAILURE) [3/4/2011 1:14:32 AM] buckyballreaction: it's supposed to be: !(status&DT_FAILURE) [3/4/2011 1:14:37 AM] Chris Eykamp: that would be reasonable [3/4/2011 1:14:52 AM] buckyballreaction: sorry, i was verifying it from the example i found from the ogre forums [3/4/2011 1:15:04 AM] Chris Eykamp: !(status & DT_FAILURE) && !(status & DT_STATUS_DETAIL_MASK) [3/4/2011 1:15:06 AM] Chris Eykamp: right? [3/4/2011 1:15:19 AM] Chris Eykamp: that's find [3/4/2011 1:15:21 AM] buckyballreaction: correct [3/4/2011 1:15:48 AM] Chris Eykamp: that line is giving me this warning... [3/4/2011 1:15:49 AM] Chris Eykamp: warning C4806: '&' : unsafe operation: no value of type 'bool' promoted to type 'const unsigned int' can equal the given constant [3/4/2011 1:15:57 AM] Chris Eykamp: any idea what that could mean? [3/4/2011 1:16:00 AM] buckyballreaction: ?? [3/4/2011 1:16:21 AM] Samuel Williams: is status a bool or integer? [3/4/2011 1:16:25 AM] Chris Eykamp: status and DT_ are unsigned ints [3/4/2011 1:16:36 AM] buckyballreaction: static const unsigned int DT_FAILURE = 1u << 31 [3/4/2011 1:16:51 AM] Chris Eykamp: status is a dtStatus, which is a typedef for unsigned int [3/4/2011 1:17:36 AM] Chris Eykamp: aha [3/4/2011 1:17:46 AM] Chris Eykamp: Adding the ()s fixes the warning [3/4/2011 1:17:51 AM] buckyballreaction: oh good [3/4/2011 1:17:56 AM] buckyballreaction: so that's funny [3/4/2011 1:18:01 AM] buckyballreaction: gcc doesn't throw the warning [3/4/2011 1:18:04 AM] Chris Eykamp: even the compiler is confused! [3/4/2011 1:18:12 AM] buckyballreaction: i wonder if it considered a different precedence [3/4/2011 1:18:17 AM] buckyballreaction: but it shouldn't have [3/4/2011 1:18:50 AM] buckyballreaction: sorry for the messy code.. i'm still getting the hang of c++ [3/4/2011 1:20:36 AM] buckyballreaction: man, i really gotta hit the sack [3/4/2011 1:20:41 AM] buckyballreaction: everything is start to get fuzzy [3/4/2011 1:20:53 AM] buckyballreaction: any last questions? [3/4/2011 1:20:57 AM] Chris Eykamp: ok, good nithg [3/4/2011 1:21:17 AM] Chris Eykamp: I'm going to be early myself, trying to get ahead of this neverending sick [3/4/2011 1:21:34 AM] buckyballreaction: it's amazing how much one good night's sleep helps a disease [3/4/2011 1:21:51 AM] buckyballreaction: it just requries discipline :) [3/4/2011 1:21:54 AM] Chris Eykamp: yes [3/4/2011 1:22:13 AM] buckyballreaction: too many neat things to do... [3/4/2011 1:22:20 AM] buckyballreaction: ok, good night for real now [3/4/2011 12:05:38 PM] buckyballreaction: guten morgen [3/4/2011 12:23:13 PM] Chris Eykamp: hi [3/4/2011 12:25:42 PM] buckyballreaction: morning [3/4/2011 12:33:04 PM] Chris Eykamp: I didn't make it ver far last night; decided sleep was more important [3/4/2011 12:33:13 PM] buckyballreaction: good [3/4/2011 12:33:24 PM] buckyballreaction: time to get healthy [3/4/2011 12:33:35 PM] Chris Eykamp: way past time! [3/4/2011 1:42:16 PM] Chris Eykamp: in your experience with databases, can you get a performance boost by deleteing then recreating an index, or is that just an old wives' tail? [3/4/2011 1:46:05 PM] buckyballreaction: i have never heard that before [3/4/2011 1:46:40 PM] Chris Eykamp: I think it sounds suspiciously like horsecrap [3/4/2011 1:59:19 PM] buckyballreaction: yeah... [3/4/2011 1:59:34 PM] buckyballreaction: maybe it was from back in the day when databases were lots and lots of files [3/4/2011 1:59:47 PM] buckyballreaction: so deleting an index would get rid of a fragmented file [3/4/2011 2:01:20 PM] buckyballreaction: but i think now all database load all indexes to memory upon start-up [3/4/2011 2:02:49 PM] Chris Eykamp: well can't hurt. That's why I throw salt over my sholulder when I see a black cat, and walk backwards out my north-facing door [3/4/2011 2:04:47 PM] buckyballreaction: you're from the east? [3/4/2011 2:04:57 PM] buckyballreaction: because i learned all the superstitions back in connecticut [3/4/2011 2:06:25 PM] buckyballreaction: my house even had 13 steps for every staircase (the only with 12 was scary to climb), it had crooked doorway tops and cross-and-bible doors [3/4/2011 2:07:18 PM] Chris Eykamp: now your're talking [3/4/2011 2:26:18 PM] Chris Eykamp: @sam and @bbr -- what do you think about commenting out the recast stuff, and doing a 15a release this weekend. The alternative would be to wait until the new zone stuff is done, then release with that. Thoughts? [3/4/2011 2:27:11 PM] buckyballreaction: i'm fine with whatever... [3/4/2011 2:27:16 PM] buckyballreaction: wasn't it going to be 016? [3/4/2011 2:27:35 PM] Chris Eykamp: depends on whether it's still compatible with 015 [3/4/2011 2:27:46 PM] Chris Eykamp: I think it is; sam may have other information [3/4/2011 2:28:00 PM] buckyballreaction: i thought i saw a few commits with messages like "since we're breaking compatibility anyways..." [3/4/2011 2:28:42 PM] Chris Eykamp: I'm not sure. It's easy enough to test; let's hear what sam has to say [3/4/2011 2:28:50 PM] Chris Eykamp: I know I haven't broken compatibility [3/4/2011 3:15:42 PM] Chris Eykamp: oh, I also forgot to mention; lsat night, as an experiement, I removed the "q" parameter from triangle, to see what effect that would have on the overall process. It seemed to increase the speed of the recast portion significantly, perhaps by reducing the number of input triangles (I tested only on ctf3). On the other hand, the zones seemed of lesser quality -- there were more long slivery zones that probably do not lead to good nave. But.. they bots did not pick obviously wrong routes, so maybe that concern is only theoretical. We need to do more testing on this as we move forward [3/4/2011 3:18:55 PM] buckyballreaction: well, if you want, i could make a temporary branch back a ways and translplant all the non-recast changes since then [3/4/2011 3:19:02 PM] buckyballreaction: then we could do the releas off of that branch [3/4/2011 3:19:13 PM] buckyballreaction: then merge it back in [3/4/2011 3:19:41 PM] Chris Eykamp: how's that? [3/4/2011 3:19:48 PM] Chris Eykamp: menaing I didn't follow [3/4/2011 3:20:02 PM] buckyballreaction: sorry, i guess i switched topics a but [3/4/2011 3:20:05 PM] buckyballreaction: bit [3/4/2011 3:20:32 PM] buckyballreaction: instead of reverting all of our recast changes, we can just make it a branch [3/4/2011 3:20:32 PM] Chris Eykamp: oh, as a way of getting rid of recast for a 015a release? [3/4/2011 3:20:37 PM] buckyballreaction: yes [3/4/2011 3:21:00 PM] Chris Eykamp: that would work, except sam may have made some more recent changes [3/4/2011 3:21:06 PM] buckyballreaction: then when everything is normalized again, we can merge the branches [3/4/2011 3:21:06 PM] buckyballreaction: yes [3/4/2011 3:21:28 PM] buckyballreaction: i'm talking about making a branch off from before we started playing with the zones [3/4/2011 3:21:39 PM] buckyballreaction: and then transplanting sam's changes into it [3/4/2011 3:21:50 PM] Chris Eykamp: actually, it might be good to include the current recast zone gen; It's not perfect, but it performs pretty well generally. [3/4/2011 3:21:56 PM] buckyballreaction: ok [3/4/2011 3:21:59 PM] Chris Eykamp: and it's fast enough for most levels [3/4/2011 3:22:07 PM] buckyballreaction: i agree [3/4/2011 3:22:25 PM] Chris Eykamp: it does not work on geowar, thoguh, and we shoudl probably get that resolved [3/4/2011 3:22:41 PM] buckyballreaction: yes, and wasn't there another level that it failed on. one that sam mentioned/ [3/4/2011 3:22:42 PM] buckyballreaction: ? [3/4/2011 3:22:55 PM] Chris Eykamp: perhaps there was [3/4/2011 3:23:05 PM] Chris Eykamp: he would know [3/4/2011 3:23:27 PM] Chris Eykamp: anyway, try the latest code, but remove the "q" option and marvel at the speed [3/4/2011 3:24:05 PM] buckyballreaction: ok [3/4/2011 3:25:10 PM] Chris Eykamp: and lament the sliver zones [3/4/2011 3:27:26 PM] buckyballreaction: orig: Timings: 3 0 3 21 [3/4/2011 3:27:40 PM] buckyballreaction: no q: Timings: 3 0 1 4 [3/4/2011 3:28:09 PM] buckyballreaction: without q, there are fewer zones, but very skinny ones [3/4/2011 3:28:17 PM] buckyballreaction: that was ctf3 [3/4/2011 3:28:25 PM] Chris Eykamp: what?!? [3/4/2011 3:28:37 PM] Chris Eykamp: clearly, using your machine is the way to go [3/4/2011 3:28:41 PM] buckyballreaction: haha [3/4/2011 3:28:56 PM] buckyballreaction: yeah, um... i wasn't kidding when i said it was a monster [3/4/2011 3:29:11 PM] Chris Eykamp: so the question really is do the sliver zones generate bad paths? [3/4/2011 3:29:22 PM] buckyballreaction: well, i don't think so [3/4/2011 3:29:31 PM] buckyballreaction: because when you get down to the math [3/4/2011 3:29:33 PM] Chris Eykamp: or, really, do they generate paths bad enough that a player would question them [3/4/2011 3:29:46 PM] Chris Eykamp: the bots just need to look reasonable [3/4/2011 3:30:27 PM] buckyballreaction: find a point within a sliver zone should not be any slower than one in a non sliver zone [3/4/2011 3:30:50 PM] Chris Eykamp: correct, but the cost of traversing that zone may be wrong [3/4/2011 3:30:56 PM] buckyballreaction: yes [3/4/2011 3:31:02 PM] Chris Eykamp: we do centroid to centroid as cost [3/4/2011 3:31:16 PM] buckyballreaction: that was what i was going to say [3/4/2011 3:31:20 PM] Chris Eykamp: and if you just need to cross the tip of the sliver, it will appear much more expensive that it really is [3/4/2011 3:31:25 PM] Chris Eykamp: so that's the only issue [3/4/2011 3:31:37 PM] Chris Eykamp: but like I said, it can be wrong, as long as it's not too wrong [3/4/2011 3:32:10 PM] Chris Eykamp: and the bot will "do the right thing" when doing the actual navigation, even if the path seems odd when precalculated [3/4/2011 3:32:49 PM] buckyballreaction: yup [3/4/2011 3:32:58 PM] buckyballreaction: have you though more on doing openGL tesselation? [3/4/2011 3:33:00 PM] Chris Eykamp: we could test by generating both zones, and showing both paths [3/4/2011 3:33:06 PM] Chris Eykamp: no [3/4/2011 3:33:13 PM] Chris Eykamp: we're so fast now that I don't see much to gain [3/4/2011 3:33:18 PM] buckyballreaction: ok [3/4/2011 3:33:53 PM] Chris Eykamp: especially if we get detour working -- full zone generation could be done < 1 sec [3/4/2011 3:34:01 PM] Chris Eykamp: for levels like ctf3 [3/4/2011 3:34:04 PM] Chris Eykamp: on computers like mine [3/4/2011 3:34:13 PM] buckyballreaction: haha [3/4/2011 3:34:14 PM] buckyballreaction: good [3/4/2011 3:34:20 PM] Chris Eykamp: We'll be there [3/4/2011 3:34:32 PM] Chris Eykamp: 1 sec during loading is acceptable [3/4/2011 3:34:42 PM] Chris Eykamp: well, and that's worst case [3/4/2011 3:34:51 PM] Chris Eykamp: most levels are much smaller [3/4/2011 3:34:57 PM] buckyballreaction: i won't be able to work on again tonight, busy night [3/4/2011 3:35:12 PM] buckyballreaction: well, maybe after midnight... [3/4/2011 3:35:25 PM] Chris Eykamp: and since it all happens server end, time will be hidden as level loads over the network [3/4/2011 3:35:28 PM] Chris Eykamp: no prob [3/4/2011 3:36:05 PM] Chris Eykamp: I think we'll want to generate zones for all levels as we load them [3/4/2011 3:36:18 PM] buckyballreaction: yes, i agree [3/4/2011 3:36:31 PM] Chris Eykamp: we can still cache if that is faster [3/4/2011 3:36:36 PM] buckyballreaction: well, actually... what about levels that already have zones? [3/4/2011 3:36:39 PM] Chris Eykamp: that code seems pretty solid [3/4/2011 3:36:43 PM] Chris Eykamp: how many do? [3/4/2011 3:36:51 PM] buckyballreaction: probably not many [3/4/2011 3:36:51 PM] Chris Eykamp: not many [3/4/2011 3:36:58 PM] Chris Eykamp: we can just blow those away [3/4/2011 3:37:02 PM] Chris Eykamp: deprecate them [3/4/2011 3:37:12 PM] Chris Eykamp: remove all that crap from the editor [3/4/2011 3:37:20 PM] Chris Eykamp: oh, the weeks and weeks of work that will be lost! [3/4/2011 3:37:29 PM] buckyballreaction: hahaha [3/4/2011 3:37:46 PM] Chris Eykamp: seriously -- I spent major time to make zone editing less painful\ [3/4/2011 3:37:54 PM] Chris Eykamp: and now... obsolete [3/4/2011 3:37:59 PM] buckyballreaction: haha [3/4/2011 3:38:04 PM] buckyballreaction: tha'ts the evolution of code [3/4/2011 3:38:08 PM] Chris Eykamp: yes [3/4/2011 3:40:04 PM] buckyballreaction: i look back on some of my applications from a couple years ago and say to myself: "what was I thinking!?" [3/4/2011 5:51:22 PM] Chris Eykamp: hey just curious about something [3/4/2011 5:51:57 PM] Chris Eykamp: we have one tile in detour, right? [3/4/2011 5:52:17 PM] buckyballreaction: ok [3/4/2011 5:52:26 PM] Chris Eykamp: and looks like 128 polys per tile [3/4/2011 5:52:47 PM] Chris Eykamp: so... where are the rest of the plys? [3/4/2011 5:53:22 PM] buckyballreaction: one tile [3/4/2011 5:53:42 PM] buckyballreaction: i don't know about the maximum per tile, but i have seen a maximum per search in a tile [3/4/2011 6:01:17 PM] buckyballreaction: ok, i think the navMesh isn't being populated correctly [3/4/2011 6:02:08 PM] Chris Eykamp: also, your recast_offset might be better at S16_MAX [3/4/2011 6:02:12 PM] Chris Eykamp: not U16_MAX [3/4/2011 6:02:33 PM] buckyballreaction: for whatever reason, the vertices are going in as: {32255.7793, 0, 32223.9707} but coming out as: {64990.9688, 64998.7812, 1} [3/4/2011 6:02:41 PM] buckyballreaction: haha, i just found that 2 min. ago... [3/4/2011 6:03:05 PM] Chris Eykamp: hey, how do you set a var in bash? [3/4/2011 6:03:14 PM] buckyballreaction: var1="some text" [3/4/2011 6:03:21 PM] buckyballreaction: no spaces around the '=' [3/4/2011 6:03:25 PM] Chris Eykamp: need a ". " before it? [3/4/2011 6:03:37 PM] buckyballreaction: oh, in a script, or right on the shell? [3/4/2011 6:03:49 PM] Chris Eykamp: right in shell [3/4/2011 6:03:56 PM] Chris Eykamp: what you wrote works [3/4/2011 6:03:59 PM] buckyballreaction: export var1="something" [3/4/2011 6:04:06 PM] buckyballreaction: oh ok [3/4/2011 6:04:14 PM] buckyballreaction: export makes it global until you close the shell [3/4/2011 6:04:31 PM] Chris Eykamp: ok [3/4/2011 6:04:33 PM] Chris Eykamp: thx [3/4/2011 6:04:37 PM] buckyballreaction: you're welcome [3/4/2011 6:05:05 PM] Chris Eykamp: [Friday, March 04, 2011 6:02 PM] buckyballreaction: <<< or whatever reason, the vertices are going in as: {32255.7793, 0, 32223.9707} but coming out as: {64990.9688, 64998.7812, 1}what does this mean? [3/4/2011 6:05:19 PM] Chris Eykamp: write then read they change? [3/4/2011 6:08:01 PM] buckyballreaction: so i send in our polyMesh, and it comes out like that [3/4/2011 6:08:08 PM] buckyballreaction: i found the exact line that does it, too [3/4/2011 6:08:12 PM] buckyballreaction: and i don't know why [3/4/2011 6:08:25 PM] buckyballreaction: DetourNavMesh.cpp:776 [3/4/2011 6:10:41 PM] Chris Eykamp: because we're adding the offset? [3/4/2011 6:11:18 PM] Chris Eykamp: remember, the zones are already offsetted [3/4/2011 6:12:55 PM] buckyballreaction: yes, but i'm not adding any offset here [3/4/2011 6:13:15 PM] buckyballreaction: on 766 [3/4/2011 6:13:43 PM] buckyballreaction: it's doing this funny 'header patch' and then it adds it to the 'data' variable [3/4/2011 6:13:49 PM] buckyballreaction: data is the proper data [3/4/2011 6:14:17 PM] buckyballreaction: up until that point [3/4/2011 6:14:19 PM] buckyballreaction: then it goes goofy [3/4/2011 6:15:42 PM] Chris Eykamp: why are the verts going in as floats? [3/4/2011 6:15:47 PM] Chris Eykamp: aren't they ints? [3/4/2011 6:15:49 PM] buckyballreaction: sorry, 'data' is put into 'd' and then all the references from d are put back to the tile [3/4/2011 6:16:07 PM] Chris Eykamp: tile->verts = (float*)d; d += vertsSize; [3/4/2011 6:16:43 PM] buckyballreaction: the verts are ints in the polymesh? [3/4/2011 6:16:52 PM] Chris Eykamp: yes [3/4/2011 6:17:21 PM] Chris Eykamp: we use floats in bf, but recast uses all ints for coords [3/4/2011 6:17:22 PM] buckyballreaction: no they're not [3/4/2011 6:17:38 PM] Chris Eykamp: did I misunderstand? [3/4/2011 6:17:45 PM] buckyballreaction: the mesh i get after recast: mesh.verts is unsigned float* [3/4/2011 6:18:21 PM] Chris Eykamp: didn't even know that was a datatype! [3/4/2011 6:18:31 PM] Chris Eykamp: what struct are you looking at? [3/4/2011 6:19:08 PM] buckyballreaction: rcPolyMesh* mesh [3/4/2011 6:19:53 PM] Chris Eykamp: unsigned short* verts; // Vertices of the mesh, 3 elements per vertex. [3/4/2011 6:20:03 PM] Chris Eykamp: from Recast.h [3/4/2011 6:20:08 PM] Chris Eykamp: line 260 [3/4/2011 6:20:18 PM] Chris Eykamp: struct rcPolyMesh { unsigned short* verts; // Vertices of the mesh, 3 elements per vertex. unsigned short* polys; // Polygons of the mesh, nvp*2 elements per polygon. [3/4/2011 6:20:21 PM] Chris Eykamp: same, with context [3/4/2011 6:21:33 PM] buckyballreaction: yes, that is what i am looking at [3/4/2011 6:22:16 PM] buckyballreaction: those verts are supposed to be directly attached to the tile at DetourNavMesh.cpp:777 [3/4/2011 6:22:24 PM] buckyballreaction: BUT [3/4/2011 6:22:37 PM] buckyballreaction: they go all goofy [3/4/2011 6:23:24 PM] Chris Eykamp: could they go all goofy because they are ints being forced to be floats? [3/4/2011 6:23:40 PM] buckyballreaction: nope, the input data is already floats [3/4/2011 6:24:22 PM] buckyballreaction: i think it's because of all the dtAlign calls under [3/4/2011 6:24:25 PM] buckyballreaction: line 765 [3/4/2011 6:24:28 PM] Chris Eykamp: where do we add the data, in init? [3/4/2011 6:25:20 PM] Chris Eykamp: trying to see where data comes from [3/4/2011 6:25:32 PM] buckyballreaction: want to follow me in the code? [3/4/2011 6:25:57 PM] buckyballreaction: start at BotNavMeshZone:1413 at status = navMesh->init [3/4/2011 6:26:19 PM] buckyballreaction: that goes to DetourNavMesh.cpp:217 dtNavMesh::init [3/4/2011 6:26:28 PM] buckyballreaction: down at 233 [3/4/2011 6:26:32 PM] buckyballreaction: there is another init [3/4/2011 6:27:01 PM] Chris Eykamp: hold on a se [3/4/2011 6:27:02 PM] Chris Eykamp: c [3/4/2011 6:27:29 PM] Chris Eykamp: mesh->verts gets passed to params->verts [3/4/2011 6:27:31 PM] Chris Eykamp: still ints [3/4/2011 6:27:58 PM] buckyballreaction: where are you looking? [3/4/2011 6:28:28 PM] Chris Eykamp: BotNavMeshZone 1385 [3/4/2011 6:28:29 PM] buckyballreaction: ah yes [3/4/2011 6:28:44 PM] buckyballreaction: all that is fed into line 1405 [3/4/2011 6:28:54 PM] buckyballreaction: and it returns with 'navData' [3/4/2011 6:29:17 PM] buckyballreaction: which is then fed into line 1413 [3/4/2011 6:29:24 PM] Chris Eykamp: ok... still ints? [3/4/2011 6:29:27 PM] buckyballreaction: but mesh-> verts is floats [3/4/2011 6:29:33 PM] buckyballreaction: wait [3/4/2011 6:29:39 PM] buckyballreaction: let me back up to double check... [3/4/2011 6:29:59 PM] buckyballreaction: yes [3/4/2011 6:30:01 PM] Chris Eykamp: when we enter buildNavMeshData, we've got ints [3/4/2011 6:30:08 PM] buckyballreaction: not by my debugger [3/4/2011 6:30:12 PM] buckyballreaction: we hav efloats [3/4/2011 6:30:41 PM] buckyballreaction: argh [3/4/2011 6:30:45 PM] buckyballreaction: you're right [3/4/2011 6:30:48 PM] buckyballreaction: they are unsigned shorts [3/4/2011 6:30:53 PM] Chris Eykamp: yes [3/4/2011 6:30:57 PM] buckyballreaction: ok one moment... [3/4/2011 6:31:22 PM] buckyballreaction: ok good... still good [3/4/2011 6:31:30 PM] buckyballreaction: params.verts is shorts too [3/4/2011 6:31:47 PM] buckyballreaction: params is fed into line 1405 dtCreateNavMeshData [3/4/2011 6:31:53 PM] buckyballreaction: and navData is populated [3/4/2011 6:32:07 PM] buckyballreaction: which is just raw data [3/4/2011 6:32:18 PM] Chris Eykamp: ok [3/4/2011 6:32:28 PM] Chris Eykamp: but raw data consisting of U16s [3/4/2011 6:32:39 PM] buckyballreaction: U8 [3/4/2011 6:32:42 PM] buckyballreaction: unsigned char [3/4/2011 6:33:00 PM] Chris Eykamp: ah, that's just the pointer type (for some reason). the verts are actually U16s [3/4/2011 6:33:15 PM] buckyballreaction: ok [3/4/2011 6:33:17 PM] buckyballreaction: that's good [3/4/2011 6:33:28 PM] buckyballreaction: now to where it goes goofy [3/4/2011 6:33:43 PM] buckyballreaction: enter init on line 1413 [3/4/2011 6:33:53 PM] Chris Eykamp: ok [3/4/2011 6:34:05 PM] buckyballreaction: this first init populates part of the 'header' [3/4/2011 6:34:10 PM] buckyballreaction: i checked all the data, looks good [3/4/2011 6:34:13 PM] Chris Eykamp: yes [3/4/2011 6:34:22 PM] buckyballreaction: now to the next init on line 233 [3/4/2011 6:34:27 PM] Chris Eykamp: ok [3/4/2011 6:34:52 PM] buckyballreaction: actually all this works too [3/4/2011 6:34:56 PM] buckyballreaction: back out to 233 [3/4/2011 6:35:14 PM] buckyballreaction: line 237 [3/4/2011 6:35:17 PM] buckyballreaction: is the goofy one [3/4/2011 6:35:19 PM] buckyballreaction: addTile [3/4/2011 6:35:23 PM] buckyballreaction: go in there [3/4/2011 6:35:37 PM] buckyballreaction: dtNavMesh::addTile [3/4/2011 6:35:47 PM] buckyballreaction: line 707 grabs the header [3/4/2011 6:36:01 PM] buckyballreaction: you can check bmin and bmax in the header and it's got good data [3/4/2011 6:36:35 PM] buckyballreaction: or actually check the 'data' object since that's the one being manipulated [3/4/2011 6:36:52 PM] buckyballreaction: onwards to line 766 [3/4/2011 6:37:01 PM] buckyballreaction: the data object still has good data in it [3/4/2011 6:37:25 PM] Chris Eykamp: ok [3/4/2011 6:37:33 PM] buckyballreaction: then the code does pointer patching, whatever that is [3/4/2011 6:37:59 PM] buckyballreaction: and on line 776, it adds the patches to data and puts it in the object 'd' [3/4/2011 6:38:26 PM] Chris Eykamp: it's because of the (float*) [3/4/2011 6:38:54 PM] buckyballreaction: which one? [3/4/2011 6:38:56 PM] Chris Eykamp: I'll bet the debugger starts looking at the data differently after tha [3/4/2011 6:38:59 PM] Chris Eykamp: 777 [3/4/2011 6:39:07 PM] buckyballreaction: even before that [3/4/2011 6:39:11 PM] Chris Eykamp: tile->verts = (float*)d; d += vertsSize; [3/4/2011 6:39:13 PM] buckyballreaction: look at bmin and bmax in 'd' [3/4/2011 6:39:14 PM] Chris Eykamp: oh [3/4/2011 6:39:30 PM] Chris Eykamp: I'm not able to run at the moment [3/4/2011 6:39:32 PM] buckyballreaction: right after line 776 is run [3/4/2011 6:39:43 PM] buckyballreaction: it adds the headerSize [3/4/2011 6:39:58 PM] Chris Eykamp: ok, so what is "data"? [3/4/2011 6:40:02 PM] Chris Eykamp: is that our verts? [3/4/2011 6:40:07 PM] buckyballreaction: and all of a sudden bmin and bmax become something like: {64990.9688, 64998.7812, 1} [3/4/2011 6:40:11 PM] Chris Eykamp: or rather oir polygons? [3/4/2011 6:40:23 PM] buckyballreaction: data is of type dtMeshHeader [3/4/2011 6:40:30 PM] buckyballreaction: which has pointers to verts and polys [3/4/2011 6:40:35 PM] buckyballreaction: and sizes etc. [3/4/2011 6:40:41 PM] buckyballreaction: it's all good in the 'data' object [3/4/2011 6:41:31 PM] buckyballreaction: but after line 776, the 'd' object is pointing to the 'data' object plus the header patch [3/4/2011 6:41:36 PM] Chris Eykamp: dtMeshHeader has no verts or anything [3/4/2011 6:41:58 PM] buckyballreaction: it has bmin and bmax [3/4/2011 6:42:12 PM] Chris Eykamp: yes [3/4/2011 6:42:12 PM] buckyballreaction: for the bounding box [3/4/2011 6:42:26 PM] buckyballreaction: and those are good: {32255.7793, 0, 32223.9707} [3/4/2011 6:42:30 PM] Chris Eykamp: ok, looks like there is a block of data [3/4/2011 6:42:47 PM] buckyballreaction: but when put into 'd' they go goofy [3/4/2011 6:42:49 PM] Chris Eykamp: the header plus some stuff [3/4/2011 6:42:59 PM] Chris Eykamp: d is just a pointer [3/4/2011 6:43:06 PM] buckyballreaction: yes [3/4/2011 6:43:15 PM] Chris Eykamp: it points to headerSize bytes beyond teh start of data [3/4/2011 6:43:20 PM] buckyballreaction: yes [3/4/2011 6:43:36 PM] buckyballreaction: but the bmin and bmax are all of a sudden adjusted [3/4/2011 6:43:36 PM] Chris Eykamp: then it tells tile that it's verts are in the next block of data [3/4/2011 6:43:58 PM] Chris Eykamp: data hasn't changed, right? [3/4/2011 6:44:01 PM] buckyballreaction: nope [3/4/2011 6:44:06 PM] buckyballreaction: but d says they have beem [3/4/2011 6:44:08 PM] buckyballreaction: been [3/4/2011 6:44:24 PM] Chris Eykamp: what do you mean d says they have been? [3/4/2011 6:44:33 PM] Chris Eykamp: d->bmin? [3/4/2011 6:44:35 PM] buckyballreaction: yes [3/4/2011 6:44:43 PM] Chris Eykamp: well, d is now pointing at something else [3/4/2011 6:44:51 PM] Chris Eykamp: it's not pointing at the header anymore [3/4/2011 6:44:59 PM] Chris Eykamp: it's poiunting at the verts that follow the header [3/4/2011 6:45:08 PM] Chris Eykamp: d->bmin will ahve to change [3/4/2011 6:45:27 PM] buckyballreaction: ok, that makes sense [3/4/2011 6:45:37 PM] buckyballreaction: but the data has changed, or shifted somehow anyways [3/4/2011 6:45:41 PM] buckyballreaction: example [3/4/2011 6:45:50 PM] Chris Eykamp: perhaps, but that's not evidence of it [3/4/2011 6:47:19 PM] buckyballreaction: hmmm... [3/4/2011 6:47:29 PM] buckyballreaction: ok, i see now that the pointer is shifting... [3/4/2011 6:47:52 PM] buckyballreaction: but tile.verts is now: {64511.7812, 1, 64447.9688 [3/4/2011 6:49:47 PM] buckyballreaction: argh, so what i thought was the problem wasn't because i didn't recognized the shifting pointer... sorry for the noob problem [3/4/2011 6:50:00 PM] Chris Eykamp: no worries [3/4/2011 6:50:07 PM] Chris Eykamp: I'm not good at this either [3/4/2011 6:51:16 PM] Chris Eykamp: tile.verts thinks that U16 data is F32 [3/4/2011 6:51:32 PM] Chris Eykamp: change the (float*) to (unsigned int*) and I'll be the probelm goes away [3/4/2011 6:51:43 PM] Chris Eykamp: unsigned short [3/4/2011 6:51:58 PM] Chris Eykamp: no idea what the (float) is about [3/4/2011 6:52:32 PM] buckyballreaction: so you say to change the dtMeshTile objec to have ints instead? or shorts? [3/4/2011 6:52:57 PM] Chris Eykamp: for the sake of experimentation, I'm saying change tile->verts = (float*)d; d += vertsSize; [3/4/2011 6:52:57 PM] Chris Eykamp: to [3/4/2011 6:53:06 PM] Chris Eykamp: tile->verts = (unsigned sort*)d; d += vertsSize; [3/4/2011 6:53:14 PM] Chris Eykamp: and see if the data stops "changing" [3/4/2011 6:54:00 PM] Chris Eykamp: we need to figure out why they're casting to float; but first verify you're not nuts [3/4/2011 6:55:01 PM] buckyballreaction: still 64511.7812, 1, 64447.9688 [3/4/2011 6:55:14 PM] buckyballreaction: i don't mind sanity verification on my part :) [3/4/2011 6:56:38 PM] Chris Eykamp: so what exactly are you looking at that's changing? [3/4/2011 6:56:55 PM] buckyballreaction: forget the changing part - that was because of my ignorance of the moving pointer [3/4/2011 6:57:00 PM] Chris Eykamp: ah [3/4/2011 6:57:28 PM] buckyballreaction: but we have tile->verts in the 65K range, when the input data is in the 32K range [3/4/2011 6:57:33 PM] Chris Eykamp: so what exactly is the 64511 [3/4/2011 6:57:35 PM] Chris Eykamp: ? [3/4/2011 6:57:39 PM] buckyballreaction: the point on the map [3/4/2011 6:57:43 PM] buckyballreaction: vertex point [3/4/2011 6:57:45 PM] Chris Eykamp: tile->verts[0]? [3/4/2011 6:57:50 PM] buckyballreaction: yep [3/4/2011 6:58:13 PM] Chris Eykamp: ok. the verts are a short int. They cannot have a decimal [3/4/2011 6:58:17 PM] Chris Eykamp: so something is wrong [3/4/2011 6:58:37 PM] buckyballreaction: i did this: tile->verts = (unsigned short*)d; d += vertsSize; [3/4/2011 6:59:19 PM] buckyballreaction: ah, compile error - i guess the game launched with the old object file [3/4/2011 6:59:34 PM] Chris Eykamp: 767 does this: const int vertsSize = dtAlign4(sizeof(float)*3*header->vertCount); [3/4/2011 6:59:40 PM] Chris Eykamp: so they really want these to be floats [3/4/2011 7:00:10 PM] buckyballreaction: ahh [3/4/2011 7:00:16 PM] Chris Eykamp: I am absolutely certain that recast is gerneating mesh data as U16s [3/4/2011 7:00:53 PM] buckyballreaction: yes, i agree with you now [3/4/2011 7:00:57 PM] Chris Eykamp: oh good! [3/4/2011 7:01:12 PM] Chris Eykamp: so that could account for the 64K values [3/4/2011 7:01:30 PM] Chris Eykamp: but does not explain why detour is suddenly using floats [3/4/2011 7:01:39 PM] Chris Eykamp: and how/why the data is converted [3/4/2011 7:03:16 PM] buckyballreaction: i guess type-conversion is my next learning curve... [3/4/2011 7:03:48 PM] Chris Eykamp: you're doing find [3/4/2011 7:05:26 PM] buckyballreaction: did you change rcPolyMesh to use U16? [3/4/2011 7:06:27 PM] Chris Eykamp: no [3/4/2011 7:06:46 PM] buckyballreaction: well that's weird [3/4/2011 7:06:46 PM] Chris Eykamp: that's the puzzling thing [3/4/2011 7:06:51 PM] Chris Eykamp: yes [3/4/2011 7:09:29 PM] buckyballreaction: found the originator: DetourNavMeshBuilder.cpp:388 [3/4/2011 7:15:54 PM] buckyballreaction: so creating the navMeshData is setting it up as floats [3/4/2011 7:18:40 PM] Chris Eykamp: seems to be... but perhaps without actually converting the data [3/4/2011 7:18:49 PM] buckyballreaction: yes [3/4/2011 7:18:53 PM] buckyballreaction: i see no conversion [3/4/2011 7:19:10 PM] Chris Eykamp: which leads me to ask... wtf? [3/4/2011 7:19:56 PM] buckyballreaction: but even lines 303 and 304 acknowledge their true nature [3/4/2011 7:20:36 PM] Chris Eykamp: exactly [3/4/2011 7:21:36 PM] Chris Eykamp: but if they are U16, and you call them F32, you can still get the underlying data if you go back to accessing it as if it were U16 [3/4/2011 7:21:41 PM] Chris Eykamp: so maybe this doesn't matter [3/4/2011 7:22:33 PM] Chris Eykamp: maybe we coudl change the float designator to int or F64 or U8, and get the same answer [3/4/2011 7:26:16 PM] buckyballreaction: yeah, i'll try that real quick... [3/4/2011 7:26:47 PM] Chris Eykamp: but it does either seem broken or lazy [3/4/2011 7:27:03 PM] Chris Eykamp: maybe he startedoff using floats [3/4/2011 7:28:38 PM] Chris Eykamp: but this will be wrong: [3/4/2011 7:28:39 PM] Chris Eykamp: const int vertsSize = dtAlign4(sizeof(float)*3*header->vertCount); [3/4/2011 7:28:46 PM] buckyballreaction: oh yeah [3/4/2011 7:28:48 PM] Chris Eykamp: vertSize will be double what it should be [3/4/2011 7:31:04 PM] Chris Eykamp: so when you changed the (flot*) to (u16*) the coords looked better? [3/4/2011 7:31:26 PM] buckyballreaction: tha'ts what i'm working on, but i got caught up in my real job for a moment... :) [3/4/2011 7:31:35 PM] Chris Eykamp: oh no!!! [3/4/2011 7:31:46 PM] Chris Eykamp: I thought you had done that already... not trying to be pushy [3/4/2011 7:34:40 PM] buckyballreaction: wait, i think i found the conversion [3/4/2011 7:35:07 PM] buckyballreaction: DetourNavMeshBuilder.cpp:428 [3/4/2011 7:35:32 PM] Chris Eykamp: ah, converting back to non-cellular coords [3/4/2011 7:36:22 PM] Chris Eykamp: wasteful for us [3/4/2011 7:37:50 PM] Chris Eykamp: we we create triangles in floats, convert to ints for merging, then back to floats? [3/4/2011 7:38:02 PM] buckyballreaction: sigh [3/4/2011 7:38:58 PM] Chris Eykamp: well, maybe if we grab and internalize the recast code, we can further optimize it [3/4/2011 7:39:05 PM] Chris Eykamp: stay in float, for example [3/4/2011 7:39:30 PM] Chris Eykamp: pass the data in as a block of floats from triangle, rather than reassembling as x,z,y,? format [3/4/2011 7:39:41 PM] Chris Eykamp: that would save a lot of monkeying around [3/4/2011 7:39:49 PM] buckyballreaction: i'm not sure i follow [3/4/2011 7:40:02 PM] Chris Eykamp: ok, we get a block of floats back from triangle [3/4/2011 7:40:06 PM] buckyballreaction: yes [3/4/2011 7:40:40 PM] Chris Eykamp: we parse that, creating an block of 4 U16s x, z (always 1 for us),y,0 [3/4/2011 7:40:49 PM] Chris Eykamp: then that is what gets passed to recast [3/4/2011 7:41:24 PM] Chris Eykamp: we could change recast to use the raw floats we get back from triangle saving that parsing step [3/4/2011 7:41:40 PM] Chris Eykamp: and perhaps saving the reencoding to float that you just found [3/4/2011 7:41:52 PM] Chris Eykamp: [Friday, March 04, 2011 7:39 PM] Chris Eykamp: <<< ok, we get a block of floats back from triangle we parse that, creating an block of 4 U16s x, z (always 1 for us),y,0 then that is what gets passed to recast we could change recast to use the raw floats we get back from triangle saving that parsing step [3/4/2011 7:42:00 PM] Chris Eykamp: not sure all those msgs went through [3/4/2011 7:42:14 PM] Chris Eykamp: would save 1-2 ms [3/4/2011 7:42:30 PM] Chris Eykamp: and some memory [3/4/2011 7:42:42 PM] Chris Eykamp: but make the code a lot cleaner [3/4/2011 7:43:04 PM] Chris Eykamp: since we want floats for detour and for our own processes if we give up on detour [3/4/2011 7:44:22 PM] buckyballreaction: except detour does actually want U16 at first... [3/4/2011 7:44:32 PM] buckyballreaction: then casts as F32 [3/4/2011 7:45:24 PM] buckyballreaction: foudn the problem [3/4/2011 7:45:29 PM] Chris Eykamp: really [3/4/2011 7:45:30 PM] Chris Eykamp: ? [3/4/2011 7:45:44 PM] buckyballreaction: DetourNavMeshBuilder.cpp:429 [3/4/2011 7:45:52 PM] buckyballreaction: v[0] = params->bmin[0] + iv[0] * params->cs; [3/4/2011 7:46:03 PM] Chris Eykamp: ah [3/4/2011 7:46:08 PM] Chris Eykamp: we want bmin = 0 [3/4/2011 7:46:09 PM] buckyballreaction: params-bmin[0] is the bounding with the offset [3/4/2011 7:46:23 PM] Chris Eykamp: right [3/4/2011 7:46:41 PM] buckyballreaction: so how hard would it be to work with negative numbers again? [3/4/2011 7:46:46 PM] buckyballreaction: :) [3/4/2011 7:46:51 PM] Chris Eykamp: we we should pass in bounding box of 0,0 -> whatever [3/4/2011 7:46:59 PM] buckyballreaction: yeah, i'll try that... [3/4/2011 7:47:02 PM] Chris Eykamp: you mean in recast? [3/4/2011 7:47:06 PM] buckyballreaction: yup [3/4/2011 7:47:10 PM] Chris Eykamp: not hard [3/4/2011 7:47:13 PM] Chris Eykamp: everything should work [3/4/2011 7:47:30 PM] Chris Eykamp: tonight I'm going to try to pull in the bits of recast we really need [3/4/2011 7:47:32 PM] buckyballreaction: because i am hating this offset, all of a sudden [3/4/2011 7:47:37 PM] Chris Eykamp: _maybe_ make it work with float [3/4/2011 7:47:47 PM] Chris Eykamp: and I'll try to get rid of the offset [3/4/2011 7:48:00 PM] Chris Eykamp: make it work with S16 instead of U16 [3/4/2011 7:48:26 PM] buckyballreaction: will that be large enough? [3/4/2011 7:48:35 PM] Chris Eykamp: it's the same range [3/4/2011 7:49:15 PM] buckyballreaction: but htat only allows for 128 in all directions (according to the editor) [3/4/2011 7:49:25 PM] Chris Eykamp: there's already a case in for this, but we'll just put a bounding box in the editor [3/4/2011 7:49:28 PM] Chris Eykamp: 128 is pretty big [3/4/2011 7:49:36 PM] Chris Eykamp: that's 128 of the big squares [3/4/2011 7:49:41 PM] buckyballreaction: yes [3/4/2011 7:49:45 PM] Chris Eykamp: that's a lot [3/4/2011 7:50:06 PM] buckyballreaction: ok, i need to load up a level to get a visual... [3/4/2011 7:50:14 PM] Chris Eykamp: anythnig bigger just can't have bots [3/4/2011 7:50:31 PM] Chris Eykamp: or, if I make zones work with floats, that limit goes away [3/4/2011 7:51:06 PM] buckyballreaction: ok, ctf3 is 17 wide [3/4/2011 7:51:10 PM] buckyballreaction: i think that's ok [3/4/2011 7:51:24 PM] buckyballreaction: for some reason i thought it was smaller [3/4/2011 7:51:30 PM] Chris Eykamp: it's still a big level [3/4/2011 7:51:44 PM] buckyballreaction: i mean i though 1 big block was smaller [3/4/2011 7:52:59 PM] Chris Eykamp: so we could just draw a ring in the editor at 32 blocks [3/4/2011 7:53:05 PM] Chris Eykamp: and not go beyond that [3/4/2011 7:53:18 PM] Chris Eykamp: but I'll play around tonight and see if F32 helps us at all [3/4/2011 7:53:25 PM] buckyballreaction: ok [3/4/2011 7:53:31 PM] Chris Eykamp: or hell S32 [3/4/2011 7:53:34 PM] buckyballreaction: now i know what i'm looking for [3/4/2011 7:53:36 PM] buckyballreaction: S32! [3/4/2011 7:53:42 PM] buckyballreaction: nice and simple [3/4/2011 8:04:10 PM] Chris Eykamp: but double the memory [3/4/2011 8:05:52 PM] buckyballreaction: i wonder what the memory reqs for bitfighter actually are right now... [3/4/2011 8:06:27 PM] Chris Eykamp: they probably get much bigger the instant we're generating bot zones [3/4/2011 8:07:22 PM] Chris Eykamp: if we have 2000 triangles, with a limit of 6 verts per poly, we reserve 6 * 2000 * 3 *sizeof(U16) bytes [3/4/2011 8:07:45 PM] buckyballreaction: in editor right now: memory: 9960K, shared: 17592K [3/4/2011 8:08:04 PM] buckyballreaction: in level: 10640 and 18008 [3/4/2011 8:09:30 PM] buckyballreaction: addbot: 12020 18192 [3/4/2011 8:09:45 PM] buckyballreaction: so not so bad :) [3/4/2011 8:11:09 PM] buckyballreaction: well, gotta start my busy night... [3/4/2011 8:11:16 PM] buckyballreaction: see you late late, or tomorrow [3/4/2011 8:11:24 PM] Chris Eykamp: bye [3/4/2011 8:20:34 PM] Samuel Williams: Added (ini) BotZoneGeneratorMode (1-6 for different modes), added (ini) useCache=yes/no option more useful to adjust ini file then to remove (comment out) the cache system. [3/4/2011 8:21:14 PM] Chris Eykamp: yes; good [3/4/2011 8:22:02 PM] Chris Eykamp: well cache should always be on in production [3/4/2011 8:22:12 PM] Chris Eykamp: at leat for the moment [3/4/2011 11:44:00 PM] buckyballreaction: ok, i guess my night is over early [3/4/2011 11:49:14 PM] Chris Eykamp: that's a pity [3/5/2011 12:05:18 AM] buckyballreaction: are you working on something specific at the moment? [3/5/2011 12:06:05 AM] Chris Eykamp: I was trying to integrate recast into our botnavmeshzones' [3/5/2011 12:06:11 AM] Chris Eykamp: but not trying very hard yet [3/5/2011 12:06:30 AM] buckyballreaction: because i finally got detour to spit out the proper target point... [3/5/2011 12:06:43 AM] buckyballreaction: by adjusting for the offset in certain places [3/5/2011 12:07:33 AM] buckyballreaction: although now it just spits out the two points, start and target. for some reason it thinks that the point, in whatever zone has the lowest node cost... [3/5/2011 12:07:42 AM] buckyballreaction: the target point [3/5/2011 12:08:25 AM] Chris Eykamp: hmm [3/5/2011 12:16:54 AM] buckyballreaction: i'm teaching my dad to compose a document structurally in HTML [3/5/2011 12:17:45 AM] buckyballreaction: it's an interesting experiment [3/5/2011 12:22:02 AM] Chris Eykamp: :) [3/5/2011 12:34:02 AM] buckyballreaction: as i browser through detour, i'm not actually finding anything that uses the width of the ship... [3/5/2011 12:34:21 AM] buckyballreaction: i see parameters set for it, but I am not seeing it used (yet) [3/5/2011 12:38:23 AM] buckyballreaction: so if that is the case, then what advantage would detour have? [3/5/2011 12:39:30 AM] Chris Eykamp: if ship width is not used? [3/5/2011 12:39:34 AM] buckyballreaction: y [3/5/2011 12:39:38 AM] Chris Eykamp: mmmm [3/5/2011 12:39:41 AM] Chris Eykamp: maybe none? [3/5/2011 12:40:22 AM] buckyballreaction: because i have been looking and looking, and i can't find it being used [3/5/2011 12:41:12 AM] Chris Eykamp: how do they avoid the problem we have of collisions with walls? [3/5/2011 12:41:22 AM] buckyballreaction: i don't know [3/5/2011 12:41:28 AM] buckyballreaction: i can't find anything [3/5/2011 12:46:39 AM] Chris Eykamp: do they avoid that problem? [3/5/2011 12:48:02 AM] buckyballreaction: i see nothing in the cost determination algos [3/5/2011 12:49:03 AM] Chris Eykamp: I wouldn't necessarily expect it to be there [3/5/2011 12:49:10 AM] Chris Eykamp: what's the variable where width is stored? [3/5/2011 12:49:22 AM] buckyballreaction: walkableRadius [3/5/2011 12:49:35 AM] buckyballreaction: it's in the header [3/5/2011 12:51:26 AM] Chris Eykamp: only reference 8 places in the code [3/5/2011 12:52:30 AM] Chris Eykamp: it's not used as far as I can see [3/5/2011 12:53:42 AM] buckyballreaction: yep' [3/5/2011 12:54:10 AM] buckyballreaction: i also thought that maybe it is set in recast, but the only reference i find there is of it being commented out [3/5/2011 12:54:30 AM] Chris Eykamp: so what does detour return? a list of points to walk to/through to get to dest? [3/5/2011 12:55:08 AM] buckyballreaction: first it returns a list of zones, then you pipe those to another method that returns a straight line path through the zones [3/5/2011 12:56:07 AM] Chris Eykamp: it's probably the straight line path that will be interesting. what's that called? [3/5/2011 12:56:18 AM] buckyballreaction: navQuery->findStraightPath( [3/5/2011 12:58:10 AM] Chris Eykamp: this looks familliar [3/5/2011 12:58:32 AM] Chris Eykamp: any idea what the portals are? [3/5/2011 12:59:11 AM] buckyballreaction: noep [3/5/2011 1:03:38 AM] Chris Eykamp: I think this uses the same algo bf uses [3/5/2011 1:03:57 AM] buckyballreaction: yeah, i'm wondering if we shouldn't just beef up BF's [3/5/2011 1:03:58 AM] Chris Eykamp: one that *I* invented, dammit [3/5/2011 1:04:03 AM] buckyballreaction: haha [3/5/2011 1:04:40 AM] Chris Eykamp: ok, there are two (related)problems with our algo [3/5/2011 1:04:54 AM] Chris Eykamp: that I don't know how to solve [3/5/2011 1:05:12 AM] buckyballreaction: i actually don't have a grasp at the specific problems - i've never witnessed them [3/5/2011 1:05:26 AM] Chris Eykamp: first is if you have a thin corridor, too thin for a ship to navigate, the routing may tell the ship to go there [3/5/2011 1:05:38 AM] Chris Eykamp: you could easily create a level that demonstrated that [3/5/2011 1:06:05 AM] Chris Eykamp: sometimes desiners will made tiny walls so you can shoot through an area but pass through [3/5/2011 1:06:05 AM] buckyballreaction: i'll do that [3/5/2011 1:06:13 AM] Chris Eykamp: that's proboem 1 [3/5/2011 1:06:27 AM] Chris Eykamp: if ship gets routed there, it will just get stuck, never try to reroute [3/5/2011 1:06:55 AM] Chris Eykamp: problem 2 is when it shaves corners, it doesn't take ship's width into account, so bumps and looks kind of drunk [3/5/2011 1:07:09 AM] Chris Eykamp: you've seen that one on just about every level there is [3/5/2011 1:07:12 AM] buckyballreaction: haha, ok. i've see that one [3/5/2011 1:07:26 AM] Chris Eykamp: they're both facets of the same probelm [3/5/2011 1:07:34 AM] Chris Eykamp: I have no idea how to solve them [3/5/2011 1:07:55 AM] buckyballreaction: i have some idea - but not sure how to do it in code [3/5/2011 1:08:14 AM] Chris Eykamp: maybe we could puff out walls by 1/2 ship width [3/5/2011 1:08:23 AM] Chris Eykamp: and use those puffy walls for navigation [3/5/2011 1:08:29 AM] buckyballreaction: that's a bandaid on bullet wound [3/5/2011 1:08:34 AM] Chris Eykamp: too-narrow areas will just close up [3/5/2011 1:08:39 AM] Chris Eykamp: maybe [3/5/2011 1:09:11 AM] Chris Eykamp: I'll bet it would work [3/5/2011 1:09:17 AM] buckyballreaction: me too [3/5/2011 1:09:20 AM] Chris Eykamp: what was your idea [3/5/2011 1:10:24 AM] Chris Eykamp: did you see any good explanations of how detour works in your research? [3/5/2011 1:10:43 AM] buckyballreaction: not yet, no [3/5/2011 1:11:17 AM] buckyballreaction: for problem #1, i see two possiblities: 1. determine the length of the shared edge between two zones, if it is too small, don't include it in nav calculations (since polygons are convex, we only need to calculate the one edge) 2. when the bot hits the narrow edge a number of times (say 3) mark that edge as impassible somehow [3/5/2011 1:11:48 AM] Chris Eykamp: 1 won't work [3/5/2011 1:12:05 AM] Chris Eykamp: or... [3/5/2011 1:12:07 AM] Chris Eykamp: will it [3/5/2011 1:12:36 AM] buckyballreaction: it's just my first ideas [3/5/2011 1:12:45 AM] buckyballreaction: i am not sure why 1 won't though [3/5/2011 1:13:00 AM] buckyballreaction: (maybe it just can't be done in code and i'm too naive to see it yet...) [3/5/2011 1:13:39 AM] buckyballreaction: argh: http://www.gamedev.net/blog/33/entry-2210775-more-recast-and-detour/ [3/5/2011 1:13:50 AM] buckyballreaction: do a search for 'radius' on the page and read the one paragraph [3/5/2011 1:14:17 AM] buckyballreaction: so they basically do the bandaid to begin with [3/5/2011 1:14:27 AM] Chris Eykamp: maybe it would work [3/5/2011 1:15:38 AM] Chris Eykamp: maybe try generating some levels with long corridors and see what the zones look like [3/5/2011 1:15:52 AM] Chris Eykamp: I couldn't find any paths that would have been exlcued in ctf1 [3/5/2011 1:18:00 AM] Chris Eykamp: We could implement this with our routines: [3/5/2011 1:18:01 AM] Chris Eykamp: If an actor is trying to follow a "moving target", then it can be a waste of resources to constantly generate the entire straight line path, only to have to recreate it when the target moves. By doing a partial query instead, you perform a much faster path search that will only generate the first straight-line point to which you must path in order to draw nearer your target. This way, you only "look ahead" one step, so you can more efficiently track a moving target without the overhead of a full path search. [3/5/2011 1:18:51 AM] buckyballreaction: i thought that is what is being done in robot.cpp [3/5/2011 1:19:40 AM] Chris Eykamp: only full paths are gnerated -- this suggests a partial path for things that are going to be useless soon anyway because the target has moved [3/5/2011 1:19:50 AM] Chris Eykamp: of course, generating the full path isn;t too expensive [3/5/2011 1:20:45 AM] Chris Eykamp: puffy walls!! [3/5/2011 1:21:09 AM] buckyballreaction: yeah, just add a border of 24 px [3/5/2011 1:21:13 AM] buckyballreaction: that would do it [3/5/2011 1:21:24 AM] buckyballreaction: help with hitting turrets, too [3/5/2011 1:21:50 AM] buckyballreaction: that would probably fix both problems [3/5/2011 1:22:09 AM] Chris Eykamp: well, turrets can be fixed by making the bots see them as walls [3/5/2011 1:22:15 AM] buckyballreaction: i change my mind - it's a nice simple solution [3/5/2011 1:22:26 AM] Chris Eykamp: we can add a boux around the turret and pretend it's a wall [3/5/2011 1:22:54 AM] buckyballreaction: i'm liking that idea more and more [3/5/2011 1:23:10 AM] *** Zoomber has updated the conversation guidelines. *** [3/5/2011 1:23:11 AM] buckyballreaction: because detour is driving me crazy for not much gain [3/5/2011 1:23:24 AM] Chris Eykamp: yes [3/5/2011 1:23:25 AM] buckyballreaction: "something in the chat" [3/5/2011 1:23:35 AM] Zoomber: ok good. and I should say hello while im at it [3/5/2011 1:23:47 AM] buckyballreaction: hi [3/5/2011 1:23:49 AM] Chris Eykamp: anyone know how to kick terrence neo? [3/5/2011 1:23:52 AM] *** Zoomber has updated the conversation guidelines. *** [3/5/2011 1:24:15 AM] Zoomber: thats just a notification bar / guideline bar if we ever need it in this chatroom [3/5/2011 1:24:42 AM] Zoomber: kick terrence neo? [3/5/2011 1:25:04 AM] buckyballreaction: yeah, i see him and some number [3/5/2011 1:25:07 AM] Chris Eykamp: and +65blah [3/5/2011 1:25:21 AM] Chris Eykamp: don't want no sneaky germans listening in [3/5/2011 1:25:23 AM] buckyballreaction: i wonder if we have our first spam bot [3/5/2011 1:25:28 AM | Edited 1:25:41 AM] Zoomber: say what chris? [3/5/2011 1:25:43 AM] Chris Eykamp: isn't that country code 65 [3/5/2011 1:25:50 AM] Chris Eykamp: maybe that's +64 [3/5/2011 1:26:14 AM] Chris Eykamp: +49 [3/5/2011 1:26:16 AM] Chris Eykamp: way off [3/5/2011 1:26:31 AM] Zoomber: or you could just click on the call button in skype [3/5/2011 1:26:32 AM] Zoomber: :) [3/5/2011 1:26:45 AM] Chris Eykamp: +65 is singapore [3/5/2011 1:27:21 AM] Zoomber: Hey, I've...come up..with...yes....an........IDEA [3/5/2011 1:29:47 AM] Zoomber: Since bitfighter is really picking up speed, I've been startng to think about the implementation of a skype or "soemthing else" chatroom ported for bitfighter discussion and questions if players have it. [3/5/2011 1:30:20 AM] Chris Eykamp: is it still picking up steam? [3/5/2011 1:30:25 AM] buckyballreaction: hey sam, if you are around - i can't seem to get 'BotZoneGeneratorMode=6' to work and use recast [3/5/2011 1:30:38 AM] buckyballreaction: IRC! [3/5/2011 1:30:48 AM] buckyballreaction: it's the perfect versatile protocol :) [3/5/2011 1:30:54 AM] Zoomber: maybe, even though its outside of bitfighter, it could be linked to the bitfighter chatroom if that's even possible, the chatroom outside saves chat history while the bitfighter chatroom stays the same [3/5/2011 1:31:10 AM] Zoomber: Irc is a good idea [3/5/2011 1:31:17 AM] Zoomber: if people actually join it.. [3/5/2011 1:31:28 AM] buckyballreaction: IRC has hooks into every programming language [3/5/2011 1:31:37 AM] Zoomber: but that can be possible. the good thing about irc is its very flexible and portable [3/5/2011 1:31:56 AM] Chris Eykamp: I'm gutting recast [3/5/2011 1:32:03 AM] Chris Eykamp: removing everything we don't use [3/5/2011 1:32:04 AM] buckyballreaction: do it do it [3/5/2011 1:32:31 AM] Zoomber: i like your wide range of vocabulary [3/5/2011 1:32:43 AM] Zoomber: it makes the situation more "intenseified" [3/5/2011 1:32:56 AM] buckyballreaction: :) [3/5/2011 1:33:36 AM] Chris Eykamp: @bbr -- you sound ready to give up on detour [3/5/2011 1:33:44 AM] buckyballreaction: i totally am [3/5/2011 1:33:56 AM] Chris Eykamp: you question what it will give us [3/5/2011 1:33:59 AM] buckyballreaction: it's just looking like way too much overhead/overkill [3/5/2011 1:34:19 AM] buckyballreaction: and we have a semi-decent pathfinding already - it just needs some tweaks [3/5/2011 1:35:11 AM] Chris Eykamp: I'm making a last push to google the diff's between detour and a* [3/5/2011 1:35:27 AM] Chris Eykamp: but why [3/5/2011 1:35:42 AM] Chris Eykamp: what could I find out that would make me argue for pushing on with detour? [3/5/2011 1:35:54 AM] Chris Eykamp: if it were more efficient? [3/5/2011 1:36:31 AM] buckyballreaction: it is already pretty efficient [3/5/2011 1:36:42 AM] buckyballreaction: just construed for 3d [3/5/2011 1:36:55 AM] buckyballreaction: so we could make it super efficient [3/5/2011 1:38:10 AM] buckyballreaction: right now, it seems like a lot more work to overcome the integration with the offset [3/5/2011 1:38:42 AM] buckyballreaction: especially since i just learned that it used the detailPolyMesh for the cost calculations - which we don't fill at all [3/5/2011 1:38:51 AM] buckyballreaction: (but we could) [3/5/2011 1:40:04 AM] buckyballreaction: (side curiosity: did you know that compiling config.cpp results in a 9MB object file with gcc -O2? weird...) [3/5/2011 1:40:19 AM] Zoomber: that is odd [3/5/2011 1:40:40 AM] Zoomber: hamdf [3/5/2011 1:41:11 AM] Chris Eykamp: wow [3/5/2011 1:41:55 AM] Zoomber: watusimoto, is it possible to host an irc server on the same server bitfighter.org runs on? [3/5/2011 1:42:00 AM] buckyballreaction: so you can't kick our singapore friend? [3/5/2011 1:42:25 AM] buckyballreaction: @zoomber, that is a good idea: maybe compile an IRC server into the master server and have a couple channels: one for play, one for dev [3/5/2011 1:42:47 AM] buckyballreaction: i've seen a game do that before: it was called Gate88 [3/5/2011 1:42:48 AM] Zoomber: @b he could enter a bug into the master that crashes the servers, booting your friend [3/5/2011 1:42:58 AM] buckyballreaction: haha [3/5/2011 1:43:10 AM] Zoomber: yes, that was what i was thingking, one for dev, one for play [3/5/2011 1:44:11 AM] Zoomber: for the heck of it, ill create a new chatroom in skype called bitfighter chat [3/5/2011 1:44:36 AM] Zoomber: the major downside to skype, is its inability to do anything...outside of skype [3/5/2011 1:44:45 AM] buckyballreaction: yup [3/5/2011 1:45:01 AM] Chris Eykamp: [Saturday, March 05, 2011 1:41 AM] Max h: <<< watusimoto, is it possible to host an irc server on the same server bitfighter.org runs on?No, but we keep talking about moving to a server where it is [3/5/2011 1:45:55 AM] Zoomber: wait wait, do you mean kick terrence neo from THIS chatroom? [3/5/2011 1:46:05 AM] buckyballreaction: i coudl experiment with running a server on the game server server [3/5/2011 1:46:09 AM] buckyballreaction: yes! [3/5/2011 1:46:14 AM] Zoomber: OH oh oh oh [3/5/2011 1:46:19 AM] Zoomber: i wonder how he got here [3/5/2011 1:46:23 AM] buckyballreaction: and his number [3/5/2011 1:46:34 AM] buckyballreaction: i think it's a phisher [3/5/2011 1:46:36 AM] Zoomber: the only way that is possible, is if he copied and pasted my link on bitfighter forums [3/5/2011 1:46:41 AM] Zoomber: should I take that down? [3/5/2011 1:47:21 AM] Zoomber: and shall I kick, or kick and ban? [3/5/2011 1:47:31 AM] buckyballreaction: kick for now [3/5/2011 1:47:35 AM] buckyballreaction: then ban if he comes back [3/5/2011 1:47:37 AM] *** Zoomber removed t-pilot395 from this conversation. *** [3/5/2011 1:47:44 AM] *** Zoomber removed +6583469988 from this conversation. *** [3/5/2011 1:47:49 AM] buckyballreaction: hooray! [3/5/2011 1:47:50 AM] Zoomber: ok [3/5/2011 1:48:20 AM] Chris Eykamp: ah, much better [3/5/2011 1:48:27 AM] buckyballreaction: @watusimoto, what would you say if I started an IRC server on the game-server server? [3/5/2011 1:48:27 AM] Zoomber: watusimoto, try /kick skypename [3/5/2011 1:48:49 AM] buckyballreaction: i tried to kick myself [3/5/2011 1:48:52 AM] Zoomber: lol [3/5/2011 1:49:01 AM] buckyballreaction: i think i'm still here [3/5/2011 1:49:08 AM] Zoomber: let me log in as another account [3/5/2011 1:49:08 AM] Chris Eykamp: doesn't work [3/5/2011 1:53:15 AM] *** z00mber joined. *** [3/5/2011 1:53:18 AM] z00mber: in [3/5/2011 1:53:23 AM] z00mber: and thats how he probably got here [3/5/2011 1:53:26 AM] buckyballreaction: i kick you [3/5/2011 1:53:36 AM] buckyballreaction: nope [3/5/2011 1:53:37 AM] buckyballreaction: doesn't work [3/5/2011 1:53:40 AM] z00mber: aksdfjakjfa;skldjfspamspamspamspamspamspam [3/5/2011 1:53:44 AM] z00mber: spamspamspamspamspamspamspamspam [3/5/2011 1:54:04 AM] z00mber: i recall somehow giving chris the ability to kick way back a few months ago [3/5/2011 1:54:16 AM] z00mber: if your still on, try /kick z00mber [3/5/2011 1:55:17 AM] Zoomber: ok [3/5/2011 1:55:20 AM] Zoomber: back here [3/5/2011 1:56:00 AM] Zoomber: raptor, try now [3/5/2011 1:56:03 AM] buckyballreaction: ooo [3/5/2011 1:56:03 AM] buckyballreaction: ok [3/5/2011 1:56:09 AM] Zoomber: did anything pop up? [3/5/2011 1:56:16 AM] buckyballreaction: nope [3/5/2011 1:56:34 AM] Zoomber: maybe i have to add you as a contact first? [3/5/2011 1:56:47 AM] buckyballreaction: ahh, THAT's how you see people online [3/5/2011 1:56:54 AM] Zoomber: yes [3/5/2011 1:57:21 AM] Zoomber: wow.. i have 73 contacts [3/5/2011 1:57:28 AM] Chris Eykamp: I feel like I'm wasting my time here [3/5/2011 1:57:46 AM] buckyballreaction: too much slicing and dicing? [3/5/2011 1:58:02 AM] Chris Eykamp: no, too much reading about detour and not being sure what to do [3/5/2011 1:58:35 AM] Zoomber: chris, can you try /kick z00mber or maybe rightclicking on its name and selecting kick if it shows up? [3/5/2011 1:58:38 AM] buckyballreaction: what advantages do you see? [3/5/2011 1:59:50 AM] z00mber: test [3/5/2011 2:00:03 AM] z00mber: /getrole [3/5/2011 2:00:04 AM] Chris Eykamp: speed [3/5/2011 2:00:08 AM] z00mber: /getrole watusimoto [3/5/2011 2:00:12 AM] Chris Eykamp: maybe [3/5/2011 2:00:14 AM] buckyballreaction: yes, i agree [3/5/2011 2:00:34 AM] Chris Eykamp: everyone says it's fast but I don't really know how to compare it to a* [3/5/2011 2:00:40 AM] z00mber: /whois [3/5/2011 2:00:45 AM] buckyballreaction: it IS A* [3/5/2011 2:00:53 AM] Chris Eykamp: is it? [3/5/2011 2:00:59 AM] buckyballreaction: actually, I think there are two algos in there [3/5/2011 2:01:42 AM] buckyballreaction: /getrole [3/5/2011 2:01:49 AM] z00mber: do /whois [3/5/2011 2:01:51 AM] buckyballreaction: /getrole buckyballreaction [3/5/2011 2:02:07 AM] z00mber: i thought it was /getrole, its actually /role for yourself and /whois for other [3/5/2011 2:02:14 AM] buckyballreaction: /role buckyballreaction [3/5/2011 2:02:33 AM] z00mber: /role [3/5/2011 2:02:36 AM] z00mber: oh [3/5/2011 2:02:38 AM] z00mber: just /getrole [3/5/2011 2:02:40 AM] z00mber: /getrole [3/5/2011 2:02:42 AM] z00mber: no [3/5/2011 2:02:53 AM] z00mber: /rage [3/5/2011 2:03:01 AM] z00mber: oh oh, /get role [3/5/2011 2:03:12 AM] z00mber: or /whois buckyballreaction [3/5/2011 2:05:36 AM] Zoomber: ooh /htmlhistory [3/5/2011 2:05:44 AM | Edited 2:05:50 AM] buckyballreaction: /htmlhistory buckyballreaction [3/5/2011 2:05:55 AM] Zoomber: looooool [3/5/2011 2:06:25 AM] Zoomber: just /htmlhistory [3/5/2011 2:06:34 AM] buckyballreaction: just /htmlhistory [3/5/2011 2:06:39 AM] Zoomber: theres also /info /me [3/5/2011 2:06:42 AM] Zoomber: yes [3/5/2011 2:06:43 AM] buckyballreaction: /info [3/5/2011 2:06:50 AM] buckyballreaction: i think my client hates me [3/5/2011 2:06:53 AM] Zoomber: /lol [3/5/2011 2:06:55 AM] Zoomber: /kick [3/5/2011 2:06:57 AM] Zoomber: /info [3/5/2011 2:07:08 AM] Zoomber: Zoomber it does [3/5/2011 2:07:27 AM] buckyballreaction: the evolution of irc servers: http://upload.wikimedia.org/wikipedia/commons/d/d5/IRCd_software_implementations3.svg [3/5/2011 2:07:46 AM] Zoomber: /the evolution of irc servers http://upload.wikimedia.org/wikipedia/commons/d/d5/IRCd_software_implementations3.svg [3/5/2011 2:07:52 AM] Zoomber: didnt work [3/5/2011 2:09:21 AM] Zoomber: let me brb [3/5/2011 2:09:29 AM] Chris Eykamp: so [3/5/2011 2:09:37 AM] Chris Eykamp: how do you know that detour is a*? [3/5/2011 2:09:50 AM] buckyballreaction: i'm trying to find the article i found again... [3/5/2011 2:10:23 AM] buckyballreaction: this bug suggests: http://code.google.com/p/recastnavigation/issues/detail?id=81 [3/5/2011 2:11:38 AM] Chris Eykamp: it does [3/5/2011 2:11:51 AM] Chris Eykamp: ok, I'll finish gutting recast [3/5/2011 2:12:04 AM] Chris Eykamp: I'm going to take out some things that we need for detour [3/5/2011 2:12:13 AM] buckyballreaction: so no detour? [3/5/2011 2:12:29 AM] Chris Eykamp: I guess not [3/5/2011 2:12:29 AM] z00mber: /getrole [3/5/2011 2:12:30 AM] z00mber: /role [3/5/2011 2:12:32 AM] buckyballreaction: er.. what do you mean by 'take out'? [3/5/2011 2:13:03 AM] Chris Eykamp: well, make the recast zone gen stuff use 2 ints per point, rather than 3 or 4 [3/5/2011 2:13:14 AM] Chris Eykamp: that will cut our memory use a fiar bit [3/5/2011 2:14:09 AM] Chris Eykamp: I'm also going to try to make it work with floats coming directly from triangle, with no mid-stream processing [3/5/2011 2:14:22 AM] buckyballreaction: ok [3/5/2011 2:14:43 AM] Chris Eykamp: and I'll try some optimizations when we're generating our zones [3/5/2011 2:14:59 AM] Chris Eykamp: maybe use the neighbor info that recast has computed, rather than recomputing it ourselves [3/5/2011 2:15:12 AM] Chris Eykamp: that should speed the whole package a fair bit [3/5/2011 2:15:30 AM] Chris Eykamp: well, a somewhat bit [3/5/2011 2:15:34 AM] z00mber: hmm [3/5/2011 2:15:58 AM] Chris Eykamp: it will speed it a fiar bit [3/5/2011 2:16:26 AM] *** Chris Eykamp has been promoted to conversation host. *** [3/5/2011 2:17:09 AM] Zoomber: chris, try right clicking on z00mber now and see if it says you can kick [3/5/2011 2:20:14 AM] buckyballreaction: ok, i think it may be a myth that floating point calculations are inherently slower than integer: it depends on the hardware [3/5/2011 2:22:20 AM] buckyballreaction: where does the current bitfighter A* implementation come from? [3/5/2011 2:22:58 AM] Chris Eykamp: my head [3/5/2011 2:23:11 AM] Chris Eykamp: I don't remember if I wrote it or borrowed the code [3/5/2011 2:23:16 AM] buckyballreaction: so bots are not originally from zap? [3/5/2011 2:23:17 AM] Chris Eykamp: I usually note when I steal code [3/5/2011 2:23:28 AM] Chris Eykamp: no [3/5/2011 2:23:34 AM] Chris Eykamp: they're my creation entirely [3/5/2011 2:23:44 AM] buckyballreaction: ok [3/5/2011 2:23:52 AM] Chris Eykamp: that's why they're so awesom [3/5/2011 2:23:53 AM] Chris Eykamp: e [3/5/2011 2:24:02 AM] Zoomber: bots from zap were very different [3/5/2011 2:24:10 AM] Zoomber: i believe there was a specific guy for bot wranging [3/5/2011 2:24:17 AM] Zoomber: i can tell you his name.. [3/5/2011 2:24:44 AM] Samuel Williams: [Saturday, March 05, 2011 1:30 AM] buckyballreaction: <<< hey sam, if you are around - i can't seem to get 'BotZoneGeneratorMode=6' to work and use recastNot sure if you got it working yourself, try BotZoneGeneratorMode=6 UseCache=No [3/5/2011 2:24:53 AM] Zoomber: ben garney [3/5/2011 2:24:58 AM] Zoomber: bot wrangler [3/5/2011 2:25:09 AM] buckyballreaction: thansk! [3/5/2011 2:25:43 AM] Zoomber: raptor, let me see if I can give you the /kick ability too [3/5/2011 2:25:51 AM] buckyballreaction: okey doke [3/5/2011 2:26:03 AM] Zoomber: but i got to go for tonight, ill try to refigure that out tomorrow [3/5/2011 2:26:08 AM] buckyballreaction: good night [3/5/2011 2:26:17 AM] Zoomber: but chris should already be an admin, i recall setting his role months ago [3/5/2011 2:26:39 AM] Zoomber: and /whois watusimoto brings up role as master [3/5/2011 2:26:50 AM] Zoomber: good night [3/5/2011 2:27:34 AM] Chris Eykamp: night [3/5/2011 2:27:54 AM] *** Zoomber removed Zoomber (onmac) from this conversation. *** [3/5/2011 2:27:59 AM] Zoomber: ah ok now /kick works [3/5/2011 2:28:08 AM] *** Zoomber added Zoomber (onmac) *** [3/5/2011 2:38:33 AM] buckyballreaction: looks like detour uses the polygon edge midpoints instead of the centroid to calculate cost [3/5/2011 2:40:18 AM] Chris Eykamp: here's what we do [3/5/2011 2:40:34 AM] Chris Eykamp: we find the boundary of each zone pair [3/5/2011 2:40:47 AM] Chris Eykamp: well, no, we just do cent->cent cost [3/5/2011 2:57:57 AM] buckyballreaction: i think i found a bug with the bots... on a team death match level, the bot doesn't seem to acquire a target via pathfinding until after they've seen you [3/5/2011 2:57:58 AM] Chris Eykamp: @sam, zones don't generate on geowar. is that because of the holes? [3/5/2011 2:58:40 AM] Samuel Williams: yes, probably tiny holes on edges [3/5/2011 3:00:17 AM] Chris Eykamp: what would it take to fill them? [3/5/2011 3:02:29 AM] Samuel Williams: my new Barrier::prepareRenderingGeometry() works very well for rendering, but have problems with possible tiny holes for triangulate, that is probably not visible by just looking for it. [3/5/2011 3:03:05 AM] Chris Eykamp: well, we round off to nearest whole number... wouldn't that plug tiny holes? [3/5/2011 3:05:00 AM] Samuel Williams: not sure. [3/5/2011 3:05:29 AM] Chris Eykamp: how tiny is tiny? [3/5/2011 3:08:11 AM] buckyballreaction: ok, sleepy time for me [3/5/2011 3:08:15 AM] buckyballreaction: good night [3/5/2011 3:09:14 AM] Chris Eykamp: night [3/5/2011 3:15:00 AM] Samuel Williams: maybe 2 segments that are half way overlapping will not overlap after round off. [3/5/2011 3:16:08 AM] Samuel Williams: overlaps: http://96.2.123.136/bitfighter/zap_d-20110305-0212146.png No overlap after round to whole grid line http://96.2.123.136/bitfighter/zap_d-20110305-0212324.png [3/5/2011 3:16:49 AM] Chris Eykamp: I'm trying truncation instead of rounding now... [3/5/2011 3:20:48 AM] Samuel Williams: another way is to not use any holes (holes.push_back) for triangulate, and after processing triangle list, check if center of each triangle is outside all barriers (remove triangles that is inside barriers) that could be a little slower.. [3/5/2011 3:22:09 AM] Chris Eykamp: I haven't looked at your algo for wall rendering. I'll take a look tomorrow and see if I can find the issue [3/5/2011 4:47:59 AM] Chris Eykamp: I broke bitfighter in the repo, hg is going nuts on me, I'm going to bed. [3/5/2011 4:48:09 AM] Chris Eykamp: to fix the code, comment out this block: [3/5/2011 4:48:10 AM] Chris Eykamp: if (!buildMeshAdjacency(mesh.polys, mesh.npolys, mesh.nverts, nvp)) { logprintf(LogConsumer::LogError, "rcBuildPolyMesh: Adjacency failed."); return false; } [3/5/2011 4:48:21 AM] Chris Eykamp: from recastMesh.cpp, 570 [3/5/2011 4:48:32 AM] Chris Eykamp: if one of you does this, please check it in [3/5/2011 4:48:35 AM] Chris Eykamp: good night [3/5/2011 4:50:26 AM] Samuel Williams: / [3/5/2011 10:36:40 AM] buckyballreaction: done [3/5/2011 10:36:48 AM] buckyballreaction: also made minor building fix [3/5/2011 10:37:49 AM] buckyballreaction: also, the merged zones are MUCH better without the 'q' option. there are much fewer of them and no crazy tiny ones [3/5/2011 12:36:21 PM] buckyballreaction: i found an interesting game I think you should take a look at - Gate88 [3/5/2011 12:36:45 PM] buckyballreaction: it may have ideas for bitfighter [3/5/2011 12:37:16 PM] buckyballreaction: it's old; free, not open-source; but it kinda neat [3/5/2011 12:37:22 PM] buckyballreaction: no user base, though [3/5/2011 12:54:06 PM] buckyballreaction: also the music is free for non-commerial purposes, the same guy who wrote the game did the music [3/5/2011 1:33:22 PM] buckyballreaction: he just asks that you contact him about it [3/5/2011 1:39:02 PM] buckyballreaction: an interesting take on why he won't open source the game: http://www.queasygames.com/old_blog/2005/03/duality-of-open-source-games.html [3/5/2011 2:28:52 PM] Zoomber: mornin [3/5/2011 2:31:35 PM] Zoomber: still have the irc stuff on my mind, and it brought up the thought, is it unhealthy for a computer to run 24 hours? I have a desktop computer I'm not really using for much of right now (and its powerfull). Its the computer I had my router assign a dynamic public ip to, so you can pretty much do anything up to vnc'ing it if you know the deets. I could put an irc chatroom on that, untill we have vps home for it, right? [3/5/2011 2:38:11 PM] Zoomber: quiet much [3/5/2011 2:42:34 PM] buckyballreaction: i think we should to one of two things if we consider IRC: 1. run our own server on either the master-server or game-server servers 2. use a publically available server like freenode [3/5/2011 2:45:45 PM] Zoomber: i just found an interesting gui server. im going to see what that looks like on my desktop [3/5/2011 2:46:06 PM] Zoomber: http://alturl.com/dj29t [3/5/2011 2:46:11 PM] Zoomber: thats the desktop [3/5/2011 2:47:33 PM] Zoomber: ppp-209-77-244-161.dsl.irvnca.pacbell.net/ or 209.77.244.161 [3/5/2011 2:48:35 PM] buckyballreaction: i've been researching IRC daemons, and it looks like InspIRCd is one of the best [3/5/2011 2:48:44 PM] buckyballreaction: if we don't want to go with freenode [3/5/2011 2:49:00 PM] Zoomber: ok [3/5/2011 2:49:17 PM] buckyballreaction: the advantage being we know we can keep our own logs and publically display the history if wanted [3/5/2011 2:49:27 PM] buckyballreaction: disadvantage means we maintain it [3/5/2011 2:49:28 PM] Zoomber: thats good [3/5/2011 2:49:31 PM] Zoomber: well [3/5/2011 2:50:03 PM] Zoomber: would it be hard on an ibm m52 thinkcentre desktop computer to be running 24/7? [3/5/2011 2:50:07 PM] buckyballreaction: it can also plug into mysql for the logs [3/5/2011 2:50:28 PM] buckyballreaction: nope, not even close [3/5/2011 2:50:43 PM] Zoomber: so i can just leave it running? [3/5/2011 2:51:07 PM] buckyballreaction: well, you will have increased cost due to energy usage [3/5/2011 2:51:13 PM] buckyballreaction: from the computer [3/5/2011 2:51:15 PM] Zoomber: I tend to get superstitions that the fan would break and it would overheat [3/5/2011 2:51:29 PM] buckyballreaction: but the server is minimal usage on a server for the level of chat traffic we are talking about [3/5/2011 2:51:51 PM] buckyballreaction: that is a very likely occurence with normal desktop machines [3/5/2011 2:51:56 PM] Zoomber: right [3/5/2011 2:52:19 PM] buckyballreaction: that's why i say we host it on one of the public bitfighter servers instead - since they are cared for by hosting companies [3/5/2011 2:53:03 PM] Zoomber: that was my idea origonally, but the only server we could use, if hes down for it, is _k's [3/5/2011 2:53:13 PM] Zoomber: sam's server is also desktop hosted, i believe [3/5/2011 2:53:21 PM] Zoomber: unless he has moved it now [3/5/2011 2:53:50 PM] buckyballreaction: why not the master server server? [3/5/2011 2:54:03 PM] buckyballreaction: all we'd have to do is convince watusimoto :) [3/5/2011 2:54:14 PM] Zoomber: i asked him to put it on the same site bitfighter.org is on [3/5/2011 2:54:22 PM] buckyballreaction: yes, exactly [3/5/2011 2:54:25 PM] Zoomber: he said, not untill he upgrades his server [3/5/2011 2:54:30 PM] buckyballreaction: ah yes [3/5/2011 2:54:31 PM] buckyballreaction: good point [3/5/2011 2:54:32 PM] Zoomber: i suppose this is a memory issue? [3/5/2011 2:54:43 PM] buckyballreaction: no, i think it's mostly a control issue [3/5/2011 2:54:53 PM] Zoomber: ah ok [3/5/2011 2:55:03 PM] buckyballreaction: i.e. he doesn't have control over the master server to install/remove software [3/5/2011 2:55:12 PM] Zoomber: ahh right [3/5/2011 2:55:34 PM] buckyballreaction: so i think that is a good plan: wait until we get it moved then maybe run our own IRC server [3/5/2011 2:55:44 PM] Zoomber: can you try something? [3/5/2011 2:55:48 PM] buckyballreaction: because then we can do all sorts of alterations if wanted [3/5/2011 2:55:50 PM] buckyballreaction: sure [3/5/2011 2:56:16 PM] Zoomber: can you see if you can reach my server via vnc? if you have a client on the computer your using? [3/5/2011 2:56:35 PM] buckyballreaction: sure [3/5/2011 2:56:48 PM] Zoomber: let me give you the info [3/5/2011 2:56:48 PM] buckyballreaction: vncviewer: ConnectToTcpAddr: connect: Connection refused Unable to connect to VNC server [3/5/2011 2:57:01 PM] Zoomber: when connecting to this? [3/5/2011 2:57:04 PM] Zoomber: 209.77.244.161 [3/5/2011 2:57:06 PM] buckyballreaction: i used 209.77.244.161 [3/5/2011 2:57:09 PM] buckyballreaction: yup [3/5/2011 2:57:11 PM] Zoomber: hmm [3/5/2011 2:57:16 PM] Zoomber: it was working remotely eariler [3/5/2011 2:57:23 PM] Zoomber: i was able to reach it from my itouch [3/5/2011 2:57:27 PM] buckyballreaction: the server is running [3/5/2011 2:57:32 PM] buckyballreaction: i detect it [3/5/2011 2:57:36 PM] buckyballreaction: but it just hates me [3/5/2011 2:57:40 PM] Zoomber: hmmm [3/5/2011 2:57:41 PM] Zoomber: lol [3/5/2011 2:57:44 PM] Zoomber: port maybe? [3/5/2011 2:58:07 PM] Zoomber: or, maybe it only accepts one vnc login at a time [3/5/2011 2:58:12 PM] buckyballreaction: that [3/5/2011 2:58:19 PM] Zoomber: 5900 port [3/5/2011 2:58:20 PM] buckyballreaction: or it only allows certain clients [3/5/2011 2:58:22 PM] buckyballreaction: yup [3/5/2011 2:58:25 PM] buckyballreaction: i connected to that port [3/5/2011 2:58:31 PM] Zoomber: errrr [3/5/2011 3:00:01 PM] Zoomber: hm, i dont know how to allow multible clients, but it seems like, my server is already set up to work with more than one, becuase there is a tab that says "when last user signs off, do action:" [3/5/2011 3:00:32 PM] buckyballreaction: is this from a mac? [3/5/2011 3:00:34 PM] Zoomber: when last client disconnects*, sorry [3/5/2011 3:00:39 PM] Zoomber: windows xp desktop [3/5/2011 3:00:44 PM] Zoomber: the ibm desktop [3/5/2011 3:00:49 PM] buckyballreaction: oooo [3/5/2011 3:00:53 PM] buckyballreaction: what server? [3/5/2011 3:00:56 PM] Zoomber: ok, ive disconnected, see if you can go to it now? [3/5/2011 3:00:59 PM] Zoomber: that ip [3/5/2011 3:01:10 PM] Zoomber: 209.77.244.161 [3/5/2011 3:01:12 PM] buckyballreaction: vncviewer: VNC server closed connection [3/5/2011 3:01:18 PM] buckyballreaction: so now it really hates me [3/5/2011 3:01:26 PM] Zoomber: naw, you just need the credentials [3/5/2011 3:01:29 PM] Zoomber: its password protected [3/5/2011 3:01:32 PM] Zoomber: :) [3/5/2011 3:01:44 PM] Zoomber: password should be "word" [3/5/2011 3:02:17 PM] Zoomber: i just dont have my monitor connected to it right now, so I cant check unless i open a vnc connection myslef [3/5/2011 3:02:29 PM] buckyballreaction: yeah, i doesn't like me anymore [3/5/2011 3:02:40 PM] Zoomber: gaerrrr [3/5/2011 3:02:47 PM] Zoomber: oh wait [3/5/2011 3:02:53 PM] Zoomber: it hates me too now! [3/5/2011 3:03:16 PM] buckyballreaction: i'm still getting: vncviewer: VNC server closed connection [3/5/2011 3:03:27 PM] buckyballreaction: so it immediately disconnects me when i connect [3/5/2011 3:03:34 PM] Zoomber: thats odd [3/5/2011 3:03:37 PM] buckyballreaction: maybe it had a three-strikes-and-your-out rule [3/5/2011 3:03:41 PM] Zoomber: and you have the password in? [3/5/2011 3:03:53 PM] buckyballreaction: it disconnects me before it even prompts me for the passwd [3/5/2011 3:04:01 PM] Zoomber: ooh [3/5/2011 3:04:06 PM] Zoomber: right, my bad [3/5/2011 3:04:20 PM] Zoomber: let me go get my monitor, i cant get in either now [3/5/2011 3:07:25 PM] Zoomber: eh ok its connected [3/5/2011 3:07:27 PM] Zoomber: oh hold on [3/5/2011 3:07:33 PM] Zoomber: now i see why [3/5/2011 3:07:42 PM] Zoomber: it turned off [3/5/2011 3:07:50 PM] Zoomber: i have to restart the service [3/5/2011 3:12:07 PM] Zoomber: aaah i see here [3/5/2011 3:12:14 PM] Zoomber: on access controll [3/5/2011 3:12:38 PM] Zoomber: ive added Ip:any [3/5/2011 3:13:33 PM] buckyballreaction: ok, i'll try again [3/5/2011 3:13:38 PM] Zoomber: wait [3/5/2011 3:13:47 PM] buckyballreaction: ok [3/5/2011 3:13:54 PM] Zoomber: hold on for one second, im just messing around with the setttings [3/5/2011 3:14:20 PM] buckyballreaction: okey doke [3/5/2011 3:16:30 PM] Zoomber: ooh, an in browser vnc viwere [3/5/2011 3:16:56 PM] Zoomber: haha, try this [3/5/2011 3:17:01 PM] Zoomber: if you have java [3/5/2011 3:17:01 PM] Zoomber: http://209.77.244.161:5800/ [3/5/2011 3:17:19 PM] buckyballreaction: ok [3/5/2011 3:17:25 PM] buckyballreaction: we use that at work sometimes [3/5/2011 3:17:59 PM] Zoomber: the quality is not as good as connecting by a reagular vnc client [3/5/2011 3:18:02 PM] Zoomber: but it works for me [3/5/2011 3:18:38 PM] buckyballreaction: i'm connecting, but it is super low bandwitch [3/5/2011 3:18:46 PM] buckyballreaction: i suggest lowering the color [3/5/2011 3:19:01 PM] Zoomber: better to lower my resolution actually [3/5/2011 3:19:12 PM] buckyballreaction: and disable background especially [3/5/2011 3:19:13 PM] Zoomber: the color aready should be low if connecting by java [3/5/2011 3:19:17 PM] Zoomber: oh, ok [3/5/2011 3:19:22 PM] Zoomber: done [3/5/2011 3:19:26 PM] buckyballreaction: java failed for me, but regular connection worked [3/5/2011 3:19:31 PM] Zoomber: really? [3/5/2011 3:19:46 PM] Zoomber: so, can you say, make a new folder on my desktop? [3/5/2011 3:20:06 PM] buckyballreaction: i still see background [3/5/2011 3:20:16 PM] buckyballreaction: it's sill refreshing the first screen [3/5/2011 3:20:20 PM] Zoomber: right, it must require a restart to [3/5/2011 3:20:22 PM] buckyballreaction: abotu 1/3 done... [3/5/2011 3:20:54 PM] Zoomber: what do you type in when you connect via client? [3/5/2011 3:21:03 PM] buckyballreaction: vncviewer 209.77.244.161 [3/5/2011 3:21:07 PM] buckyballreaction: command line [3/5/2011 3:21:14 PM] buckyballreaction: it works via port 5900 [3/5/2011 3:21:40 PM] Zoomber: hmm [3/5/2011 3:22:07 PM] Samuel Williams: hi [3/5/2011 3:22:10 PM] buckyballreaction: it's super slow [3/5/2011 3:22:12 PM] buckyballreaction: hi sam [3/5/2011 3:22:20 PM] Zoomber: are you still in? the vnc status icon has gone back to blank [3/5/2011 3:22:28 PM] buckyballreaction: are you or someone at your house downloading something? [3/5/2011 3:22:29 PM] Zoomber: hi [3/5/2011 3:22:44 PM] Zoomber: only bitfighter is open [3/5/2011 3:22:49 PM] buckyballreaction: because i have almost no bandwidth to your computer [3/5/2011 3:22:56 PM] Zoomber: then again, it is an open network, so you never know [3/5/2011 3:22:57 PM] buckyballreaction: and i have a fiber connection to the internet [3/5/2011 3:23:00 PM] Zoomber: strange [3/5/2011 3:23:08 PM] Zoomber: thats especially strange then [3/5/2011 3:23:12 PM] Zoomber: oh, your in [3/5/2011 3:23:14 PM] buckyballreaction: still see background [3/5/2011 3:23:19 PM] buckyballreaction: 1/6 refreshed... [3/5/2011 3:23:22 PM] Zoomber: ok, let me restart the whole service [3/5/2011 3:23:25 PM] buckyballreaction: ok [3/5/2011 3:23:38 PM] Zoomber: ok [3/5/2011 3:23:40 PM] Zoomber: now, hopefully [3/5/2011 3:23:43 PM] buckyballreaction: and i'll try super high compression [3/5/2011 3:24:03 PM] Zoomber: can you specify resolution from the client? [3/5/2011 3:24:13 PM] buckyballreaction: nope [3/5/2011 3:24:19 PM] buckyballreaction: it's all server side [3/5/2011 3:24:21 PM] Zoomber: right now i have 1400 by 1050 pixels [3/5/2011 3:24:30 PM] Zoomber: that could be pretty consuming huh? [3/5/2011 3:24:56 PM] buckyballreaction: no doubt about it :) [3/5/2011 3:25:08 PM] buckyballreaction: i'm am going to try and connect with compresslevel 9 [3/5/2011 3:25:16 PM] Zoomber: lets make it 1024 by 768 [3/5/2011 3:25:42 PM] Zoomber: eeeew [3/5/2011 3:25:50 PM] Zoomber: it looks awfull on the monitor [3/5/2011 3:26:09 PM] Samuel Williams: i use 1024 by 768 as i use CRT monitor [3/5/2011 3:26:36 PM] Zoomber: yeah, but im on a 22 inch flat panel, which is wide [3/5/2011 3:26:44 PM] Zoomber: and it stretches to fill screen [3/5/2011 3:26:51 PM] Zoomber: no black sidebars [3/5/2011 3:26:55 PM] Zoomber: oh awesome raptor [3/5/2011 3:27:11 PM] Samuel Williams: my crt (17 inch) can go as high as 2048 by 1536, but too low refresh rate. [3/5/2011 3:27:59 PM] buckyballreaction: success [3/5/2011 3:28:05 PM] Zoomber: hahahaha [3/5/2011 3:28:11 PM] Zoomber: thats much faster than skype [3/5/2011 3:29:00 PM] buckyballreaction: i actually use a form of VNC to diagnose my dad's computer when things go wrong... [3/5/2011 3:29:11 PM] Zoomber: could you try it from http://209.77.244.161:5800/ now? [3/5/2011 3:29:12 PM] buckyballreaction: way across the country [3/5/2011 3:29:49 PM] Zoomber: if you go to the page, it should give you the options to select color level and encoding [3/5/2011 3:30:02 PM] karamazovapy: idea - what if the chat in the game lobby WAS an irc channel? [3/5/2011 3:30:20 PM] buckyballreaction: @k, yes! [3/5/2011 3:30:33 PM] Zoomber: wed have to make changes to the master [3/5/2011 3:30:43 PM] karamazovapy: it could revert to local vanilla plain jane lobby if the irc was out of communication [3/5/2011 3:30:44 PM] buckyballreaction: we could embed a tiny IRC client [3/5/2011 3:30:44 PM] Zoomber: and watusimoto isnt in a position to do that [3/5/2011 3:30:46 PM] Zoomber: but i like the idea [3/5/2011 3:30:58 PM] karamazovapy: it could connect to a different irc server [3/5/2011 3:31:05 PM] karamazovapy: no reason it has to be bitfighter.org's [3/5/2011 3:31:12 PM] Zoomber: ok [3/5/2011 3:31:37 PM] karamazovapy: there's plenty of open source irc client stuff out there [3/5/2011 3:31:57 PM] buckyballreaction: @_k, I have two ideas: 1. run our own IRCd on bitfighter.org (after watusimoto moves it so we have more control) 2. use something like freenode [3/5/2011 3:31:59 PM] karamazovapy: we could make it look pretty much the same as it does now, but you could connect from any irc client [3/5/2011 3:32:19 PM] buckyballreaction: and we figure no matter what we'd have two channgels: play and dev [3/5/2011 3:32:34 PM] karamazovapy: sounds fine to me [3/5/2011 3:33:12 PM] buckyballreaction: @sam, if i wanted to add a buffer to create zones a short distance away from walls, where would i do that? [3/5/2011 3:33:16 PM] karamazovapy: ideal, if we can have our ingame client mute usual server logon messages and join new players with guest names [3/5/2011 3:33:17 PM] Zoomber: wait, whos on right now? [3/5/2011 3:33:38 PM] karamazovapy: I just got back to skype...I need to get back into the irc habit [3/5/2011 3:34:07 PM] buckyballreaction: (i am already trying in BotNavMeshZone.cpp:840 with something like this: F32 bufferedX = ctr.x >= 0 ? ctr.x + 24 : ctr.x - 24; F32 bufferedY = ctr.y >= 0 ? ctr.y + 24 : ctr.y - 24; holes.push_back(bufferedX); holes.push_back(bufferedY); [3/5/2011 3:34:48 PM] buckyballreaction: @_k, have you ever played a game called gate88? [3/5/2011 3:35:27 PM] karamazovapy: can't say that I have...but it's been so long since I was on irc, my registrations have all expired [3/5/2011 3:36:05 PM] buckyballreaction: if you get the time, check it out: it is also a 2d type shooter, but has a built in IRC client and cool music [3/5/2011 3:36:13 PM] buckyballreaction: not open source, but free [3/5/2011 3:36:36 PM] karamazovapy: I'll check it out [3/5/2011 3:37:03 PM] buckyballreaction: it has absolutley no community anymore, though [3/5/2011 3:37:10 PM] buckyballreaction: it's old [3/5/2011 3:37:12 PM] buckyballreaction: 2005 [3/5/2011 3:37:24 PM] karamazovapy: interesting graphics [3/5/2011 3:37:40 PM] buckyballreaction: yeah, the guy who made is both a musician and an artist [3/5/2011 3:37:46 PM] karamazovapy: they remind me of 90's "3D" graphics [3/5/2011 3:38:17 PM] karamazovapy: taste-the-polygon style [3/5/2011 3:38:32 PM] buckyballreaction: haha, yup [3/5/2011 3:39:50 PM] karamazovapy: this chat seems to work a lot like I was thinking [3/5/2011 3:39:58 PM] karamazovapy: we'd want to clean it up a lot for our purposes [3/5/2011 3:40:02 PM] buckyballreaction: yes, me too [3/5/2011 3:40:50 PM] karamazovapy: @zoomber - http://www.queasygames.com/gate88/gate88_6.jpg [3/5/2011 3:42:04 PM] Zoomber: ooooh [3/5/2011 3:42:32 PM] buckyballreaction: i'm diggin' the music... [3/5/2011 3:42:34 PM] Zoomber: i find it strange almost every forum category on their forums has its last post november 16th [3/5/2011 3:42:57 PM] buckyballreaction: only spam bots have posted to those forums for months i think [3/5/2011 3:43:02 PM] karamazovapy: yeah, I checked [3/5/2011 3:43:05 PM] buckyballreaction: like i say the game is deader than dead [3/5/2011 3:43:07 PM] karamazovapy: a couple responses to the spammers [3/5/2011 3:43:32 PM] buckyballreaction: but i thought that it had some nead ideas/implementations we could consider(the game, i mean) [3/5/2011 3:44:09 PM] karamazovapy: you mean like the shoes or handbags? [3/5/2011 3:44:21 PM] karamazovapy: http://is.gd/etUvy http://is.gd/etUO7 [3/5/2011 3:44:38 PM] karamazovapy: aw, they just rickroll [3/5/2011 3:44:39 PM] Zoomber: three bots have posted on one topic [3/5/2011 3:44:42 PM] buckyballreaction: haha [3/5/2011 3:44:43 PM] karamazovapy: I was hoping for shoes and handbags [3/5/2011 3:44:45 PM] Zoomber: made by a bot [3/5/2011 3:44:53 PM] Zoomber: theyre talking to each-other [3/5/2011 3:45:51 PM] karamazovapy: the "spam-free" forums aren't even devoted to the game anymore [3/5/2011 3:45:53 PM] karamazovapy: http://gateway88.forumotion.net/ [3/5/2011 3:47:49 PM] karamazovapy: oh well...I have a date and need to go buy a bottle of vino [3/5/2011 3:48:05 PM] karamazovapy: oh wait! she's french! vin. [3/5/2011 3:48:18 PM] buckyballreaction: and cheese, no? [3/5/2011 3:48:31 PM] karamazovapy: nah, she's cooking. I'm just wining. [3/5/2011 3:49:09 PM] karamazovapy: wow - hadn't noticed this - Most users ever online was 29 on Tue Feb 08, 2011 2:51 am [3/5/2011 3:49:30 PM] buckyballreaction: hey we beat our old record! [3/5/2011 3:49:43 PM] Zoomber: does anyone know how to properly installl an apache server? [3/5/2011 3:49:47 PM] buckyballreaction: yes [3/5/2011 3:49:52 PM] buckyballreaction: don't do it [3/5/2011 3:49:56 PM] buckyballreaction: use lighttpd instead [3/5/2011 3:50:00 PM] Zoomber: ok [3/5/2011 3:50:13 PM] buckyballreaction: sorry, that is my bias against apache: it's crazy to configure [3/5/2011 3:50:25 PM] Zoomber: only reason i was going to was apple computers used to use apache [3/5/2011 3:50:33 PM] Zoomber: they would come standard with built in apache web servers [3/5/2011 3:50:37 PM] buckyballreaction: lighttpd is a little easier, but not as popular [3/5/2011 3:50:49 PM] Zoomber: im not sure if they still have it, but they changed the page [3/5/2011 3:50:59 PM] Zoomber: but i have nothing on windows [3/5/2011 3:51:00 PM] buckyballreaction: you mean for the new Mac OS? [3/5/2011 3:51:08 PM] Zoomber: 10.6 and above [3/5/2011 3:51:12 PM] buckyballreaction: there are tons of lightweight servers [3/5/2011 3:51:28 PM] buckyballreaction: even try: http://code.google.com/p/mongoose/ [3/5/2011 3:51:29 PM | Edited 3:51:41 PM] Samuel Williams: i did install my apache/php on my windows xp [3/5/2011 3:51:34 PM] Zoomber: i meant, i had apache on my mac, so i thought of getting that on xp [3/5/2011 3:51:59 PM] buckyballreaction: hi sam [3/5/2011 3:52:05 PM] buckyballreaction: did you get my question above? [3/5/2011 3:52:28 PM] Zoomber: i cant open any .gz files on the computer either [3/5/2011 3:52:38 PM] buckyballreaction: just download 7-zip.org [3/5/2011 3:52:45 PM] Zoomber: lame, guess i have to go through that stuffit or 7zip time [3/5/2011 3:52:56 PM] Samuel Williams: [Saturday, March 05, 2011 3:33 PM] buckyballreaction: <<< @sam, if i wanted to add a buffer to create zones a short distance away from walls, where would i do that?that might be hard to do, especially for polygon barriers (BarrierMakerS) [3/5/2011 3:53:04 PM] buckyballreaction: yes [3/5/2011 3:53:06 PM] buckyballreaction: that's the one [3/5/2011 3:53:48 PM] buckyballreaction: it would have to happen after prepareRenderingGeometry() [3/5/2011 3:53:54 PM] buckyballreaction: and before triangle [3/5/2011 4:11:48 PM] buckyballreaction: huh,m interesting [3/5/2011 4:12:00 PM] buckyballreaction: is there a logical ordering to the points being fed to triangle [3/5/2011 4:12:30 PM] buckyballreaction: i.e. are they always a coordinate pair of a particular box section? [3/5/2011 4:14:02 PM] buckyballreaction: or are they always the lower-right and upper -left /etc? [3/5/2011 4:20:57 PM] Samuel Williams: segments may be fed into triangulate in some random order. [3/5/2011 4:21:08 PM] buckyballreaction: drat [3/5/2011 4:40:51 PM] karamazovapy: how do the algorithms know where the edge of a barrier is versus the location of its vertices? [3/5/2011 4:42:01 PM] buckyballreaction: it calculates the edges from each barrier segment using the points from the vertices [3/5/2011 4:43:05 PM] buckyballreaction: since eahc segment is a rectangle [3/5/2011 4:43:14 PM] buckyballreaction: it's back to geometry class [3/5/2011 4:43:32 PM] karamazovapy: oh, so it uses the vertices as midpoints for the ends of each rectangle? [3/5/2011 4:45:18 PM] karamazovapy: then again, that wouldn't really answer my question either [3/5/2011 4:46:38 PM] buckyballreaction: i'm sending you a diagram... [3/5/2011 4:47:33 PM] buckyballreaction: http://96.2.123.136/upload/forK.png [3/5/2011 4:48:04 PM] buckyballreaction: so for every segment there is 4 vertices [3/5/2011 4:48:33 PM] buckyballreaction: which can be modeled by using only two points: x1, y1 and x2, y2 [3/5/2011 4:48:51 PM] karamazovapy: oh oh oh oh oh - so the level code never enters into it? [3/5/2011 4:49:10 PM] buckyballreaction: it does at first [3/5/2011 4:49:16 PM] karamazovapy: only in the initial render though [3/5/2011 4:49:23 PM] buckyballreaction: yes [3/5/2011 4:49:33 PM] buckyballreaction: then these points are extrapolated from the level code [3/5/2011 4:49:40 PM] karamazovapy: yeah, I gathered [3/5/2011 4:51:30 PM] karamazovapy: it would seriously increase your zone generation time, but you could have the code compare the sizes of x1, x2; y1,y2 and then add or subtract some tiny fraction accordingly to get your space...of course, you've already considered and rejected that... [3/5/2011 4:51:57 PM] buckyballreaction: haha [3/5/2011 4:51:59 PM] karamazovapy: it would be so much easier psychologically if zones were generated from level code instead of the render [3/5/2011 4:52:04 PM] buckyballreaction: that is exactly what i'm trying to code... [3/5/2011 4:52:40 PM] karamazovapy: you'll get overlap all over the place unless you do some serious heavy lifting [3/5/2011 4:53:38 PM] karamazovapy: or does triangle magically fix overlap problems? [3/5/2011 4:54:15 PM] buckyballreaction: actually most of the heavy lifting is done, and Triangle fills in the gaps [3/5/2011 4:54:47 PM] buckyballreaction: the problem now is that we want to add a buffer around the walls so the bots don't consider corridors that are too narrow, etc [3/5/2011 4:55:02 PM] buckyballreaction: so i have to re-figure out the geometry again and add the buffer [3/5/2011 4:55:58 PM] karamazovapy: I don't know enough about how the zones are generated to have an intelligent conversation about this...lol [3/5/2011 4:58:20 PM] buckyballreaction: so actually watusimoto finished the zone generation: http://96.2.123.136/upload/snapshot7.png [3/5/2011 4:58:45 PM] buckyballreaction: and it's fast [3/5/2011 4:58:48 PM] buckyballreaction: and pretty good [3/5/2011 4:59:09 PM] karamazovapy: but 15 is too narrow [3/5/2011 4:59:18 PM] karamazovapy: or course [3/5/2011 4:59:32 PM] buckyballreaction: yes [3/5/2011 4:59:39 PM] karamazovapy: *of course [3/5/2011 4:59:54 PM] buckyballreaction: i am trying to add a zone-generation buffer so that that zone doesn't even get created [3/5/2011 5:00:30 PM] karamazovapy: yeah, I understood the problem when it came up a few days ago [3/5/2011 5:00:38 PM] buckyballreaction: ah ok [3/5/2011 5:01:01 PM] karamazovapy: how hard would it be to find and remove too-narrow zones from the list of options after zone generation? [3/5/2011 5:01:22 PM] buckyballreaction: ah, that's a good idea.... [3/5/2011 5:01:33 PM] karamazovapy: seems easier to code, anyway [3/5/2011 5:01:36 PM] buckyballreaction: in fact, that's probably easier to code [3/5/2011 5:01:40 PM] buckyballreaction: :) [3/5/2011 5:01:54 PM] buckyballreaction: but [3/5/2011 5:02:08 PM] buckyballreaction: we still need the bots to stop hitting the walls when they travel [3/5/2011 5:02:19 PM] buckyballreaction: in a druken stupor [3/5/2011 5:02:21 PM] karamazovapy: yeah, yours is a two for one fix [3/5/2011 5:03:28 PM] karamazovapy: unless it would be easier to have the pathfinding algorithm plan a minimum radius around corners [3/5/2011 5:03:38 PM] buckyballreaction: well... [3/5/2011 5:03:50 PM] buckyballreaction: that's what we had originally hoped for with the new path-finding algo [3/5/2011 5:04:31 PM] buckyballreaction: if i could only get it integrated... [3/5/2011 5:04:45 PM] karamazovapy: is that recast? [3/5/2011 5:05:04 PM] buckyballreaction: recast = zone generation, detour = pathfinding [3/5/2011 5:05:17 PM] karamazovapy: ah, gotcha [3/5/2011 5:07:30 PM] buckyballreaction: integration of detour has been difficult for me - so i figured i give this a try for a day or two [3/5/2011 5:08:58 PM] karamazovapy: I just saw "in a drunken stupor" out of the corner of my eye and suddenly thought I'd missed the most interesting part of this conversation [3/5/2011 5:09:10 PM] buckyballreaction: haha [3/5/2011 5:09:19 PM] buckyballreaction: no - just a bot description [3/5/2011 5:09:48 PM] karamazovapy: that's the real punchline - I read it the first time and did a double take anyway [3/5/2011 5:09:58 PM] buckyballreaction: haha [3/5/2011 5:24:40 PM] buckyballreaction: we need a way to notify uses in the 'join game' screen that the server they see might be from the editor [3/5/2011 5:25:21 PM] buckyballreaction: i've had to tell 4 different people in the last two days that I am testing something and they will be kicked soon [3/5/2011 5:48:11 PM] karamazovapy: I just added a server password to my .ini file [3/5/2011 5:52:43 PM] buckyballreaction: so are thos bots on your second server you're own creation? [3/5/2011 5:53:06 PM] karamazovapy: some original code, some borrowed [3/5/2011 5:53:10 PM] buckyballreaction: cool [3/5/2011 6:13:52 PM] buckyballreaction: @sam or watusimoto - i have so far been unable to build in a buffer for the holes input to triangle [3/5/2011 6:14:32 PM] buckyballreaction: i gues i don't understand the sxact structure of barrier->mRenderLineSegments [3/5/2011 10:58:38 PM] Chris Eykamp: [Saturday, March 05, 2011 5:24 PM] buckyballreaction: <<< we need a way to notify uses in the 'join game' screen that the server they see might be from the editorYou mean like a little letter in the server details column... like perhaps a "T"? [3/5/2011 10:59:37 PM] Chris Eykamp: [Saturday, March 05, 2011 6:13 PM] buckyballreaction: <<< @sam or watusimoto - i have so far been unable to build in a buffer for the holes input to triangleI can probably help if I better understand the question [3/5/2011 11:28:27 PM] buckyballreaction: I was trying to implement "puffy walls" [3/5/2011 11:28:42 PM] Chris Eykamp: I saw [3/5/2011 11:29:34 PM] buckyballreaction: but i fail miserably because I am not familiar with the barrier geometry [3/5/2011 11:29:57 PM] Chris Eykamp: we start out with a simple line -- a series of vertices [3/5/2011 11:30:09 PM] Chris Eykamp: we break that up into a series of 2-vertex segments [3/5/2011 11:30:22 PM] Chris Eykamp: each of those gets "puffed out" to the width of the walls [3/5/2011 11:30:45 PM] Chris Eykamp: the endpoints get extended a little based on some computation that reduces the gaps between segments [3/5/2011 11:30:58 PM] Chris Eykamp: then we store those for claculating collisions [3/5/2011 11:31:06 PM] Chris Eykamp: then we generate the outline somehow for rendering [3/5/2011 11:31:17 PM] Chris Eykamp: that's the basic process, as far as I can recall\ [3/5/2011 11:48:04 PM] buckyballreaction: so what gets built in the for look on line 798 of BotNavMeshZone? [3/5/2011 11:48:07 PM] buckyballreaction: for(S32 i = 0; i < game->mGameObjects.size(); i++) [3/5/2011 11:48:10 PM] buckyballreaction: for loop [3/5/2011 11:50:58 PM] Chris Eykamp: PrepareRenderingGeometry() builds the blue outline you see at the edges of the walls, I think. [3/5/2011 11:51:24 PM] Chris Eykamp: yes, and we take that linework to create the outline of our holes [3/5/2011 11:51:32 PM] Chris Eykamp: with no interior segments [3/5/2011 11:51:51 PM] Chris Eykamp: so that's what you'd want to puff [3/5/2011 11:52:10 PM] Chris Eykamp: at lesat for the moment [3/5/2011 11:52:23 PM] buckyballreaction: ah ok [3/5/2011 11:52:29 PM] buckyballreaction: and that's what i've been trying to do [3/5/2011 11:52:50 PM] buckyballreaction: but either: 1. i only get the buffer to work in one direction 2. i totally mess up the zones [3/5/2011 11:52:56 PM] Chris Eykamp: have you nee using sin and cos? [3/5/2011 11:53:13 PM] Chris Eykamp: been using [3/5/2011 11:53:15 PM] buckyballreaction: i would need those for angled barriers [3/5/2011 11:53:25 PM] Chris Eykamp: well, for all barriers [3/5/2011 11:53:32 PM] Chris Eykamp: just checking [3/5/2011 11:53:34 PM] buckyballreaction: i have just been trying on horizontal and vertical ones, so not yet [3/5/2011 11:53:36 PM] Chris Eykamp: doing withotu that would be harder [3/5/2011 11:54:42 PM] Chris Eykamp: sam rewrote this, and I haven't looked at it since, so I'm not really clear on how it works [3/5/2011 11:54:59 PM] buckyballreaction: the thing is, is that i can't make heads or tails of the line segments: i can't tell if the come out ordered or not [3/5/2011 11:55:11 PM] buckyballreaction: brb [3/6/2011 12:37:12 AM] buckyballreaction: ok back to work [3/6/2011 12:50:43 AM] buckyballreaction: actually i'm going to hit the sack [3/6/2011 12:50:46 AM] buckyballreaction: night [3/6/2011 12:51:13 AM] Chris Eykamp: night [3/6/2011 12:51:35 AM] Chris Eykamp: I'm turning in early too, but hopefully not till I get this project done! [3/6/2011 3:21:28 AM] Zoomber: irc.freenode.net #bitfighter [3/6/2011 3:21:43 AM] Zoomber: just a start [3/6/2011 4:12:14 AM] Samuel Williams: IT took me a while, i had to get IRC client maybe this (my IRC server): 96.2.123.136 #bitfighter Who knows, but running my own server can allow customizing. [3/6/2011 4:18:24 AM] Samuel Williams: The problem i see on IRC may be that you don't get to see history chat (chat before you join) [3/6/2011 4:32:13 AM] Zoomber: yeah, I got an irc server up and running on my ibm desktop too [3/6/2011 4:32:15 AM] Zoomber: as well as vnc [3/6/2011 4:32:23 AM] Zoomber: i also made a channel on freenode [3/6/2011 4:32:38 AM] Zoomber: On 3/6/11, at 1:18 AM, Samuel Williams wrote: > The problem i see on IRC may be that you don't get to see history chat (chat before you join) Yes! thats why i like skype! [3/6/2011 4:33:52 AM] Samuel Williams: some IRC server that i have may be open source, i could add some history tracking and /history command or something.. [3/6/2011 4:36:04 AM] Zoomber: i recently downloaded an irc gui service application on my pc [3/6/2011 4:36:16 AM] Zoomber: I have yet to run it, but it does look quite promising [3/6/2011 4:36:24 AM] Zoomber: and I believe it supports history built in [3/6/2011 9:49:43 AM] karamazovapy: we could always run a bot to log, if history is that important [3/6/2011 4:11:23 PM] karamazovapy: anybody read the latest brilliant engineer suggestion? [3/6/2011 7:11:35 PM] buckyballreaction: i like the idea of desctuctible walls [3/6/2011 7:21:15 PM] buckyballreaction: sorry my connection is goofy [3/6/2011 7:21:28 PM] Samuel Williams: hi [3/6/2011 7:21:33 PM] buckyballreaction: hi [3/6/2011 7:21:44 PM] Samuel Williams: i saw you on my IRC [3/6/2011 7:21:48 PM] buckyballreaction: yeah [3/6/2011 7:21:59 PM] buckyballreaction: so what do you think about using IRC in-game? [3/6/2011 7:22:08 PM] buckyballreaction: at least for lobby [3/6/2011 7:22:54 PM] Samuel Williams: maybe ok, as the game lobby is basically mostly IRC-like [3/6/2011 7:23:43 PM] buckyballreaction: would you think it better to host our own? or plug into freenode (or the like) [3/6/2011 7:24:17 PM] Samuel Williams: hosting may allow better server customizing. [3/6/2011 7:24:41 PM] buckyballreaction: yes, and we can spit the logs to a database for our own history purposes [3/6/2011 7:35:33 PM] buckyballreaction: are you wroking on anything specific right now? [3/6/2011 7:37:33 PM] Samuel Williams: nothing much, i was checking the source of bewareircd - it appears to be fully written in LUA language or similar, all the source files is ".pas" [3/6/2011 7:37:47 PM] buckyballreaction: that is freepascal [3/6/2011 7:38:45 PM] Samuel Williams: looks like it have nearly same language as LUA. [3/6/2011 7:39:40 PM] buckyballreaction: i have never programmed in it [3/6/2011 7:39:50 PM] buckyballreaction: but i know a few other projects that use it [3/6/2011 7:40:56 PM] Samuel Williams: i maybe want a IRC server that the source is C++ language, not freepascal. [3/6/2011 7:41:56 PM] buckyballreaction: http://en.wikipedia.org/wiki/Comparison_of_Internet_Relay_Chat_daemons [3/6/2011 7:42:19 PM] buckyballreaction: I think InspIRCd is the most feature-rich [3/6/2011 7:42:41 PM] Samuel Williams: that says beware IRCD is Delphi language. [3/6/2011 7:43:06 PM] buckyballreaction: delphi is a dialect of pascal [3/6/2011 7:43:08 PM] buckyballreaction: (I think) [3/6/2011 7:47:12 PM] buckyballreaction: do you know if we use any GPL 3.0 licensed code in bitfighter? [3/6/2011 7:57:48 PM] buckyballreaction: ha! [3/6/2011 7:58:01 PM] buckyballreaction: found a way to ping the master server: http://opentnl.cvs.sourceforge.net/viewvc/opentnl/tnl/tnlping/tnlping.cpp?revision=1.1&view=markup [3/6/2011 7:58:17 PM] buckyballreaction: from the old opentnl project [3/6/2011 7:58:22 PM] buckyballreaction: called 'tnlping' [3/6/2011 8:00:26 PM] buckyballreaction: to compile: 1. gcc -c -o tnlping.o -Ibitfighter/tnl/ tnlping.cpp 2. gcc -o tnlping tnlping.o bitfighter/tnl/libtnl.a bitfighter/libtomcrypt/libtomcrypt.a -lstdc++ [3/6/2011 8:00:41 PM] buckyballreaction: then run: ./tnlping IP:67.18.11.66:25955 [3/6/2011 9:13:40 PM] buckyballreaction: ok i have a script set up on the game-server server that checks the master status and sends me an e-mail if it is down [3/6/2011 9:14:19 PM] buckyballreaction: @watusimoto, i want it to send you the e-mail instead because you are the only with access to master (I think), which e-mail should I use? [3/6/2011 11:49:33 PM] buckyballreaction: apparently SDL 1.3 is going to have commercial licensing [3/6/2011 11:51:43 PM] buckyballreaction: but we'd just use 1.2 anyways [3/6/2011 11:52:10 PM] buckyballreaction: since 1.3 is still prerelease [3/6/2011 11:52:25 PM] Samuel Williams: who knows, there might be freeSDL 1.3 or something [3/6/2011 11:52:45 PM] buckyballreaction: oh wait - it is still free: http://www.galaxygameworks.com/faqs.html#5 [3/6/2011 11:55:13 PM] buckyballreaction: sam, maybe you can help me understand the difference [3/6/2011 11:55:47 PM] buckyballreaction: what is the difference between: mRenderLineSegments and mRenderOutlineGeometry [3/6/2011 11:55:50 PM] buckyballreaction: for a barrier? [3/6/2011 11:58:08 PM] buckyballreaction: and why are we using mRenderLineSegments to fill out the holes for Triangle? [3/6/2011 11:59:45 PM] Samuel Williams: Vector mRenderOutlineGeometry; ///< Actual geometry used for rendering outline. [3/6/2011 11:59:51 PM] Samuel Williams: Vector mRenderLineSegments; ///< The clipped line segments representing this barrier. [3/6/2011 11:59:57 PM] buckyballreaction: yes [3/7/2011 12:00:01 AM] buckyballreaction: and why are they different? [3/7/2011 12:00:59 AM] buckyballreaction: is one just another way of representing the other? [3/7/2011 12:01:11 AM] Samuel Williams: i don't know... [3/7/2011 12:06:00 AM] Samuel Williams: i guess there is no more need to have mRenderOutlineGeometry, it is not used anywhere. [3/7/2011 12:07:00 AM] buckyballreaction: i am trying to "puff" out the holes for Triangle to give bot zones a buffer, but I don't completely understand the structure of mRenderLineSegments [3/7/2011 12:10:24 AM] Chris Eykamp: [Sunday, March 06, 2011 9:14 PM] buckyballreaction: <<< @watusimoto, i want it to send you the e-mail instead because you are the only with access to master (I think), which e-mail should I use?wat@bitf.org [3/7/2011 12:10:35 AM] buckyballreaction: okey doke [3/7/2011 12:11:44 AM] buckyballreaction: you should get a test e-mail within two minutes... [3/7/2011 12:11:56 AM] Chris Eykamp: [Sunday, March 06, 2011 11:59 PM] buckyballreaction: <<< and why are they different?One has the interior line segments removed, the other does not. the interior linesegments need to be removed because the in-hole triangels are removed using a process similar to flood-paint. they'll stop at an interior wall. For rendering, you want simple rectanlges, and overlap doesn't matter. [3/7/2011 12:12:04 AM] buckyballreaction: don't worry, the master isn't down, i just fed it false info to say it is [3/7/2011 12:12:29 AM] Chris Eykamp: sorry -- for fill you want simple rectcagnels, for outline you want interior segments removed [3/7/2011 12:13:24 AM] Chris Eykamp: got iy [3/7/2011 12:14:20 AM] buckyballreaction: cool, i'll change it back [3/7/2011 12:14:44 AM] buckyballreaction: right now it tests the server every minute, but that can be reduced to 2, 5, 10 min. whatever [3/7/2011 12:15:09 AM] Chris Eykamp: if server goes down, how often does it send mails? [3/7/2011 12:15:16 AM] buckyballreaction: onle once :) [3/7/2011 12:15:22 AM] Chris Eykamp: then check every minute [3/7/2011 12:15:31 AM] buckyballreaction: i built in a locking mechanism of sorts [3/7/2011 12:16:43 AM] buckyballreaction: if you're curious, the script is at: /root/bin/check_master_status.sh [3/7/2011 12:17:42 AM] Chris Eykamp: good [3/7/2011 12:17:45 AM] buckyballreaction: so about the holes for triangle: you're using mRenderLineSegments but only pulling out every other 2 points [3/7/2011 12:18:22 AM] Chris Eykamp: the lines are (probably) in format a-b b-c c-d d-a [3/7/2011 12:18:31 AM] Chris Eykamp: triangle probably wants a-b-c-d [3/7/2011 12:18:42 AM] buckyballreaction: ahhh [3/7/2011 12:18:47 AM] buckyballreaction: that seems about right [3/7/2011 12:18:49 AM] buckyballreaction: there are 8 [3/7/2011 12:21:47 AM] buckyballreaction: the first set of points in the loop i get are these (from my test level): -25,0 0,0 -25,-789 -25,0 -25,-789 -25, -789 -25, -740 25, -25 [3/7/2011 12:22:02 AM] buckyballreaction: which looks really wierd [3/7/2011 12:22:56 AM] Chris Eykamp: agreed [3/7/2011 12:23:07 AM] buckyballreaction: and the loop pulls out index 0,1,4,5 [3/7/2011 12:23:50 AM] Chris Eykamp: what do you mean "pulls out" [3/7/2011 12:24:12 AM] buckyballreaction: i am inspecting the object mRenderLineSegments in eclipse as the loop processes them one by one [3/7/2011 12:25:54 AM] buckyballreaction: second segment processed: -25,-790 -25,-790 -25,-790 264,-790 264,-790 264,-790 25,-740 246,-740 [3/7/2011 12:26:05 AM] buckyballreaction: and i may be grabbing the data totally wrong [3/7/2011 12:27:12 AM] Chris Eykamp: why not go to where the points are rendered and dump them as they're drawn [3/7/2011 12:27:54 AM] buckyballreaction: that is what i am thinking now [3/7/2011 12:28:09 AM] buckyballreaction: maybe put them in another structure for post processing later in Triangle [3/7/2011 12:29:44 AM] Samuel Williams: maybe they are rounded, if not rounded, they might be -24.9,-790 -25.1,-790 -25.4,-790 [3/7/2011 12:30:07 AM] buckyballreaction: yes, they are rounded [3/7/2011 12:32:05 AM] buckyballreaction: @watusimoto, for the master-server check, I had to install: cron, sendmail, mailx; i hope that was ok [3/7/2011 12:32:17 AM] Zoomber: for anyone whos a very experienced windows user: If I have two wireless usb interfaces attached to my desktop, and they're both running and connected to the same network, (or different for that matter), will windows use both devices for data? or will it just use the higher perferred one? Can I make it so it can use both if so? [3/7/2011 12:32:39 AM] buckyballreaction: @zoomber, that was an old modem-trick [3/7/2011 12:32:59 AM] buckyballreaction: i'm sure it exists for windows XP, let me look up what it is called again [3/7/2011 12:33:30 AM] Zoomber: ok, thanks. theyre both working great, and i was able to somehow get one of them to work with windows zero configuration [3/7/2011 12:33:51 AM] Samuel Williams: windows - start - run - cmd in command: ROUTE PRINT [3/7/2011 12:34:23 AM] Zoomber: oooh, neat [3/7/2011 12:34:48 AM] buckyballreaction: i wonder if you can only do load balancing [3/7/2011 12:35:25 AM] Samuel Williams: It hard to tell windows to use both, but it is possible [3/7/2011 12:35:40 AM] Zoomber: i'm not sure its possible on mac, as macs use the first working connection in the list, and you can change the priority [3/7/2011 12:36:07 AM] Samuel Williams: can make a range of ip use the other network [3/7/2011 12:36:13 AM] buckyballreaction: it's called 'network load balancing' [3/7/2011 12:36:21 AM] buckyballreaction: and i know windows server versions have it [3/7/2011 12:36:36 AM] Samuel Williams: For example route add 63.111.111.0 mask 255.255.255.0 192.168.3.252 metric 20 [3/7/2011 12:36:43 AM] Zoomber: oh, what about the two computer icons you see when you right click on the wireless status icon, and click properties? [3/7/2011 12:36:56 AM] Zoomber: don't they blink on activity? [3/7/2011 12:37:05 AM] Samuel Williams: yes [3/7/2011 12:37:25 AM] buckyballreaction: from here: http://technet.microsoft.com/en-us/library/cc781392(WS.10).aspx [3/7/2011 12:37:27 AM] Zoomber: ah ok, they both seem to be flashing, and the packets increase [3/7/2011 12:37:31 AM] buckyballreaction: "You cannot install the Network Load Balancing service itself on Windows XP Professional." [3/7/2011 12:37:45 AM] buckyballreaction: so you'd have to use trickery [3/7/2011 12:38:32 AM] Samuel Williams: my methof of route add is to make some IP range go throuth alternative router.. [3/7/2011 12:38:49 AM] Samuel Williams: but is easier done for load balancing software [3/7/2011 12:39:00 AM] Zoomber: two routers to one computer? [3/7/2011 12:39:28 AM] Zoomber: that seems delectable [3/7/2011 12:39:58 AM] Samuel Williams: i used to have a router and LAGGY wireless internet at the same computer. [3/7/2011 12:40:10 AM] Samuel Williams: now i an router only [3/7/2011 12:40:56 AM] Zoomber: raptor: thanks for the link, i'll look at it tomorrow [3/7/2011 12:41:18 AM] Zoomber: i quickly skimmed through it just now [3/7/2011 12:42:16 AM] buckyballreaction: curious, why is the letter 'm' start many members of the c++ classes? [3/7/2011 12:42:17 AM] Samuel Williams: Applies To: ... (not windows XP ? ) [3/7/2011 12:42:27 AM] Chris Eykamp: m = member [3/7/2011 12:42:27 AM] Zoomber: yes [3/7/2011 12:42:29 AM] Chris Eykamp: I think [3/7/2011 12:42:43 AM] Zoomber: in the article it says it applies to 200, NT, and stuff before xp [3/7/2011 12:42:45 AM] Chris Eykamp: it was a zap convention I stuck to [3/7/2011 12:42:55 AM] buckyballreaction: so, if it wasn't a member, what would it be? [3/7/2011 12:43:01 AM] buckyballreaction: 'n' for non-member? [3/7/2011 12:43:07 AM] buckyballreaction: :) [3/7/2011 12:43:31 AM] Chris Eykamp: '' [3/7/2011 12:45:27 AM] Zoomber: ah, ok [3/7/2011 12:45:30 AM | Edited 12:49:00 AM] Zoomber: in active routes (when looking at route print in command prompt) [3/7/2011 12:45:57 AM] Zoomber: most of the network destinations are used by interface (my public ip adress here) [3/7/2011 12:46:14 AM] Zoomber: and the rest used by interface (a local ip adress) [3/7/2011 12:46:35 AM] Zoomber: when i see what ip adress each wlan usb device has obtained [3/7/2011 12:46:39 AM] Zoomber: it was the same two [3/7/2011 12:51:10 AM] Samuel Williams: Try not to use both WIFI device, they may interfere with each other and slow down the speed by a lot. [3/7/2011 12:53:11 AM] Zoomber: i can use one to repeat the wireless signal to make it stronger on this side of the house [3/7/2011 12:55:15 AM] buckyballreaction: looking at: Barrier::expandCenterlineToOutline [3/7/2011 12:55:17 AM] Samuel Williams: most repeaters may cut wireless speed in half, it is better to wire up both routers together. [3/7/2011 12:55:39 AM] buckyballreaction: and I see: Point dir = end - start; [3/7/2011 12:55:51 AM] buckyballreaction: you can subtract Points like that iguess? [3/7/2011 12:55:57 AM] Chris Eykamp: yes [3/7/2011 12:56:00 AM] Chris Eykamp: and add them [3/7/2011 12:56:11 AM] Chris Eykamp: they also represent lengths [3/7/2011 12:56:11 AM] buckyballreaction: and it add/substracts the x's and y's? [3/7/2011 12:56:14 AM] Chris Eykamp: yes [3/7/2011 12:56:21 AM] Chris Eykamp: represent dx, dy pairs [3/7/2011 12:56:28 AM] buckyballreaction: ok [3/7/2011 12:57:00 AM] buckyballreaction: ahhh... operator overloading [3/7/2011 12:57:04 AM] buckyballreaction: very intriguing [3/7/2011 12:57:12 AM] buckyballreaction: i haven't seen that before [3/7/2011 12:58:40 AM] Chris Eykamp: can be used for evil, but is very powerful when used for good [3/7/2011 12:58:56 AM] buckyballreaction: cool [3/7/2011 1:00:13 AM] buckyballreaction: in that same method: Point dir = end - start; Point crossVec(dir.y, -dir.x); [3/7/2011 1:00:53 AM] buckyballreaction: so crossVec ends up being a point mirrored across the y axis of the midpoint between start and end? [3/7/2011 1:01:27 AM] buckyballreaction: oh no, it swapped the x and y [3/7/2011 1:02:37 AM] buckyballreaction: interesting trick = i think tha tmeans it is always a perpendicular vector [3/7/2011 1:03:16 AM] buckyballreaction: where's my graph paper... [3/7/2011 1:04:17 AM] Samuel Williams: maybe you can start bitfighter level editor and draw lines... [3/7/2011 1:08:11 AM] buckyballreaction: that's a tricky truco [3/7/2011 1:08:15 AM] buckyballreaction: no trig involved [3/7/2011 1:34:02 AM] buckyballreaction: lines 818 and 819 of BotNavMeshZone.cpp, i don't understand: F32 x = j ? p1x : p2x; F32 y = j ? p1y : p2y; [3/7/2011 1:34:28 AM] buckyballreaction: wouldn't that always be p1x and p1y? [3/7/2011 1:35:04 AM] Chris Eykamp: j = 0 = false [3/7/2011 1:35:27 AM] Chris Eykamp: though prefer to write that as j > 0 ? for less ambiguity [3/7/2011 1:35:43 AM] Chris Eykamp: or (j > 0) ? [3/7/2011 1:36:07 AM] buckyballreaction: ahh, and it only iterates twice anyways [3/7/2011 1:36:26 AM] Chris Eykamp: seems to [3/7/2011 1:36:53 AM] Chris Eykamp: makes sense then [3/7/2011 1:38:05 AM] buckyballreaction: can triangle handle overlapping holes? [3/7/2011 1:38:24 AM] buckyballreaction: because maybe this is all for naught [3/7/2011 1:39:12 AM] Samuel Williams: [Monday, March 07, 2011 1:34 AM] buckyballreaction: <<< lines 818 and 819 of BotNavMeshZone.cpp, i don't understand: F32 x = j ? p1x : p2x; F32 y = j ? p1y : p2y;single = is setting x to be j, do you mean double equal? (==) [3/7/2011 1:39:33 AM] Chris Eykamp: no [3/7/2011 1:39:48 AM] Chris Eykamp: you'r assiging x to ne p1x or p2x [3/7/2011 1:40:52 AM] Samuel Williams: ok, but then would that translate to? F32 x = j!=0 ? p1x : p2x; F32 y = j!=0 ? p1y : p2y; [3/7/2011 1:40:53 AM] Chris Eykamp: depending on j, of course [3/7/2011 1:41:06 AM] Chris Eykamp: same thing [3/7/2011 1:41:36 AM] Chris Eykamp: F32 x = (j != 0) ? p1x : p1y [3/7/2011 1:42:21 AM] buckyballreaction: i'll be right back [3/7/2011 1:42:25 AM] Chris Eykamp: altouhg in this particular case, where j is used primarily as a toggle for whether this is the first time through, I think the current form is clear [3/7/2011 1:42:37 AM] Chris Eykamp: except, of curse, that both of you got confused [3/7/2011 1:42:44 AM] Chris Eykamp: but I use this idiom a lot [3/7/2011 1:43:03 AM] Chris Eykamp: so maybe we should come up with another one. want a way to loop through true and false [3/7/2011 1:43:14 AM] buckyballreaction: no loop :) [3/7/2011 1:43:36 AM] Chris Eykamp: don't want to rewrite the contents of the loop twice! [3/7/2011 1:44:35 AM] Zoomber: I woke up in a Soho doorway A policeman knew my name [3/7/2011 1:44:39 AM] Chris Eykamp: for(bool first = false; first; first = !first) { } ?? [3/7/2011 1:44:57 AM] Samuel Williams: bool loop1 = false; do { loop1 = !loop1 ...; ...; } while (loop1) [3/7/2011 1:44:57 AM] Chris Eykamp: or something like that [3/7/2011 1:45:25 AM] Zoomber: so who are you? [3/7/2011 1:45:26 AM] Samuel Williams: that "for" loop may not work as it checks condition first. [3/7/2011 1:46:10 AM] buckyballreaction: a riddle zoomber? [3/7/2011 1:46:15 AM] Chris Eykamp: don't want a var like loop1 here; p1x = loop1 ? x1 : x2; [3/7/2011 1:46:25 AM] Chris Eykamp: p1x = first ? x1:x2 [3/7/2011 1:46:39 AM] Chris Eykamp: that's a little clearer than using j [3/7/2011 1:47:01 AM] Samuel Williams: yes, i come up with useless name like "loop1" [3/7/2011 1:47:15 AM] buckyballreaction: well, now i know your trick, i'll be looking out for it... [3/7/2011 1:47:16 AM] Chris Eykamp: or j ;) [3/7/2011 1:47:22 AM] Zoomber: He said "You can go sleep at home tonight If you can get up and walk away" [3/7/2011 1:51:03 AM] Chris Eykamp: do statement while (condition); [3/7/2011 1:51:10 AM] Chris Eykamp: using do will be more complex [3/7/2011 1:51:24 AM] Samuel Williams: do { ... } while (condition); yes [3/7/2011 1:51:52 AM] Chris Eykamp: but you need to define your first var outside the loop, so it lives on once scope is over [3/7/2011 1:52:13 AM] Chris Eykamp: ah, I misread your earlier post [3/7/2011 1:53:01 AM] Samuel Williams: Can't use for(bool j; ...; ...) using bool would never loop more then once. [3/7/2011 1:53:15 AM] Chris Eykamp: correct [3/7/2011 1:53:27 AM] Zoomber: raptor: googleit [3/7/2011 1:54:07 AM] Chris Eykamp: for(S32 first = 1; first >=0; first--) [3/7/2011 1:54:34 AM] Chris Eykamp: x = first ? p1x : p2x; [3/7/2011 1:54:40 AM] buckyballreaction: a song [3/7/2011 1:54:54 AM] Chris Eykamp: the who [3/7/2011 1:55:16 AM] Zoomber: so chris, if I equal 1, what do you equal? [3/7/2011 1:55:25 AM] Chris Eykamp: 10 [3/7/2011 1:55:40 AM] Zoomber: for i = 1? [3/7/2011 1:55:58 AM] Samuel Williams: for(S32 j = 0; j < 2; j++) { F32 x = j ? p1x : p2x; The way that is set up is to start at j = 0, then 1. That will do p2x first, then p1x. [3/7/2011 1:55:59 AM] Zoomber: err for(i=1 [3/7/2011 1:56:21 AM] Zoomber: so if I am one, and J is 0, who is J? [3/7/2011 1:56:38 AM] Zoomber: oh [3/7/2011 1:56:39 AM] Zoomber: j is x [3/7/2011 1:56:40 AM] Chris Eykamp: yes; but in most cases I descend so that it is clear that x is the first arg the first time through, the 2nd arg the 2nd time through [3/7/2011 1:56:51 AM] Zoomber: then who is x? [3/7/2011 1:56:53 AM] Chris Eykamp: it seems easier to read [3/7/2011 1:57:03 AM] buckyballreaction: I have now buffered out all the line segments... and no zones! [3/7/2011 1:57:13 AM] Chris Eykamp: progress! [3/7/2011 1:57:27 AM] buckyballreaction: so, i'm thinking triangle doesn't like overlapping holes? [3/7/2011 1:57:37 AM] Chris Eykamp: no, they're fine [3/7/2011 1:57:44 AM] Chris Eykamp: sort of [3/7/2011 1:58:05 AM] Chris Eykamp: but fi they overlap wrong, they'll be partially filled [3/7/2011 1:58:19 AM] Chris Eykamp: but it won [3/7/2011 1:58:25 AM] Chris Eykamp: 't create garbage [3/7/2011 1:58:44 AM] buckyballreaction: so i added this to Barrier::prepareRenderingGeometry() [3/7/2011 1:58:53 AM] buckyballreaction: Point difference = end - start; Point crossVec(difference.y, -difference.x); // create a point whose vector from 0,0 is perpenticular to the original vector crossVec.normalize(Ship::CollisionRadius); // reduce point so the vector is only a ship radius' length mBufferedLineSegments.push_back(Point(start.x + crossVec.x, start.y + crossVec.y)); mBufferedLineSegments.push_back(Point(end.x + crossVec.x, end.y + crossVec.y)); mBufferedLineSegments.push_back(Point(end.x - crossVec.x, end.y - crossVec.y)); mBufferedLineSegments.push_back(Point(start.x - crossVec.x, start.y - crossVec.y)); [3/7/2011 1:59:03 AM] Chris Eykamp: but if there is a leak through the border of a hole, the hole will spread through that leak [3/7/2011 1:59:24 AM] Chris Eykamp: do the corners join up? [3/7/2011 1:59:24 AM] buckyballreaction: oops, forgot at the start: Point start = points[j-1]; Point end = points[j]; [3/7/2011 2:00:05 AM] buckyballreaction: ah... i think i found a corner that failed because of casting... [3/7/2011 2:00:25 AM | Edited 2:01:21 AM] Zoomber: j-I, so x-I, multiplied by points, give the starting poings, while J multiplied by points alone equal the end of points, so I must equal Start! [3/7/2011 2:03:46 AM] Zoomber: oh, in other news, i have a small gig playing somewhere with two other friends for 30 minutes that will pay me 50 dollars so [3/7/2011 2:03:48 AM] Samuel Williams: http://96.2.123.136/bitfighter/edgehole.gif if there is a hole on the edge, no bot zones get generated. [3/7/2011 2:04:16 AM] buckyballreaction: hahaha sam [3/7/2011 2:04:19 AM] buckyballreaction: i love your drawing [3/7/2011 2:04:47 AM] Zoomber: since I feel so generous right now, and that means I have 100 dollars on me when tuesday comes around, and triangle.framework is removeable, i can get the mac-developer-connection program membership [3/7/2011 2:05:17 AM] Chris Eykamp: triangles is only used for creating bot zones [3/7/2011 2:05:25 AM] Chris Eykamp: unlikely to do that on an ipad [3/7/2011 2:05:39 AM] Chris Eykamp: is that what we're talk about essentially? [3/7/2011 2:05:46 AM] Zoomber: say what? [3/7/2011 2:05:51 AM] Chris Eykamp: oh wait, no skip it [3/7/2011 2:05:59 AM] Zoomber: I thought triangle was the framework that wasnt compatible with the app sotre? [3/7/2011 2:06:01 AM] buckyballreaction: i mentioned that triangle requires a commercial license if it were to be used commercially (like in the app-store) [3/7/2011 2:06:07 AM] Zoomber: right* [3/7/2011 2:06:08 AM] Chris Eykamp: we're talking about app store for full on app [3/7/2011 2:06:10 AM] buckyballreaction: oh and any GPL3 code... [3/7/2011 2:06:13 AM] Chris Eykamp: full on mac version [3/7/2011 2:06:18 AM] Chris Eykamp: we have no gpl3 [3/7/2011 2:06:25 AM] buckyballreaction: good [3/7/2011 2:06:26 AM] Samuel Williams: what's the processor speed and memory of ipad? [3/7/2011 2:06:34 AM] Zoomber: 1 ghz [3/7/2011 2:06:43 AM] Chris Eykamp: we're not talking about ipad though [3/7/2011 2:06:46 AM] Zoomber: the new one will be apple's own dual core processor 1ghz [3/7/2011 2:06:47 AM] Chris Eykamp: that was my error [3/7/2011 2:07:08 AM] Zoomber: correct, bitfighter for the mobile touchy is long from close [3/7/2011 2:09:32 AM] Zoomber: however, your ideas on removing the host-game and level editor are good [3/7/2011 2:09:46 AM] Zoomber: if they want the full package they can go on bitfighter [3/7/2011 2:10:12 AM] buckyballreaction: i would wait for developers license until we actually get something ready [3/7/2011 2:10:46 AM] buckyballreaction: that way the whole year isn't spent on developing instead of releasing... [3/7/2011 2:11:16 AM] Zoomber: well thats why I'm bringing this up. when do we want to get the lisense? [3/7/2011 2:12:28 AM] Samuel Williams: license to develop, or license to compile to that system? [3/7/2011 2:13:14 AM] Zoomber: lisense to host the app, on the apple store, which now serves laptops, and not just mobile devices [3/7/2011 2:13:39 AM] buckyballreaction: to be honest, i'm not terribly set on the app-store... [3/7/2011 2:13:49 AM] Zoomber: of course it would be foolhardy to get the lisense now, but we could always start [3/7/2011 2:14:14 AM] Zoomber: any reasons to why not? [3/7/2011 2:14:16 AM] buckyballreaction: some progress: http://96.2.123.136/upload/1snapshot7.png [3/7/2011 2:14:40 AM] buckyballreaction: @zoomber: mostly because we already have lots to do [3/7/2011 2:14:51 AM] buckyballreaction: like move to SDL [3/7/2011 2:15:42 AM] Zoomber: ok, well thats understandable [3/7/2011 2:16:29 AM] Chris Eykamp: we could release 015 in ap store, no? [3/7/2011 2:16:32 AM] Zoomber: but the idea itself, hypethotically saying there is time, do you see any reason against this? [3/7/2011 2:17:28 AM] Zoomber: @c I can buy the developer lisense anytime from next week to next year, whenever convenient [3/7/2011 2:19:13 AM] Chris Eykamp: well, worst case is you're out $100. That's an affordable risk to me :-)\ [3/7/2011 2:21:15 AM] Samuel Williams: Does mac store have any game/programs that is free? i usually think as store = pay something to get something. [3/7/2011 2:21:33 AM] buckyballreaction: yes it does [3/7/2011 2:21:40 AM] buckyballreaction: that's how you get your malware :) [3/7/2011 2:22:43 AM] Chris Eykamp: spread bitfighter via virus [3/7/2011 2:23:15 AM] buckyballreaction: now there's an interesting idea [3/7/2011 2:23:36 AM] buckyballreaction: or we could figure out the spam bots and spam other's forums with links to bitfighter [3/7/2011 2:24:19 AM] Samuel Williams: careful with spamming, it may throw spam back at us at bitfighter forum.. [3/7/2011 2:27:22 AM] Chris Eykamp: I think I prefer forced install everywhere [3/7/2011 2:34:51 AM] buckyballreaction: bah [3/7/2011 2:35:01 AM] buckyballreaction: i'm failing miserably at this right now [3/7/2011 2:36:35 AM] Chris Eykamp: me too. I'm going to bed; doctor's orders [3/7/2011 2:36:44 AM] buckyballreaction: ok, good night for me too [3/7/2011 9:24:44 AM] karamazovapy: I guess it's not a huge gamble, but how much is each app-store player worth to us financially? how do people stumble across our game in a crowded market? [3/7/2011 10:55:56 AM] buckyballreaction: good mroning [3/7/2011 12:39:19 PM] Chris Eykamp: @k fair question [3/7/2011 12:39:40 PM] Chris Eykamp: how many hours do we put in trying to make the game better to attract more players? [3/7/2011 1:00:43 PM] buckyballreaction: so i think these barriers are going to drive me mad [3/7/2011 1:10:55 PM] Chris Eykamp: why? [3/7/2011 1:11:21 PM] Chris Eykamp: I think you want to puff them before generating the outline geometry [3/7/2011 1:11:27 PM] buckyballreaction: because prepareRenderingGeometry has voodoo in it that i haven't solved yet [3/7/2011 1:11:29 PM] Chris Eykamp: and leave the outline generation as-is [3/7/2011 1:17:18 PM] buckyballreaction: i see many different methods in barrier.cpp that do similiar things [3/7/2011 1:18:08 PM] buckyballreaction: right now i am trying to puff them out in the final if statement: if(!isInside) in prepareRenderingGeometry() [3/7/2011 1:19:32 PM] Chris Eykamp: I think sam wrote this section [3/7/2011 1:19:45 PM] buckyballreaction: it would be nice if there was more doc... [3/7/2011 1:19:55 PM] Chris Eykamp: he replaced the commented out stuff with what's above (I think) [3/7/2011 1:20:13 PM] Chris Eykamp: to reduce extraneous render segments [3/7/2011 1:20:16 PM] buckyballreaction: 4af092ffa6 is the changeset [3/7/2011 1:20:56 PM] Chris Eykamp: I think you should move your puff code out of here; change the data inputs and leave this just as an outline generation function [3/7/2011 1:21:16 PM] buckyballreaction: yeah.. but where is a good place? [3/7/2011 1:21:23 PM] buckyballreaction: in the constructure? [3/7/2011 1:21:29 PM] Chris Eykamp: where does this get called from? [3/7/2011 1:21:40 PM] buckyballreaction: from within BotNavMeshZone [3/7/2011 1:21:51 PM] Chris Eykamp: see it [3/7/2011 1:22:05 PM] buckyballreaction: it builds up mBufferedLineSegments to be used the preparation for loop [3/7/2011 1:22:09 PM] Chris Eykamp: 460 gets the barrier [3/7/2011 1:22:28 PM] Chris Eykamp: 461 passes the barrier off to be outlined [3/7/2011 1:22:37 PM] Chris Eykamp: why not in between? [3/7/2011 1:22:43 PM] buckyballreaction: wait, where? [3/7/2011 1:22:45 PM] Chris Eykamp: 460.5 puff(); [3/7/2011 1:22:47 PM] buckyballreaction: what file? [3/7/2011 1:22:53 PM] buckyballreaction: (i must have different line numebrs... [3/7/2011 1:22:58 PM] Chris Eykamp: BotNavMeshZone [3/7/2011 1:23:05 PM] Chris Eykamp: for(S32 i=0; i(objects[i]); getPolygonLineCollisionPoints(output, obj->mPoints, p1, p2); } [3/7/2011 1:23:10 PM] Chris Eykamp: between those two lines [3/7/2011 1:23:13 PM] buckyballreaction: ah, see it [3/7/2011 1:23:41 PM] Chris Eykamp: you grab the points; puff them before passing them on [3/7/2011 1:24:59 PM] Chris Eykamp: pu[Monday, March 07, 2011 1:22 PM] Chris Eykamp: <<< Barrier *obj = dynamic_cast(objects[i]);Vector puffyBarrierPoints = puff(obj->mPoints); [3/7/2011 1:25:29 PM] Chris Eykamp: getPolygonLineCollisionPoints(output, puffBarrierPoints, p1, p2) [3/7/2011 1:25:35 PM] Chris Eykamp: or something [3/7/2011 1:26:20 PM] Chris Eykamp: might need to adjust p1, p2; not sure [3/7/2011 1:27:33 PM] buckyballreaction: getBarrierLineCollisionPoints is only called from makeBotMeshZones2 [3/7/2011 1:28:10 PM] Chris Eykamp: I'm not sure how this works anymore... we've all been doing a lot of things to this code [3/7/2011 1:28:20 PM] buckyballreaction: yeah, it basically forks [3/7/2011 1:28:24 PM] Chris Eykamp: when zones are working again, we'll need to clean it up [3/7/2011 1:28:36 PM] buckyballreaction: there are 2 or three different method-paths to go down [3/7/2011 6:22:30 PM] buckyballreaction: getting better: http://96.2.123.136/upload/snapshot9.png [3/7/2011 6:23:19 PM] Chris Eykamp: did you take the approach I suggested, or find another avenue? [3/7/2011 6:23:27 PM] buckyballreaction: yes [3/7/2011 6:23:33 PM] Chris Eykamp: :) [3/7/2011 6:23:49 PM] buckyballreaction: your approach got me where i wanted to go [3/7/2011 6:24:11 PM] buckyballreaction: i decided to build out the points the same time the rendering points were build out, too [3/7/2011 6:24:29 PM] Chris Eykamp: we'll probbay need to keep the puffy walls around for the bot to do it's LOS calcs with to keep it from bumping into corners as it optimizes its path [3/7/2011 6:24:48 PM] buckyballreaction: then i fed those second set of points into prepareRenderingGeometry that sam wrote [3/7/2011 6:25:00 PM] buckyballreaction: it even worked the first time which i was not expecting... [3/7/2011 6:25:13 PM] Chris Eykamp: we may also need another set of zones around to make it easier to keep track of where an object dropeed in the "voids" is [3/7/2011 6:25:27 PM] Chris Eykamp: two sets of walls, two sets of zones... doesn't feel right [3/7/2011 6:25:31 PM] buckyballreaction: nope [3/7/2011 6:25:43 PM] buckyballreaction: maybe we do need to add the proper logic into path-finding... [3/7/2011 6:26:45 PM] Chris Eykamp: the puffy walls solve a lot of problems, though [3/7/2011 6:28:32 PM] buckyballreaction: still needs work fails on some levels :( [3/7/2011 6:28:36 PM] buckyballreaction: but i have to go [3/7/2011 6:28:40 PM] Chris Eykamp: later [3/7/2011 8:55:43 PM] buckyballreaction: how big is a ship again? i know the collision radius is 24 [3/7/2011 8:56:00 PM] buckyballreaction: but can a ship actually go down a narror that is 48 wide? [3/7/2011 8:56:03 PM] buckyballreaction: narrow [3/7/2011 8:56:29 PM] Chris Eykamp: don't think so... [3/7/2011 8:56:39 PM] Chris Eykamp: but I've never tried [3/7/2011 8:57:01 PM] Chris Eykamp: tip: setting grid size to 100 makes math easier [3/7/2011 8:57:09 PM] Chris Eykamp: when comverting from editor to in-game coord [3/7/2011 8:57:10 PM] Chris Eykamp: s [3/7/2011 8:57:12 PM] buckyballreaction: ok [3/7/2011 8:58:35 PM] buckyballreaction: so where would i find the minimum ACTUAL width of a ship? [3/7/2011 8:59:02 PM] Chris Eykamp: it's 48 [3/7/2011 8:59:13 PM] Chris Eykamp: actual = in-game [3/7/2011 8:59:25 PM] Chris Eykamp: editor * gridsize = in-game [3/7/2011 8:59:51 PM] buckyballreaction: but you said you don't htink a ship would fit down a corridor that wide? [3/7/2011 9:00:05 PM] Chris Eykamp: I think it would fit down a 48 wide corridor [3/7/2011 9:00:14 PM] Chris Eykamp: you were asking about narrower [3/7/2011 9:00:28 PM] buckyballreaction: sorry, i misphrased my question [3/7/2011 9:00:39 PM] buckyballreaction: ok [3/7/2011 11:53:53 PM] Zoomber: ah it feels so nice to see two wireless icons in my status bar and get an information bubble twice saying im connected [3/7/2011 11:54:54 PM] Zoomber: @k the users who would get bitfighter off the app store would be extremely loyal. mac app store users = update lovers. all we need are some curious people, and we have a crowd that will stay. [3/7/2011 11:55:22 PM] Zoomber: the main flaw/pointline i see here is that bitfighter is still free on bitfighter.org [3/7/2011 11:55:33 PM] Zoomber: if* we decide to charge money for the game on the app store [3/7/2011 11:55:40 PM] Chris Eykamp: coiuld be free on app store [3/7/2011 11:55:54 PM] Zoomber: right, and im open to either idea [3/7/2011 11:56:29 PM] Zoomber: but i do recall the question of pricing eariler [3/7/2011 11:58:28 PM] Chris Eykamp: we discussed it earlier; if we include triangle, free would be better [3/7/2011 11:59:01 PM] Zoomber: based on experience, and knowledge, if you have something on the app store that costs money, but is free on bitfighter.org, theres going to be some controversy, and potentially threatening. For reasons as follows, from lighest to unlikely but bad, respectively. Unhappy customers who just found out they can get the game for free, some bad reviews, people are influenced by number of bad reviews, s [3/7/2011 11:59:22 PM] Zoomber: so yes, i think we can agree, free = better [3/8/2011 12:01:00 AM] Zoomber: now just pray I can learn the bassline to three songs in the next two hours, and then get as much rest as I can [3/8/2011 12:02:55 AM] Zoomber: half of the 100 dollars im getting tomorrow at a 30 minute gig (playing with two other friends of mine at a birthday party) [3/8/2011 12:41:55 AM] Zoomber: suprisingly enough youtube videos do load signifigantly quicker with dualwireless [3/8/2011 12:43:23 AM] Zoomber: because I'm sure my internet bandwidth, is defitenately not more than [3/8/2011 12:43:27 AM] Zoomber: 54 mbps [3/8/2011 12:43:32 AM] Zoomber: maybe 754 kbps [3/8/2011 12:43:55 AM] Samuel Williams: wiring up to the internet will almost always be faster then slower wireless. [3/8/2011 12:44:31 AM] Zoomber: so could having two wireless cards spread far apart to not interfere with each other be as fast as a wired connection? [3/8/2011 12:45:17 AM] Zoomber: maybe im completely wrong, cant the router transfer data to wireless up to 54 mbps, or is that just the max for the wireless card if you have a very strong router? [3/8/2011 12:45:40 AM] Samuel Williams: if both wireless cards use seperate channel, they will mostly not interfere with each other.. if both connected to same router, they will most likely use same channel. [3/8/2011 12:46:14 AM] Zoomber: so mine must use same channel [3/8/2011 12:46:37 AM] Samuel Williams: max 54 mbps per wireless channel, anyone nearby could be using that bandwidth. [3/8/2011 12:46:44 AM] Zoomber: but Ive had my laptop adjacent to my desktop both connected to router [3/8/2011 12:46:44 AM] Zoomber: oooh [3/8/2011 12:46:49 AM] Zoomber: i see [3/8/2011 12:46:59 AM] Zoomber: and ethernet, has a higher max bandwidth [3/8/2011 12:47:26 AM] Samuel Williams: yes, could be 100 or 1000 mbps for wired ethernet connection.. [3/8/2011 12:48:21 AM] Samuel Williams: but then, the intenet connection are limited more then 100 mbps, mine is 20 mbps download 2 mpbs upload. [3/8/2011 12:48:53 AM] Zoomber: hah mines less.. [3/8/2011 12:49:06 AM] Zoomber: alot less [3/8/2011 12:50:03 AM] Zoomber: mines about 2.46mbits per second [3/8/2011 12:50:12 AM] Zoomber: and 0.3 for upload [3/8/2011 12:50:40 AM] Samuel Williams: hosting servers eats upload bandwidth. [3/8/2011 12:51:18 AM] Zoomber: yeah, yet there ispractically no activity on my network atm. ive watched a few youtube videos, but now, nothing [3/8/2011 12:52:49 AM] Zoomber: california average is 10 mb/s right now.. [3/8/2011 12:58:42 AM] Samuel Williams: http://96.2.123.136/bitfighter/02.gif If both router is on the same internet connection, cannot speed up at all with 2 routers and connecting to both. [3/8/2011 12:59:12 AM] Samuel Williams: if connected to both routers on seperate internet connection, then it may speed up. [3/8/2011 1:00:48 AM] Samuel Williams: oops, end up saving gif as BMP format... i fixed that [3/8/2011 1:01:10 AM] Zoomber: it ok-i can view bmp too [3/8/2011 1:11:37 AM] Zoomber: mines a tiny bit different [3/8/2011 1:11:40 AM] Zoomber: actually from the looks of it [3/8/2011 1:12:02 AM] Zoomber: having two wirelless dishes may not even be necessary? [3/8/2011 1:12:05 AM] Zoomber: heres what it looks like [3/8/2011 1:12:10 AM] *** Zoomber sent untitled.GIF *** [3/8/2011 1:12:56 AM] Zoomber: ones a dish reciever for longrange, the others an antenna [3/8/2011 1:14:48 AM] Samuel Williams: ok, so having more then one connection to same router can prevent everyone else from using the same router (if too many usb wlan is used) [3/8/2011 1:15:35 AM | Edited 1:15:39 AM] Samuel Williams: but having double wlan connected to same router won't speed up at all, as internet is limited to 2 mbps [3/8/2011 1:16:03 AM] Zoomber: yeah, which is what i figured when i said having two wireless devices may not evenbe necessary [3/8/2011 1:16:09 AM] Zoomber: however [3/8/2011 1:16:23 AM] Zoomber: theres another wireless router near me [3/8/2011 1:16:34 AM] Samuel Williams: it may be an extra mess of wires to connect usb to wlan device [3/8/2011 1:17:08 AM] Samuel Williams: maybe connecting to 2 different router might speed up, if both router is on different internet connection [3/8/2011 1:19:23 AM] Zoomber: yes, one has a different connection to internet than other [3/8/2011 1:21:12 AM] Samuel Williams: connecting to far away wireless slows down wireless connection, and may be unstable connnection. Connecting to router that have very slow/buzy internet is also somewhat bad. [3/8/2011 1:23:22 AM] Zoomber: my second wireless router is a dish router, so I can direct where I want the wireless signal to really extend. and wireless network is pretty close too [3/8/2011 2:32:44 AM] Samuel Williams: I got Rotating SpeedZone working, you can join my "Sam Test" server to see what i mean.. [3/8/2011 2:43:31 AM] Chris Eykamp: I'm dizzy! :) [3/8/2011 2:44:17 AM] Samuel Williams: well, none of the level map is animated, until now - rotating SpeedZone [3/8/2011 11:32:58 AM] buckyballreaction: rotating speed zones!!?? [3/8/2011 11:33:22 AM] Chris Eykamp: what is the world coming to? [3/8/2011 11:33:30 AM] karamazovapy: seems like a potentially infuriating, but interesting idea [3/8/2011 11:34:05 AM] buckyballreaction: sounds like a dungeon map idea [3/8/2011 11:34:17 AM] Chris Eykamp: If this is a feature we're going to keep, we may want to change the graphical representation a bit. [3/8/2011 11:34:22 AM] buckyballreaction: and how do you enable them? [3/8/2011 11:34:37 AM] Chris Eykamp: I think it's an additional param in the level file [3/8/2011 11:34:37 AM] buckyballreaction: oh, and good morning [3/8/2011 11:34:55 AM] karamazovapy: I imagine the frustration of chasing someone who hits one while carrying the flag [3/8/2011 11:34:58 AM] karamazovapy: but there's potential there [3/8/2011 11:35:00 AM] Chris Eykamp: there was a request a while back for a dungeon level type where special stuff could be enabled [3/8/2011 11:35:08 AM] Chris Eykamp: like shootable walls :) [3/8/2011 11:35:23 AM] Chris Eykamp: I poopooed it at the time (because I dislike dungeons), but maybe the time is right [3/8/2011 11:35:32 AM] karamazovapy: the idea people were really clamoring for a while ago was dynamic levels [3/8/2011 11:35:49 AM] karamazovapy: as in, a level that could change as the game progressed [3/8/2011 11:35:55 AM] karamazovapy: based on time or scoring [3/8/2011 11:36:00 AM] Chris Eykamp: well, rotating this and that could also be done with that "supervisor script" idea, which will be implemented at some point [3/8/2011 11:36:21 AM] buckyballreaction: supervisor? as in dungeon master? [3/8/2011 11:36:37 AM] Chris Eykamp: @bbr, that's just a levelgen script that can respond to events and change the level, change bots, do whatever as things happen in game. [3/8/2011 11:36:50 AM] karamazovapy: add barriers [3/8/2011 11:36:52 AM] Chris Eykamp: for example: add more asteroids when asteroid count falls too far [3/8/2011 11:36:57 AM] Chris Eykamp: triggers [3/8/2011 11:37:06 AM] Chris Eykamp: all sorts of fancy and probably annoying things [3/8/2011 11:37:25 AM] karamazovapy: I discount the annoyance factor when scripting is involved [3/8/2011 11:37:29 AM] Chris Eykamp: it will be easy to implement -- it will just live on like a bot and listen for events [3/8/2011 11:37:38 AM] buckyballreaction: like put up more barriers for the winning team... [3/8/2011 11:37:38 AM] Chris Eykamp: and then do stuff [3/8/2011 11:37:42 AM] Chris Eykamp: yes [3/8/2011 11:37:48 AM] karamazovapy: how many annoying levelgens have been scripted? [3/8/2011 11:37:51 AM] karamazovapy: zero? [3/8/2011 11:37:59 AM] Chris Eykamp: change an interior maze every time a goal is scored [3/8/2011 11:38:04 AM] buckyballreaction: evil [3/8/2011 11:38:24 AM] karamazovapy: changing center fill once a minute is a brilliant idea [3/8/2011 11:38:28 AM] buckyballreaction: but can be used for awesome [3/8/2011 11:38:44 AM] buckyballreaction: yeah, i like it [3/8/2011 11:38:55 AM] Chris Eykamp: anywya, it's an easy implementation [3/8/2011 11:38:58 AM] karamazovapy: one of the problems with most levels is that everyone finds the one or two optimum paths and the game gets repetitive really quickly [3/8/2011 11:39:09 AM] Chris Eykamp: bots already do everything that's needed [3/8/2011 11:39:16 AM] Chris Eykamp: we'd just need to add more triggers [3/8/2011 11:39:20 AM] Chris Eykamp: sorry, more events [3/8/2011 11:39:22 AM] karamazovapy: only a few [3/8/2011 11:39:48 AM] Chris Eykamp: we already have the event-listening hooks for lua [3/8/2011 11:39:54 AM] karamazovapy: is there already some kind of getGameTime? [3/8/2011 11:40:08 AM] karamazovapy: or getTimeRemaining [3/8/2011 11:40:33 AM] Chris Eykamp: I think so, for bots [3/8/2011 11:40:51 AM] karamazovapy: I know there's time until nexus opens [3/8/2011 11:41:10 AM] karamazovapy: and I'm pretty sure there are various onScoringEvents [3/8/2011 11:41:15 AM] Chris Eykamp: I'm pretty sure, but if there's not, we should add one [3/8/2011 11:42:04 AM] karamazovapy: oh - one idea I was thinking about was giving bots the ability to spawn with any loadout [3/8/2011 11:42:18 AM] Chris Eykamp: sure, why not? [3/8/2011 11:42:48 AM] Chris Eykamp: it all gets back to the unresolved question of whether bots should be able to "cheat" and do things/see things players cannot [3/8/2011 11:43:09 AM] karamazovapy: well I think you should definitely be able to assign a bot a specific spawn point [3/8/2011 11:43:30 AM] buckyballreaction: can spawn points be numbered within the editor? [3/8/2011 11:43:34 AM] karamazovapy: no [3/8/2011 11:43:35 AM] Chris Eykamp: did you know you can add ids to items in the editor now? [3/8/2011 11:43:38 AM] Chris Eykamp: yes [3/8/2011 11:43:42 AM] karamazovapy: really? [3/8/2011 11:43:43 AM] karamazovapy: hm [3/8/2011 11:43:44 AM] Chris Eykamp: really [3/8/2011 11:43:52 AM] Chris Eykamp: can't use them for anything yet [3/8/2011 11:43:55 AM] Chris Eykamp: hit # [3/8/2011 11:43:58 AM] Chris Eykamp: I think [3/8/2011 11:44:03 AM] Chris Eykamp: maybe @ [3/8/2011 11:44:07 AM] Chris Eykamp: maybe either [3/8/2011 11:44:11 AM] Chris Eykamp: maybe ! [3/8/2011 11:44:13 AM] Chris Eykamp: not sure [3/8/2011 11:44:21 AM] Chris Eykamp: it's in the help, I think [3/8/2011 11:44:22 AM] karamazovapy: well for the sake for making bots level-interchangeable, it might be nice to have bot spawn points [3/8/2011 11:45:01 AM] Chris Eykamp: you could pass id of preferred spawn as a param to keep your bots generic [3/8/2011 11:45:31 AM] Chris Eykamp: we need a case for making bots spawn at specific spawn point [3/8/2011 11:45:39 AM] Chris Eykamp: othwerwise it will neer get done [3/8/2011 11:46:35 AM] karamazovapy: the only reason I'm not wild about using spawn point IDs for bots from level to level is that it either complicates the bot code or makes flexibility more difficult level to level [3/8/2011 11:47:08 AM] Chris Eykamp: you could specify spawn points as bot args [3/8/2011 11:47:19 AM] Chris Eykamp: if none are specified, bots spawn at random locations [3/8/2011 11:47:32 AM] Chris Eykamp: s_bot [1,4,5] [3/8/2011 11:48:08 AM] karamazovapy: I guess my primary interest would be in having points where only bots and not players would spawn [3/8/2011 11:48:19 AM] Chris Eykamp: I see [3/8/2011 11:48:39 AM] Chris Eykamp: a different kind of spawnpoint? [3/8/2011 11:49:08 AM] karamazovapy: yeah - for example, if you wanted bots to spawn closer to an enemy base or around midfield for minelaying to reduce risk of getting killed before reaching the minefield [3/8/2011 11:49:50 AM] karamazovapy: or if you wanted bots that just repaired neutral items on a map [3/8/2011 11:50:17 AM] karamazovapy: or spawned near the nexus, or far from the nexus [3/8/2011 11:50:41 AM] karamazovapy: I have a dozen ways you could use it [3/8/2011 11:51:11 AM] Chris Eykamp: I don't like adding new objects to the editor [3/8/2011 11:51:19 AM] karamazovapy: I'd just make it a different team id [3/8/2011 11:51:25 AM] karamazovapy: something like that [3/8/2011 11:51:26 AM] Chris Eykamp: what if you could set a property on a spawn? [3/8/2011 11:51:40 AM] Chris Eykamp: botsonly [3/8/2011 11:51:42 AM] Chris Eykamp: nobots [3/8/2011 11:51:49 AM] karamazovapy: yeah, team and then ctrl+B for bots only [3/8/2011 11:51:53 AM] karamazovapy: something like that [3/8/2011 11:51:59 AM] Chris Eykamp: that's an idea [3/8/2011 11:52:32 AM] Chris Eykamp: maybe we could symbolize them idfferently in the editor -- a square rather than a circle [3/8/2011 11:53:08 AM] karamazovapy: other way around? [3/8/2011 11:53:13 AM] Chris Eykamp: however [3/8/2011 11:54:25 AM] karamazovapy: oooh...bots that would only spawn on a thick perimeter barrier and patrol the edges firing off bursts or bouncers [3/8/2011 11:54:54 AM] karamazovapy: or on islands in the middle...super bot turrets [3/8/2011 11:54:59 AM] Chris Eykamp: bots can't navigate on walls [3/8/2011 11:55:11 AM] karamazovapy: you could set waypoints [3/8/2011 11:55:38 AM] karamazovapy: they might lose their aiming ability, but no big deal [3/8/2011 11:55:44 AM] karamazovapy: I bet they could see off the top of a wall [3/8/2011 11:56:17 AM] karamazovapy: come to think of it, I still haven't witnessed a working waypoint/patrol bot [3/8/2011 11:56:27 AM] karamazovapy: maybe I'll play around with that [3/8/2011 11:56:51 AM] Chris Eykamp: well, I do want to add points that are nothing but a point and an id [3/8/2011 11:56:56 AM] Chris Eykamp: those could be your waypoints [3/8/2011 11:57:16 AM] buckyballreaction: sentinel bots [3/8/2011 11:57:21 AM] karamazovapy: exactly [3/8/2011 11:57:31 AM] karamazovapy: they could even give you early warning with a team message! [3/8/2011 11:57:45 AM] karamazovapy: ***INCOMING EAST*** [3/8/2011 11:58:40 AM] Chris Eykamp: that's a cool idea [3/8/2011 11:58:42 AM] buckyballreaction: there are a lot of good ideas in here - good you add some of them to the issues list as features? [3/8/2011 11:58:51 AM] buckyballreaction: good=could [3/8/2011 11:59:18 AM] karamazovapy: will do, after lunch [3/8/2011 12:00:20 PM] karamazovapy: see y'all later [3/8/2011 12:00:23 PM] buckyballreaction: bye [3/8/2011 12:00:27 PM] buckyballreaction: thanks [3/8/2011 12:01:14 PM] Chris Eykamp: lot of could ideas??? [3/8/2011 12:01:23 PM] buckyballreaction: har har [3/8/2011 12:01:31 PM] Chris Eykamp: it's early [3/8/2011 12:02:09 PM] buckyballreaction: so buffered bot zones are generally really ugly [3/8/2011 12:02:26 PM] Chris Eykamp: good thing they're invisible [3/8/2011 12:02:39 PM] buckyballreaction: must have to do with the overlap that is created with buffereing them [3/8/2011 12:02:58 PM] Chris Eykamp: I doubt it [3/8/2011 12:03:05 PM] Chris Eykamp: building the wall outline takes care of overlaps [3/8/2011 12:03:45 PM] Chris Eykamp: you could also try uncommenting the old wall outline code and see if it makes a difference [3/8/2011 12:04:07 PM] Chris Eykamp: I'm not yet sure if sam's really does the same thing or not [3/8/2011 12:04:15 PM] Chris Eykamp: I think it does, but I haven't looked [3/8/2011 12:06:50 PM] buckyballreaction: i am using the old one [3/8/2011 12:07:03 PM] buckyballreaction: because i don't fully understand sam's yet [3/8/2011 12:07:44 PM] buckyballreaction: and there is a bug in the math that buffers the walls somewhere... some walls will puff out about twice as much [3/8/2011 12:08:03 PM] Chris Eykamp: does it depend on angle? [3/8/2011 12:08:23 PM] buckyballreaction: it seems consistent on any thing that is parallel to x or why axis [3/8/2011 12:08:26 PM] buckyballreaction: x or y [3/8/2011 12:08:32 PM] buckyballreaction: man, i'm suffering [3/8/2011 12:09:02 PM] buckyballreaction: but also i noticed some where it was a 45 angle [3/8/2011 12:09:08 PM] buckyballreaction: (i think..) [3/8/2011 12:09:14 PM] buckyballreaction: have to debug more when i get the time [3/8/2011 1:09:14 PM] karamazovapy: I don't know how to enter a new issue on google code as a feature, so bot spawn points and supervisor script activation both show as defects [3/8/2011 1:09:26 PM] buckyballreaction: i found my bug [3/8/2011 1:09:55 PM] karamazovapy: your bug, your bug...is my drug [3/8/2011 1:10:29 PM] buckyballreaction: ok, there is label at the bottom of an issue called: Type-Enhancement [3/8/2011 1:10:43 PM] buckyballreaction: you can change it to that [3/8/2011 1:10:55 PM] buckyballreaction: and thanks for entering them [3/8/2011 1:11:18 PM] karamazovapy: I don't think I can change the label [3/8/2011 1:11:47 PM] buckyballreaction: click in the empty comments box [3/8/2011 1:12:03 PM] buckyballreaction: it's kind of a goofy interface... [3/8/2011 1:13:19 PM] karamazovapy: I never have the label to change in the first place. I can see the type from the main list of issues and I have a clickable type filter when I few an existing issue [3/8/2011 1:13:45 PM] Chris Eykamp: only admins can change labels? [3/8/2011 1:13:50 PM] karamazovapy: I believe so [3/8/2011 1:14:35 PM] buckyballreaction: ok, i'll change them after the fact [3/8/2011 1:15:11 PM] karamazovapy: ja - sorry [3/8/2011 1:15:29 PM] buckyballreaction: done :) [3/8/2011 1:15:42 PM] buckyballreaction: yeah i guess you have start the issue correctly [3/8/2011 1:15:50 PM] karamazovapy: why can't I meet hot, trashy girls like ke$ha? [3/8/2011 1:16:08 PM] karamazovapy: I can click "New Issue", but there's nothing for me to change after that [3/8/2011 1:16:51 PM] buckyballreaction: I click 'new issue' at the bottom, I see a 'Labels' section [3/8/2011 1:16:54 PM] buckyballreaction: you don't? [3/8/2011 1:17:25 PM] buckyballreaction: has two labels by default: type-defect, priority medium [3/8/2011 1:17:34 PM] buckyballreaction: change type-defect to type-enhancement [3/8/2011 1:18:34 PM] karamazovapy: https://www.msu.edu/~youattan/screen.png [3/8/2011 1:19:21 PM] buckyballreaction: well that stinks [3/8/2011 1:20:34 PM] karamazovapy: maybe admin preferences can enable more user options? [3/8/2011 1:20:43 PM] buckyballreaction: yeah, let me look there.. [3/8/2011 1:29:13 PM] buckyballreaction: ok, try again, but select a different template now [3/8/2011 1:29:23 PM] buckyballreaction: 'enhancement request from user' [3/8/2011 1:47:11 PM] karamazovapy: works! [3/8/2011 1:47:50 PM] buckyballreaction: hooray! [3/8/2011 1:53:39 PM] buckyballreaction: ok, fixed buffered bot zones bug [3/8/2011 1:54:03 PM] buckyballreaction: using the older prepareRenderingGeometry method [3/8/2011 2:20:18 PM] buckyballreaction: i now notice that if two buffers overlap, a botzone is created in the intersection [3/8/2011 2:22:11 PM] Chris Eykamp: yes [3/8/2011 2:22:24 PM] Chris Eykamp: using external geometry fixes that problem [3/8/2011 2:22:25 PM] buckyballreaction: that is what sam's method was to address? [3/8/2011 2:22:38 PM] Chris Eykamp: no, he was trying to fix the too many short segments issue [3/8/2011 2:22:48 PM] buckyballreaction: explain 'external geometry'? [3/8/2011 2:23:22 PM] Chris Eykamp: sorry -- exterior barrier edges [3/8/2011 2:23:26 PM] Chris Eykamp: dark blue lines [3/8/2011 2:23:35 PM] Chris Eykamp: we use those as input to triangle [3/8/2011 2:23:44 PM] Chris Eykamp: geowar was processing slowly [3/8/2011 2:23:59 PM] Chris Eykamp: sam was trying to reduce clutter in the edges [3/8/2011 2:24:07 PM] Chris Eykamp: but he was also creating holes [3/8/2011 2:30:46 PM] buckyballreaction: i think i am using external geometry - specifically, i am transforming the corner points into edges\ [3/8/2011 3:26:25 PM] buckyballreaction: http://96.2.123.136/upload/snapshot10.png [3/8/2011 4:28:13 PM] buckyballreaction: does anyone understand what the final comment here is saying?: http://en.wikipedia.org/wiki/Talk:Bitfighter [3/8/2011 5:02:29 PM] karamazovapy: that guy's one of the wikipedia white knights for video games [3/8/2011 5:03:07 PM] karamazovapy: he's saying some of our content is what's listed as inappropriate in the video game page guidelines [3/8/2011 5:03:30 PM] karamazovapy: like #6 here: http://en.wikipedia.org/wiki/Wikipedia:VG/GL#Inappropriate_content [3/8/2011 5:04:19 PM] buckyballreaction: oh my goodness they're pedantic [3/8/2011 5:04:38 PM] karamazovapy: yeah, it's pretty silly, really...as if wikipedia was an actual encyclopedia [3/8/2011 5:07:15 PM] karamazovapy: the writing for the article isn't very impressive, overall [3/8/2011 5:07:35 PM] buckyballreaction: the Bitfighter article, you mean? [3/8/2011 5:07:41 PM] karamazovapy: yeah [3/8/2011 5:07:58 PM] karamazovapy: the opening, technology, and credits sections are all good [3/8/2011 5:08:19 PM] buckyballreaction: i'm not much of a write, i'm afraid [3/8/2011 5:08:20 PM] buckyballreaction: writer [3/8/2011 5:08:50 PM] karamazovapy: the others aren't bad, they just don't have an encyclopedic tone [3/8/2011 5:13:38 PM] karamazovapy: hey - I didn't know we got featured here - http://www.tomsguide.com/us/pictures-story/224-4-top-free-retro-games-open-source-remakes.html [3/8/2011 5:14:04 PM] buckyballreaction: yeah the funny thing is that they say it's based on 'Robotron' [3/8/2011 5:14:17 PM] karamazovapy: clearly never heard of robotron [3/8/2011 5:16:05 PM] karamazovapy: googling bitfighter returns some interesting download sources [3/8/2011 5:20:10 PM] buckyballreaction: i just found out that I have a been a part of some 238 bugs reported in various software/systems at my work... [3/8/2011 5:21:23 PM] buckyballreaction: i think wish that number to be smaller [3/8/2011 6:20:57 PM] karamazovapy: I'm trolling the 8bc archives for more suitable video music [3/8/2011 6:23:20 PM] Chris Eykamp: they probably misread my press releases [3/8/2011 6:28:54 PM] karamazovapy: sorted through 220 pages of tracks...only 320 left [3/8/2011 6:49:21 PM] karamazovapy: alright...through 271 [3/8/2011 6:52:56 PM] Chris Eykamp: my pick: [3/8/2011 6:52:56 PM] Chris Eykamp: www.rymdkraft.com [3/8/2011 6:53:05 PM] Chris Eykamp: not long enough, but it could be part of a collection [3/8/2011 6:54:23 PM] karamazovapy: any particular track? [3/8/2011 6:56:14 PM] Chris Eykamp: all particular tracks [3/8/2011 6:57:46 PM] karamazovapy: I'm developing some serious listener fatigue [3/8/2011 6:58:11 PM] Chris Eykamp: try again tomorrow [3/8/2011 7:01:22 PM] karamazovapy: I have 47 as yet possible tracks, out of 1,420 [3/8/2011 7:01:35 PM] buckyballreaction: i think it's harder to pick out music for others than to just accept the music that is given you [3/8/2011 7:01:52 PM] Chris Eykamp: oh yes [3/8/2011 7:02:08 PM] Chris Eykamp: @k post links [3/8/2011 7:02:25 PM] karamazovapy: I'm previewing anything with over 50 likes [3/8/2011 7:03:43 PM] karamazovapy: um...here's a first pass so far - [3/8/2011 7:03:45 PM] karamazovapy: http://8bc.org/music/tRasH+cAn+maN/Emancipation/ http://8bc.org/music/Bit+Shifter/Bad+Surge/ http://8bc.org/music/she/Traveling+by+night/ http://8bc.org/music/Sabrepulse/As+Vivid+As+Possible+%28Remix%29/ http://8bc.org/music/UnicornDreamAttack/The+Black+Maze/ http://8bc.org/music/Random/Breaking+Wave/ http://8bc.org/music/henryhomesweet/OkiiRobo%5FNavigation%5FSystem/ http://8bc.org/music/MattWilson/How+To+Kill+a+Man+From+Outer+Space/ http://8bc.org/music/CCIVORY/ROBO-REST%3A+the+Assassin/ http://8bc.org/music/zabutom/retardation%21/ http://8bc.org/music/swampyboy/hollow+hans+requiem+%28sid+mix%29/ http://8bc.org/music/Fighter+X/Little+Fighter+X/ http://8bc.org/music/Kid+Icaris/Finished+Chip+Dub/ http://8bc.org/music/Norrin%5FRadd/One+Last+Quest/ http://8bc.org/music/zabutom/Trisynaptic+Loop/ http://8bc.org/music/Wiklund/Electrified/ http://8bc.org/music/Fighter+X/Massive+Damage+Fighter+X+Death+Roar+Remix/ http://8bc.org/music/swampyboy/the+three+laws+of+robotics+%28finished%29/ http://8bc.org/music/Ultrasyd/Lonely+Robot+%28Atari+ST%29/ http://8bc.org/music/Circles/%28FIGHTER+X+%29+Disco+Tripper/ http://8bc.org/music/Kid+Icaris/SpareTimeHero+%2526+Kid+Icaris+Renoise+Chipbreak+tune/ http://8bc.org/music/xaimus/tristendo+in+space/ http://8bc.org/music/swampyboy/that%27s+why+i+don%27t+like+crickets/ http://8bc.org/music/smiletron/Suspension/ http://8bc.org/music/Hurrigame+Boy/Orion/ http://8bc.org/music/Kid%5FFlyaway%21/Fly+With+Me+Tonight%21/ http://8bc.org/music/IAYD/Get+Furious/ http://8bc.org/music/Fighter+X/Now+Rock/ http://8bc.org/music/Norrin%5FRadd/A+Castle+Under+Siege+-+Knight/ http://8bc.org/music/zabutom/space+fish/ http://8bc.org/music/Wiklund/Wiklund+%2526+Algar+-+The+Butter+Master/ http://8bc.org/music/IAYD/When+I+Sleep%2C+My+Heart+Speaks/ http://8bc.org/music/Uoki-Toki/The+Krypt/ http://8bc.org/music/syphus/olden+days/ http://8bc.org/music/hellostereo/Sabretooth/ http://8bc.org/music/Fighter+X/Iron+Will+%28ft.+Spamtron%29/ http://8bc.org/music/Wiklund/Wiklund+-+Nova+Factory+%28LSDJ%29/ http://8bc.org/music/chipzel/Something+Beautiful/ http://8bc.org/music/Derris-Kharlan/Nexus/ http://8bc.org/music/mr.spastic/twice+stepped/ http://8bc.org/music/shirobon/Counter+Format/ http://8bc.org/music/AndyExpandy/I+Bid+Ye+Farewell/ http://8bc.org/music/FearofDark/Get+A+Brian+Morans%21/ http://8bc.org/music/Hurrigame+Boy/Duracell++LSDJ/ http://8bc.org/music/PDF+format/Bipolar+Express+%28from+my+Final+Album%29/ http://8bc.org/music/Derris-Kharlan/Roboroach+%2830s30d+-+05%29/ http://8bc.org/music/SEBIRON%21/Megamix+The+Gunblaze+%28Sebiron+RMX%29/ [3/8/2011 7:03:50 PM] buckyballreaction: gah [3/8/2011 7:07:30 PM] karamazovapy: I've checked out a couple hundred tunes [3/8/2011 7:08:19 PM] Chris Eykamp: We can elminate the first one [3/8/2011 7:08:31 PM] buckyballreaction: i'm building a script to scrape them all [3/8/2011 7:08:58 PM] karamazovapy: I can zip and upload... [3/8/2011 7:09:02 PM] karamazovapy: I already have all of those and some more [3/8/2011 7:16:34 PM] buckyballreaction: and away she goes [3/8/2011 7:20:02 PM] buckyballreaction: i like the name roboroach [3/8/2011 7:20:19 PM] buckyballreaction: so these are considerations for bitfighter music? [3/8/2011 7:20:32 PM] karamazovapy: considerations for use in bitfightervideo stuff [3/8/2011 7:20:47 PM] karamazovapy: I still haven't gotten around to publishing 3B3 video due to my lack of soundtrackery [3/8/2011 7:21:23 PM] karamazovapy: I posted a possible "bitfighter soundtrack" on the forums before I started that youtube account, but I've used up most of those tracks [3/8/2011 7:21:31 PM] karamazovapy: they were pared down from a much larger list like this [3/8/2011 7:22:28 PM] Chris Eykamp: I'm adding ones I like to the music_ideas folder [3/8/2011 7:25:44 PM] buckyballreaction: i think kid icarus has some bimodal beats and my brain feels funny [3/8/2011 7:27:23 PM] buckyballreaction: sorry binaural [3/8/2011 7:28:35 PM] karamazovapy: I've run across some really good ones since that list [3/8/2011 7:29:46 PM] Chris Eykamp: [Tuesday, March 08, 2011 7:27 PM] buckyballreaction: <<< binaural?? [3/8/2011 7:30:03 PM] karamazovapy: iDoser? [3/8/2011 7:30:09 PM] buckyballreaction: http://en.wikipedia.org/wiki/Binaural_beats [3/8/2011 7:30:19 PM] buckyballreaction: they play with your head [3/8/2011 7:31:17 PM] karamazovapy: iDoser is software that plays back various binaural beats to simulate the effects of different illegal drugs [3/8/2011 7:31:42 PM] karamazovapy: in my experience, it doesn't work...although the beats can make you feel a little weird [3/8/2011 7:31:50 PM] buckyballreaction: i didn't think they could affect you enough to do that [3/8/2011 7:32:04 PM] buckyballreaction: yeah... the weirdness is what i usually feel [3/8/2011 7:32:05 PM] buckyballreaction: can't stand it [3/8/2011 7:33:14 PM] karamazovapy: they have proprietary sounds that are played back in a certain order with different panning and stuff. you pick your drug of choice - marijuana, LSD, mescaline, whatever, and the audio is supposed to trigger the right parts of your brain [3/8/2011 7:33:36 PM] karamazovapy: but like I said, it's a scam for suburban teenagers [3/8/2011 7:34:11 PM] karamazovapy: the audio files have over the top descriptions of how powerful and dangerous they are [3/8/2011 7:34:19 PM] buckyballreaction: haha [3/8/2011 7:37:13 PM] buckyballreaction: i'm beginning to think the chiptune genre is a little harsh for me [3/8/2011 7:37:25 PM] buckyballreaction: grating on the ears [3/8/2011 7:37:32 PM] Chris Eykamp: lots of buzzing [3/8/2011 7:37:38 PM] karamazovapy: http://www.lulu.com/product/cd/recreational-simulations-1/375888 [3/8/2011 7:37:50 PM] karamazovapy: http://www.i-doser.com/index.html [3/8/2011 7:39:02 PM] karamazovapy: try turning down the volume on your chiptunes [3/8/2011 7:39:32 PM] karamazovapy: I set the music so bitfighter sound effects are clearly audible on top [3/8/2011 7:39:59 PM] karamazovapy: that's one of my final round tests, to see how the soundscapes mesh [3/8/2011 7:40:38 PM] buckyballreaction: i actually do like a lot of these [3/8/2011 7:40:47 PM] buckyballreaction: but it becomes tiring fast [3/8/2011 7:41:10 PM] karamazovapy: like I said, listener fatigue [3/8/2011 7:41:24 PM] buckyballreaction: haha, and every second one seems to crash my player... [3/8/2011 7:41:49 PM] karamazovapy: hah [3/8/2011 7:41:54 PM] karamazovapy: I'm on page 360 [3/8/2011 7:48:32 PM] karamazovapy: next hundred pages' results - [3/8/2011 7:48:33 PM] karamazovapy: http://8bc.org/music/-12insomnia-/-the+fire-/ http://8bc.org/music/J.+Arthur+Keenes/Stage1/ http://8bc.org/music/UnicornDreamAttack/Battered+Lighthouse+%28Raw+Version%29/ http://8bc.org/music/J.+Arthur+Keenes/Ocean+Stage/ http://8bc.org/music/MassiveUntilMorning/COMBAT+STRIKE/ http://8bc.org/music/zabutom/LET%27S+SHOOTING%21/ http://8bc.org/music/Knuckle+Joe/Home+Ground/ http://8bc.org/music/Sabrepulse/OutBrk/ http://8bc.org/music/MassiveUntilMorning/221109/ http://8bc.org/music/J.+Arthur+Keenes/Colour+Television/ http://8bc.org/music/-12insomnia-/Black+thunder/ http://8bc.org/music/Mudkipz/Dance%2C+Or+I+Will+Cut+You./ http://8bc.org/music/Fighter+X/Umbra/ http://8bc.org/music/-12insomnia-/JUMPER+%28+trance+testing+demo+%29/ [3/8/2011 7:49:10 PM] karamazovapy: think I'm getting a little pickier [3/8/2011 8:43:05 PM] karamazovapy: through all 540 pages! [3/8/2011 8:43:06 PM] karamazovapy: http://8bc.org/music/SarahChip/challenge+sequence+1/ http://8bc.org/music/coda/coda+%2526+cancel+-+turkoid+%28blockparty2010+invite%29/ http://8bc.org/music/Jredd/Phazer+Phunk/ http://8bc.org/music/SEBIRON%21/SF+BUNJOO/ http://8bc.org/music/MassiveUntilMorning/Rainbow+in+your+eyes/ http://8bc.org/music/chibi-tech/Pheromone+OVERDOSAGE/ http://8bc.org/music/shirobon/Complications/ http://8bc.org/music/IAYD/City+of+Mediocrity/ http://8bc.org/music/Zef/Livewire+%28Electro+House+LSDJ%29/ http://8bc.org/music/Wiklund/Dunk+Brothers+%28C64%29/ [3/8/2011 8:43:43 PM] karamazovapy: first round netted 76 out of 2,700ish tracks [3/8/2011 8:48:00 PM] buckyballreaction: wow [3/8/2011 8:48:29 PM] karamazovapy: to be fair, those 76 don't count the dozen or so I picked out last time [3/8/2011 8:53:43 PM] buckyballreaction: @watusimoto, did you see my graphic before with the intersecting botzones being created? [3/8/2011 9:00:39 PM] Chris Eykamp: yes [3/8/2011 9:00:44 PM] Chris Eykamp: but leaving now [3/8/2011 9:00:47 PM] Chris Eykamp: on later [3/8/2011 9:01:12 PM] buckyballreaction: k [3/8/2011 11:30:22 PM] buckyballreaction: good evening [3/9/2011 12:47:27 AM] Chris Eykamp: hi [3/9/2011 1:11:10 AM] buckyballreaction: hi [3/9/2011 1:11:12 AM] buckyballreaction: back again [3/9/2011 1:11:49 AM] buckyballreaction: so i could commit my changes for the buffered botzones - but it still has the problem of intersections creating zones [3/9/2011 1:12:18 AM] buckyballreaction: and i'm not quite sure what to do about that... [3/9/2011 1:12:20 AM] Chris Eykamp: can you show me an illustration of that> [3/9/2011 1:12:47 AM] buckyballreaction: http://96.2.123.136/upload/snapshot10.png [3/9/2011 1:12:56 AM] buckyballreaction: zone 8 is 50 wide [3/9/2011 1:13:07 AM] buckyballreaction: 13 is 30 wide [3/9/2011 1:13:12 AM] buckyballreaction: 8 is good [3/9/2011 1:13:14 AM] buckyballreaction: 13 bad [3/9/2011 1:14:16 AM] buckyballreaction: i figure i could do a massive for loop on all the barriers and do some crazy detection logic... [3/9/2011 1:14:25 AM] buckyballreaction: and compare then all with each other [3/9/2011 1:14:31 AM] buckyballreaction: but that just sounds horrible [3/9/2011 1:15:22 AM] Chris Eykamp: I'm confused about what I'm looking at [3/9/2011 1:15:26 AM] Samuel Williams: in the picture, blue background confuse me for which is barriers.. [3/9/2011 1:15:34 AM] Chris Eykamp: are these all inside walls? [3/9/2011 1:15:37 AM] Chris Eykamp: why is the bg blue? [3/9/2011 1:15:59 AM] Samuel Williams: the blue background is the commander's map, showing the visible area [3/9/2011 1:16:04 AM] Chris Eykamp: ah [3/9/2011 1:16:06 AM] Chris Eykamp: right [3/9/2011 1:16:20 AM] Chris Eykamp: so your question is why is 13 so thick? [3/9/2011 1:17:03 AM] Chris Eykamp: or is it that 13 represents overlap of teh puffy walls? [3/9/2011 1:17:25 AM] Samuel Williams: overlapping? [3/9/2011 1:17:56 AM] buckyballreaction: overlaps [3/9/2011 1:17:57 AM] Chris Eykamp: I see the problem, but am not clear about why it's happening [3/9/2011 1:18:11 AM] Chris Eykamp: if you two unpuffed walls overlap, there is no problem [3/9/2011 1:18:25 AM] Chris Eykamp: so why is there a problem if two puffed walls overlap? [3/9/2011 1:18:30 AM] buckyballreaction: exactly [3/9/2011 1:18:48 AM] buckyballreaction: i am generating geometry the same way as the walls [3/9/2011 1:18:59 AM] buckyballreaction: same exact logic, just with different input points [3/9/2011 1:19:25 AM] buckyballreaction: i could push what I have to my clone, if you want to look.... [3/9/2011 1:20:02 AM] Chris Eykamp: I will look, but my mind is wrapped up in another problem, and I don;t want ot unwrap it as I've been trying to figure this out for a week [3/9/2011 1:20:11 AM] Chris Eykamp: and I really want to finish it [3/9/2011 1:20:13 AM] buckyballreaction: maybe we can help each other? [3/9/2011 1:20:16 AM] buckyballreaction: :) [3/9/2011 1:20:19 AM] Chris Eykamp: because I'm getting sick of it! [3/9/2011 1:20:25 AM] buckyballreaction: new blood [3/9/2011 1:20:32 AM] Chris Eykamp: maybe [3/9/2011 1:20:33 AM] buckyballreaction: is what is needed when things go stale [3/9/2011 1:20:43 AM] buckyballreaction: although my blood is a little inexperienced... [3/9/2011 1:20:57 AM] Chris Eykamp: this is a pure logic problem [3/9/2011 1:21:03 AM] buckyballreaction: ooo [3/9/2011 1:21:05 AM] buckyballreaction: i like those [3/9/2011 1:21:11 AM] Chris Eykamp: you won't like this one [3/9/2011 1:21:22 AM] Chris Eykamp: http://www.terathon.com/code/edges.html [3/9/2011 1:21:22 AM] buckyballreaction: a riddle with no answer? [3/9/2011 1:21:32 AM] Chris Eykamp: this is teh algo used to aggregate polygons [3/9/2011 1:21:46 AM] Chris Eykamp: sorry -- to figure out which polygons are adjacent [3/9/2011 1:21:52 AM] Chris Eykamp: it's much faster than what we do [3/9/2011 1:21:57 AM] Chris Eykamp: so I want to use it [3/9/2011 1:21:59 AM] buckyballreaction: ah cool [3/9/2011 1:22:02 AM] Chris Eykamp: recast uses it on polygons [3/9/2011 1:22:24 AM] Chris Eykamp: the algo as presented is for triangles, but i suspect it scales up to polygons made from aggregated triangles [3/9/2011 1:22:33 AM] Chris Eykamp: if the vertices are still ordered properly [3/9/2011 1:22:39 AM] Chris Eykamp: which I *think* they are [3/9/2011 1:22:50 AM] buckyballreaction: coming out of recast, they are [3/9/2011 1:22:56 AM] buckyballreaction: because detour required them to be [3/9/2011 1:23:07 AM] Chris Eykamp: right, except I've optimized things a bit [3/9/2011 1:23:15 AM] Chris Eykamp: but I think they're still good [3/9/2011 1:23:22 AM] buckyballreaction: tha'ts right [3/9/2011 1:24:07 AM] buckyballreaction: so you wish to adapt to polygons... [3/9/2011 1:24:23 AM] Chris Eykamp: well, recast already has; I'm just trying to get it to work [3/9/2011 1:25:13 AM] Chris Eykamp: but I'm not sure how to show youwhere I'm at [3/9/2011 1:25:19 AM] Chris Eykamp: or what I'm trying to do [3/9/2011 1:25:25 AM] buckyballreaction: ok [3/9/2011 1:25:43 AM] buckyballreaction: so we are not using the recast method, then? [3/9/2011 1:25:52 AM] Chris Eykamp: basically, rather than store adjancey the way this/recast does, I want to generate a neighboringZone object [3/9/2011 1:25:58 AM] buckyballreaction: or maybe i miss what you wish to use it for... [3/9/2011 1:26:03 AM] Chris Eykamp: generally, yes, but storing it differently [3/9/2011 1:26:19 AM] Chris Eykamp: so we can create one of these neighboring zone things then we're done [3/9/2011 1:26:27 AM] Chris Eykamp: no need to store it [3/9/2011 1:27:06 AM] Chris Eykamp: so I'm trying to shove it into buildBotNavMeshXoneConnections [3/9/2011 1:27:19 AM] Chris Eykamp: except I'm calling it buildBotNavMeshZoneConnectionsRecastStyle for the moment [3/9/2011 1:27:23 AM] Chris Eykamp: just to keep it straight [3/9/2011 1:27:47 AM] Chris Eykamp: so it follows the same steps as recast, but doesn;t work [3/9/2011 1:28:02 AM] Chris Eykamp: though I never established that the recast neighboring zone stuff worked after all my refactoring [3/9/2011 1:28:36 AM] Chris Eykamp: so I'm trying to understand the algo and make sure it's being applied correctly [3/9/2011 1:28:55 AM] Chris Eykamp: on thing that worries me is that recast was built for triangles wound in a cw direction [3/9/2011 1:29:07 AM] Chris Eykamp: the algo I posted is for triangles wound in a ccw direction [3/9/2011 1:29:16 AM] Chris Eykamp: yet the code is exactly the same [3/9/2011 1:29:23 AM] Chris Eykamp: so I'm confused [3/9/2011 1:29:28 AM] buckyballreaction: don't you feed recast triangle in ccw? [3/9/2011 1:29:32 AM] Chris Eykamp: I rewrote recast to use triangles in ccw, yes [3/9/2011 1:29:39 AM] Chris Eykamp: so does this need to change? [3/9/2011 1:29:41 AM] buckyballreaction: ahhh [3/9/2011 1:29:55 AM] Chris Eykamp: or does this algo work with either winding as long as it's consistent? [3/9/2011 1:30:03 AM] Chris Eykamp: not sure [3/9/2011 1:30:20 AM] Chris Eykamp: but I'm getting total crap out, not just things backwards [3/9/2011 1:30:33 AM] Chris Eykamp: so I may have a non-algo problem [3/9/2011 1:30:43 AM] Chris Eykamp: like a pointer that's gone astray [3/9/2011 1:30:55 AM] Chris Eykamp: or soemthing [3/9/2011 1:31:05 AM] Chris Eykamp: it's really hard for me to get ahold of [3/9/2011 1:31:22 AM] Chris Eykamp: but if it works, it will be really fast [3/9/2011 1:32:00 AM] buckyballreaction: do you have something that compiles? [3/9/2011 1:32:07 AM] buckyballreaction: because maybe GCC will catch something [3/9/2011 1:32:09 AM] Chris Eykamp: yes [3/9/2011 1:32:19 AM] buckyballreaction: i could do a compile and see what happens [3/9/2011 1:32:33 AM] Chris Eykamp: ok, hold on a sec, let's do an experiment here [3/9/2011 1:32:40 AM] buckyballreaction: hg diff > some.diff [3/9/2011 1:32:46 AM] buckyballreaction: then send me the diff [3/9/2011 1:32:55 AM] buckyballreaction: (unless you created new files) [3/9/2011 1:34:35 AM] buckyballreaction: I pushed my current botzone buffer changes here: http://code.google.com/r/buckyballreaction-bf7/source/list [3/9/2011 1:34:43 AM] buckyballreaction: if anyone wants to look and rebuke me [3/9/2011 1:36:24 AM] Chris Eykamp: see ifyou can clone 174.25.163.82:8000 [3/9/2011 1:36:54 AM] buckyballreaction: cloning... [3/9/2011 1:37:40 AM] Chris Eykamp: really? [3/9/2011 1:37:42 AM] buckyballreaction: yep [3/9/2011 1:37:53 AM] Chris Eykamp: wow; first try [3/9/2011 1:38:03 AM] buckyballreaction: and that is why google chose hg over git [3/9/2011 1:39:28 AM] buckyballreaction: i've got 13 of about 50MB [3/9/2011 1:39:33 AM] buckyballreaction: so it'll take a little while... [3/9/2011 1:39:40 AM] Chris Eykamp: oh [3/9/2011 1:39:56 AM] buckyballreaction: 60MB actually [3/9/2011 1:41:06 AM] buckyballreaction: i was thinking... do we want to put in some CPU-spiking prevention code when generating bot zones? [3/9/2011 1:41:18 AM] buckyballreaction: because it will use the processor to it's fullest... [3/9/2011 1:41:56 AM] Chris Eykamp: I don't know [3/9/2011 1:42:26 AM] buckyballreaction: 24MB [3/9/2011 1:42:35 AM] Samuel Williams: it only use 1 CPU out of 2 for dual core CPUs, so that might not using CPU to the fullest. [3/9/2011 1:42:48 AM] buckyballreaction: i guess that's true [3/9/2011 1:43:31 AM] buckyballreaction: everyone know the whole purpose of a second core is to run all the malware on the computer so you can still browse the web... [3/9/2011 1:43:35 AM] Samuel Williams: but then, server freezes while calculating bot zones, making everyone lag for a few seconds [3/9/2011 1:48:46 AM] Chris Eykamp: there's two of you downloading! [3/9/2011 1:48:59 AM] buckyballreaction: i'm done! [3/9/2011 1:49:31 AM] Chris Eykamp: All the action is in buildBotNavMeshZoneConnectionsRecastStyle in BotNavMeshZone.cpp [3/9/2011 1:49:51 AM] Chris Eykamp: we hand in the recast mesh [3/9/2011 1:50:50 AM] Chris Eykamp: There are mesh.npolys polygons [3/9/2011 1:51:19 AM] Chris Eykamp: any polygon starting with U16_MAX has been deleted and should be ignored [3/9/2011 1:51:23 AM] buckyballreaction: no compile (other than triagnle) [3/9/2011 1:51:36 AM] Chris Eykamp: each poly has up to mesh.nverts verts [3/9/2011 1:51:38 AM] buckyballreaction: no compile errors, i mean [3/9/2011 1:51:45 AM] Chris Eykamp: compiled [3/9/2011 1:51:52 AM] Chris Eykamp: not surprised [3/9/2011 1:52:37 AM] Chris Eykamp: and currently, in the mesh, each point has been offset by s16_max [3/9/2011 1:52:48 AM] Chris Eykamp: as a temporary fix for recast dealing only with U16 corrdinates [3/9/2011 1:54:36 AM] buckyballreaction: wow [3/9/2011 1:54:40 AM] buckyballreaction: lines everywhere! [3/9/2011 1:55:06 AM] Chris Eykamp: exactly [3/9/2011 1:55:13 AM] Chris Eykamp: not even vertex to vertex [3/9/2011 1:55:15 AM] Chris Eykamp: just crap [3/9/2011 1:56:36 AM] buckyballreaction: so currently we use our own method to create the connections? [3/9/2011 1:57:13 AM] buckyballreaction: in buildBotNavMeshZoneConnections() [3/9/2011 1:57:18 AM] buckyballreaction: and you want it better [3/9/2011 1:57:26 AM] Chris Eykamp: yes [3/9/2011 1:57:30 AM] Chris Eykamp: not better, faster [3/9/2011 1:57:40 AM] Chris Eykamp: that's what takes the bul=k of the time [3/9/2011 1:58:06 AM] buckyballreaction: right now it looks like it's running in polynomial time [3/9/2011 1:58:34 AM] Chris Eykamp: what's that x? x^2? [3/9/2011 1:58:49 AM] Chris Eykamp: [Wednesday, March 09, 2011 1:57 AM] buckyballreaction: <<< buildBotNavMeshZoneConnectionsx^2 [3/9/2011 1:58:51 AM] Chris Eykamp: the new one is x [3/9/2011 1:58:56 AM] buckyballreaction: ax3 + bx2 +cx + d [3/9/2011 1:59:04 AM] Chris Eykamp: which? [3/9/2011 1:59:06 AM] buckyballreaction: so x^2 [3/9/2011 1:59:21 AM] Chris Eykamp: neither are x^3 [3/9/2011 1:59:30 AM] buckyballreaction: that's polynomial [3/9/2011 1:59:39 AM] buckyballreaction: anytime where all exponents are constants [3/9/2011 2:00:02 AM] Chris Eykamp: so 4 = 4x^0 is polynomial? [3/9/2011 2:00:51 AM] buckyballreaction: haha, sorry - i guess constant > 2 [3/9/2011 2:00:54 AM] buckyballreaction: >=2 [3/9/2011 2:01:01 AM] Chris Eykamp: ok [3/9/2011 2:01:32 AM] Chris Eykamp: maybe the problem is that the coordinaets are messed up somehow [3/9/2011 2:01:37 AM] Chris Eykamp: maybe the algo is ok [3/9/2011 2:05:24 AM] buckyballreaction: it looks like a good chunk of them do go vertex to vertex... [3/9/2011 2:06:19 AM] buckyballreaction: add all are way too long [3/9/2011 2:06:24 AM] buckyballreaction: add = and [3/9/2011 2:14:15 AM] Samuel Williams: Using bbr's latest source, Errors on RecastMesh.cpp line 565 memcpy(...), on this level: GameType 10 8 Team Blue 0 0 1 BarrierMaker 50 0.4 -0.2 -1.3 0.2 BarrierMaker 50 -1.2 -1.1 1.6 -0.7 0.9 1.9 -2.1 1 -1.2 -1.1 BarrierMaker 50 0.5 0.5 -1.1 0.6 BarrierMaker 50 0.5 0.5 -1.1 0.6 Spawn 0 1 -0.2 [3/9/2011 2:14:45 AM] Samuel Williams: having both barriers on top of each other cause errors. [3/9/2011 2:16:30 AM] buckyballreaction: testing... [3/9/2011 2:17:02 AM] buckyballreaction: @watusimoto: why does the second loop in your method give large vertices, but the first doesn't? [3/9/2011 2:17:11 AM] buckyballreaction: logprintf loop [3/9/2011 2:17:47 AM] Chris Eykamp: they print different numbers of vertices; first n are the same [3/9/2011 2:18:06 AM] buckyballreaction: ah, i just have to scroll up a ways... [3/9/2011 2:18:08 AM] buckyballreaction: sorry [3/9/2011 2:18:11 AM] Chris Eykamp: np [3/9/2011 2:19:37 AM] buckyballreaction: @sam, i don't get a crash [3/9/2011 2:19:43 AM] buckyballreaction: on your test level... [3/9/2011 2:19:43 AM] Chris Eykamp: there's a problem [3/9/2011 2:20:06 AM] Chris Eykamp: on those coord dumpos, 2nd coordis repeated as first on next line [3/9/2011 2:20:14 AM] Chris Eykamp: so maybe I made same mistake elsewhere [3/9/2011 2:20:30 AM] Chris Eykamp: there's 2 array slots per vertex, not one [3/9/2011 2:20:55 AM] buckyballreaction: i+=2 [3/9/2011 2:20:57 AM] buckyballreaction: instaed of i++ [3/9/2011 2:21:01 AM] buckyballreaction: in printing [3/9/2011 2:22:11 AM] Samuel Williams: i was using BotZoneGeneratorMode=6, as that mode uses Recast [3/9/2011 2:22:20 AM] buckyballreaction: yes me too [3/9/2011 2:22:26 AM] buckyballreaction: you pulled from my clone? [3/9/2011 2:22:41 AM] Samuel Williams: yes.. [3/9/2011 2:23:56 AM] Samuel Williams: for some unknown reason, i can't error/crash it again... [3/9/2011 2:24:15 AM] buckyballreaction: ghosts in the machine [3/9/2011 2:29:52 AM] Samuel Williams: it did crash again, seems like it error/crash by random chance on that same memcpy line. [3/9/2011 2:30:00 AM] buckyballreaction: :( [3/9/2011 2:30:05 AM] buckyballreaction: i have never had it crash... [3/9/2011 2:30:22 AM] buckyballreaction: but i have also been testing without -O2 optimizations [3/9/2011 2:30:43 AM] buckyballreaction: i used to get weird recast crashes with compiler optimizations [3/9/2011 2:33:47 AM] Samuel Williams: http://96.2.123.136/bitfighter/error.gif to me, memcpy tries to read out of range memory.. [3/9/2011 2:34:26 AM] buckyballreaction: so THAT's what vc++ looks like when it's finally set up... [3/9/2011 2:34:53 AM] Samuel Williams: that is disassembly inside memcpy [3/9/2011 2:36:27 AM] buckyballreaction: add a +1 to the memcpy [3/9/2011 2:36:32 AM] buckyballreaction: just for fun [3/9/2011 2:37:34 AM] buckyballreaction: like on line 436 [3/9/2011 2:38:03 AM] buckyballreaction: oh wait, sorry that's copying... not allocating [3/9/2011 2:38:57 AM] Samuel Williams: maybe the memcpy size is wrong? [3/9/2011 2:40:22 AM] buckyballreaction: actually htat may be the issue: that +1 is being allocated at first, but memcpy isn't copying it.. [3/9/2011 2:42:16 AM] buckyballreaction: @watusimoto, what is this?: edge.poly[0] = (unsigned short)i; // left poly edge.poly[1] = (unsigned short)i; [3/9/2011 2:42:30 AM] buckyballreaction: oops [3/9/2011 2:42:33 AM] buckyballreaction: have to read the comments [3/9/2011 2:44:32 AM] buckyballreaction: i really want to be done with bot zones so we can get going on SDL... [3/9/2011 2:48:03 AM] Samuel Williams: maybe this is the problem sizeof(unsigned short*) is 4 (size of pointer) [3/9/2011 2:48:59 AM] buckyballreaction: did you try: memcpy(mesh.polys, polys, (ntris+1)*nvp*sizeof(unsigned short*)); [3/9/2011 2:49:40 AM] buckyballreaction: and yes, that seems weird it's a point there but not above... [3/9/2011 2:49:45 AM] buckyballreaction: pointer [3/9/2011 2:51:09 AM] Samuel Williams: removing '*' fixes the problem on RecastMesh.cpp line 565 memcpy(mesh.polys, polys, ntris*nvp*sizeof(unsigned short)); No more sizeof(unsigned short *) [3/9/2011 2:51:27 AM] buckyballreaction: hooray! [3/9/2011 2:53:42 AM] Samuel Williams: it makes a big difference weather or not the size memcpy is trying to copy is too big: sizeof(unsigned short *) = 4 sizeof(unsigned short) = 2 [3/9/2011 2:54:51 AM] buckyballreaction: interesting [3/9/2011 4:04:28 AM] buckyballreaction: i tried to reverse the order of mesh.verts, and i can't seem to get a reverse algo to work [3/9/2011 4:05:06 AM] buckyballreaction: i think the brain is dead [3/9/2011 4:33:28 AM] buckyballreaction: giving up for the night [3/9/2011 9:44:18 AM] karamazovapy: for some reason, I seem to be getting a lot of server connection messages in the latest version of bf [3/9/2011 9:45:32 AM] karamazovapy: if the connection issues have always existed and we just have a big red box to represent them now, the big red box makes the problem seem a lot bigger than it is [3/9/2011 11:23:37 AM] Chris Eykamp: I fell alseep somewhere around 11PM last night... [3/9/2011 11:25:07 AM] Chris Eykamp: [Wednesday, March 09, 2011 9:45 AM] karamazovapy: <<< the big red box makes the problem seem a lot bigger than it isyou're probably right.... right now the box appears after 2 sec. Maybe we should increase that to 10 or 15 secs? [3/9/2011 11:25:17 AM] Chris Eykamp: by that point the connection isn't going to come bak\ [3/9/2011 11:28:42 AM] buckyballreaction: you got my master server e-mail [3/9/2011 11:30:13 AM] Chris Eykamp: I did [3/9/2011 11:30:25 AM] buckyballreaction: did you have to fix something? [3/9/2011 11:30:40 AM] Chris Eykamp: no; it may have restarted itself [3/9/2011 11:32:40 AM] buckyballreaction: so did you make any progress last night with the new algo? [3/9/2011 11:32:42 AM] buckyballreaction: i sure didn't [3/9/2011 11:32:54 AM] buckyballreaction: i rulled out reversal of the vertex set [3/9/2011 11:32:58 AM] buckyballreaction: fuled [3/9/2011 11:33:00 AM] buckyballreaction: ruled [3/9/2011 11:34:02 AM] buckyballreaction: @sam, did you want to check in your memcpy fix? [3/9/2011 1:12:46 PM] Chris Eykamp: I made it here [3/9/2011 1:13:21 PM] Chris Eykamp: @bbr -- I fell asleep shortly after you checked the code out; I did find a bug, but fixing it doesn't resolve the bigger problems [3/9/2011 1:16:10 PM] buckyballreaction: are the displayed zone numbers in the map when you do /showzones the same as the index id to each poly in mesh.polys? [3/9/2011 1:27:28 PM] Chris Eykamp: I have been assuming they are, but probably not [3/9/2011 1:28:49 PM] Chris Eykamp: when we get the zones from the mesh builder, we get a chunk of memory that had been allocated with enough "slots" to hold n polygons with p points, where n is the number of triangles we started with, and p is the max number of points per poly (currenlty 6?) [3/9/2011 1:29:15 PM] buckyballreaction: 6, yes [3/9/2011 1:29:41 PM] Chris Eykamp: when the trriangles are being aggregated, if we merge two together, we write the combined polygon on top of the lower indexed triangle, and 0xffff out the higher polygon [3/9/2011 1:29:52 PM] Chris Eykamp: we keep repeating until we've merged all we're going to merge [3/9/2011 1:30:12 PM] Chris Eykamp: so we're left with the same memroy soace, with many polygons oxffff'ed out [3/9/2011 1:30:33 PM] buckyballreaction: so many indices are lost [3/9/2011 1:30:55 PM] Chris Eykamp: when we process that and read that in to create our mesh zones, I'm not sure if we maintain the indices, or if we just renumber from 0 [3/9/2011 1:31:06 PM] Chris Eykamp: they should be in the same order, at least [3/9/2011 1:31:16 PM] Chris Eykamp: let me check what we do with the index [3/9/2011 1:32:38 PM] Chris Eykamp: zoneID is not incremented when skipping over 0xffff'ed out polys, so the index numbers are not the same [3/9/2011 1:33:00 PM] buckyballreaction: i ask, because i have been analyzing stored poly connections you set up - and i wanted to visually see if they were correct [3/9/2011 1:35:13 PM] Chris Eykamp: the problem is almost certainly a vertex numbering confusion pointer issue [3/9/2011 1:35:32 PM] Chris Eykamp: xx 0 : -75,-675 xx 2 : -75,75 xx 4 : 1051,75 xx 6 : 1051,-675 xx 8 : -24,25 xx 10 : -24,-624 xx 12 : 25,-24 xx 14 : 25,-574 xx 16 : 925,-624 xx 18 : 875,-574 xx 20 : 925,25 xx 22 : 875,-24 xx 24 : 32254,32254 xx 26 : 11180,11180 xx 28 : 11180,11180 xx 30 : 32495,32495 xx 32 : -32767,-32767 [3/9/2011 1:35:41 PM] Chris Eykamp: these points are all legit looking until we hit 24 [3/9/2011 1:36:11 PM] Chris Eykamp: there's a bunch of lines like these getting printed out [3/9/2011 1:36:11 PM] Chris Eykamp: edge 2 from 5 [-24,-624] to 4 [-24,25] edge 3 from 4 [-24,25] to 1 [-75,75] edge 0 from 8 [925,-624] to 5 [-24,-624] edge 1 from 5 [-24,-624] to 0 [-75,-675] edge 2 from 0 [-75,-675] to 3 [1051,-675] [3/9/2011 1:36:21 PM] Chris Eykamp: so coord data still looks legit [3/9/2011 1:36:42 PM] Chris Eykamp: but, as we're constructing the borders, I'm seeing things like this [3/9/2011 1:37:00 PM] Chris Eykamp: Poly: 3 and 0 are adjacent, with verts 1 4 border start: -1503,-32758 border end: -24034,-3168 Poly: 5 and 3 are adjacent, with verts 2 10 border start: -10567,-32094 border end: 11180,11180 [3/9/2011 1:37:07 PM] Chris Eykamp: suddently the coords are bogus [3/9/2011 1:37:19 PM] buckyballreaction: wow [3/9/2011 1:37:29 PM] Chris Eykamp: so the problem is probably in how I'm finding the vertex coords [3/9/2011 1:38:03 PM] Chris Eykamp: if the algo is failing, it would be connecting the wrong corners, not creating lines that extend off into space [3/9/2011 1:38:21 PM] buckyballreaction: i went through the algo last night, and i didn't notice anything blatant from your code when compared to it [3/9/2011 1:38:46 PM] Chris Eykamp: so I think the biggest problem is in interpreting the adjacnecy data and feeding it into the zone boundaries [3/9/2011 1:39:06 PM] Chris Eykamp: so all my attention to the algo was wrongly directed [3/9/2011 1:39:45 PM] Chris Eykamp: [Wednesday, March 09, 2011 1:36 PM] Chris Eykamp: <<< Poly: 5 and 3 are adjacent, with verts 2 10 border start: -10567,-32094 border end: 11180,11180 [3/9/2011 1:40:09 PM] Chris Eykamp: furthermore, verts 2 & 10 should be legit, so it's probably the lookup for the coords of vert2 [3/9/2011 1:40:12 PM] Chris Eykamp: and 10 [3/9/2011 1:40:18 PM] Chris Eykamp: because those coords are bogus [3/9/2011 1:40:23 PM] Chris Eykamp: for those verts [3/9/2011 1:40:32 PM] Chris Eykamp: [Wednesday, March 09, 2011 1:35 PM] Chris Eykamp: <<< xx 2 : -75,75 xx 4 : 1051,75 xx 6 : 1051,-675 xx 8 : -24,25 xx 10 : -24,-624 [3/9/2011 1:40:56 PM] Chris Eykamp: bord.start should be -75,75, bord.end should be -24,-624 [3/9/2011 1:41:09 PM] Chris Eykamp: so that narrows it down considerably [3/9/2011 1:49:08 PM] Chris Eykamp: https://code.google.com/p/bitfighter/issues/detail?id=75 [3/9/2011 1:53:01 PM] buckyballreaction: i wiwsh i left my laptop on at home so I could get your code from it... [3/9/2011 3:10:04 PM] buckyballreaction: forgot to ask - any ideas off the top of your head about my intersecting buffers zone creation problem? [3/9/2011 3:11:51 PM] Chris Eykamp: I haven't looked, I do have an intuitive idea of the problem, because it sounds like one I was experiencing working with triangle. In fact, one thing you should try is to render the zones as triangles, skipping the aggregation step (I think Sam made this work via an INI setting, though I'm getting further behind on keeping track of what's going on around here :) [3/9/2011 3:12:08 PM] Chris Eykamp: so try rendering as triangles, and I suspect you'll see that area filled with triangles [3/9/2011 3:12:20 PM] Chris Eykamp: if so, I have a pretty good understanding of the problem [3/9/2011 3:12:38 PM] Chris Eykamp: and can either try to fix it myself or help you understnad what is going on [3/9/2011 3:12:55 PM] buckyballreaction: so right now, if buffers overlap a zone is created where it shouldn't be [3/9/2011 3:13:11 PM] Chris Eykamp: right -- let's make sure this is a triangle issue [3/9/2011 3:13:17 PM] Chris Eykamp: I'm pretty sure it is [3/9/2011 3:13:19 PM] buckyballreaction: okey doke [3/9/2011 3:50:29 PM] karamazovapy: ...I give you the next twelve tracks for my own bitfighter soundtrack: [3/9/2011 3:50:30 PM] karamazovapy: http://8bc.org/music/MassiveUntilMorning/221109/ http://8bc.org/music/tRasH+cAn+maN/Emancipation/ http://8bc.org/music/Fighter+X/Little+Fighter+X/ http://8bc.org/music/an-cat-max/Making+Acquaintances/ http://8bc.org/music/Sabrepulse/As+Vivid+As+Possible+%28Remix%29/ http://8bc.org/music/she/Traveling+by+night/ http://8bc.org/music/chipzel/Something+Beautiful/ http://8bc.org/music/syphus/olden+days/ http://8bc.org/music/coda/coda+%2526+cancel+-+turkoid+%28blockparty2010+invite%29/ http://8bc.org/music/Ultrasyd/Lonely+Robot+%28Atari+ST%29/ http://8bc.org/music/zabutom/retardation%21/ http://8bc.org/music/zabutom/Trisynaptic+Loop/ [3/9/2011 3:50:42 PM] karamazovapy: these are pared down from the 75ish before [3/9/2011 3:55:15 PM] buckyballreaction: got em.. [3/9/2011 4:04:56 PM] karamazovapy: Olden Days is straight out of the late 80s/early 90s [3/9/2011 4:05:20 PM] karamazovapy: makes me think of streets of rage [3/9/2011 4:27:15 PM] buckyballreaction: streets of rage 2 was my first video game [3/9/2011 4:32:57 PM] buckyballreaction: @watusimoto, i did some tests with the old zone generation, and sam's generation - they seem to respect the buffer intersections even less [3/9/2011 4:35:04 PM] Chris Eykamp: I'm not sure what you mean [3/9/2011 4:35:05 PM] buckyballreaction: well, i guess i did something wrong because holes aren't even fed to the old generator [3/9/2011 4:35:12 PM] buckyballreaction: the squares [3/9/2011 4:36:11 PM] buckyballreaction: wait, i started too far back... [3/9/2011 4:38:42 PM] buckyballreaction: http://96.2.123.136/upload/snapshot10.png [3/9/2011 4:39:00 PM] buckyballreaction: so yes, it's a problem with triangle-only, too [3/9/2011 4:39:12 PM] buckyballreaction: oops, wrong one: http://96.2.123.136/upload/snapshot11.png [3/9/2011 4:46:35 PM] Chris Eykamp: try dropping a small square wall in the center of the overlap area [3/9/2011 4:52:37 PM] buckyballreaction: covering the entire width? [3/9/2011 4:54:44 PM] buckyballreaction: http://96.2.123.136/upload/snapshot12.png [3/9/2011 4:54:46 PM] Chris Eykamp: no, just in the center [3/9/2011 4:54:55 PM] buckyballreaction: like that? [3/9/2011 4:55:04 PM] Chris Eykamp: yes [3/9/2011 4:55:10 PM] Chris Eykamp: try a really small square [3/9/2011 4:56:47 PM] buckyballreaction: http://96.2.123.136/upload/snapshot13.png [3/9/2011 4:57:56 PM] Chris Eykamp: interesting [3/9/2011 4:58:09 PM] Chris Eykamp: I would have guessed that that would fix it [3/9/2011 5:00:28 PM] buckyballreaction: it's goofy [3/9/2011 5:00:45 PM] Chris Eykamp: the way this works is the walls get triangulated [3/9/2011 5:00:51 PM] Chris Eykamp: then we specify an interior point [3/9/2011 5:01:13 PM] Chris Eykamp: and the triangulation method removes all traingles connected to that point until it his an edge [3/9/2011 5:01:21 PM] Chris Eykamp: that's supposed to hollow out the walls [3/9/2011 5:02:22 PM] Chris Eykamp: but make two circles with your fingers, and let them overlap a little; imagine traingles in the three regions; imaging removing the triangles from the larger regions until you hit a finger; that would leave triangles still present in the overlapped area [3/9/2011 5:02:29 PM] Chris Eykamp: that's what I think is happening here [3/9/2011 5:02:51 PM] buckyballreaction: ah [3/9/2011 5:02:51 PM] Chris Eykamp: the key is to remove the interior walls so that the removal process won't hit any interior barriers [3/9/2011 5:03:04 PM] Chris Eykamp: that's why we use the blue lines as our poly borders [3/9/2011 5:03:17 PM] Chris Eykamp: all interior wall segments have been removed for rendering purposes [3/9/2011 5:03:27 PM] buckyballreaction: i use the exact same logic to set up the buffers as those blue lines [3/9/2011 5:03:28 PM] Chris Eykamp: so the triangle removal process can work nicely [3/9/2011 5:03:46 PM] Chris Eykamp: perhaps, but there is no other explanation [3/9/2011 5:04:14 PM] Chris Eykamp: now we specfy that interior point as the center of the segment [3/9/2011 5:04:39 PM] Chris Eykamp: if you what happens if you make the gap between your wall segments very thin? [3/9/2011 5:05:00 PM] Chris Eykamp: mmmm... maybe that won't work [3/9/2011 5:06:29 PM] Chris Eykamp: can you set the lines used for rendering to be those you generate for puffy zones? so you can see what's actaully being processed? [3/9/2011 5:07:17 PM] buckyballreaction: i think so [3/9/2011 5:07:23 PM] buckyballreaction: i have to leave now for a couple hours though [3/9/2011 5:07:28 PM] buckyballreaction: so i'll pick up a bit later [3/9/2011 5:07:30 PM] Chris Eykamp: no worries [3/9/2011 5:38:31 PM] karamazovapy: I'm considering adding a brief pause to my bots when they spawn [3/9/2011 5:38:47 PM] Chris Eykamp: why? [3/9/2011 5:38:54 PM] karamazovapy: it's very robotic, knowing exactly where to go the instant you spawn [3/9/2011 5:39:10 PM] karamazovapy: firing precisely when you appear on screen [3/9/2011 5:40:08 PM] karamazovapy: simulated humanity isn't necessarily the goal, but it's a noticeable difference when you play against them [3/9/2011 5:40:40 PM] Chris Eykamp: ok, good [3/9/2011 5:41:17 PM] Chris Eykamp: maybe a random pause, btwn 0 and 2 seconds [3/9/2011 6:02:20 PM] karamazovapy: I tried adding a test to onTick(), and that worked, but it seems sloppy [3/9/2011 6:35:00 PM] Chris Eykamp: we need a bot:sleep() command [3/9/2011 6:35:53 PM] karamazovapy: yeah...it looks like there isn't a uniform Lua command [3/9/2011 6:36:34 PM] Chris Eykamp: I've created a case for it [3/9/2011 6:36:56 PM] Chris Eykamp: but, perhaps something like if(sleeping) then return end [3/9/2011 6:37:11 PM] Chris Eykamp: and when spawning, say sleeping = true [3/9/2011 6:37:24 PM] Chris Eykamp: and then use a timer to set sleeping back to false [3/9/2011 6:37:36 PM] Chris Eykamp: of course, timers are on the to-be-documented list [3/9/2011 6:39:07 PM] Chris Eykamp: but there's good documentation in the lua code itself... look for timer.lua in the exe/scripts folder. You want a scheduleOnce event [3/9/2011 6:39:41 PM] Chris Eykamp: function onLevelStart() Timer:scheduleOnce("logprint(\"Once!\")", 5000) [3/9/2011 6:39:42 PM] Chris Eykamp: end [3/9/2011 6:39:46 PM] Chris Eykamp: sorry... [3/9/2011 6:40:02 PM] Chris Eykamp: function onLevelStart() Timer:scheduleOnce(sleeping=false, 5000) end [3/9/2011 6:40:22 PM] karamazovapy: ah [3/9/2011 6:40:30 PM] Chris Eykamp: that would set the var sleeping to false 5 secs after onLevelStart() is fired [3/9/2011 6:40:35 PM] karamazovapy: I was googling [3/9/2011 6:40:45 PM] Chris Eykamp: maybe need quotes around the lua code [3/9/2011 6:59:22 PM] Zoomber: best 50 bucks i ever made [3/9/2011 7:08:24 PM] karamazovapy: I'm trying to think of the "best" $50 I ever made... [3/9/2011 7:09:48 PM] karamazovapy: if it was "most degrading" there'd be more competition [3/9/2011 7:14:29 PM] karamazovapy: new masterpiece! [3/9/2011 7:23:27 PM] karamazovapy: I look more than a little psychic in the 3B3 video I'm uploading [3/9/2011 7:39:08 PM] karamazovapy: http://www.youtube.com/watch?v=S2Mq61YF4vM [3/9/2011 7:41:56 PM] buckyballreaction: cool [3/9/2011 7:42:16 PM] buckyballreaction: and you guys think the chiptune genre is the best for bitfighter? [3/9/2011 7:42:29 PM] buckyballreaction: (speaking as if we provided default music for the game) [3/9/2011 7:43:53 PM] Zoomber: i like it [3/9/2011 7:44:06 PM] Chris Eykamp: @bbr I'm open but unconvinced [3/9/2011 7:44:21 PM] karamazovapy: I don't know what would be better [3/9/2011 7:45:05 PM] karamazovapy: I'm also open minded, I just think chiptune meshes with the game relatively well visually [3/9/2011 7:45:23 PM] buckyballreaction: yes, i agree it meshes with the visuals [3/9/2011 7:45:37 PM] buckyballreaction: but not sure about the feel of the game [3/9/2011 7:45:51 PM] buckyballreaction: when you're playing, that is [3/9/2011 7:46:03 PM] buckyballreaction: but then again, i don't play a ton [3/9/2011 7:46:14 PM] karamazovapy: well the first thing to consider is that no choice is going to please everyone [3/9/2011 7:46:22 PM] buckyballreaction: yup [3/9/2011 7:46:28 PM] karamazovapy: I think that's almost impossible [3/9/2011 7:46:31 PM] buckyballreaction: me too [3/9/2011 7:46:43 PM] Chris Eykamp: it only needs to please me [3/9/2011 7:46:50 PM] buckyballreaction: and that makes it easier! [3/9/2011 7:46:52 PM] karamazovapy: but I do think there are a few things that wouldn't work very well for anyone [3/9/2011 7:46:53 PM] Zoomber: no, if you do "no choice" i dont think anyone would be pleased or upset :) [3/9/2011 7:47:18 PM] Chris Eykamp: actually, if we do this right, people can stick their own mp3s in the music folder and override whatever we feed in [3/9/2011 7:47:32 PM] Chris Eykamp: I do feel that a lot of the chiptune stuff is pretty harsh [3/9/2011 7:48:15 PM] karamazovapy: that's a fair response to it, but I think pretty much any "popular" genre is out [3/9/2011 7:48:31 PM] karamazovapy: because of licensing if nothing else [3/9/2011 7:48:39 PM] buckyballreaction: that's true [3/9/2011 7:48:57 PM] Chris Eykamp: we could use nine inch nails [3/9/2011 7:49:04 PM] Chris Eykamp: they have a cc album [3/9/2011 7:49:15 PM] Chris Eykamp: though I haven't listened to it, and it probably isn't a good choice [3/9/2011 7:49:36 PM] Chris Eykamp: there must be some good electronica that's cc licensed [3/9/2011 7:49:43 PM] karamazovapy: I could see that [3/9/2011 7:50:08 PM] karamazovapy: I just immediately thought retro graphics/retro audio [3/9/2011 7:50:55 PM] buckyballreaction: did either of you check out the other music from the auther of gate88? [3/9/2011 7:51:10 PM] karamazovapy: I didn't check out any of the music [3/9/2011 7:51:36 PM] buckyballreaction: http://www.queasygames.com/fiveonefivefour/index.html [3/9/2011 7:51:43 PM] buckyballreaction: just to mix it up a bit... [3/9/2011 7:51:51 PM] buckyballreaction: i don't really think it's anything special [3/9/2011 7:53:30 PM] karamazovapy: for some reason, I don't really link guitar and bitfighter [3/9/2011 7:53:55 PM] karamazovapy: always seems like a weird combination to me [3/9/2011 7:54:05 PM] buckyballreaction: i think i might agree [3/9/2011 7:56:58 PM] Chris Eykamp: synthy [3/9/2011 7:57:31 PM] karamazovapy: I don't really think guitar or vocals [3/9/2011 7:57:42 PM] karamazovapy: and I'm a bit skeptical of anything orchestral [3/9/2011 7:57:49 PM] buckyballreaction: definitely not vocals [3/9/2011 7:58:45 PM] buckyballreaction: @watusimoto - back to the bot zones for me.... [3/9/2011 7:59:04 PM] buckyballreaction: can you tell me what are the steps after the wall geometry is determined? [3/9/2011 7:59:06 PM] Chris Eykamp: ok; hold off for now [3/9/2011 7:59:10 PM] buckyballreaction: I may be missing as tep somewhere [3/9/2011 7:59:12 PM] Chris Eykamp: I think I know the problem [3/9/2011 7:59:30 PM] buckyballreaction: ok [3/9/2011 7:59:39 PM] Chris Eykamp: but... I do think we need a sanity check [3/9/2011 7:59:44 PM] buckyballreaction: yeS! [3/9/2011 7:59:48 PM] Chris Eykamp: do the aggregated zones work as well as pure triangles? [3/9/2011 8:00:03 PM] buckyballreaction: define 'work as well' [3/9/2011 8:00:21 PM] Chris Eykamp: we should load up a couple of different levels, generate zones through both mechansims, and see which paths s_bots take [3/9/2011 8:00:30 PM] Chris Eykamp: work as well = choose the obvious path [3/9/2011 8:00:34 PM] buckyballreaction: no [3/9/2011 8:01:02 PM] Chris Eykamp: I think the aggregated zones may lead to bad choices [3/9/2011 8:01:07 PM] buckyballreaction: remember the test with the aggregated zones and the bot couldn't get out of one of the 6 sided ones even though i was right in front of it? [3/9/2011 8:01:18 PM] Chris Eykamp: that was a different problem [3/9/2011 8:01:23 PM] Chris Eykamp: the bot didn't want to get out [3/9/2011 8:01:47 PM] Chris Eykamp: it would have been fine in a ctf game [3/9/2011 8:01:55 PM] buckyballreaction: ah yes [3/9/2011 8:01:59 PM] Chris Eykamp: at least that was sam's diagnosis [3/9/2011 8:02:08 PM] buckyballreaction: then you are talking about revisiting the cost calculations [3/9/2011 8:02:23 PM] Chris Eykamp: but I recall some wonky pathfinding in ctf1 [3/9/2011 8:02:42 PM] Chris Eykamp: with the aggregated zones, I think the bots take obviously inferior routes [3/9/2011 8:02:49 PM] buckyballreaction: we do it by centroid now... recast, however, does it by edge-to-edge calculations [3/9/2011 8:03:09 PM] Chris Eykamp: I'm not sure you can do that with a* [3/9/2011 8:03:15 PM] Chris Eykamp: you need a zone-zone cost [3/9/2011 8:03:28 PM] Chris Eykamp: to use edges, you need to consider zone-zone-zone cost [3/9/2011 8:04:08 PM] Chris Eykamp: othwerise, which edges do you use to compute the zone traversal cost> [3/9/2011 8:04:09 PM] Chris Eykamp: ? [3/9/2011 8:04:36 PM] Chris Eykamp: unless you retriangulate... [3/9/2011 8:04:41 PM] buckyballreaction: i think it was because recast used two steps to calculate: [3/9/2011 8:04:49 PM] buckyballreaction: 1. zone-zone path [3/9/2011 8:04:57 PM] buckyballreaction: 2. edge-edge path [3/9/2011 8:05:17 PM] buckyballreaction: and straightened the path on step two, also [3/9/2011 8:05:23 PM] Chris Eykamp: but if 1 gets you the wrong answer, refining it with 2 won't help [3/9/2011 8:06:02 PM] buckyballreaction: yes, i think that's also because recast is expecting nicer zones than we generate; because of all the extra processing steps they do [3/9/2011 8:06:32 PM] Chris Eykamp: well... we got what we got [3/9/2011 8:06:53 PM] Chris Eykamp: and if the aggregated zones don't work as well, we shouldn't use them [3/9/2011 8:07:41 PM] buckyballreaction: agreed [3/9/2011 8:09:14 PM] buckyballreaction: have you seen better behaviour with just Triangle compared to Triangle+ModRecast? [3/9/2011 8:13:18 PM] Chris Eykamp: I think in this case the behavior was better with just triangle [3/9/2011 8:13:28 PM] Chris Eykamp: it took a more direct route [3/9/2011 8:13:49 PM] Chris Eykamp: an easily observable more direct route [3/9/2011 8:17:05 PM] buckyballreaction: i'm gonna clean up the code a bit to allow the config file to actually use Triangle or Triangle+Recast [3/9/2011 8:17:27 PM] buckyballreaction: and more easily follow the separate method routes for the various algos we have going on [3/9/2011 8:17:45 PM] Chris Eykamp: good [3/9/2011 8:31:24 PM] Zoomber: karamazovapy, if you are ok with me asking, what is your profession? [3/9/2011 8:32:48 PM] karamazovapy: I've been a student, but now I'm kind of transitioning [3/9/2011 8:33:04 PM] karamazovapy: writing my thesis, substitute teaching, and working toward opening a live music venue [3/9/2011 8:33:39 PM] karamazovapy: I've had a lot of random jobs over the years though [3/9/2011 8:34:23 PM] karamazovapy: crap...I should've just said WAR! WAR! WAR! [3/9/2011 8:34:59 PM] Zoomber: thats interesting. I'm still in highschool, but I myself too have a far out lean on music. Of course you never know, but I see myself later as a musician too [3/9/2011 8:35:49 PM] karamazovapy: yeah, I was a system admin for a couple years during my undergrad - that's where I picked up a lot of the computer stuff [3/9/2011 8:36:31 PM] karamazovapy: just a student sys admin though, not the "real" head honcho [3/9/2011 8:37:09 PM] karamazovapy: music in college is really different from high school music, though [3/9/2011 8:37:21 PM] Zoomber: how so? [3/9/2011 8:37:59 PM] Zoomber: I have music theory out of the way already. I've been studying at the colburn school of performing arts for the AP test [3/9/2011 8:38:22 PM] karamazovapy: as an undergrad performance major, I had to take four YEARS of music theory...trust me, you don't have it out of the way [3/9/2011 8:38:39 PM] karamazovapy: you might have the first semester done, if you ace the AP test [3/9/2011 8:39:03 PM] Zoomber: did you start music theory in college? or were you already active way before? [3/9/2011 8:39:47 PM] karamazovapy: I went to a high school with six class periods each day - by the time I was a senior, half my day was music [3/9/2011 8:40:48 PM] Zoomber: wow [3/9/2011 8:41:41 PM] karamazovapy: but as a college musician, the individual pressure is much higher, and so is the academic pressure. the biggest difference though, is the amount of time involved. [3/9/2011 8:42:43 PM] buckyballreaction: i have an honest question to ask _k [3/9/2011 8:43:38 PM] buckyballreaction: do you believe that our culture (or city/state/country) or is over- or under-saturated with musicians? [3/9/2011 8:44:00 PM] Zoomber: i have an 8 period school rotation, 4 periods one day, the other the next. 3 out of 8 right now are music, hopefully I can take and finish a year or semester of spanish, so I can also join the orchestra [3/9/2011 8:44:18 PM] karamazovapy: I think the orchestral bubble is going to burst in the near future [3/9/2011 8:44:31 PM] karamazovapy: classically trained musicians are going to have to find new lines of work [3/9/2011 8:44:42 PM] Zoomber: thats a pretty broad question [3/9/2011 8:44:52 PM] buckyballreaction: Would that be because of demand? or 'market' saturation? [3/9/2011 8:45:00 PM] karamazovapy: both [3/9/2011 8:45:07 PM] Zoomber: ^ [3/9/2011 8:45:28 PM] karamazovapy: when you go to an orchestra concert, all you see are music students and retirees [3/9/2011 8:45:46 PM] buckyballreaction: ah yes [3/9/2011 8:46:02 PM] karamazovapy: but already, only a fraction of classically trained musicians actually land music jobs [3/9/2011 8:46:03 PM] Zoomber: when you go to a rock concert, you see....joe [3/9/2011 8:46:38 PM] karamazovapy: in a couple months, I'll have two music degrees and I'm technically going into business [3/9/2011 8:46:49 PM] buckyballreaction: i ask, not to belittle your carreer, but because my mom was actually a professional opera singer [3/9/2011 8:47:00 PM] karamazovapy: vocalists have it tough [3/9/2011 8:47:17 PM] karamazovapy: as a percussionist, there is always work. as an opera singer...not as easy. [3/9/2011 8:47:28 PM] Zoomber: also depends on the insturment you play [3/9/2011 8:47:35 PM] buckyballreaction: yeah... i never knew anyone who went to the opera [3/9/2011 8:47:54 PM] buckyballreaction: she is a music teacher now, though [3/9/2011 8:48:00 PM] buckyballreaction: teaches all sorts of intruments [3/9/2011 8:48:07 PM] Zoomber: guitarists..theres a lot of those [3/9/2011 8:48:09 PM] buckyballreaction: has multiple teaching certs in several status [3/9/2011 8:48:12 PM] buckyballreaction: states [3/9/2011 8:49:10 PM] karamazovapy: well right now, nobody's getting hired for anything [3/9/2011 8:49:18 PM] karamazovapy: I can't imagine how bad it will be in ten or twenty years [3/9/2011 8:49:24 PM] karamazovapy: orchestras are closing doors everywhere [3/9/2011 8:49:40 PM] Zoomber: keyboards and logic... [3/9/2011 8:49:52 PM] Zoomber: or whatever else used [3/9/2011 8:49:56 PM] karamazovapy: the big cities and universities will be fine, but there will probably only be one or two secondary orchestra houses per state instead of half a dozen [3/9/2011 8:51:17 PM] karamazovapy: michigan has detroit symphony, grand rapids symphony, greater lansing symphony, and the brass band of battle creek, not to mention each college and university [3/9/2011 8:51:22 PM | Edited 8:51:31 PM] Zoomber: hollywood bowl will be fine because they put on classical and all other sorts of performances [3/9/2011 8:51:39 PM] karamazovapy: detroit and maybe grand rapids will still be there in 20 years [3/9/2011 8:52:21 PM] Zoomber: id be around graduating colledge in 10 years [3/9/2011 8:52:31 PM] Zoomber: give or take [3/9/2011 8:52:34 PM] buckyballreaction: do you see a demand drop in non-classical music? For instance, to me, almost all pop/rock/alternative/etc. seems to sound all the same nowadays [3/9/2011 8:52:57 PM] buckyballreaction: at least the popular stuff on the radios [3/9/2011 8:53:17 PM] buckyballreaction: the independent musicians still churn good things [3/9/2011 8:53:24 PM] karamazovapy: everything you don't listen to often enough sounds the same [3/9/2011 8:53:28 PM | Edited 8:53:38 PM] Zoomber: that hiphop rap pop is one thing [3/9/2011 8:54:19 PM] karamazovapy: the bigger danger I see looming is the collapse of larger distribution for movies and music in general [3/9/2011 8:54:45 PM] karamazovapy: we already saw music stores across the country close their doors, and now it's happening to video stores [3/9/2011 8:54:52 PM] Zoomber: tower records... [3/9/2011 8:54:53 PM] Zoomber: :( [3/9/2011 8:54:56 PM] buckyballreaction: _k, yes definitely - I was raised on mostly baroque and renaissance music, so i probably have a severe bias [3/9/2011 8:55:31 PM] karamazovapy: before long, hard media will start to phase out and then the production and distrobution models will have to adjust as pirating increases [3/9/2011 8:55:38 PM] Zoomber: is apple in on the madness? i feel like some of htis is their fault too [3/9/2011 8:55:48 PM] karamazovapy: no, apple is mostly irrelevant [3/9/2011 8:55:58 PM] karamazovapy: then have like...1% global market share [3/9/2011 8:56:05 PM] Zoomber: oh, i thought it was higher [3/9/2011 8:56:11 PM] karamazovapy: no, they're tiny world wide [3/9/2011 8:56:24 PM] karamazovapy: rabid american mac geeks make it seem otherwise, though [3/9/2011 8:57:11 PM] karamazovapy: we may still be an economic super power, but we don't have that many people [3/9/2011 8:57:28 PM] Zoomber: even excluding itunes, i think apple is on a hoist to take over computers [3/9/2011 8:57:35 PM] karamazovapy: not gonna happen [3/9/2011 8:57:39 PM] Chris Eykamp: hey, any of you guys know a musician who needs work? we need someone to clean our office! [3/9/2011 8:57:44 PM] karamazovapy: hah [3/9/2011 8:57:51 PM] Chris Eykamp: sorry, couldn't resist [3/9/2011 8:57:55 PM] Zoomber: lol [3/9/2011 8:58:37 PM] karamazovapy: android just took over the top spot in mobile OSes in the states, leaving apple's iphone OS in the number three spot [3/9/2011 8:58:55 PM] karamazovapy: I think they're even worse off globally [3/9/2011 8:59:21 PM] karamazovapy: I think nokia is the worldwide king [3/9/2011 9:00:04 PM] Zoomber: but what is this statistic based on? sales? [3/9/2011 9:00:20 PM] buckyballreaction: sales and volume [3/9/2011 9:00:21 PM] karamazovapy: number of phones [3/9/2011 9:00:41 PM] karamazovapy: I'm pretty sure it's active handheld devices [3/9/2011 9:00:51 PM] buckyballreaction: except sales is kind of muddy with andriod since several companies use it [3/9/2011 9:00:56 PM] Zoomber: yet, does not apple have only one model and only 4 generations of this one model? [3/9/2011 9:01:06 PM] Zoomber: last time I checked, theres alot of nokia phones out there.. [3/9/2011 9:02:13 PM] Zoomber: that sounds pretty good for the iphone, and that it is used mainly with att, and just starting to go with verizion [3/9/2011 9:02:36 PM] karamazovapy: it doesn't really matter...the market penetration is tiny [3/9/2011 9:03:03 PM] Zoomber: right, to get back to the matter [3/9/2011 9:04:00 PM] karamazovapy: yeah...anyway...if you've never watched this movie, I'd grab it: [3/9/2011 9:04:01 PM] karamazovapy: http://www.stealthisfilm.com/Part2/ [3/9/2011 9:04:45 PM] karamazovapy: some of it's hippie nonsense, but I think they capture rather well the idea that digital information is already off the leash [3/9/2011 9:06:42 PM] Zoomber: hmm [3/9/2011 9:07:32 PM] karamazovapy: the movie and music industries were built on the idea that they had something tangible to sell, or at least an experience that couldn't be reproduced without significant loss [3/9/2011 9:07:58 PM] buckyballreaction: yeah the reproduction part has been blown away [3/9/2011 9:08:27 PM] karamazovapy: and movies, as an example, are shot banking on home video for profits [3/9/2011 9:32:53 PM] buckyballreaction: ok, make the zone generation methods a little easier to follow [3/9/2011 9:33:00 PM] buckyballreaction: still might need a bit of commenting [3/9/2011 9:36:37 PM] buckyballreaction: make = i made [3/10/2011 12:12:20 AM] buckyballreaction: @k. i just finished 'steal this file part II' [3/10/2011 12:12:26 AM] buckyballreaction: film [3/10/2011 12:15:19 AM] buckyballreaction: interesting take on how mass music and video isn't a commodity anymore because of the internet [3/10/2011 12:22:12 AM] Chris Eykamp: hi there [3/10/2011 12:22:17 AM] Chris Eykamp: got the zones to work [3/10/2011 12:22:19 AM] Chris Eykamp: finally [3/10/2011 12:22:20 AM] buckyballreaction: hi [3/10/2011 12:22:25 AM] buckyballreaction: with my buffers? [3/10/2011 12:22:34 AM] buckyballreaction: oh [3/10/2011 12:22:39 AM] Chris Eykamp: no -- just solved my problem. Yours is next up [3/10/2011 12:22:44 AM] buckyballreaction: hooray! [3/10/2011 12:22:59 AM] Chris Eykamp: unforrtnately, I left my power supply at the office, so I can't do any more on this tonight [3/10/2011 12:23:22 AM] Chris Eykamp: I'm using my wife's machine, which has approximately 0 dev tools on it [3/10/2011 12:23:31 AM] buckyballreaction: ok [3/10/2011 12:23:33 AM] buckyballreaction: can you commit? [3/10/2011 12:23:39 AM] Chris Eykamp: no [3/10/2011 12:23:40 AM] Chris Eykamp: sadly [3/10/2011 12:23:45 AM] buckyballreaction: rats [3/10/2011 12:23:51 AM] Chris Eykamp: but no worries [3/10/2011 12:23:57 AM] Chris Eykamp: it's not critical for anything [3/10/2011 12:24:33 AM] buckyballreaction: okey doke [3/10/2011 12:24:47 AM] buckyballreaction: until tomorrow then! [3/10/2011 12:27:17 AM] karamazovapy: yeah, some of steal this film is just justification for illegal downloading, but the bit about corralling rabbits and copyright law has some logic to it [3/10/2011 12:28:23 AM] buckyballreaction: i think i tend to agree that that business model is somewhat doomed [3/10/2011 12:28:38 AM] buckyballreaction: and the music/video industry will undergo a dramatic shift [3/10/2011 12:29:16 AM] karamazovapy: in some ways, it's already started [3/10/2011 12:31:25 AM] Chris Eykamp: I did check my test with the recast zones v. triangle zones on ctf1 [3/10/2011 12:31:31 AM] Chris Eykamp: they pick different paths [3/10/2011 12:31:42 AM] Chris Eykamp: recast paths were inferior [3/10/2011 12:31:55 AM] buckyballreaction: drat [3/10/2011 12:32:19 AM] buckyballreaction: so either we drop recast - or use detour [3/10/2011 12:39:31 AM] buckyballreaction: is your new adjancey method faster now? [3/10/2011 12:39:39 AM] buckyballreaction: (and what was the problem?) [3/10/2011 12:49:11 AM] Samuel Williams: [Wednesday, March 09, 2011 7:39 PM] karamazovapy: <<< http://www.youtube.com/watch?v=S2Mq61YF4vMBetween 0:25 - 0:50 the music sould like the volume is repeadedly going silent and loud about twice a second (unstable volume), that the one part about the music that does bothers me. http://96.2.123.136/bitfighter/unstable_volume.gif [3/10/2011 12:49:48 AM] Zoomber: afabba [3/10/2011 1:00:38 AM] karamazovapy: yeah, I think that's just the volume filter on the sampler [3/10/2011 1:10:41 AM] Zoomber: wait [3/10/2011 1:24:04 AM] karamazovapy: wait what? [3/10/2011 1:24:24 AM] karamazovapy: I have a new sidebyside uploading right now [3/10/2011 1:35:21 AM] karamazovapy: http://www.youtube.com/watch?v=LNsVPA0429U [3/10/2011 1:39:56 AM] karamazovapy: hey! our demographics have gone up to 8% female! [3/10/2011 1:40:05 AM] karamazovapy: that's up 2%! [3/10/2011 1:41:34 AM] Samuel Williams: when comparing side by side, mine appears to have smoother frame rate.. [3/10/2011 1:42:14 AM] karamazovapy: could be. also depends a little on what you're watching...the player in the center always looks totally smooth compared to everything else [3/10/2011 1:42:42 AM] karamazovapy: oh - and we now have subscribers in israel, singapore, and france! [3/10/2011 1:50:25 AM] Chris Eykamp: [Thursday, March 10, 2011 12:39 AM] buckyballreaction: <<< is your new adjancey method faster now? (and what was the problem?)doesn't seem so, but I need to go back and check on stuff [3/10/2011 1:51:13 AM] Chris Eykamp: the problem was looking up the vertex coordinates -- I got confused about what indexed what [3/10/2011 1:52:58 AM] karamazovapy: totally missed this write up - http://tuxjuegos.tuxfamily.org/2011/02/10/bitfighter/ [3/10/2011 1:53:39 AM] karamazovapy: http://translate.google.com/translate?u=http%3A%2F%2Ftuxjuegos.tuxfamily.org%2F2011%2F02%2F10%2Fbitfighter%2F&sl=es&tl=en&hl=&ie=UTF-8 [3/10/2011 1:54:39 AM] karamazovapy: La capa - the cloak, not the layer [3/10/2011 1:54:41 AM] Samuel Williams: that picture coming from http://img.youtube.com/vi/JsK73Ek88yA/0.jpg [3/10/2011 1:54:59 AM] karamazovapy: yeah, youtube thumbnails suck sometimes [3/10/2011 3:30:58 AM] Chris Eykamp: sam -- do bots differentiate between nexus flags and regular flags? [3/10/2011 3:31:12 AM] Chris Eykamp: or are they both flag objects? [3/10/2011 3:33:22 AM] Samuel Williams: HuntersFlagItem uses parts of FlagItem. FlagItem have LUA defined there. [3/10/2011 3:33:47 AM] Samuel Williams: they are both treated the same by bots. [3/10/2011 3:34:03 AM] Chris Eykamp: both are flags? [3/10/2011 3:34:10 AM] Chris Eykamp: ok, I'm trying to get the docs fixed [3/10/2011 3:34:21 AM] Chris Eykamp: we have two versions that need to be reconciled [3/10/2011 3:34:26 AM] Samuel Williams: both is flags. [3/10/2011 3:34:32 AM] Chris Eykamp: good, thanks [3/10/2011 3:57:59 AM] Chris Eykamp: does bot:dropItem() take any args? [3/10/2011 3:59:33 AM | Edited 3:59:40 AM] Samuel Williams: takes no arguments, returns nothing. it drops everything that is being held, like players can drop items [3/10/2011 3:59:42 AM] Chris Eykamp: good [3/10/2011 4:01:32 AM] Samuel Williams: dropItem does not exist on old 015 version, added after 015 release. [3/10/2011 4:07:39 AM] Chris Eykamp: what unit of time does nexusTimeLeft() return? ms or s? [3/10/2011 4:07:45 AM] Chris Eykamp: (sorry, have no code on this machine) [3/10/2011 4:09:12 AM] Samuel Williams: S32 getNexusTimeLeft() {return mNexusTimer.getCurrent(); } by the looks of it, returns millisecs. [3/10/2011 4:09:42 AM] Chris Eykamp: oh, good. thanks; I had the function name wrong in my notes! [3/10/2011 4:12:53 AM | Edited 4:13:06 AM] Samuel Williams: -LuaGameInfo.cpp S32 LuaGameInfo::getNexusTimeLeft(lua_State *L) { HuntersGameType *theGameType = dynamic_cast(gServerGame->getGameType()); return theGameType ? returnInt(L, theGameType->getNexusTimeLeft()) : returnNil(L);; } Appears to return millisecs [3/10/2011 4:13:45 AM] Chris Eykamp: so does this section look right? [3/10/2011 4:13:46 AM] Chris Eykamp: http://bitfighter.org/wiki/index.php?title=Programming_robots#Nexus_Related [3/10/2011 4:14:36 AM] Samuel Williams: looks ok. [3/10/2011 4:14:41 AM] Chris Eykamp: good, thanks [3/10/2011 4:14:56 AM] Chris Eykamp: unfortunately, my notes from here on are harder to read :( [3/10/2011 4:20:49 AM] Samuel Williams: there is some more added LUA commands. FlagItem:getCaptureZone FlagItem:getShip [3/10/2011 4:21:04 AM] Samuel Williams: my S_BOT already uses getCaptureZone [3/10/2011 4:22:11 AM | Edited 4:22:48 AM] Samuel Williams: isInCaptureZone is not enough, as wanting to see which team zone the flag is in. it:getCaptureZone():getTeamIndx() ~= bot:getTeamIndx() [3/10/2011 4:26:20 AM] Samuel Williams: getCaptureZone and getShip is part of item, also can be used for SoccerBallItem [3/10/2011 4:26:28 AM] Chris Eykamp: ok; I'm signing off for the night; I've added a little section to the top of the page: http://bitfighter.org/wiki/index.php?title=Programming_robots that has a collection of stuff still to be documented. Any detail you can add, any examples, syntax, etc., for the moment, you can just stick there and I'll try to get it all integrated in the coming days [3/10/2011 4:27:23 AM] Chris Eykamp: I think that when that stuff gets documented, we'll be caught up. I am very nervous that our docs will get out of sync with our code, then everyone will get confused! [3/10/2011 4:28:07 AM] Samuel Williams: outdated docs = missing stuff in docs.. [3/10/2011 4:28:42 AM] Chris Eykamp: yes, absolutely; wrong docs are probably worse than no docs. thanks for your help! [3/10/2011 4:28:45 AM] Chris Eykamp: night! [3/10/2011 10:32:26 AM] karamazovapy: S_BOT is already pretty good at nexus...not incredible, but pretty good [3/10/2011 10:33:19 AM] karamazovapy: I think it's because it heads to the nexus before you usually do, and by then you often use most of your energy [3/10/2011 10:42:03 AM] buckyballreaction: mornin' [3/10/2011 10:56:45 AM] buckyballreaction: let me rebase a clone for the bot-zone buffers... [3/10/2011 11:36:54 AM] buckyballreaction: latest revision here has my buffer changes: https://code.google.com/r/buckyballreaction-bf8/source/list [3/10/2011 12:07:53 PM] buckyballreaction: for any of you math geeks out there: http://tauday.com/ [3/10/2011 12:09:55 PM] buckyballreaction: The Tau Manifesto is dedicated to the proposition that the proper response to “p is wrong” is “No, really.” [3/10/2011 1:57:37 PM] Chris Eykamp: here's an interesting game idea... what about using engineer to build a "robot factory" that comes with a robot player [3/10/2011 1:57:49 PM] Chris Eykamp: destroy the facotry, and no more robots can spawn there [3/10/2011 1:58:04 PM] Chris Eykamp: maybe the robot could take commands like defend, attack, etc. [3/10/2011 2:04:04 PM] buckyballreaction: neat idea [3/10/2011 2:04:34 PM] buckyballreaction: i would say a robot factory would require multiples of the energy a ship has, though [3/10/2011 2:05:34 PM] karamazovapy: sounds a little high concept [3/10/2011 2:06:00 PM] Chris Eykamp: maybe you could build 1/4 of the factory with a resource item [3/10/2011 2:07:12 PM] karamazovapy: I was thinking about how I was playing classic arcade games a lot when I first found zap!, especially space invaders, tetris, and asteroids [3/10/2011 2:07:28 PM] karamazovapy: let me to wonder about a random teleportation module [3/10/2011 2:07:56 PM] Chris Eykamp: hyperspacer [3/10/2011 2:08:09 PM] buckyballreaction: wormholes with multiple out bound locations? [3/10/2011 2:08:19 PM] karamazovapy: nah, hyperspacer [3/10/2011 2:08:30 PM] buckyballreaction: i have no idea what that is [3/10/2011 2:08:37 PM] karamazovapy: you activate the module, it requires full energy, and you reappear at a random location inside the bounds of the map [3/10/2011 2:08:38 PM] buckyballreaction: is that the thing form asteroids? [3/10/2011 2:08:50 PM] buckyballreaction: AH YES [3/10/2011 2:08:53 PM] buckyballreaction: oops [3/10/2011 2:08:54 PM] karamazovapy: yeah, it was your emergency option in the original asteroids [3/10/2011 2:09:17 PM] Chris Eykamp: I don't think it would be usefull [3/10/2011 2:09:31 PM] Chris Eykamp: you'd only want it as a last resort, and by then your energy is gone [3/10/2011 2:09:40 PM] Chris Eykamp: and it would only be marginally better than dying [3/10/2011 2:09:50 PM] karamazovapy: could be useful if you grabbed the enemy flag first [3/10/2011 2:09:55 PM] buckyballreaction: but it would add crazy to a level [3/10/2011 2:10:15 PM] Chris Eykamp: yes, grab flag, hyperspace, nearly automatic score [3/10/2011 2:10:24 PM] karamazovapy: well who knows where you'd end up [3/10/2011 2:10:37 PM] buckyballreaction: no hyperspace with flag [3/10/2011 2:10:38 PM] karamazovapy: or, it could be a way to travel distances quickly without a teleporter or speedzone [3/10/2011 2:10:53 PM] karamazovapy: it wasn't something I put a lot of thought into, just a passing idea [3/10/2011 2:11:03 PM] Chris Eykamp: I've had that idea as well [3/10/2011 2:11:21 PM] buckyballreaction: or hyperspace leaves flag behind [3/10/2011 2:11:26 PM] buckyballreaction: ditch and run [3/10/2011 2:11:46 PM] karamazovapy: in general, I'm not sure how I feel about more complex module/building ideas like a factory or mobile teleport [3/10/2011 2:12:22 PM] karamazovapy: obviously not a big fan of engineering destructable barriers, since they would compound the current engineer problems tenfold [3/10/2011 2:12:53 PM] Chris Eykamp: [Thursday, March 10, 2011 2:12 PM] karamazovapy: <<< engineering destructable barriers,not going to happen [3/10/2011 2:13:12 PM] karamazovapy: didn't think it was a realistic possibility, but it's come up more than once [3/10/2011 2:13:21 PM] buckyballreaction: seems like it would destroy some of the feel of the game [3/10/2011 2:13:37 PM] Chris Eykamp: maaaaaybe in a special dungeoin mode [3/10/2011 2:13:38 PM] Chris Eykamp: but never in the real game [3/10/2011 2:14:07 PM] karamazovapy: well as quickly as people die, and as hectic as things get, I'm just not clear on how engineer-type things function in game [3/10/2011 2:14:39 PM] karamazovapy: obviously we're not playing starcraft [3/10/2011 2:16:27 PM] karamazovapy: repairables have always had a certain element of building to them, but I'm not sure how it all fits together [3/10/2011 2:17:05 PM] karamazovapy: does anyone ever use spybugs in game, not just as preset editor items? [3/10/2011 2:17:25 PM] buckyballreaction: i did once [3/10/2011 2:17:35 PM] buckyballreaction: but they got destroyed too easily [3/10/2011 2:18:06 PM] karamazovapy: what if spybugs were indestructable? [3/10/2011 2:18:14 PM] Chris Eykamp: or harder to see [3/10/2011 2:18:27 PM] buckyballreaction: they were useful, too because it was a really big map with lots of people [3/10/2011 2:18:35 PM] Chris Eykamp: at some point in the near future, I'm going to redo the way mines and spybugs work to make them more effective [3/10/2011 2:19:04 PM] karamazovapy: I think mines are mostly okay [3/10/2011 2:19:11 PM] buckyballreaction: i like the idea of spy bugs being invisible to the other team completely - they can still be destroyed, but not as easily [3/10/2011 2:19:30 PM] karamazovapy: well spybugs are interesting, but they're not worth the effort [3/10/2011 2:19:34 PM] karamazovapy: currently [3/10/2011 2:19:42 PM] buckyballreaction: and mines should be invisible until like 1/3 or 1/4 a ships view radius [3/10/2011 2:19:45 PM] Chris Eykamp: you need bots flying around planting them [3/10/2011 2:20:43 PM] karamazovapy: if you want mines to be more effective, make it so the other team can't hear when you drop one [3/10/2011 2:20:58 PM] buckyballreaction: haha [3/10/2011 2:21:06 PM] buckyballreaction: i almost never play with sound - i forgot about that [3/10/2011 2:21:08 PM] karamazovapy: that's the giveaway more often than seeing them too early [3/10/2011 2:21:16 PM] Chris Eykamp: my idea for mines is a time/proximity function. the longer you are near a mine, the more likely you are to see it [3/10/2011 2:21:48 PM] karamazovapy: I rarely avoid a mine because I see it a screen length away [3/10/2011 2:22:02 PM] karamazovapy: I almost never notice them unless I'm close or I hear them getting laid [3/10/2011 2:22:12 PM] Chris Eykamp: sensor would enhance your detection abiliities [3/10/2011 2:22:25 PM] Chris Eykamp: and there would be a small random element [3/10/2011 2:22:26 PM] karamazovapy: yeah, but sensor isn't a valid choice just for mine detection [3/10/2011 2:22:55 PM] Chris Eykamp: no, but if we keep giving it more abiliiteis, sooner or later, someone's going to use it! [3/10/2011 2:23:14 PM] karamazovapy: I'm not sure that's the best approach [3/10/2011 2:23:26 PM] karamazovapy: I think the abilities it has have to be higher value [3/10/2011 2:23:33 PM] Chris Eykamp: yes [3/10/2011 2:23:34 PM] karamazovapy: like make it passive [3/10/2011 2:23:44 PM] Chris Eykamp: it neededn't be either or [3/10/2011 2:23:49 PM] Chris Eykamp: passive is interesting [3/10/2011 2:23:54 PM] Chris Eykamp: it already has some passive abilities [3/10/2011 2:24:03 PM] karamazovapy: the zooming in and out is a little disorienting [3/10/2011 2:24:18 PM] Chris Eykamp: perhaps if anyone on a team had it, there could be ebetter team-wide data sharing [3/10/2011 2:24:24 PM] karamazovapy: you can't strobe it like you can with shields [3/10/2011 2:24:30 PM] Chris Eykamp: true [3/10/2011 2:24:44 PM] karamazovapy: and a quick look with the wider view doesn't do you any good [3/10/2011 2:24:48 PM] Chris Eykamp: true [3/10/2011 2:24:50 PM] karamazovapy: you have to fly with it activated [3/10/2011 2:24:53 PM] Chris Eykamp: passive is a good idea [3/10/2011 2:25:27 PM] Chris Eykamp: let's try that, and see if it helps [3/10/2011 2:25:28 PM] karamazovapy: yeah, I might actually use it with shields on nexus maps if it was passive [3/10/2011 2:25:59 PM] karamazovapy: or when defending the flag in a CTF or HTF [3/10/2011 2:26:37 PM] karamazovapy: what if wide view is passive with sensor, but cloak and mine detection require activation? [3/10/2011 2:26:44 PM] Chris Eykamp: https://code.google.com/p/bitfighter/issues/detail?id=83 [3/10/2011 2:27:03 PM] Chris Eykamp: sure [3/10/2011 2:27:08 PM] Chris Eykamp: add it to the case [3/10/2011 2:27:45 PM] Chris Eykamp: that sounds like a good balance [3/10/2011 2:28:54 PM] karamazovapy: there would be a cloaker uprising if sensor was any more able to detect them [3/10/2011 2:30:12 PM] buckyballreaction: i think cloak should be cloak [3/10/2011 2:30:40 PM] karamazovapy: can you elaborate on that? [3/10/2011 2:30:59 PM] buckyballreaction: undetectable [3/10/2011 2:31:26 PM] Chris Eykamp: currently, sensor can see it [3/10/2011 2:31:30 PM] buckyballreaction: really? [3/10/2011 2:31:34 PM] Chris Eykamp: yes [3/10/2011 2:31:35 PM] karamazovapy: when sensors are activated [3/10/2011 2:31:36 PM] buckyballreaction: i should play this game more... [3/10/2011 2:31:42 PM] Chris Eykamp: no one uses sensor so it doesn't really matter [3/10/2011 2:31:49 PM] karamazovapy: I do when people are abusing cloak! [3/10/2011 2:32:39 PM] karamazovapy: cloak is a pain because the cloaker spawns, equips triple, and kills you without actually doing any work [3/10/2011 2:32:56 PM] buckyballreaction: ok, i change my mind: activate sensor (not passive) will detect cloak [3/10/2011 2:33:10 PM] Chris Eykamp: agreed [3/10/2011 2:33:34 PM] Chris Eykamp: passive for wider view and seeing shots on cmdrs map (as is currently the case), active for mine and cloak detection [3/10/2011 2:33:59 PM] karamazovapy: what if cloakers could stay invisible indefinitely if they weren't moving? [3/10/2011 2:34:34 PM] Chris Eykamp: what if cloak could let you "steal" the oponent's "signal" and see what they can see on your cmdrs view? [3/10/2011 2:34:59 PM] Chris Eykamp: maybe that would be too much [3/10/2011 2:35:01 PM] karamazovapy: that seems more like sensor than cloak [3/10/2011 2:35:09 PM] Chris Eykamp: sorry, sensor, yes [3/10/2011 2:35:30 PM] Chris Eykamp: or maybe you could "hack" into a particular ship, then be able to see it until it dies [3/10/2011 2:35:49 PM] Chris Eykamp: wherein hacking would constitiute being in proximity for a certain period of time [3/10/2011 2:36:58 PM] karamazovapy: I might have to see it to really understand how it would function [3/10/2011 2:37:49 PM] Chris Eykamp: say you are within a certain radius of an enemy for 10 seconds, you would then be able to see that ship on your cmdrs view whereever it was until it died [3/10/2011 2:38:02 PM] Chris Eykamp: essentially be able to track it [3/10/2011 2:38:14 PM] Chris Eykamp: and perhaps broadcast that signal to your teammates [3/10/2011 2:38:28 PM] karamazovapy: I understand how you're explaining it, I'm not sure how that would actually work out in game [3/10/2011 2:38:31 PM] Chris Eykamp: ah, I see [3/10/2011 2:38:43 PM] Chris Eykamp: it would probably be like a roving spybug [3/10/2011 2:38:58 PM] karamazovapy: I just don't know if that would have a massive impact or almost none [3/10/2011 2:39:05 PM] karamazovapy: no clue [3/10/2011 2:39:12 PM] Chris Eykamp: probably closer to the none side of things [3/10/2011 2:39:22 PM] Chris Eykamp: but then I'm not a big user of sensor [3/10/2011 2:39:47 PM] karamazovapy: it'd have a bigger impact if you were in a flag standoff [3/10/2011 2:40:23 PM] Chris Eykamp: yes, or racing for the last capture zone in a zc [3/10/2011 2:41:15 PM] karamazovapy: I'd still like to see cloak only incur an energy cost while moving [3/10/2011 2:41:35 PM] karamazovapy: the more I'm thinking about that, the more I like it [3/10/2011 2:41:36 PM] Chris Eykamp: so you could sit hidden forever? [3/10/2011 2:41:44 PM] karamazovapy: yeah, if all you're doing is sitting [3/10/2011 2:41:53 PM] karamazovapy: without shooting or moving [3/10/2011 2:41:55 PM] Chris Eykamp: so you set up camp next to a flag spawn and wait [3/10/2011 2:42:03 PM] karamazovapy: you could [3/10/2011 2:42:06 PM] Chris Eykamp: not sure I like that [3/10/2011 2:42:09 PM] karamazovapy: you'd also be useless to your team at that time [3/10/2011 2:42:33 PM] Chris Eykamp: yes; we already have tactics to race for the flag spawn when the other team is about to score in zc [3/10/2011 2:42:41 PM] Chris Eykamp: or when your team is [3/10/2011 2:42:47 PM] Chris Eykamp: this would just make that easier [3/10/2011 2:42:48 PM] buckyballreaction: on nexus maps it'd be hard: you could grab tons of flags and just sit somewhere [3/10/2011 2:42:55 PM] Chris Eykamp: exactly [3/10/2011 2:43:08 PM] karamazovapy: you could still get hit by phaser or a ship [3/10/2011 2:43:16 PM] karamazovapy: or detected with sensor [3/10/2011 2:43:56 PM] karamazovapy: maybe you'd make cloaking while moving 1% opacity or something, instead of being completely invisible [3/10/2011 2:45:24 PM] karamazovapy: maybe make energy regeneration freeze while they're invisible and immobile [3/10/2011 2:45:40 PM] karamazovapy: that way it's not technically no-cost, it's neutral-cost [3/10/2011 2:46:08 PM] karamazovapy: so if you fly somewhere cloaked and sit invisible for a while, you're still stuck with half a tank of energy [3/10/2011 2:46:26 PM] karamazovapy: or you have to make yourself visible at some point to get the energy back [3/10/2011 2:47:27 PM] Chris Eykamp: so in nexus game, I get my yardsale cleanup, fly off somewhere, cloak, and wait for the nexus to open [3/10/2011 2:47:54 PM] Chris Eykamp: maybe using cloak should incur a 1% chance of just exploding [3/10/2011 2:47:55 PM] karamazovapy: or - alternate solution to the whole idea - cloaking always costs energy, but if you run out energy while cloaking and immobile, you can stay cloaked with zero energy until you move [3/10/2011 2:48:18 PM] buckyballreaction: hahaha [3/10/2011 2:48:38 PM] buckyballreaction: 1% change per 10 seconds... [3/10/2011 2:48:42 PM] buckyballreaction: chance [3/10/2011 2:49:02 PM] Chris Eykamp: I think the cloak works pretty well now. You can stay cloaked for a good while, but not forever [3/10/2011 2:49:43 PM] karamazovapy: I think my cloak complaint is based on the fact that I don't really care for the way it's used now and I'd like to see it used another way [3/10/2011 2:50:07 PM] buckyballreaction: i like the idea of being able to better counteract it [3/10/2011 2:50:25 PM] karamazovapy: but it's already only good for one thing [3/10/2011 2:50:30 PM] buckyballreaction: more paper-rock-scissors [3/10/2011 2:52:06 PM] karamazovapy: maybe people who like cloak should be asked what they would like and what they'd be willing to sacrifice to get it [3/10/2011 2:53:06 PM] karamazovapy: nobody uses sensor, so it's anyone's guess [3/10/2011 2:53:13 PM] karamazovapy: but cloak has a couple rabid fans [3/10/2011 2:53:50 PM] karamazovapy: for the record, I like unknown's triple-into-quintuple patch [3/10/2011 2:54:11 PM] Chris Eykamp: I don't [3/10/2011 2:54:18 PM] karamazovapy: too much bang for your buck? [3/10/2011 2:54:25 PM] Chris Eykamp: yes [3/10/2011 2:54:31 PM] karamazovapy: valid complaint [3/10/2011 2:54:45 PM] Chris Eykamp: but, I still see room for more weapons [3/10/2011 2:54:58 PM] karamazovapy: I can't imagine many [3/10/2011 2:55:04 PM] Chris Eykamp: heat seekers, of course, and a short range omni-directional weapon [3/10/2011 2:55:20 PM] Chris Eykamp: I'm thinking somethign that works like repair in reverse [3/10/2011 2:55:28 PM] Chris Eykamp: disrepair [3/10/2011 2:55:39 PM] Chris Eykamp: you have to be close, but you can be aiming any which way [3/10/2011 2:55:57 PM] karamazovapy: I'm still open to the long-discussed EMP [3/10/2011 2:56:44 PM] karamazovapy: haha...or what about a self-destruct weapon that would kill you and anyone right next to you? [3/10/2011 2:57:18 PM] karamazovapy: that would sure make a mess of things [3/10/2011 2:57:22 PM] Chris Eykamp: I was just thinking of that -- a super burst that would wipe out everyone within a given radius [3/10/2011 2:57:32 PM] buckyballreaction: !repare = ruin [3/10/2011 2:57:54 PM] buckyballreaction: a detpack? [3/10/2011 2:58:50 PM] karamazovapy: ooh...what if there was an EMP that would temporarily knock out/freeze force fields and turrets? [3/10/2011 2:59:08 PM] Chris Eykamp: that's a thought [3/10/2011 2:59:09 PM] karamazovapy: that would put a pin in engineer madness [3/10/2011 2:59:37 PM] karamazovapy: I'd equip that with phaser and burst [3/10/2011 4:53:16 PM] buckyballreaction: openSUSE 11.4 is released! [3/10/2011 5:52:58 PM] Chris Eykamp: what do y'all think is better? [3/10/2011 5:53:22 PM] Chris Eykamp: Sam added a much needed way to specify that no bots are allowed on a level [3/10/2011 5:53:52 PM] Chris Eykamp: by adding a new line to the level file: AllowAddBot [3/10/2011 5:54:23 PM] Chris Eykamp: I'm wondering if it would be better to add that to the existing specials line like "Specials: NoBots" [3/10/2011 5:54:49 PM] Chris Eykamp: The specials line is where we specify whether engineer is enabled on a level [3/10/2011 5:55:02 PM] Chris Eykamp: minor detail, indeed, just looking for thoughts [3/10/2011 5:55:38 PM] buckyballreaction: I think it might be good as Specials [3/10/2011 5:55:50 PM] buckyballreaction: if Specials is interpreted as 'Special Level Flags' [3/10/2011 5:56:12 PM] Chris Eykamp: that's how I interpret it... the idea being to limit growth of lines in level file [3/10/2011 5:56:42 PM] Chris Eykamp: I like that interpretation [3/10/2011 5:57:10 PM] buckyballreaction: i agree on the limit level line growth [3/10/2011 8:58:46 PM] karamazovapy: I think it's interesting that when more people play bitfighter, more people play bitfighter. when less people play, fewer people play. [3/10/2011 8:59:13 PM] karamazovapy: there's a mathematical theorem hidden in there somewhere [3/10/2011 8:59:32 PM] karamazovapy: maybe just a critical mass constant [3/10/2011 9:03:04 PM] karamazovapy: also, I think the explosions sound pretty heroic to a soundtrack [3/10/2011 9:23:52 PM] Zoomber: como estan las personas de bitfighter? [3/10/2011 9:24:58 PM] Zoomber: @k b/c when theres fewer people, who will they play with? :) [3/10/2011 9:45:57 PM] karamazovapy: vicious circle [3/10/2011 11:38:46 PM] buckyballreaction: good evening [3/10/2011 11:46:57 PM] buckyballreaction: @sam, thanks for fixing that assert - that change got lost somewhere between my work and home computers [3/10/2011 11:47:49 PM] buckyballreaction: also, what to you plan on using the picture loader for? [3/10/2011 11:47:55 PM] buckyballreaction: replacing in-game graphics? [3/10/2011 11:49:36 PM | Edited 11:49:46 PM] Samuel Williams: maybe for better graphics? [3/10/2011 11:50:16 PM] buckyballreaction: is everything is drawn directly with vectors and opengl now? [3/10/2011 11:51:30 PM] Samuel Williams: everything is drawn without pictures and textues (except oglconsole.c) [3/10/2011 11:52:01 PM] Samuel Williams: everything is drawn using lines, points, and solid fill polygons. [3/10/2011 11:55:09 PM] Samuel Williams: i might be thinking of making explosions using picture/textures, instead of just drawing hundreds of dots. [3/10/2011 11:56:39 PM] buckyballreaction: interesting idea [3/11/2011 12:13:19 AM] karamazovapy: sam, you always have interesting new ideas, and I think it's pretty awesome that you can just think something up and make it happen in the game. that's pretty cool. [3/11/2011 12:48:47 AM] Chris Eykamp: yes, very cool. he was the one that proved we can generate bot zones [3/11/2011 12:48:58 AM] Chris Eykamp: and that is a huge breakthrough [3/11/2011 12:49:20 AM] karamazovapy: the ideas aren't always up my alley, but I admire the ability! [3/11/2011 12:49:21 AM] Zoomber: *snare* SQUID ATTACK [3/11/2011 12:54:19 AM] buckyballreaction: @watusimoto - will you be checking in your zone adjacency changes? [3/11/2011 12:56:58 AM] Chris Eykamp: yes, I suppose I should be. I'm not able to do much tonight -- I have a very important meeting at 8AM tomorrow, so I'm just preparing and coasting into an early bedtime [3/11/2011 12:57:16 AM] buckyballreaction: cool [3/11/2011 12:57:30 AM] Chris Eykamp: if things work out with the meeting it will be extremely cool [3/11/2011 12:57:45 AM] buckyballreaction: new job? [3/11/2011 12:57:52 AM] Chris Eykamp: possibly [3/11/2011 12:58:17 AM] buckyballreaction: good luck [3/11/2011 12:58:26 AM] Chris Eykamp: thanks! [3/11/2011 12:58:48 AM] Chris Eykamp: I'll do fine if I an accomodate my brain to being awake at 8AM [3/11/2011 12:59:06 AM] Chris Eykamp: I've been trying to get into the swing with earlier bedtimes all this week [3/11/2011 12:59:18 AM] buckyballreaction: hey.. me too! [3/11/2011 1:06:44 AM] buckyballreaction: i think i am ready for the bot zone stuff to conclude soon [3/11/2011 1:06:59 AM] buckyballreaction: i am actually eager to move to SDL... [3/11/2011 1:07:24 AM] Chris Eykamp: ha [3/11/2011 1:07:31 AM] Chris Eykamp: we need to get 015a out [3/11/2011 1:08:10 AM] buckyballreaction: so i found your commet here as evidence it might need to be 016?: http://code.google.com/p/bitfighter/issues/detail?id=59 [3/11/2011 1:08:13 AM] buckyballreaction: comment [3/11/2011 1:10:19 AM] Chris Eykamp: s-> not important, only c->s [3/11/2011 1:10:25 AM] Chris Eykamp: s->m [3/11/2011 1:10:31 AM] buckyballreaction: ah ok [3/11/2011 1:10:35 AM] Chris Eykamp: only when different versions interact [3/11/2011 1:17:19 AM] Flynn: **so sorry** I haven't been here in a while.. :( [3/11/2011 1:17:28 AM] buckyballreaction: hi flynn [3/11/2011 1:17:32 AM] Flynn: Hey bucky :) [3/11/2011 1:17:40 AM] Flynn: Not that I've bene partitularly helpful so far lol [3/11/2011 1:18:50 AM] Flynn: I'm getting a few compier errors. I just did 'hg pull https://bitfighter.googlecode.com/hg/bitfighter -u' and I have 3 Referenced from: errors [3/11/2011 1:19:04 AM] buckyballreaction: ohhh.... you are doing mac [3/11/2011 1:19:07 AM] Flynn: Only problem is, it's not giving me any errors related to includes [3/11/2011 1:19:17 AM] buckyballreaction: i haven't clean up the mac project yet [3/11/2011 1:19:26 AM] Flynn: Ahh [3/11/2011 1:19:42 AM] buckyballreaction: sorry - i have been focused on bot zone generation (and just regular life) [3/11/2011 1:19:54 AM | Edited 1:20:02 AM] Flynn: No, don't be. I'm the one who hasn't been here in weeks xD [3/11/2011 1:20:50 AM] Flynn: I'll go ask stack overflow for the magic answer to all my issues. :) [3/11/2011 1:22:07 AM] buckyballreaction: i can tell you some things right now: 1. you are missing class files found in the ../Triangle and ../recast directories 2. you will need to ../Triangle and ../Recast to the include folders option for Debug and Release compiling [3/11/2011 1:22:23 AM] Chris Eykamp: it was an ugly merge [3/11/2011 1:22:36 AM] buckyballreaction: rebase! [3/11/2011 1:22:45 AM] Flynn: Yikes [3/11/2011 1:22:49 AM] Chris Eykamp: my apologizies in advance if I butchured your stuff [3/11/2011 1:22:56 AM] Flynn: Hah, no, no [3/11/2011 1:22:58 AM] Chris Eykamp: how is rebase going to help? [3/11/2011 1:23:04 AM] buckyballreaction: it won't :) [3/11/2011 1:23:10 AM] buckyballreaction: but it keeps a nice straigh tline [3/11/2011 1:23:10 AM] Chris Eykamp: well ok, then [3/11/2011 1:23:19 AM] Chris Eykamp: don't much care about a straight line [3/11/2011 1:23:41 AM] buckyballreaction: i will check your merge once you push [3/11/2011 1:23:52 AM] buckyballreaction: with relation to the bot zone stuff, at least [3/11/2011 1:24:16 AM] Flynn: little confused on what you said bucky. Everything on 2. confuses hte heck out of me xD [3/11/2011 1:24:31 AM] buckyballreaction: when you go into the build options [3/11/2011 1:24:33 AM] Flynn: I will go try to add those directories to the project, though [3/11/2011 1:24:36 AM] Flynn: Yeah? [3/11/2011 1:24:55 AM] buckyballreaction: there is a place where you add 'include directories' [3/11/2011 1:25:00 AM] Chris Eykamp: checked in [3/11/2011 1:25:04 AM] buckyballreaction: or maybe just 'Includes' [3/11/2011 1:25:11 AM] Chris Eykamp: asking me? [3/11/2011 1:25:17 AM] buckyballreaction: me [3/11/2011 1:25:24 AM] buckyballreaction: there should already be ../openal and ../glut in there [3/11/2011 1:25:30 AM] Chris Eykamp: got it [3/11/2011 1:25:30 AM] buckyballreaction: you'll have to add the two new ones [3/11/2011 1:25:36 AM] Flynn: kk [3/11/2011 1:26:04 AM] buckyballreaction: and make sure both 'release' and 'debug' has them [3/11/2011 1:26:56 AM] Flynn: Got it, under header search paths, "../openal ../glut ../tnl " [3/11/2011 1:27:02 AM] buckyballreaction: yes! [3/11/2011 1:27:03 AM] buckyballreaction: that's it [3/11/2011 1:27:08 AM] Flynn: Thankyou for the help :) [3/11/2011 1:27:12 AM] buckyballreaction: yw [3/11/2011 1:28:27 AM] Chris Eykamp: I don't understand why this isn't faster [3/11/2011 1:28:34 AM] Chris Eykamp: the new method should blow the old one away [3/11/2011 1:28:38 AM] buckyballreaction: is it slower? [3/11/2011 1:29:01 AM] Chris Eykamp: probably not slower, but just not as fast as I would expect [3/11/2011 1:29:12 AM] buckyballreaction: mayeb the slowdown is elsewhere? [3/11/2011 1:29:49 AM] Chris Eykamp: maybe [3/11/2011 1:30:37 AM] buckyballreaction: looks like a good merge from the logs [3/11/2011 1:30:40 AM] buckyballreaction: compiling... [3/11/2011 1:31:20 AM] Chris Eykamp: oh, still dumping stuff to log [3/11/2011 1:31:23 AM] Chris Eykamp: that may slow it down [3/11/2011 1:31:38 AM] buckyballreaction: wait... [3/11/2011 1:31:57 AM] buckyballreaction: BotNavMeshZone.cpp 1094 [3/11/2011 1:32:04 AM] buckyballreaction: buildBotNavMeshZoneConnections was there [3/11/2011 1:32:12 AM] buckyballreaction: and you put in buildBotNavMeshZoneConnectionsRecastStyle [3/11/2011 1:32:15 AM] Chris Eykamp: and building zones twice [3/11/2011 1:32:20 AM] buckyballreaction: 1120 [3/11/2011 1:32:21 AM] buckyballreaction: yes! [3/11/2011 1:32:28 AM] buckyballreaction: buildBotNavMeshZoneConnections found on 1120, too [3/11/2011 1:33:22 AM] Chris Eykamp: I don't follow [3/11/2011 1:33:38 AM] buckyballreaction: buildBotNavMeshZoneConnections is found twice in that method [3/11/2011 1:33:48 AM] buckyballreaction: once in the if statement, and once outside it [3/11/2011 1:34:19 AM] Chris Eykamp: it's not running on my version... maybe I fixed that; but I stuck a breakpoint in there just in case [3/11/2011 1:34:57 AM] Chris Eykamp: ok, feels instant now [3/11/2011 1:35:05 AM] Chris Eykamp: let me check in again [3/11/2011 1:35:09 AM] buckyballreaction: k [3/11/2011 1:35:14 AM] Chris Eykamp: it was logging [3/11/2011 1:36:08 AM] Chris Eykamp: ctf3 < 300ms [3/11/2011 1:36:13 AM] buckyballreaction: oooo [3/11/2011 1:36:16 AM] buckyballreaction: with zone aggregation? [3/11/2011 1:36:27 AM] Chris Eykamp: everything [3/11/2011 1:36:32 AM] buckyballreaction: excellent! [3/11/2011 1:37:00 AM] Flynn: Added the header search paths, but i'm still getting errors :( [3/11/2011 1:37:02 AM] Chris Eykamp: that time 320 [3/11/2011 1:37:13 AM] Samuel Williams: How does this look for ship explosion? http://www.youtube.com/watch?v=U4z4lwCRSu4 [3/11/2011 1:37:56 AM] Chris Eykamp: pushed [3/11/2011 1:38:29 AM] Samuel Williams: i have not yet, but i can push my new ship explosion.. [3/11/2011 1:38:40 AM] Chris Eykamp: crazy [3/11/2011 1:38:46 AM] buckyballreaction: it seems a little out of style, to be honest [3/11/2011 1:38:51 AM] Chris Eykamp: the only drawback is that smoke isn't vectory [3/11/2011 1:38:58 AM] Chris Eykamp: but I'm all for a better explosion [3/11/2011 1:39:16 AM] Samuel Williams: what is better, too many dots, or too much smoke? [3/11/2011 1:39:31 AM] Chris Eykamp: you amped up the dots and added smoke? [3/11/2011 1:39:39 AM] buckyballreaction: he added bitmaps [3/11/2011 1:39:40 AM] Samuel Williams: i only added smoke. [3/11/2011 1:40:13 AM] Samuel Williams: maybe i can disable the smoke effect, then push? [3/11/2011 1:40:49 AM | Edited 1:41:04 AM] Flynn: It's cool! But I agree, it's not very vectory xD [3/11/2011 1:40:50 AM] Chris Eykamp: if you disable smoke, what's left to push? [3/11/2011 1:41:24 AM] Samuel Williams: it is a simple one line to remove to disable smoke, but i did write smoke system.. [3/11/2011 1:41:55 AM] Chris Eykamp: well, to be honest, I'm not sure smoke fits in the game, unless we can make it pixely [3/11/2011 1:42:03 AM] Chris Eykamp: it's a cool effect though! [3/11/2011 1:42:25 AM] buckyballreaction: haha, i just found an oddity: the velocity at which you die at carries over when you respawn [3/11/2011 1:42:42 AM] Chris Eykamp: ah, so if you die in a gofast... [3/11/2011 1:43:27 AM] buckyballreaction: i haven't tested with humans yet, but it does it for bots [3/11/2011 1:43:51 AM] buckyballreaction: if you kill them with a good burst, they spawn flying into the walls [3/11/2011 1:43:53 AM] Chris Eykamp: make a case... [3/11/2011 1:44:45 AM] Samuel Williams: Robot use same existing ship object, humans get NEW ship on spawn, so the go fast probably is a problem only to robots. [3/11/2011 1:45:23 AM] buckyballreaction: ctf3: Timings: 11 0 4 14 [3/11/2011 1:50:32 AM] Chris Eykamp: seems usab;e [3/11/2011 1:50:42 AM] buckyballreaction: so now the big questions: what do we cut out, what do we use as default? [3/11/2011 1:50:55 AM] buckyballreaction: (and should we try to integrate buffers?) [3/11/2011 1:51:07 AM] Zoomber: does anyone know how to schedule shutdown or sleep in windows? [3/11/2011 1:51:39 AM] buckyballreaction: http://www.winxptutor.com/schsd.htm [3/11/2011 1:51:45 AM] buckyballreaction: if it's XP [3/11/2011 1:52:15 AM | Edited 1:52:24 AM] Zoomber: oh ok that works. just thought there was something built in that could, like macs [3/11/2011 1:52:25 AM] buckyballreaction: nope [3/11/2011 1:57:12 AM | Edited 1:57:36 AM] Samuel Williams: windows: control Panel .. power option .. System Standby [3/11/2011 1:58:17 AM] Zoomber: oh [3/11/2011 1:58:20 AM] Zoomber: thanks sam [3/11/2011 1:58:52 AM] Flynn: Still getting those errors :( [3/11/2011 1:59:02 AM] Zoomber: what happened flynn? [3/11/2011 1:59:20 AM] buckyballreaction: ok, tell me the first one [3/11/2011 1:59:27 AM] Flynn: Oh, it's just an xcode thing that I can't figure out :P [3/11/2011 1:59:38 AM] Zoomber: whats that? [3/11/2011 1:59:44 AM] Chris Eykamp: I'm heading for bed [3/11/2011 1:59:50 AM] Zoomber: gn chris [3/11/2011 1:59:53 AM] Chris Eykamp: good night! [3/11/2011 1:59:56 AM] Flynn: Bye! [3/11/2011 1:59:57 AM] buckyballreaction: @watusimoto, anything left to check in? [3/11/2011 2:00:04 AM] Chris Eykamp: nope; you got my fastest [3/11/2011 2:00:05 AM] Flynn: "_triangulate", referenced from: Zap::makeBotMeshZones3(Zap::Rect&, Zap::Game*, bool)in BotNavMeshZone.o [3/11/2011 2:00:10 AM] Zoomber: nopnopnopnop? oh yepyepyep? [3/11/2011 2:00:12 AM] buckyballreaction: excellent [3/11/2011 2:00:23 AM] Chris Eykamp: plenty to clean up in there, but what you see is what you get performance wise [3/11/2011 2:00:48 AM] buckyballreaction: @Flynn, you are missing the triangle.h file [3/11/2011 2:00:48 AM] Zoomber: Flynn, did you make any edits to the code yourself or was this something in an unmodified code? [3/11/2011 2:00:58 AM] Zoomber: becasue you are probably missing a .h file [3/11/2011 2:01:10 AM] Zoomber: err, he beat me xP [3/11/2011 2:01:11 AM] Chris Eykamp: but... I think what I'm going to do is get the new fast zone neighbor code to work directly with triangle output, and maybe we'll just skip the aggregation step [3/11/2011 2:01:18 AM] buckyballreaction: ok [3/11/2011 2:01:31 AM] Chris Eykamp: My only concern is bot performance [3/11/2011 2:01:48 AM] buckyballreaction: i'll clean up a bit - i think zones aren't being generated for the other modes [3/11/2011 2:01:50 AM] Zoomber: theyre bots [3/11/2011 2:01:51 AM] Chris Eykamp: I added about 6 bots and things got slow; however, I did not compare triangels to aggregated triangles [3/11/2011 2:01:57 AM] Zoomber: they always ive their 0% :) [3/11/2011 2:02:02 AM] buckyballreaction: rats [3/11/2011 2:02:28 AM] buckyballreaction: pathfinding might not be optimized for bigger polygons [3/11/2011 2:02:29 AM] Chris Eykamp: but I'm still planning to take a look at your puffy wall thing [3/11/2011 2:02:47 AM] Chris Eykamp: well, I'm all ears on how to improve it :) [3/11/2011 2:02:58 AM] buckyballreaction: ok [3/11/2011 2:03:01 AM] buckyballreaction: good night! [3/11/2011 2:04:03 AM] buckyballreaction: @Flynn, give me a moment, and i'll straighten out the project [3/11/2011 2:04:09 AM] Flynn: Okay, thanks :) [3/11/2011 2:04:16 AM] Chris Eykamp: We need to get a good way to evaluate and compare performance and route choice for the bots [3/11/2011 2:04:17 AM] Samuel Williams: well, one good thing is i now mostly understand on how to load a texture (picture) to the renderer. Though my new explosions just don't look right. [3/11/2011 2:04:28 AM] Chris Eykamp: that's great! [3/11/2011 2:05:04 AM] Chris Eykamp: if you look at the game gridwars, that's all vectory, but done with bitmaps [3/11/2011 2:05:22 AM] Chris Eykamp: it's hard to find due to lawsuits, but it's really fun [3/11/2011 2:05:26 AM] Chris Eykamp: ok, good night [3/11/2011 2:05:30 AM] Chris Eykamp: gridwar [3/11/2011 2:07:30 AM] buckyballreaction: ok pushed clean-up - now to Mac! [3/11/2011 2:08:05 AM] Flynn: Thankyou! :) [3/11/2011 2:10:57 AM] buckyballreaction: compiling is a bit slow in my Mac VM... [3/11/2011 2:11:09 AM | Edited 2:11:24 AM] Flynn: Wait, you have a virtual mac on your PC :O [3/11/2011 2:11:30 AM] buckyballreaction: yep, i run a linux distro with XP and OSX in vmware [3/11/2011 2:11:45 AM] Zoomber: ummmmmmmn [3/11/2011 2:11:46 AM] Flynn: Wow, sweet deal [3/11/2011 2:11:48 AM] Zoomber: wait [3/11/2011 2:11:55 AM] Zoomber: oh [3/11/2011 2:12:00 AM] Zoomber: right [3/11/2011 2:12:20 AM] Zoomber: i had a vm mac on my mac once [3/11/2011 2:12:39 AM] Flynn: ?? A virtual mac... IN your mac? [3/11/2011 2:13:10 AM] Zoomber: yeah [3/11/2011 2:13:12 AM] Zoomber: didnt go over too well [3/11/2011 2:13:16 AM] Zoomber: as youd immagine [3/11/2011 2:13:22 AM] Flynn: haha, wow, I've never heard of that before xD [3/11/2011 2:14:01 AM] Zoomber: yep, i tried putting parallels, vmware, qmeu, and virtualbox on my mac [3/11/2011 2:14:06 AM] Zoomber: the only one that worekd was vmware [3/11/2011 2:14:23 AM] buckyballreaction: @Flynn [3/11/2011 2:14:28 AM] Flynn: Yeah? [3/11/2011 2:14:28 AM] buckyballreaction: update to the newest code [3/11/2011 2:14:32 AM] buckyballreaction: it compiles now :) [3/11/2011 2:14:34 AM | Edited 2:14:36 AM] Flynn: kk : D [3/11/2011 2:14:55 AM] Zoomber: raptor added the source file that xcode didnt know about in your version [3/11/2011 2:15:05 AM] buckyballreaction: yep yep [3/11/2011 2:15:22 AM] Zoomber: now it knows where to reference those symbols it couldnt find [3/11/2011 2:15:39 AM] buckyballreaction: tell me if you have success [3/11/2011 2:15:41 AM] Flynn: I have one unresolved file, when doing "hg pull https://bitfighter.googlecode.com/hg/bitfighter -u" [3/11/2011 2:16:02 AM] buckyballreaction: have you made changes to anything? [3/11/2011 2:16:07 AM] Zoomber: husehuh? [3/11/2011 2:16:11 AM] buckyballreaction: you may need to do an hg revert -a [3/11/2011 2:16:12 AM] Zoomber: well [3/11/2011 2:16:18 AM] Zoomber: xcode does create a user file when opened [3/11/2011 2:16:24 AM] Flynn: Other than tryign to fix the header paths, no [3/11/2011 2:16:30 AM] buckyballreaction: yeah, revert [3/11/2011 2:16:35 AM] buckyballreaction: it's trying to merge [3/11/2011 2:16:40 AM] Zoomber: hushahn.pbuser [3/11/2011 2:16:42 AM] buckyballreaction: just blow away your fixes... [3/11/2011 2:16:52 AM] buckyballreaction: then pull again [3/11/2011 2:16:58 AM] Zoomber: you should get MacHg [3/11/2011 2:17:08 AM] Zoomber: its a full-on full-blown hg gui [3/11/2011 2:17:13 AM] buckyballreaction: cool [3/11/2011 2:17:14 AM] Flynn: Well, a while ago, whe I was last online here, I *did* do some changes to the code [3/11/2011 2:17:24 AM] Zoomber: 100% sorted, with a gradient background :) [3/11/2011 2:17:50 AM] buckyballreaction: @Flynn maybe you should re-clone [3/11/2011 2:18:02 AM] buckyballreaction: @zoomber, machg never worked in my VM [3/11/2011 2:18:03 AM] Flynn: I never pushed or saved my changes :( [3/11/2011 2:18:07 AM] Flynn: Ah well [3/11/2011 2:18:10 AM] buckyballreaction: wait [3/11/2011 2:18:11 AM] Zoomber: yeah, it didnt work for me untill just recently [3/11/2011 2:18:12 AM] buckyballreaction: what changes? [3/11/2011 2:18:25 AM] Flynn: I was working on somehting related to the bitfighter menus a while ago [3/11/2011 2:18:29 AM] buckyballreaction: ok [3/11/2011 2:18:31 AM] Zoomber: before, it would tell me the repository was unavialable when it was [3/11/2011 2:18:39 AM] Zoomber: now, it says repository is available [3/11/2011 2:18:50 AM] buckyballreaction: just rename the bitfighter directory to something like bitfighter.save [3/11/2011 2:18:53 AM] buckyballreaction: and re-clone [3/11/2011 2:19:03 AM] Zoomber: lol [3/11/2011 2:19:10 AM] buckyballreaction: then pull your changes from the .save directory back if needed [3/11/2011 2:19:27 AM] Flynn: Okay [3/11/2011 2:19:28 AM] buckyballreaction: @zoomber, i think that is what happened to me too [3/11/2011 2:19:36 AM] Zoomber: sounds like an old sourceforge meathod of yours :) [3/11/2011 2:19:57 AM] Zoomber: till you said the pull part [3/11/2011 2:20:26 AM] Zoomber: oh, try redownloading machg and adding the source now, or updarting if there is an update [3/11/2011 2:20:27 AM] Flynn: Okay, so, by reclone, you mean I should delete flyclub-clone, and start a new one? [3/11/2011 2:20:38 AM] buckyballreaction: nonono [3/11/2011 2:20:49 AM] buckyballreaction: hmmm, 'clone' may be a bit generic of a word [3/11/2011 2:20:50 AM] Flynn: (On google code that is) [3/11/2011 2:20:54 AM] Zoomber: because i practically did nothing once it didnt work, and now it works, after i reinstalled [3/11/2011 2:21:01 AM] buckyballreaction: i mean make a local clone of trunk [3/11/2011 2:21:07 AM] Zoomber: he means [3/11/2011 2:21:12 AM] Zoomber: go to your home folder [3/11/2011 2:21:21 AM] Zoomber: take the folder that says bitfighter on it, and rename it to bitfightersave [3/11/2011 2:21:33 AM] Zoomber: and then checkout a new version of the code [3/11/2011 2:22:24 AM] buckyballreaction: zoomber, it's pretty handy to have several local clones lying around: since there are several developers my changes are frequently out-of-sync, so i just rename the old clone and pull again from trunk [3/11/2011 2:22:53 AM] buckyballreaction: then pull/rebase/merge between the local ones until the code is good enough to push [3/11/2011 2:22:59 AM] Zoomber: i had about 30 [3/11/2011 2:23:06 AM] Zoomber: deleted and made new ones constantly [3/11/2011 2:23:13 AM] Zoomber: it was all a messs in my mind [3/11/2011 2:23:14 AM] Flynn: So, I need only do hg-clone of the main trunk then? [3/11/2011 2:23:20 AM] buckyballreaction: @flynn, yes [3/11/2011 2:23:45 AM] buckyballreaction: then pull changes from that local clone of trunk into your local clone of your server-side clone [3/11/2011 2:23:55 AM] buckyballreaction: clone clone clone clone [3/11/2011 2:24:04 AM] Zoomber: i deleted all but two pre-15 releases, archived them and my old artwork into a zip file, and stopped colneing [3/11/2011 2:24:36 AM] Zoomber: just do hg clone (serverrepository) bitfighterBUILDTHIS [3/11/2011 2:24:40 AM] Zoomber: in your terminal window [3/11/2011 2:25:27 AM] Zoomber: ok i think im going to hit the sack (punch the bed) [3/11/2011 2:25:32 AM] buckyballreaction: ok [3/11/2011 2:25:34 AM] buckyballreaction: good night [3/11/2011 2:25:54 AM] Zoomber: raptor would be glad to answer the rest of your questions flynn, he is the smart one :P [3/11/2011 2:26:04 AM] Flynn: Bye zoomber [3/11/2011 2:26:12 AM] buckyballreaction: ha! [3/11/2011 2:26:12 AM] Zoomber: goodnight [3/11/2011 2:26:18 AM] buckyballreaction: night [3/11/2011 2:27:19 AM] buckyballreaction: @flynn, i'm starting to be less conscious. do you have any questions before i conk out? [3/11/2011 2:27:39 AM] Flynn: I must go. [3/11/2011 2:27:55 AM] Samuel Williams: good night.. [3/11/2011 2:30:37 AM] buckyballreaction: ok, i'm going now, too [3/11/2011 2:30:40 AM] buckyballreaction: night sam [3/11/2011 2:30:47 AM] buckyballreaction: gridwars is cool [3/11/2011 11:40:18 AM] buckyballreaction: mornin' [3/11/2011 12:11:16 PM] Chris Eykamp: hi [3/11/2011 12:11:38 PM] buckyballreaction: hi [3/11/2011 12:11:56 PM] buckyballreaction: it's friday and everyone is 'working from home' [3/11/2011 12:13:30 PM] Chris Eykamp: you too? [3/11/2011 12:13:34 PM] buckyballreaction: nope [3/11/2011 12:13:44 PM] buckyballreaction: i can't work from home [3/11/2011 12:13:48 PM] buckyballreaction: i get too distracted [3/11/2011 12:13:55 PM] Chris Eykamp: ah I see [3/11/2011 12:25:27 PM] buckyballreaction: so i played gridwars [3/11/2011 12:25:32 PM] buckyballreaction: got over 700000 points [3/11/2011 12:25:38 PM] buckyballreaction: which i understand means i'm a noob [3/11/2011 12:26:28 PM] buckyballreaction: i kinda like the feel to games like gridwars and bitfighter - all the graphics are consistent [3/11/2011 12:26:55 PM] Chris Eykamp: yes -- the gridwars soundscape is excellent; I want to make Bitfighter more like that [3/11/2011 2:04:10 PM] Chris Eykamp: hey, here's an idea [3/11/2011 2:04:17 PM] Chris Eykamp: easy to test, easy to implement [3/11/2011 2:04:35 PM] Chris Eykamp: Let's set aside the issue of puffy zones for a minute [3/11/2011 2:04:44 PM] buckyballreaction: ok [3/11/2011 2:04:49 PM] Chris Eykamp: let's instead look at where we're creating the boudaries between zones [3/11/2011 2:05:12 PM] Chris Eykamp: if the length of the boundary (which we know) is < diameter of the ship, simply don't connect the zones [3/11/2011 2:05:23 PM] Chris Eykamp: that's 1 line of code [3/11/2011 2:05:43 PM] buckyballreaction: yes, that was my fallback plan... :) [3/11/2011 2:05:46 PM] Chris Eykamp: if the zones aren't connected, bot's won't try to use the pathway [3/11/2011 2:05:54 PM] Chris Eykamp: well, it seems just as good [3/11/2011 2:06:03 PM] buckyballreaction: what about drunken bots? [3/11/2011 2:06:18 PM] Chris Eykamp: that can be handled in the optimiazation code [3/11/2011 2:06:28 PM] Chris Eykamp: right now, the bot looks forward to see if it can see the waypoint [3/11/2011 2:06:34 PM] Chris Eykamp: if it can, it goes straight [3/11/2011 2:07:31 PM] Chris Eykamp: if instead we take 2 los's, one from the left side of the ship, one from the right, and see if we can see 2 points 1 ship diameter spread from the destination; if we can see both of those, we'll miss any protrusions [3/11/2011 2:07:46 PM] Chris Eykamp: that is also easy to code [3/11/2011 2:07:54 PM] buckyballreaction: sounds like a plan [3/11/2011 2:07:56 PM] Chris Eykamp: we know the direction; therefore we know the perpendicular [3/11/2011 2:08:13 PM] Chris Eykamp: therefore we know the location of our two starts & ends for the purposes of los claculations [3/11/2011 2:08:58 PM] Chris Eykamp: the only downside is that's 2x the caluclations, and it's a fairly expensive calculation to make [3/11/2011 2:09:30 PM] Chris Eykamp: but we can review the code; if we had los the previous frame, we should have los now [3/11/2011 2:09:42 PM] Chris Eykamp: maybe check for more distant waypoints every 2nd or 3rd frame [3/11/2011 2:09:49 PM] Chris Eykamp: instead of every frame [3/11/2011 2:10:06 PM] buckyballreaction: i am unfamiliar with the LOS code [3/11/2011 2:10:09 PM] Chris Eykamp: or we could still generate the puffy walls for wayfinding purposes [3/11/2011 2:10:37 PM] Chris Eykamp: but store them separately, and leave the zones as-is, which still solves the issue of a flag being placed outside any existing zone [3/11/2011 2:11:25 PM] buckyballreaction: are wormholes connected with your new method? [3/11/2011 2:11:34 PM] buckyballreaction: i see the old commented out [3/11/2011 2:11:40 PM] Chris Eykamp: robot.cpp. line 876 [3/11/2011 2:11:50 PM] Chris Eykamp: wormholes are not connected, but could/should be [3/11/2011 2:11:59 PM] Chris Eykamp: same code should still work [3/11/2011 2:12:09 PM] Chris Eykamp: though I have enver seen a bot use one [3/11/2011 2:12:21 PM] buckyballreaction: i have [3/11/2011 2:12:32 PM] Chris Eykamp: maybe we just need the right level [3/11/2011 2:12:32 PM] buckyballreaction: and wondered about the logic.. [3/11/2011 2:12:44 PM] Chris Eykamp: should be a costless way to move from origin to dest zones [3/11/2011 2:12:53 PM] Chris Eykamp: not sure how it's actually implemented [3/11/2011 2:14:13 PM] Chris Eykamp: the code in robot.cpp is pretty well commented, you should be able to grasp it pretty easily [3/11/2011 2:16:03 PM] buckyballreaction: ok, for the first thing: not creating the connection [3/11/2011 2:16:58 PM] buckyballreaction: BotNavMeshZone.cpp: 855 [3/11/2011 2:17:07 PM] buckyballreaction: or in that loop [3/11/2011 2:17:11 PM] buckyballreaction: is that the correct place? [3/11/2011 2:17:28 PM] buckyballreaction: it's in your new method [3/11/2011 2:19:25 PM] buckyballreaction: maybe up even further actually... [3/11/2011 2:22:18 PM] Chris Eykamp: 855ish, yes [3/11/2011 2:22:36 PM] Chris Eykamp: maaaybe could do it earlier? [3/11/2011 2:22:41 PM] Chris Eykamp: but no need to [3/11/2011 2:23:54 PM] Chris Eykamp: we build the adjacency, we can leave that as-is; there is no great efficiency to be gained by inserting a min-length criteria there, and it may have unforseen side-effects [3/11/2011 2:24:06 PM] buckyballreaction: makes sense [3/11/2011 2:26:14 PM] buckyballreaction: is there a predefined method for the length of a segment between two points that I should use? [3/11/2011 2:26:33 PM] buckyballreaction: int point.h I just see len() which is distance from origin [3/11/2011 2:27:49 PM] Chris Eykamp: Point seg = point.start - point.end; F32 len = seg.len(); [3/11/2011 2:27:55 PM] Chris Eykamp: is the easiest [3/11/2011 2:27:56 PM] buckyballreaction: just curious if i don't have to rewrite the logic (i don't mind) [3/11/2011 2:28:08 PM] buckyballreaction: ok [3/11/2011 2:28:21 PM] Chris Eykamp: using lensquared and comparing to the ship's diamter squared is a little uglier but a little faster [3/11/2011 2:29:49 PM] Chris Eykamp: or, better, create both instances of v at the same time, and do the math yourself (we currently reuse the var); that would avoid creating a series of Point objects, and the clauclation is so simple [3/11/2011 2:30:53 PM] Chris Eykamp: vStart =... vEnd = ... lensq = (vStart[0] - vEnd[0])^2 + (vStart[1] - vEnd[1])^2 [3/11/2011 2:32:08 PM] Chris Eykamp: except the syntax is wrong [3/11/2011 2:32:17 PM] buckyballreaction: i got ti [3/11/2011 2:42:55 PM] buckyballreaction: i must misunderstand how squaring a negative int works [3/11/2011 2:42:57 PM] buckyballreaction: in c++ [3/11/2011 2:43:08 PM] buckyballreaction: will -1 * -1, not be 1? [3/11/2011 2:49:07 PM] buckyballreaction: no that works [3/11/2011 2:49:17 PM] buckyballreaction: i must be overflowing somewhere... [3/11/2011 2:49:44 PM] Chris Eykamp: show me your code [3/11/2011 2:49:51 PM] buckyballreaction: if ( ( ((vStart[0] - vEnd[0])^2) + ((vStart[1] - vEnd[1])^2) ) < (Ship::CollisionRadius)^2 ) continue; [3/11/2011 2:50:15 PM] Chris Eykamp: Does ^ mean power? [3/11/2011 2:50:31 PM] buckyballreaction: i thought so, but now I question [3/11/2011 2:50:58 PM] Chris Eykamp: you should question [3/11/2011 2:51:54 PM] buckyballreaction: argh [3/11/2011 2:51:56 PM] buckyballreaction: it's XOR [3/11/2011 2:51:59 PM] Chris Eykamp: Note that 1^0 will give the correct answer [3/11/2011 2:52:05 PM] Chris Eykamp: But most other cases fail [3/11/2011 2:52:10 PM] buckyballreaction: ha [3/11/2011 2:52:28 PM] Chris Eykamp: so just write it out: collRad * collRad [3/11/2011 2:52:38 PM] buckyballreaction: ok [3/11/2011 2:52:38 PM] Chris Eykamp: that's what I do, at least [3/11/2011 2:52:50 PM] buckyballreaction: i guess there is a pow() function somewhere [3/11/2011 2:53:02 PM] Chris Eykamp: perhaps [3/11/2011 2:53:10 PM] Chris Eykamp: you could always write a squared macro [3/11/2011 2:53:18 PM] Chris Eykamp: squared(x) (x) * (x) [3/11/2011 3:07:16 PM] buckyballreaction: http://96.2.123.136/upload/1snapshot13.png [3/11/2011 3:07:30 PM] buckyballreaction: zones 22 and 17 were correctly ignored [3/11/2011 3:07:39 PM] buckyballreaction: but zone 7 was not [3/11/2011 3:08:04 PM] Chris Eykamp: ah [3/11/2011 3:08:15 PM] buckyballreaction: and zone 14 might pose a problem, too [3/11/2011 3:08:21 PM] Chris Eykamp: yes [3/11/2011 3:09:10 PM] Chris Eykamp: a flaw in the plan [3/11/2011 3:09:16 PM] buckyballreaction: yup :( [3/11/2011 3:09:23 PM] buckyballreaction: which buffers would correct... [3/11/2011 3:09:38 PM] Chris Eykamp: trivially [3/11/2011 3:10:11 PM] Chris Eykamp: ok, well, we know to scratch that one from the list [3/11/2011 3:10:46 PM] buckyballreaction: not unless we want to do zone-narrows calculations [3/11/2011 3:11:15 PM] Chris Eykamp: we could [3/11/2011 3:11:30 PM] Chris Eykamp: do a distance measurement from each vertex to each non-adjacent side [3/11/2011 3:11:39 PM] buckyballreaction: so zones > 3 vertices would need to have the smallest bisecting segment caculated [3/11/2011 3:12:18 PM] Chris Eykamp: but a zone that was naturally long and thin might look uncrossable, even it it wasn;t [3/11/2011 3:12:31 PM] buckyballreaction: argh [3/11/2011 3:12:36 PM] Chris Eykamp: puffy walls [3/11/2011 3:13:18 PM] buckyballreaction: i keep thinking i'm missing a step with my puffy walls... [3/11/2011 3:13:19 PM] Chris Eykamp: I'll probably have a chance to look at that tonight [3/11/2011 3:13:42 PM] Chris Eykamp: maybe we can bring some resolution [3/11/2011 3:13:53 PM] Chris Eykamp: I can stay up late, if I'm not too tired [3/11/2011 3:14:40 PM] buckyballreaction: I do the following: 1. grab the original two points for the segment 2. inflate buffer to barrier width + ship collision radius 3. create edge geometry from resulting points from #2 4. feed edge geometry to triangle [3/11/2011 3:15:15 PM] buckyballreaction: now 'create edge geometry' means just create 8 points from the 4 original [3/11/2011 3:15:25 PM] Chris Eykamp: should still be 4 [3/11/2011 3:15:27 PM] buckyballreaction: two per buffer segment [3/11/2011 3:15:30 PM] Chris Eykamp: oh [3/11/2011 3:16:08 PM] buckyballreaction: just like what was done with the rendering geometry [3/11/2011 3:16:19 PM] buckyballreaction: is there another step i need to do somewhere? [3/11/2011 3:17:09 PM] Chris Eykamp: not sure, but that sounds complete... I really need to look at how you did it [3/11/2011 3:17:37 PM] buckyballreaction: i tried to keep it as simple as possible - both coding wise and algo wise [3/11/2011 3:19:31 PM] buckyballreaction: i'll just rebase the code again in my clone to the current bitfighter code [3/11/2011 3:19:40 PM] buckyballreaction: so it should be easy to grab [3/11/2011 3:27:20 PM] buckyballreaction: or i could just check it into trunk - it's stable [3/11/2011 3:30:12 PM] Flynn: Tried everythign you said, sadly, didn't work. I'm thinking I need to start a new clone. I have a copy of my work if I need to go back and look at anything. Sadly, thoguh, I can't figure out how to delete my current one. [3/11/2011 3:30:48 PM] buckyballreaction: you can delete your current clont online by going to administer -> advanced [3/11/2011 3:30:49 PM | Edited 3:30:52 PM] Flynn: And the miniute I Say that, I found the delete button >.< [3/11/2011 3:30:53 PM] buckyballreaction: :) [3/11/2011 3:30:56 PM] Flynn: THanks :) [3/11/2011 3:58:40 PM] Chris Eykamp: hey, we should add the article in Tom's Hardware to 20 retro games to the wikipedia page; that's got to be considered a reputable source, no? [3/11/2011 3:58:48 PM] Chris Eykamp: or rather a notable one [3/11/2011 3:59:08 PM] Chris Eykamp: because it is an independent article that includes bitfighter, not just a rehash of our release notes [3/11/2011 4:00:09 PM] buckyballreaction: yes good idea [3/11/2011 4:00:34 PM] Chris Eykamp: the key is to find some reason to cite it [3/11/2011 4:00:42 PM] Chris Eykamp: some tidbit or other from the article [3/11/2011 4:00:46 PM] Chris Eykamp: that we can reference [3/11/2011 4:01:05 PM] buckyballreaction: i don't hink i'd have the patience to be a wikipedia author [3/11/2011 4:01:10 PM] Chris Eykamp: maybe we can say the game has been compared to Robotron? [3/11/2011 4:01:14 PM] buckyballreaction: haha [3/11/2011 4:02:02 PM] Chris Eykamp: there's not really much else there [3/11/2011 4:02:09 PM] Chris Eykamp: Bitfighter is a 2D shooter based on Robotron, a 1982 cooperative multiplayer game. Player from color-coded teams maneuver their craft around a top-down battlefield, touching power ups and exposing enemies to deadly fire along the way. But annihilating opposing forces isn't the only name of the game. There are also capture-the-flag, domination, and even put-the-ball-into-the-goal modes. Everything is rendered with line drawings, along the lines of Asteroids, another classic game. Last but not least, Bitfighter makes map creation and sharing easy. [3/11/2011 4:02:14 PM] Chris Eykamp: that's the entire article [3/11/2011 4:02:48 PM] buckyballreaction: we could point to some of the linux games sites maybe? [3/11/2011 4:05:21 PM] karamazovapy: Just add a line in the summary that it's been listed as a top 20 retro game [3/11/2011 4:05:33 PM] karamazovapy: or give its actual rank in the article [3/11/2011 4:05:44 PM] karamazovapy: awards and recognition are relevant [3/11/2011 4:08:32 PM] Chris Eykamp: well, I made my change [3/11/2011 4:08:41 PM] Chris Eykamp: feel free to update [3/11/2011 4:11:30 PM] buckyballreaction: haha, you really put that reference there... [3/11/2011 4:11:55 PM] Chris Eykamp: :) [3/11/2011 4:12:03 PM] Chris Eykamp: it's not supposed to be original research [3/11/2011 4:12:16 PM] Chris Eykamp: I'm just reporting what the notable sources have reported [3/11/2011 4:12:40 PM] buckyballreaction: right... because notable secondary sources are more notable than primary ones... [3/11/2011 4:13:08 PM] Chris Eykamp: well, there is a logic there [3/11/2011 4:13:25 PM] Chris Eykamp: primary sources are more likely to be biased against comparing bf with robotron [3/11/2011 4:14:50 PM] buckyballreaction: we are definitely biased [3/11/2011 4:16:59 PM] Chris Eykamp: except that whole comparison came from me [3/11/2011 4:17:06 PM] Chris Eykamp: I am the originator of the bf as robotron meme [3/11/2011 4:17:19 PM] buckyballreaction: i finallyf ounda robotron flash game - the controls are similar [3/11/2011 4:17:27 PM] Chris Eykamp: yes, exactly [3/11/2011 4:17:43 PM] Chris Eykamp: two joysticks -- one to move, one to shoot [3/11/2011 4:17:49 PM] Chris Eykamp: no modules, of course [3/11/2011 4:17:56 PM] Chris Eykamp: only one weapon [3/11/2011 4:18:03 PM] Chris Eykamp: one player [3/11/2011 4:18:08 PM] Chris Eykamp: but in some ways similar [3/11/2011 4:18:20 PM] Chris Eykamp: and hey, it got us into tom's guide [3/11/2011 4:33:28 PM] karamazovapy: you know what the bitfighter marketing tag should be? Asteroids with Attitude. [3/11/2011 4:34:28 PM] karamazovapy: that's how I'd sell it, anyway [3/11/2011 4:35:08 PM] Chris Eykamp: Better than fast, fun, frenetic? [3/11/2011 4:35:15 PM] karamazovapy: "2D space shooter with robotron-like controls" doesn't exactly roll off the tongue [3/11/2011 4:35:34 PM] Chris Eykamp: fair point [3/11/2011 4:35:37 PM] Chris Eykamp: I like A wA [3/11/2011 4:36:01 PM] karamazovapy: "fast, fun, frenetic" sounds a bit like a speed dating service [3/11/2011 4:36:25 PM] karamazovapy: fast and fun get attached to everything [3/11/2011 4:36:39 PM] karamazovapy: microwaveable bacon racks, juicers [3/11/2011 4:36:42 PM] Chris Eykamp: @bbr, where is your puffy code? [3/11/2011 4:36:53 PM] karamazovapy: workout videos [3/11/2011 4:36:54 PM] buckyballreaction: want me to check it into trunk? [3/11/2011 4:36:56 PM] Chris Eykamp: but grenetic? [3/11/2011 4:37:08 PM] karamazovapy: grenetic only applies to beowulf [3/11/2011 4:37:11 PM] buckyballreaction: https://code.google.com/r/buckyballreaction-bf8/source/list [3/11/2011 4:37:21 PM] buckyballreaction: my server-side clone has it in the latest rev [3/11/2011 4:37:30 PM] karamazovapy: oh snap, middle english slam! [3/11/2011 4:37:50 PM] Chris Eykamp: I think you should merge it into trunk; when I tried that before, the zone gen was so slow, it was painful [3/11/2011 4:38:00 PM] buckyballreaction: okey doke [3/11/2011 4:38:03 PM] buckyballreaction: give me a minute... [3/11/2011 4:38:11 PM] Chris Eykamp: no worries, no hurries [3/11/2011 4:38:19 PM] karamazovapy: that's not a good tag line either [3/11/2011 4:38:24 PM] Chris Eykamp: I'm not going to work on it until tonight; just wanted to see where it was [3/11/2011 4:38:30 PM] Chris Eykamp: Bitfighter: No Worries, No Hurries [3/11/2011 4:38:53 PM] karamazovapy: Bitfighter: Yeah, we'll get around to it. [3/11/2011 4:39:09 PM] Chris Eykamp: Bitfighter: Whatever [3/11/2011 4:39:36 PM] karamazovapy: Bitfighter: No complaining, it's free. [3/11/2011 4:39:49 PM] Chris Eykamp: Bitfighter: Shut your pie hole [3/11/2011 4:40:17 PM] Chris Eykamp: Now that's attitude [3/11/2011 4:40:21 PM] karamazovapy: Bitfighter: Are you 8-12 or a grown man who uses linux? [3/11/2011 4:40:41 PM] Chris Eykamp: ++ [3/11/2011 4:41:01 PM] karamazovapy: good point. that one's a little rapey. [3/11/2011 4:42:14 PM] Chris Eykamp: it's just creepy [3/11/2011 4:42:53 PM] karamazovapy: gotta walk the dog - see y'all later [3/11/2011 4:43:52 PM] buckyballreaction: bye [3/11/2011 4:45:14 PM] buckyballreaction: ok code is in [3/11/2011 5:04:53 PM] buckyballreaction: i'm testing what happes when a flag is in a buffer on ctf3 with bot [3/11/2011 5:06:55 PM] buckyballreaction: he still went straight for it [3/11/2011 5:07:26 PM] buckyballreaction: i even made sure it was in a convex buffer in a corner so the flag graphic was totally in the buffer [3/11/2011 5:08:04 PM] Chris Eykamp: yes, we have a method for finding whihc zone an object is closest to. [3/11/2011 5:08:10 PM] Chris Eykamp: it's just inefficient [3/11/2011 5:08:20 PM] buckyballreaction: well that's what's happening [3/11/2011 5:08:30 PM] Chris Eykamp: we cycle through all the zones to figure out which is closest [3/11/2011 5:16:31 PM] buckyballreaction: that could be improved using a hashmap, i think [3/11/2011 5:17:51 PM] buckyballreaction: well wait - i'd have to see the code.. [3/11/2011 5:19:39 PM] Chris Eykamp: we have a point and a collection of zones... how d o you find the closest? [3/11/2011 5:19:49 PM] Chris Eykamp: maybe we can use bouding boxes, which we know [3/11/2011 5:21:55 PM] buckyballreaction: i have an idea - but not sure how to do it in code [3/11/2011 5:23:05 PM] buckyballreaction: it involves using a hash map to use an index to return a group of vertices in-the-vicinity [3/11/2011 5:23:25 PM] buckyballreaction: but somehow the flag point must hash to something similar to the index [3/11/2011 5:23:43 PM] buckyballreaction: or use some other algo to get it close [3/11/2011 5:30:04 PM] buckyballreaction: http://en.wikipedia.org/wiki/Closest_pair_of_points#Planar_case [3/11/2011 5:36:46 PM] Chris Eykamp: we can get in the vicinity from our spatial database [3/11/2011 5:37:01 PM] Chris Eykamp: but we still need to see if any of those have los [3/11/2011 5:37:16 PM] Chris Eykamp: we could take increasing radii, and checking larger and larger groups for los [3/11/2011 5:38:10 PM] Chris Eykamp: so the first go-round we'd only be checing for polys within, say 100 of the obj. that would only capture a few zones, and would always cover the case of falling into a gap, as zones would always be within 40 [3/11/2011 5:38:33 PM] Chris Eykamp: in fact, we could just stop when we found one that had los, as it would be at least close enough [3/11/2011 5:39:13 PM] buckyballreaction: please explain the spatial database? [3/11/2011 5:40:21 PM] Chris Eykamp: the thing that lets us do this: [3/11/2011 5:40:22 PM] Chris Eykamp: gServerGame->getGridDatabase()->findObjects(SpyBugType | MineType, fillVector, gServerWorldBounds); [3/11/2011 5:40:39 PM] buckyballreaction: ok [3/11/2011 5:40:47 PM] Chris Eykamp: every object is spatially reerenced in the db, making it fast and easy to locate [3/11/2011 5:40:48 PM] buckyballreaction: so it keeps track of all the in-game objects [3/11/2011 5:40:56 PM] Chris Eykamp: essentially, yes [3/11/2011 5:41:10 PM] Chris Eykamp: and lets you find them fast by proximity [3/11/2011 5:42:00 PM] buckyballreaction: so you can find an object quickly given an objectType and a Point? [3/11/2011 5:42:07 PM] Chris Eykamp: yes [3/11/2011 5:42:15 PM] buckyballreaction: is it constant time performance? [3/11/2011 5:42:25 PM] buckyballreaction: or linear? (loops through all the objects) [3/11/2011 5:42:48 PM] Chris Eykamp: linear, but only loops through a short list of candidates [3/11/2011 5:43:09 PM] Chris Eykamp: so between linear and constant [3/11/2011 5:45:02 PM] buckyballreaction: ah i see: it builds an index based on the x and y coords and the object mask [3/11/2011 5:45:20 PM] buckyballreaction: and can return all objects in constant time that match that [3/11/2011 5:45:49 PM] buckyballreaction: but since we give it a range, it has to iterate over the range first [3/11/2011 5:46:02 PM] Chris Eykamp: yes [3/11/2011 5:46:41 PM] buckyballreaction: so then we already have what we need - we can just test all zones in a particular radius, and then get LOS - then increase radius if not found [3/11/2011 5:46:58 PM] buckyballreaction: that is, if bot zones are added to the gridDB [3/11/2011 5:48:52 PM] Chris Eykamp: they are added to a second gridDB to avoid polluting the first [3/11/2011 5:49:09 PM] Chris Eykamp: so, in short, yes [3/11/2011 5:49:19 PM] Chris Eykamp: had a great meeting this morning, btw [3/11/2011 5:49:26 PM] buckyballreaction: oh good! [3/11/2011 5:49:32 PM] Chris Eykamp: yes, very [3/11/2011 5:56:23 PM] Chris Eykamp: if everything works out, I get to return to Europe [3/11/2011 5:59:59 PM] buckyballreaction: OOoo [3/11/2011 6:00:04 PM] buckyballreaction: germany again? [3/11/2011 6:00:14 PM] Chris Eykamp: Luxembourg [3/11/2011 6:00:22 PM] Chris Eykamp: but that's pretty close [3/11/2011 6:00:27 PM] buckyballreaction: do they have a government yet? [3/11/2011 6:00:37 PM] Chris Eykamp: did they not have a government? [3/11/2011 6:00:50 PM] buckyballreaction: there was a time where the gov't decided to stop meeting [3/11/2011 6:00:57 PM] buckyballreaction: let me see if i can find it... [3/11/2011 6:01:40 PM] Chris Eykamp: don't know if it matters :) [3/11/2011 6:01:56 PM] buckyballreaction: on 1/2 million people there [3/11/2011 6:02:00 PM] buckyballreaction: only [3/11/2011 6:02:04 PM] Chris Eykamp: it's small [3/11/2011 6:04:06 PM] buckyballreaction: ah, it was belgium [3/11/2011 6:04:21 PM] buckyballreaction: sorry, got my tiny northwest countries mixed [3/11/2011 6:04:49 PM] Chris Eykamp: yes, I suspected [3/11/2011 6:05:00 PM] buckyballreaction: http://www.guardian.co.uk/world/2011/feb/18/belgium-marks-250-days-no-government [3/11/2011 6:05:02 PM] Chris Eykamp: belgium has all kinds of problmes for such a small country [3/11/2011 6:05:49 PM] Chris Eykamp: but I really like it there [3/11/2011 6:05:59 PM] Chris Eykamp: I would love to live in northern Belgium [3/11/2011 6:12:06 PM] buckyballreaction: wwhich method is it that robots use to get to the flag if out-of bounds? [3/11/2011 6:12:29 PM] buckyballreaction: LuaRobot::getWaypoint() ? [3/11/2011 6:12:34 PM] Chris Eykamp: I think it navigates to nearest zone, then goes cross-country [3/11/2011 6:12:39 PM] Chris Eykamp: so, yes [3/11/2011 6:12:47 PM] Chris Eykamp: I think everything goes through there [3/11/2011 6:13:58 PM] buckyballreaction: is getWaypoint used for target acquisition, or to move from zone to zone? [3/11/2011 6:14:52 PM] Chris Eykamp: for moving from zone to zone [3/11/2011 6:15:00 PM] Chris Eykamp: target acquisition is the b=job of the bot [3/11/2011 6:15:12 PM] Chris Eykamp: getWapoint helps the bot get where it wants to go [3/11/2011 6:15:43 PM] Chris Eykamp: the bot supplies a target point, and getWaypoint returns the next point it shoudl fly to, by direct, straight line [3/11/2011 6:16:05 PM] Chris Eykamp: feel free to add comments as you see fit [3/11/2011 6:18:04 PM] buckyballreaction: foudn it: U16 LuaRobot::findClosestZone [3/11/2011 6:18:37 PM] buckyballreaction: so it starts a distance at 512 [3/11/2011 6:18:50 PM] buckyballreaction: maybe we should reduce it to like 50 [3/11/2011 6:19:25 PM] buckyballreaction: if zones are autogenerated all the time and buffer is 24 [3/11/2011 6:19:40 PM] buckyballreaction: i don't think we need to get all zones within 312 [3/11/2011 6:19:40 PM] buckyballreaction: 512 [3/11/2011 6:20:20 PM] buckyballreaction: or even reduce to 25 [3/11/2011 6:21:06 PM] Chris Eykamp: yes; that was originally written when there could be large areas outside of zones. Now the only way that can happen is if we have a way to get outside the maze, or something falls into puffy gaps [3/11/2011 6:21:18 PM] Chris Eykamp: which are limited to 24? [3/11/2011 6:21:21 PM] buckyballreaction: yep [3/11/2011 6:21:32 PM] Chris Eykamp: no, limited to 2x24 [3/11/2011 6:21:42 PM] buckyballreaction: ah yes [3/11/2011 6:21:45 PM] buckyballreaction: correct [3/11/2011 6:21:53 PM] Chris Eykamp: so our initial radius should be ship radiuos *2 + 1 [3/11/2011 6:22:15 PM] buckyballreaction: 49^2 is a lot less than 512^2 [3/11/2011 6:22:29 PM] Chris Eykamp: maybe we should create a static var that is set to ship radius, that we call puff radius or somesuch, that we use when puffing and when searching [3/11/2011 6:22:44 PM] buckyballreaction: you mean Ship::ColisionRadius? [3/11/2011 6:22:44 PM] Chris Eykamp: to make it clearer what is what [3/11/2011 6:22:52 PM] buckyballreaction: which is what i have been using [3/11/2011 6:23:10 PM] Chris Eykamp: yes, create a new static called zone::puffRadius = Ship::collisionRadius // and here is why [3/11/2011 6:23:46 PM] Chris Eykamp: just thinking that would be clearer because collisionRadius doesn't seem obvious [3/11/2011 6:23:50 PM] Chris Eykamp: why use that? [3/11/2011 6:23:55 PM] buckyballreaction: ok [3/11/2011 6:23:57 PM] Chris Eykamp: this provides a little clarity [3/11/2011 6:24:07 PM] buckyballreaction: sound sfine to me [3/11/2011 6:24:16 PM] Chris Eykamp: ship radius shouldn't be in our mesh generation /navigation code [3/11/2011 6:24:28 PM] Chris Eykamp: unless it is referring to the ship radius [3/11/2011 6:24:33 PM] Chris Eykamp: if that's clear [3/11/2011 6:24:42 PM] buckyballreaction: yep [3/11/2011 6:24:59 PM] buckyballreaction: so right now we only do the buffer around barriers [3/11/2011 6:25:03 PM] Chris Eykamp: and even then it should be bot::collisionRadius [3/11/2011 6:25:24 PM] Chris Eykamp: they happen to be equal at the moment [3/11/2011 6:25:31 PM] buckyballreaction: ok [3/11/2011 6:25:46 PM] buckyballreaction: i'll add the constant to BotNavMeshZone, then slurp it into barrer [3/11/2011 6:25:49 PM] buckyballreaction: barrier [3/11/2011 6:26:29 PM] Chris Eykamp: but... what if we use wayfinding for other objects/monsters/whaever with a different radius? [3/11/2011 6:26:34 PM] Chris Eykamp: then we have a heap of trouble [3/11/2011 6:26:54 PM] Chris Eykamp: but maybe we worry about that later [3/11/2011 6:27:00 PM] Chris Eykamp: giant/tiny bots! [3/11/2011 6:27:05 PM] buckyballreaction: hahaha [3/11/2011 6:27:15 PM] Chris Eykamp: a tiny bot might be pretty cool [3/11/2011 6:27:30 PM] buckyballreaction: the bot factory could be a giant bot that moves around slowly [3/11/2011 6:27:30 PM] Chris Eykamp: hell, what about a miniaturize module [3/11/2011 6:27:41 PM] Chris Eykamp: that makes your ship smaller/harder to hit? [3/11/2011 6:27:47 PM] buckyballreaction: interesting [3/11/2011 6:27:51 PM] Chris Eykamp: that might be fun to try [3/11/2011 6:28:08 PM] Chris Eykamp: everything else could be the same [3/11/2011 6:28:38 PM] Chris Eykamp: just half the size [3/11/2011 6:36:38 PM] buckyballreaction: huh, so the findClosestZone method does it inside out: for all zones get center point if center point is within search radius, mark as current closest [3/11/2011 6:37:35 PM] Chris Eykamp: sounds buggy [3/11/2011 6:49:38 PM] buckyballreaction: does a Rect defined by two points have to have the points at specific vertices? [3/11/2011 6:49:43 PM] buckyballreaction: like lower right and upper left? [3/11/2011 6:50:25 PM] buckyballreaction: ohw ait [3/11/2011 6:50:29 PM] buckyballreaction: no it doesn't [3/11/2011 6:50:43 PM] buckyballreaction: it determines this and does it for me [3/11/2011 7:20:35 PM] buckyballreaction: it works! [3/11/2011 7:20:40 PM] buckyballreaction: but i don't know how much faster yet [3/11/2011 7:21:24 PM] buckyballreaction: ok gotta go [3/11/2011 7:25:04 PM] Chris Eykamp: bye [3/11/2011 7:25:27 PM] Chris Eykamp: hey sam -- I had a great idea for your new image loader [3/11/2011 7:26:10 PM] Chris Eykamp: we do all this junk to get the joystick buttons to look right -- those would be much better as images; we could simply pack them into a folder, and load the appropriate image instead of trying to do all these vector renderings [3/11/2011 7:26:19 PM] Chris Eykamp: I think that would clean up our code a lot [3/11/2011 7:26:20 PM] Chris Eykamp: and probably look better [3/11/2011 7:27:06 PM] Chris Eykamp: especially as things like required size can be determined by looking at the graphic [3/11/2011 9:35:13 PM] buckyballreaction: is there a way to get microseconds instead of milliseconds? [3/11/2011 9:36:26 PM] Chris Eykamp: high resolution timer? Otherwise, I'm not sure [3/11/2011 9:36:33 PM] Chris Eykamp: search for that [3/11/2011 9:43:45 PM] buckyballreaction: bah - that is just a wrapper for milliseconds [3/11/2011 9:43:49 PM] buckyballreaction: i'm gonna change it [3/11/2011 9:51:25 PM] buckyballreaction: how do i use the other gridDB for the zones? [3/11/2011 11:49:38 PM] buckyballreaction: good evening [3/12/2011 12:04:36 AM] buckyballreaction: so i've been studying the grid database [3/12/2011 12:06:08 AM] buckyballreaction: it's kinda neat - it divides up the map into 256 smaller chunks grabs all the objects of a specific type within the chunk that the specified is found [3/12/2011 12:06:32 AM] buckyballreaction: constant time performance to go to a chunk (bucket) [3/12/2011 12:08:03 AM] buckyballreaction: so my questions: you said you keep the botzones separate from the gridDB [3/12/2011 12:08:11 AM] buckyballreaction: so did they used to be part of it at one time? [3/12/2011 12:08:53 AM] buckyballreaction: and, is the zoneDB as complex as the gridDB? [3/12/2011 12:09:02 AM] buckyballreaction: so that i can perform lookups against in the same manner? [3/12/2011 12:20:06 AM] Chris Eykamp: the botzones were part of the samd deb, but sam suggested separating them might boost performance, and I think he was right (especially with his square zones, which can add up quickly) [3/12/2011 12:20:39 AM] Chris Eykamp: the zoneDB is just another instantiation of the gridDB, so it works exactly the same. [3/12/2011 12:21:05 AM] buckyballreaction: i haven't found where in the code it is built [3/12/2011 12:21:16 AM] buckyballreaction: been searching... [3/12/2011 12:21:30 AM] buckyballreaction: i see gBotNavMeshZones [3/12/2011 12:21:48 AM] Chris Eykamp: I'm not sure what it's called, but it should be referenced where the bot zones are added to the game... [3/12/2011 12:23:16 AM] Chris Eykamp: BotNavMeshZone::addToGame() [3/12/2011 12:23:20 AM] Chris Eykamp: line 148 [3/12/2011 12:23:23 AM] Chris Eykamp: addToDatabase() [3/12/2011 12:24:18 AM] buckyballreaction: that calls a mehtod in gridDB? [3/12/2011 12:24:50 AM] Chris Eykamp: yes [3/12/2011 12:25:16 AM] Chris Eykamp: but to which gridDb? [3/12/2011 12:26:47 AM] buckyballreaction: looking to see where they are instantiated... [3/12/2011 12:28:35 AM] buckyballreaction: still not seeing how they are separated... [3/12/2011 12:28:48 AM] buckyballreaction: i'll have to lok a the hg logs, i think.. [3/12/2011 12:29:33 AM] buckyballreaction: ea0fcc1334a5 [3/12/2011 12:30:51 AM] buckyballreaction: noep not that rev [3/12/2011 12:34:55 AM] buckyballreaction: are we not adding the zones to the new DB with our new botzone methods? [3/12/2011 12:35:28 AM] buckyballreaction: finally found: mDatabaseForBotZones [3/12/2011 12:41:00 AM] Chris Eykamp: sounds like it [3/12/2011 12:41:06 AM] buckyballreaction: ah ha! [3/12/2011 12:41:08 AM] buckyballreaction: found it [3/12/2011 12:41:14 AM] buckyballreaction: ok [3/12/2011 12:41:34 AM] buckyballreaction: my new find nearest zone method takes 9 -26 microseconds [3/12/2011 12:42:16 AM] buckyballreaction: goign to compare with old... [3/12/2011 12:43:15 AM] Chris Eykamp: 9=new, 26=old? [3/12/2011 12:43:30 AM] buckyballreaction: testing the old now... [3/12/2011 12:45:57 AM] buckyballreaction: new: 9-26 mode 11-12 old: 127 - 642 mode 160-180 [3/12/2011 12:46:09 AM] buckyballreaction: mode as in the most common time [3/12/2011 12:46:14 AM] buckyballreaction: mean, median, mod [3/12/2011 12:46:17 AM] buckyballreaction: mode [3/12/2011 12:46:39 AM] Chris Eykamp: well, that's pretty good [3/12/2011 12:46:52 AM] Chris Eykamp: this is finding which zone an item that is in no zone is closest to? [3/12/2011 12:47:00 AM] buckyballreaction: yes [3/12/2011 12:47:06 AM] buckyballreaction: not too shabby.. [3/12/2011 12:47:18 AM] Chris Eykamp: no, not bad at all [3/12/2011 12:47:33 AM] Chris Eykamp: so where is your puff code [3/12/2011 12:47:42 AM] buckyballreaction: checked in [3/12/2011 12:47:47 AM] buckyballreaction: in barrier.cpp [3/12/2011 12:48:35 AM] buckyballreaction: right now the nearest zone finding algo will scale the search radius linearly by the the buffer radius [3/12/2011 12:48:56 AM] buckyballreaction: up until the max search radius (which is the diagonal of the map extents) [3/12/2011 12:49:03 AM] Chris Eykamp: should be buffer radius + 1 [3/12/2011 12:49:30 AM] buckyballreaction: do you think linear scaling would be ok? [3/12/2011 12:49:31 AM] Chris Eykamp: at least initially [3/12/2011 12:49:37 AM] Chris Eykamp: I would double [3/12/2011 12:49:39 AM] buckyballreaction: yes, it start out that way initially [3/12/2011 12:49:39 AM] Chris Eykamp: or someting [3/12/2011 12:49:49 AM] buckyballreaction: initial search radius is 2*buffer + 1 [3/12/2011 12:50:00 AM] buckyballreaction: then it goes up by buffer if nothing is found [3/12/2011 12:50:04 AM] Chris Eykamp: except for the case of getting out of a mze with a hole in the wall, the first pass will find it [3/12/2011 12:50:07 AM] buckyballreaction: it's a small increment [3/12/2011 12:50:27 AM] buckyballreaction: do you think i should scale up faster? [3/12/2011 12:50:31 AM] Chris Eykamp: yes [3/12/2011 12:50:50 AM] Chris Eykamp: we may be able to handle that exterior case differently, as there will always be los to at least one zone [3/12/2011 12:51:13 AM] Chris Eykamp: and that zone will be outside the boundaries of the exterior walls [3/12/2011 12:51:44 AM] Chris Eykamp: do you understand teh scenario I'm describing? [3/12/2011 12:51:53 AM] buckyballreaction: nope :) [3/12/2011 12:52:09 AM] buckyballreaction: define 'exterior case' [3/12/2011 12:52:17 AM] Chris Eykamp: a level that has an exit to let players get on the outside of all the walls [3/12/2011 12:52:27 AM] buckyballreaction: ahhh [3/12/2011 12:52:45 AM] buckyballreaction: outside the pre-computed extents, you mean? [3/12/2011 12:52:48 AM] Chris Eykamp: that's the only case I can see where a flag could be more than ship's width froma zone [3/12/2011 12:52:50 AM] Chris Eykamp: yes [3/12/2011 12:53:38 AM] Chris Eykamp: so we could solve that one by drawing a line from the flag to the center of the level, then checking the first zone that line intercepts [3/12/2011 12:54:18 AM] buckyballreaction: do we have a level like that? [3/12/2011 12:54:19 AM] Chris Eykamp: if that worked, we would just ahve two cases. The interior case, wherein the flag would be within 50px of a zone every time, and the exterior case, which can be solved via the line algo [3/12/2011 12:54:28 AM] Chris Eykamp: there's plenty of them [3/12/2011 12:54:31 AM] Chris Eykamp: easy to make [3/12/2011 12:55:06 AM] buckyballreaction: ah, so the interior case i wouldn't have to worry about doing larger search radii [3/12/2011 12:55:21 AM] Chris Eykamp: right, or you could just ramp up to full raduis just in case [3/12/2011 12:55:48 AM] buckyballreaction: full radius as in what i have already? (the extents of the map) [3/12/2011 12:55:58 AM] Chris Eykamp: yes [3/12/2011 12:56:04 AM] buckyballreaction: ok [3/12/2011 12:56:16 AM] Chris Eykamp: ok, not within 50, let's do exhaustive fall back search [3/12/2011 12:57:04 AM] buckyballreaction: please forgive me tonight - i am having a hard time mentally understanding anything but super-specifics [3/12/2011 12:57:29 AM] Chris Eykamp: ok, first search is for zones within 50 [3/12/2011 12:57:33 AM] buckyballreaction: ok [3/12/2011 12:57:41 AM] Chris Eykamp: second search will never happen [3/12/2011 12:57:56 AM] buckyballreaction: ah gotcha [3/12/2011 12:58:01 AM] Chris Eykamp: but if it does, just search the entire level, rather than inching it up 50 100 150 200 [3/12/2011 12:58:09 AM] Chris Eykamp: that's just a waste [3/12/2011 12:58:10 AM] buckyballreaction: ok [3/12/2011 12:58:31 AM] Chris Eykamp: assuming we can trap and handle the case of the flag being outside the walls [3/12/2011 12:58:53 AM] Chris Eykamp: checking for flag outside walls is easy [3/12/2011 12:59:04 AM] Chris Eykamp: we know bounds of the walls [3/12/2011 12:59:22 AM] buckyballreaction: you mena if a flag is brought outside the walls? [3/12/2011 12:59:29 AM] Chris Eykamp: yes, exactly [3/12/2011 12:59:30 AM] buckyballreaction: by and evil player [3/12/2011 12:59:34 AM] Chris Eykamp: yes [3/12/2011 12:59:53 AM] Chris Eykamp: zones will fill a rectangle around the level, right? [3/12/2011 1:00:35 AM] Chris Eykamp: so if flag is innside that rectabgle, it will be within 50 of a zone [3/12/2011 1:00:53 AM] buckyballreaction: yup [3/12/2011 1:00:55 AM] Chris Eykamp: if it's outside that rectabgle, we draw a line to the center and assign flag to the first zone we hit [3/12/2011 1:01:11 AM] buckyballreaction: and hope LOS takes care of the rest? [3/12/2011 1:01:12 AM] Chris Eykamp: since most of the exterior zones will have los to the flag [3/12/2011 1:01:19 AM] Chris Eykamp: yes [3/12/2011 1:01:26 AM] buckyballreaction: ok [3/12/2011 1:01:31 AM] Chris Eykamp: bot gets to the zone, sees the flag, and goes for it [3/12/2011 1:02:19 AM] Chris Eykamp: there can be no obstcles between that first zone and the flag [3/12/2011 1:02:39 AM] Chris Eykamp: because there are always zones outside the outer walls [3/12/2011 1:02:46 AM] Chris Eykamp: or at least as far as I've seen [3/12/2011 1:03:12 AM] buckyballreaction: ok [3/12/2011 1:03:17 AM] buckyballreaction: i'll work on that [3/12/2011 1:03:26 AM] buckyballreaction: can you think of an example level off the top of your head? [3/12/2011 1:04:06 AM] buckyballreaction: i'll just make one [3/12/2011 1:04:09 AM] buckyballreaction: nevermind [3/12/2011 1:04:17 AM] Chris Eykamp: make one [3/12/2011 1:05:17 AM] Chris Eykamp: what's your puff method? prepareRenderingGeom2 [3/12/2011 1:05:20 AM] Chris Eykamp: ? [3/12/2011 1:05:25 AM] buckyballreaction: nope [3/12/2011 1:05:44 AM] buckyballreaction: prepareBotZoneGeometry() [3/12/2011 1:05:58 AM] buckyballreaction: that Goem2 method is sam's [3/12/2011 1:06:01 AM] Chris Eykamp: we have a lot of clean up to do [3/12/2011 1:06:02 AM] buckyballreaction: new one [3/12/2011 1:06:20 AM] buckyballreaction: yep [3/12/2011 1:06:35 AM] buckyballreaction: too many method paths. [3/12/2011 1:07:28 AM] Chris Eykamp: hmmm... not finding that method [3/12/2011 1:07:42 AM] buckyballreaction: update to head? [3/12/2011 1:07:43 AM] Chris Eykamp: ah, I see why [3/12/2011 1:07:46 AM] Chris Eykamp: ye [3/12/2011 1:07:47 AM] Chris Eykamp: ss [3/12/2011 1:07:48 AM] buckyballreaction: in barrier.cpp [3/12/2011 1:07:49 AM] buckyballreaction: :) [3/12/2011 1:07:55 AM] Chris Eykamp: tired [3/12/2011 1:09:33 AM] Chris Eykamp: will your stuff run by default, or do I need to change something to get it included? [3/12/2011 1:09:43 AM] buckyballreaction: default [3/12/2011 1:09:48 AM] Chris Eykamp: ok, here goes [3/12/2011 1:21:00 AM] buckyballreaction: one problem with the buffers is that it can get rid of outside level zones.. [3/12/2011 1:22:02 AM] Chris Eykamp: we can expand our outer bounding box by 100 and fix that [3/12/2011 1:22:06 AM] Chris Eykamp: at no cost [3/12/2011 1:23:30 AM] Chris Eykamp: just to check: prepareRenderingGeometry and prepareBotZoneGeometry do the same thing, right? [3/12/2011 1:23:39 AM] Chris Eykamp: just to different datasets [3/12/2011 1:23:50 AM] buckyballreaction: yes [3/12/2011 1:24:08 AM] buckyballreaction: i do a little more vector trickery to buffery zones perpendicularly [3/12/2011 1:24:22 AM] buckyballreaction: but I/O is the same [3/12/2011 1:24:38 AM] Chris Eykamp: I don't see that trickery [3/12/2011 1:25:02 AM] Chris Eykamp: I see two methods that look exactly the same [3/12/2011 1:25:09 AM] Chris Eykamp: just operating on different lists [3/12/2011 1:25:45 AM] buckyballreaction: yes, but the creation of the list is a little different: see bufferBarrierForBotZone() [3/12/2011 1:25:55 AM] buckyballreaction: it still outputs 4 poitns [3/12/2011 1:25:56 AM] buckyballreaction: points [3/12/2011 1:26:12 AM] Chris Eykamp: ok, but the methods themselves can be combined [3/12/2011 1:26:28 AM] buckyballreaction: not really... [3/12/2011 1:26:31 AM] buckyballreaction: well [3/12/2011 1:26:38 AM] buckyballreaction: if you want to add a boolean in the parameters [3/12/2011 1:26:46 AM] buckyballreaction: oh wait [3/12/2011 1:26:58 AM] buckyballreaction: the edge geometry methods can be, yes [3/12/2011 1:27:11 AM] Chris Eykamp: just trying to reduce codepaths [3/12/2011 1:27:14 AM] buckyballreaction: but not the methods that first create the list of 4 points that go into it [3/12/2011 1:27:19 AM] Chris Eykamp: to make it easier for me to understand [3/12/2011 1:27:24 AM] buckyballreaction: that's fine [3/12/2011 1:27:27 AM] Chris Eykamp: yes, I imagine you're right [3/12/2011 1:27:31 AM] Chris Eykamp: haven't looked yet [3/12/2011 1:27:35 AM] buckyballreaction: i actually had done that in my first iteration [3/12/2011 1:27:40 AM] buckyballreaction: combined them [3/12/2011 1:28:06 AM] buckyballreaction: but i chose to err on the side of safety and keep the old [3/12/2011 1:28:18 AM] Chris Eykamp: prepareRenderingGeometry2 is sam's [3/12/2011 1:28:21 AM] Chris Eykamp: ? [3/12/2011 1:28:22 AM] buckyballreaction: yes [3/12/2011 1:28:25 AM] buckyballreaction: his new one [3/12/2011 1:28:41 AM] buckyballreaction: he had originally replaced the old one completely [3/12/2011 1:28:49 AM] buckyballreaction: but i decided to keep them both again... [3/12/2011 1:30:12 AM] buckyballreaction: this is why i think there should still be an incremented search radius for at least a few times: http://96.2.123.136/upload/1111snapshot8.png [3/12/2011 1:30:25 AM] buckyballreaction: a flag dropped in a zone like that will fail the first search [3/12/2011 1:30:58 AM] buckyballreaction: because LOS zones are still 4-5 buffers away [3/12/2011 1:31:14 AM] Chris Eykamp: but there should be a zone there [3/12/2011 1:31:18 AM] buckyballreaction: note that this is with larger buffers [3/12/2011 1:31:22 AM] buckyballreaction: for testing [3/12/2011 1:31:25 AM] Chris Eykamp: I see [3/12/2011 1:31:25 AM] buckyballreaction: yes [3/12/2011 1:31:28 AM] Chris Eykamp: yes, maybe you're right [3/12/2011 1:31:50 AM] Chris Eykamp: ummm [3/12/2011 1:31:51 AM] buckyballreaction: so technically, there should be a zone there [3/12/2011 1:32:11 AM] Chris Eykamp: but imagine a corridor like that shaped like a [ [3/12/2011 1:32:15 AM] buckyballreaction: yes [3/12/2011 1:32:24 AM] Chris Eykamp: if flag gets stuck in that vertical area, it will not have los to any zone [3/12/2011 1:32:32 AM] Chris Eykamp: of course, it will also be unretrievable [3/12/2011 1:32:51 AM] Chris Eykamp: actually, in your case, flag would be unretrievable too [3/12/2011 1:32:58 AM] Chris Eykamp: essentially lost [3/12/2011 1:33:01 AM] buckyballreaction: yep [3/12/2011 1:33:13 AM] Chris Eykamp: so who cares which zone it's in? [3/12/2011 1:33:25 AM] buckyballreaction: so if we guarantee that zones are built aroudn ship radius, then we don't really have a problem [3/12/2011 1:33:39 AM] buckyballreaction: because zones will be created wherever a ship can go [3/12/2011 1:33:50 AM] Chris Eykamp: well, they have to be build around that radius [3/12/2011 1:34:13 AM] Chris Eykamp: if we have big bots, zones will have to be built aroudn that bigger radius [3/12/2011 1:34:22 AM] buckyballreaction: ok [3/12/2011 1:34:26 AM] buckyballreaction: then ignore this case [3/12/2011 1:34:31 AM] Chris Eykamp: I think so [3/12/2011 1:34:37 AM] Chris Eykamp: mark the flag as lost somehow [3/12/2011 1:35:01 AM] Chris Eykamp: why didn't 47 and 556 combine? [3/12/2011 1:35:45 AM] buckyballreaction: not sure - i think it has something to do with triangle building triangles for each hole before taking into account the overlap [3/12/2011 1:35:59 AM] buckyballreaction: the overlap of the hole, i mean [3/12/2011 1:36:17 AM] buckyballreaction: i see it everywhere, and i think it's related to why the zones are created in the intersection of holes [3/12/2011 1:45:00 AM] buckyballreaction: it's like the triangles are created, then the holes are cut out [3/12/2011 1:45:07 AM] buckyballreaction: instead of the other way around.. [3/12/2011 1:46:32 AM] Chris Eykamp: well, that's what happens [3/12/2011 1:48:49 AM] buckyballreaction: so the findNearestZone algo now takes 3-5 microseconds for the first search [3/12/2011 1:49:05 AM] buckyballreaction: and about 6800 for the exhaustive search [3/12/2011 1:49:18 AM] Chris Eykamp: 6.8ms? [3/12/2011 1:49:21 AM] buckyballreaction: yep [3/12/2011 1:49:22 AM] buckyballreaction: which is slower than the original exhaustive search [3/12/2011 1:49:29 AM] Chris Eykamp: well, that's on your machine [3/12/2011 1:49:35 AM] Chris Eykamp: but good [3/12/2011 1:49:50 AM] buckyballreaction: so i'll just use the older search for the exhaustive one (i.e. iterate over the zones) [3/12/2011 1:50:05 AM] Chris Eykamp: ok, but now I ask do we need that at all? [3/12/2011 1:50:22 AM] Chris Eykamp: since we concluded flags not found on first search were unreachable [3/12/2011 1:50:29 AM] Chris Eykamp: maybe we can just stop there [3/12/2011 1:50:36 AM] buckyballreaction: so instead of: 1. quick search 2. exhaustive search 3. outside extents search [3/12/2011 1:50:39 AM] buckyballreaction: we just do 1 and 3? [3/12/2011 1:50:45 AM] Chris Eykamp: 1 or 3 [3/12/2011 1:50:59 AM] buckyballreaction: yes, if 1 fails, then 3 [3/12/2011 1:51:17 AM] Chris Eykamp: no -- check if flag is inside or outside bounds, then do 1 or 3 [3/12/2011 1:51:24 AM] buckyballreaction: ahhh [3/12/2011 1:51:25 AM] buckyballreaction: okey doke [3/12/2011 1:51:32 AM] Chris Eykamp: does it make sense to omit 2? [3/12/2011 1:51:55 AM] buckyballreaction: i am trying to think of a case where we'd need it - but we shouldn't if we always generate zones [3/12/2011 1:52:05 AM] Chris Eykamp: I think we will [3/12/2011 1:52:15 AM] buckyballreaction: you think we'll need 2? [3/12/2011 1:52:24 AM] Chris Eykamp: I can't think of why [3/12/2011 1:52:33 AM] Chris Eykamp: 2 is only for unreachable flags... I think [3/12/2011 1:53:25 AM] buckyballreaction: whcih would be a flag beyond a newly constructed destructible barrier outside the extents? [3/12/2011 1:53:34 AM] buckyballreaction: :) [3/12/2011 1:53:53 AM] Chris Eykamp: I don't even understand that question! [3/12/2011 1:54:09 AM] buckyballreaction: i was trying to figure out a case where a flag would be unreachable [3/12/2011 1:54:28 AM] buckyballreaction: i.e. behind a barrier outsid the extents [3/12/2011 1:54:32 AM] Chris Eykamp: it would be unreachable if someone launched it down a narrow corridor [3/12/2011 1:54:37 AM] buckyballreaction: which in unpossible [3/12/2011 1:54:42 AM] Chris Eykamp: yes [3/12/2011 1:55:03 AM] buckyballreaction: i didn't know you could launch the flags [3/12/2011 1:56:02 AM] Chris Eykamp: I think you can; drop them when you are moving [3/12/2011 1:56:12 AM] Chris Eykamp: at least in hunters [3/12/2011 1:56:17 AM] buckyballreaction: ahh [3/12/2011 1:56:17 AM] buckyballreaction: yes [3/12/2011 1:56:38 AM] buckyballreaction: so that is a case that's never been handled before: how to get an unreachable flag [3/12/2011 1:56:48 AM] buckyballreaction: should it be ignored? [3/12/2011 1:58:03 AM] buckyballreaction: if so, we don't need exhaustive search [3/12/2011 1:58:38 AM] Chris Eykamp: ok, your puff code seems to work fine [3/12/2011 1:58:48 AM] buckyballreaction: so i'm not crazy? [3/12/2011 1:59:19 AM] Chris Eykamp: add this to line 127 of barrier.cpp [3/12/2011 1:59:19 AM] Chris Eykamp: bufferBarrierForBotZone(mPoints[0], mPoints[1], mWidth, mRenderFillGeometry); // Fills with 4 points [3/12/2011 1:59:26 AM] Chris Eykamp: and you can see exactly what it does [3/12/2011 1:59:49 AM] Chris Eykamp: looks fine; so the problem is passing that geom to the zone renerer [3/12/2011 2:01:01 AM] buckyballreaction: wow, weird [3/12/2011 2:01:16 AM] buckyballreaction: i can fly over parts of some of the thicker walls [3/12/2011 2:01:53 AM] Chris Eykamp: collisions still work with original wall geom? [3/12/2011 2:02:06 AM] buckyballreaction: yup [3/12/2011 2:03:09 AM] buckyballreaction: iactually [3/12/2011 2:03:13 AM] buckyballreaction: it seems random [3/12/2011 2:03:30 AM] buckyballreaction: i collide with some parts of the walls but not others [3/12/2011 2:06:03 AM] Chris Eykamp: is mBotZoneBufferLineSegments ever used? [3/12/2011 2:06:08 AM] buckyballreaction: yes [3/12/2011 2:06:19 AM] buckyballreaction: in the makeBotZones3() [3/12/2011 2:06:24 AM] buckyballreaction: in BotNavMeshZone [3/12/2011 2:06:34 AM] Chris Eykamp: makebotzones3?? [3/12/2011 2:06:53 AM] Chris Eykamp: don't have that [3/12/2011 2:06:55 AM] buckyballreaction: 1 is the orgininal, 2 is sam's, 3 is with Triangle and recast [3/12/2011 2:07:19 AM] buckyballreaction: makeBotMeshZones3 [3/12/2011 2:07:43 AM] Chris Eykamp: when I do a global search for mBotZoneBufferLineSegments, I find only two refs [3/12/2011 2:07:49 AM] Chris Eykamp: one is the def, the other is where it gets filled [3/12/2011 2:08:04 AM] Chris Eykamp: and I don't see makeBotMeshZones3 [3/12/2011 2:08:08 AM] buckyballreaction: BotNavMeshZone 966 [3/12/2011 2:09:13 AM] Chris Eykamp: ok, found makeBotMeshZones3 [3/12/2011 2:09:33 AM] Chris Eykamp: but... mBotZoneBufferLineSegments isn't there [3/12/2011 2:09:42 AM] buckyballreaction: line 966? [3/12/2011 2:10:08 AM] Chris Eykamp: for me, 966 is a blank line [3/12/2011 2:10:16 AM] Chris Eykamp: I think our lines are out of sync [3/12/2011 2:10:23 AM] buckyballreaction: look at the diff here: http://code.google.com/p/bitfighter/source/detail?r=d214164f07a7745d4193f3e1c1ab801ab04e0633 [3/12/2011 2:10:28 AM] buckyballreaction: latest revision in trunk [3/12/2011 2:10:53 AM] Chris Eykamp: for(S32 j = 0; j < barrier->mRenderLineSegments.size(); j+=2) ? [3/12/2011 2:11:08 AM] buckyballreaction: yes [3/12/2011 2:11:17 AM] buckyballreaction: my latest push changed that to mBotZoneBufferLineSegments, [3/12/2011 2:11:28 AM] Chris Eykamp: hmmm [3/12/2011 2:11:47 AM] buckyballreaction: i pushed about noon today... [3/12/2011 2:11:56 AM] Chris Eykamp: I just updated [3/12/2011 2:11:59 AM] buckyballreaction: er, i guess 3pm [3/12/2011 2:12:01 AM] Chris Eykamp: let me try again [3/12/2011 2:12:08 AM] buckyballreaction: refresh! [3/12/2011 2:14:36 AM] Chris Eykamp: I have d214164f07a7745d4193f3e1c1ab801ab04e0633 [3/12/2011 2:14:48 AM] buckyballreaction: do we have a method somewhere for detecting if a secment or vector intersects a zone? [3/12/2011 2:14:58 AM] buckyballreaction: yep, that's the one [3/12/2011 2:15:13 AM] Chris Eykamp: probably [3/12/2011 2:15:13 AM] buckyballreaction: make you'r enot updated to head [3/12/2011 2:15:15 AM] buckyballreaction: ? [3/12/2011 2:15:19 AM] buckyballreaction: justt pulled with no update [3/12/2011 2:15:30 AM] Chris Eykamp: look through sweptEllipse [3/12/2011 2:15:33 AM] buckyballreaction: ok [3/12/2011 2:15:36 AM] Chris Eykamp: there's lots of geom methods there [3/12/2011 2:16:09 AM] Chris Eykamp: nope, got it all [3/12/2011 2:16:21 AM] buckyballreaction: umm... refresh the file in your IDE? [3/12/2011 2:16:25 AM] buckyballreaction: revert the file? [3/12/2011 2:16:40 AM] buckyballreaction: i bet if you do 'hg diff' you'll see changes... [3/12/2011 2:17:53 AM] Chris Eykamp: C:\Users\Chris\Documents\bf-trunk>hg diff C:\Users\Chris\Documents\bf-trunk> [3/12/2011 2:18:06 AM] buckyballreaction: so weird [3/12/2011 2:18:13 AM] buckyballreaction: you can see that i changed in google code, right? [3/12/2011 2:34:27 AM] buckyballreaction: still awake? [3/12/2011 2:43:35 AM] buckyballreaction: well, i'm off to bed [3/12/2011 2:43:39 AM] buckyballreaction: braindead [3/12/2011 2:43:44 AM] buckyballreaction: night [3/12/2011 11:23:40 AM] Chris Eykamp: no, I fell asleep [3/12/2011 12:33:26 PM] buckyballreaction: ok, now i'm awake [3/12/2011 12:52:21 PM] buckyballreaction: tell me if you think this logic is ok for the case where a flag or taget is outside extents: 1. draw a segment from a point to the center of extents 2. test if the segment from 1 intersects each of the extent edges 3. if it intersects, do a quick search for a zone in a small radius around the intersection point [3/12/2011 4:00:20 PM] Chris Eykamp: I think it's even easier [3/12/2011 4:00:36 PM] Chris Eykamp: there's a method for returning the first item encountered along a ray [3/12/2011 4:00:50 PM] Chris Eykamp: run that on the ray from the flag to the center of the level, using the zone database. [3/12/2011 4:00:58 PM] Chris Eykamp: I think that whatever it finds will work [3/12/2011 4:01:25 PM] Chris Eykamp: GridDatabase::findObjectLOS() [3/12/2011 4:01:44 PM] Chris Eykamp: that should do the trick! [3/12/2011 4:05:55 PM] karamazovapy: can anyone tell me how to create an arbitrary point in bot code? when I try to just type in coordinates, it gets mad at me for creating a table/vector/string instead of a point. maybe I just don't have the right format? I tried printing a couple points to the log and using them discretely in the bot code, but to no avail [3/12/2011 4:07:27 PM] Chris Eykamp: what have you tried? [3/12/2011 4:08:33 PM] karamazovapy: I haven't done anything today, so I don't remember all the combinations I tried...but I got coordinates from printing a valid destination to the log and tried storing them to a variable [3/12/2011 4:10:13 PM] Chris Eykamp: Point(x, y) - Create a new Point object with coordinates x, y. [3/12/2011 4:10:24 PM] Chris Eykamp: just looking at the docs -- not many good examples [3/12/2011 4:10:36 PM] Chris Eykamp: I don't know the answer for sure [3/12/2011 4:10:56 PM] Chris Eykamp: oh, here we go [3/12/2011 4:10:57 PM] Chris Eykamp: local point = Point(0, 0) -- Create a new point [3/12/2011 4:11:15 PM] karamazovapy: where did you find that? [3/12/2011 4:11:15 PM] Chris Eykamp: Look at the point section of the bots docs [3/12/2011 4:11:32 PM] Chris Eykamp: item 16 in the toc [3/12/2011 4:11:37 PM] Chris Eykamp: http://bitfighter.org/wiki/index.php?title=Programming_robots [3/12/2011 4:11:44 PM] Chris Eykamp: didn't even know it was there! [3/12/2011 4:12:28 PM] karamazovapy: I think I tried this stuff, but I must've done it wrong [3/12/2011 4:13:06 PM] Chris Eykamp: well, it's somewhat changed, but I have no recollection of how [3/12/2011 4:13:21 PM] Chris Eykamp: or maybe it needs to change, to use a vector underneath [3/12/2011 4:13:29 PM] Chris Eykamp: it's on my long slow burn to do list [3/12/2011 4:15:56 PM] karamazovapy: ***ROBOT ERROR*** in robots/pointer.bot ::: Robot error running _onTick(): Robot:getWaypoint() expected vector arg at position 1. Shutting robot down. [3/12/2011 4:16:44 PM] Chris Eykamp: ah, ok, so you want to create a vector, not a point [3/12/2011 4:16:45 PM] karamazovapy: I thought getWaypoint wanted a point, not a vector [3/12/2011 4:17:04 PM] Chris Eykamp: yeah, well, you could be forgiven for thinking that [3/12/2011 4:17:11 PM] karamazovapy: the documentation says Point getWaypoint(Point) [3/12/2011 4:17:13 PM] Chris Eykamp: vector is a new, super lightweight point [3/12/2011 4:17:45 PM] Chris Eykamp: so try local point = vec(0,0) [3/12/2011 4:17:49 PM] Chris Eykamp: or vector or Vec or Vector [3/12/2011 4:18:13 PM] Chris Eykamp: and thanks for bringing this to my attention [3/12/2011 4:19:22 PM] Chris Eykamp: I've got to run, but if any of those work, please make a note at the top of the wiki page so I can figure out how make the docs right [3/12/2011 4:19:29 PM] karamazovapy: sure [3/12/2011 4:19:35 PM] Chris Eykamp: I'll be here for a min or two if you have any quick issues [3/12/2011 4:19:43 PM] karamazovapy: the vec options aren't working out so far... [3/12/2011 4:20:46 PM] karamazovapy: ***ROBOT ERROR*** in robots/pointer.bot ::: Robot error during initialization: robots/pointer.bot:36: attempt to call global 'vec' (a table value). Shutting robot down. [3/12/2011 4:21:43 PM] Chris Eykamp: ok, I'll be on later, and we'll get this figured out [3/12/2011 4:21:49 PM] Chris Eykamp: sorry I don;t have a ready answer [3/12/2011 4:21:54 PM] karamazovapy: no worries, I was just playing around [3/12/2011 4:22:24 PM] Chris Eykamp: my only other immediate solution might be to look at s_bot to see if there aer any leads in there... of course, that's probably the platform your working on [3/12/2011 4:22:51 PM] karamazovapy: well it can get a point indirectly by finding an object [3/12/2011 4:23:06 PM] karamazovapy: I haven't had any luck in reverse engineering the process [3/12/2011 4:23:39 PM] karamazovapy: s_bot works entirely by finding objects and then paths to them [3/12/2011 4:23:47 PM] Chris Eykamp: for the moment, do that, then change the coords! [3/12/2011 4:23:52 PM] Chris Eykamp: hacky... [3/12/2011 4:24:15 PM] karamazovapy: ...but I don't know the format! when I print to the log, I get values that don't work [3/12/2011 4:25:02 PM] Chris Eykamp: sam to the rescue! [3/12/2011 4:25:04 PM] Chris Eykamp: over and out [3/12/2011 4:25:08 PM] karamazovapy: I know, right? [3/12/2011 4:25:08 PM] Samuel Williams: My old Bot zone level generator in LUA uses Point(x,y) [3/12/2011 4:25:10 PM] karamazovapy: thanks [3/12/2011 4:25:19 PM] Chris Eykamp: please post anything you learn at the top of the wiki for me to fix [3/12/2011 4:25:42 PM] karamazovapy: then maybe I'll go back and see if I can work from that [3/12/2011 4:26:08 PM] karamazovapy: maybe this is a problem with how getWaypoint interacts and not Point(x, y) [3/12/2011 4:27:10 PM] Samuel Williams: getWaypoint could sometimes return nil when unable to find path. [3/12/2011 4:27:37 PM] karamazovapy: yeah, but I don't think I'm even getting that far [3/12/2011 4:30:02 PM] karamazovapy: I started with the gotoPosition() function and am trying to substitute points defined in the bot code for ones discovered dynamically in game [3/12/2011 4:34:40 PM] Samuel Williams: Maybe this is how to get a numbe from a Point. a = Point(2,4) x = a.x() [3/12/2011 4:36:52 PM] karamazovapy: what I really want to do is - bot:getWaypoint(whateverpointIwantgoeshere) [3/12/2011 4:37:16 PM] karamazovapy: but I've tried using Point(x, y) and vec(x, y) and neither one works [3/12/2011 4:38:35 PM] karamazovapy: when I put in a point, it says "expected vector arg at position 1." when I use a vector, it says "attempt to call global 'vec' (a table value)." [3/12/2011 4:39:00 PM] Zoomber: fad sad dad fads daf saf fas [3/12/2011 4:39:13 PM] Samuel Williams: maybe the problem is one of the calller calling gotoPosition(pt) is sending a argumants other then Point(0,0) [3/12/2011 4:39:43 PM] karamazovapy: that could be...I thought I was doing it correctly, but maybe not [3/12/2011 4:41:00 PM] karamazovapy: but bot:getWaypoint(Point(4, 4)) and bot:getWaypoint(vec(4, 4)) fail the same way [3/12/2011 4:45:45 PM] karamazovapy: I must be declaring vectors incorrectly for it to think I'm using a table value instead [3/12/2011 4:48:12 PM] Samuel Williams: [Saturday, March 12, 2011 4:20 PM] karamazovapy: <<< ***ROBOT ERROR*** in robots/pointer.bot ::: Robot error during initialization: robots/pointer.bot:36: attempt to call global 'vec' (a table value). Shutting robot down.I won't know what exactly what the error is until i can see the code. it says an error on line 36 in a bot file I don't have... [3/12/2011 4:49:33 PM] Samuel Williams: bot:getWaypoint(Point(3,3)) should not fail, did you forget to save the edited bot file? [3/12/2011 4:50:06 PM] karamazovapy: I'll try it again... [3/12/2011 4:55:29 PM] karamazovapy: I'm still getting ***ROBOT ERROR*** in robots/pointer.bot ::: Robot error running _onTick(): Robot:getWaypoint() expected vector arg at position 1. Shutting robot down. with bot:getWaypoint(Point(4, 4)) [3/12/2011 5:16:10 PM] buckyballreaction: what is the 'stateIndex' when using findObjectLOS? [3/12/2011 5:20:18 PM] Samuel Williams: stateIndex can be MoveObject::ActualState or MoveObject::RenderState [3/12/2011 5:20:34 PM] buckyballreaction: what do those mean? [3/12/2011 5:20:42 PM] Samuel Williams: probably the RenderState is it [3/12/2011 5:21:00 PM] Samuel Williams: 's own predicting system of all ship loactions [3/12/2011 5:30:51 PM] Samuel Williams: ok, as for robot getWaypoint, it needs to be this: local Pt2 = vec.new(0,0) goalPt=bot:getWaypoint(Pt2) I found differences between levelgen and robot, as my levelgen uses Point() [3/12/2011 5:31:10 PM] buckyballreaction: it works! [3/12/2011 5:31:35 PM] buckyballreaction: i am checking in a much faster findClosestZone() method [3/12/2011 5:31:42 PM] Samuel Williams: ok.. [3/12/2011 5:38:22 PM] buckyballreaction: pushed, i'll back tonight [3/12/2011 5:38:42 PM] karamazovapy: ahh [3/12/2011 5:38:47 PM] karamazovapy: awesome - thanks! [3/12/2011 9:13:47 PM] Chris Eykamp: renderstate is where ship is drawn, actualstate is where it actually is [3/12/2011 9:14:13 PM] Chris Eykamp: they can differ if things get out of sync, and the game will attempt to move the render state to the actual state as subtly as possib;e [3/12/2011 9:15:01 PM] Chris Eykamp: sometimes when you are on a laggy connection, you might be racing across the screen, then when you stop it looks like your ship moves backwards a bit. that's the game trying to get your ship to be where the server says it is [3/12/2011 9:15:25 PM] Chris Eykamp: or, rather other people will appear to do that [3/12/2011 9:46:35 PM] karamazovapy: well with sam's corrected point/vector format, an arbitrary list of waypoints is possible [3/12/2011 10:29:29 PM] buckyballreaction: is GPLv2 incompatible with the mac app-store, too? [3/12/2011 11:09:42 PM] Chris Eykamp: @bbr -- I know what the problem with your puffed zones is [3/12/2011 11:09:53 PM] Chris Eykamp: just not sure how to fix it; but it is fixable [3/12/2011 11:09:57 PM] buckyballreaction: wow watusimoto: i connected to your 'test service' and half the time it was saying i had connectino problems... [3/12/2011 11:10:18 PM] buckyballreaction: really? [3/12/2011 11:10:23 PM] buckyballreaction: what is the problem? [3/12/2011 11:10:30 PM] buckyballreaction: (did i introduce it?) [3/12/2011 11:12:57 PM] Chris Eykamp: I have a bad connection currently [3/12/2011 11:13:10 PM] buckyballreaction: oh ok [3/12/2011 11:13:11 PM] Chris Eykamp: the problem is you never removed the interior segments of the puffed walls [3/12/2011 11:13:34 PM] Chris Eykamp: which I think you knew intutively based on the overlap problems [3/12/2011 11:14:03 PM] buckyballreaction: i don't understand... I thought that the only thing I pass was the exterior geometry [3/12/2011 11:14:07 PM] Chris Eykamp: I need to review the steps the other walls go through and make sure we apply those steps to the puffed walls [3/12/2011 11:14:12 PM] Chris Eykamp: perhpas this will help [3/12/2011 11:14:41 PM] buckyballreaction: yeah, i figured i am missing something because of the overlap problems [3/12/2011 11:14:52 PM] *** Chris Eykamp sent screenshot_0.bmp *** [3/12/2011 11:15:00 PM] Chris Eykamp: proof positive [3/12/2011 11:15:22 PM] buckyballreaction: (i am linux-impaired and cannot receive images... [3/12/2011 11:16:23 PM] buckyballreaction: us sam's service?: http://96.2.123.136/upload3.php [3/12/2011 11:17:08 PM] Samuel Williams: http://96.2.123.136/upload/screenshot_10.gif [3/12/2011 11:17:32 PM] buckyballreaction: interesting [3/12/2011 11:17:48 PM] buckyballreaction: thanks sam [3/12/2011 11:18:20 PM] Samuel Williams: to speed up upload/download and reduce filesize, it is good idea to use GIF or PNG or JPG. (BMP is big filesize at 24 bits per pixel) [3/12/2011 11:18:30 PM] buckyballreaction: png! [3/12/2011 11:18:35 PM] Chris Eykamp: just got it to upload! [3/12/2011 11:20:01 PM | Edited 11:20:07 PM] Samuel Williams: windows skype vs linux skype can not share files or pictures to each other (but it can share links to website) [3/12/2011 11:20:49 PM] buckyballreaction: so how on earth done triangle find out about the interior segments if all I pass is the buffers? [3/12/2011 11:21:03 PM] buckyballreaction: done=does [3/12/2011 11:24:10 PM] Chris Eykamp: you are passing the interior segments; I'm rendering what you're passing [3/12/2011 11:27:12 PM] buckyballreaction: what [3/12/2011 11:30:55 PM] buckyballreaction: oh my goodness i see more than 8 points going in for each barrier [3/12/2011 11:31:08 PM] buckyballreaction: i was sure i made sure of that.... [3/12/2011 11:36:34 PM | Edited 11:37:21 PM] Samuel Williams: maybe it is using buffered barrier and checking against other un-buffered barriers, that what it looks like. [3/12/2011 11:38:26 PM] buckyballreaction: yep [3/12/2011 11:38:30 PM] buckyballreaction: in prepareBotZoneGeometry() [3/12/2011 11:47:39 PM] Samuel Williams: I got polygon barriers mostly working in editor The only problem is unable to attach forcefield and turret to one of the polygon wall side (between the last point and first point of polygon wall). http://96.2.123.136/bitfighter/zap_d-20110312-2243571.png [3/12/2011 11:48:13 PM] buckyballreaction: oh... that is what a BarrierMakerS is? [3/12/2011 11:48:34 PM | Edited 11:49:21 PM] Samuel Williams: One problem with slip zone is the text display of "Caution - Slippery" is too big (in editor) http://96.2.123.136/bitfighter/zap_d-20110312-2245322.png [3/12/2011 11:49:41 PM] buckyballreaction: haha [3/12/2011 11:49:43 PM] buckyballreaction: awesome [3/13/2011 12:00:21 AM] buckyballreaction: i think i got it working... [3/13/2011 12:05:50 AM] buckyballreaction: it works [3/13/2011 12:05:59 AM] buckyballreaction: except i think i founda bug [3/13/2011 12:06:53 AM] buckyballreaction: if barriers are not the default size, buffer overlap seems to occur again [3/13/2011 12:08:45 AM] buckyballreaction: more specific - if barriers are smaller than the default size, overlap occurs [3/13/2011 12:08:47 AM] buckyballreaction: default size is 50 [3/13/2011 12:09:44 AM] buckyballreaction: i wonder if it has to do with this: http://code.google.com/p/bitfighter/issues/detail?id=68 [3/13/2011 12:09:49 AM] Samuel Williams: what if it is too big? it eats some edges? [3/13/2011 12:09:53 AM] buckyballreaction: nope [3/13/2011 12:10:03 AM] buckyballreaction: let me upload a couple graphics... [3/13/2011 12:11:02 AM] Chris Eykamp: I don't think that bug is your problem [3/13/2011 12:11:08 AM] Chris Eykamp: I think that one is very editor specific [3/13/2011 12:12:21 AM] buckyballreaction: http://96.2.123.136/upload/1snapshot9.png [3/13/2011 12:12:35 AM] buckyballreaction: zone 12 should not have been created [3/13/2011 12:12:39 AM] buckyballreaction: it is only 45 wide [3/13/2011 12:13:04 AM] buckyballreaction: zone 9 is 50 wide [3/13/2011 12:13:26 AM] buckyballreaction: secondbarrier form the top is 40 width [3/13/2011 12:13:28 AM] buckyballreaction: all others are 50 [3/13/2011 12:16:56 AM] buckyballreaction: i scale the buffer dynamically based on segment width [3/13/2011 12:17:23 AM] buckyballreaction: and the top line of zone 12 is buffer edge of the segment below it [3/13/2011 12:23:27 AM] buckyballreaction: http://96.2.123.136/upload/1snapshot10.png [3/13/2011 12:23:32 AM] buckyballreaction: larger segments work ok [3/13/2011 12:24:33 AM] buckyballreaction: in that last picture the first two segments are 45 apart, and no zone creation, but the 3rd and 4th are 45 apart and there is zone creation [3/13/2011 12:37:48 AM] Samuel Williams: http://96.2.123.136/bitfighter/110312.GIF There may be areas not covered by bot zones. [3/13/2011 12:38:32 AM] buckyballreaction: sam, i'm loving your graphics [3/13/2011 12:38:42 AM] Samuel Williams: thanks. [3/13/2011 12:40:54 AM] buckyballreaction: i'm gonna check in my current changes because it works tons better now [3/13/2011 12:41:20 AM] buckyballreaction: but the case with smaller segments has me stumped [3/13/2011 12:44:23 AM] buckyballreaction: ok [3/13/2011 12:44:35 AM] buckyballreaction: you should see much cleaner polygons on the map now [3/13/2011 12:54:56 AM] Chris Eykamp: sam's graphic distrubs me [3/13/2011 12:55:39 AM] Chris Eykamp: it suggests we need to be doing a true buffer of wall segments, and that will introduce curves and make everything much more difficult [3/13/2011 12:56:01 AM] buckyballreaction: nah [3/13/2011 12:56:14 AM] buckyballreaction: because my new findNearestZone is really fast [3/13/2011 12:56:30 AM] Chris Eykamp: yes [3/13/2011 12:56:33 AM] Chris Eykamp: but [3/13/2011 12:56:34 AM] buckyballreaction: but i may not be thinking of a case.. [3/13/2011 12:56:39 AM] buckyballreaction: that you are [3/13/2011 12:57:05 AM] Chris Eykamp: if we have two diamonds sitting one atop the other, with exactly 50 gap in between, won't show as blocke? [3/13/2011 12:57:09 AM] Chris Eykamp: blocked? [3/13/2011 12:57:17 AM] Samuel Williams: the new bot zone appears to work, except levels with polygon barrierMakerS [3/13/2011 12:57:28 AM] Chris Eykamp: we'll get to those! [3/13/2011 12:57:44 AM] Zoomber: oh my, here goes the bluetooth mac peripherals on windows catastrophey again [3/13/2011 12:58:26 AM] buckyballreaction: let me test... [3/13/2011 12:58:44 AM] Chris Eykamp: @bbr is your stuff working well enough I can junk my partial fixes? [3/13/2011 12:58:53 AM] buckyballreaction: perhaps [3/13/2011 12:58:59 AM] Chris Eykamp: :) [3/13/2011 12:59:00 AM] buckyballreaction: see for yourself [3/13/2011 12:59:05 AM] buckyballreaction: i think it is working MUCH better [3/13/2011 12:59:11 AM] Chris Eykamp: ok [3/13/2011 1:00:48 AM] buckyballreaction: but i see two problems: 1. it may create a bad zone if the barrier is less than 50 with and between the width and 50 away from another zone 2. the clipping doesn't seem to be working for the buffers sometimes [3/13/2011 1:01:51 AM] Chris Eykamp: well, my test case works [3/13/2011 1:02:00 AM] Samuel Williams: http://96.2.123.136/bitfighter/zap_d-20110313-0000391.png The zones (7 and 11) are not linked, even when ships can pass through that small space [3/13/2011 1:02:18 AM] buckyballreaction: ah sam beat me to it [3/13/2011 1:02:54 AM] buckyballreaction: argh [3/13/2011 1:03:20 AM] buckyballreaction: i bet octagonal geometry would handle 99.99% of the cases [3/13/2011 1:03:58 AM] Chris Eykamp: exactly my test case [3/13/2011 1:04:01 AM] Chris Eykamp: my new test case [3/13/2011 1:05:02 AM] Samuel Williams: looks like we are thinking of the same thing after i start talking about rounding off the corners.. [3/13/2011 1:06:49 AM] buckyballreaction: i'll do octagonal geo [3/13/2011 1:07:39 AM] Chris Eykamp: yes [3/13/2011 1:07:49 AM] Chris Eykamp: octagonal would be the next iteration [3/13/2011 1:08:03 AM] Chris Eykamp: but we'll always be able to construct a case where it fails [3/13/2011 1:08:15 AM] buckyballreaction: unless we do curves [3/13/2011 1:08:23 AM] buckyballreaction: which is crazy [3/13/2011 1:08:24 AM] Chris Eykamp: right, which we don't want to do [3/13/2011 1:08:37 AM] Chris Eykamp: well, since we're rounding ot ints, we may not need to get to curves [3/13/2011 1:08:53 AM] Chris Eykamp: but 99% of the time, 4 corners will work [3/13/2011 1:09:09 AM] buckyballreaction: did you see the clipping problem? [3/13/2011 1:09:18 AM] Chris Eykamp: maybe there is a way to identify the cases where octagonal corners are needed [3/13/2011 1:09:22 AM] Zoomber: 4606 5888 [3/13/2011 1:09:47 AM] Zoomber: ill steal the mac's bluetooth passkey, and use it in windows to connect to the keyboard! [3/13/2011 1:10:09 AM] Chris Eykamp: they may only be needed if two vertices are within some radius [3/13/2011 1:10:16 AM] buckyballreaction: load ctf3 and take a look at a barrier that has about a 135 degree angle in it [3/13/2011 1:10:27 AM] buckyballreaction: and the buffers around it [3/13/2011 1:11:02 AM] Chris Eykamp: where in the level [3/13/2011 1:14:00 AM] Samuel Williams: http://96.2.123.136/bitfighter/zap_d-20110313-0012589.png The robot get stuck, turret is in the way. [3/13/2011 1:14:31 AM] Chris Eykamp: we need to simply block out turret with a chunk of wall or somesuch [3/13/2011 1:14:48 AM] Chris Eykamp: or feed turret geom into zone maker as if it was another wall [3/13/2011 1:14:55 AM] buckyballreaction: i like that idea [3/13/2011 1:15:02 AM] Chris Eykamp: but this will be a problem if someone engineers a turret\ [3/13/2011 1:15:21 AM] Chris Eykamp: also need to block out ff projectors [3/13/2011 1:15:56 AM] Samuel Williams: forcefield projector is very small, smaller then turret, it won't be much of a problem. [3/13/2011 1:16:09 AM] buckyballreaction: and angled [3/13/2011 1:17:13 AM] Chris Eykamp: only in tight spots [3/13/2011 1:17:27 AM] Samuel Williams: even with turrets blocked of by zone generator, the robot path seeing ahead may see through turrets. [3/13/2011 1:17:32 AM] Chris Eykamp: but still probably better to handle it than ignore it [3/13/2011 1:17:47 AM] Chris Eykamp: not if they're buffered [3/13/2011 1:18:50 AM] buckyballreaction: argh it's DST [3/13/2011 1:20:36 AM] Samuel Williams: Depending on computer Operating system, it may gave you a warning about Daylight Time changes, and auto adjust it's own computer clock. [3/13/2011 1:23:55 AM] buckyballreaction: ok, well i'll have to pick up again tomorrow [3/13/2011 1:24:04 AM] buckyballreaction: gott get up earlier than i thought... [3/13/2011 1:24:25 AM] buckyballreaction: good ngiht [3/13/2011 1:24:56 AM] Chris Eykamp: ok, improved zone aggregation [3/13/2011 1:25:12 AM] Chris Eykamp: got ctf3 from 1031 to 873 zones [3/13/2011 1:25:13 AM] Zoomber: Blast [3/13/2011 1:25:16 AM] Zoomber: it didnt work [3/13/2011 1:25:34 AM] buckyballreaction: how did you improve? [3/13/2011 1:26:01 AM] Zoomber: made less zones [3/13/2011 1:26:48 AM] Zoomber: apple seems to punch in code to the wireless mouse and keyboard that tells them to "hate" windows comptuers [3/13/2011 1:26:49 AM] Samuel Williams: http://96.2.123.136/bitfighter/zap_d-20110313-0025508.png Bots get stuck when bouncy objects is in the way. [3/13/2011 1:27:56 AM] buckyballreaction: @sam, sounds like we need to improve the getWaypoint method to check if not movement within a certain time, mark the next zone as temporarily borken [3/13/2011 1:29:32 AM] Samuel Williams: yes, and if forcefields in the way, that will cost a lot of time to destroy it. IF there is multiple paths to get to target, it should choose a path that is the fastest. [3/13/2011 1:29:42 AM] Chris Eykamp: [Sunday, March 13, 2011 1:24 AM] Chris Eykamp: <<< got ctf3 from 1031 to 873 zones[Sunday, March 13, 2011 1:24 AM] Chris Eykamp: <<< got ctf3 from 1031 to 873 zones [3/13/2011 1:29:54 AM] buckyballreaction: how? [3/13/2011 1:30:11 AM] Chris Eykamp: changed > to >= in one of the geom tests [3/13/2011 1:30:18 AM] buckyballreaction: haha [3/13/2011 1:30:27 AM] Chris Eykamp: I guessed that would allow straight lines to be considered convex [3/13/2011 1:30:40 AM] Chris Eykamp: seems I guessed right [3/13/2011 1:30:58 AM] Chris Eykamp: now I'm guessing again that I might eliminate colinear vertices to allow further reductions of polys [3/13/2011 1:31:12 AM] buckyballreaction: wait on that one [3/13/2011 1:31:28 AM] Chris Eykamp: but... I'm still concerned that our aggregated polys are generating bad paths [3/13/2011 1:31:36 AM] buckyballreaction: because colinear vertices might run past several other zones [3/13/2011 1:31:37 AM] Chris Eykamp: why [3/13/2011 1:31:46 AM] Chris Eykamp: I mean within a zone [3/13/2011 1:31:52 AM] buckyballreaction: ahh [3/13/2011 1:31:53 AM] buckyballreaction: ok [3/13/2011 1:31:55 AM] Chris Eykamp: I put 2 triangles together [3/13/2011 1:31:55 AM] buckyballreaction: nevermind [3/13/2011 1:32:08 AM] buckyballreaction: well [3/13/2011 1:32:13 AM] Chris Eykamp: could acheive same thing by making more verts per poly [3/13/2011 1:32:33 AM] Chris Eykamp: is your latest checked in? [3/13/2011 1:32:39 AM] buckyballreaction: yes [3/13/2011 1:32:42 AM] Chris Eykamp: ok [3/13/2011 1:32:47 AM] Chris Eykamp: good night [3/13/2011 1:32:58 AM] buckyballreaction: ok, good night [3/13/2011 1:33:18 AM] Samuel Williams: something wrong with SunBurst http://96.2.123.136/bitfighter/zap_d-20110313-0032180.png [3/13/2011 1:33:33 AM] Samuel Williams: missing some bot zones [3/13/2011 1:36:48 AM] Samuel Williams: http://96.2.123.136/bitfighter/zap_d-20110313-0036108.png also have missing bot zones [3/13/2011 1:37:50 AM] Chris Eykamp: could those be from the holes-in-walls issue? [3/13/2011 1:38:13 AM] Zoomber: someone tried to call me, then left me a text message saying something terribly spelled, then "im billy", then another message with explicit words, and then a last message followed by the words "just ******* come out" [3/13/2011 1:38:31 AM | Edited 1:38:37 AM] Zoomber: scary [3/13/2011 1:38:46 AM] Samuel Williams: http://96.2.123.136/bitfighter/zap_d-20110313-0037204.png http://96.2.123.136/bitfighter/zap_d-20110313-0038044.png have missing bot zones [3/13/2011 1:39:42 AM] Chris Eykamp: do you think old way of generating wall outlines would fix that? [3/13/2011 1:40:02 AM] Chris Eykamp: (not suggesting we revert, just want to understand the problem) [3/13/2011 1:41:39 AM] Samuel Williams: the old wall outlines seems to be more accurate, but old wall outlines creates lots of more line segments. [3/13/2011 1:42:15 AM] Chris Eykamp: yes [3/13/2011 1:42:19 AM] Samuel Williams: The new line edge generator is good enough for rendering, but seems to have problems using it as bot generator [3/13/2011 1:42:44 AM] Chris Eykamp: so does using the old edge generator fix the zone problems you showed me? [3/13/2011 1:43:00 AM] Chris Eykamp: I hope we can fix the new edge generator, because I like fewer segments [3/13/2011 1:44:23 AM] Samuel Williams: it might, at least it shows that before my new edge generator have problems with bot generator that old edge line don't have problem with edje generator, but using the old edge generator slows down the bot zone maker, as there is lots of more edge line segments. [3/13/2011 1:45:31 AM] Samuel Williams: the old edge generator will freeze or take forever trying to generate bot zone on GeoWar level, while the new edge generator works on GeoWar [3/13/2011 1:46:52 AM] Chris Eykamp: we need the new generator; I'll take a look to see how it works and if I can see where the holes come from [3/13/2011 1:57:57 AM] Samuel Williams: the problem might be with the rounding when both barriers overlap. http://96.2.123.136/bitfighter/rounding.gif My edge line is not efficient enough to avoid overlapping line segments [3/13/2011 1:58:26 AM] Chris Eykamp: ah [3/13/2011 1:58:33 AM] Chris Eykamp: so the one on the right is yours? [3/13/2011 1:59:09 AM] Samuel Williams: the one on the right is the round off errors, (ignore my y=25 part) [3/13/2011 1:59:39 AM] Chris Eykamp: should be (26,30)? [3/13/2011 2:00:03 AM] Samuel Williams: yes [3/13/2011 2:01:27 AM] Samuel Williams: Triangle bot zone generator uses integer, converting from Float to integer cause rounding errors. [3/13/2011 2:01:47 AM] Chris Eykamp: traingle uses floats -- we convert after that [3/13/2011 2:02:14 AM] Chris Eykamp: I want to make triangle use int -- I think that would make tiny triangles go away [3/13/2011 2:05:48 AM] Samuel Williams: So, maybe tell Triangulate not to generate tiny triangles, or fix my overlapping line edge overlap. [3/13/2011 2:07:08 AM] Chris Eykamp: I'm not sure I understand the overlap case enough to know how to fix it [3/13/2011 2:08:15 AM] Samuel Williams: Both lines (as shown on my drawings) have both lines partly overlapping from the overlapping barriers. [3/13/2011 2:08:52 AM] Chris Eykamp: ah, ok [3/13/2011 2:10:53 AM] Chris Eykamp: your stuff all happens in prepareRenderingGeometry2, right? [3/13/2011 2:11:10 AM] Samuel Williams: yes. [3/13/2011 2:14:37 AM] Chris Eykamp: man, I just can't stay awake! [3/13/2011 2:15:16 AM] Samuel Williams: maybe, sleep time? [3/13/2011 2:16:21 AM] Chris Eykamp: maybe... [3/13/2011 2:16:23 AM] Chris Eykamp: :) [3/13/2011 5:44:05 PM] buckyballreaction: good day [3/13/2011 6:07:35 PM] buckyballreaction: so i have on my TODO list: 1. octagonal buffers 2. input turrets as holes [3/13/2011 7:14:54 PM] buckyballreaction: i did octagonal zones: http://96.2.123.136/upload/1snapshot11.png [3/13/2011 7:15:02 PM] buckyballreaction: they don't work with our rounding [3/13/2011 7:15:06 PM] buckyballreaction: rats [3/13/2011 7:16:12 PM] buckyballreaction: and yes i can fit between there... [3/13/2011 7:18:33 PM] buckyballreaction: also octagonal zones break more often - i.e. ctf3 no longer works with them; probably due to the rounding again [3/13/2011 10:27:05 PM] Chris Eykamp: [Sunday, March 13, 2011 7:14 PM] buckyballreaction: <<< they don't work with our roundingwhat does this mean? [3/13/2011 10:27:58 PM] buckyballreaction: the roundingpicture sam showed last night [3/13/2011 10:28:34 PM] buckyballreaction: i think since we round out the floats as ints when giving the holes to triangle, there ends up being broken holes [3/13/2011 10:30:20 PM] Chris Eykamp: I think this is a different issue. If you are passing a series of points to create octagonal corners, rounding them will not create holes; it is only the situation where lines ran past one another that there was a problem [3/13/2011 10:30:44 PM] buckyballreaction: well my octagonal zones now break ctf3 [3/13/2011 10:30:50 PM] Chris Eykamp: I saw no signs of octagonal corners in your graphic [3/13/2011 10:30:59 PM] Chris Eykamp: are you sure it's working? [3/13/2011 10:31:05 PM] buckyballreaction: look closer :) [3/13/2011 10:31:07 PM] buckyballreaction: yep [3/13/2011 10:31:47 PM] Chris Eykamp: ah, yes, very subtle [3/13/2011 10:31:49 PM] buckyballreaction: so i only cut the corner at the buffer length to the 45 [3/13/2011 10:31:57 PM] Chris Eykamp: try a more octagoanal octagon :) [3/13/2011 10:32:07 PM] Samuel Williams: that octagon is visible, but is too small, based on that picture.. [3/13/2011 10:32:26 PM] Chris Eykamp: yes, better put [3/13/2011 10:32:28 PM] buckyballreaction: it makes it so there is still the appropriate buffer all aroun the corner [3/13/2011 10:32:45 PM] buckyballreaction: it is the tangent line to the arc [3/13/2011 10:32:58 PM] Chris Eykamp: here is an idea... [3/13/2011 10:33:06 PM] Chris Eykamp: a totally different approach [3/13/2011 10:33:12 PM] buckyballreaction: i up for it [3/13/2011 10:33:20 PM] Chris Eykamp: no puffy borders [3/13/2011 10:34:01 PM] Chris Eykamp: maybe we could do some sort of radius search, and if any two points are within, say 100 of each other, we draw a line connecting them, and pass that line to triangle along with all the holes [3/13/2011 10:34:36 PM] Chris Eykamp: that line will cause triangles to break at that line [3/13/2011 10:34:56 PM] Chris Eykamp: then we can apply the no borders shorter than 50 rule [3/13/2011 10:35:00 PM] Chris Eykamp: that we tried before [3/13/2011 10:35:05 PM] Chris Eykamp: but this time it should work [3/13/2011 10:35:42 PM] Chris Eykamp: before we were finding that oblique angles caused "shorter-than-50" borders to be longer [3/13/2011 10:35:51 PM] buckyballreaction: yes [3/13/2011 10:36:11 PM] Chris Eykamp: but by adding the line, we'll force an edge at the shortest point [3/13/2011 10:36:17 PM] Chris Eykamp: and then our test will catch it [3/13/2011 10:36:45 PM] buckyballreaction: i'm still trying to understand your idea... and at what point it is implemented [3/13/2011 10:36:56 PM] Chris Eykamp: you can create a visual of what i'm talking about by not marking the walls as holes (pass nothing to triangle in the holes list) [3/13/2011 10:37:10 PM] Chris Eykamp: you'll see all the wall geometry, even though there is a continuous mesh [3/13/2011 10:37:14 PM] buckyballreaction: yes [3/13/2011 10:37:21 PM] buckyballreaction: i follow so far... [3/13/2011 10:37:25 PM] Chris Eykamp: but all the wall edges are still there [3/13/2011 10:37:34 PM] Chris Eykamp: even though there are triangles on both sides [3/13/2011 10:37:47 PM] Chris Eykamp: if you pass nothing in the holes list [3/13/2011 10:37:56 PM] Chris Eykamp: can you visulaize that? [3/13/2011 10:38:17 PM] Chris Eykamp: triangle maintains all edges passed to it [3/13/2011 10:38:33 PM] Chris Eykamp: all edges passed become edges of triangles [3/13/2011 10:38:48 PM] Chris Eykamp: have I lost you? [3/13/2011 10:38:50 PM] buckyballreaction: ok, so we just mesh the whole map [3/13/2011 10:39:00 PM] buckyballreaction: if you want to draw, join me here: http://www.twiddla.com/504507 [3/13/2011 10:39:03 PM] Chris Eykamp: well, just as a visual [3/13/2011 10:39:32 PM] Chris Eykamp: can sam see that too? [3/13/2011 10:39:41 PM] buckyballreaction: same want to join that link i jus tposted? [3/13/2011 10:40:03 PM] Chris Eykamp: ok, so that's our situation, right? [3/13/2011 10:40:10 PM] buckyballreaction: right [3/13/2011 10:40:27 PM] Chris Eykamp: so we pass all black edges and that green edge [3/13/2011 10:40:38 PM] buckyballreaction: ahh [3/13/2011 10:40:50 PM] Chris Eykamp: whihc we identify because the verts are within a certain distance [3/13/2011 10:40:54 PM] Chris Eykamp: triangles in blue [3/13/2011 10:41:31 PM] Chris Eykamp: and so on [3/13/2011 10:41:34 PM] Chris Eykamp: so [3/13/2011 10:41:51 PM] Chris Eykamp: by passing that green line, we've forced a triangle border to be formed there [3/13/2011 10:42:07 PM] Chris Eykamp: indicated by the red arrow [3/13/2011 10:42:10 PM] buckyballreaction: ok [3/13/2011 10:42:37 PM] Chris Eykamp: ok, so maybe we don't merge triangles [3/13/2011 10:42:47 PM] Chris Eykamp: ummm [3/13/2011 10:43:22 PM] Chris Eykamp: ok, if recat merges 1 and 2 [3/13/2011 10:43:25 PM] Chris Eykamp: my idea won't work [3/13/2011 10:43:46 PM] Chris Eykamp: but my thought was maybe by forcing an edge, 1 and 2 wouldn't merge, and we could apply the < 50 rule [3/13/2011 10:43:53 PM] Chris Eykamp: but I see the flaw in my thinking [3/13/2011 10:44:10 PM] Chris Eykamp: what if... what if we told recast not to merge trianlges < 50? [3/13/2011 10:44:23 PM] buckyballreaction: with edges less than 50? [3/13/2011 10:44:33 PM] buckyballreaction: i think we will miss a lot of merging [3/13/2011 10:44:42 PM] Chris Eykamp: perhaps [3/13/2011 10:45:04 PM] Chris Eykamp: but I'm not sure the merging is really working for us anyway [3/13/2011 10:45:10 PM] Chris Eykamp: I keep seeing weird paths being generated [3/13/2011 10:45:31 PM] buckyballreaction: yes, the paths are really weird [3/13/2011 10:45:45 PM] buckyballreaction: but every time a bot enters a zone [3/13/2011 10:45:55 PM] Chris Eykamp: so we're either going to have to fix our path finding algo, or use the raw triangles [3/13/2011 10:46:02 PM] buckyballreaction: it recalculates via LOS to the next zone and doesn't actually use the original path [3/13/2011 10:46:19 PM] Chris Eykamp: yes, but sometimes the path is so wrong, that doesn't fix it. as an experiment, it might be worth skipping recast [3/13/2011 10:46:27 PM] Chris Eykamp: and applying the < 50 rule [3/13/2011 10:46:27 PM] buckyballreaction: ah ok [3/13/2011 10:46:43 PM] Chris Eykamp: and seeing if the zones work [3/13/2011 10:46:52 PM] Chris Eykamp: that's easy to try [3/13/2011 10:47:26 PM] Chris Eykamp: 90% of the code is there; we can use the old merge routine that's still plugged into the triangle generation, and just do a length check [3/13/2011 10:48:04 PM] buckyballreaction: so to sum up: 1. no buffers [3/13/2011 10:48:35 PM] Chris Eykamp: correct [3/13/2011 10:48:39 PM] buckyballreaction: 2. don't merge edges that are < 50 [3/13/2011 10:48:42 PM] Chris Eykamp: correct [3/13/2011 10:48:49 PM] Chris Eykamp: no [3/13/2011 10:48:51 PM] Chris Eykamp: incorrect [3/13/2011 10:48:54 PM] buckyballreaction: ok [3/13/2011 10:48:59 PM] Chris Eykamp: 2 don't merge anything [3/13/2011 10:49:06 PM] buckyballreaction: pretend i don't know anything [3/13/2011 10:49:15 PM] Chris Eykamp: 3. don't "neighbor" edges < 50 [3/13/2011 10:49:36 PM] buckyballreaction: ok [3/13/2011 10:49:39 PM] Chris Eykamp: I'm going to try it; it's really easy to do [3/13/2011 10:49:47 PM] buckyballreaction: how do we handle that case i drew? [3/13/2011 10:50:05 PM] Chris Eykamp: you drew a case? [3/13/2011 10:50:12 PM] buckyballreaction: on the whiteboard [3/13/2011 10:50:24 PM] Chris Eykamp: ah, so you did [3/13/2011 10:50:36 PM] Chris Eykamp: I can only see half of it [3/13/2011 10:51:02 PM] Chris Eykamp: can you pan? [3/13/2011 10:51:40 PM] buckyballreaction: yeah, you have a narrow screen? [3/13/2011 10:51:44 PM] buckyballreaction: make the window larger [3/13/2011 10:52:02 PM] Chris Eykamp: taller [3/13/2011 10:52:22 PM] Chris Eykamp: you are showing a < 50 that we want to keep? [3/13/2011 10:52:36 PM] Chris Eykamp: ah, no, I see [3/13/2011 10:52:40 PM] buckyballreaction: no, that > 50 we want to get rid of [3/13/2011 10:52:53 PM] Chris Eykamp: you are showing a > 50 that we want to kill [3/13/2011 10:52:57 PM] buckyballreaction: yes [3/13/2011 10:53:17 PM] Samuel Williams: i would press CTRL - to zoon out or crank up display resolution to 1600 x 1200 [3/13/2011 10:53:42 PM] Chris Eykamp: ctrl-mouse wheel works! [3/13/2011 10:54:10 PM] Chris Eykamp: I have no answer for that [3/13/2011 10:54:13 PM] Chris Eykamp: :-< [3/13/2011 10:54:56 PM] buckyballreaction: just buffers [3/13/2011 10:55:09 PM] Samuel Williams: If we are doing buffer width, it may need lots to triangles to round off the corners.. http://96.2.123.136/bitfighter/buffer.gif [3/13/2011 10:56:49 PM] buckyballreaction: so the question is: which case is mor likely to happen? 1. use buffers and have the corner problem 2. don't use buffers and have the oblique angle + narrow zone problem [3/13/2011 10:58:08 PM] Samuel Williams: If not using buffer, need to be careful not link zones that have zero width barrier wall. [3/13/2011 11:02:28 PM] Chris Eykamp: I'll try making triagnle work with ints [3/13/2011 11:02:33 PM] Chris Eykamp: that may help a little [3/13/2011 11:02:51 PM] Chris Eykamp: the thing is, we only care about these issues in a very few cases [3/13/2011 11:03:02 PM] Chris Eykamp: if we could identify those... [3/13/2011 11:04:00 PM] buckyballreaction: note that in the most common case where 1. the segment corners are at a 45 degree angle with each other compared to an edge 2. the two segments are a segment's width apart on the x and y vectors [3/13/2011 11:04:16 PM] buckyballreaction: octagonal zones do work: http://96.2.123.136/upload/1snapshot12.png [3/13/2011 11:04:54 PM] buckyballreaction: my first example was where the angle compared to the edge was about 55 degrees [3/13/2011 11:05:29 PM] Chris Eykamp: I think you just need a longer diagonal on the octagonal buffers [3/13/2011 11:05:50 PM] buckyballreaction: so i can either cut the corners steeper and not have a buffers radius [3/13/2011 11:05:58 PM] buckyballreaction: of puff the buffer out more? [3/13/2011 11:06:17 PM] buckyballreaction: puffing outmore will negate to many zones [3/13/2011 11:06:20 PM] buckyballreaction: too [3/13/2011 11:06:58 PM] buckyballreaction: i'll cut them steeper first... [3/13/2011 11:07:23 PM] Chris Eykamp: don't puff more [3/13/2011 11:10:32 PM] Samuel Williams: problem with octagon puffing, too much coverage or not enough coverage or both. [3/13/2011 11:10:34 PM] Samuel Williams: http://96.2.123.136/bitfighter/octagon.gif [3/13/2011 11:10:52 PM] Chris Eykamp: 16-gons! [3/13/2011 11:11:51 PM] buckyballreaction: you mean a hexadecagon? [3/13/2011 11:11:55 PM] buckyballreaction: :) [3/13/2011 11:13:45 PM] Samuel Williams: octagon have 8 sides, a single 2 point non-zero width barrier have 4 sides [3/13/2011 11:18:33 PM] Samuel Williams: it is near impossible to make the buffer corner width perfectly round without using too many convex polygon bot zones. [3/13/2011 11:25:59 PM] buckyballreaction: http://96.2.123.136/upload/11snapshot13.png [3/13/2011 11:26:17 PM] buckyballreaction: ok i just cut straight across from the buffer extended points [3/13/2011 11:29:10 PM] buckyballreaction: but any time i do octagonal zones the following occurs: http://96.2.123.136/upload/snapshot14.png [3/13/2011 11:29:16 PM] buckyballreaction: with more frequency [3/13/2011 11:30:56 PM] Samuel Williams: maybe you could temperory add this in Barrier::prepareRenderingGeometry2() to see all buffered lines prepareBotZoneGeometry(); mRenderLineSegments = mBotZoneBufferLineSegments; return; [3/13/2011 11:31:41 PM] buckyballreaction: can you process a diff? [3/13/2011 11:32:54 PM] buckyballreaction: http://96.2.123.136/upload/octagonal_buffers.diff [3/13/2011 11:33:50 PM] buckyballreaction: i added bufferBarrierForBotZone2 (tangent corner cut) bufferBarrierForBotZone3 (deeper cut) [3/13/2011 11:33:58 PM] buckyballreaction: the diff applies bufferBarrierForBotZone3 [3/13/2011 11:39:39 PM] Samuel Williams: i did seem to got it mostly going, but there is an error. 1>.\barrier.cpp(275) : error C2668: 'sqrt' : ambiguous call to overloaded function could be 'long double sqrt(long double)' 'float sqrt(float)' 'double sqrt(double)' while trying to match the argument list '(int)' [3/13/2011 11:40:28 PM] buckyballreaction: add an 'f' after '2' [3/13/2011 11:40:49 PM] Samuel Williams: easy fix, 2.f [3/13/2011 11:41:00 PM] buckyballreaction: yes that [3/13/2011 11:50:52 PM] Samuel Williams: There is missing bot zone and hole on simple level http://96.2.123.136/bitfighter/11031301.gif http://96.2.123.136/bitfighter/11031301.level [3/13/2011 11:52:03 PM] buckyballreaction: how on earth does that happen??? [3/13/2011 11:52:30 PM] Samuel Williams: overlapping barriers? [3/13/2011 11:54:17 PM] Samuel Williams: when calculating edge, it thinks one edge is colliding to another edge, and it removes that edge, creating hole. [3/13/2011 11:54:45 PM] buckyballreaction: it should merge the edges... [3/13/2011 11:55:10 PM] buckyballreaction: is that in clipRenderLinesToPoly()? [3/13/2011 11:56:22 PM] Samuel Williams: void Barrier::prepareRenderingGeometry2() { prepareBotZoneGeometry(); mRenderLineSegments = mBotZoneBufferLineSegments; return; ... } That will render the buffered edges. [3/13/2011 11:56:50 PM] buckyballreaction: ok [3/13/2011 11:57:22 PM] buckyballreaction: did you change the buildBotZones methods to use prepareRenderingGeometry2()? [3/13/2011 11:57:43 PM] buckyballreaction: instead of prepareBotZoneGeometry()? [3/13/2011 11:58:24 PM] Samuel Williams: no, i just doing it to display the buffered edges.. [3/14/2011 12:04:47 AM] buckyballreaction: using the older prepareRenderingGeometry shows holes, too [3/14/2011 12:05:15 AM] buckyballreaction: wait [3/14/2011 12:05:29 AM] buckyballreaction: of course it would [3/14/2011 12:05:33 AM] buckyballreaction: forget i mentioned that [3/14/2011 12:06:56 AM] buckyballreaction: i still think that wherever the overlap detection is being done, it should merge the segments rather than delete one... if i understand what's happening correctly [3/14/2011 12:08:10 AM] Samuel Williams: IT is easy for both segments to be partly overlapping (lines run in parallel), deleting one segment can create holes. [3/14/2011 12:09:57 AM] buckyballreaction: do you know where the deletion is occuring? (which method?) [3/14/2011 12:14:06 AM | Edited 12:14:38 AM] Samuel Williams: i don't think there is no deleting occuring on my prepareRenderingGeometry2, but instead it might not create all lines when it thinks it is colliding. [3/14/2011 12:14:26 AM] Samuel Williams: prepareRenderingGeometry2 [3/14/2011 12:16:33 AM] Samuel Williams: prepareBotZoneGeometry uses old clipRenderLinesToPoly, which might be the problem with missing line segments.. [3/14/2011 12:17:07 AM] buckyballreaction: ah ok - let me plug in to your method instead [3/14/2011 12:27:56 AM] Chris Eykamp: sorry -- had parent duties to attend to [3/14/2011 12:28:41 AM] buckyballreaction: please attend to those first [3/14/2011 12:28:45 AM] buckyballreaction: no need to apologize [3/14/2011 12:29:42 AM] buckyballreaction: so there's definitely a problem with clipRenderLinesToPoly [3/14/2011 12:31:41 AM] Chris Eykamp: [Monday, March 14, 2011 12:28 AM] buckyballreaction: <<< please attend to those firstdid [3/14/2011 12:50:30 AM] buckyballreaction: so all the holes i'm seeing from clipRenderLinesToPoly seem to happen if there are three or more overlapping segments [3/14/2011 12:51:11 AM] buckyballreaction: no [3/14/2011 12:51:15 AM] buckyballreaction: i take that back [3/14/2011 12:52:27 AM] Chris Eykamp: maybe we can see the holes if we generate wall geometry in the editor, then change the editor to allow super zoom? [3/14/2011 12:53:21 AM] buckyballreaction: sam, was there a problem with your new prepareRenderingGeometry compared to the old? [3/14/2011 12:56:16 AM | Edited 12:56:27 AM] Samuel Williams: On my prepareRenderGrometry generator might be a problem with 2 line segments partly overlapping causing bot zone generator to fail. Usually you cannot see holes on edge when using my prepareRenderGrometry. [3/14/2011 12:58:23 AM] buckyballreaction: so you say that yours seems to be superior? [3/14/2011 12:58:42 AM] Samuel Williams: mine is mostly better, but not perfect. [3/14/2011 12:58:54 AM] buckyballreaction: what are some instances where it fails? [3/14/2011 12:59:36 AM] Samuel Williams: possible partly overlapping line segments. [3/14/2011 1:00:22 AM] Samuel Williams: http://96.2.123.136/bitfighter/rounding.gif [3/14/2011 1:00:52 AM] Samuel Williams: The triangulate round numbers [3/14/2011 1:01:14 AM] Samuel Williams: It is rounded when inputting into triangulate.. [3/14/2011 1:01:32 AM] buckyballreaction: if that rounding were removed, does it seem to work? [3/14/2011 1:02:10 AM] Samuel Williams: have not tried without runding. [3/14/2011 1:04:07 AM] buckyballreaction: i think i did something seriously wrong trying to adapt your method: http://96.2.123.136/upload/snapshot15.png [3/14/2011 1:07:26 AM] buckyballreaction: it's kind of fun seeing how badly I can mess things up... [3/14/2011 1:08:25 AM] buckyballreaction: it works! [3/14/2011 1:09:46 AM] Chris Eykamp: what works? [3/14/2011 1:09:48 AM] buckyballreaction: sam, your prepareRenderingGeometry method doesn't create as many holes with my buffers: http://96.2.123.136/upload/snapshot16.png [3/14/2011 1:10:06 AM] buckyballreaction: 'sing sam's method + octagonal buffers [3/14/2011 1:10:10 AM] buckyballreaction: using [3/14/2011 1:10:30 AM] Chris Eykamp: great! [3/14/2011 1:10:36 AM] buckyballreaction: now the question: should we use octagonal buffers? [3/14/2011 1:10:39 AM] buckyballreaction: and if so: [3/14/2011 1:11:15 AM] buckyballreaction: 1. should i use the tangent corner cut 2. use the deeper one 3. use tangent -1? [3/14/2011 1:11:54 AM] Chris Eykamp: what are these? [3/14/2011 1:12:16 AM] buckyballreaction: http://www.twiddla.com/504556 [3/14/2011 1:14:09 AM] Chris Eykamp: maybe I'm confused by your name [3/14/2011 1:14:33 AM] buckyballreaction: ok let me draw again [3/14/2011 1:16:56 AM] Chris Eykamp: probably the best thing to do would be to construct some scenarios [3/14/2011 1:17:10 AM] Chris Eykamp: and see if your first choice handles them well [3/14/2011 1:17:16 AM] buckyballreaction: i did [3/14/2011 1:17:22 AM] buckyballreaction: the tangent cut doesn't handle some [3/14/2011 1:17:27 AM] Chris Eykamp: good. what did you find? [3/14/2011 1:17:39 AM] buckyballreaction: and the deeper cut negates the buffer [3/14/2011 1:17:59 AM] Chris Eykamp: i.e. connects zones that shouldn't be [3/14/2011 1:18:19 AM] buckyballreaction: yes [3/14/2011 1:18:37 AM] Chris Eykamp: ok, well, that's not good [3/14/2011 1:18:52 AM] buckyballreaction: so somewhere in the middle is my solution [3/14/2011 1:19:11 AM] buckyballreaction: and try to get a good statistical probability of success :) [3/14/2011 1:19:15 AM] Chris Eykamp: yes [3/14/2011 1:19:22 AM] Chris Eykamp: makes sense [3/14/2011 1:27:09 AM] Chris Eykamp: ok, so can you give me a quick summary of where we are on this, and what (if anything) I can do to help? I've sort of been left behind. WHich is totally great in a way. Just want to know if I can be helpful, or if I should just stand aside for the moment [3/14/2011 1:27:21 AM] Chris Eykamp: maybe answer the last question first [3/14/2011 1:28:03 AM] buckyballreaction: basically have we decided to say 'yes' to the buffers? [3/14/2011 1:28:56 AM] Chris Eykamp: I think so... absent any better ideas [3/14/2011 1:29:21 AM] Chris Eykamp: I feel they are kind of a hack, but I really can't think of a workable better idea [3/14/2011 1:29:32 AM] Chris Eykamp: they solve about 95% of our problem [3/14/2011 1:29:53 AM] Chris Eykamp: and you've addressed most of the objections [3/14/2011 1:30:13 AM] Chris Eykamp: we can always revisit in the future [3/14/2011 1:30:32 AM] buckyballreaction: ok [3/14/2011 1:31:07 AM] buckyballreaction: then as soon as I get a decent corner cut on the buffers that will give good success rate, then I think the buffers will be about as good as they can get [3/14/2011 1:31:33 AM] Chris Eykamp: excellent. I'm going to try to get triangle to work with ints, to see if that is a) faster and b) gets rid of tiny triangles [3/14/2011 1:31:45 AM] buckyballreaction: ok, cool [3/14/2011 1:31:57 AM] Chris Eykamp: hell, it's only 16,ooo lines of code [3/14/2011 1:32:01 AM] Chris Eykamp: how hard could it be [3/14/2011 1:32:02 AM] Chris Eykamp: ? [3/14/2011 1:32:06 AM] buckyballreaction: this has been an excellent project for me: i got to bring out the graph paper... :) [3/14/2011 1:32:13 AM] Chris Eykamp: good [3/14/2011 1:32:31 AM] buckyballreaction: s/float/int/g [3/14/2011 1:32:33 AM] buckyballreaction: tada! [3/14/2011 1:32:35 AM] buckyballreaction: done! [3/14/2011 1:33:26 AM] buckyballreaction: when i'm done, i may need your help to optimize my code for the octagonal buffers [3/14/2011 1:33:47 AM] buckyballreaction: optimize as in better memory usage with objects [3/14/2011 1:33:56 AM] buckyballreaction: the algo is good, i think [3/14/2011 1:33:56 AM] Chris Eykamp: as ig [3/14/2011 1:33:58 AM] Chris Eykamp: as if [3/14/2011 1:34:08 AM] Chris Eykamp: ok [3/14/2011 1:34:38 AM] buckyballreaction: i'm just not used to the intricacies of memory/speed savings on the various construction of objecst [3/14/2011 1:43:46 AM] buckyballreaction: tada!: http://96.2.123.136/upload/snapshot17.png [3/14/2011 1:45:00 AM] buckyballreaction: you can only fly between barriers 1-2 and 2-3, and the zones now agree, too [3/14/2011 1:46:01 AM] Chris Eykamp: super [3/14/2011 1:57:44 AM] buckyballreaction: sam, are you still here? [3/14/2011 2:01:30 AM] buckyballreaction: sadly my inset tangent cut is now broken on ctf3.. [3/14/2011 2:01:44 AM] Chris Eykamp: oooh [3/14/2011 2:01:54 AM] Chris Eykamp: how so? [3/14/2011 2:01:57 AM] buckyballreaction: but the tangent cut isn't [3/14/2011 2:02:06 AM] buckyballreaction: the are very minute holes [3/14/2011 2:02:10 AM] buckyballreaction: there are [3/14/2011 2:02:16 AM] buckyballreaction: like only 1/2 pixel [3/14/2011 2:05:51 AM] buckyballreaction: ah, finally found a bigger hole [3/14/2011 2:05:55 AM] buckyballreaction: big map [3/14/2011 2:06:00 AM] buckyballreaction: i am saddened [3/14/2011 2:06:10 AM] buckyballreaction: i will have to pick this up again tomorrow [3/14/2011 2:06:16 AM] buckyballreaction: good night [3/14/2011 2:10:05 AM] Chris Eykamp: good night [3/14/2011 2:10:14 AM] Chris Eykamp: we'll see if int triangles plug the holes [3/14/2011 2:10:28 AM] buckyballreaction: are you far along? [3/14/2011 2:10:44 AM] Chris Eykamp: getting there [3/14/2011 2:10:49 AM] Chris Eykamp: who knows if it will work [3/14/2011 2:11:01 AM] Chris Eykamp: lots and lots of casting [3/14/2011 2:11:08 AM] Chris Eykamp: will probably at least get compiled tonight [3/14/2011 2:11:09 AM] Samuel Williams: ok [3/14/2011 2:11:29 AM] Chris Eykamp: good work though, to everyone [3/14/2011 2:19:38 AM] Chris Eykamp: int triangle compiles... but crashes [3/14/2011 2:22:50 AM] buckyballreaction: :( [3/14/2011 2:22:51 AM] buckyballreaction: ok [3/14/2011 2:24:27 AM] buckyballreaction: here is my zone test suite. please add any more tests you may think useful: http://96.2.123.136/upload/zonetestsuite.level [3/14/2011 2:24:43 AM] buckyballreaction: now i'm really going to bed [3/14/2011 2:27:18 AM] Chris Eykamp: night! [3/14/2011 2:38:27 AM] Samuel Williams: The reason it does not remove that buffered line and generating zones between barriers is it can't find each other. (extents don't overlap) http://96.2.123.136/bitfighter/11031302.gif [3/14/2011 2:40:11 AM] Chris Eykamp: yes, I think you're right [3/14/2011 11:16:19 AM] buckyballreaction: to what specific example of it breaking are you refering, sam? [3/14/2011 11:37:40 AM] Chris Eykamp: actually, it does seem to be working now, no? (except for the known cases of the walls being "just so") [3/14/2011 12:16:20 PM] buckyballreaction: so, octagonal zones with corners cut at the tangent work on ctf3 with sam's prepareRenderingGeometry [3/14/2011 12:17:12 PM] buckyballreaction: but when i inset the tangent line, the zones stop working [3/14/2011 12:17:16 PM] buckyballreaction: on ctf3 [3/14/2011 12:34:49 PM] buckyballreaction: amkes me think we really need to find the problem in the rendering geometry [3/14/2011 12:35:08 PM] buckyballreaction: or how to make it more robust - with clipping overlapping lines, etc. [3/14/2011 12:35:59 PM] Chris Eykamp: can you visualize what's happening when you inset that tangent line? [3/14/2011 12:36:20 PM] buckyballreaction: yeah... [3/14/2011 12:39:08 PM] buckyballreaction: trying to upload the images... [3/14/2011 12:39:37 PM] buckyballreaction: octagonal zones - tangent cut: http://96.2.123.136/upload/1snapshot14.png [3/14/2011 12:40:07 PM] Chris Eykamp: what are those corner bulbs? [3/14/2011 12:40:14 PM] buckyballreaction: octagonal zones - tangent inset: http://96.2.123.136/upload/1snapshot15.png [3/14/2011 12:41:19 PM] buckyballreaction: the same thing as when i showed you the nobbies sticking out from the rectangular buffers [3/14/2011 12:41:23 PM] Chris Eykamp: actually the 2nd image as a couple of bulbs as well [3/14/2011 12:41:32 PM] Chris Eykamp: right [3/14/2011 12:41:51 PM] buckyballreaction: i the first image will render the zones just fine, though [3/14/2011 12:42:37 PM] Chris Eykamp: [Monday, March 14, 2011 12:34 PM] buckyballreaction: <<< find the problem in the rendering geometryis this the holes problem? [3/14/2011 12:42:50 PM] buckyballreaction: yes [3/14/2011 12:43:14 PM] Chris Eykamp: can you revert to the old method as a short-term fix? [3/14/2011 12:43:28 PM] Chris Eykamp: I still haven't got sam's method figured out [3/14/2011 12:43:50 PM] buckyballreaction: using the old method - which is to call - clipRenderLinesToPoly [3/14/2011 12:44:02 PM] buckyballreaction: actually fails with any octagonal zone [3/14/2011 12:45:00 PM] buckyballreaction: sam's prepareRenderingGEo works more frequently [3/14/2011 12:45:57 PM] buckyballreaction: which makes me think there is a robustness problem in clipRenderLinesToPoly() [3/14/2011 1:08:02 PM] buckyballreaction: did you write clipRenderLinesToPoly? [3/14/2011 1:10:22 PM] Chris Eykamp: no [3/14/2011 1:20:35 PM] Chris Eykamp: I've worked through it a few times, but it is hard for me to really understand [3/14/2011 1:21:03 PM] buckyballreaction: i think i worked through it - and it seems to be pretty good [3/14/2011 1:21:08 PM] buckyballreaction: i'm not sure what to do [3/14/2011 1:25:30 PM] Chris Eykamp: the problem is the holes, right? [3/14/2011 1:25:37 PM] buckyballreaction: yes [3/14/2011 1:25:51 PM] Chris Eykamp: well, let's see if doing the triangles as ints works [3/14/2011 1:25:55 PM] buckyballreaction: ok [3/14/2011 1:26:06 PM] Chris Eykamp: but I really don't fully understand how the holes get there [3/14/2011 1:26:24 PM] Chris Eykamp: How big are they? 1? [3/14/2011 1:26:32 PM] buckyballreaction: it depends [3/14/2011 1:27:19 PM] buckyballreaction: they get there because when polygons overlap, their edges need to be clipped [3/14/2011 1:27:44 PM] buckyballreaction: otherwise you edges that are on top of each other [3/14/2011 1:27:47 PM] buckyballreaction: you have [3/14/2011 1:27:56 PM] Chris Eykamp: yes, but when they clip, they don't clip tot eh same point [3/14/2011 1:28:02 PM] Chris Eykamp: due to our rounding [3/14/2011 1:28:12 PM] Chris Eykamp: if we remove the rounding, the problem will be fixed, right? [3/14/2011 1:28:17 PM] Chris Eykamp: (not suggesting we do that) [3/14/2011 1:28:17 PM] buckyballreaction: i don't know [3/14/2011 1:28:22 PM] buckyballreaction: oh wait [3/14/2011 1:28:27 PM] buckyballreaction: i did remove the rounding [3/14/2011 1:28:38 PM] buckyballreaction: and triangle failed spectacularly [3/14/2011 1:28:47 PM] Chris Eykamp: in the same way? [3/14/2011 1:28:54 PM] Chris Eykamp: or too many tiny triangles [3/14/2011 1:28:58 PM] buckyballreaction: nope, it crashed the game [3/14/2011 1:29:02 PM] Chris Eykamp: ok [3/14/2011 1:29:06 PM] buckyballreaction: couldn't even get any level to load [3/14/2011 1:29:30 PM] Chris Eykamp: when we do the clipping, do you think that we can take one point, round it, and use it for the endpoint of both clipped segments? [3/14/2011 1:29:41 PM] Chris Eykamp: rather than rounding both endpoints independently [3/14/2011 1:30:02 PM] Chris Eykamp: does that question make sense? [3/14/2011 1:30:06 PM] buckyballreaction: yes [3/14/2011 1:30:10 PM] buckyballreaction: that is a good idea [3/14/2011 1:30:16 PM] buckyballreaction: i bet that would help out quite a bit [3/14/2011 1:30:26 PM] Chris Eykamp: well, if we were still getting holes, that would be a problem [3/14/2011 1:30:43 PM] Chris Eykamp: that might fix sam's edge goemtry as well [3/14/2011 1:31:06 PM] buckyballreaction: i haven't quite figured out sam'e method completely... [3/14/2011 1:33:20 PM] buckyballreaction: i basically adapted the edge geometry for the zone buffers [3/14/2011 1:33:50 PM] Chris Eykamp: well, sam understand's sam's method :) [3/14/2011 2:22:10 PM] buckyballreaction: i'm pretty sure the problem is a precision loss due to manipulating floats a lot [3/14/2011 2:22:29 PM] buckyballreaction: both in clipRenderLinesToPoly and sam's method [3/14/2011 2:25:10 PM] Chris Eykamp: rounding to int should fix that, no? [3/14/2011 2:25:28 PM] Chris Eykamp: especially if we use my idea of rounding one point and assigning the result to the second [3/14/2011 2:25:53 PM] buckyballreaction: yes, i think so, if we round the buffers to integers before hand [3/14/2011 2:26:13 PM] buckyballreaction: i just tried adding precision in clipRenderLinesToPoly() by using F64 [3/14/2011 2:26:13 PM] Chris Eykamp: however, note that even before we were rounding, triangle worked fine on all levels we tested, except geowar [3/14/2011 2:26:21 PM] buckyballreaction: yes [3/14/2011 2:26:29 PM] Chris Eykamp: so perhaps soemthing else is going on [3/14/2011 2:26:34 PM] buckyballreaction: this problem is before triangle gets the holes [3/14/2011 2:26:40 PM] buckyballreaction: it is the hole generation [3/14/2011 2:26:43 PM] Chris Eykamp: was working -- monkeyed around -- no longer works [3/14/2011 2:27:14 PM] Chris Eykamp: that suggests that -- perhpas -- this isn't really a precision thing [3/14/2011 2:28:57 PM] buckyballreaction: i have never seen a case where the buffers were working 100% of the time [3/14/2011 2:29:20 PM] buckyballreaction: actually [3/14/2011 2:29:30 PM] Chris Eykamp: yes, but before the buffering, triangle was working always, everywhere [3/14/2011 2:29:36 PM] buckyballreaction: ah yes [3/14/2011 2:29:51 PM] Chris Eykamp: so I'm suggesting that whatever boundary generation we used then probably worked [3/14/2011 2:30:01 PM] buckyballreaction: i have duplicated [3/14/2011 2:30:10 PM] Chris Eykamp: and that precision is probably not the problem [3/14/2011 2:30:19 PM] Chris Eykamp: because we had sufficient precision [3/14/2011 2:30:25 PM] buckyballreaction: ah, i see what you mean [3/14/2011 2:30:27 PM] buckyballreaction: yes [3/14/2011 2:30:47 PM] Chris Eykamp: even when we rounted to ints we had sufficient precision [3/14/2011 2:49:30 PM] buckyballreaction: i've been thinking. before, triangle always worked when it only had the edge geometry [3/14/2011 2:50:17 PM] buckyballreaction: now, with the botzone geometry using the same methods, it doesn't [3/14/2011 2:53:05 PM] buckyballreaction: so either: 1. there is something different between the edge geo and and the buffer geo methods (there is, i'll come to this in a bit) 2. rectangular edge geometry always worked ok because less precision was needed 3. something else is being done somewhere that I don't know about [3/14/2011 2:53:11 PM] buckyballreaction: 4. it just hates me [3/14/2011 2:55:18 PM] Chris Eykamp: hate is a strong word; let's rule out 4 [3/14/2011 2:55:41 PM] Chris Eykamp: 2 seems unlikely [3/14/2011 2:55:47 PM] buckyballreaction: i agree [3/14/2011 2:55:55 PM] buckyballreaction: for #1 [3/14/2011 2:56:07 PM] Chris Eykamp: #1 is my pick [3/14/2011 2:56:47 PM] Chris Eykamp: if you are using the same point for the begginning of one segment as for the end of the one it's connecting to, there can be no holes, regardless of resolution [3/14/2011 2:57:32 PM] buckyballreaction: here are the two methods for #1: http://pastebin.com/SFs1yiR5 [3/14/2011 2:57:46 PM] buckyballreaction: the top one is the original edge geometry method [3/14/2011 2:57:55 PM] buckyballreaction: the bottom one is my adaptation for bot zones [3/14/2011 2:58:47 PM] buckyballreaction: ugh, i don't like the wrapping that created [3/14/2011 2:59:31 PM] Chris Eykamp: the only diff I see is collisionPoly = dynamic_cast(fillObjects[i])->mBotZoneBufferGeometry; [3/14/2011 2:59:37 PM] buckyballreaction: yes [3/14/2011 2:59:54 PM] Chris Eykamp: so where is mBotZoneBufferGeometry coming from? [3/14/2011 2:59:57 PM] buckyballreaction: the original: getCollisionPoly(mRenderOutlineGeometry) [3/14/2011 3:00:09 PM] Chris Eykamp: [Monday, March 14, 2011 2:59 PM] buckyballreaction: <<< getCollisionPoly(mRenderOutlineGeometry)no holes [3/14/2011 3:00:16 PM] Chris Eykamp: [Monday, March 14, 2011 2:59 PM] Chris Eykamp: <<< fillObjects[i])->mBotZoneBufferGeometryholes? [3/14/2011 3:00:17 PM] buckyballreaction: does this: bool Barrier::getCollisionPoly(Vector &polyPoints) { polyPoints = mPoints; return true; } [3/14/2011 3:00:40 PM] buckyballreaction: which is silly [3/14/2011 3:00:42 PM] Chris Eykamp: right => this is in a-b-c-d 4 points per rect format [3/14/2011 3:00:58 PM] Chris Eykamp: there can be no holes in this [3/14/2011 3:01:17 PM] Chris Eykamp: edges are a-b b-c c-d d-a [3/14/2011 3:01:19 PM] buckyballreaction: yes [3/14/2011 3:01:27 PM] buckyballreaction: i now do a-b-c-d-e-f-g-h [3/14/2011 3:01:28 PM] Chris Eykamp: so is yours different? [3/14/2011 3:01:40 PM] buckyballreaction: and edges are generated in the same manner [3/14/2011 3:01:41 PM] Chris Eykamp: ok... so there can be no holes there, either [3/14/2011 3:01:46 PM] buckyballreaction: correct [3/14/2011 3:01:57 PM] Chris Eykamp: what if you swap out your for the one that works [3/14/2011 3:02:01 PM] Chris Eykamp: just swap the guts [3/14/2011 3:02:05 PM] Chris Eykamp: does it start to work? [3/14/2011 3:02:08 PM] buckyballreaction: guts? [3/14/2011 3:02:32 PM] Chris Eykamp: ah, I mean the inside of the function -- where you are generating 8 pts, replace with [3/14/2011 3:02:33 PM] Chris Eykamp: [Monday, March 14, 2011 2:59 PM] buckyballreaction: <<< bool Barrier::getCollisionPoly(Vector &polyPoints) { polyPoints = mPoints; return true; } [3/14/2011 3:02:41 PM] Chris Eykamp: won't do what you want, of course [3/14/2011 3:02:54 PM] buckyballreaction: i can do that quick enough... [3/14/2011 3:02:55 PM] Chris Eykamp: but will prove that everything else is ok [3/14/2011 3:13:02 PM] buckyballreaction: ok, created a duplicate of almost all the objects required so i could do everything EXACTLY the same [3/14/2011 3:13:11 PM] buckyballreaction: and a hole was still created [3/14/2011 3:14:07 PM] Chris Eykamp: no good [3/14/2011 3:14:15 PM] Chris Eykamp: not good [3/14/2011 3:15:03 PM] Chris Eykamp: using the old edge code/ [3/14/2011 3:15:08 PM] Chris Eykamp: ? [3/14/2011 3:15:19 PM] Chris Eykamp: or sam's? [3/14/2011 3:15:42 PM] buckyballreaction: old edge code [3/14/2011 3:16:18 PM] buckyballreaction: i did the same thing with sam's and it worked when i use the tangential cut on the buffers [3/14/2011 3:16:24 PM] Chris Eykamp: argh [3/14/2011 3:16:28 PM] buckyballreaction: but when i inset that cut, it started to fail [3/14/2011 3:17:07 PM] Chris Eykamp: can you isolate it down to a few lines? when you remove them it works, when you add them it fails [3/14/2011 3:17:19 PM] buckyballreaction: which is why i leaned on precision as the cause... [3/14/2011 3:17:59 PM] buckyballreaction: in which case? [3/14/2011 3:18:07 PM] buckyballreaction: when sam's works a bit better? [3/14/2011 3:18:21 PM] Chris Eykamp: you said you have everything working fine, and then you add the cut, then failure [3/14/2011 3:18:41 PM] buckyballreaction: if using the old edge method, and i stay with a-b-c-d buffers [3/14/2011 3:18:44 PM] buckyballreaction: it works [3/14/2011 3:18:53 PM] buckyballreaction: as soon as I go to a-b-c-d-e-f-g-h, it failes [3/14/2011 3:18:54 PM] Chris Eykamp: ok, but then adding efgh it fails [3/14/2011 3:19:05 PM] Chris Eykamp: ok, so the code that adds efgh is that only a few lines? [3/14/2011 3:19:19 PM] buckyballreaction: yep, it's goofy though [3/14/2011 3:19:33 PM] Chris Eykamp: so commenting out those lines fixes the problem? [3/14/2011 3:20:43 PM] buckyballreaction: http://pastie.org/1671615 [3/14/2011 3:20:52 PM] buckyballreaction: the one on top is rectangular [3/14/2011 3:20:59 PM] buckyballreaction: the one on the bottom is octagonal [3/14/2011 3:21:06 PM] Chris Eykamp: top works, bottom fails [3/14/2011 3:21:10 PM] buckyballreaction: yep [3/14/2011 3:21:23 PM] Chris Eykamp: everything else stays the same [3/14/2011 3:21:30 PM] buckyballreaction: yes, exactly [3/14/2011 3:22:00 PM] buckyballreaction: the bottom works with sam's method IF i remove the inset [3/14/2011 3:22:09 PM] Chris Eykamp: where is that line? [3/14/2011 3:22:13 PM] buckyballreaction: the inset is - (0.30 * BotNavMeshZone::BufferRadius) [3/14/2011 3:22:41 PM] buckyballreaction: crossPartial.normalize() and parallelPartial.normalize() [3/14/2011 3:23:35 PM] buckyballreaction: i inset 30% of the buffer along the unit vectors of the tangent line [3/14/2011 3:23:48 PM] buckyballreaction: it's just simple math [3/14/2011 3:23:59 PM] Chris Eykamp: ok, well this should all work [3/14/2011 3:24:09 PM] Chris Eykamp: I don't see where any holes can form [3/14/2011 3:24:37 PM] buckyballreaction: i have been toying with with rounding all the buffer points before hand to integers [3/14/2011 3:24:44 PM] buckyballreaction: toying with the idea, that is [3/14/2011 3:24:51 PM] Chris Eykamp: you're returning a list of 8 points that forms a closed polygon [3/14/2011 3:24:55 PM] buckyballreaction: yep [3/14/2011 3:24:58 PM] Chris Eykamp: a-b-c-d-e-f-g-h [3/14/2011 3:25:01 PM] buckyballreaction: yep [3/14/2011 3:25:10 PM] Chris Eykamp: how can we get holes in that? [3/14/2011 3:25:15 PM] buckyballreaction: and trust me - i went over it on graph paper a dozen times [3/14/2011 3:25:19 PM] Chris Eykamp: it's tight [3/14/2011 3:25:22 PM] buckyballreaction: yep [3/14/2011 3:25:31 PM] buckyballreaction: the problem is with the clipping [3/14/2011 3:25:34 PM] Chris Eykamp: I'm trusiting your geometry because it doesn't really matter [3/14/2011 3:26:18 PM] buckyballreaction: somewhere it sees two overlapping edges, and either one is clipped too short, or it is removed completely [3/14/2011 3:26:30 PM] Chris Eykamp: there aer no overlapping edges [3/14/2011 3:26:50 PM] Chris Eykamp: a-b can't overlap b-c [3/14/2011 3:26:55 PM] buckyballreaction: i mean in the prepareGeo method [3/14/2011 3:27:07 PM] buckyballreaction: it gets any other barriers that may be overlapping [3/14/2011 3:27:35 PM] buckyballreaction: then compares each segment of barrier 1 to barrier 2, if the segments overlap, it clips an edge [3/14/2011 3:27:43 PM] buckyballreaction: sorry, each edge [3/14/2011 3:28:04 PM] Chris Eykamp: I wonder if the subsequent stuff depends on getting perpendicular lines [3/14/2011 3:28:25 PM] buckyballreaction: it shouldn't [3/14/2011 3:28:39 PM] buckyballreaction: oh, actually [3/14/2011 3:28:41 PM] buckyballreaction: i don't know... [3/14/2011 3:28:53 PM] buckyballreaction: the algo allows for any direction edge as input [3/14/2011 3:29:14 PM] Chris Eykamp: yes, but it always receives 4 segements, each perp. to the last [3/14/2011 3:29:27 PM] buckyballreaction: i don't see where that matters [3/14/2011 3:29:32 PM] Chris Eykamp: it might not [3/14/2011 3:29:39 PM] buckyballreaction: it does some vector trickery only on the current edge [3/14/2011 3:30:00 PM] Chris Eykamp: but can you remove your cut, sot hat it works, then introduce some simple non-perpendicularity (add 10 to one of the verts, for example) [3/14/2011 3:30:07 PM] Chris Eykamp: and see if that works? [3/14/2011 3:30:53 PM] buckyballreaction: are you talking about overlapping barriers? [3/14/2011 3:30:55 PM] Chris Eykamp: I can see why you're frustrated [3/14/2011 3:30:59 PM] buckyballreaction: yes! [3/14/2011 3:31:20 PM] Chris Eykamp: maybe even going back to this: [3/14/2011 3:31:21 PM] buckyballreaction: it's bugs like these that seem like you dig forever [3/14/2011 3:31:22 PM] Chris Eykamp: [Monday, March 14, 2011 3:02 PM] Chris Eykamp: <<< bool Barrier::getCollisionPoly(Vector &polyPoints) { polyPoints = mPoints; return true; } [3/14/2011 3:31:57 PM] Chris Eykamp: and between those lines add polyPoints[1].x += 20; [3/14/2011 3:32:17 PM] Chris Eykamp: you'll now be returning something slightly skew [3/14/2011 3:32:32 PM] buckyballreaction: ok, let me try... [3/14/2011 3:32:36 PM] Chris Eykamp: see how everyting handles that [3/14/2011 3:33:06 PM] Chris Eykamp: make it more skew if you need a clearer visual [3/14/2011 3:40:55 PM] buckyballreaction: wow that broke it [3/14/2011 3:41:19 PM] Chris Eykamp: shouldn't have... [3/14/2011 3:41:25 PM] Chris Eykamp: so that's interesting [3/14/2011 3:41:59 PM] buckyballreaction: so there is this line of code in prepareGeo: findObjects(BarrierType, fillObjects, getExtent()); [3/14/2011 3:42:23 PM] buckyballreaction: getExtent() returns the bounds of the barrier instead of the buffer [3/14/2011 3:42:54 PM] buckyballreaction: when I change that to be the bounds of the buffer, the rectagular buffer now fails on ctf3 [3/14/2011 3:43:25 PM] Chris Eykamp: what do you mean fails? [3/14/2011 3:43:37 PM] buckyballreaction: no zones are created on the level [3/14/2011 3:43:43 PM] Chris Eykamp: ah [3/14/2011 3:43:51 PM] Chris Eykamp: can you visualize the geom that was generated? [3/14/2011 3:43:57 PM] buckyballreaction: yep [3/14/2011 3:44:00 PM] buckyballreaction: want a screenshot? [3/14/2011 3:44:09 PM] buckyballreaction: and of which case? [3/14/2011 3:44:10 PM] Chris Eykamp: sure [3/14/2011 3:44:22 PM] Chris Eykamp: I want to see what the skewed edges look like [3/14/2011 3:44:26 PM] buckyballreaction: haha, ok [3/14/2011 3:44:35 PM] Chris Eykamp: I want to see if there are any obvious holes [3/14/2011 3:44:43 PM] Chris Eykamp: and if what I expcected happened [3/14/2011 3:45:17 PM] buckyballreaction: http://96.2.123.136/upload/1snapshot16.png [3/14/2011 3:45:24 PM] buckyballreaction: :D [3/14/2011 3:45:39 PM] Chris Eykamp: ok, well, there's clearly an issue here [3/14/2011 3:46:17 PM] Chris Eykamp: could there be a perp. requirement? [3/14/2011 3:46:47 PM] buckyballreaction: if that were true, then wouldn't the original edge geo fail as well? [3/14/2011 3:46:56 PM] buckyballreaction: oh [3/14/2011 3:47:19 PM] Chris Eykamp: try this: instead of a diagonal line cutting across each corner, generate an interior point and create a stair-step effect [3/14/2011 3:47:22 PM] Chris Eykamp: I'll draw [3/14/2011 3:47:33 PM] buckyballreaction: ok [3/14/2011 3:47:34 PM] Chris Eykamp: http://www.twiddla.com/504958 [3/14/2011 3:48:20 PM] buckyballreaction: ah ok [3/14/2011 3:48:25 PM] Chris Eykamp: still cutting corners, keeping everything perp [3/14/2011 3:48:47 PM] buckyballreaction: ok, who else joined? [3/14/2011 3:48:48 PM] Chris Eykamp: not our solution, but would test more complex geoms that are all perp [3/14/2011 3:48:57 PM] buckyballreaction: i draw now... [3/14/2011 3:48:57 PM] Chris Eykamp: who knows? [3/14/2011 3:49:00 PM] buckyballreaction: how about this... [3/14/2011 3:49:42 PM] Chris Eykamp: sure [3/14/2011 3:49:49 PM] Chris Eykamp: that would test the same thing [3/14/2011 3:49:55 PM] buckyballreaction: ok because that is easiest on the brain :) [3/14/2011 3:50:00 PM] Chris Eykamp: understood [3/14/2011 3:50:04 PM] Chris Eykamp: perfect [3/14/2011 3:56:39 PM] buckyballreaction: so feed a 12 pointed polygon instead? [3/14/2011 3:56:48 PM] Chris Eykamp: sure [3/14/2011 3:56:51 PM] buckyballreaction: ok [3/14/2011 3:57:24 PM] Chris Eykamp: you should be able to feed anything [3/14/2011 3:57:40 PM] buckyballreaction: even concave? [3/14/2011 4:06:15 PM] karamazovapy: pigs and sheep! [3/14/2011 4:06:39 PM] Chris Eykamp: I _think_ so [3/14/2011 4:06:45 PM] karamazovapy: ooooh... [3/14/2011 4:07:58 PM] karamazovapy: wow, we're almost at 4,000 posts on the forums [3/14/2011 4:12:00 PM] buckyballreaction: http://96.2.123.136/upload/1snapshot17.png [3/14/2011 4:12:09 PM] buckyballreaction: and zones do get created... [3/14/2011 4:13:35 PM] buckyballreaction: but probably because there are so many edges now that holes cannot possible happen... [3/14/2011 4:13:58 PM] Chris Eykamp: why still all the random uncut segments? [3/14/2011 4:14:19 PM] Chris Eykamp: but now you can try removing one fo the step points to create a diagonal cut [3/14/2011 4:14:25 PM] Chris Eykamp: so feed it 11 points [3/14/2011 4:14:39 PM] buckyballreaction: maybe we don't really understand what clipRenderLinestoPoly does... [3/14/2011 4:14:41 PM] buckyballreaction: ok [3/14/2011 4:14:51 PM] Chris Eykamp: maybe [3/14/2011 4:17:14 PM] buckyballreaction: http://96.2.123.136/upload/snapshot18.png [3/14/2011 4:17:23 PM] buckyballreaction: 11 points [3/14/2011 4:18:31 PM] Chris Eykamp: way too many interior segments... we should just be looking at an outline [3/14/2011 4:18:50 PM] buckyballreaction: yep [3/14/2011 4:19:31 PM] buckyballreaction: it might be the extents problem: let me expand the extents to the bounding rect of the buffers [3/14/2011 4:20:46 PM] Chris Eykamp: ok [3/14/2011 4:20:53 PM] buckyballreaction: no change... [3/14/2011 4:22:52 PM] Chris Eykamp: well, all those interior segments should be gone [3/14/2011 4:23:27 PM] Chris Eykamp: how about messing with the function that creates the geom for actual rendering, and sticking an extra point or two in there to see if the lines get cleaned up appropriately in that code path? [3/14/2011 4:24:22 PM] buckyballreaction: for the buffers? or the barrier edges? [3/14/2011 4:24:37 PM] Chris Eykamp: barrier edges [3/14/2011 4:28:34 PM] buckyballreaction: http://96.2.123.136/upload/snapshot19.png [3/14/2011 4:29:04 PM] Chris Eykamp: now that is awesome [3/14/2011 4:29:13 PM] buckyballreaction: haha [3/14/2011 4:31:47 PM] buckyballreaction: sooo [3/14/2011 4:31:54 PM] buckyballreaction: i wonder what conclusions we can draw [3/14/2011 4:33:58 PM] Chris Eykamp: can you try making the geom all perpendicular? [3/14/2011 4:35:26 PM] buckyballreaction: clarify [3/14/2011 4:39:37 PM] Chris Eykamp: oh, like adding a stairstep like you did before [3/14/2011 4:39:56 PM] buckyballreaction: ok [3/14/2011 4:40:35 PM] Chris Eykamp: I'm really confused about all this [3/14/2011 4:40:44 PM] Chris Eykamp: why it works/worked [3/14/2011 4:40:51 PM] Chris Eykamp: or, alternatively [3/14/2011 4:41:07 PM] Chris Eykamp: you could try and swap sam's edge generator back in with the new screwed up wall outlines [3/14/2011 4:41:15 PM] Chris Eykamp: and see if we get the same thing [3/14/2011 4:41:49 PM] buckyballreaction: on which messed-up outlines? [3/14/2011 4:42:00 PM] buckyballreaction: the stepping buffers? [3/14/2011 4:42:13 PM] Chris Eykamp: the most recent ones -- the ones that are skewed wall outlines; not the buffers [3/14/2011 4:42:21 PM] buckyballreaction: ok [3/14/2011 4:42:27 PM] Chris Eykamp: I'm struggling to understand what the f is happening [3/14/2011 4:42:35 PM] buckyballreaction: yep [3/14/2011 4:42:35 PM] Chris Eykamp: because nothing I expect is ocurring [3/14/2011 4:42:40 PM] Chris Eykamp: always the opposite [3/14/2011 4:42:50 PM] Chris Eykamp: and I thought I had aa good grasp on this [3/14/2011 4:46:14 PM] buckyballreaction: http://96.2.123.136/upload/snapshot20.png [3/14/2011 4:46:51 PM] buckyballreaction: so sam's is definitely superior in this case [3/14/2011 4:47:34 PM] Chris Eykamp: that's what I would expect [3/14/2011 4:47:53 PM] Chris Eykamp: that's what I wanted to see on the last one [3/14/2011 4:47:57 PM] Chris Eykamp: so now... let's try this [3/14/2011 4:48:48 PM] Chris Eykamp: try changing the wall generation from these screwy walls to your octagonal cut walls, with or without buffer, to see if we get picture perfect rendering [3/14/2011 4:48:59 PM] Chris Eykamp: unless we'e already established that we will [3/14/2011 4:49:52 PM] buckyballreaction: i have done that: we get good rendering [3/14/2011 4:49:57 PM] buckyballreaction: from wall segments [3/14/2011 4:50:00 PM] buckyballreaction: no holes [3/14/2011 4:50:06 PM] Chris Eykamp: no holes? [3/14/2011 4:50:20 PM] buckyballreaction: well [3/14/2011 4:50:27 PM] Chris Eykamp: or some tiny holes [3/14/2011 4:50:46 PM] buckyballreaction: we are back to when i use the tangential cut [3/14/2011 4:50:53 PM] buckyballreaction: the tangential cut works [3/14/2011 4:51:08 PM] buckyballreaction: but any inset creates a few holes on the map [3/14/2011 4:51:14 PM] Chris Eykamp: tangential cut works, but tan+1 fails? [3/14/2011 4:51:16 PM] buckyballreaction: with sam's method, that is [3/14/2011 4:51:25 PM] buckyballreaction: tan -1 [3/14/2011 4:51:27 PM] buckyballreaction: yes [3/14/2011 4:51:29 PM] Chris Eykamp: sorry [3/14/2011 4:51:41 PM] Chris Eykamp: ok, well... then maybe the key is to fix sam's stuff [3/14/2011 4:51:46 PM] Chris Eykamp: so no holes [3/14/2011 4:51:57 PM] buckyballreaction: which is why i thought it was a precision problem - [3/14/2011 4:51:59 PM] Chris Eykamp: round and round [3/14/2011 4:52:31 PM] Chris Eykamp: I think sam's should be fixable with the solution I suggested earlier -- create a single point and use it for both endpoints you're merging [3/14/2011 4:52:50 PM] buckyballreaction: can you draw that for me? [3/14/2011 4:53:09 PM] Chris Eykamp: http://www.twiddla.com/504980 [3/14/2011 4:55:22 PM] Chris Eykamp: do you think that will work? [3/14/2011 4:55:39 PM] buckyballreaction: i think it should [3/14/2011 4:55:52 PM] buckyballreaction: i have to analyse his method more in-depth, though [3/14/2011 4:55:56 PM] Chris Eykamp: also, we could try printing out the coords for one of the walls and see where and how big the holes are [3/14/2011 4:56:13 PM] Chris Eykamp: not sure that would be helpful, but maybe [3/14/2011 9:03:26 PM] buckyballreaction: can someone explain to me what collisionTime is supposed to mean/do in gridDB.cpp PolygonLineIntersect() ? [3/14/2011 9:33:34 PM] Samuel Williams: collisionTime is between 0.0 and 1.0, starting at 0.0 (Point1) if it does intersect, collisionTime will be between 0.0 (closer to Point1) and 1.0 (closer to Point2) [3/14/2011 9:34:49 PM | Edited 9:39:44 PM] Samuel Williams: collisionTime is useless if it does not collide at all (PolygonLineIntersect returns false). collisionTime is output variable, and is useful when it does collide (returns true) [3/14/2011 9:36:36 PM] Samuel Williams: my getPolygonLineCollisionPoints(...) in BotNavMeshZone.cpp might need improvements. [3/14/2011 10:22:51 PM] Chris Eykamp: perhaps collisionTme should eb renamed to soemthing more intuitive [3/14/2011 10:23:35 PM] Chris Eykamp: open to suggestions [3/14/2011 10:42:35 PM] buckyballreaction: did on eof you write PolygonLineIntersect () ? [3/14/2011 10:43:09 PM] buckyballreaction: (and there is a huge portion of the method commented out...) [3/14/2011 10:54:51 PM] Chris Eykamp: Mmmmm... I think I grabbed that from somewhere [3/14/2011 10:55:04 PM] Chris Eykamp: though if I did, it should be in the comments [3/14/2011 10:55:16 PM] Chris Eykamp: might have come with zap [3/14/2011 11:00:22 PM] buckyballreaction: so collisionTime is a weighting parameter? [3/14/2011 11:02:54 PM] buckyballreaction: or is it a metric for telling how close to one of the input points the segment intersects the polygon? [3/14/2011 11:03:16 PM] Chris Eykamp: the second [3/14/2011 11:03:23 PM] Chris Eykamp: tells you where along your ray the collision occurs [3/14/2011 11:04:35 PM] buckyballreaction: and it is linear? for instance, if I multiplied the collisionTime by length of the segment from point A to point B, it would tell me how far away from point A it is? [3/14/2011 11:05:16 PM] Chris Eykamp: yes [3/14/2011 11:05:19 PM] buckyballreaction: cool [3/14/2011 11:05:20 PM] buckyballreaction: thanks [3/14/2011 11:05:30 PM] buckyballreaction: i'll try to come up with a better name [3/14/2011 11:05:38 PM] Chris Eykamp: :) [3/14/2011 11:11:50 PM] buckyballreaction: how about lengthRatio? [3/14/2011 11:12:03 PM] buckyballreaction: or intersectionLengthRatio [3/14/2011 11:12:23 PM] buckyballreaction: man this is a hard concept to put into words [3/14/2011 11:12:55 PM] Chris Eykamp: mmmm [3/14/2011 11:13:13 PM] buckyballreaction: or pointIntersectionRatioAsLengthOfSegmentLargeVariable [3/14/2011 11:16:32 PM] buckyballreaction: i'll just add a lengthy comment [3/14/2011 11:37:05 PM] Chris Eykamp: reverting int conversion attempt #2 [3/14/2011 11:44:23 PM] buckyballreaction: a failed attempt? [3/14/2011 11:45:54 PM] Chris Eykamp: probably [3/14/2011 11:46:05 PM] Chris Eykamp: it's like pulling a thread on a sweater [3/14/2011 11:46:19 PM] Chris Eykamp: pull one place, and 60K lines of code need to be fixed [3/14/2011 11:46:24 PM] buckyballreaction: good description [3/14/2011 11:54:48 PM] Samuel Williams: I fixed a small problem with polygonIntersectSegment.. I have a new way of pushing only the selected branch (when you feel like keeping the old one behind for a while and not merging) http://96.2.123.136/bitfighter/push_one_branch.gif [3/14/2011 11:54:49 PM] Chris Eykamp: may have found a shortcut to get where we want to go with triangle [3/14/2011 11:55:17 PM] Samuel Williams: only one branch get pushed to main [3/14/2011 11:56:00 PM] buckyballreaction: what was your small fix? [3/14/2011 11:56:37 PM] Samuel Williams: polygonIntersectsSegment in SweptEllipsoid.cpp [3/14/2011 11:56:50 PM] buckyballreaction: ahh [3/14/2011 11:57:03 PM] Samuel Williams: only one uses this function (polygonIntersectsSegment) it is engineering. [3/14/2011 11:57:12 PM] buckyballreaction: ok [3/14/2011 11:57:29 PM] buckyballreaction: i have questions for you regarding your new render geometry method [3/14/2011 11:58:33 PM] buckyballreaction: i a formulating them still... [3/14/2011 11:59:25 PM] buckyballreaction: in getPolygonLineCollisionPoints() [3/14/2011 11:59:43 PM] buckyballreaction: why do you do: collisionTime = collisionTime + 0.01; [3/15/2011 12:01:02 AM] Samuel Williams: it might by random find the exact same collision point with collisionTime = 0.0, and get messed up. [3/15/2011 12:04:10 AM] Samuel Williams: it not very efficient, it will be better and faster to get all the points in one collision check, instead of repeating with shorter line segment. [3/15/2011 12:11:06 AM] buckyballreaction: is there even a need for that while loop? [3/15/2011 12:12:51 AM] Zoomber: chris, is it possible for me to talk to you in game right now? [3/15/2011 12:12:58 AM] Zoomber: i see you online, maybe your just testing something? [3/15/2011 12:14:11 AM] buckyballreaction: that's all we do now is test... [3/15/2011 12:14:19 AM] Zoomber: hmm [3/15/2011 12:14:30 AM] Zoomber: lol [3/15/2011 12:16:07 AM] Samuel Williams: getPolygonLineCollisionPoints() , the while loop could be removed when we can get all the colliding points in one collide test [3/15/2011 12:19:08 AM] Samuel Williams: host named "Stay away im editing" (password protected) appears to be Raptor's host, as Wat's testing host is usually "Test service" [3/15/2011 12:19:23 AM] buckyballreaction: yep :) [3/15/2011 12:19:25 AM] Zoomber: lol [3/15/2011 12:20:04 AM] Samuel Williams: My testing host is currenly named "Sam Test" [3/15/2011 12:28:46 AM] Zoomber: my testing host is currently named "bitfighter host" [3/15/2011 12:29:18 AM] Zoomber: ;) [3/15/2011 12:29:29 AM] Zoomber: oooh, a new version of machg [3/15/2011 12:31:59 AM] Zoomber: woah [3/15/2011 12:32:15 AM] Zoomber: check this out [3/15/2011 12:32:30 AM] *** Zoomber sent Screen shot 2011-03-14 at 10.31.54 PM.png *** [3/15/2011 12:32:38 AM] Zoomber: i clicked two buttons [3/15/2011 12:32:59 AM] Zoomber: shows incoming changes [3/15/2011 12:33:08 AM] Zoomber: or outgoing, if i wanted to do that [3/15/2011 12:33:50 AM] Zoomber: now im clicking the "pull" button [3/15/2011 12:34:18 AM] Zoomber: Results: window pops up with the changesets [3/15/2011 12:34:33 AM] Zoomber: this is..heaven [3/15/2011 12:35:01 AM] buckyballreaction: oh my goodnes i received that image [3/15/2011 12:35:35 AM] Samuel Williams: zoomber can send to bbr ok? [3/15/2011 12:35:44 AM] buckyballreaction: i got that one [3/15/2011 12:35:47 AM] buckyballreaction: that is weird [3/15/2011 12:36:03 AM] Zoomber: im going to try to add my old google clone of the source [3/15/2011 12:36:15 AM] Zoomber: and see if i can pull from source to my computer using hg, and push to my google clone [3/15/2011 12:36:31 AM | Edited 12:37:07 AM] Samuel Williams: could be that the mac version to skype is playing nice (being able to send files to) to both windows and linux? [3/15/2011 12:37:25 AM] Zoomber: maybe the new update? [3/15/2011 12:37:39 AM] Zoomber: i just got a message that there was an update to skype [3/15/2011 12:37:50 AM] buckyballreaction: none for linux yet... [3/15/2011 12:38:26 AM] Zoomber: hmm [3/15/2011 12:38:38 AM] Zoomber: maybe it fixed the way macs handle outgoing file transfer? [3/15/2011 12:39:02 AM] Samuel Williams: i will try a sending test, and see if both of you got the file.. [3/15/2011 12:39:09 AM] *** Samuel Williams sent test.gif,... *** [3/15/2011 12:39:27 AM] buckyballreaction: not i [3/15/2011 12:39:35 AM] Zoomber: wait, try again? [3/15/2011 12:39:38 AM] buckyballreaction: it just says : * Samuel Williams sent file "test.gif" [3/15/2011 12:39:38 AM] Zoomber: i got a message asking for it [3/15/2011 12:39:41 AM] Zoomber: but it went away [3/15/2011 12:39:46 AM] Zoomber: oh i got it [3/15/2011 12:39:59 AM] Zoomber: i guess it downloaded it automatically for me [3/15/2011 12:40:06 AM] Zoomber: or i hit enter by mistake, or soemthign [3/15/2011 12:40:22 AM] Samuel Williams: will i guess there is problem with windows skype unable to send file to linux? [3/15/2011 12:40:22 AM] Zoomber: no way... [3/15/2011 12:40:54 AM] Zoomber: Activity: Pushing Changesets. Im pushing the changes to my google clone with one button click :O [3/15/2011 12:41:07 AM] Zoomber: and it doesnt..hate me [3/15/2011 12:42:38 AM] buckyballreaction: sam, in layman's terms, can you explain to me what this is doing?: Point midPoint = (points[j] + points[j-1]) * 0.5 + Point(0.003,0.007); // to avoid mssing lines, duplicate segments is better then mising segments. Point midPoint2 = (points[j] + points[j-1]) * 0.5 - Point(0.003,0.007); bool isInside = false; for(S32 k=0; k(objects[k]); isInside = isInside || (PolygonContains2(obj->mBotZoneBufferGeometry.address(), obj->mBotZoneBufferGeometry.size(), midPoint) && PolygonContains2(obj->mBotZoneBufferGeometry.address(), obj->mBotZoneBufferGeometry.size(), midPoint2)); } [3/15/2011 12:43:18 AM] buckyballreaction: because that is the part I have (finally) narrowed it down to not being 100% effective [3/15/2011 12:43:59 AM] Samuel Williams: When it is divided by colliding points, and connects lines together, it need to check if the line is inside the wall. [3/15/2011 12:44:19 AM] Samuel Williams: When line is not inside wall, it will add it to rendering line segments [3/15/2011 12:45:07 AM] buckyballreaction: so why do you: isInside = isInside || .... [3/15/2011 12:45:12 AM] Samuel Williams: And, it is my way of trying to avoid missing line, when line is on the edge.. [3/15/2011 12:45:27 AM] Samuel Williams: isInside starts as false. [3/15/2011 12:45:56 AM] Zoomber: wow, it succeded [3/15/2011 12:46:00 AM] buckyballreaction: yes, but it is OR'ing it everytime through the loop [3/15/2011 12:46:12 AM] Zoomber: https://code.google.com/r/ratchet9clank-bitfighter02/source/list [3/15/2011 12:46:31 AM] buckyballreaction: @zoomber - you're up to date! [3/15/2011 12:46:46 AM] Zoomber: raptor, would you like me to help you set mac hg up on your vm? i think you would really enjoy this gui [3/15/2011 12:46:56 AM] Samuel Williams: "isInside = isInside || " maybe i though it will be better that way, at the time i wrote that. [3/15/2011 12:47:16 AM] buckyballreaction: @zoomber, maybe sometime - but not until i get these bot algos worked out :) [3/15/2011 12:47:23 AM] buckyballreaction: @sam, ok [3/15/2011 12:47:54 AM] Zoomber: lucky us, mac users. we have two applications. xcode and machg. work on one, push on the other [3/15/2011 12:49:00 AM] buckyballreaction: sam, thanks for your patience as I deconstruct your methods [3/15/2011 12:58:59 AM] Samuel Williams: Another possibility why sending failed between me and BBR's is that it thinks it is offline to each other? http://96.2.123.136/bitfighter/skype1.gif [3/15/2011 12:59:19 AM] Zoomber: add eachother as friends? [3/15/2011 12:59:26 AM] Samuel Williams: yes. [3/15/2011 12:59:32 AM] Zoomber: ahh thats it [3/15/2011 12:59:38 AM] Zoomber: the reason bbr culdnt accept my image was cause [3/15/2011 12:59:56 AM] Zoomber: he wasnt in contacts untill recently [3/15/2011 1:02:59 AM] buckyballreaction: so now i have to be friends with people? [3/15/2011 1:03:25 AM] Samuel Williams: Looks like yes if you want to send and receive files. [3/15/2011 1:11:51 AM] buckyballreaction: the discrepancy is less than 0.5 for points that don't match up... [3/15/2011 1:18:25 AM] Zoomber: yes, you have to make friends [3/15/2011 1:18:35 AM] Zoomber: goodnight, i forgot its an hour later [3/15/2011 1:18:45 AM] buckyballreaction: night [3/15/2011 10:46:27 AM] buckyballreaction: i was so close last night to getting sam's method super-robust [3/15/2011 10:46:35 AM] buckyballreaction: then my brain went fuzzy [3/15/2011 10:46:43 AM] buckyballreaction: and now i have to start all over... [3/15/2011 10:50:16 AM] Chris Eykamp: I documented sam's method, so I mostly understand it now [3/15/2011 11:00:01 AM] Chris Eykamp: check out the latest [3/15/2011 11:00:16 AM] buckyballreaction: ok [3/15/2011 11:00:31 AM] Chris Eykamp: and see if enabling the rounding macro on 378 of barrier.cpp helps at all [3/15/2011 11:00:46 AM] Chris Eykamp: I don't think there are any holes [3/15/2011 11:00:58 AM] buckyballreaction: that's what i was working on last night! [3/15/2011 11:01:10 AM] Chris Eykamp: maybe something one of us did will help [3/15/2011 11:01:23 AM] Chris Eykamp: I'm getting sick fo this, just want to get it fixed [3/15/2011 11:01:24 AM] buckyballreaction: well my code was still broken when i went unconscious [3/15/2011 11:01:27 AM] buckyballreaction: yeah, me too [3/15/2011 11:01:37 AM] Chris Eykamp: ok, well, heading in to work, see you later [3/15/2011 11:01:45 AM] buckyballreaction: later [3/15/2011 11:35:09 AM] buckyballreaction: the rounding exacerbates the issue on my test map: the holes are bigger [3/15/2011 12:05:08 PM] Chris Eykamp: the holes are bigger?!? [3/15/2011 12:05:19 PM] Chris Eykamp: ok, well that makes it easier to see them then [3/15/2011 12:06:00 PM] Chris Eykamp: on the (admittedly simple) test cases I tried, there were no holes that I could see [3/15/2011 12:15:32 PM] buckyballreaction: i finally narrowed it down to one segment intersection on ctf3 that fails [3/15/2011 12:15:48 PM] buckyballreaction: it looks like an entire segment is being dropped [3/15/2011 12:18:33 PM] buckyballreaction: http://96.2.123.136/upload/snapshot21.png [3/15/2011 12:19:27 PM] buckyballreaction: but actually - i was working with this exact same segment last night, and this didn't happen with sam's method - instead I found a hole that was only about 0.4 wide [3/15/2011 12:27:46 PM] buckyballreaction: i'm an id10t [3/15/2011 12:29:28 PM] buckyballreaction: i was using the wrong method line... [3/15/2011 12:30:22 PM] Chris Eykamp: [[did my comments conflict with stuff you did?]] [3/15/2011 12:30:32 PM] Chris Eykamp: that's a pretty big hole [3/15/2011 12:31:00 PM] buckyballreaction: testing that right now... [3/15/2011 12:59:50 PM] buckyballreaction: fail [3/15/2011 1:00:53 PM] Chris Eykamp: argh [3/15/2011 1:30:42 PM] buckyballreaction: there's something different happening than from what I saw alst night... i'm going to try to revert your changes to sam's method; although, i don't see anything special that you did... [3/15/2011 1:33:37 PM] Chris Eykamp: I added some spaces! [3/15/2011 1:43:41 PM] buckyballreaction: weird... sam's method from yesterday works [3/15/2011 1:43:48 PM] buckyballreaction: i mean, it still has problems [3/15/2011 1:43:56 PM] buckyballreaction: but it doesn't have that gaping hole [3/15/2011 1:44:02 PM] buckyballreaction: time to get out the diff view... [3/15/2011 1:45:37 PM] Chris Eykamp: hrm [3/15/2011 1:46:06 PM] Chris Eykamp: I'm pretty sure I didn't change the functionality... so I'll be interested to see what diff says [3/15/2011 1:46:13 PM] buckyballreaction: i am sooo close... [3/15/2011 1:46:24 PM] Chris Eykamp: I just wanted insert some space! [3/15/2011 1:46:31 PM] Chris Eykamp: between you and your goal [3/15/2011 1:58:57 PM] buckyballreaction: figured it out - i had missed a variable i needed to switch out for the bot zones [3/15/2011 1:59:26 PM] buckyballreaction: now to try the rounding again - which is a much simpler solution than I was trying to implement last night [3/15/2011 2:00:21 PM] Chris Eykamp: rounding has a problem, but let's see how it works [3/15/2011 2:00:35 PM] Chris Eykamp: the problem won't affect you [3/15/2011 2:01:05 PM] buckyballreaction: i changed the rounding to: #define ROUND(x) (F32(S32((x) + 0.5))) [3/15/2011 2:02:40 PM] Chris Eykamp: mmmm... ok. technically not correct, of course, but maybe that doesn't matter [3/15/2011 2:03:01 PM] buckyballreaction: well, when I used the other way, it split points 1 point apart [3/15/2011 2:03:04 PM] Chris Eykamp: really? [3/15/2011 2:03:17 PM] buckyballreaction: yep [3/15/2011 2:03:24 PM] Chris Eykamp: how could that be? [3/15/2011 2:03:48 PM] buckyballreaction: this was the sorted point data coming out: 1296.000000 -1075.000000 1296.000000 -1075.000000 1296.000000 -1145.000000 1296.000000 -1145.000000 1303.000000 -1087.000000 1310.000000 -1061.000000 1310.000000 -1159.000000 1310.000000 -1159.000000 1368.000000 -1159.000000 1369.000000 -1159.000000 1624.000000 -797.000000 1624.000000 -797.000000 1645.000000 -798.000000 1645.000000 -798.000000 1690.000000 -870.000000 1690.000000 -870.000000 1691.000000 -850.000000 1691.000000 -850.000000 [3/15/2011 2:03:55 PM] buckyballreaction: 1368.000000 [3/15/2011 2:04:00 PM] buckyballreaction: 1369.000000 [3/15/2011 2:04:26 PM] buckyballreaction: i still have to get the data with my change [3/15/2011 2:04:33 PM] buckyballreaction: (it'll probably still split the point) [3/15/2011 2:04:39 PM] buckyballreaction: which means it's another problem [3/15/2011 2:48:48 PM] buckyballreaction: is there a way to easily output all the coords in game of the segment? [3/15/2011 2:49:04 PM] buckyballreaction: the coords of the edge points, that is [3/15/2011 2:54:31 PM] Chris Eykamp: Are you expecting two of each point? [3/15/2011 2:54:45 PM] buckyballreaction: yep [3/15/2011 2:54:56 PM] Chris Eykamp: [Tuesday, March 15, 2011 2:48 PM] buckyballreaction: <<< is there a way to easily output all the coords in game of the segment?not sure what you mean [3/15/2011 2:55:16 PM] buckyballreaction: there is /showcoords for the ship [3/15/2011 2:55:28 PM] buckyballreaction: anything for barriers? [3/15/2011 2:55:39 PM] Chris Eykamp: ah, no there is not [3/15/2011 2:55:45 PM] Chris Eykamp: it would be easy enough to add... [3/15/2011 2:55:53 PM] Chris Eykamp: /showwallcoords? [3/15/2011 2:56:03 PM] buckyballreaction: just curious... [3/15/2011 2:56:28 PM] buckyballreaction: i have a hunch about the problem with sam's method [3/15/2011 2:56:42 PM] Chris Eykamp: I wanted to show the coords of the crosshairs, but never coded it [3/15/2011 2:56:51 PM] Chris Eykamp: that might be the most useful [3/15/2011 2:57:26 PM] buckyballreaction: i don't know how to handle it though [3/15/2011 2:57:33 PM] buckyballreaction: can i show you via drawing? [3/15/2011 2:57:53 PM] Chris Eykamp: sure [3/15/2011 2:57:55 PM] buckyballreaction: http://www.twiddla.com/505634 [3/15/2011 3:16:29 PM] Chris Eykamp: so maybe your theory is right [3/15/2011 3:16:39 PM] Chris Eykamp: try a collinear test, and see if that fixes it [3/15/2011 3:17:16 PM] buckyballreaction: it uses PolygonContains2 [3/15/2011 3:17:34 PM] buckyballreaction: which only returns true/false [3/15/2011 3:18:48 PM] Chris Eykamp: what does? [3/15/2011 3:19:06 PM] Chris Eykamp: uses PolygonContains2 [3/15/2011 3:19:06 PM] buckyballreaction: PolygonContains2 takes as input: poly, poly.size, point [3/15/2011 3:19:14 PM] buckyballreaction: the isInside check [3/15/2011 3:19:29 PM] Chris Eykamp: right so do isColliner {} else {if isInside() { } } [3/15/2011 3:19:53 PM] Chris Eykamp: or soemthing like that [3/15/2011 3:20:25 PM] buckyballreaction: i'll have to loop through all the segments of the poly and compare it to the current segment first [3/15/2011 3:20:29 PM] buckyballreaction: is that costly? [3/15/2011 3:20:54 PM] Chris Eykamp: probably; but the important thing is to test the theory [3/15/2011 3:20:58 PM] buckyballreaction: ok [3/15/2011 3:20:59 PM] Chris Eykamp: then we'll worry about performance [3/15/2011 3:21:05 PM] buckyballreaction: okey doke [3/15/2011 3:21:06 PM] Chris Eykamp: also, this only runs once [3/15/2011 3:21:10 PM] Chris Eykamp: out of game [3/15/2011 3:21:15 PM] Chris Eykamp: so it's not super critical [3/15/2011 3:21:25 PM] Chris Eykamp: we'll do our best, but not super critical [3/15/2011 3:23:04 PM] Chris Eykamp: could also add for(S32 k = ...) {}if(isInside()) { if(Collinear()) } } else { // isInside == false } [3/15/2011 3:23:23 PM] Chris Eykamp: because colliearity will only happen if isInside is true, or so we think [3/15/2011 3:27:54 PM] buckyballreaction: ok [3/15/2011 3:28:03 PM] buckyballreaction: i'll work on this [3/15/2011 3:28:05 PM] buckyballreaction: thanks [3/15/2011 4:50:55 PM] buckyballreaction: well this failed: if(PolygonContains2(obj->mBotZoneBufferGeometry.address(), obj->mBotZoneBufferGeometry.size(), midPoint) && PolygonContains2(obj->mBotZoneBufferGeometry.address(), obj->mBotZoneBufferGeometry.size(), midPoint2)) { bool hasColinear = false; S32 l_prev = mBotZoneBufferGeometry.size() - 1; for (S32 l = 0; l < mBotZoneBufferGeometry.size(); l++) { if(segmentsColinear(points[j], points[j-1], mBotZoneBufferGeometry[l_prev], mBotZoneBufferGeometry[l])) { hasColinear = true; break; } l_prev = l; } if (!hasColinear) isInside = true; } [3/15/2011 4:51:43 PM] buckyballreaction: but my logic is probably just wrong [3/15/2011 4:52:37 PM] Chris Eykamp: does hasColinear ever get set? [3/15/2011 4:52:48 PM] buckyballreaction: yep [3/15/2011 4:53:01 PM] Chris Eykamp: do you know if it gets set when you expect it to be set? [3/15/2011 4:53:24 PM] buckyballreaction: because some pieces are properly chopped off and others are not [3/15/2011 4:53:55 PM] Chris Eykamp: actaully, need to be careful abou this case -\___/- [3/15/2011 4:54:06 PM] Chris Eykamp: where the end segs are colinear but not adjacent [3/15/2011 4:54:24 PM] Chris Eykamp: but that's not your problem here [3/15/2011 4:55:51 PM] Chris Eykamp: mmm... what does happen? spectacular failure, or just broken the same way it was broken? [3/15/2011 4:56:28 PM] Chris Eykamp: because your logic could be right, and the underlying hypothesis wrong [3/15/2011 4:58:08 PM] Chris Eykamp: now hold on here a sec... looks like you are checking to see if segment j is colinear with any of the edges in the buffered wall. is that really what you want to do? [3/15/2011 5:02:53 PM] Chris Eykamp: are you ever setting isInside = false? [3/15/2011 5:04:41 PM] buckyballreaction: it starts out as false [3/15/2011 5:04:49 PM] buckyballreaction: in the parent loop (not shown) [3/15/2011 5:05:19 PM] Chris Eykamp: just making sure [3/15/2011 5:05:29 PM] buckyballreaction: >> "… now hold on here a sec... looks like you are checking to see if segment j is colinear with any of the edges in the buffered wall. is that really what you want to do?" [3/15/2011 5:05:34 PM] buckyballreaction: no that is not :0 [3/15/2011 5:05:40 PM] buckyballreaction: :) [3/15/2011 5:05:51 PM] Chris Eykamp: phew; because I'm not sure what else to suggest! [3/15/2011 5:06:51 PM] buckyballreaction: the problem is inherent to PolygonContains2 - it requires a point and a polygon [3/15/2011 5:07:05 PM] buckyballreaction: so maybe this isn't even the place to check for coincidence [3/15/2011 5:08:43 PM] Chris Eykamp: well, we have one seg: points[j] + points[j-1] [3/15/2011 5:08:49 PM] buckyballreaction: oh oops [3/15/2011 5:09:42 PM] buckyballreaction: let me change something real quick... [3/15/2011 5:09:50 PM] buckyballreaction: i must be getting tired... [3/15/2011 5:10:04 PM] Chris Eykamp: maybe we want to see if that seg is colinear with any of the segs in obj->mPoints.address() [3/15/2011 5:10:39 PM] buckyballreaction: yes! [3/15/2011 5:10:42 PM] buckyballreaction: that was my mistake [3/15/2011 5:10:50 PM] Chris Eykamp: and, if so, we want to extend the appropriate seg in obj->mPoints.address() to include all of [3/15/2011 5:10:53 PM] Chris Eykamp: yes? [3/15/2011 5:10:55 PM] buckyballreaction: i fixed it, and the geo was rendered properly again [3/15/2011 5:11:05 PM] Chris Eykamp: wait... it works? [3/15/2011 5:11:10 PM] buckyballreaction: but still holes; sorted output points: 131.196930 -371.000031 161.391571 -469.000000 168.393570 -469.368530 174.312546 -464.041443 424.483124 -107.042419 424.483124 -107.042419 444.578766 -108.100098 444.578766 -108.100098 490.041656 -179.885254 490.041656 -179.885254 491.099335 -159.789612 491.099335 -159.789612 [3/15/2011 5:11:25 PM] Chris Eykamp: lots of non dupe points [3/15/2011 5:11:31 PM] buckyballreaction: which is really bugging me [3/15/2011 5:11:46 PM] Chris Eykamp: [Tuesday, March 15, 2011 5:10 PM] buckyballreaction: <<< 131.196930 -371.000031isn't even near another point [3/15/2011 5:11:57 PM] buckyballreaction: exactly! [3/15/2011 5:11:58 PM] Chris Eykamp: that should leave a very obvious dangling line [3/15/2011 5:12:05 PM] buckyballreaction: but it doesn't show... [3/15/2011 5:12:09 PM] buckyballreaction: which is really weird [3/15/2011 5:12:27 PM] buckyballreaction: non-sorted comes out like this (segment pairs): 161.391571 -469.000000 168.393570 -469.368530 174.312546 -464.041443 490.041656 -179.885254 490.041656 -179.885254 491.099335 -159.789612 491.099335 -159.789612 444.578766 -108.100098 424.483124 -107.042419 444.578766 -108.100098 131.196930 -371.000031 424.483124 -107.042419 [3/15/2011 5:12:28 PM] Chris Eykamp: could this be a-b-c-d format? [3/15/2011 5:12:41 PM] buckyballreaction: every two of those is the segment pair [3/15/2011 5:12:49 PM] Chris Eykamp: (rather than a-b c-d e-f) [3/15/2011 5:13:07 PM] Chris Eykamp: so this is not closed [3/15/2011 5:13:11 PM] buckyballreaction: i don't think so [3/15/2011 5:13:15 PM] buckyballreaction: but not sure... [3/15/2011 5:14:00 PM] buckyballreaction: it looks like it is supposed to be a-b b-c c-d d-a, but not quite [3/15/2011 5:14:02 PM] Chris Eykamp: set your gridsize at 1000 -- sould make thing bigger [3/15/2011 5:14:17 PM] buckyballreaction: ok [3/15/2011 5:15:29 PM] buckyballreaction: wow huge [3/15/2011 5:15:36 PM] buckyballreaction: i visibly see no holes [3/15/2011 5:15:54 PM] buckyballreaction: but the zones are still not rendering [3/15/2011 5:16:41 PM] Chris Eykamp: ah, wait; you are not using this for wall rendering, are you? [3/15/2011 5:16:45 PM] Chris Eykamp: if not, you'd see nothing [3/15/2011 5:17:14 PM] buckyballreaction: i am using it for both [3/15/2011 5:17:19 PM] Chris Eykamp: or... well, you are visualizing the same thing you dumped coords for? [3/15/2011 5:17:33 PM] buckyballreaction: i put this in the wall rendering method: prepareBotZoneGeometry2(); mRenderLineSegments = mBotZoneBufferLineSegments; return; [3/15/2011 5:17:40 PM] Chris Eykamp: ah [3/15/2011 5:18:31 PM] Chris Eykamp: well, sounds like you are not seeing what the coords tell you to expect [3/15/2011 5:18:40 PM] buckyballreaction: yep [3/15/2011 5:18:52 PM] buckyballreaction: which is another crazy thing... [3/15/2011 5:19:35 PM] Chris Eykamp: welll..... you could force the issue [3/15/2011 5:19:50 PM] Chris Eykamp: and convert to a-b-c-d format, and change the rendering to use that as well [3/15/2011 5:20:11 PM] Chris Eykamp: ah, except that lines are in different directions [3/15/2011 5:20:13 PM] Chris Eykamp: so not so easy [3/15/2011 5:20:15 PM] buckyballreaction: argh wait.... [3/15/2011 5:20:27 PM] buckyballreaction: i am spitting out only the geo for one barrier [3/15/2011 5:21:40 PM] buckyballreaction: ok here is the list for both barriers (since one barriers geo might end in the middle of nowhere and be picked up by the other): 96.000000 -385.229431 96.000000 -385.229431 96.000000 -454.770569 96.000000 -454.770569 110.229439 -371.000000 110.229439 -371.000000 110.229439 -469.000000 110.229439 -469.000000 131.196930 -371.000031 131.196945 -371.000000 161.391571 -469.000000 161.391586 -469.000000 168.393570 -469.368530 168.803055 -469.000000 169.353973 -469.000000 169.353973 -469.000000 174.312302 -464.041656 174.312546 -464.041443 424.483124 -107.042419 424.483124 -107.042419 444.578766 -108.100098 444.578766 -108.100098 490.041656 -179.885254 490.041656 -179.885254 491.099335 -159.789612 491.099335 -159.789612 [3/15/2011 5:22:02 PM] buckyballreaction: there's our holes [3/15/2011 5:22:26 PM] buckyballreaction: tiny holes of < 0.5 [3/15/2011 5:22:50 PM] Chris Eykamp: [Tuesday, March 15, 2011 5:21 PM] buckyballreaction: <<< 168.393570 -469.368530 168.803055 -469.000000put rounding back in? [3/15/2011 5:23:01 PM] buckyballreaction: le tme try again with the rounding... [3/15/2011 5:23:05 PM] Chris Eykamp: wait [3/15/2011 5:23:07 PM] buckyballreaction: and return proper numbers this time... [3/15/2011 5:23:09 PM] buckyballreaction: ok [3/15/2011 5:23:16 PM] Chris Eykamp: those x's will round differently [3/15/2011 5:23:46 PM] Chris Eykamp: need to check each pair of coords and force a-b b-c c-d format [3/15/2011 5:24:09 PM] Chris Eykamp: or try rounding to nearest 10 as a test if that is the fix [3/15/2011 5:24:26 PM] buckyballreaction: but there is actually no where that barriers are linked together to know which should go together [3/15/2011 5:24:36 PM] Chris Eykamp: ah [3/15/2011 5:24:40 PM] buckyballreaction: i tried the force a-b b-c c-d last night [3/15/2011 5:24:55 PM] buckyballreaction: and now i know why i failed - it was because it for only the barrier in question [3/15/2011 5:25:17 PM] Chris Eykamp: try the big rounding and see if the zones get fixed [3/15/2011 5:25:59 PM] buckyballreaction: you mean change: #define ROUND(x) (((x) < 0) ? F32(S32((x) - 0.5)) : F32(S32((x) + 0.5))) to: #define ROUND(x) (((x) < 0) ? F32(S32((x) - 10)) : F32(S32((x) + 10))) [3/15/2011 5:26:14 PM] buckyballreaction: no that's dumb [3/15/2011 5:26:26 PM] buckyballreaction: * 10 then flor [3/15/2011 5:27:19 PM] Chris Eykamp: #define ROUND(x) F32(S32((x)*10)/10) [3/15/2011 5:27:26 PM] buckyballreaction: yes that [3/15/2011 5:27:26 PM] buckyballreaction: thanks [3/15/2011 5:27:41 PM] Chris Eykamp: or maybe /10 inside, mult by 10 outside [3/15/2011 5:29:06 PM] buckyballreaction: 90.000000 -380.000000 90.000000 -380.000000 90.000000 -450.000000 90.000000 -450.000000 110.000000 -370.000000 110.000000 -370.000000 110.000000 -460.000000 110.000000 -460.000000 130.000000 -370.000000 130.000000 -370.000000 160.000000 -460.000000 160.000000 -460.000000 160.000000 -460.000000 160.000000 -460.000000 160.000000 -460.000000 160.000000 -460.000000 160.000000 -460.000000 160.000000 -460.000000 170.000000 -460.000000 170.000000 -460.000000 420.000000 -100.000000 420.000000 -100.000000 440.000000 -100.000000 440.000000 -100.000000 490.000000 -150.000000 490.000000 -150.000000 490.000000 -170.000000 490.000000 -170.000000 [3/15/2011 5:29:25 PM] buckyballreaction: but zones were not created... [3/15/2011 5:30:58 PM] buckyballreaction: wait... [3/15/2011 5:31:16 PM] buckyballreaction: each barrier is fed one at a time into triangle, correct? [3/15/2011 5:31:26 PM] Chris Eykamp: yes [3/15/2011 5:31:34 PM] Chris Eykamp: each is a hole [3/15/2011 5:31:45 PM] Chris Eykamp: ah, maybe not [3/15/2011 5:31:48 PM] buckyballreaction: so does triangle do the figuring out that certain holes are joined? [3/15/2011 5:32:03 PM] Chris Eykamp: there can be no internal boundaries, but otherwise, yes [3/15/2011 5:32:14 PM] Chris Eykamp: you can specify the same hole twice, no prob [3/15/2011 5:32:27 PM] buckyballreaction: what do you mean internal boundaries? [3/15/2011 5:32:57 PM] Chris Eykamp: http://www.twiddla.com/505708 [3/15/2011 5:49:34 PM] Samuel Williams: [Tuesday, March 15, 2011 2:01 PM] buckyballreaction: <<< i changed the rounding to: #define ROUND(x) (F32(S32((x) + 0.5)))That rounding have problems with negative numbers, maybe this might be better: #define ROUND(x) (floor(x + 0.5)) http://96.2.123.136/bitfighter/round_error.gif to see the graph side by side. [3/15/2011 5:50:11 PM] buckyballreaction: @sam, makes sense [3/15/2011 5:50:30 PM] buckyballreaction: @ watusimoto: basically I am now at a complete loss for why this doesn't work [3/15/2011 5:50:41 PM | Removed 5:51:22 PM] Samuel Williams: This message has been removed. [3/15/2011 5:51:46 PM] Samuel Williams: [Tuesday, March 15, 2011 5:25 PM] buckyballreaction: <<< #define ROUND(x) (((x) < 0) ? F32(S32((x) - 0.5)) : F32(S32((x) + 0.5)))That should work as well.. [3/15/2011 5:52:24 PM] Chris Eykamp: what is -.8 rounded off? [3/15/2011 5:52:54 PM] Chris Eykamp: actually, what is -1.5 rounded off? [3/15/2011 5:53:03 PM] Chris Eykamp: arch [3/15/2011 5:53:06 PM] Chris Eykamp: wait [3/15/2011 5:53:11 PM] Chris Eykamp: what is -.5 rounded off? [3/15/2011 5:53:19 PM] Samuel Williams: floor(-1.5 + 0.5) = -1 [3/15/2011 5:53:46 PM] Chris Eykamp: ah, yes, you're right of course [3/15/2011 5:54:07 PM] Samuel Williams: (((-1.5) < 0) ? F32(S32((-1.5) - 0.5)) : F32(S32((-1.5) + 0.5))) = -2 [3/15/2011 5:54:13 PM] Chris Eykamp: my fn was the longer form you posted above [3/15/2011 5:54:21 PM] Chris Eykamp: but... your floor is nicer [3/15/2011 5:54:43 PM] buckyballreaction: ok - soooo [3/15/2011 5:54:54 PM] buckyballreaction: to the problem here.... [3/15/2011 5:55:06 PM] buckyballreaction: there are no holes now [3/15/2011 5:55:13 PM] buckyballreaction: and zones are still not generated [3/15/2011 6:08:49 PM] Samuel Williams: [Tuesday, March 15, 2011 5:25 PM] buckyballreaction: <<< #define ROUND(x) (((x) < 0) ? F32(S32((x) - 0.5)) : F32(S32((x) + 0.5)))That will not work with numbers bigger then 2147483647 with conversion to S32, then back to F32 (S32 overflow). My floor(x + 0.5) rounding works with any numbers, (F32 big numbers can't hold decimals) [3/15/2011 6:09:11 PM] Chris Eykamp: yes, let's use sam's [3/15/2011 6:09:40 PM] buckyballreaction: ok [3/15/2011 6:09:45 PM] buckyballreaction: any ideas what might still be wrong? [3/15/2011 6:09:55 PM] buckyballreaction: i can post the level file that fails [3/15/2011 6:10:27 PM] buckyballreaction: http://96.2.123.136/upload/test8.level [3/15/2011 6:22:39 PM] buckyballreaction: floor + ceil won't work [3/15/2011 6:22:53 PM] buckyballreaction: example: 518.393616 -1449.368530 518.803101 -1449.000000 [3/15/2011 6:23:13 PM] buckyballreaction: using floor (or ceil): 518.000000 -1449.000000 519.000000 -1449.000000 [3/15/2011 6:25:41 PM] Samuel Williams: floor(x + 0.5) should work you might want this? x<0 ? ceil(x - 0.5) : floor(x + 0.5) [3/15/2011 6:27:03 PM] buckyballreaction: tried that [3/15/2011 6:27:04 PM] buckyballreaction: same [3/15/2011 6:27:42 PM] Samuel Williams: what the problem? maybe not using ROUND to everything? [3/15/2011 6:29:34 PM] buckyballreaction: try to get that level file i posted to have zones generated [3/15/2011 6:29:55 PM] buckyballreaction: that is the ultimate goal [3/15/2011 6:29:58 PM] Samuel Williams: maybe, it just need a new way to get the edges of barriers. [3/15/2011 6:31:39 PM] Samuel Williams: i could try writing a new prepareBarrierRenderingGeometry() [3/15/2011 6:33:12 PM] buckyballreaction: well, I think with the rounding your current method should get it right - but even when all the points match up on both intersecting segments [3/15/2011 6:33:18 PM] buckyballreaction: zones are still nto created [3/15/2011 6:37:08 PM] buckyballreaction: i think i need a break from this [3/15/2011 6:37:11 PM] buckyballreaction: see ya later [3/15/2011 6:43:01 PM] buckyballreaction: sorry, here is my current diff (you'll need to change some of the method defaults...): http://96.2.123.136/upload/temp.diff [3/15/2011 6:43:12 PM] buckyballreaction: that uses the octagonal zones [3/15/2011 6:43:22 PM] buckyballreaction: ok i go now bye [3/15/2011 8:02:52 PM] Chris Eykamp: Here is a totally different approach; I like it because it will work, and it's totally overkill. [3/15/2011 8:03:00 PM] Chris Eykamp: : ftp.cs.man.ac.uk/pub/toby/gpc/gpc232-release.zip [3/15/2011 8:03:13 PM] Chris Eykamp: project page: [3/15/2011 8:03:14 PM] Chris Eykamp: http://www.cs.man.ac.uk/~toby/alan/software/ [3/15/2011 8:03:29 PM] Chris Eykamp: I downloaded the demo, and it looks like the "or" application is what we want [3/15/2011 8:03:35 PM] Chris Eykamp: sorry, "or" operation [3/15/2011 8:03:58 PM] Chris Eykamp: we're just spending too much time on this ridiculously easy problem!!! [3/15/2011 8:04:10 PM] Chris Eykamp: anyway, that's what I'm thinking right now... [3/15/2011 8:04:14 PM] Chris Eykamp: off to an evening meeting [3/15/2011 8:04:16 PM] Chris Eykamp: later [3/15/2011 9:12:37 PM] buckyballreaction: . [3/15/2011 9:29:35 PM] buckyballreaction: actulaly this seems like it's the best: http://www.angusj.com/delphi/clipper.php [3/15/2011 9:31:25 PM] buckyballreaction: do hole segments need to be given to triangle in any specific order? [3/15/2011 11:43:06 PM] buckyballreaction: the union of polygons is probably what is wanted [3/16/2011 12:29:20 AM] Chris Eykamp: [Tuesday, March 15, 2011 9:30 PM] buckyballreaction: <<< do hole segments need to be given to triangle in any specific order?no [3/16/2011 12:30:44 AM] buckyballreaction: looks like the clipper library has everything we need - it even has nice doc inside the zip file [3/16/2011 12:31:20 AM] Chris Eykamp: can't run the demo [3/16/2011 12:31:36 AM] Chris Eykamp: but... the last screenshot on the screenshots page is from the package I pointed out [3/16/2011 12:31:39 AM] Chris Eykamp: either would be fine [3/16/2011 12:31:48 AM] Chris Eykamp: I'm just ready to outsource this stuff [3/16/2011 12:33:35 AM] Chris Eykamp: . [3/16/2011 12:35:58 AM] buckyballreaction: did you just send a private message? [3/16/2011 12:36:34 AM] buckyballreaction: i got it! [3/16/2011 12:36:45 AM] Chris Eykamp: I had a whole bunch of messages stacked up, not going, and was trying different things to see if skype was dead [3/16/2011 12:36:51 AM] Chris Eykamp: all gone now [3/16/2011 12:37:03 AM] buckyballreaction: ah ok [3/16/2011 12:37:23 AM] Chris Eykamp: so; can you run the demo of the package you sent? [3/16/2011 12:37:36 AM] Samuel Williams: maybe you got knocked offline for a few minutes? [3/16/2011 12:37:39 AM] buckyballreaction: i be crazy linux user... [3/16/2011 12:37:59 AM] buckyballreaction: but it compiles well - which is a good sign [3/16/2011 12:38:18 AM] Chris Eykamp: know the boost license? or should I read it? [3/16/2011 12:38:27 AM] buckyballreaction: i read it [3/16/2011 12:38:37 AM] buckyballreaction: it's good license like BSD [3/16/2011 12:38:59 AM] Chris Eykamp: ok, no worries then [3/16/2011 12:39:03 AM] Chris Eykamp: let's try it. [3/16/2011 12:39:13 AM] Chris Eykamp: do you want to do it, or should I, or try together? [3/16/2011 12:39:20 AM] Chris Eykamp: or you, sam [3/16/2011 12:39:56 AM] Chris Eykamp: I really want to get things wrapped up so we can do our 015a release and move on [3/16/2011 12:40:02 AM] buckyballreaction: me too [3/16/2011 12:40:42 AM] Chris Eykamp: if no one volunteers... I'll do it [3/16/2011 12:40:51 AM] buckyballreaction: i'll tag team it with you [3/16/2011 12:40:59 AM] buckyballreaction: i still reading through the doc [3/16/2011 12:41:38 AM] buckyballreaction: why read the doc for a day when you can code for a week? [3/16/2011 12:41:40 AM] Chris Eykamp: where is the doc? [3/16/2011 12:41:49 AM] Samuel Williams: i could try to write a new prepareBarrierRenderingGeometry2 that will walk all around all the barriers and construct lines making sure there is no holes. [3/16/2011 12:42:07 AM] buckyballreaction: the doc is in the zip file: http://sourceforge.net/projects/polyclipping/files/ [3/16/2011 12:42:13 AM] buckyballreaction: i grabbed 3.1.0 [3/16/2011 12:42:39 AM] Chris Eykamp: let's try the library -- it should do the job and do it fast [3/16/2011 12:42:53 AM] Chris Eykamp: we might even find other uses for it [3/16/2011 12:43:11 AM] buckyballreaction: it also handles coincident edges, duplicate vertices, and self-overlapping polygons [3/16/2011 12:43:11 AM] Chris Eykamp: generating interior wall geomtry, for example [3/16/2011 12:43:54 AM] buckyballreaction: my guess is that the guy who write it is hoping it'll get included in boost someday [3/16/2011 12:44:14 AM] Chris Eykamp: even better... included in bitfighter! [3/16/2011 12:44:19 AM] buckyballreaction: haha [3/16/2011 12:44:53 AM] buckyballreaction: he pretty much obsoleted all the proprietary 2d poly-boolean libraries out there [3/16/2011 12:45:55 AM] buckyballreaction: let me post my octagonal zone method... [3/16/2011 12:47:11 AM] buckyballreaction: http://pastie.org/1677380 [3/16/2011 12:49:56 AM] buckyballreaction: so i put the clipper library at the base of our bitfighter repo in a directory called 'clipper' [3/16/2011 12:50:08 AM] buckyballreaction: #include "clipper.hpp" [3/16/2011 12:50:22 AM] buckyballreaction: and include that dir on the library path [3/16/2011 12:51:32 AM] Chris Eykamp: ok, sounds good for the moment [3/16/2011 12:51:56 AM] buckyballreaction: i was thinking we should make a 'third_party' directory and stick in all the many libs there [3/16/2011 12:51:59 AM] buckyballreaction: eventually [3/16/2011 12:52:07 AM] buckyballreaction: or 'contrib' [3/16/2011 12:52:17 AM] Chris Eykamp: sure [3/16/2011 12:55:21 AM] Chris Eykamp: so... do we add each buffered wall with the addPolygon method? [3/16/2011 12:56:01 AM] buckyballreaction: i'm not sure yet... [3/16/2011 12:56:16 AM] buckyballreaction: did you see the example in the doc? [3/16/2011 12:56:26 AM] Chris Eykamp: yeah [3/16/2011 12:56:29 AM] Chris Eykamp: don't like it [3/16/2011 12:56:40 AM] buckyballreaction: i think we treat the current barrier as the 'subject' [3/16/2011 12:56:59 AM] buckyballreaction: and make any other barriers within the extents, the clipPolys [3/16/2011 12:57:16 AM] Chris Eykamp: I thought we'd just throw all the barriers in [3/16/2011 12:57:24 AM] Chris Eykamp: and clip once [3/16/2011 12:57:26 AM] buckyballreaction: i was hoping to do that, too [3/16/2011 12:57:39 AM] buckyballreaction: but bitfighter is set up to analize each and every barrier [3/16/2011 12:57:46 AM] buckyballreaction: analyze [3/16/2011 12:58:40 AM] Chris Eykamp: we cycle through all the barriers, and generate TArrayOfArrayOfFloatPoint s for each [3/16/2011 12:58:55 AM] buckyballreaction: i haven't read that part yet... [3/16/2011 12:59:28 AM] Chris Eykamp: the example uses GetEllipsePoints... it's not in the reference [3/16/2011 1:01:00 AM] Chris Eykamp: maybe make a TPolyPolygon = List>; [3/16/2011 1:01:08 AM] buckyballreaction: yes [3/16/2011 1:01:11 AM] buckyballreaction: that loks right [3/16/2011 1:01:37 AM] buckyballreaction: TClipperBase.AddPolyPolygon [3/16/2011 1:02:11 AM] Chris Eykamp: or we might need to cycle through, adding one barrier at a time, clipping against what we've already done [3/16/2011 1:02:29 AM] buckyballreaction: yeah, it looks like it requires two sets [3/16/2011 1:02:48 AM] buckyballreaction: the subject set and the clip set [3/16/2011 1:03:23 AM] Chris Eykamp: foreach (wall : walls) do ( clipped = clipped union wall ) [3/16/2011 1:03:30 AM] Chris Eykamp: maybe? [3/16/2011 1:03:54 AM] Chris Eykamp: if that makes sense [3/16/2011 1:04:11 AM] buckyballreaction: so you slowly union the previous wall [3/16/2011 1:04:29 AM] Chris Eykamp: maybe, building up the level wall by wall [3/16/2011 1:04:31 AM] Chris Eykamp: Adjacent vertices with identical coordinates (once rounded) will be merged. Adjacent colinear edges with also be merged into a single edge. [3/16/2011 1:04:34 AM] Chris Eykamp: hooray! [3/16/2011 1:04:42 AM] buckyballreaction: hooray!! [3/16/2011 1:04:47 AM] buckyballreaction: no thinking on our part! [3/16/2011 1:04:51 AM] buckyballreaction: that the way to go! [3/16/2011 1:05:19 AM] buckyballreaction: in makeBotMeshZones3 [3/16/2011 1:05:36 AM] buckyballreaction: we'd have to replace your big loop [3/16/2011 1:07:35 AM] Chris Eykamp: I think we'd still keep that [3/16/2011 1:09:24 AM] Chris Eykamp: we could try using offsetPolygons to create the buffers [3/16/2011 1:10:06 AM] buckyballreaction: i wonder if that would create curved edges... [3/16/2011 1:10:30 AM] Chris Eykamp: we can try that in a bit [3/16/2011 1:10:42 AM] Chris Eykamp: not sure we want that [3/16/2011 1:10:47 AM] Chris Eykamp: curved edge [3/16/2011 1:10:51 AM] buckyballreaction: not with traingle... [3/16/2011 1:11:34 AM] buckyballreaction: so right now upon barrier creation the mBotZoneBufferGeometry is created [3/16/2011 1:12:12 AM] buckyballreaction: then if call: resetEdges(mBotZoneBufferGeometry, mBotZoneBufferLineSegments); you'll fill up the edges [3/16/2011 1:12:22 AM] buckyballreaction: ab bc cd da [3/16/2011 1:31:21 AM] Chris Eykamp: clipper throws warnings on msvc++ [3/16/2011 1:31:57 AM] buckyballreaction: no warnings on gcc... [3/16/2011 1:32:01 AM] buckyballreaction: that is odd [3/16/2011 1:32:11 AM] buckyballreaction: contrary to norm [3/16/2011 1:32:11 AM] Chris Eykamp: nothing unfixable [3/16/2011 1:35:07 AM] buckyballreaction: ok ready to try unioning lots of stuff... [3/16/2011 1:36:53 AM] Chris Eykamp: great [3/16/2011 1:38:05 AM] Chris Eykamp: how do you create your polygon? [3/16/2011 1:38:27 AM] buckyballreaction: yay! lots of 0.000000 [3/16/2011 1:38:36 AM] buckyballreaction: here is my crazy method: [3/16/2011 1:39:15 AM] buckyballreaction: http://pastie.org/1677477 [3/16/2011 1:40:00 AM] buckyballreaction: but i only got zeroed points out of it... [3/16/2011 1:40:40 AM] buckyballreaction: oh, haha [3/16/2011 1:40:53 AM] buckyballreaction: my last logprintf should be: logprintf("%f", solution[j][k]); [3/16/2011 1:41:44 AM] buckyballreaction: sweet! [3/16/2011 1:41:50 AM] buckyballreaction: it printed good points! [3/16/2011 1:42:15 AM] Chris Eykamp: already! [3/16/2011 1:42:27 AM] Chris Eykamp: we should have tried this a week ago [3/16/2011 1:42:31 AM] buckyballreaction: haha [3/16/2011 1:42:34 AM] buckyballreaction: iI KNOW!!!! [3/16/2011 1:43:58 AM] buckyballreaction: so this prints good points: http://pastie.org/1677482 [3/16/2011 1:44:11 AM] buckyballreaction: i put it in the top of makeBotMeshZones3() [3/16/2011 1:44:22 AM] Chris Eykamp: great; time to visualize [3/16/2011 1:45:18 AM] buckyballreaction: so adapt in ClientGame::prepareBarrierRenderingGeometry() ? [3/16/2011 1:45:21 AM] buckyballreaction: in game.cpp? [3/16/2011 1:46:02 AM] buckyballreaction: hmmm, maybe not [3/16/2011 1:46:10 AM] buckyballreaction: not sure how the rendering actually works [3/16/2011 1:48:00 AM] Chris Eykamp: what about feeding them into triangle in the same method? [3/16/2011 1:48:07 AM] buckyballreaction: ummm... [3/16/2011 1:48:14 AM] buckyballreaction: i don't quite get the inputs to triangle [3/16/2011 1:48:26 AM] buckyballreaction: for instance - what is in.holes? [3/16/2011 1:48:31 AM] buckyballreaction: the centerpoints? [3/16/2011 1:50:22 AM] Chris Eykamp: yes [3/16/2011 1:50:27 AM] Chris Eykamp: any point in the hole [3/16/2011 1:50:36 AM] buckyballreaction: any point? [3/16/2011 1:50:46 AM] Chris Eykamp: I use centerpoints because they're easy [3/16/2011 1:53:22 AM] Chris Eykamp: I'm making clipper work with Vector so we can pass in what we hae [3/16/2011 1:54:31 AM] Chris Eykamp: rats. no I'm not [3/16/2011 1:54:41 AM] buckyballreaction: haha [3/16/2011 1:57:20 AM] Chris Eykamp: clipper deals with a-b-c-d format, right? [3/16/2011 1:58:02 AM] buckyballreaction: yes [3/16/2011 2:04:48 AM] buckyballreaction: i've got good points, but not in the order i want (or the volume i expect...) [3/16/2011 2:05:22 AM] buckyballreaction: so i think i'm just struggling with procedural operations... [3/16/2011 2:08:08 AM] buckyballreaction: of course passing in two X coords would do that... [3/16/2011 2:09:10 AM] buckyballreaction: beautiful! [3/16/2011 2:09:18 AM] buckyballreaction: ok, got good points now... [3/16/2011 2:13:46 AM] buckyballreaction: i have to get to bed now, brain failing... [3/16/2011 2:14:16 AM] Samuel Williams: my prepareBarrierRenderingGeometry2 i am writing is showing some progress http://96.2.123.136/bitfighter/new_wall_edge.gif [3/16/2011 2:14:52 AM] buckyballreaction: cool [3/16/2011 2:15:12 AM] Chris Eykamp: super! [3/16/2011 2:15:14 AM] buckyballreaction: ok, before I go to bed, here is my status: [3/16/2011 2:16:00 AM] Samuel Williams: i will need to go to bed, i can try to finish up my new wall edge that will for sure not generate any tiny holes. [3/16/2011 2:16:17 AM] buckyballreaction: clipper returns a good set of non-duplicated points with this: http://pastie.org/1677529 [3/16/2011 2:16:32 AM] Chris Eykamp: in a-b-c frmat? [3/16/2011 2:16:40 AM] Chris Eykamp: good night sam! [3/16/2011 2:17:20 AM] buckyballreaction: it is divided into resulting polys, each in a-b-c format [3/16/2011 2:18:14 AM] Chris Eykamp: clipper.AddPolygon(clip, ptClip); clipper.Execute(ctUnion, solution); [3/16/2011 2:18:34 AM] Chris Eykamp: this bit unions clip with solution, and puts the result in solution? [3/16/2011 2:18:34 AM] buckyballreaction: it is not very optimized [3/16/2011 2:18:47 AM] Chris Eykamp: we'll optimize later [3/16/2011 2:18:58 AM] buckyballreaction: no [3/16/2011 2:19:06 AM] buckyballreaction: subject was added before hand [3/16/2011 2:19:14 AM] Chris Eykamp: ok [3/16/2011 2:19:17 AM] buckyballreaction: then i added the next barrier as clip [3/16/2011 2:19:38 AM] Chris Eykamp: ah, I see... you add solution point by point [3/16/2011 2:19:38 AM] buckyballreaction: then i ran Execute as Union -> puts into solution [3/16/2011 2:19:51 AM] Chris Eykamp: ok, then reput solution in as subject [3/16/2011 2:20:00 AM] buckyballreaction: yep [3/16/2011 2:20:10 AM] buckyballreaction: so very bad optimization there... [3/16/2011 2:20:16 AM] Chris Eykamp: ok, I'll try to talke it from here [3/16/2011 2:20:24 AM] Chris Eykamp: if I get anything that works, I'll commit [3/16/2011 2:20:31 AM] buckyballreaction: i ran it on ctf3, it added about 500ms... [3/16/2011 2:20:44 AM] Chris Eykamp: we can improve that [3/16/2011 2:20:54 AM] buckyballreaction: not too bad for exponential time :) [3/16/2011 2:21:05 AM] buckyballreaction: ok [3/16/2011 2:21:12 AM] buckyballreaction: thanks and good night! [3/16/2011 2:21:18 AM] Chris Eykamp: I already see an unneeded loop [3/16/2011 2:21:20 AM] Chris Eykamp: good night [3/16/2011 2:21:23 AM] buckyballreaction: good [3/16/2011 2:21:27 AM] buckyballreaction: slash away [3/16/2011 2:21:32 AM] Chris Eykamp: I'll. [3/16/2011 2:21:58 AM] buckyballreaction: night [3/16/2011 3:06:04 AM] Chris Eykamp: status: works on simple geometries, fails on more complex ones; not sure why; must sleep; work checked in [3/16/2011 10:54:54 AM] Chris Eykamp: it seems to work on arbitrarily complex walls and collections of walls that... [3/16/2011 10:55:24 AM] Chris Eykamp: 1) are all connected [3/16/2011 10:55:28 AM] Chris Eykamp: 2) have no loops [3/16/2011 10:56:06 AM] Chris Eykamp: 3) have no tight spots that are so tight no zone gets formed between them (which is probably just a variant on 2) [3/16/2011 10:57:22 AM] Chris Eykamp: so... one possibility is that this is a winding issue [3/16/2011 10:58:05 AM] Chris Eykamp: if we could determine the winding of each wall, we could reverse the order of points on those wound the wrong way, or... better yet, just check the wall wind the points consistently when we're processing them [3/16/2011 10:58:35 AM] Chris Eykamp: that second would take almost no time, and the results should flow nicely downstream. If this is a winding problem. [3/16/2011 11:00:50 AM] Chris Eykamp: almost certainly is -- chaning the direction of a wall (say, by making #0 vertex on top of a vertical wall, or on the bottom) changes the generated geometry pretty radically. [3/16/2011 11:04:06 AM] Chris Eykamp: so; perhaps triangle cares about winding and clipper messes it up; or perhaps clipper cares about winiding and we feed it bad data; or both; or neither [3/16/2011 1:22:22 PM] buckyballreaction: good day [3/16/2011 1:22:57 PM] buckyballreaction: clipper cares about the point order, but not winding direction [3/16/2011 1:23:08 PM] buckyballreaction: so you can do a-b-c-d [3/16/2011 1:23:13 PM] buckyballreaction: or a-c-b-d [3/16/2011 1:24:06 PM] buckyballreaction: and clipper will still work fine; however, if a-b-c-d is a square, then it will consider a-c-b-d as a bowtie and apply the boolean rules accordingly [3/16/2011 1:25:40 PM] Chris Eykamp: why doe 0----1 produce different results than 1----0 ? [3/16/2011 1:26:00 PM] Chris Eykamp: (picture a line in the editor with vertices numbered as shown) [3/16/2011 1:26:14 PM] buckyballreaction: oh really? [3/16/2011 1:26:29 PM] Chris Eykamp: try creating two parallel segs in the editor [3/16/2011 1:26:34 PM] Chris Eykamp: and fliping them around [3/16/2011 1:26:38 PM] Chris Eykamp: viva la difference [3/16/2011 1:26:42 PM] buckyballreaction: ok [3/16/2011 1:27:44 PM] Chris Eykamp: but no holes!! [3/16/2011 1:27:58 PM] buckyballreaction: i can't believe we didn't try something like this before.. [3/16/2011 1:29:04 PM] Chris Eykamp: we were always an hour away from a solution [3/16/2011 1:29:18 PM] Chris Eykamp: hard to change courses when you are so close [3/16/2011 1:29:29 PM] Chris Eykamp: looking back... the story is different [3/16/2011 1:29:34 PM] buckyballreaction: WOW, it already works on all my broken test cases... [3/16/2011 1:32:43 PM] buckyballreaction: left to right: http://96.2.123.136/upload/1snapshot18.png [3/16/2011 1:32:52 PM] buckyballreaction: right to left: http://96.2.123.136/upload/1snapshot19.png [3/16/2011 1:33:28 PM] buckyballreaction: which seems much different than what you are saying... [3/16/2011 1:33:35 PM] buckyballreaction: but i am also using octagonal zones [3/16/2011 1:40:15 PM] buckyballreaction: kwrite [3/16/2011 1:40:17 PM] buckyballreaction: oops [3/16/2011 1:44:54 PM] Chris Eykamp: :wq [3/16/2011 1:45:10 PM] buckyballreaction: :q!!!!!!!! [3/16/2011 1:45:35 PM] Chris Eykamp: ok, so your test shows that flipping a seg does not matter [3/16/2011 1:45:44 PM] Chris Eykamp: I wonder why my test showed opposite [3/16/2011 1:46:13 PM] Chris Eykamp: maybe all that's missing is some final segment [3/16/2011 1:46:25 PM] buckyballreaction: i wonder, are we actually union-ing all the points into one large poly? [3/16/2011 1:46:27 PM] Chris Eykamp: maybe we need to close the poly [3/16/2011 1:46:34 PM] Chris Eykamp: and we're not? [3/16/2011 1:46:35 PM] buckyballreaction: because that would do what my test shows [3/16/2011 1:46:57 PM] Chris Eykamp: [Wednesday, March 16, 2011 1:45 PM] buckyballreaction: <<< i wonder, are we actually union-ing all the points into one large poly?maybe [3/16/2011 1:47:06 PM] Chris Eykamp: well, sure [3/16/2011 1:47:21 PM] Chris Eykamp: that's what union does [3/16/2011 1:47:25 PM] buckyballreaction: so instead of a -b-c-d, e-f-g-h, we get a-b-c-d-e-f-g-h [3/16/2011 1:47:35 PM] Chris Eykamp: ok [3/16/2011 1:47:37 PM] Chris Eykamp: maybe so [3/16/2011 1:48:10 PM] Chris Eykamp: maybe this is a convert-to-triangle issue [3/16/2011 1:48:42 PM] Chris Eykamp: can you dump the segs that clipper is producing? [3/16/2011 1:48:58 PM] buckyballreaction: so maybe we really need to just merge only overlapping segments and leave all others as separate polys [3/16/2011 1:49:13 PM] buckyballreaction: i think so.. i saw it int he doc somewhere [3/16/2011 1:49:36 PM] Chris Eykamp: actually, all triangle cares about is a set of segments [3/16/2011 1:49:47 PM] buckyballreaction: yes [3/16/2011 1:49:52 PM] Chris Eykamp: it doesn't need to know which are part of which polygon [3/16/2011 1:50:10 PM] Chris Eykamp: so maybe we're passing triangle one extra segment [3/16/2011 1:51:11 PM] Chris Eykamp: oh, hey [3/16/2011 1:51:13 PM] Chris Eykamp: try this [3/16/2011 1:51:16 PM] Chris Eykamp: move the S32 first = nextPt; [3/16/2011 1:51:28 PM] Chris Eykamp: uh no [3/16/2011 1:51:53 PM] Chris Eykamp: oh maybe [3/16/2011 1:52:01 PM] Chris Eykamp: if we have a 0 seg polygon comming out of clipper [3/16/2011 1:52:50 PM] Chris Eykamp: add if(poly.size() == 0) continue; just above S32 first = nextPt; [3/16/2011 1:53:25 PM] buckyballreaction: ok [3/16/2011 1:53:54 PM] Chris Eykamp: because if that ocndition is true, we wouldn't add any more points, but we would add another seg [3/16/2011 1:54:10 PM] Chris Eykamp: and we don't want more segs if there are no points [3/16/2011 1:54:33 PM] Chris Eykamp: and I saw some 0 seg polys coming out last night [3/16/2011 1:55:10 PM] buckyballreaction: same result [3/16/2011 1:55:59 PM] Chris Eykamp: try removing the lines: edges.push_back(nextPt); edges.push_back(first); [3/16/2011 1:56:27 PM] Chris Eykamp: that will probably not work [3/16/2011 1:57:05 PM] buckyballreaction: wow, almost all zones disappeared [3/16/2011 1:58:08 PM] buckyballreaction: i gotta go for a bit, be back later [3/16/2011 1:58:22 PM] Chris Eykamp: later [3/16/2011 2:25:22 PM] Chris Eykamp: this should fix it: [3/16/2011 2:25:22 PM] Chris Eykamp: edges.push_back(nextPt); edges.push_back(first); nextPt++; [3/16/2011 2:25:36 PM] Chris Eykamp: add that nextPt++ line [3/16/2011 6:29:23 PM] buckyballreaction: back [3/16/2011 6:29:24 PM] buckyballreaction: okl [3/16/2011 6:37:29 PM] buckyballreaction: passed the zonetestsuite!: http://96.2.123.136/upload/1snapshot20.png [3/16/2011 6:39:47 PM] buckyballreaction: ctf3 timings on my laptop: Timings: 702 0 7 55 [3/16/2011 6:40:08 PM] buckyballreaction: and my laptop is usually about 4 times quicker than your tests [3/16/2011 6:42:14 PM] buckyballreaction: this code is so much easier.... [3/16/2011 6:43:21 PM] buckyballreaction: geowar: Timings: 1060 0 8 82 [3/16/2011 6:44:14 PM] buckyballreaction: which I am suprised worked so well... [3/16/2011 6:45:20 PM] Chris Eykamp: with my last fix? [3/16/2011 6:45:24 PM] buckyballreaction: yep [3/16/2011 6:45:35 PM] buckyballreaction: i'll check it in [3/16/2011 6:45:37 PM] Chris Eykamp: ok, so I'm concerned abt performance [3/16/2011 6:46:01 PM] Chris Eykamp: that loop I saw was not so significant [3/16/2011 6:46:14 PM] Chris Eykamp: the bigger issue, ithink, is running this over and over again, for each wall [3/16/2011 6:46:34 PM] Chris Eykamp: we need to see if we can find a way to do all the intersections at once [3/16/2011 6:46:41 PM] Chris Eykamp: maybe possible, maybe not [3/16/2011 6:46:57 PM] Chris Eykamp: maybe add everything as a subject, or as a clip poly? [3/16/2011 6:47:08 PM] buckyballreaction: yes [3/16/2011 6:47:21 PM] buckyballreaction: good idea [3/16/2011 6:47:26 PM] Chris Eykamp: if that works, that would certainly be faster [3/16/2011 6:47:49 PM] buckyballreaction: i have another idea that would be more complex algorithmically, but i want to try this first [3/16/2011 6:48:16 PM] Chris Eykamp: at least we know for sure how to get the data out, so now we can experiment a bit more [3/16/2011 6:48:48 PM] Chris Eykamp: Also, docs say a line like this: [3/16/2011 6:48:51 PM] Chris Eykamp: clipper.IgnoreOrientation(true); [3/16/2011 6:49:00 PM] Chris Eykamp: will improve perfrmance by 60% [3/16/2011 6:49:28 PM] Chris Eykamp: we don't care about segment orientation, so this will probably work for us [3/16/2011 6:54:09 PM] buckyballreaction: i'll add that - but it may be a default.. [3/16/2011 6:58:03 PM] buckyballreaction: ctf3 Timings: 601 0 7 54 [3/16/2011 6:58:07 PM] buckyballreaction: with clipper.IgnoreOrientation(true); [3/16/2011 6:58:52 PM] buckyballreaction: so 15% gain [3/16/2011 6:59:38 PM] Chris Eykamp: well, I'll take it [3/16/2011 7:17:39 PM] buckyballreaction: ok, now for all-tris-as-subjects [3/16/2011 7:24:01 PM] buckyballreaction: so it's super fast now, but triangle crashes because of duped vertices [3/16/2011 7:24:46 PM] Chris Eykamp: what did you do to make it super fast? [3/16/2011 7:25:15 PM] buckyballreaction: i did three tests: 1. add all polys as subjects 2. add all polys as clips 3. add all polys as clips and as subjects [3/16/2011 7:25:43 PM] Chris Eykamp: hadn't considered #3 [3/16/2011 7:25:59 PM] buckyballreaction: all of them segfault with Triangle [3/16/2011 7:26:17 PM] buckyballreaction: same exact error: Warning: A duplicate vertex at (613.770568848, 230) appeared and was ignored. Forming triangulation. Removing ghost triangles. Recovering segments in Delaunay triangulation. Constructing mapping from vertices to triangles. Recovering PSLG segments. Segmentation fault [3/16/2011 7:26:30 PM] buckyballreaction: there are tons of dupe vertex warnings, though (not just the one) [3/16/2011 7:27:01 PM] Chris Eykamp: try a really simple level [3/16/2011 7:38:44 PM] Zoomber: ooh this is really nice [3/16/2011 7:39:55 PM] Zoomber: the skype update really improved the interface [3/16/2011 7:40:05 PM] buckyballreaction: results: 1. a level with 2 non-touching segments works ok 2. a level with a continuous 2-part segment has goofy zones 3. a level with non-continuous segments that share an end-point segfault [3/16/2011 7:40:16 PM] Zoomber: well heres the problem [3/16/2011 7:40:27 PM] Zoomber: a segfault is the reason your games crashing [3/16/2011 7:40:30 PM] Zoomber: problem solved :) [3/16/2011 7:40:43 PM] buckyballreaction: if only it were that simple... :D [3/16/2011 7:41:04 PM] Zoomber: this is life [3/16/2011 7:41:18 PM] Zoomber: itl never be close to that simple [3/16/2011 7:41:49 PM] Zoomber: chris, are you on right now? [3/16/2011 7:42:22 PM] Zoomber: oh now thats very interesting. theres a button that lets me share screen [3/16/2011 7:42:44 PM] Zoomber: especially if you need to show someone else what to change in code or something like that [3/16/2011 7:55:29 PM] Chris Eykamp: hi [3/16/2011 7:56:14 PM] buckyballreaction: hi' [3/16/2011 7:59:40 PM] buckyballreaction: ah ha! [3/16/2011 7:59:43 PM] buckyballreaction: you're the culprit! [3/16/2011 8:00:30 PM] buckyballreaction: i got files will varied line-endings after your recent commits... [3/16/2011 8:00:32 PM] buckyballreaction: :) [3/16/2011 8:04:27 PM] Chris Eykamp: uh oh [3/16/2011 8:04:31 PM] Chris Eykamp: me? [3/16/2011 8:04:46 PM] buckyballreaction: looks like it [3/16/2011 8:05:04 PM] Chris Eykamp: .cpp or .h file? [3/16/2011 8:05:12 PM] buckyballreaction: .cpp [3/16/2011 8:05:19 PM] buckyballreaction: all your clipper changes [3/16/2011 8:05:28 PM] Chris Eykamp: clipper.cpp? [3/16/2011 8:05:39 PM] buckyballreaction: BotNavMeshZone.cpp [3/16/2011 8:05:44 PM] Chris Eykamp: well, that's just messed up [3/16/2011 8:06:15 PM] buckyballreaction: all the recent changes you made came back as having windows new-lines [3/16/2011 8:06:18 PM] Chris Eykamp: I'll check vc++, but I'm 99.9% sure I told it to use unix [3/16/2011 8:06:37 PM] Chris Eykamp: I'll check; if I am the guilty one, I am very sorry [3/16/2011 8:06:41 PM] buckyballreaction: that's ok [3/16/2011 8:06:45 PM] buckyballreaction: it still compiles [3/16/2011 8:06:45 PM] Chris Eykamp: :) [3/16/2011 8:06:52 PM] buckyballreaction: looks a little funny in vim, that's all [3/16/2011 8:07:13 PM] buckyballreaction: i'm about to check in the fixes that make clipper work - then i'll get back to trying optimizations [3/16/2011 8:12:52 PM] buckyballreaction: ok pushed [3/16/2011 10:26:52 PM] buckyballreaction: hi [3/16/2011 10:36:37 PM] buckyballreaction: so it looks like that the zones aren't still quite perfect... if you take a look a ctf3, some zones are a little weird - some look concave and some look non-existant. [3/16/2011 10:36:39 PM] Chris Eykamp: hi [3/16/2011 10:36:58 PM] Chris Eykamp: I saw the non-existant zones; they're from repeated vertices [3/16/2011 10:37:02 PM] Chris Eykamp: abcadef [3/16/2011 10:37:17 PM] Chris Eykamp: or, more often aabcd [3/16/2011 10:37:20 PM] buckyballreaction: and there are 'dead spots' - where you stand over a zone that looks like it should be one and the bot can't find a path there [3/16/2011 10:37:42 PM] Chris Eykamp: still something funny going on -- but I think it's repeated vertices [3/16/2011 10:37:43 PM] buckyballreaction: and 'living holes' - where there shows no zone, but bots find a path there [3/16/2011 10:37:49 PM] Chris Eykamp: how did you solve the crashing triangle issue [3/16/2011 10:37:51 PM] buckyballreaction: yes, i agree [3/16/2011 10:37:56 PM] buckyballreaction: i didn't [3/16/2011 10:38:04 PM] Chris Eykamp: no more segfaults? [3/16/2011 10:38:07 PM] buckyballreaction: i stepped away to do some school with my brother [3/16/2011 10:38:18 PM] Chris Eykamp: shall I update? [3/16/2011 10:38:20 PM] buckyballreaction: it was only segfaulting when i tried to optimize [3/16/2011 10:38:24 PM] buckyballreaction: you can update [3/16/2011 10:38:35 PM] buckyballreaction: i never got optimized code to work [3/16/2011 10:38:59 PM] buckyballreaction: so i just pushed the changes to make zones more or less work every where, except for the anamolies i describe above [3/16/2011 10:39:15 PM] buckyballreaction: oh, and i pushed octagonal buffers [3/16/2011 10:39:31 PM] buckyballreaction: since they always work now (yay for clipper!) [3/16/2011 10:39:37 PM] Chris Eykamp: yes [3/16/2011 10:53:07 PM] buckyballreaction: so maybe implement the map with the point as an index to auto-de-dupe? [3/16/2011 10:57:27 PM] Chris Eykamp: don't follow [3/16/2011 10:59:51 PM] buckyballreaction: remember when you implemented using a map to make sure triangle didn't get duplicat points? [3/16/2011 11:00:00 PM] buckyballreaction: and allow quick look-up of the point? [3/16/2011 11:01:21 PM] Chris Eykamp: right -- created a pair as a key [3/16/2011 11:01:24 PM] buckyballreaction: yes [3/16/2011 11:01:41 PM] buckyballreaction: maybe reimplementing that might help... [3/16/2011 11:01:50 PM] Chris Eykamp: so create that, and clear it as we add each new polygon? [3/16/2011 11:02:20 PM] Chris Eykamp: so is the problem dupe points giong into triangle, or coming out? [3/16/2011 11:02:57 PM] buckyballreaction: i'm not getting dupe warnings in triangle [3/16/2011 11:03:03 PM] buckyballreaction: instead, i'm getting this: Warning: Invalid first endpoint of segment 1701 in input. [3/16/2011 11:03:28 PM] buckyballreaction: but the way those zones show up suggest they may have dupe vertices [3/16/2011 11:04:08 PM] buckyballreaction: this is with the working un-optomized code we have now [3/16/2011 11:04:13 PM] Chris Eykamp: ah, I think I know what that is [3/16/2011 11:04:32 PM] buckyballreaction: please enlighten me :) [3/16/2011 11:04:48 PM] Chris Eykamp: update and see if that fixes it [3/16/2011 11:06:29 PM] buckyballreaction: did you rename the clipper header to clipper.h from clipper.hpp? [3/16/2011 11:10:28 PM] buckyballreaction: so i notice no change [3/16/2011 11:10:33 PM] buckyballreaction: in speed or result [3/16/2011 11:10:46 PM] buckyballreaction: did you mean for some of what you checked in to be uncommented? [3/16/2011 11:11:36 PM] Chris Eykamp: oops... yes, I did [3/16/2011 11:11:57 PM] Chris Eykamp: but [3/16/2011 11:12:02 PM] Chris Eykamp: it's a mess here [3/16/2011 11:12:04 PM] Chris Eykamp: :) [3/16/2011 11:12:10 PM] Chris Eykamp: I *hate* the hpp extension [3/16/2011 11:12:27 PM] buckyballreaction: ok, i'll adjust accordingly [3/16/2011 11:12:31 PM] Chris Eykamp: [Wednesday, March 16, 2011 11:10 PM] buckyballreaction: <<< did you mean for some of what you checked in to be uncommented?what do you mean? [3/16/2011 11:12:57 PM] buckyballreaction: there is a big chunk of commented-out code, that you checked in [3/16/2011 11:13:18 PM] Chris Eykamp: my testing showed that the Invalid first endpoint of segment 1701 in input lines were coming from empty polygons [3/16/2011 11:13:33 PM] Chris Eykamp: that were somehow being generated by clipper [3/16/2011 11:14:17 PM] Chris Eykamp: let me check to make sure my removal didn't get delted during th emerge [3/16/2011 11:14:33 PM] buckyballreaction: ok, because i see no logical difference in what I got... [3/16/2011 11:15:49 PM] Chris Eykamp: it's in there... let me test here [3/16/2011 11:25:28 PM] Chris Eykamp: argh... all my compile problems with clipper are back [3/16/2011 11:25:47 PM] buckyballreaction: lost in in your library path? [3/16/2011 11:26:02 PM] buckyballreaction: or is it because of .h vs .hpp [3/16/2011 11:27:16 PM] Chris Eykamp: not sure [3/16/2011 11:37:48 PM] Chris Eykamp: I get no warnings on ctf1 [3/16/2011 11:37:54 PM] Chris Eykamp: I do get some crazy zones [3/16/2011 11:37:58 PM] Chris Eykamp: weird holes and such [3/16/2011 11:39:38 PM] buckyballreaction: i still don't see much difference between what you checked in and what we already had [3/16/2011 11:39:52 PM] buckyballreaction: i only see changing this: for (U32 j = 0; j < solution.size(); j++) clipper.AddPolygon(solution[j], ptSubject); To clipper.AddPolyPolygon(solution, ptSubject); [3/16/2011 11:40:06 PM] buckyballreaction: and then you added: S32 firstx = S32_MAX; S32 firsty = S32_MAX; S32 lastx = S32_MAX; S32 lasty = S32_MAX; [3/16/2011 11:40:11 PM] buckyballreaction: but they are never used [3/16/2011 11:40:44 PM] Chris Eykamp: but the holes don't seem to impeded bot wayfinding [3/16/2011 11:41:02 PM] buckyballreaction: let me show you something interesting... [3/16/2011 11:41:08 PM] Chris Eykamp: on ctf1, I added flag spawns in different places, so I could see the different paths it picks [3/16/2011 11:41:13 PM] buckyballreaction: can you start a game on ctf3 [3/16/2011 11:41:15 PM] buckyballreaction: showzones [3/16/2011 11:41:16 PM] buckyballreaction: showpaths [3/16/2011 11:41:25 PM] buckyballreaction: i'll bring you to a zone that a bot can't get to [3/16/2011 11:42:36 PM] Chris Eykamp: ok [3/16/2011 11:43:12 PM] Chris Eykamp: you were right [3/16/2011 11:43:20 PM] Chris Eykamp: gon the right server [3/16/2011 11:43:34 PM] buckyballreaction: which? [3/16/2011 11:44:29 PM] Chris Eykamp: flommox was me [3/16/2011 11:44:35 PM] buckyballreaction: ok, i'm in [3/16/2011 11:44:38 PM] buckyballreaction: follow me [3/16/2011 11:49:28 PM] buckyballreaction: any reason why you use a different name? [3/16/2011 11:49:41 PM] Chris Eykamp: no [3/16/2011 11:49:50 PM] buckyballreaction: excellent reason [3/16/2011 11:49:51 PM] Chris Eykamp: ok, come back on [3/16/2011 11:54:34 PM] Chris Eykamp: 1787 triangles [3/16/2011 11:55:16 PM] buckyballreaction: yep, without recast it workes [3/16/2011 11:56:14 PM] Chris Eykamp: that's a lot of triangles [3/16/2011 11:56:15 PM] buckyballreaction: so that makes me think that the triangle vertex ordering goes goofy somewhere [3/16/2011 11:56:24 PM] Chris Eykamp: but with roundy corners, recast has less to work with [3/16/2011 11:56:54 PM] buckyballreaction: less? [3/16/2011 11:56:55 PM] buckyballreaction: you mean more? [3/16/2011 11:57:00 PM] Chris Eykamp: but yes, i think your analysis is correct [3/16/2011 11:57:09 PM] Chris Eykamp: well, they seem less aggregateable [3/16/2011 11:57:16 PM] Chris Eykamp: lots more fussy triangles at corners [3/16/2011 11:57:22 PM] buckyballreaction: ah yes [3/16/2011 11:57:43 PM] Chris Eykamp: so recast improves things less [3/16/2011 11:58:09 PM] buckyballreaction: wonderful [3/16/2011 11:59:01 PM] Chris Eykamp: you know, one optimaization we can make that would make having more zones (triangle only) less painful would be to cache paths between zones [3/16/2011 11:59:07 PM] Chris Eykamp: create a lookup table as we go [3/16/2011 11:59:26 PM] Chris Eykamp: compute a zone pair, save the route in a map [3/16/2011 11:59:28 PM] buckyballreaction: for the bot algo, you mean? [3/16/2011 11:59:34 PM] Chris Eykamp: yes [3/16/2011 11:59:47 PM] Chris Eykamp: so even though we have more zones, less computation is needed during the course of a game [3/17/2011 12:00:05 AM] buckyballreaction: i like that idea [3/17/2011 12:00:31 AM] Chris Eykamp: in fact, if I generate a path from a-b-c-d-e-f, then I also know the path from b-f and from c-f [3/17/2011 12:00:42 AM] Chris Eykamp: though that may be more trouble than it's worth [3/17/2011 12:01:00 AM] Chris Eykamp: it seems that certain zone pairs come up often -- from spawn point to enemy flag spawn, for example [3/17/2011 12:01:09 AM] buckyballreaction: ye [3/17/2011 12:01:10 AM] buckyballreaction: yes [3/17/2011 12:01:26 AM] buckyballreaction: but first [3/17/2011 12:01:37 AM] buckyballreaction: should we ditch recast? [3/17/2011 12:02:34 AM] Chris Eykamp: maybe [3/17/2011 12:02:59 AM] Chris Eykamp: but all that work [3/17/2011 12:03:02 AM] buckyballreaction: or should we reorder vertices before they get to recast? [3/17/2011 12:04:30 AM] Chris Eykamp: reorder when/how? [3/17/2011 12:04:49 AM] buckyballreaction: because i figure vertex order has gone goofy before recast [3/17/2011 12:05:08 AM] buckyballreaction: so they would need to be reordered CCW (or CW) before going in... [3/17/2011 12:05:14 AM] buckyballreaction: if we want to save the recast work [3/17/2011 12:07:36 AM] Chris Eykamp: triangle should do that already [3/17/2011 12:07:49 AM] buckyballreaction: so maybe i am just dead wrong [3/17/2011 12:14:29 AM] buckyballreaction: are you working on something specific right now? [3/17/2011 12:15:03 AM] Chris Eykamp: trying to find tire chains for my car [3/17/2011 12:15:05 AM] Chris Eykamp: actually [3/17/2011 12:15:17 AM] buckyballreaction: i have one chain [3/17/2011 12:15:23 AM] Chris Eykamp: I do too! [3/17/2011 12:15:23 AM] buckyballreaction: lost the other up a mountain... [3/17/2011 12:15:29 AM] Chris Eykamp: so did I! [3/17/2011 12:15:32 AM] buckyballreaction: haha [3/17/2011 12:16:00 AM] Chris Eykamp: maybe I can borrow yours [3/17/2011 12:16:11 AM] buckyballreaction: if i can find it... [3/17/2011 12:16:14 AM] buckyballreaction: :) [3/17/2011 12:19:35 AM] buckyballreaction: i still can't believe how much time i wasted working on the clipping when clipper was right there.. [3/17/2011 12:19:46 AM] Chris Eykamp: right [3/17/2011 12:19:51 AM] Chris Eykamp: yeah. [3/17/2011 12:20:12 AM] Chris Eykamp: I can't beleive how much time I'm spending on tire chains and it's the middle of march [3/17/2011 12:21:01 AM] Chris Eykamp: do you ever need chains in Utah this time of year? [3/17/2011 12:21:18 AM] buckyballreaction: it's iffy [3/17/2011 12:21:24 AM] buckyballreaction: it might snow again still [3/17/2011 12:21:46 AM] buckyballreaction: but most likely not [3/17/2011 12:22:05 AM] Chris Eykamp: I hope it snows again [3/17/2011 12:22:18 AM] Chris Eykamp: I told you I'm going skiing in SLC next week, right? [3/17/2011 12:22:33 AM] buckyballreaction: if you did, i didn't remember [3/17/2011 12:22:46 AM] buckyballreaction: park city? [3/17/2011 12:22:52 AM] Chris Eykamp: hopefully alta [3/17/2011 12:23:05 AM] Chris Eykamp: but maybe a couple of different places [3/17/2011 12:23:16 AM] Chris Eykamp: we're staying close to brighton [3/17/2011 12:23:23 AM] buckyballreaction: well we just got a really cold rain here in the valley, so i bet there's a bunch more snow on the peaks [3/17/2011 12:26:31 AM] Chris Eykamp: I'll buy some in SLC if we need them [3/17/2011 12:47:43 AM] Chris Eykamp: I'm doing a quick test to see how many zones recast saves us [3/17/2011 12:47:50 AM] Chris Eykamp: with your octagons [3/17/2011 12:47:56 AM] Chris Eykamp: (those are checked in, right?) [3/17/2011 12:48:32 AM] buckyballreaction: yes [3/17/2011 12:49:45 AM] Chris Eykamp: then I'll see about speed [3/17/2011 12:49:52 AM] buckyballreaction: ok [3/17/2011 12:54:05 AM] Chris Eykamp: that's not right... [3/17/2011 12:54:20 AM] Chris Eykamp: I show recast procing the same number of zones as triangle [3/17/2011 12:54:47 AM] buckyballreaction: you mean output afterwards? [3/17/2011 12:54:54 AM] buckyballreaction: that's not right... [3/17/2011 12:55:02 AM] Chris Eykamp: ah, maybe we're adding 0 pt bot zones [3/17/2011 12:55:19 AM] Chris Eykamp: yes [3/17/2011 1:02:13 AM] buckyballreaction: i think i have a bot cache working [3/17/2011 1:02:32 AM] Chris Eykamp: you mean like we discussed? [3/17/2011 1:02:36 AM] buckyballreaction: yep [3/17/2011 1:02:45 AM] Chris Eykamp: great [3/17/2011 1:02:55 AM] buckyballreaction: it only checks the cache before doint the AStar calculations [3/17/2011 1:03:06 AM] Chris Eykamp: you want to make sure we don't cache too much [3/17/2011 1:03:08 AM] buckyballreaction: if found it skips the caclulation [3/17/2011 1:05:53 AM] buckyballreaction: what would you consider too much? [3/17/2011 1:06:07 AM] buckyballreaction: 100? [3/17/2011 1:06:11 AM] buckyballreaction: 1000? [3/17/2011 1:06:33 AM] Chris Eykamp: well, if we have 1000 zones, there is a potential for caching 1000x1000 paths [3/17/2011 1:06:44 AM] Chris Eykamp: 100 is ok, 1000 might even be ok [3/17/2011 1:06:51 AM] Chris Eykamp: 1M is too many :) [3/17/2011 1:07:07 AM] buckyballreaction: ah ok [3/17/2011 1:07:29 AM] Chris Eykamp: could only cache paths that start/end with bot spawn and/or flag spawn [3/17/2011 1:07:42 AM] Chris Eykamp: or count frequency of use and delete unused ones [3/17/2011 1:07:50 AM] Chris Eykamp: or just hope we don;t get too many [3/17/2011 1:11:48 AM] Chris Eykamp: 1787->834 [3/17/2011 1:11:57 AM] Chris Eykamp: recast cuts zones about in half on ctf3 [3/17/2011 1:12:19 AM] buckyballreaction: that's good [3/17/2011 1:13:27 AM] Chris Eykamp: well, that means, on average, recast is only merging 2 triangles [3/17/2011 1:19:12 AM] buckyballreaction: is it worth it, then? [3/17/2011 1:21:08 AM] buckyballreaction: cache results (in microseconds): found in cache: 2-4 (mode 3) not found in cache: 7 - 415 (mode 20 -50) [3/17/2011 1:23:17 AM] Chris Eykamp: whoa [3/17/2011 1:23:21 AM] Chris Eykamp: that's huge [3/17/2011 1:23:51 AM] Chris Eykamp: so 415 us is... what half a ms [3/17/2011 1:23:57 AM] Chris Eykamp: so huge percentage wise [3/17/2011 1:24:16 AM] buckyballreaction: yeah, that's the case where the flag might be in a buffer... [3/17/2011 1:24:26 AM] Chris Eykamp: triple those numbers for my machine [3/17/2011 1:24:36 AM] Chris Eykamp: huge percentage wise, small overall [3/17/2011 1:24:52 AM] Chris Eykamp: multiply by 6 or 8 bots [3/17/2011 1:25:10 AM] buckyballreaction: oh yeah, good idea.... [3/17/2011 1:25:39 AM] buckyballreaction: rats, i put the cache in the wrong scope... [3/17/2011 1:25:57 AM] buckyballreaction: i put it in Robot:: so every bot get's it's own [3/17/2011 1:26:08 AM] Chris Eykamp: ah, better to make it static [3/17/2011 1:26:12 AM] buckyballreaction: i did [3/17/2011 1:26:16 AM] Chris Eykamp: good [3/17/2011 1:26:50 AM] Chris Eykamp: with your new timer code, can you time diff btween using recast and not? [3/17/2011 1:26:55 AM] Chris Eykamp: i.e. with more zones? [3/17/2011 1:27:20 AM] Chris Eykamp: that's one of the missing bits of data... does recast actually save us much processing time [3/17/2011 1:27:38 AM] buckyballreaction: ok [3/17/2011 1:27:54 AM] buckyballreaction: i was using recast for my tests... [3/17/2011 1:27:55 AM] Chris Eykamp: some number of those zones are totally unreachable, so shouldn't affect the results [3/17/2011 1:29:34 AM] Chris Eykamp: argh... getting all kinds of memory errors [3/17/2011 1:34:32 AM] buckyballreaction: results w/o recast: found in cache: 2-4 (mode 3) not found in cache: 8 - 933 (mode 100 - 250) [3/17/2011 1:35:59 AM] buckyballreaction: so it ends up being about 3-5 times slower on average [3/17/2011 1:36:07 AM] Chris Eykamp: hmmm. [3/17/2011 1:36:15 AM] Chris Eykamp: rats [3/17/2011 1:36:24 AM] buckyballreaction: what i was thinking, too... [3/17/2011 1:36:43 AM] Chris Eykamp: what? rats? [3/17/2011 1:36:51 AM] buckyballreaction: yeah, my snake needs one.. [3/17/2011 1:37:08 AM] buckyballreaction: i mean, yeah, it's unfortunate that recast saves so much processing time :) [3/17/2011 1:37:55 AM] buckyballreaction: where would be a good place (class) to put a shared cache for all bots? [3/17/2011 1:38:25 AM] Chris Eykamp: wherever the wayfinding is done? either robot or botnavmeshzone [3/17/2011 1:38:39 AM] buckyballreaction: robot doesn't work with shared [3/17/2011 1:38:49 AM] buckyballreaction: so i'll do BNMZ [3/17/2011 1:43:47 AM] buckyballreaction: do i have to do any memory cleanup with the cache? [3/17/2011 1:44:07 AM] buckyballreaction: this is the cache: map, Vector > BotNavMeshZone::cachedFlightPlanZones; [3/17/2011 1:46:29 AM] Chris Eykamp: did you use new? [3/17/2011 1:46:46 AM] buckyballreaction: nope [3/17/2011 1:46:48 AM] Chris Eykamp: if not, it will clean itself up when it goes out of scope [3/17/2011 1:46:52 AM] buckyballreaction: ok [3/17/2011 1:47:20 AM] Chris Eykamp: though if it's static, be sure to clear it befor eusing it [3/17/2011 1:47:28 AM] Chris Eykamp: to get rid of any leftover data [3/17/2011 1:49:10 AM] buckyballreaction: haha, i think i loaded up 50MB worth of cache [3/17/2011 1:49:11 AM] buckyballreaction: with 7 bots [3/17/2011 1:51:06 AM] buckyballreaction: that was about 1000 paths [3/17/2011 1:51:11 AM] buckyballreaction: that seems expensive [3/17/2011 1:51:15 AM] Chris Eykamp: indeed [3/17/2011 1:51:31 AM] Chris Eykamp: #bots shouldn't matter [3/17/2011 1:51:43 AM] buckyballreaction: yes, they don't anymore [3/17/2011 1:51:47 AM] Chris Eykamp: how (or are) you clearing out the cache to keep numbers down? [3/17/2011 1:51:55 AM] buckyballreaction: i just added that many to get a fast cache [3/17/2011 1:52:05 AM] buckyballreaction: i am not, at the moment [3/17/2011 1:52:28 AM] buckyballreaction: this is without recast, too [3/17/2011 1:52:35 AM] Chris Eykamp: so the proper way to do this would be to add a counter to each cache entry, then cull the least frequently used entries when you add another [3/17/2011 1:52:40 AM] buckyballreaction: so with recast, memory should be lower with few points in the path [3/17/2011 1:54:06 AM] buckyballreaction: would you clear the cache in the destructor? [3/17/2011 1:54:30 AM] Chris Eykamp: which destructor? [3/17/2011 1:54:49 AM] buckyballreaction: acutally, if i keep it in BotNavMeshZone, it doesn't need to be static [3/17/2011 1:54:58 AM] buckyballreaction: so i don't need to clear it, correct? [3/17/2011 1:55:06 AM] Chris Eykamp: why not? [3/17/2011 1:55:27 AM] Chris Eykamp: we create many botNavMeshZones... so to keep it there it would have to be static [3/17/2011 1:55:34 AM] buckyballreaction: oh... [3/17/2011 1:55:38 AM] buckyballreaction: ok [3/17/2011 1:55:42 AM] buckyballreaction: then static it is... [3/17/2011 1:56:18 AM] buckyballreaction: would this do it in the destructor of BotNavMeshZone: cachedFlightPlanZones.clear(); [3/17/2011 1:56:29 AM] Chris Eykamp: You could also put it on game or something if you didn't want it static; then it would go away when you quit game and uise editor, for example [3/17/2011 1:56:34 AM] Chris Eykamp: or gameType [3/17/2011 1:56:39 AM] Chris Eykamp: well, game [3/17/2011 1:56:44 AM] Chris Eykamp: ServerGame [3/17/2011 1:56:46 AM] Chris Eykamp: actually [3/17/2011 1:56:55 AM] buckyballreaction: ah ServerGame... ok [3/17/2011 1:56:56 AM] buckyballreaction: i like that idea [3/17/2011 1:57:30 AM] buckyballreaction: can you think of a less memory hog cache than?: map, Vector > BotNavMeshZone::cachedFlightPlanZones; [3/17/2011 1:57:30 AM] Chris Eykamp: kind of fits [3/17/2011 1:57:50 AM] Chris Eykamp: pair [3/17/2011 1:58:16 AM] Chris Eykamp: for 1000 entries will save... 4K [3/17/2011 1:58:40 AM] Chris Eykamp: how could this take 50M on 1000 entries? [3/17/2011 1:58:58 AM] Chris Eykamp: 50M/1000 = 50K per entry [3/17/2011 1:59:04 AM] buckyballreaction: yeah, i don't know [3/17/2011 1:59:22 AM] buckyballreaction: maybe it was just bitfighter leaking elsewhere [3/17/2011 1:59:35 AM] Chris Eykamp: we don't clean up recast [3/17/2011 1:59:40 AM] Chris Eykamp: there's a definite leak there [3/17/2011 1:59:48 AM] buckyballreaction: i wasn't using recast [3/17/2011 2:00:05 AM] buckyballreaction: is there a way to get the memory footprint of an object in-code, in c++? [3/17/2011 2:00:11 AM] Chris Eykamp: each point is 2 floats, that's 8bytes, + some overhead [3/17/2011 2:00:22 AM] Chris Eykamp: mmmm [3/17/2011 2:00:24 AM] Chris Eykamp: not sure [3/17/2011 2:00:44 AM] Chris Eykamp: 25 bytes per point [3/17/2011 2:01:01 AM] Chris Eykamp: 50K/25 byutes = 2000 points per path [3/17/2011 2:01:08 AM] Chris Eykamp: could be [3/17/2011 2:01:11 AM] buckyballreaction: say average flight-plan on ctf3 is 50 points [3/17/2011 2:01:12 AM] Chris Eykamp: if this was ctf3 [3/17/2011 2:01:25 AM] Chris Eykamp: each zone uses 3 points [3/17/2011 2:01:26 AM] buckyballreaction: i guess more [3/17/2011 2:01:38 AM] Chris Eykamp: edge-centroid-edge [3/17/2011 2:01:45 AM] buckyballreaction: i thought oooooooooooooooooooooo [3/17/2011 2:01:49 AM] buckyballreaction: ok [3/17/2011 2:02:01 AM] Chris Eykamp: for searching we only use centroids [3/17/2011 2:02:23 AM] Chris Eykamp: but for building the path, we guide the bot through those turquoise "gateways" [3/17/2011 2:02:32 AM] Chris Eykamp: probably don't need that with triangle [3/17/2011 2:02:46 AM] Chris Eykamp: as each centroid can see all neighboring centroids [3/17/2011 2:02:51 AM] Chris Eykamp: (I think) [3/17/2011 2:05:49 AM] Chris Eykamp: just did big fix to recast... no change in zone quality [3/17/2011 2:09:46 AM] Chris Eykamp: these zones are frustrating me [3/17/2011 2:10:37 AM] buckyballreaction: so how would i add a value back to a map pointer? flightPathCache is a pointer to the real one, but this doesn't work: thisRobot->flightPlan = *flightPathCache[pathIndex]; [3/17/2011 2:10:49 AM] buckyballreaction: sorry, get the vallue [3/17/2011 2:11:19 AM] Chris Eykamp: what is flightPathCache? [3/17/2011 2:11:24 AM] Chris Eykamp: or rather, how is it defined? [3/17/2011 2:11:26 AM] buckyballreaction: a map* [3/17/2011 2:11:32 AM] buckyballreaction: map pointer [3/17/2011 2:11:38 AM] Chris Eykamp: pointer to the map itself? [3/17/2011 2:11:40 AM] buckyballreaction: map, Vector >* flightPathCache = &gServerGame->cachedBotFlightPlans; [3/17/2011 2:12:09 AM] Chris Eykamp: ah, I see... [3/17/2011 2:12:33 AM] Chris Eykamp: try something like (*flightPathcache)[pathIndex] [3/17/2011 2:12:38 AM] buckyballreaction: ok [3/17/2011 2:12:47 AM] Chris Eykamp: if I understood [3/17/2011 2:13:07 AM] buckyballreaction: it worked! [3/17/2011 2:13:09 AM] buckyballreaction: thanks [3/17/2011 2:13:40 AM] Chris Eykamp: good [3/17/2011 2:13:46 AM] Chris Eykamp: kind of ugly [3/17/2011 2:14:05 AM] buckyballreaction: yeah, but saves memory [3/17/2011 2:17:51 AM] Chris Eykamp: so these are what recast is spitting out for one of those "black" zones [3/17/2011 2:17:52 AM] Chris Eykamp: ====== zone 20 ====== Zone 20 : -540.000000,85.000000 Zone 20 : -540.000000,85.000000 Zone 20 : -322.000000,195.000000 Zone 20 : -768.000000,250.000000 Zone 20 : -684.000000,-156.000000 Zone 20 : -674.000000,-152.000000 [3/17/2011 2:18:03 AM] buckyballreaction: dupes! [3/17/2011 2:18:19 AM] Chris Eykamp: if I remove that first dupe point, the zone starts "working" again [3/17/2011 2:18:27 AM] buckyballreaction: that's so weird [3/17/2011 2:19:03 AM] buckyballreaction: are 4-point triangles going into recast? [3/17/2011 2:19:14 AM] Chris Eykamp: I hope not [3/17/2011 2:20:04 AM] Chris Eykamp: don't even think that's possible [3/17/2011 2:30:11 AM] buckyballreaction: struggling with syntax again... [3/17/2011 2:30:28 AM] buckyballreaction: i might not get to cleaning the cache tonight [3/17/2011 2:30:39 AM] buckyballreaction: want me to at least check-in what I have? [3/17/2011 2:31:07 AM] Chris Eykamp: sure [3/17/2011 2:31:26 AM] Chris Eykamp: so before, when you tried adding multiple polys to clipper, did anything work? [3/17/2011 2:31:41 AM] buckyballreaction: triangle always crashed with a segfault [3/17/2011 2:32:50 AM] Chris Eykamp: ok [3/17/2011 2:33:00 AM] Chris Eykamp: will have to look at that [3/17/2011 2:33:11 AM] Chris Eykamp: because current perormance isn't good enough [3/17/2011 2:33:44 AM] buckyballreaction: agreed [3/17/2011 2:34:51 AM] buckyballreaction: this time i only added about 7MB with the cache [3/17/2011 2:35:29 AM] buckyballreaction: which is much better, but i didn't turn on showzones or showpaths [3/17/2011 2:35:41 AM] buckyballreaction: so i wonder if there is a memory leak there.. [3/17/2011 2:36:20 AM] Chris Eykamp: turn them on and see if more memory is used [3/17/2011 2:37:18 AM] buckyballreaction: oh wow - it's jumping 1MB every 5-10 seconds now [3/17/2011 2:37:23 AM] buckyballreaction: with only showzones [3/17/2011 2:38:02 AM] Chris Eykamp: wow [3/17/2011 2:38:13 AM] buckyballreaction: showpaths isn't really adding much [3/17/2011 2:38:29 AM] Chris Eykamp: neither should add any [3/17/2011 2:39:03 AM] buckyballreaction: showpaths hasn't increased yet... [3/17/2011 2:39:11 AM] buckyballreaction: showzones is going crazy [3/17/2011 2:39:53 AM] buckyballreaction: and removing showzones doesn't free any memory [3/17/2011 2:40:33 AM] Chris Eykamp: if you can't figure it out (or want to go to bed) please make a case for that [3/17/2011 2:40:45 AM] buckyballreaction: i want to go to bed... [3/17/2011 2:40:49 AM] Chris Eykamp: sam, just wondering ifyou're around tonight [3/17/2011 2:40:53 AM] Chris Eykamp: if so hi! [3/17/2011 2:41:18 AM] Chris Eykamp: you can make the case in the AM :) [3/17/2011 2:44:47 AM] buckyballreaction: hmmm [3/17/2011 2:44:58 AM] buckyballreaction: so i put the cache in ServerGame [3/17/2011 2:45:11 AM] buckyballreaction: but every time i restart the level, it is still there [3/17/2011 2:45:24 AM] buckyballreaction: through the editor [3/17/2011 2:45:31 AM] buckyballreaction: the cache is not static [3/17/2011 2:45:42 AM] buckyballreaction: does it need cleaning up somewhere? [3/17/2011 2:46:33 AM] Chris Eykamp: oh, maybe ServerGame persists over multiple games? [3/17/2011 2:46:46 AM] Chris Eykamp: GameType definitley goes away [3/17/2011 2:46:56 AM] Chris Eykamp: yes, servergame does [3/17/2011 2:47:01 AM] Chris Eykamp: I steered you wrong [3/17/2011 2:47:05 AM] Chris Eykamp: deal with it tomorrow [3/17/2011 2:47:36 AM] buckyballreaction: i must finish [3/17/2011 2:47:48 AM] buckyballreaction: gametype, ok [3/17/2011 2:47:50 AM] buckyballreaction: i move it [3/17/2011 3:05:30 AM] buckyballreaction: ok, gametype seems to work [3/17/2011 3:05:53 AM] Chris Eykamp: you're still awake? :) [3/17/2011 3:06:04 AM] buckyballreaction: yeah - i can't leave a task undone... [3/17/2011 3:06:20 AM] Chris Eykamp: I just got a request for documentation for every job I've held since college [3/17/2011 3:06:27 AM] buckyballreaction: oh my [3/17/2011 3:06:52 AM] Chris Eykamp: that's about 15 years back, and I've worked about 10 jobs on every contintnt, moved all over, and there's just no way I can do taht [3/17/2011 3:06:55 AM] Chris Eykamp: argh. [3/17/2011 3:07:08 AM] Chris Eykamp: maybe more than 10 jobs [3/17/2011 3:07:16 AM] Chris Eykamp: it's hard even to keep count [3/17/2011 3:07:19 AM] buckyballreaction: that's crazy [3/17/2011 3:07:21 AM] Chris Eykamp: yes [3/17/2011 3:07:58 AM] Chris Eykamp: on the other hand, they need that to calculate a salary to offer me, so it's a promising sign [3/17/2011 3:08:11 AM] buckyballreaction: oh good [3/17/2011 3:08:16 AM] Chris Eykamp: I think so [3/17/2011 3:08:23 AM] buckyballreaction: that's a lot of work, though [3/17/2011 3:08:30 AM] Chris Eykamp: unless they only pay me based on the work I can substantiate [3/17/2011 3:08:39 AM] Chris Eykamp: in which case I'll be earning about $4 per hour [3/17/2011 3:08:43 AM] buckyballreaction: hehe [3/17/2011 3:08:50 AM] Chris Eykamp: ah well [3/17/2011 3:09:03 AM] Chris Eykamp: these things happen [3/17/2011 3:09:28 AM] buckyballreaction: real quick - do you want me to rename clipper.hpp to clipper.h in the repo? [3/17/2011 3:10:05 AM] Chris Eykamp: sure [3/17/2011 3:10:06 AM] Chris Eykamp: or I can do it [3/17/2011 3:10:31 AM] buckyballreaction: already committed.. [3/17/2011 3:12:25 AM] Chris Eykamp: great, thanks [3/17/2011 3:15:38 AM] buckyballreaction: ok, pushed the flightpath cache [3/17/2011 3:16:01 AM] buckyballreaction: it doesn't seem to consume much memory at all - even with 10 bots all on ctf3 [3/17/2011 3:16:57 AM] buckyballreaction: now it's time to for bed [3/17/2011 3:16:59 AM] buckyballreaction: good night [3/17/2011 3:23:47 AM] Chris Eykamp: night [3/17/2011 3:55:04 AM] Chris Eykamp: fixed the messed up zones in recast [3/17/2011 3:55:12 AM] Chris Eykamp: there was a bug in recast [3/17/2011 3:55:13 AM] Chris Eykamp: fixed [3/17/2011 3:55:16 AM] Chris Eykamp: will check in shortly [3/17/2011 3:55:35 AM] Chris Eykamp: recast zones now form nicely from clipper->triangle->recast [3/17/2011 4:03:28 AM] Chris Eykamp: goodnight sam! [3/17/2011 10:58:23 AM] buckyballreaction: yay! [3/17/2011 10:58:27 AM] buckyballreaction: this is looking good [3/17/2011 10:58:38 AM] buckyballreaction: now all we need to increase performance [3/17/2011 10:58:58 AM] buckyballreaction: i have an idea, but i am not sure how to implement it in c++ [3/17/2011 10:59:48 AM] buckyballreaction: is there a way to guarantee synchronization when iterating over a data structure and deleting elements therein? [3/17/2011 11:00:39 AM] buckyballreaction: so something like: while (structure has more elements) do if this element matches some criteria delete this element done [3/17/2011 11:00:56 AM] buckyballreaction: but that has serious concurrency problems [3/17/2011 11:51:49 AM] Chris Eykamp: you mean threads? [3/17/2011 11:52:28 AM] buckyballreaction: no [3/17/2011 11:52:47 AM] buckyballreaction: but i would be deleting elements from a data structure as i'm in the midst of iterating through it [3/17/2011 11:53:00 AM] Chris Eykamp: you can do that [3/17/2011 11:53:33 AM] Chris Eykamp: in fact, we do that in several places in the code [3/17/2011 11:53:39 AM] buckyballreaction: in Java at least, there is a concurrency problem [3/17/2011 11:53:47 AM] Chris Eykamp: sam has one way, i have another [3/17/2011 11:53:55 AM] buckyballreaction: because what if you iterate over a previously deleted element? [3/17/2011 11:54:05 AM] buckyballreaction: please enlighten me :) [3/17/2011 11:54:19 AM] buckyballreaction: there is the 'synchronized' modifier in java that is supposed to alleviate this problem [3/17/2011 11:54:45 AM] buckyballreaction: or point me to an example... [3/17/2011 11:56:02 AM] Chris Eykamp: synchronized is for threads [3/17/2011 11:56:05 AM] Chris Eykamp: for(S32 i = gBotNavMeshZones.size() - 1; i >= 0; i--) // For speed, check in reverse order. Game::cleanUp() clears on reverse order. if(gBotNavMeshZones[i] == this) { gBotNavMeshZones.erase_fast(i); break; } [3/17/2011 11:56:41 AM] Chris Eykamp: going backwards might be faster [3/17/2011 11:56:53 AM] Chris Eykamp: that's sam's trick [3/17/2011 12:04:58 PM] buckyballreaction: ah.. [3/17/2011 12:05:05 PM] buckyballreaction: ok [3/17/2011 12:05:35 PM] buckyballreaction: i have an idea with clipper performance [3/17/2011 12:06:33 PM] buckyballreaction: let me see if I can do the pseudo code: for each barrier get overlapping barriers in extents clipperunion [3/17/2011 12:06:36 PM] buckyballreaction: oops [3/17/2011 12:06:38 PM] buckyballreaction: not done [3/17/2011 12:11:37 PM] buckyballreaction: something along the lines of this: list removeBarriers list unionedBarriers foreach barrier in level { if not in removeBarriers { for each barrier in current barrier extents { add to clipper mark each barrier in removeBarriers } clipper union barriers unionedBarriers.add(clipper solution) } } [3/17/2011 12:12:06 PM] buckyballreaction: not quite fully though out yet [3/17/2011 12:12:08 PM] buckyballreaction: thought [3/17/2011 12:15:47 PM] Chris Eykamp: I'd like to figure out what clipper does that makes triangle barf when you try to do everything in one pass. Perhaps it would be worth trying that again on a simple level so we can investigate what's happening? [3/17/2011 12:16:01 PM] buckyballreaction: i did [3/17/2011 12:16:17 PM] Chris Eykamp: that's how I found the recast problem -- I kept simplifying a level until I had just three points that reproduced it, then I could see what was happening [3/17/2011 12:16:25 PM] Chris Eykamp: ok, good [3/17/2011 12:16:38 PM] buckyballreaction: from yesterday: 6:39:47 PM] buckyballreaction: results: 1. a level with 2 non-touching segments works ok 2. a level with a continuous 2-part segment has goofy zones 3. a level with non-continuous segments that share a [3/17/2011 12:17:09 PM] Chris Eykamp: oh right, my recast fix isn't going to help here [3/17/2011 12:17:17 PM] buckyballreaction: #3 segfaults [3/17/2011 12:17:21 PM] buckyballreaction: (forgot to write that) [3/17/2011 12:17:34 PM] buckyballreaction: a level with non-continuous segments that share a POINT [3/17/2011 12:17:43 PM] buckyballreaction: segment endpoint, that is [3/17/2011 12:17:50 PM] Chris Eykamp: can you dump out the points going into triangle so we can see what they look like, and perhpas how to fix the problem? [3/17/2011 12:18:06 PM] buckyballreaction: sure [3/17/2011 12:18:18 PM] Chris Eykamp: maybe it's as simple as dupe segments [3/17/2011 12:18:32 PM] Chris Eykamp: or empty points [3/17/2011 12:18:46 PM] Chris Eykamp: It can't really be much else [3/17/2011 12:19:10 PM] Chris Eykamp: we just pass a series of x,y pairs, and then lines connecting them [3/17/2011 12:19:21 PM] Chris Eykamp: there's only so much that can go so wrong it segfaults [3/17/2011 12:19:24 PM] buckyballreaction: this was the error: Warning: A duplicate vertex at (613.770568848, 230) appeared and was ignored. Forming triangulation. Removing ghost triangles. Recovering segments in Delaunay triangulation. Constructing mapping from vertices to triangles. Recovering PSLG segments. Segmentation fault [3/17/2011 12:19:48 PM] buckyballreaction: there were lots of dupe vertex warnings [3/17/2011 12:20:09 PM] Chris Eykamp: well, we can remove the dupe vertices using recast's method -- it's pretty fast [3/17/2011 12:20:16 PM] Chris Eykamp: that's what I fixed last night [3/17/2011 12:20:27 PM] Chris Eykamp: if that's the problem here\ [3/17/2011 12:21:10 PM] Chris Eykamp: it would also be easy to write a niave and slow dupe vertex remover to test if that is the problem [3/17/2011 12:21:16 PM] Chris Eykamp: but dupes shouldn't lead to segfault [3/17/2011 12:22:53 PM] buckyballreaction: 913 dupe vertex warnings on ctf3, then segfault [3/17/2011 12:22:56 PM] buckyballreaction: oooo [3/17/2011 12:23:09 PM] buckyballreaction: i got a new error: Recovering segments in Delaunay triangulation. Constructing mapping from vertices to triangles. Recovering PSLG segments. Internal error in finddirection(): Unable to find a triangle leading from (-104.989997864, 4707.31542969) to (5054.99023438, 4707.31542969). Please report this bug to jrs@cs.berkeley.edu Include the message above, your input data set, and the exact command line you used to run Triangle. [3/17/2011 12:24:12 PM] Chris Eykamp: ctf3? [3/17/2011 12:24:16 PM] buckyballreaction: yep [3/17/2011 12:24:33 PM] Chris Eykamp: that's a big triangle [3/17/2011 12:25:14 PM] buckyballreaction: funny, it didn't crash this time when i joined endpoints of a coninuous segment: http://96.2.123.136/upload/snapshot22.png [3/17/2011 12:26:11 PM] Chris Eykamp: something funny with that, though [3/17/2011 12:26:49 PM] buckyballreaction: that's with all the segments as the subject in clipper [3/17/2011 12:27:39 PM] Chris Eykamp: makes goofy zones [3/17/2011 12:27:45 PM] buckyballreaction: yup [3/17/2011 12:27:57 PM] buckyballreaction: same result when doing all vertices as the clips [3/17/2011 12:28:03 PM] buckyballreaction: all barrier, sorry [3/17/2011 12:28:24 PM] buckyballreaction: and same result when adding the barrier to both the clip and subject [3/17/2011 12:29:00 PM] buckyballreaction: let me turn recast off... [3/17/2011 12:29:28 PM] buckyballreaction: same zone converage [3/17/2011 12:30:51 PM] Chris Eykamp: so everything works the same [3/17/2011 12:30:55 PM] buckyballreaction: yep [3/17/2011 12:31:06 PM] buckyballreaction: i wonder... [3/17/2011 12:31:06 PM] Chris Eykamp: maybe that's good? [3/17/2011 12:31:19 PM] buckyballreaction: at least we know recast isn't the issue [3/17/2011 12:32:04 PM] buckyballreaction: i disabled IgnoreOrientation(true), same results [3/17/2011 12:43:39 PM] buckyballreaction: http://pastie.org/1683456 [3/17/2011 12:44:00 PM] buckyballreaction: segafault on a level with three non-contiguous segments forming a U [3/17/2011 12:44:45 PM] buckyballreaction: or actually a shape like this __ | __| [3/17/2011 12:45:00 PM] buckyballreaction: __ __| [3/17/2011 12:45:07 PM] buckyballreaction: __ __| [3/17/2011 12:45:10 PM] buckyballreaction: there we go [3/17/2011 12:48:25 PM] Chris Eykamp: 206.000000, -206.000000 appears tiwce [3/17/2011 12:48:30 PM] buckyballreaction: i just saw that... [3/17/2011 12:48:36 PM] Chris Eykamp: 34,35 would be dupes if we rounded [3/17/2011 12:48:49 PM] Chris Eykamp: but this data looks pretty clean [3/17/2011 12:49:19 PM] buckyballreaction: maybe it's just a matter of de-duping - i've seen triangle inexplicably crash before with duplicate points [3/17/2011 12:49:50 PM] Chris Eykamp: could just do a for loop and compare each point with it's predecessors [3/17/2011 12:50:06 PM] Chris Eykamp: but then you need to remap anything that uses that vertex as well [3/17/2011 12:50:24 PM] Chris Eykamp: so while straightforward, it's not trivial [3/17/2011 12:50:42 PM] Chris Eykamp: maybe I should take the recast de-dupe code and generalize it [3/17/2011 12:51:53 PM] buckyballreaction: so it seems like throwing all segments into clipper at once as one type (subjects, or clips) isn't actually applying the union [3/17/2011 12:52:29 PM] Chris Eykamp: that's what I as afraid of... how did you determine that? [3/17/2011 12:52:46 PM] buckyballreaction: because all the input points of the segments are still coming out [3/17/2011 12:52:55 PM] Chris Eykamp: ah [3/17/2011 12:52:58 PM] buckyballreaction: even though they overlap [3/17/2011 12:53:03 PM] Chris Eykamp: and they're all referred to [3/17/2011 12:53:07 PM] buckyballreaction: yep [3/17/2011 12:53:16 PM] Chris Eykamp: good catch [3/17/2011 12:53:57 PM] Chris Eykamp: so how was our old algo/sam's able to work so much faster [3/17/2011 12:54:47 PM] buckyballreaction: it more a matter of our new loop working slower: it unions the current segment to ALL segments in the map [3/17/2011 12:54:53 PM] buckyballreaction: on each segment [3/17/2011 12:55:43 PM] buckyballreaction: our older algos only applied the union to the segments in the extents of the current segmen [3/17/2011 12:55:53 PM] buckyballreaction: which is what i suggested up above with my funny pseudo code [3/17/2011 12:55:55 PM] Chris Eykamp: can we do the same? [3/17/2011 12:55:58 PM] Chris Eykamp: ah [3/17/2011 12:56:15 PM] buckyballreaction: yes - although i'm not quite sure how to mark the 'used' segments yet... [3/17/2011 12:56:29 PM] Chris Eykamp: there may be more overhead in firing up clipper to do the clip [3/17/2011 12:56:31 PM] buckyballreaction: and we wouls see a HUGE performace boost [3/17/2011 12:56:35 PM] Chris Eykamp: than just doing it ourselves [3/17/2011 12:57:19 PM] buckyballreaction: our loop runins in polynomial time where as the old code was something akin to linear [3/17/2011 12:57:41 PM] buckyballreaction: no... we are exponential [3/17/2011 12:57:52 PM] buckyballreaction: m^n [3/17/2011 12:57:57 PM] Chris Eykamp: yuck [3/17/2011 12:58:25 PM] buckyballreaction: ooo, i have an idea... [3/17/2011 12:58:30 PM] buckyballreaction: one moment... [3/17/2011 1:12:12 PM] buckyballreaction: ok let's try this... [3/17/2011 1:12:35 PM] buckyballreaction: fail [3/17/2011 1:19:28 PM] buckyballreaction: it's faster, but fails [3/17/2011 1:20:08 PM] buckyballreaction: i basically tried to do what the old prepare geo method did - only merge segments in extents [3/17/2011 1:20:36 PM] buckyballreaction: but it still produces multiple points... [3/17/2011 1:21:14 PM] buckyballreaction: because i can't think of a way to mark a future barrier as allready merge... [3/17/2011 1:21:33 PM] Chris Eykamp: what does that mean? [3/17/2011 1:22:40 PM] buckyballreaction: so now the algo is: 1. iterate through all barriers 2. for each one, merge only barriers found overlapping in the extents of the current one [3/17/2011 1:24:03 PM] Chris Eykamp: ok [3/17/2011 1:24:12 PM] Chris Eykamp: what are future barriers? [3/17/2011 1:24:47 PM] buckyballreaction: so here is my current code (not optimized to reuse objects): http://pastie.org/1683591 [3/17/2011 1:25:06 PM] buckyballreaction: future barrier [3/17/2011 1:25:23 PM] buckyballreaction: is the barrier that i merge with the current one, but whose iterartion has not come up yet [3/17/2011 1:25:58 PM] buckyballreaction: oops, found a bug... [3/17/2011 1:26:12 PM] Chris Eykamp: ah, why not create a vector of bools Vector processed(number of entries) [3/17/2011 1:26:22 PM] Chris Eykamp: then set/check that? [3/17/2011 2:06:02 PM] buckyballreaction: i have another idea: modified merge sort [3/17/2011 2:06:13 PM] buckyballreaction: divide and conquer all the segments [3/17/2011 2:07:15 PM] buckyballreaction: so if there are 4000 segments, merge every two -> now we have 2000 then merge every two -> 1000 [3/17/2011 2:09:47 PM] Chris Eykamp: that would improve things, perhaps not enough? [3/17/2011 2:10:00 PM] buckyballreaction: i'll just have to implement it... [3/17/2011 2:10:11 PM] Chris Eykamp: well, best case is it reduces merges 1/2 [3/17/2011 2:10:22 PM] Chris Eykamp: ignoring overhead to set it up, that's a max of 2x performance [3/17/2011 2:10:54 PM] buckyballreaction: not more? because now we have 4000 merges of 1 and 4000 [3/17/2011 2:11:00 PM] Chris Eykamp: actually.... take 8 segments [3/17/2011 2:11:08 PM] Chris Eykamp: currently we do 7 merges [3/17/2011 2:11:17 PM] Chris Eykamp: if we did 4 + 2 + 1 that's still 7 [3/17/2011 2:11:27 PM] buckyballreaction: yes but 7 merges of 1 + 7 [3/17/2011 2:11:39 PM] buckyballreaction: 1 + [1 to 7] [3/17/2011 2:12:05 PM] buckyballreaction: now we would always just do 1 + 1 [3/17/2011 2:12:10 PM] Chris Eykamp: isn't it a+b=x; x+c = y; y+d=z... [3/17/2011 2:12:24 PM] Chris Eykamp: that's 7 merges for 8 segs [3/17/2011 2:12:31 PM] Chris Eykamp: currently [3/17/2011 2:13:00 PM] buckyballreaction: yes, i am not trying to emphazise the number of mergers - rather the amount being merged within each merge [3/17/2011 2:14:02 PM] Chris Eykamp: ah, so same number of merges, but each one simpler (and, hopefully, faster) [3/17/2011 2:14:09 PM] buckyballreaction: yes [3/17/2011 2:14:15 PM] Chris Eykamp: I misunderstood [3/17/2011 2:14:36 PM] Chris Eykamp: I'm still sceptical, but it certainly won't hurt [3/17/2011 2:15:31 PM] Chris Eykamp: I was also thinking of reducing # merges by tying to include multiple non-intersecting walls in each pass [3/17/2011 2:15:44 PM] Chris Eykamp: so clip poly gets walls a,b,c none of which intersect [3/17/2011 2:15:53 PM] Chris Eykamp: target poly gets d,e,f, none of which intersect [3/17/2011 2:16:01 PM] Chris Eykamp: not sure how to do that, though [3/17/2011 2:38:15 PM] buckyballreaction: sam has been really quiet - probably means he is working on something crazy [3/17/2011 2:46:13 PM] Chris Eykamp: quite possibly! [3/17/2011 2:48:20 PM] buckyballreaction: how about recursively finding all overlapping barriers that within each others extents, then merge only those and add the resultant poly to the solution [3/17/2011 2:49:43 PM] Chris Eykamp: look at ctf1 -- the groups will all overlap [3/17/2011 4:18:11 PM] Chris Eykamp: tantalizing hint... [3/17/2011 4:18:16 PM] Chris Eykamp: "I think you're asking if Clipper can perform a union of subject polygons without any clipping polygons (or vice-versa). Anyhow, yes Clipper does allow that. " [3/17/2011 4:19:46 PM] buckyballreaction: where did you read that? [3/17/2011 4:20:48 PM] Chris Eykamp: Clipper forums [3/17/2011 4:20:58 PM] buckyballreaction: there are gforums?? [3/17/2011 4:21:13 PM] Chris Eykamp: yes, not much there, but... [3/17/2011 4:21:14 PM] Chris Eykamp: something [3/17/2011 4:21:19 PM] Chris Eykamp: hold on, I;llget you a url [3/17/2011 4:25:02 PM] Chris Eykamp: https://sourceforge.net/projects/polyclipping/forums/forum/1148419 [3/17/2011 4:25:15 PM] buckyballreaction: thanks [3/17/2011 4:26:28 PM] buckyballreaction: whih tiopic? [3/17/2011 4:27:53 PM] Chris Eykamp: let me look. meanwhile: [3/17/2011 4:27:54 PM] Chris Eykamp: https://sourceforge.net/projects/polyclipping/forums/forum/1148419/topic/4416517 [3/17/2011 4:28:10 PM] Samuel Williams: i guess i give up trying to get my new prepareBarrierRenderingGeometry2 to work. http://96.2.123.136/bitfighter/new_edge_fail1.gif http://96.2.123.136/bitfighter/new_edge_fail2.gif http://96.2.123.136/bitfighter/new_edge_fail.txt (source) [3/17/2011 4:28:51 PM] buckyballreaction: hi sam! [3/17/2011 4:29:16 PM] buckyballreaction: we have clipper working - we just need to op timize [3/17/2011 4:29:32 PM] Samuel Williams: ok. [3/17/2011 4:29:36 PM] Chris Eykamp: oh, but this: [3/17/2011 4:29:38 PM] Chris Eykamp: If you're trying to intersect several polygons as subjects, against one or more clipping polygons then that can be achieved in one operation. However, if you're wanting the intersection of say three polygons - that is where three polygons overlap, then you'll need to perform two clipping operations: first intersecting two polygons, and then using the intersection result to intersect with the remaining polygon. [3/17/2011 4:30:00 PM] buckyballreaction: but we want union [3/17/2011 4:30:10 PM] Chris Eykamp: hi sam! [3/17/2011 4:30:27 PM] Chris Eykamp: I was hoping you'd have more luck, as clipper is a bit slow for what we need to do [3/17/2011 4:30:37 PM] Chris Eykamp: at least the way we're using it [3/17/2011 4:30:48 PM] buckyballreaction: i am working on a recursive algo... [3/17/2011 4:30:55 PM] Chris Eykamp: but it does work very well, aside from that! [3/17/2011 4:31:14 PM] Samuel Williams: mine prepareBarrierRenderingGeometry2 is fast, but doesn't work right. [3/17/2011 4:32:03 PM] Chris Eykamp: I can't find the original thing I quoted -- I think it was on the 2nd page, and was really about something else [3/17/2011 4:32:46 PM] Chris Eykamp: oh, here it is [3/17/2011 4:32:47 PM] Chris Eykamp: https://sourceforge.net/projects/polyclipping/forums/forum/1148419/topic/3815440 [3/17/2011 5:01:45 PM] buckyballreaction: you have a response already [3/17/2011 5:01:50 PM] buckyballreaction: http://sourceforge.net/projects/polyclipping/forums/forum/1148419/topic/4416517 [3/17/2011 5:02:55 PM] Chris Eykamp: well then. [3/17/2011 5:03:02 PM] Chris Eykamp: that's exactly what we want [3/17/2011 5:03:16 PM] buckyballreaction: maybe ask about duplicate points coming back out? [3/17/2011 5:04:06 PM] Chris Eykamp: can we carefuly verify the problem? Can you show me your level and the output from the merge? I'll plot the points and see what's going on [3/17/2011 5:04:32 PM] buckyballreaction: ok [3/17/2011 5:04:44 PM] buckyballreaction: give me a moment - just got a bunch of e-mails i need to respond to [3/17/2011 5:05:01 PM] Chris Eykamp: you posted a series of points and edges earlier, but i can't find it [3/17/2011 5:05:08 PM] Chris Eykamp: oops, read an old msg [3/17/2011 5:05:27 PM] Chris Eykamp: found it [3/17/2011 5:05:32 PM] Chris Eykamp: http://pastie.org/1683456 [3/17/2011 5:05:53 PM] buckyballreaction: yes! [3/17/2011 5:05:55 PM] buckyballreaction: that's it [3/17/2011 5:06:09 PM] Chris Eykamp: if you can show me the level, that would be helpful. when you have time [3/17/2011 5:06:16 PM] buckyballreaction: i can try something simpler... [3/17/2011 5:06:17 PM] buckyballreaction: ok [3/17/2011 5:08:47 PM] Chris Eykamp: simpler=better [3/17/2011 5:10:00 PM] buckyballreaction: new results: http://pastie.org/1684335 level file: http://96.2.123.136/upload/test9.level screenshot: http://96.2.123.136/upload/snapshot23.png [3/17/2011 5:10:20 PM] buckyballreaction: trangle warnings: Warning: A duplicate vertex at (206, -49) appeared and was ignored. Warning: A duplicate vertex at (279, 24) appeared and was ignored. [3/17/2011 5:10:24 PM] buckyballreaction: Triangle [3/17/2011 5:32:11 PM] Chris Eykamp: can we simplify that further by removing the octagonal buffers? [3/17/2011 5:32:51 PM] buckyballreaction: sure... let me get that old method... [3/17/2011 5:32:53 PM] Chris Eykamp: ctually forget that [3/17/2011 5:32:58 PM] buckyballreaction: k [3/17/2011 5:33:07 PM] Chris Eykamp: I'll just gin up a contrived example of two overlapping rectangles [3/17/2011 5:33:28 PM] Chris Eykamp: I want to create a super-simple situation that we can post back ont he forums to say this should work, but doesn't... why? [3/17/2011 5:33:42 PM] Chris Eykamp: so I'll just add my own points [3/17/2011 5:33:45 PM] Chris Eykamp: 8 of them [3/17/2011 5:34:13 PM] Chris Eykamp: then we can post that code rather than trying to explain the larger context [3/17/2011 5:35:35 PM] buckyballreaction: http://pastie.org/1684426 [3/17/2011 5:35:46 PM] buckyballreaction: the zones turned out ok, however [3/17/2011 5:36:03 PM] buckyballreaction: but i think that is a factor of having only square geometry [3/17/2011 5:37:11 PM] buckyballreaction: but we have duplicate points [3/17/2011 5:42:03 PM] buckyballreaction: ummm, i may have solved the problem... [3/17/2011 5:42:30 PM] buckyballreaction: i solved it [3/17/2011 5:42:45 PM] buckyballreaction: why read the documentation when you can program for a week? [3/17/2011 5:44:34 PM] buckyballreaction: Timings: 4 0 3 10 [3/17/2011 5:44:36 PM] buckyballreaction: ctf3 [3/17/2011 5:44:39 PM] buckyballreaction: awesome [3/17/2011 5:52:43 PM] buckyballreaction: passed the zone test suite [3/17/2011 5:53:59 PM] buckyballreaction: geowar: Timings: 10 0 4 17 [3/17/2011 5:56:41 PM] buckyballreaction: ok pushed! [3/17/2011 5:56:54 PM] buckyballreaction: we now have superfast, stable, everything [3/17/2011 5:57:43 PM] Chris Eykamp: um... what did you do? [3/17/2011 5:57:57 PM] buckyballreaction: i added all barriers as 'subjects' [3/17/2011 5:58:00 PM] buckyballreaction: then called union [3/17/2011 5:58:09 PM] Chris Eykamp: I thought you were doing that before [3/17/2011 5:58:11 PM] buckyballreaction: but this time [3/17/2011 5:58:39 PM] buckyballreaction: i payed closer attention to the doc and found if do: clipper.Execute(ctUnion, solution, pftNonZero, pftNonZero); instead of clipper.Execute(ctUnion, solution); [3/17/2011 5:58:57 PM] buckyballreaction: then it returns CW winding points [3/17/2011 5:59:03 PM] Chris Eykamp: ah, I wondered what those did; even did a google search, but with no luck [3/17/2011 5:59:08 PM] buckyballreaction: and tada! [3/17/2011 5:59:14 PM] Chris Eykamp: excellent [3/17/2011 5:59:16 PM] buckyballreaction: all levels so far have been fast [3/17/2011 5:59:25 PM] Chris Eykamp: so we pressure test, then we can clean everything up [3/17/2011 5:59:30 PM] Chris Eykamp: unless we find another problem [3/17/2011 5:59:39 PM] Chris Eykamp: we've been burned so many times before [3/17/2011 5:59:46 PM] buckyballreaction: what sort of pressure testing, do you think? [3/17/2011 5:59:56 PM] Chris Eykamp: well, geowar is a good one [3/17/2011 5:59:59 PM] Chris Eykamp: and ctf3 [3/17/2011 5:59:59 PM] buckyballreaction: geowar even works.. [3/17/2011 6:00:05 PM] Chris Eykamp: I'll believe that when I see it [3/17/2011 6:00:11 PM] buckyballreaction: Timings: 10 0 4 17 [3/17/2011 6:00:17 PM] buckyballreaction: for geowar for me [3/17/2011 6:00:18 PM] Chris Eykamp: that's pretty amazing [3/17/2011 6:00:31 PM] Chris Eykamp: using recast? [3/17/2011 6:00:33 PM] buckyballreaction: yep [3/17/2011 6:00:35 PM] Chris Eykamp: ok [3/17/2011 6:00:40 PM] buckyballreaction: but i'm on my beastly computer [3/17/2011 6:00:44 PM] Chris Eykamp: well, I'll try it tongight [3/17/2011 6:01:01 PM] buckyballreaction: cool [3/17/2011 6:01:05 PM] Chris Eykamp: sam might think of some way to break it... he's pretty creative that way [3/17/2011 6:01:20 PM] buckyballreaction: that's true [3/17/2011 6:01:24 PM] Chris Eykamp: we might test some of the narrow passage cases [3/17/2011 6:01:31 PM] buckyballreaction: i did! [3/17/2011 6:01:42 PM] buckyballreaction: octagonal zones seem to work well so far [3/17/2011 6:01:44 PM] Chris Eykamp: but if this is all good, I'd like to convert our wall rendering ot use these methods too [3/17/2011 6:01:55 PM] buckyballreaction: ah, the wall rendering.... [3/17/2011 6:01:59 PM] Chris Eykamp: no worries [3/17/2011 6:02:03 PM] buckyballreaction: i looked into that [3/17/2011 6:02:15 PM] buckyballreaction: it looks like each wall is rendered separately anyways [3/17/2011 6:02:21 PM] Chris Eykamp: just need to find a more encapsulated way to package these libs [3/17/2011 6:02:26 PM] Chris Eykamp: so we can call them from here and there [3/17/2011 6:02:32 PM] buckyballreaction: agreed [3/17/2011 6:02:51 PM] Chris Eykamp: yes; maybe only wall edges need to be generated with this [3/17/2011 6:02:56 PM] Chris Eykamp: I don't know [3/17/2011 6:03:13 PM] Chris Eykamp: we can clean out our 13 different methods of doing the same thing [3/17/2011 6:03:18 PM] buckyballreaction: hahahaha [3/17/2011 6:03:21 PM] buckyballreaction: so true... [3/17/2011 6:03:42 PM] Chris Eykamp: could we really be at the end of this hellish project? [3/17/2011 6:03:50 PM] buckyballreaction: man, i am so hopeful [3/17/2011 6:04:08 PM] Chris Eykamp: if so, we can clean out the editor too [3/17/2011 6:04:14 PM] Chris Eykamp: remove all the zone editing garbage [3/17/2011 6:04:31 PM] Chris Eykamp: it's a great ui, but totally unneeded if this works [3/17/2011 6:04:37 PM] buckyballreaction: oh yeah... i forgot about that [3/17/2011 6:04:42 PM] buckyballreaction: and memory cleanup [3/17/2011 6:04:43 PM] Chris Eykamp: very low priority [3/17/2011 6:04:52 PM] Chris Eykamp: yes; need to cleanup the recast objects [3/17/2011 6:04:53 PM] buckyballreaction: (which I am still a bit unfamiliar with) [3/17/2011 6:05:18 PM] Chris Eykamp: and figure out that memory leak you noticed last night with zone rendering [3/17/2011 6:05:39 PM] buckyballreaction: yeah that was nuts - i let bitfighter get to 150MB of non-shared RAM before i killed it [3/17/2011 6:05:52 PM] Chris Eykamp: I was blown away by sam's square zones when I first saw them. I thought we'd never be able to improve on them [3/17/2011 6:07:23 PM] Samuel Williams: i found a problem with /showzones. 1. test a map and enable /showzones 2. exit testing and exit editor 3. enter "Host Game" 4. addbot 5. bot zones show up, and cannot be hidden with /showzones sayingZones can only be displayed on a local host" [3/17/2011 6:07:31 PM] Chris Eykamp: it only took incorporaiting 3 differnt libraries to do it! [3/17/2011 6:07:59 PM] Chris Eykamp: showzones should be disabled whenever game starts [3/17/2011 6:08:42 PM] Chris Eykamp: maybe with INI setting AlwaysShowBotZonesWhenTesting to override [3/17/2011 6:09:00 PM] Chris Eykamp: and bot zones should always be generated at startup unless bots are disabled [3/17/2011 6:09:23 PM] Samuel Williams: mDebugShowMeshZones was enabled from testing from editor, stays enabled when editor exits and enter "Host Game: [3/17/2011 6:10:43 PM] Chris Eykamp: right -- but if it were alwyas set to false when game is created, the problem would be fixed [3/17/2011 6:11:51 PM] Samuel Williams: the only real problem with testing from editor is can only test one map at a time, can't use "/next" [3/17/2011 6:12:55 PM] Chris Eykamp: yes, that's true; but once this is working, that will be a less compelling use case [3/17/2011 6:13:06 PM] Chris Eykamp: I see why you want it now, to make sure things are aok [3/17/2011 6:16:24 PM] Samuel Williams: Found a problen with one map and new zones. http://96.2.123.136/bitfighter/zap_d-20110317-1815022.png [3/17/2011 6:16:58 PM] buckyballreaction: NOOOOO [3/17/2011 6:17:07 PM] buckyballreaction: and you updated to head? [3/17/2011 6:17:19 PM] buckyballreaction: i commited like 20 min ago [3/17/2011 6:17:34 PM] Samuel Williams: i am updated to 20 minutes ago from repository [3/17/2011 6:19:12 PM] buckyballreaction: what happens if you disable recast? [3/17/2011 6:19:19 PM] Samuel Williams: Levels with only Polygon Walls don't generate zones at all. [3/17/2011 6:20:11 PM] buckyballreaction: is that what a BarrierMakerS is? [3/17/2011 6:20:30 PM] Samuel Williams: yes BarrierMakerS the "S" is solid [3/17/2011 6:20:41 PM] buckyballreaction: (and can you send me that level?) [3/17/2011 6:21:07 PM] Samuel Williams: /getmap on my server [3/17/2011 6:21:20 PM] buckyballreaction: ok [3/17/2011 6:22:29 PM] Samuel Williams: Rotating Speed Pointer and Triple Point Stares both have polygon walls. [3/17/2011 6:22:49 PM] Chris Eykamp: we need to fix solid walls -- they should be easy [3/17/2011 6:23:16 PM] buckyballreaction: i still don't understand what is meant by 'solid wall' 'Polygon Wall' 'BarrierMakerS' [3/17/2011 6:23:23 PM] buckyballreaction: are they all the same thing? [3/17/2011 6:23:30 PM] Chris Eykamp: I think so [3/17/2011 6:24:07 PM] Samuel Williams: BarrierMakerS = Barrier Maker Solid [3/17/2011 6:24:36 PM] Chris Eykamp: it's just a loadoutzone that works like a wall [3/17/2011 6:24:39 PM] Chris Eykamp: essentially [3/17/2011 6:24:44 PM] buckyballreaction: ahhh... [3/17/2011 6:24:49 PM] Chris Eykamp: we need to rename them [3/17/2011 6:25:14 PM] buckyballreaction: and they have their own class somewhere? [3/17/2011 6:25:18 PM] buckyballreaction: like Barrier? [3/17/2011 6:25:24 PM] buckyballreaction: so I can work on building the buffers [3/17/2011 6:25:24 PM] Chris Eykamp: [Thursday, March 17, 2011 6:23 PM] buckyballreaction: <<< BarrierMakerSis just awful no, they are barrier [3/17/2011 6:25:42 PM] Samuel Williams: It re-use Barrier object, it just have mSolid=true for a barrier. [3/17/2011 6:25:47 PM] Chris Eykamp: how about PolyWall? [3/17/2011 6:25:52 PM] Chris Eykamp: or PolyBarrier? [3/17/2011 6:26:10 PM] buckyballreaction: ahh... solid barriers don't have the buffers created [3/17/2011 6:26:26 PM] Chris Eykamp: they need to [3/17/2011 6:26:55 PM] buckyballreaction: can you make barriers solid in-editor? [3/17/2011 6:26:58 PM] Samuel Williams: BarrierMakerS width x y x y x y The Width gets ignored. [3/17/2011 6:27:01 PM] Chris Eykamp: no [3/17/2011 6:27:09 PM] Chris Eykamp: not yet [3/17/2011 6:27:19 PM] buckyballreaction: sam, what is a simple level with barriermakerS that i can test zones on? [3/17/2011 6:27:49 PM] Chris Eykamp: you can make one easily enough... create a loadout zone, and replace it with BarrierMakerS [3/17/2011 6:27:50 PM] Samuel Williams: I added some editor support for editing polygon walls. [3/17/2011 6:28:40 PM | Edited 6:28:57 PM] Samuel Williams: To add more polygon walls in editor, select polygon walls, ctrl+C and ctrl+V [3/17/2011 6:29:37 PM] buckyballreaction: so wait, to get things straight: BarrierMakerS is the same as a 'poly wall'? [3/17/2011 6:30:05 PM] Samuel Williams: yes, it is BarrierMakerS in level file. [3/17/2011 6:30:22 PM] buckyballreaction: and what does 'solid' mean [3/17/2011 6:30:23 PM] buckyballreaction: ? [3/17/2011 6:30:35 PM] buckyballreaction: a misnomer for making a 'poly wall'? [3/17/2011 6:31:35 PM] Samuel Williams: i think at first, it was an idea to call it solid to avoid unreachable holes in a closed loop barrier wall. [3/17/2011 6:31:58 PM] Chris Eykamp: it's a long story. made sense at the time I created it, not sure now. sam's comment is right. [3/17/2011 6:35:38 PM] karamazovapy: I think I'm going to preorder a nintendo 3ds [3/17/2011 6:36:36 PM] buckyballreaction: hi k [3/17/2011 6:37:34 PM] buckyballreaction: so sam, can you tell me why think zones fail on 'Racket' again? [3/17/2011 6:40:30 PM] Samuel Williams: Not sure why it failes, possible zero width barriers? [3/17/2011 6:47:06 PM] Samuel Williams: Looks like there is a problem here by narrowing it down. http://96.2.123.136/bitfighter/zap_d-20110317-1846002.png [3/17/2011 6:47:58 PM] buckyballreaction: i have to go now, but can you post that example level file so i can look at it later? [3/17/2011 6:48:45 PM] Samuel Williams: ok.. [3/17/2011 6:49:34 PM] Samuel Williams: GameType 10 8 Team Blue 0 0 1 Team Red 1 0 0 BarrierMaker 10 1 -0.34853 1 -0.34853 BarrierMaker 50 -1.5 -1 2.5 -1 2.5 2 -1.5 2 -1.5 -1 Spawn -1 0 1 [3/17/2011 6:50:08 PM] Samuel Williams: the problem may be with the zero length barrier with width of 10. [3/17/2011 6:50:17 PM] Chris Eykamp: that may be the problem [3/17/2011 6:50:38 PM] Chris Eykamp: to specify a hole to triangle, you have to pass a point on the interior of the polygon [3/17/2011 6:50:43 PM] Chris Eykamp: 0 widht = no interior points [3/17/2011 6:51:02 PM] Chris Eykamp: solution may be to check for 0 widht and adjust one side by a tiny bit [3/17/2011 6:51:13 PM] Chris Eykamp: should have no effect on functionalty [3/17/2011 6:51:20 PM] Chris Eykamp: excpet for those creating specialty levels [3/17/2011 6:51:36 PM] Chris Eykamp: maybe we could disable this increase in width for dungeon game type, when we create it [3/17/2011 6:51:59 PM] Samuel Williams: There is a problem with gridiron (or zonecontrol3) that crashes. [3/17/2011 8:01:41 PM] buckyballreaction: zonecontrol3 doesn't crash for me [3/17/2011 8:02:59 PM] buckyballreaction: neither does gridiron (downloaded from your server) [3/17/2011 8:04:13 PM] Chris Eykamp: crashes for me [3/17/2011 8:04:24 PM] Samuel Williams: maybe something is different between linux and windows? [3/17/2011 8:04:33 PM] buckyballreaction: gcc might be doing something [3/17/2011 8:04:47 PM] buckyballreaction: but i have had no crashes on any levels [3/17/2011 8:05:43 PM] Samuel Williams: i might want to check if it crash on both debug and release mode? [3/17/2011 8:06:07 PM] buckyballreaction: ok, i'll turn off debugging symbols [3/17/2011 8:06:33 PM] Samuel Williams: to me, it crash on debug mode, i will test release (non-debug) mode [3/17/2011 8:07:21 PM] buckyballreaction: can you get a backtrace? [3/17/2011 8:07:49 PM] buckyballreaction: still no crash [3/17/2011 8:10:43 PM] Samuel Williams: ok, for me, it crash on debug mode, but not release mode.. [3/17/2011 8:11:55 PM] buckyballreaction: i can't get it to crash... [3/17/2011 8:12:04 PM] buckyballreaction: i've done lots of compiler settings.. [3/17/2011 8:12:11 PM] buckyballreaction: gotta go sorry [3/17/2011 8:14:54 PM | Edited 8:17:46 PM] Samuel Williams: http://96.2.123.136/bitfighter/ERROR2.gif That is the error list (at the bottom) [3/17/2011 8:18:44 PM] Samuel Williams: http://96.2.123.136/bitfighter/ERROR2.txt that is the output while running triangulate that crashes. [3/17/2011 8:19:06 PM] Chris Eykamp: one thing we need to test is whether it is worth running removeUnusedNavMeshZones() [3/17/2011 8:19:16 PM] Chris Eykamp: do we get any performance gain by removing these zones? [3/17/2011 8:19:35 PM] Samuel Williams: smaller cache size. [3/17/2011 8:19:51 PM] Chris Eykamp: exactly vertical line [3/17/2011 8:20:10 PM] Chris Eykamp: cache? you mean the thing bbr added yesterday? [3/17/2011 8:20:17 PM] Samuel Williams: the bot zone cache. [3/17/2011 8:20:37 PM] Chris Eykamp: ah, well, we can probably remove that now [3/17/2011 8:20:43 PM] Chris Eykamp: if this all works, that is [3/17/2011 11:43:33 PM] buckyballreaction: good evening [3/17/2011 11:45:29 PM] buckyballreaction: so where are we at/what needs solving? [3/17/2011 11:49:35 PM] Samuel Williams: triangulate((char*)"zpV", &in, &out, NULL); it seems like removing 'X' stops the crashing on ZoneControl3 [3/17/2011 11:50:03 PM] buckyballreaction: were you able to get a backtrace from the crash? [3/17/2011 11:50:09 PM] buckyballreaction: (i can't dupe) [3/17/2011 11:50:54 PM] Samuel Williams: [Thursday, March 17, 2011 8:14 PM] Samuel Williams: <<< http://96.2.123.136/bitfighter/ERROR2.gif That is the error list (at the bottom) http://96.2.123.136/bitfighter/ERROR2.txt that is the output while running triangulate that crashes. [3/17/2011 11:51:01 PM] Zoomber: ook [3/17/2011 11:51:09 PM] Zoomber: raptor [3/17/2011 11:51:29 PM] buckyballreaction: hi zoomber [3/17/2011 11:51:57 PM] buckyballreaction: @sam, i've gotten that error before... [3/17/2011 11:52:15 PM] Zoomber: i found out, its possible for me to share my screen in this chatroom [3/17/2011 11:52:39 PM] Zoomber: but it may hate your computer (as always) so bad im afraid to ever do that [3/17/2011 11:52:39 PM] Samuel Williams: in non-debug, it crash on a different map. (when using 'X' option) [3/17/2011 11:53:18 PM] buckyballreaction: @sam, add back in 'X', but comment out the line: clipper.IgnoreOrientation(true); in botnavmeshzone [3/17/2011 11:53:25 PM] buckyballreaction: about line 953 [3/17/2011 11:53:47 PM] Zoomber: you can see me pull from main and push to mygoogle clone in 4 clicks [3/17/2011 11:54:30 PM] Zoomber: im sorry i keep obsessing about machg, i just keep finding new things [3/17/2011 11:54:43 PM] Samuel Williams: Sarcophage level have duplicate vertex error on triangulate. [3/17/2011 11:55:02 PM] buckyballreaction: @sam, with what code alterations? [3/17/2011 11:55:13 PM] buckyballreaction: (no 'X' ?) [3/17/2011 11:55:35 PM] buckyballreaction: could be the rounding going into triangle, too [3/17/2011 11:56:06 PM] Samuel Williams: that was no 'X' [3/17/2011 11:56:59 PM] Samuel Williams: with 'X', i get different error on Sarcophage Warning: Endpoints of segment 1077 are coincident in input. [3/17/2011 11:57:09 PM] Samuel Williams: then it crash. [3/17/2011 11:57:59 PM] buckyballreaction: try removing the rounding on line 1045 in botnavmezhzone [3/17/2011 11:58:36 PM | Edited 11:58:39 PM] Samuel Williams: commenting out //clipper.IgnoreOrientation(true); seems to do nothing, i get same error. [3/17/2011 11:59:20 PM] buckyballreaction: ok, then keep that [3/18/2011 12:00:07 AM] Samuel Williams: useRecast rounding or not won't make a difference, the error is in Triangulate, need to triangulate first, then reCast. I was running without useRecast. [3/18/2011 12:00:12 AM] Zoomber: may have found voice codec on mac problem [3/18/2011 12:00:42 AM] buckyballreaction: @sam, you're right [3/18/2011 12:00:54 AM] buckyballreaction: i forgot that happened after triangle [3/18/2011 12:01:19 AM] buckyballreaction: i still don't understand why it is happening on windows, but not linux [3/18/2011 12:01:55 AM] Zoomber: says here in voicecodec.h it uses software from hawkvoice [3/18/2011 12:02:10 AM] buckyballreaction: sam, can you uncomment the logprintf lines, 1002-1008 and run it through the least complex map that crashes for you (with 'X' on) [3/18/2011 12:02:12 AM] Samuel Williams: i an not sure why is there the error when using "X" option, but no error without "X" option. [3/18/2011 12:02:19 AM] Zoomber: but says support only for [3/18/2011 12:02:22 AM] buckyballreaction: and then post the output [3/18/2011 12:02:54 AM] buckyballreaction: @zoomber, i didn't know the mac supported voice [3/18/2011 12:03:01 AM] Zoomber: it doesnt [3/18/2011 12:03:23 AM] Zoomber: and im close to the bottom of why it doesnt [3/18/2011 12:04:59 AM] Zoomber: so, the game uses a Hawkvoice engine [3/18/2011 12:05:07 AM | Edited 12:05:38 AM] Zoomber: which supports codecs that compress as high as [3/18/2011 12:05:11 AM] Zoomber: 64 kbps [3/18/2011 12:05:34 AM] Samuel Williams: http://96.2.123.136/bitfighter/triangle_error.txt [3/18/2011 12:05:44 AM] Zoomber: to oens as low as 1.4kbps [3/18/2011 12:06:16 AM] Zoomber: in zap code, theres a file callled lpc10###.cpp and .h [3/18/2011 12:06:19 AM] buckyballreaction: sam, with or without X [3/18/2011 12:06:22 AM] Zoomber: those are also codecs [3/18/2011 12:06:29 AM] Zoomber: that have speeds around 4 kbps [3/18/2011 12:06:30 AM] Samuel Williams: that is with 'X' [3/18/2011 12:07:49 AM] Samuel Williams: Triangulate doesn't log to bitfighter.log [3/18/2011 12:08:17 AM] buckyballreaction: i just ran it also - i am going to compare... [3/18/2011 12:10:26 AM] buckyballreaction: ok, all the edges combos came out identical to mine... [3/18/2011 12:10:44 AM] Zoomber: oh, we have lpc10 and gsm [3/18/2011 12:10:54 AM] Zoomber: but macs have never supported gsm [3/18/2011 12:11:20 AM] buckyballreaction: however, half of the points with a decimal component (float part) are different [3/18/2011 12:11:47 AM] Samuel Williams: http://96.2.123.136/bitfighter/triangle_without_X.txt (without X) [3/18/2011 12:11:56 AM] Samuel Williams: runs ok without error [3/18/2011 12:12:08 AM] buckyballreaction: are there any maps that still crash without 'X"? [3/18/2011 12:13:09 AM] Samuel Williams: there is a map that crash with or without 'X' [3/18/2011 12:13:25 AM] buckyballreaction: http://96.2.123.136/upload/1snapshot21.png [3/18/2011 12:13:28 AM] buckyballreaction: whcih map? [3/18/2011 12:13:32 AM] buckyballreaction: so i can test... [3/18/2011 12:13:46 AM] Samuel Williams: Sarcophage level [3/18/2011 12:13:56 AM] buckyballreaction: k, le tme grab it.. [3/18/2011 12:17:00 AM] buckyballreaction: that level doesn't crash for me either [3/18/2011 12:18:28 AM] Zoomber: looked it up [3/18/2011 12:18:35 AM] Zoomber: lpc10 codec is supported on mac [3/18/2011 12:18:41 AM] Zoomber: so thats not the problem [3/18/2011 12:19:39 AM] Samuel Williams: http://96.2.123.136/bitfighter/triangle_error2_Sarcophage.txt (without 'X') [3/18/2011 12:20:22 AM] Samuel Williams: that crash because of duplicate points? [3/18/2011 12:20:43 AM] buckyballreaction: yes, i think - triangle is the least robust of our included libraries [3/18/2011 12:22:40 AM] Samuel Williams: [Friday, March 18, 2011 12:17 AM] buckyballreaction: <<< that level doesn't crash for me eitherAre you sure it is running ok? did you do /showzones ? [3/18/2011 12:22:55 AM] buckyballreaction: yyes [3/18/2011 12:22:57 AM] Zoomber: aah [3/18/2011 12:23:07 AM] buckyballreaction: but i had only 4 points created on the level... [3/18/2011 12:23:12 AM] buckyballreaction: let me try with no X [3/18/2011 12:23:12 AM] Zoomber: now i may have found the problem [3/18/2011 12:24:13 AM] buckyballreaction: sam [3/18/2011 12:24:22 AM] Samuel Williams: ? [3/18/2011 12:24:22 AM] buckyballreaction: this is sarcophage for me: http://pastie.org/1685215 [3/18/2011 12:24:24 AM] Zoomber: now ait a minute [3/18/2011 12:25:10 AM] Zoomber: if i go to lpc10dec.c:28, and change #include to so it purposly cant find the file, nothing is affected by the change [3/18/2011 12:25:26 AM] Zoomber: so, it must not be serving a purpose [3/18/2011 12:25:41 AM] buckyballreaction: zoomber,or the lpc10dec isn't being included [3/18/2011 12:26:02 AM] Zoomber: what about lpc10enc? [3/18/2011 12:26:03 AM] Samuel Williams: you probably running a different version from me? [3/18/2011 12:26:29 AM] Zoomber: neither? [3/18/2011 12:26:37 AM] Samuel Williams: Should have tryed to generate more then 10 points and 10 edges. [3/18/2011 12:26:42 AM] buckyballreaction: exactly [3/18/2011 12:26:58 AM] buckyballreaction: makes me wonder if something more sinister isn't going on... [3/18/2011 12:27:07 AM] Zoomber: well theres your problem. if your not using the lpc codec, then doesn't that mean your using the gsm codec? As in voicecodec.h [3/18/2011 12:27:38 AM] buckyballreaction: zoomber, maybe voicecodec isn't being included anywhere [3/18/2011 12:27:54 AM] Zoomber: voicecodec is just defining code for gsm and lpc [3/18/2011 12:28:07 AM] Zoomber: do you know what codec we're using? [3/18/2011 12:28:19 AM] buckyballreaction: i didn't think any codec was being compiled for mac [3/18/2011 12:28:27 AM] buckyballreaction: and no, i know nothing of the sound system [3/18/2011 12:28:33 AM] Zoomber: hmm [3/18/2011 12:29:20 AM] Samuel Williams: something is probably wrong with code before where it prints the points/edges? well, why do I get 1000 points and you only get 4 points? [3/18/2011 12:29:44 AM] buckyballreaction: i have no idea... [3/18/2011 12:30:06 AM] buckyballreaction: are you compiling with optimization and /or debug symbols? [3/18/2011 12:30:52 AM] Zoomber: well all i can say, is if bitfighter only uses the gsm sound codec, then thats the problem. the gsm codec is owned soley by microsoft, and apple didn't want to pay any money to be able to put the codec into their system [3/18/2011 12:31:09 AM] Samuel Williams: if it works fine on most of my maps (90% works ok) when the problem could be your end? [3/18/2011 12:31:29 AM] Zoomber: oh [3/18/2011 12:31:43 AM] buckyballreaction: i have never had a level crash on me [3/18/2011 12:31:45 AM] Zoomber: i think this is wrong: #if !defined( MACOSX ) && !defined (__APPLE__) [3/18/2011 12:31:51 AM] Zoomber: just generally [3/18/2011 12:32:16 AM] buckyballreaction: i have had a few not to zones (i.e. because of zero length segs) [3/18/2011 12:32:41 AM] Samuel Williams: Voice (press R): it doesn't work on linux, only works on windows. Also found that linux can't hear any voice. [3/18/2011 12:32:55 AM] Zoomber: aha [3/18/2011 12:33:06 AM] Zoomber: so it is the codec? [3/18/2011 12:33:40 AM] Zoomber: since only windows users can use the gsm codec [3/18/2011 12:34:21 AM] Samuel Williams: Codec, possibly, but as a test, could try sending RAW uncompressed voice data, even though it is bandwidth hungry. [3/18/2011 12:34:58 AM] Zoomber: how can I do that? [3/18/2011 12:35:38 AM] buckyballreaction: sam, are you compiling with optimization and /or debug symbols? [3/18/2011 12:35:44 AM | Edited 12:35:51 AM] Samuel Williams: For windows voice quality is poor due to extreme compression and too little bit rate? [3/18/2011 12:36:00 AM] Samuel Williams: debug mode. [3/18/2011 12:36:07 AM] Zoomber: its not bad, heres a link on what our compression sounds like [3/18/2011 12:36:16 AM] Zoomber: http://hawksoft.com/hawkvoice/codecs.shtml [3/18/2011 12:36:22 AM | Edited 12:36:29 AM] Zoomber: you can test gsm and lpc i think [3/18/2011 12:36:49 AM] buckyballreaction: what is debug mode? [3/18/2011 12:37:09 AM] buckyballreaction: i figure it compiles in symbols, but does it do compiler optimizations? [3/18/2011 12:37:18 AM | Edited 12:38:01 AM] Zoomber: its a hax that gives you 100000000000 energy and .1 rof [3/18/2011 12:38:33 AM] Samuel Williams: it compile with optimization when compiling non-debug mode, which make it harder to use debugger (doesn't show most values of variables) [3/18/2011 12:38:53 AM] buckyballreaction: ok [3/18/2011 12:38:57 AM] buckyballreaction: just double checking [3/18/2011 12:39:10 AM] buckyballreaction: so we both are now doing debug [3/18/2011 12:40:53 AM] buckyballreaction: so i see two problems here that are not common across platforms: 1. maps like zonecontrol3, where you crash and I have normal behaviour 2. maps like Sarcophage where you get all the points, but crash; and I get few points but don't crash [3/18/2011 12:41:26 AM] buckyballreaction: i believe #1 has something to do with the compiler. [3/18/2011 12:41:32 AM] buckyballreaction: and the triangle code... [3/18/2011 12:41:38 AM] buckyballreaction: #2, i have no clue.. [3/18/2011 12:41:46 AM] Zoomber: can use 'Make' on osx [3/18/2011 12:42:49 AM] Samuel Williams: [Friday, March 18, 2011 12:40 AM] buckyballreaction: <<< 1. maps like zonecontrol3, where you crash and I have normal behaviourI don't crash on ZoneControl3 if I don't use "X" option on triangulate. [3/18/2011 12:43:01 AM] buckyballreaction: yes, but that is still fishy [3/18/2011 12:43:09 AM] buckyballreaction: there shouldn't be a difference [3/18/2011 12:43:42 AM | Edited 12:44:03 AM] Samuel Williams: what does "X" do? avoid my crash? (if option is not used) [3/18/2011 12:44:00 AM] buckyballreaction: from the doc: -X No exact arithmetic. Normally, Triangle uses exact floating-point arithmetic for certain tests if it thinks the inexact tests are not accurate enough. Exact arithmetic ensures the robustness of the triangulation algorithms, despite floating-point roundoff error. Disabling exact arithmetic with the -X switch causes a small improvement in speed and creates the possibility that Triangle will fail to produce a valid mesh. Not recommended. [3/18/2011 12:44:24 AM] buckyballreaction: i think there is an issue with floating point calculation between windows and linux system [3/18/2011 12:47:01 AM] Zoomber: We should try compiling game on windows without gsm and see if voice chat still works [3/18/2011 12:47:04 AM] Samuel Williams: possibly with different round-off errors in windows, and Floating-Point Optimization might also reduce accuracy? [3/18/2011 12:47:34 AM] buckyballreaction: @sam, that could easily do it [3/18/2011 12:49:02 AM] buckyballreaction: @sam, it could also just be coincidence that yours and watusimoto's hardware have similar rounding issues [3/18/2011 12:49:16 AM] Samuel Williams: ...possibility that triangle will fail to produce a valid mesh... Have not found a level that produce invalid triangles.. (the "X" option have problems in windows) [3/18/2011 12:49:42 AM] buckyballreaction: sam, can you adjust this?: http://msdn.microsoft.com/en-us/library/e7s85ffb%28VS.80%29.aspx [3/18/2011 12:50:52 AM] buckyballreaction: Properties > C++ > Code Generation > Floating Point Model. [3/18/2011 12:51:09 AM] buckyballreaction: in vc++ (is what i see from people talking online) [3/18/2011 12:51:54 AM] Samuel Williams: Floating point model, mine is at Strict [3/18/2011 12:53:26 AM] Samuel Williams: if i change it, i will leed to re-compile the whole thing (takes 4 minutes). At one time i tried Precise, doesn't fix the problem.. [3/18/2011 12:54:00 AM] buckyballreaction: you have tried recompiling the whole thing with precise and the 'X' triangle option? [3/18/2011 12:54:05 AM] buckyballreaction: (and sorry it takes 4 minutes) [3/18/2011 12:54:42 AM] Samuel Williams: yes, that was about 4 hours ago. [3/18/2011 12:55:04 AM] buckyballreaction: and zonecontrol3 crashed? [3/18/2011 12:55:28 AM] karamazovapy: you might want to examine sarcophage [3/18/2011 12:55:44 AM] karamazovapy: there were some "tricks" in that map that might cause unusual glitches [3/18/2011 12:55:44 AM] Samuel Williams: My longer recompiling it probably because of recompiling mysql++ files.. [3/18/2011 12:56:32 AM] buckyballreaction: hi k. sarcophage is giving different results in linux, than windows... which is really goofy [3/18/2011 1:00:17 AM] karamazovapy: did you fix the negative width barriers? [3/18/2011 1:00:33 AM] buckyballreaction: you mean zero-length? [3/18/2011 1:00:47 AM] karamazovapy: no, there are barriers with widths listed as negative numbers [3/18/2011 1:00:51 AM] buckyballreaction: really? [3/18/2011 1:00:54 AM] buckyballreaction: what does that do? [3/18/2011 1:01:08 AM] karamazovapy: in old versions, it was a way to glitch walls to produce funny effects [3/18/2011 1:01:21 AM] karamazovapy: like making them temporarily trap ships and that kind of thing [3/18/2011 1:01:36 AM] karamazovapy: or produce invisible mazes [3/18/2011 1:02:47 AM] karamazovapy: I have old windows zap! installers, if you're curious sometime [3/18/2011 1:03:07 AM] Samuel Williams: because of problems with polygon walls (going through them) i had to fix going through polygon walls (BarrierMakerS) that existed on old version 014. that might have altered colliding to walls a little bit. [3/18/2011 1:03:33 AM] buckyballreaction: wow, i'm looking at the level file [3/18/2011 1:03:35 AM] Zoomber: they were barriermaker [3/18/2011 1:03:36 AM] buckyballreaction: that map is nuts [3/18/2011 1:04:03 AM] karamazovapy: it looked and played very differently than it does now [3/18/2011 1:04:31 AM] karamazovapy: for example, the goalzone graphics created very different effects on each load of the level and looked different on the c-map [3/18/2011 1:04:43 AM] Chris Eykamp: I can't imagine this is the issue. [3/18/2011 1:04:54 AM] buckyballreaction: hi watusimoto [3/18/2011 1:05:10 AM] karamazovapy: well the goalzones certainly aren't, but sarcophage is about as far as you can possibly get from a reasonable level [3/18/2011 1:05:26 AM] buckyballreaction: i think playing that level makes my head hurt [3/18/2011 1:05:34 AM] karamazovapy: without making it huge or something [3/18/2011 1:05:37 AM] Chris Eykamp: [Friday, March 18, 2011 1:04 AM] Chris Eykamp: <<< I can't imagine this is the issue.floating point model, that is [3/18/2011 1:06:30 AM] karamazovapy: when it was made, sarcophage was a pretty cool puzzle/visual/ctf hybrid [3/18/2011 1:07:24 AM] buckyballreaction: @watusimoto, we can remove the 'X' and slow triangle down a little and then it works on problem #1 [3/18/2011 1:08:04 AM] Chris Eykamp: #1? [3/18/2011 1:08:12 AM] karamazovapy: anyway, I have to teach elementary school music in the morning...good night and good luck! [3/18/2011 1:08:21 AM] Chris Eykamp: [Friday, March 18, 2011 12:40 AM] buckyballreaction: <<< 1. maps like zonecontrol3, where you crash and I have normal behaviour 2. maps like Sarcophage where you get all the points, but crash; and I get few points but don't crash [3/18/2011 1:08:29 AM] buckyballreaction: yes [3/18/2011 1:08:31 AM] Chris Eykamp: good night [3/18/2011 1:08:31 AM] buckyballreaction: good ngiht! [3/18/2011 1:08:44 AM] Chris Eykamp: so removing X fixes zc3 [3/18/2011 1:09:01 AM] buckyballreaction: yes, and other maps that crash similarly on windows [3/18/2011 1:09:04 AM] buckyballreaction: says sam [3/18/2011 1:09:19 AM] Chris Eykamp: zc3 crashes for me -- let me try removing x [3/18/2011 1:15:04 AM] Zoomber: hey chris [3/18/2011 1:15:35 AM] Zoomber: do you know if bitfighter uses the gsm codec for voice only? [3/18/2011 1:17:34 AM] Samuel Williams: Found another map that crashes, Blinding Snow, Duplicate vertex warning, then crash. [3/18/2011 1:19:00 AM] buckyballreaction: hey that crashes for me! [3/18/2011 1:19:05 AM] buckyballreaction: excellent! [3/18/2011 1:19:16 AM] buckyballreaction: oh wait [3/18/2011 1:19:55 AM] buckyballreaction: nope, doesn't crash [3/18/2011 1:20:08 AM] buckyballreaction: i had temporarily reverted to: clipper.Execute(ctUnion, solution); [3/18/2011 1:20:27 AM] buckyballreaction: but now i put back: clipper.Execute(ctUnion, solution, pftNonZero, pftNonZero); [3/18/2011 1:20:29 AM] buckyballreaction: and it works fine [3/18/2011 1:20:34 AM] buckyballreaction: all zones look good to me [3/18/2011 1:20:50 AM] Samuel Williams: This is my error, showing all points. http://96.2.123.136/bitfighter/error_blinding_snow.txt [3/18/2011 1:22:55 AM] buckyballreaction: i am getting different ordered edges out [3/18/2011 1:24:21 AM] buckyballreaction: are you sure all my changes from changeset 6195b80a8411 are in yours? [3/18/2011 1:25:00 AM] Chris Eykamp: @Z I used to know, don't know now [3/18/2011 1:25:13 AM] buckyballreaction: because you have very different points coming out of clipper, than I do [3/18/2011 1:25:21 AM] buckyballreaction: all ordered differently [3/18/2011 1:25:40 AM] Chris Eykamp: want to round before sending off to Clipper? [3/18/2011 1:25:44 AM] buckyballreaction: wait! [3/18/2011 1:25:58 AM] buckyballreaction: i forgot i still had commented out: clipper.IgnoreOrientation(true); [3/18/2011 1:28:23 AM] Samuel Williams: I have always been at the latest revision in the past 4 hours. http://96.2.123.136/bitfighter/11031801.GIF [3/18/2011 1:28:27 AM] buckyballreaction: ok, more of my points coincide with yours, sam, but there are still significant order differences - including different edge geometry [3/18/2011 1:29:59 AM] Samuel Williams: probably the problem with Clipper not outputting the same output between linux and windows? [3/18/2011 1:30:15 AM] buckyballreaction: thats what it looks like: http://96.2.123.136/upload/blinding_snow_points_edges_linux.txt [3/18/2011 1:30:20 AM] buckyballreaction: do a diff with yours [3/18/2011 1:30:52 AM] buckyballreaction: besides small floating point differences, there are major ordering differences about half way down the point list [3/18/2011 1:35:19 AM] buckyballreaction: could it just be barrier order coming out of the gribDB differently? [3/18/2011 1:37:22 AM] Samuel Williams: the only way to know that for sure is print all points before running clipper. [3/18/2011 1:37:36 AM] buckyballreaction: ok, i'll do it... [3/18/2011 1:40:40 AM] buckyballreaction: here are mine: http://96.2.123.136/upload/blinding_snow_points_before_clipper_linux.txt [3/18/2011 1:41:41 AM] Samuel Williams: what do i do to print points before clipper? [3/18/2011 1:41:53 AM] buckyballreaction: line 977 [3/18/2011 1:41:56 AM] buckyballreaction: in botnav... [3/18/2011 1:41:59 AM] buckyballreaction: add: logprintf("Before Clipper Point: %f %f", barrier->mBotZoneBufferGeometry[j].x, barrier->mBotZoneBufferGeometry[j].y); [3/18/2011 1:42:09 AM] buckyballreaction: in the loop [3/18/2011 1:45:54 AM] Samuel Williams: http://96.2.123.136/upload/blinding_snow_points_before_clipper_windows.txt [3/18/2011 1:47:35 AM] buckyballreaction: wow, major differences [3/18/2011 1:48:00 AM] Samuel Williams: probably running from editor re-order the points? [3/18/2011 1:48:14 AM] buckyballreaction: i ran from editor, too [3/18/2011 1:48:46 AM] buckyballreaction: could it just be that a gridDB lookup does not guarantee order? [3/18/2011 1:50:06 AM] buckyballreaction: actually i just quit bitfighter and re-did the lookup - same exact order on my part [3/18/2011 1:51:42 AM] Samuel Williams: where does it use GridDB in clipper part? [3/18/2011 1:52:16 AM] Samuel Williams: for(S32 i = 0; i < game->mGameObjects.size(); i++) it seems like using gameObjects list, and not gridDB. [3/18/2011 1:52:26 AM] buckyballreaction: if(game->mGameObjects[i]->getObjectTypeMask() & BarrierType) [3/18/2011 1:52:47 AM] Samuel Williams: that it filtering it out, ignoring non-barrier type [3/18/2011 1:52:59 AM] buckyballreaction: ah, then i misunderstood [3/18/2011 1:53:29 AM] buckyballreaction: so mGameObjects has different order then? [3/18/2011 1:54:58 AM] Samuel Williams: if they load at the same order, it probably should not have mixed up order, but if erase_fast is used (to delete asteroid, flag, ...), then the order might get mixed up. [3/18/2011 1:55:58 AM] Samuel Williams: Running from editor saves a file level.tmp, that might mix up the order of barriers. [3/18/2011 1:56:23 AM] buckyballreaction: i could see that [3/18/2011 1:56:39 AM] buckyballreaction: so this is probably not our problem [3/18/2011 1:59:41 AM] buckyballreaction: well, i'm gonna hit the sack [3/18/2011 2:00:11 AM] buckyballreaction: i don't feel like we've found out the problem, yet... [3/18/2011 2:00:40 AM] Samuel Williams: do we have the same exact level file of Blinding Snow? [3/18/2011 2:00:53 AM] buckyballreaction: i downloaded the one from your server [3/18/2011 2:01:41 AM] Samuel Williams: is it the same as http://96.2.123.136/upload/ctf6.level ? [3/18/2011 2:02:24 AM] buckyballreaction: yep, i dentical [3/18/2011 2:05:31 AM] Samuel Williams: http://96.2.123.136/bitfighter/Copy%20of%20bitfighter.log There, looke like same point order (not from editor) [3/18/2011 2:05:42 AM] Samuel Williams: same point order from yours? [3/18/2011 2:07:03 AM] buckyballreaction: yep [3/18/2011 2:07:07 AM] buckyballreaction: looks the same [3/18/2011 2:07:12 AM] buckyballreaction: except mine was from editor [3/18/2011 2:07:57 AM] Samuel Williams: maybe my editor was evil and re-ordering points? maybe i slightly edited (without saving) without knowing [3/18/2011 2:08:10 AM] buckyballreaction: that could be... [3/18/2011 2:08:47 AM] buckyballreaction: i'll talk to you tomorrow - i'm a little fuzzy headed right now [3/18/2011 2:08:49 AM] buckyballreaction: must sleep [3/18/2011 2:08:59 AM] buckyballreaction: good night [3/18/2011 2:09:27 AM] Samuel Williams: is the point list after clipper the same as yours or not? i go get error crash (duplicate vertex)? [3/18/2011 2:09:40 AM] buckyballreaction: let me check... [3/18/2011 2:10:29 AM] Samuel Williams: I have 1502 total points, you have 1501 total points, so something is different [3/18/2011 2:11:36 AM] buckyballreaction: different point order [3/18/2011 2:11:44 AM] buckyballreaction: start about point 494 [3/18/2011 2:11:53 AM] Samuel Williams: same input to clipper, different output? [3/18/2011 2:12:05 AM] buckyballreaction: that's what it looks like [3/18/2011 2:12:21 AM] Chris Eykamp: good night bbr [3/18/2011 2:12:21 AM] Samuel Williams: something is different in clipper for windows vs linux.. [3/18/2011 2:14:08 AM] Samuel Williams: i will need to go to bed, good night.. [3/18/2011 2:14:21 AM] Chris Eykamp: good night sam [3/18/2011 2:14:30 AM] buckyballreaction: night [3/18/2011 2:14:35 AM] Chris Eykamp: I'm going to spend a few more minutes with zc3 [3/18/2011 2:14:49 AM] buckyballreaction: is that what you've been working on? [3/18/2011 2:14:51 AM] Chris Eykamp: figure out why its crashing [3/18/2011 2:15:12 AM] Chris Eykamp: well, I was in the middle of gutting some code, and I've just not got it to compile again [3/18/2011 2:16:12 AM] Samuel Williams: yes, possibly the clipper runs differently with exact same inputs in windows/linux, and windows clipper appears to output duplicate points. [3/18/2011 2:17:45 AM] Chris Eykamp: got zc3 to not crash by deleting certain objects; I have a theory [3/18/2011 2:20:02 AM] buckyballreaction: i found 5 unique points in the clipper output from sam's test compaired to mine; and i found 4 unique points in mine compared to sam's [3/18/2011 2:20:16 AM] buckyballreaction: what is your theory? [3/18/2011 2:20:32 AM] buckyballreaction: i bet we need to round before going to clipper... [3/18/2011 2:21:16 AM] Chris Eykamp: certain class of overlapping walls [3/18/2011 2:21:49 AM] Chris Eykamp: found the wall that makes it crash [3/18/2011 2:21:57 AM] Chris Eykamp: in crash, out, no crash [3/18/2011 2:22:07 AM] buckyballreaction: wow [3/18/2011 2:22:27 AM] Chris Eykamp: so now I'll delete other things until I have the min set for crashing [3/18/2011 2:22:33 AM] buckyballreaction: does your theory suggest why it doesn't crash on linux? [3/18/2011 2:22:35 AM] Chris Eykamp: but you can read about it when you wake up :) [3/18/2011 2:22:40 AM] Chris Eykamp: nope [3/18/2011 2:23:46 AM] buckyballreaction: ok [3/18/2011 2:23:47 AM] buckyballreaction: good night then [3/18/2011 2:27:00 AM] buckyballreaction: FYI, this looks pretty good as a Triangle replacement (if that ever comes up): http://code.google.com/p/poly2tri/source/checkout [3/18/2011 2:29:13 AM] Chris Eykamp: it might... [3/18/2011 2:30:53 AM] buckyballreaction: http://web.archive.org/web/20070809014826/http://www.mema.ucl.ac.be/~wu/Poly2Tri/poly2tri.html [3/18/2011 2:31:01 AM] buckyballreaction: look under section 5 for performance against triangle [3/18/2011 2:31:13 AM] buckyballreaction: it looks like it performs bette rin our cases [3/18/2011 2:32:43 AM] Chris Eykamp: interesting... may be worth trying it and seeing if it cures these problems [3/18/2011 2:33:13 AM] buckyballreaction: i am looking for robustness more than anything... [3/18/2011 2:33:27 AM] buckyballreaction: Triangle was pretty good, but i always had the feeling it was a bit flaky [3/18/2011 2:34:35 AM] buckyballreaction: ok to bed for reals.. [3/18/2011 2:34:37 AM] buckyballreaction: night [3/18/2011 2:34:53 AM] Chris Eykamp: night [3/18/2011 4:34:08 AM] Chris Eykamp: well, mostly failrure [3/18/2011 4:34:21 AM] Chris Eykamp: didn't fix zc3 [3/18/2011 4:34:31 AM] Chris Eykamp: started experimental integration of poly2tri [3/18/2011 4:34:54 AM] Chris Eykamp: uncomment //#define usep2t to activate [3/18/2011 4:34:57 AM] Chris Eykamp: it doesn't work [3/18/2011 4:35:02 AM] Chris Eykamp: but it's a start [3/18/2011 4:35:08 AM] Chris Eykamp: want to see if this fixes the problem [3/18/2011 4:35:11 AM] Chris Eykamp: anyway, good night [3/18/2011 10:55:02 AM] buckyballreaction: good day [3/18/2011 11:45:38 AM] Chris Eykamp: hi [3/18/2011 11:45:51 AM] Chris Eykamp: I was so sure i would figure out the triangle thing [3/18/2011 11:46:01 AM] buckyballreaction: good morning [3/18/2011 11:46:13 AM] buckyballreaction: i think it is a sinister problem [3/18/2011 11:46:31 AM] buckyballreaction: like an evil compiler difference is making clipper return different results [3/18/2011 11:47:42 AM] Chris Eykamp: I thought you were giving clipper differently ordered points [3/18/2011 11:48:00 AM] Chris Eykamp: so one set of clipper results worked, the other crashed? [3/18/2011 11:48:08 AM] buckyballreaction: mine always worked :) [3/18/2011 11:48:20 AM] Chris Eykamp: right -- but sam's might also have worked for you [3/18/2011 11:48:32 AM] Chris Eykamp: you don't know if it was an input problem or a procerssing problem [3/18/2011 11:48:35 AM] buckyballreaction: when sam ran the same levels outside of the editor - we determined that the points were being input in the exact same order [3/18/2011 11:49:16 AM] buckyballreaction: then I redid an analysis of the output points and besides floating point differences, there were 5 unique points in sam's output, and 4 in mine [3/18/2011 11:49:56 AM] buckyballreaction: that's why i believe it is a clipper processing problem that may be compiler/platform specific [3/18/2011 11:59:39 AM] Chris Eykamp: [Friday, March 18, 2011 11:49 AM] buckyballreaction: <<< then I redid an analysis of the output points and besides floating point differences, there were 5 unique points in sam's output, and 4 in minewell, that's a surprise [3/18/2011 11:59:47 AM] buckyballreaction: yup [3/18/2011 12:00:07 PM] Chris Eykamp: if you put a set of polys in, there is only one answer [3/18/2011 12:00:16 PM] buckyballreaction: that's what you'd expect! [3/18/2011 12:00:32 PM] Chris Eykamp: if you're getting a 5 pt answer and sam is getting a 4 pt answer, then (at least) one of those is wrong. [3/18/2011 12:01:19 PM] buckyballreaction: and it get's weirder: on that Sarcophage level, sam was getting out hundreds of points, and I was getting out 4 [3/18/2011 12:01:31 PM] Chris Eykamp: out of clipper? [3/18/2011 12:01:34 PM] buckyballreaction: yep [3/18/2011 12:01:46 PM] Chris Eykamp: is that the level with the 0 width walls? [3/18/2011 12:01:49 PM] buckyballreaction: nope [3/18/2011 12:01:56 PM] Chris Eykamp: negative width? [3/18/2011 12:02:00 PM] buckyballreaction: yes [3/18/2011 12:02:08 PM] Chris Eykamp: we should just take abs of width [3/18/2011 12:02:20 PM] Chris Eykamp: maybe that would fix it? [3/18/2011 12:02:53 PM] Chris Eykamp: and give it a floor of .0001 [3/18/2011 12:02:55 PM] buckyballreaction: maybe - but it still doesn't address the problem of use getting different points [3/18/2011 12:03:03 PM] buckyballreaction: us [3/18/2011 12:03:04 PM] Chris Eykamp: well, it might [3/18/2011 12:03:48 PM] Chris Eykamp: it could be that negative width is handled differently in-game, and by the time clippper is run, the inputs have diverged [3/18/2011 12:04:04 PM] buckyballreaction: ok [3/18/2011 12:04:10 PM] buckyballreaction: i'll do it at the creation of barrier [3/18/2011 12:04:12 PM] Chris Eykamp: clipper could be discarding polys you pass because they are nmalformed because bf did something screwy to them [3/18/2011 12:04:22 PM] Chris Eykamp: yes, that would be the place to do it [3/18/2011 12:06:47 PM] Chris Eykamp: on the other hand, without actualy looking at code, negative widths should just reverse the order of the segment's boundary points [3/18/2011 12:07:28 PM] buckyballreaction: same results [3/18/2011 12:07:36 PM] buckyballreaction: 4 output points on sarcophage [3/18/2011 12:07:56 PM] Chris Eykamp: ok [3/18/2011 12:08:08 PM] Chris Eykamp: well, that's just screwy [3/18/2011 12:08:11 PM] buckyballreaction: yep [3/18/2011 12:09:02 PM] Chris Eykamp: what do you think? broken inputs or broken clipper? [3/18/2011 12:09:11 PM] buckyballreaction: i think borken clipper [3/18/2011 12:09:29 PM] buckyballreaction: because i verified the inputs last night were the same from sam and me (when he wasn't using the editor) [3/18/2011 12:09:49 PM] Chris Eykamp: well at least in this case we know the 4 pt answer is wrong [3/18/2011 12:09:58 PM] buckyballreaction: i am thinking about posting in the clipper forums [3/18/2011 12:10:05 PM] Chris Eykamp: I think you should [3/18/2011 12:10:11 PM] buckyballreaction: since the guy was responsive [3/18/2011 12:10:16 PM] Chris Eykamp: very [3/18/2011 12:10:24 PM] Chris Eykamp: responsive on all threads [3/18/2011 12:10:50 PM] Chris Eykamp: I haven't seen sarcophage, but I can't imagine that your 4 pt result is correct [3/18/2011 12:11:04 PM] Chris Eykamp: under any interpretation [3/18/2011 12:11:15 PM] buckyballreaction: yeah, that is the one case where i am failing [3/18/2011 12:11:22 PM] buckyballreaction: that level is really goofy [3/18/2011 12:11:29 PM] buckyballreaction: all sorts of weird stuff [3/18/2011 12:11:32 PM] Chris Eykamp: is it on sam's server [3/18/2011 12:11:34 PM] buckyballreaction: yes [3/18/2011 12:11:40 PM] Chris Eykamp: I'll take a look... [3/18/2011 12:14:24 PM] Chris Eykamp: maybe it's the skulls [3/18/2011 12:14:35 PM] Chris Eykamp: maybe rendering symobls of the dead is banned in utah [3/18/2011 12:14:50 PM] buckyballreaction: hahaha [3/18/2011 12:15:08 PM] Chris Eykamp: you get the 3.2 version of the level [3/18/2011 12:16:06 PM] Chris Eykamp: does it process properly for sam? [3/18/2011 12:16:17 PM] Chris Eykamp: or is it just broken in a different way? [3/18/2011 12:16:21 PM] buckyballreaction: that [3/18/2011 12:16:27 PM] Chris Eykamp: that the second [3/18/2011 12:16:37 PM] buckyballreaction: it outputs all the zones, but with dupe vertices - which then crashes triangle [3/18/2011 12:17:04 PM] Chris Eykamp: I see [3/18/2011 12:17:11 PM] Chris Eykamp: I could whip up a de-duper [3/18/2011 12:17:20 PM] Chris Eykamp: but that doesn't really solve the basic problem [3/18/2011 12:17:43 PM] Chris Eykamp: mmm [3/18/2011 12:17:53 PM] Chris Eykamp: the docs said clipper was limited to 6 digits of precision [3/18/2011 12:18:00 PM] Chris Eykamp: could that be an issue? [3/18/2011 12:18:10 PM] Chris Eykamp: does the level depend on higher precision than that? [3/18/2011 12:18:16 PM] Chris Eykamp: for the skulls, for example? [3/18/2011 12:18:17 PM] buckyballreaction: maybe we should round going in? [3/18/2011 12:18:24 PM] buckyballreaction: maybe [3/18/2011 12:18:25 PM] Chris Eykamp: worth a try [3/18/2011 12:18:44 PM] buckyballreaction: i'm still thinking about the other cases: where i don't crash and you guys do because of dupe vertices [3/18/2011 12:18:46 PM] Chris Eykamp: maybe behavior gets a bit undefined after that [3/18/2011 12:19:16 PM] Chris Eykamp: well, recast has a pretty good method for removing dupes [3/18/2011 12:19:24 PM] Chris Eykamp: we can steal that [3/18/2011 12:19:31 PM] Chris Eykamp: and run it before triangle [3/18/2011 12:19:37 PM] Chris Eykamp: if that's the real problem [3/18/2011 12:19:37 PM] buckyballreaction: i think clipper does too... [3/18/2011 12:19:47 PM] buckyballreaction: i think the problem is clipper [3/18/2011 12:19:55 PM] buckyballreaction: and undefined behaviour [3/18/2011 12:22:15 PM] Chris Eykamp: it might be the precision [3/18/2011 12:22:43 PM] Chris Eykamp: if they decided to limit precision to 6 digits, they probbaly didn't spend much time testing beyond that [3/18/2011 12:23:15 PM] buckyballreaction: i found that about 1/2 of the floating point numbers varied after 3 digits of precision when comparing windows to linux [3/18/2011 12:23:23 PM] buckyballreaction: on the input points [3/18/2011 12:23:27 PM] buckyballreaction: to clipper [3/18/2011 12:23:34 PM] Chris Eykamp: and the other half? [3/18/2011 12:23:40 PM] buckyballreaction: were the same [3/18/2011 12:23:44 PM] buckyballreaction: to 6 digits [3/18/2011 12:24:05 PM] buckyballreaction: but half of the good half just had floating component of .000000 [3/18/2011 12:24:11 PM] Chris Eykamp: good ol' /getmap [3/18/2011 12:27:33 PM] buckyballreaction: ok - https://sourceforge.net/projects/polyclipping/forums/forum/1148419/topic/4417872 [3/18/2011 12:27:38 PM] buckyballreaction: feel free to add anything [3/18/2011 12:29:55 PM] Chris Eykamp: wait... you added 100+ polys and only got out 5 uniuqe vertices??? [3/18/2011 12:30:22 PM] Chris Eykamp: and you're worried because sam got 4??? [3/18/2011 12:30:30 PM] Chris Eykamp: you should have got 100+! [3/18/2011 12:30:38 PM] buckyballreaction: keyword uniqu [3/18/2011 12:30:40 PM] buckyballreaction: unique [3/18/2011 12:30:49 PM] buckyballreaction: we both got about 900 vertices [3/18/2011 12:30:58 PM] buckyballreaction: 5 were unique on his end [3/18/2011 12:31:00 PM] buckyballreaction: 4 on my end [3/18/2011 12:31:06 PM] buckyballreaction: i should clarify that... [3/18/2011 12:34:08 PM] buckyballreaction: ok, i replied with clarification [3/18/2011 12:34:10 PM] Chris Eykamp: oh, meaning he got 5 you didn't and you got 4 he didn't [3/18/2011 12:34:18 PM] buckyballreaction: exactly [3/18/2011 12:34:33 PM] buckyballreaction: i should have said mutex [3/18/2011 12:43:16 PM] buckyballreaction: since clipper rounds to 6 decimal places, and we have discrepencies across hardware from 4 decimal places onwards, clipper might treat the input a bit differently [3/18/2011 12:44:49 PM] Chris Eykamp: looking at sarcophage, I see a couple of -width walls, a bunch of 1 width walls (which might be a problem when rounding to ints), plenty of 5 post-decimal digit coordinates [3/18/2011 12:51:57 PM] buckyballreaction: from what k said, it seems that sarcophage was a level made to intentionally exploit the quirks and bugs in Zap [3/18/2011 12:52:33 PM] buckyballreaction: so I don't have a problem with not trying to handle all the sarcophage cases. [3/18/2011 12:53:05 PM] buckyballreaction: what I see as the major problem is the discrepency of clippers output; which then causes triangle to crash [3/18/2011 12:53:40 PM] buckyballreaction: and now i wonder if that discrepency is because the input points have floating differences past 3 decimals places between windows and linux [3/18/2011 12:56:25 PM] buckyballreaction: maybe adjusting line 52 in clipper.cpp: //precision: defines when adjacent vertices will be considered duplicates //and hence ignored. This circumvents edges having indeterminate slope. static double const precision = 1.0E-6; static double const slope_precision = 1.0E-3; [3/18/2011 12:57:25 PM] Chris Eykamp: [Friday, March 18, 2011 12:51 PM] buckyballreaction: <<< from what k said, it seems that sarcophage was a level made to intentionally exploit the quirks and bugs in Zapthere are many that do [3/18/2011 12:58:19 PM] Chris Eykamp: one idea is that dungeon gametype that would have no bots (and hence no need for zones) and could have negative widht walls and all sorts of other crazy stuff that we disallowed for the "real" game [3/18/2011 12:58:35 PM] Chris Eykamp: could also be a test bed for ideas, like rotating gofasts [3/18/2011 12:58:45 PM] buckyballreaction: cool [3/18/2011 12:58:59 PM] Chris Eykamp: there's even a case for it [3/18/2011 12:59:14 PM] Chris Eykamp: but that could sove the sarcophage issue [3/18/2011 12:59:44 PM] buckyballreaction: yes - i like the idea of having a dungeon type flag - which would allow goofy things and disable other things [3/18/2011 1:00:07 PM] Chris Eykamp: so, for 016... [3/18/2011 1:00:23 PM] buckyballreaction: i got a response! [3/18/2011 1:00:27 PM] Chris Eykamp: already! [3/18/2011 1:00:31 PM] buckyballreaction: i like this guy... [3/18/2011 1:01:12 PM] Chris Eykamp: try new version? [3/18/2011 1:01:21 PM] buckyballreaction: haha, why not!? [3/18/2011 1:01:29 PM] Chris Eykamp: with a name like angus, what's not to like? [3/18/2011 1:01:33 PM] buckyballreaction: hehe [3/18/2011 1:01:55 PM] Chris Eykamp: I think the frontman for AC/DC is an Angus [3/18/2011 1:02:14 PM] Chris Eykamp: since I know you care [3/18/2011 1:02:22 PM] buckyballreaction: :) [3/18/2011 1:03:10 PM] buckyballreaction: so i checked the output of poly2tri with your latest code - it is good [3/18/2011 1:03:21 PM] buckyballreaction: clockwise tris [3/18/2011 1:03:24 PM] Chris Eykamp: really? I never got it to do anything [3/18/2011 1:03:35 PM] Chris Eykamp: not even compile [3/18/2011 1:03:44 PM] Chris Eykamp: wait... cw tris? [3/18/2011 1:03:45 PM] buckyballreaction: yes, it seems like the recast handling might be messed up [3/18/2011 1:03:50 PM] buckyballreaction: they were clockwise [3/18/2011 1:03:54 PM] Chris Eykamp: recast is now configged for ccw tris [3/18/2011 1:04:00 PM] buckyballreaction: argh [3/18/2011 1:04:04 PM] Chris Eykamp: it's easy enough to change [3/18/2011 1:04:11 PM] Chris Eykamp: search for ccw in the comments [3/18/2011 1:04:21 PM] Chris Eykamp: it's a one char change [3/18/2011 1:04:27 PM] Chris Eykamp: >= to <= [3/18/2011 1:04:31 PM] Chris Eykamp: or the opposite [3/18/2011 1:06:44 PM] Chris Eykamp: and I didn't get to inserting the holes into p2t [3/18/2011 1:06:57 PM] Chris Eykamp: so all that will come out is one giant zone covering the level bounds [3/18/2011 1:09:47 PM] buckyballreaction: which is fine - then i know it works [3/18/2011 1:09:55 PM] buckyballreaction: ok, now set for CW, time to test [3/18/2011 1:11:16 PM] buckyballreaction: hmmm... [3/18/2011 1:12:31 PM] buckyballreaction: got two zones, one was a sliver from diagonal to diagonal along the extents, the other was similar but offset a distance [3/18/2011 1:12:46 PM] Chris Eykamp: ok [3/18/2011 1:12:57 PM] Chris Eykamp: two slivers [3/18/2011 1:13:16 PM] Chris Eykamp: maybe input format is wrong? [3/18/2011 1:13:26 PM] buckyballreaction: the output points are good [3/18/2011 1:13:30 PM] buckyballreaction: when i plotted them against my map [3/18/2011 1:13:39 PM] buckyballreaction: it's the insertion into recast, i think [3/18/2011 1:13:42 PM] Chris Eykamp: output from what? [3/18/2011 1:13:49 PM] buckyballreaction: output from poly2tri [3/18/2011 1:13:51 PM] Chris Eykamp: well, that could certainly be a problem [3/18/2011 1:14:08 PM] buckyballreaction: it spit out 2 tris with points at the extents of the map [3/18/2011 1:14:16 PM] buckyballreaction: which is good [3/18/2011 1:14:30 PM] Chris Eykamp: yes, so we understand input then [3/18/2011 1:16:12 PM] buckyballreaction: not really seeing anything special with how you insert them into recast [3/18/2011 1:18:15 PM] Chris Eykamp: I made a heroic assumption about how to convert to recast; it was after 2AM [3/18/2011 1:18:20 PM] Chris Eykamp: so it was probably wrong [3/18/2011 1:18:48 PM] Chris Eykamp: recast needs a list of vertices in the form of an array of ints x y x y x y x y [3/18/2011 1:19:41 PM] Chris Eykamp: and a list of triangles, which I assume are an array of abc abc abc (that's 9 ints) where each entry points to a vertex index [3/18/2011 1:19:47 PM] Zoomber: why can you get software new still factory sealed on ebay for 50 dollars less than on the software company's website, and the software is upto date [3/18/2011 1:20:03 PM] buckyballreaction: @zoomber because it's cracked? [3/18/2011 1:20:23 PM] Chris Eykamp: if the verts array is x1 y1 x2 y2 x3 y3, then the index of point 2 is 1, not2, of point 3 is 2, not 4 [3/18/2011 1:20:38 PM] buckyballreaction: ah [3/18/2011 1:20:44 PM] Chris Eykamp: i.e. it's not the array index, but half the array index that is the vert index [3/18/2011 1:21:05 PM] Chris Eykamp: kind of logical once you understand [3/18/2011 1:21:12 PM] Zoomber: factory sealed. [3/18/2011 1:21:30 PM] Chris Eykamp: thank goodness for ebay [3/18/2011 1:21:44 PM] buckyballreaction: @zoomber probably came bundled with something [3/18/2011 1:21:48 PM] buckyballreaction: but is not needd [3/18/2011 1:21:54 PM] Chris Eykamp: maybe the software "fell off a truck" [3/18/2011 1:27:25 PM] Zoomber: its always possible [3/18/2011 1:28:27 PM] Zoomber: i got my ibm for a good deal too, though it did come used [3/18/2011 1:29:32 PM] Zoomber: the best trick is to find an older product version of something, that cant be used on the newest o.s., so people sell it legit for really low, get it, and buy the upgrade package from the company [3/18/2011 1:36:40 PM] buckyballreaction: @watusimoto: better viusual: http://96.2.123.136/upload/snapshot24.png [3/18/2011 1:37:15 PM] Chris Eykamp: weird [3/18/2011 1:37:26 PM] buckyballreaction: looks like overflow error [3/18/2011 1:37:34 PM] Chris Eykamp: yes [3/18/2011 1:37:47 PM] Chris Eykamp: probably bad input into recast [3/18/2011 1:38:09 PM] Chris Eykamp: recast treats bogus numbers as 0xffff [3/18/2011 1:38:28 PM] Chris Eykamp: everything is memsetted to 0xffff, then overwritten with good data [3/18/2011 1:38:46 PM] Chris Eykamp: so we're probably hitting an undefined vertex [3/18/2011 1:40:48 PM] Chris Eykamp: try dumping intPoints and trilist; maybe the problem will be apparent [3/18/2011 1:41:39 PM] Zoomber: 4 divided into zero groups equal no groups with a remainder of 4 [3/18/2011 1:50:55 PM] buckyballreaction: here is the notes on clipper 4: http://polyclipping.svn.sourceforge.net/viewvc/polyclipping/sandbox/notes.txt?revision=100 [3/18/2011 1:52:36 PM] Chris Eykamp: merging output polygons? probably not important [3/18/2011 1:55:41 PM] buckyballreaction: what would you deem more important: [3/18/2011 1:55:54 PM] buckyballreaction: getting poly2tri to work, or using the new clipper? [3/18/2011 1:57:26 PM] Chris Eykamp: mmmm [3/18/2011 1:57:32 PM] Chris Eykamp: getting the whole chain to work [3/18/2011 1:58:00 PM] Chris Eykamp: new clipper? [3/18/2011 1:58:01 PM] buckyballreaction: if i work on the clipper [3/18/2011 1:58:16 PM] buckyballreaction: i will need someone who can compile in windows... [3/18/2011 1:58:33 PM] buckyballreaction: and i will patch against a previous rev in the repo [3/18/2011 1:58:47 PM] buckyballreaction: before the poly2tri changes [3/18/2011 1:58:50 PM] Chris Eykamp: why compile in windows? to verify the integrity? [3/18/2011 1:59:07 PM] Chris Eykamp: you can use the ifdef to get rid of the p2t [3/18/2011 1:59:15 PM] buckyballreaction: yes, assuming i get the linux side working again [3/18/2011 1:59:23 PM] buckyballreaction: oh yeah, the ifdef [3/18/2011 1:59:27 PM] buckyballreaction: ok [3/18/2011 2:01:03 PM] Chris Eykamp: doing the new clipper may be easier [3/18/2011 2:21:10 PM] Chris Eykamp: I may be able to try compiling if we get to that point [3/18/2011 2:29:00 PM] buckyballreaction: clipper4 works! [3/18/2011 2:29:46 PM] Chris Eykamp: really [3/18/2011 2:29:47 PM] Chris Eykamp: ? [3/18/2011 2:30:31 PM] Chris Eykamp: define works [3/18/2011 2:30:32 PM] buckyballreaction: welll [3/18/2011 2:30:41 PM] buckyballreaction: it failed on zc3 [3/18/2011 2:30:44 PM] buckyballreaction: no crashing [3/18/2011 2:30:47 PM] buckyballreaction: no zones either [3/18/2011 2:31:02 PM] Chris Eykamp: using Triangle? [3/18/2011 2:31:07 PM] buckyballreaction: yepp [3/18/2011 2:31:18 PM] Chris Eykamp: did it crash for you before? [3/18/2011 2:31:20 PM] buckyballreaction: let me dump clipper output: [3/18/2011 2:31:24 PM] buckyballreaction: never crashed [3/18/2011 2:31:30 PM] Chris Eykamp: so no change :) [3/18/2011 2:31:36 PM] buckyballreaction: yes change [3/18/2011 2:31:42 PM] buckyballreaction: it doesn't create the zones now [3/18/2011 2:31:53 PM] buckyballreaction: on aonecontrol3 [3/18/2011 2:31:56 PM] buckyballreaction: zonecontrol3 [3/18/2011 2:32:04 PM] buckyballreaction: the old clipper worked every time [3/18/2011 2:32:39 PM] buckyballreaction: clipper output is 4 points on zonecontrol3 [3/18/2011 2:32:42 PM] buckyballreaction: rats [3/18/2011 2:33:11 PM] buckyballreaction: that is suspicious of what it does on sarcophage [3/18/2011 2:33:23 PM] buckyballreaction: like it fails and spits out only the map extents... [3/18/2011 2:33:32 PM] buckyballreaction: be back after a meeting.. [3/18/2011 4:14:02 PM] buckyballreaction: ah - when i get 4 points out of clipper like that, the execute method does return FALSE [3/18/2011 4:41:44 PM] buckyballreaction: ah, the 4 points are really the bounds that are added to the coords list before clipper [3/18/2011 4:41:49 PM] buckyballreaction: so clipper returns no points [3/18/2011 4:46:53 PM] Chris Eykamp: I'd expect it to return 4 [3/18/2011 4:47:15 PM] Chris Eykamp: those 4 points define the "field", and the walls define the "holes" [3/18/2011 4:47:30 PM] Chris Eykamp: so with no holes, we just have a big rectangle [3/18/2011 4:47:40 PM] buckyballreaction: yeah, so the new clipper4 is outright failing on zonecontrol3 [3/18/2011 4:48:04 PM] buckyballreaction: i even multiplid the F32s by 1000 to insert them... [3/18/2011 4:48:26 PM] Chris Eykamp: wait, sorry, all my comments were about p2t... my mind is wandering [3/18/2011 4:48:37 PM] buckyballreaction: that's ok [3/18/2011 4:48:55 PM] Chris Eykamp: clipper returning no points is bad [3/18/2011 4:49:09 PM] buckyballreaction: well, the Execute method is boolean [3/18/2011 4:49:19 PM] Chris Eykamp: what does it mean when it returns false [3/18/2011 4:49:20 PM] buckyballreaction: and when it returns false, no points are popluated [3/18/2011 4:49:34 PM] buckyballreaction: it just means that the clipper polyboolean function failed [3/18/2011 4:49:38 PM] buckyballreaction: i find no other doc [3/18/2011 4:49:48 PM] Chris Eykamp: meaning the union failed? [3/18/2011 4:49:52 PM] buckyballreaction: yep [3/18/2011 4:50:33 PM] buckyballreaction: i looked through the Execute method, and it's failing on the ProcessIntersections() method [3/18/2011 4:50:51 PM] Chris Eykamp: lovely [3/18/2011 4:50:58 PM] Chris Eykamp: so p2t isn't going to fix that [3/18/2011 4:51:01 PM] buckyballreaction: nope [3/18/2011 4:51:20 PM] Chris Eykamp: well, we can dump our output and send it to angus [3/18/2011 4:51:21 PM] buckyballreaction: but clipper3 works fine! (except on sarcophage) [3/18/2011 4:51:44 PM] Chris Eykamp: on sarc., does it also return false? [3/18/2011 4:51:50 PM] buckyballreaction: yep [3/18/2011 4:51:53 PM] Chris Eykamp: ok [3/18/2011 4:51:59 PM] Chris Eykamp: here's what we do [3/18/2011 4:52:01 PM] Chris Eykamp: for the moment [3/18/2011 4:52:07 PM] Chris Eykamp: we stick with clipper 3 [3/18/2011 4:52:13 PM] buckyballreaction: ok [3/18/2011 4:52:17 PM] Chris Eykamp: we strip out dupe points before going on to triangle (or p2t) [3/18/2011 4:52:28 PM] Chris Eykamp: if that generates good zones, then... [3/18/2011 4:52:37 PM] buckyballreaction: we clean! [3/18/2011 4:52:40 PM] Chris Eykamp: we generate zoens on level load [3/18/2011 4:52:52 PM] Chris Eykamp: if the thing returns false, we set the nobots flag [3/18/2011 4:53:02 PM] buckyballreaction: good idea [3/18/2011 4:53:12 PM] Chris Eykamp: and then come back in the future with clipper4 [3/18/2011 4:53:17 PM] Chris Eykamp: after it has been released [3/18/2011 4:53:37 PM] Chris Eykamp: we config triangle so that if it fails, we can detect that too and set norobots flag [3/18/2011 4:53:55 PM] Chris Eykamp: worst case, we end up with a few levels that either have no bots, or bots are just broken [3/18/2011 4:54:11 PM] Chris Eykamp: (no zones != crash) [3/18/2011 4:54:15 PM] Chris Eykamp: (still playable) [3/18/2011 4:54:16 PM] buckyballreaction: good [3/18/2011 4:54:29 PM] Chris Eykamp: and we just accept that as the price of a huge step forward [3/18/2011 4:54:41 PM] Chris Eykamp: we're still way better off than we are today [3/18/2011 4:54:49 PM] Chris Eykamp: we have a 99% solution [3/18/2011 4:54:51 PM] buckyballreaction: i like your way of thinking - sometimes 'perfect' is a lofty goal... [3/18/2011 4:55:07 PM] buckyballreaction: and maybe even not attainable [3/18/2011 4:55:18 PM] Chris Eykamp: I'm an engineer, not a mathematician :) [3/18/2011 4:55:24 PM] buckyballreaction: haha [3/18/2011 4:55:43 PM] Chris Eykamp: As my former classmate put it: Engineering is making shit work [3/18/2011 4:55:53 PM] Chris Eykamp: And that pretty much sums it up [3/18/2011 4:55:59 PM] buckyballreaction: i agree [3/18/2011 4:56:04 PM] Chris Eykamp: so, that's our plan [3/18/2011 4:56:10 PM] buckyballreaction: ok [3/18/2011 4:56:17 PM] buckyballreaction: shall I strip out poly2tri? [3/18/2011 4:56:25 PM] Chris Eykamp: we modularize as much as possible so we can swap in/out clipper, triange, p2t, etc. [3/18/2011 4:56:51 PM] Chris Eykamp: let's leave it because we may still want to go there [3/18/2011 4:57:09 PM] Chris Eykamp: but I'm not sure an ifdef is the best way. maybe it is [3/18/2011 4:57:28 PM] Chris Eykamp: I'm not really sure how to organize the flow [3/18/2011 4:57:34 PM] Chris Eykamp: I visualize 3 stages [3/18/2011 4:57:48 PM] Chris Eykamp: clipper -- triangle / p2t -- recast [3/18/2011 4:57:52 PM] buckyballreaction: i have an idea: what were we going to rename SweptEllipsoid to? [3/18/2011 4:57:55 PM] Chris Eykamp: with connectors in between [3/18/2011 4:57:58 PM] Chris Eykamp: geomUtils [3/18/2011 4:58:34 PM] buckyballreaction: ok, i rename that, then stick in wrapper methods to do those three stages [3/18/2011 4:58:59 PM] Chris Eykamp: ok, I think [3/18/2011 4:59:05 PM] buckyballreaction: maybe have a 'option' argument so that stage 2 option 1 would be triangle, stage 2 option 2 would be poly2tri [3/18/2011 4:59:31 PM] buckyballreaction: 'algo' argument actually [3/18/2011 5:00:07 PM] Chris Eykamp: or we could have two methods: prepareClipperForTriangle and prepareClipperForP2T with an ifdef or something to pick the one that gets used [3/18/2011 5:00:21 PM] Chris Eykamp: that would make it easier to clean out later if we settle on one solution [3/18/2011 5:01:09 PM] Chris Eykamp: I started to comment out large blocks of code last night [3/18/2011 5:01:20 PM] buckyballreaction: i saw that [3/18/2011 5:01:22 PM] Chris Eykamp: trying to figure out what we no longer needed [3/18/2011 5:01:23 PM] buckyballreaction: too many paths... [3/18/2011 5:01:26 PM] Chris Eykamp: yes [3/18/2011 5:01:36 PM] buckyballreaction: i am quite familiar with what is not needed after this [3/18/2011 5:01:45 PM] Chris Eykamp: more commenting/deleting is needed [3/18/2011 5:01:49 PM] buckyballreaction: yep [3/18/2011 5:02:39 PM] Chris Eykamp: I like the ifdef approach in this case, because it makes it clear that these are really two mutually exclusive options; triangle OR p2t. There will be no mushy in-between-keep-both option [3/18/2011 5:03:31 PM] buckyballreaction: ok, so in geomUtils: 1. method unionPolygons 2. method tessellateMap 3. mergeTriangles [3/18/2011 5:03:50 PM] Chris Eykamp: 1 = clipper [3/18/2011 5:03:55 PM] Chris Eykamp: 2 = triangle [3/18/2011 5:04:00 PM] Chris Eykamp: 3 - recase [3/18/2011 5:04:00 PM] Chris Eykamp: ? [3/18/2011 5:04:03 PM] buckyballreaction: yup [3/18/2011 5:04:08 PM] buckyballreaction: but [3/18/2011 5:04:48 PM] Chris Eykamp: actually, we do other triangluation in various places; perhaps tesselateMap should be just tesselate [3/18/2011 5:04:55 PM] buckyballreaction: ok [3/18/2011 5:04:59 PM] Chris Eykamp: and then we can use that for everything [3/18/2011 5:05:06 PM] Chris Eykamp: though it may be overkill for a loadout zone [3/18/2011 5:05:16 PM] Chris Eykamp: maybe too much overhead ?? [3/18/2011 5:05:28 PM] buckyballreaction: only if it's being called lots of times [3/18/2011 5:05:30 PM] Chris Eykamp: we tesselate all polygons for rendering [3/18/2011 5:05:34 PM] Chris Eykamp: but only once [3/18/2011 5:05:38 PM] Chris Eykamp: each [3/18/2011 5:05:43 PM] Chris Eykamp: we save the results [3/18/2011 5:05:53 PM] buckyballreaction: ah, so maybe a simpleTessellate and complexTesselate [3/18/2011 5:05:58 PM] buckyballreaction: the latter takes holes, etc. [3/18/2011 5:06:14 PM] Chris Eykamp: well, tesselate with two signatures [3/18/2011 5:06:20 PM] Chris Eykamp: tesselate(poly) [3/18/2011 5:06:25 PM] Chris Eykamp: tesselate(poly, holes) [3/18/2011 5:06:26 PM] Chris Eykamp: ? [3/18/2011 5:06:29 PM] buckyballreaction: ok [3/18/2011 5:06:34 PM] buckyballreaction: also [3/18/2011 5:06:55 PM] buckyballreaction: inside of tesselate(poly, holes) we could do the p2t or triangle [3/18/2011 5:07:03 PM] Chris Eykamp: good idea [3/18/2011 5:07:19 PM] buckyballreaction: and use an ifdef in there, or pass another argument: tessellate(poly, holes, method) [3/18/2011 5:07:29 PM] Chris Eykamp: but we may want/need to pass data differently for each; not sure [3/18/2011 5:08:08 PM] buckyballreaction: yes but the output of tessellate must be consistent otherwise it can't be used for merging [3/18/2011 5:08:19 PM] Chris Eykamp: if so, we may want tess_triangle, or tess_c2p [3/18/2011 5:08:23 PM] Chris Eykamp: not sure [3/18/2011 5:08:29 PM] Chris Eykamp: that may become apparent [3/18/2011 5:09:04 PM] buckyballreaction: we can handle the data manipulation in tesselate() based on the method used - because it has to come out the same for input elsewhere [3/18/2011 5:10:03 PM] Chris Eykamp: output is the same, yes [3/18/2011 5:10:34 PM] Chris Eykamp: well, we'll see; what I don't wnat is to convert to some intermeidoate form just to keep the signature clean [3/18/2011 5:10:50 PM] buckyballreaction: explain [3/18/2011 5:11:03 PM] Chris Eykamp: we may want to pass clipper output directly if it can be processed easily by triangle [3/18/2011 5:11:25 PM] Chris Eykamp: but we may want to pass something else if it's going to p2t [3/18/2011 5:11:53 PM] buckyballreaction: ah, i was thinking of making a complex object within geomUtils that will hold the intermediary data [3/18/2011 5:11:57 PM] Chris Eykamp: maybe we can get by with the same sig, but i don;t want to reformat the data to, say a Vector if that means going from format a to b back to a [3/18/2011 5:12:34 PM] Chris Eykamp: my main concern is keeping dataflow as streamlined as possible, with as little reformatting as possible [3/18/2011 5:12:42 PM] Chris Eykamp: that's all I meant [3/18/2011 5:13:09 PM] Chris Eykamp: I'd even tinker with, say, recast, to read native triangle output if that saved some cpu [3/18/2011 5:13:40 PM] Chris Eykamp: recast already processes data coming in; it could start with a different format and still get where it needs to go [3/18/2011 5:13:46 PM] Chris Eykamp: may not be an issue [3/18/2011 5:13:49 PM] buckyballreaction: ok [3/18/2011 5:14:04 PM] buckyballreaction: i am thinking the main problem is getting the data out of tesselate() [3/18/2011 5:14:25 PM] Chris Eykamp: well, tesselate could format for recast [3/18/2011 5:14:26 PM] Chris Eykamp: and return that [3/18/2011 5:14:35 PM] buckyballreaction: that's where i was going... [3/18/2011 5:15:00 PM] Chris Eykamp: unless tesselate were retuirnig data for loadout zone rendering [3/18/2011 5:15:18 PM] Chris Eykamp: but that's less important now -- what we've got works for that, we can refactor later [3/18/2011 5:15:22 PM] buckyballreaction: that's why i suggest two completely different methods [3/18/2011 5:15:25 PM] Chris Eykamp: ah, I see [3/18/2011 5:15:36 PM] Chris Eykamp: let's take that off the table for the moment [3/18/2011 5:15:40 PM] buckyballreaction: because loadout and barriers require simple convex processing [3/18/2011 5:15:41 PM] buckyballreaction: ok [3/18/2011 5:15:48 PM] Chris Eykamp: if it works out, great, but if not, ok [3/18/2011 5:15:55 PM] Chris Eykamp: [Friday, March 18, 2011 5:15 PM] buckyballreaction: <<< barriers require simple convex processingnot true [3/18/2011 5:16:02 PM] buckyballreaction: no? [3/18/2011 5:16:04 PM] Chris Eykamp: simple, yes, but concave or convex [3/18/2011 5:16:12 PM] buckyballreaction: ahh... [3/18/2011 5:16:15 PM] buckyballreaction: ok [3/18/2011 5:16:20 PM] Chris Eykamp: L shaped loadout zone [3/18/2011 5:16:22 PM] Chris Eykamp: e.g. [3/18/2011 5:16:26 PM] buckyballreaction: that's right.. [3/18/2011 5:16:42 PM] Chris Eykamp: but typically 5 or 6 vertices [3/18/2011 5:16:51 PM] Chris Eykamp: so easy to do even with niave algo [3/18/2011 5:17:07 PM] buckyballreaction: i get it now [3/18/2011 5:17:09 PM] Chris Eykamp: like I said... triangle might be overkill [3/18/2011 5:17:14 PM] buckyballreaction: forgot about that... [3/18/2011 5:17:25 PM] Chris Eykamp: so that's 2ndary [3/18/2011 5:17:27 PM] buckyballreaction: ok [3/18/2011 5:17:33 PM] buckyballreaction: i'll get cracking :) [3/18/2011 5:17:36 PM] Chris Eykamp: great! [3/18/2011 5:17:49 PM] Chris Eykamp: unless you have a job to attend to :) [3/18/2011 5:17:58 PM] buckyballreaction: i wish! [3/18/2011 5:18:18 PM] buckyballreaction: this merger has really sapped the life out of current projects [3/18/2011 5:18:31 PM] Chris Eykamp: when the merger comes, best to appear as busy as possible [3/18/2011 5:18:48 PM] Chris Eykamp: or they might stick you on the pen assembly line [3/18/2011 5:18:53 PM] buckyballreaction: i have been reduced to working on unimportant bugs [3/18/2011 5:19:10 PM] Chris Eykamp: morale high, eh? [3/18/2011 5:19:29 PM] buckyballreaction: yeah, it's not really bad, it's just not there.... [3/18/2011 5:20:11 PM] buckyballreaction: the merger was delayed a month, then there is a 6 month grace period that they won't make any changes and only do analysis [3/18/2011 5:20:33 PM] buckyballreaction: then they'll start reassigning people/ re-dividing teams/etc. [3/18/2011 5:20:45 PM] Chris Eykamp: that will be fun [3/18/2011 6:04:11 PM] Samuel Williams: This is when i put this to avoid crash on error. __try{ makeBotMeshZones3(bounds, game, useRecast); }__except(1){ logprintf("Error in makeBotMeshZones3"); } and remove //exit(status); in triexit. http://96.2.123.136/bitfighter/bitfighter1log.txt with 'X' http://96.2.123.136/bitfighter/bitfighter2log.txt without 'X' Look for "Error in makeBotMeshZones3" There is 13 errors with 'X', and 4 error without 'X' [3/18/2011 6:05:20 PM] Samuel Williams: the 'X' option is in triangulate((char*)"zpXV", &in, &out, NULL); [3/18/2011 6:05:49 PM] Chris Eykamp: [Friday, March 18, 2011 6:04 PM] Samuel Williams: <<< This is when i put this to avoid crash on error.we need to remove exit(status), but whe really need to do is have tirangualte return a bool, true for success, false for failure [3/18/2011 6:06:00 PM] Chris Eykamp: then we can handle it back in the calling fn [3/18/2011 6:06:10 PM] Chris Eykamp: bbr may be doing that, not sure [3/18/2011 6:06:16 PM] buckyballreaction: not yet [3/18/2011 6:06:38 PM] Samuel Williams: there is a possibility for memory leak (memory not freed) when it errored. [3/18/2011 6:06:47 PM] buckyballreaction: let me at least push the GeomUtils rename... [3/18/2011 6:06:49 PM] Chris Eykamp: not sure what to look at in those log files [3/18/2011 6:07:07 PM] buckyballreaction: basically sam iterated through a whole bunch of levels [3/18/2011 6:07:14 PM] Chris Eykamp: maybe we need a cleanup and exit method in triangle that frees memory then returns false [3/18/2011 6:07:24 PM] Samuel Williams: in each "Error in makeBotMeshZones3", the map it tried to load is the problem in the bot zone generator. [3/18/2011 6:07:28 PM] buckyballreaction: and caught the ones that errored on triangle [3/18/2011 6:08:33 PM] Chris Eykamp: @sam -- if you haven't done so, look at the ideas bbr and I were discussing for cleaning this all up [3/18/2011 6:08:40 PM] Chris Eykamp: and making the best of what we've got [3/18/2011 6:09:46 PM] buckyballreaction: oop, must rebase... [3/18/2011 6:10:36 PM] buckyballreaction: so according to sam's log, if you don't use 'X' we have a 4 / 187 failure rate [3/18/2011 6:10:52 PM] Chris Eykamp: 2% [3/18/2011 6:11:21 PM] buckyballreaction: that doesn't seem so bad... [3/18/2011 6:11:28 PM] buckyballreaction: would be nice to get to 1% [3/18/2011 6:13:02 PM] Samuel Williams: another possible problem is zones don't generate right, even when there is no errors. [3/18/2011 6:13:10 PM] Chris Eykamp: yes [3/18/2011 6:13:19 PM] buckyballreaction: what? where? [3/18/2011 6:13:25 PM] buckyballreaction: i haven't seen that yet.. [3/18/2011 6:13:44 PM] buckyballreaction: define 'don't generate right' [3/18/2011 6:13:47 PM] Chris Eykamp: we discussed that earlier as well; there may be some levels that bots just don't work on at the moment [3/18/2011 6:14:51 PM] Samuel Williams: if there is zero length 50 width barrier (2 point barrier at the exact same place), no zones are generated at all. [3/18/2011 6:15:17 PM] Chris Eykamp: we need to add a smidge of length there [3/18/2011 6:15:26 PM] Chris Eykamp: so we can get a point inside [3/18/2011 6:15:29 PM] Chris Eykamp: to make it a hole [3/18/2011 6:15:44 PM] Chris Eykamp: or, maybe p2t can handle that, as holes are specified only by coordinates [3/18/2011 6:16:02 PM] buckyballreaction: ok sam, before you make changes [3/18/2011 6:16:06 PM] buckyballreaction: please update [3/18/2011 6:16:22 PM] buckyballreaction: i did a rename of SweptEllipsoid, and I want to make sure you h ave nothing borkne [3/18/2011 6:17:52 PM] buckyballreaction: you may need to refresh your vc++ project [3/18/2011 6:17:57 PM] Chris Eykamp: thanks for doing that [3/18/2011 6:17:59 PM] buckyballreaction: but i think i got all the references [3/18/2011 6:18:21 PM] buckyballreaction: Mac will be a different story... [3/18/2011 6:18:29 PM] buckyballreaction: but i'll do that eventually [3/18/2011 6:18:41 PM] Chris Eykamp: do you guys think we should make geomuitls a static class, or leave it a collection of "loose" functions? [3/18/2011 6:19:00 PM] buckyballreaction: seems like making it a static class wouldn't hurt [3/18/2011 6:20:11 PM] buckyballreaction: what's the difference between Vector and vector classes? [3/18/2011 6:20:30 PM] Chris Eykamp: Vector is TNL's version of vector, which is a STL class [3/18/2011 6:20:30 PM] buckyballreaction: the former is TNL [3/18/2011 6:20:37 PM] Chris Eykamp: very similar, slightly different [3/18/2011 6:20:45 PM] Chris Eykamp: maybe we could merge [3/18/2011 6:20:59 PM] buckyballreaction: is there a difference that provides an advantage? [3/18/2011 6:21:19 PM] Chris Eykamp: I'd prefer to use stl's vector instead of TNL's, but TNL's has address method I don't know how to replicate in vector [3/18/2011 6:21:28 PM] Samuel Williams: Vector allows sending through TNL network interface, vector (lowercase) might not.. [3/18/2011 6:21:45 PM] Chris Eykamp: I think (hope) that could be made to work [3/18/2011 6:22:14 PM] buckyballreaction: i see Vector has erase_fast [3/18/2011 6:22:24 PM] Chris Eykamp: that's nice [3/18/2011 6:24:09 PM] Samuel Williams: data = abcde erase_fast(b) data = aecd The normal Erase will have to move all the elements over one, which could be slower.. [3/18/2011 6:24:34 PM] buckyballreaction: ah, cool [3/18/2011 6:24:56 PM] buckyballreaction: so it's great for data sets were ordering is not cared for [3/18/2011 6:25:05 PM] Chris Eykamp: yes [3/18/2011 6:25:49 PM] Chris Eykamp: maybe we could create a Vector wrapper around a vector core [3/18/2011 6:25:57 PM] Chris Eykamp: but for the address method [3/18/2011 6:26:36 PM] Chris Eykamp: address lets you convert vector to an array with no work\ [3/18/2011 6:26:42 PM] buckyballreaction: wow, it looks like they reimplented all of vector... [3/18/2011 6:26:50 PM] buckyballreaction: and just added a couple things [3/18/2011 6:26:51 PM] Chris Eykamp: well, it doesn't all work [3/18/2011 6:27:03 PM] Chris Eykamp: or at least not the way I think it should [3/18/2011 6:27:07 PM] Chris Eykamp: but it's good enough [3/18/2011 6:27:17 PM] Chris Eykamp: I don't like converting from vector to Vector and back [3/18/2011 6:27:37 PM] buckyballreaction: which do you prefer? [3/18/2011 6:27:51 PM] Chris Eykamp: well vector would be better, not sure if it would work [3/18/2011 6:28:01 PM] Chris Eykamp: better because it will work with external libs better [3/18/2011 6:28:15 PM] buckyballreaction: maybe the wrapper could have a setStlVector and getStlVector method [3/18/2011 6:28:20 PM] buckyballreaction: for easy conversion [3/18/2011 6:28:32 PM] Chris Eykamp: right [3/18/2011 6:28:45 PM] Chris Eykamp: don't think we should get wrapped up in that now [3/18/2011 6:28:50 PM] buckyballreaction: agreed [3/18/2011 6:28:50 PM] Chris Eykamp: can investigate for 016 [3/18/2011 6:30:08 PM] Chris Eykamp: ha ha little_apple is playing! [3/18/2011 6:30:15 PM] Chris Eykamp: little_level_changer [3/18/2011 6:30:17 PM] buckyballreaction: ?? [3/18/2011 6:30:20 PM] buckyballreaction: haha [3/18/2011 6:30:28 PM] Chris Eykamp: oh, just a player I had a problem with once [3/18/2011 6:33:48 PM] buckyballreaction: http://code.google.com/p/bitfighter/issues/detail?id=87 [3/18/2011 6:35:06 PM] Chris Eykamp: great [3/18/2011 6:35:31 PM] buckyballreaction: we have lots for 016... [3/18/2011 6:38:18 PM] buckyballreaction: thought: trash the botzone generation method in the INI, and just fall back to one of the others if clipper->triangle->recast fails [3/18/2011 6:38:38 PM] buckyballreaction: so if makeMeshZones3 fails, go makeMeshZones2 [3/18/2011 6:38:45 PM] buckyballreaction: which was sam's [3/18/2011 6:39:08 PM] buckyballreaction: but only if those had a higher success rate of generation on goofy levels [3/18/2011 6:39:12 PM] buckyballreaction: which I don't kow [3/18/2011 6:39:14 PM] buckyballreaction: knoww [3/18/2011 6:39:16 PM] buckyballreaction: know [3/18/2011 6:41:13 PM] Samuel Williams: makeMeshZones2 might freeze or take a long time on some levels including geowar. My makeMeshZones1 is rectangle bot zones that never fails, but might not link zones for tiny paths.. [3/18/2011 6:41:29 PM] buckyballreaction: ok [3/18/2011 6:41:34 PM] buckyballreaction: we fall back to makeMeshZones1 [3/18/2011 6:41:40 PM] buckyballreaction: failsafe... [3/18/2011 6:42:37 PM] Chris Eykamp: I say no failsafe; no zones = no bots [3/18/2011 6:43:27 PM] Samuel Williams: when makeMeshZones3 fails, there may be memory leak (memory not freed), repeated attemps to use makeMeshZones3 when it fails, might crash with out of memory error.. [3/18/2011 6:43:45 PM] Chris Eykamp: we don't free the recast memory properly [3/18/2011 6:44:18 PM] Chris Eykamp: if that's relevant to mmz3 [3/18/2011 6:45:18 PM] buckyballreaction: we should never do repeated attempts [3/18/2011 6:45:29 PM] Chris Eykamp: agreed [3/18/2011 6:46:07 PM | Edited 6:47:12 PM] Samuel Williams: levelgens cannot be cached, and levelgen could (randomly) generate goffy levels that can fail makeMeshZones3. [3/18/2011 6:47:14 PM] Chris Eykamp: things are fast enough we can get rid of cacheing [3/18/2011 6:47:22 PM] Chris Eykamp: it's more trouble than it's worth [3/18/2011 6:47:25 PM] buckyballreaction: i agree [3/18/2011 6:47:51 PM] Chris Eykamp: we generate them so fast now [3/18/2011 6:48:10 PM] buckyballreaction: but i still like the idea of falling back to makeMeshZone1 for those 2% of levels [3/18/2011 6:48:27 PM] Samuel Williams: loading cache will almost always be a lot faster then generating bot zones. [3/18/2011 6:48:37 PM] buckyballreaction: unless we want to force level builders to use good practices... [3/18/2011 6:49:05 PM] Samuel Williams: one possible reason it fails is duplicate points can crash triangulate, i do get duplicate point warning, then it errored after that.. [3/18/2011 6:49:32 PM] Chris Eykamp: how many "normal" levels aer in that 2%? [3/18/2011 6:50:10 PM] Chris Eykamp: I'll get rid of the dupe points tonight [3/18/2011 6:50:23 PM] buckyballreaction: ok [3/18/2011 6:50:33 PM] Chris Eykamp: but not sure if that will really fix the problem [3/18/2011 6:50:53 PM] buckyballreaction: if you're on later sam, i have another idea [3/18/2011 6:50:59 PM] buckyballreaction: to fix clipper output [3/18/2011 6:51:00 PM] Samuel Williams: None if it are level in bitfighter stock levels (i don't think).. [3/18/2011 6:51:16 PM] buckyballreaction: there is a precision factor in clipper.cpp [3/18/2011 6:51:40 PM] buckyballreaction: change: static double const precision = 1.0E-6; to: static double const precision = 1.0E-3; [3/18/2011 6:51:57 PM] buckyballreaction: or something like that, and see if clipper still crashes on zonecontrol3 [3/18/2011 6:52:22 PM] Samuel Williams: 1108qui.level (Sarcophage) ctf6.level (Blinding Snow) downloaded2_NeedFoSpeed.level (NeedFoSpeed) downloaded_Arena.level (Arena) [3/18/2011 6:52:38 PM] Samuel Williams: Those are the problem levels in triangulate. [3/18/2011 6:53:02 PM] buckyballreaction: sarcophage make me head explode [3/18/2011 6:53:30 PM] Chris Eykamp: great -- those are our new nobots list [3/18/2011 6:53:36 PM] buckyballreaction: haha [3/18/2011 6:53:39 PM] buckyballreaction: cool [3/18/2011 6:53:43 PM] Chris Eykamp: not giving up on them forever [3/18/2011 6:53:46 PM] Chris Eykamp: but just for the moment [3/18/2011 6:54:02 PM] Chris Eykamp: we can try the new clipper when it's ready [3/18/2011 6:54:13 PM] Chris Eykamp: we can send data that breaks clipper to the author [3/18/2011 6:54:22 PM] buckyballreaction: good idea [3/18/2011 6:54:24 PM] Chris Eykamp: we can try poly2tri [3/18/2011 6:54:51 PM] buckyballreaction: i need to get going, be back tonight to continue my refactor [3/18/2011 6:54:55 PM] Chris Eykamp: ok [3/18/2011 6:55:04 PM] buckyballreaction: good discussions today [3/18/2011 6:55:16 PM] buckyballreaction: later [3/18/2011 7:00:57 PM] Samuel Williams: changing static double const precision = 0.1; // 1.0E-6; [3/18/2011 7:01:18 PM] Samuel Williams: appears to fix all problems, except Downloaded_arena.level.. [3/18/2011 7:01:28 PM] Chris Eykamp: interesting [3/18/2011 7:01:35 PM] Chris Eykamp: even sarcoph... [3/18/2011 7:01:38 PM] Chris Eykamp: ? [3/18/2011 7:01:55 PM] Samuel Williams: Downloaded_arena.level that is a zero size file, there is nothing in it... [3/18/2011 7:02:02 PM] Chris Eykamp: even better [3/18/2011 7:02:17 PM] Samuel Williams: it have problems with duplicate point (0,0) appears 3 times, then crash. [3/18/2011 7:02:29 PM] Chris Eykamp: before triangle? [3/18/2011 7:02:58 PM] Chris Eykamp: recast has a very efficient method for removing dupe points; was planning on using that between clipper and triangle [3/18/2011 7:05:43 PM] Samuel Williams: here is the output of empty level error http://96.2.123.136/bitfighter/empty_error.txt [3/18/2011 7:06:40 PM] Chris Eykamp: well, we can check for empty level [3/18/2011 7:07:33 PM] Samuel Williams: F32 minx = bounds.min.x; F32 miny = bounds.min.y; F32 maxx = bounds.max.x; F32 maxy = bounds.max.y; coords.push_back(minx); coords.push_back(miny); // Point 0 coords.push_back(minx); coords.push_back(maxy); // Point 1 coords.push_back(maxx); coords.push_back(maxy); // Point 2 coords.push_back(maxx); coords.push_back(miny); // Point 3 When min == max will error with duplicate points.. [3/18/2011 7:07:35 PM] Chris Eykamp: if no walls, only one botzone [3/18/2011 7:07:55 PM] Chris Eykamp: when min==max, there is nothing at all in the level [3/18/2011 8:31:32 PM] buckyballreaction: sam, __try __except is windows only [3/18/2011 8:31:42 PM] buckyballreaction: use try{} catch() {} [3/18/2011 8:40:48 PM] buckyballreaction: actually maybe you can't do that in normal c++ [3/18/2011 8:41:01 PM] buckyballreaction: can a sefault be caught? [3/18/2011 8:41:05 PM] buckyballreaction: segfault [3/18/2011 9:18:43 PM] Samuel Williams: use #ifndef win32 or something... try catch may not catch some errors that __except does.. [3/18/2011 9:29:21 PM] Samuel Williams: is this better? #ifdef TNL_OS_WIN32 __try{ #endif makeBotMeshZones3(bounds, game, useRecast); #ifdef TNL_OS_WIN32 }__except(1){ logprintf("Error in makeBotMeshZones3"); } #ifdef TNL_OS_WIN32 [3/18/2011 9:33:35 PM] buckyballreaction: yep [3/18/2011 9:37:26 PM] Samuel Williams: ok, pushed my changes.. [3/18/2011 9:38:25 PM] Samuel Williams: i dont get any "Error in makeBotMeshZones3" an any map anymore as of the lasest changes.. [3/18/2011 9:53:38 PM] buckyballreaction: you mean with the precision [3/18/2011 9:53:41 PM] buckyballreaction: ? [3/18/2011 9:54:13 PM] Samuel Williams: that precision changes to 0.1 fixes problem with duplicate points [3/18/2011 9:54:26 PM] buckyballreaction: did you test 0,01 precision? [3/18/2011 9:54:54 PM] Samuel Williams: not yet.. [3/18/2011 9:55:15 PM] buckyballreaction: i only ask because I favor being as precise as possible... [3/18/2011 9:56:20 PM] Samuel Williams: i am thinking that will generate more triangles when making it more precise... [3/18/2011 9:56:27 PM] buckyballreaction: yes, it will [3/18/2011 9:59:27 PM] Samuel Williams: No errors with precision = 0.001 [3/18/2011 9:59:54 PM] buckyballreaction: good! [3/18/2011 10:08:41 PM] Samuel Williams: i do get errors with precision = 0.001 Warning: A duplicate vertex at (25499576, 25500476) appeared and was ignored. Then error and no bot zone generated. [3/18/2011 10:09:27 PM] Samuel Williams: http://96.2.123.136/bitfighter/zzzz2.level That is the level. [3/18/2011 10:15:13 PM] Samuel Williams: i have to use precision = 1; to pass that (zzzz2) level without errors. [3/18/2011 10:35:46 PM] buckyballreaction: taking a look [3/18/2011 10:36:58 PM] buckyballreaction: WOW [3/18/2011 10:37:03 PM] buckyballreaction: even i segfaulted on that one [3/18/2011 10:37:32 PM] buckyballreaction: oh... [3/18/2011 10:37:39 PM] buckyballreaction: the level is out of bounds [3/18/2011 10:38:00 PM] buckyballreaction: by a ton [3/18/2011 10:38:01 PM] Samuel Williams: Don;t use reCast when it is out of bound.. [3/18/2011 10:38:09 PM] buckyballreaction: ok [3/18/2011 10:38:50 PM] buckyballreaction: yeah, still segfault... [3/18/2011 10:38:51 PM] buckyballreaction: wow [3/18/2011 10:38:58 PM] buckyballreaction: that is waay out there.. [3/18/2011 10:39:26 PM] buckyballreaction: this is one extremely extreme case [3/18/2011 10:40:06 PM] Samuel Williams: yes.. also the game play will make ships get stuck when hitting the wall. [3/18/2011 10:40:33 PM] buckyballreaction: it's going to take me forever to scroll back to origin [3/18/2011 10:40:54 PM] Samuel Williams: do you get "Duplicate Points" warning when segfault? [3/18/2011 10:41:29 PM] buckyballreaction: yep [3/18/2011 10:41:33 PM] buckyballreaction: and crazy high integers [3/18/2011 10:42:25 PM] Samuel Williams: floating point can handle up to 1000000000000000000000000000000000000000000000.. but is only accurate to 7 digits.. [3/18/2011 10:43:36 PM] buckyballreaction: obvoiusly something else in bitfighter can't handle it - because of the stick walls and funny looking explosiongs [3/18/2011 10:44:04 PM] Samuel Williams: will setitng precision = 1 (or 10) fix segfault? [3/18/2011 10:45:17 PM] buckyballreaction: precision =1 works [3/18/2011 10:46:02 PM] Samuel Williams: i tried precision = 0.5, does not work (duplicate points) [3/18/2011 10:46:13 PM] buckyballreaction: yeah, that's ok [3/18/2011 10:46:25 PM] buckyballreaction: i'd say lets set the precision for 0.01 or 0.001 [3/18/2011 10:46:31 PM] buckyballreaction: and call it good [3/18/2011 10:46:42 PM] buckyballreaction: i still need to test sarcophage on lower precision.. [3/18/2011 10:47:56 PM] buckyballreaction: it works! [3/18/2011 10:48:06 PM] buckyballreaction: sarcophage at 0.001 works nicely [3/18/2011 10:48:21 PM] buckyballreaction: and my buffers accurately do the paths [3/18/2011 10:48:27 PM] buckyballreaction: yay [3/18/2011 10:49:16 PM] buckyballreaction: do you mind if i increase the precision to 0.001 and commit? [3/18/2011 10:49:31 PM] Samuel Williams: ok.. [3/18/2011 10:49:41 PM] buckyballreaction: unless you are about to commit [3/18/2011 10:49:43 PM] buckyballreaction: you can [3/18/2011 10:54:08 PM] Samuel Williams: so precision = 0.001 should run ok with 1000*255 (gridsize) based of precision = 1.0 with zzzz2.level [3/18/2011 10:54:38 PM] buckyballreaction: that's plenty [3/18/2011 10:55:00 PM] buckyballreaction: recast only allows 16767 anyways [3/18/2011 10:55:49 PM] buckyballreaction: in all directions from the origin.. [3/18/2011 10:56:13 PM] Samuel Williams: i currently have nothing to commit other then precision=0.001. [3/18/2011 10:56:33 PM] buckyballreaction: me neither, but i'm in the middle of a bunch of changes [3/18/2011 10:57:02 PM] Samuel Williams: i guess i can commit that.. [3/18/2011 10:58:02 PM] Samuel Williams: i wonder what will happen with precision = 10000 ? [3/18/2011 10:58:43 PM] buckyballreaction: haha [3/18/2011 10:58:48 PM] buckyballreaction: i'm curious now, too [3/18/2011 10:59:22 PM] Samuel Williams: no zones generated - precision too big.. [3/18/2011 11:03:39 PM] Samuel Williams: at precision = 10, zones get inaccurate. http://96.2.123.136/bitfighter/zap_d-20110318-2302534.png [3/18/2011 11:04:02 PM] buckyballreaction: awesome [3/18/2011 11:06:35 PM] Samuel Williams: Geo-War works at precision=1 or smaller. [3/18/2011 11:07:32 PM] buckyballreaction: excellent [3/18/2011 11:07:40 PM] buckyballreaction: how fast is geowar for you? [3/18/2011 11:08:37 PM] Samuel Williams: 3.8 seconds (that is without recast) [3/18/2011 11:10:38 PM] buckyballreaction: recast builds 885 zones on geowar for me [3/18/2011 11:10:43 PM] Samuel Williams: With recast it is 1.9 seconds, recast makes thing faster with fewer zones? [3/18/2011 11:10:49 PM] buckyballreaction: yes, i think so [3/18/2011 11:10:59 PM] buckyballreaction: because building the connections is slowish [3/18/2011 11:14:09 PM] Samuel Williams: Most levels is usually have max positions at 10 or -10, but multiply that by grid size (defaults to 255), and most positions on most levels usually be in the range 2550 to -2550 after multiplied by grid size.. [3/18/2011 11:14:25 PM] buckyballreaction: yes [3/18/2011 11:15:58 PM] Samuel Williams: What should precision be 0.01 or 0.001 ? too high have risk of zone not being generated at all, too small have risk of duplicate point size that can crash. [3/18/2011 11:16:38 PM] buckyballreaction: go with 0.001 [3/18/2011 11:17:06 PM] Samuel Williams: ok.. i know all level i have worked with precision = 0.001 [3/18/2011 11:17:27 PM] buckyballreaction: because all floating point numbers i have seen between yours and mine points from clipper show that they match to .001 [3/18/2011 11:21:32 PM] Samuel Williams: ok, i have pushed my changes a few seconds ago.. [3/18/2011 11:21:57 PM] buckyballreaction: thanks! [3/18/2011 11:22:59 PM] Samuel Williams: [Thursday, March 17, 2011 6:49 PM] Samuel Williams: <<< GameType 10 8 Team Blue 0 0 1 Team Red 1 0 0 BarrierMaker 10 1 -0.34853 1 -0.34853 BarrierMaker 50 -1.5 -1 2.5 -1 2.5 2 -1.5 2 -1.5 -1 Spawn -1 0 1zones still dont generate in this very simple level. [3/18/2011 11:23:52 PM] buckyballreaction: i forgot about that.... [3/18/2011 11:24:07 PM] buckyballreaction: and now i'm knee deep in refactoring the geometry methods [3/18/2011 11:31:57 PM] buckyballreaction: are you using the 'X' in triangle? [3/18/2011 11:32:07 PM] buckyballreaction: or does that still crash? [3/18/2011 11:32:25 PM] Samuel Williams: no, the 'X' crashes on 13 levels.. [3/18/2011 11:32:32 PM] Samuel Williams: i could try.. [3/18/2011 11:35:10 PM] buckyballreaction: lets leave the X [3/18/2011 11:35:19 PM] buckyballreaction: the trianlge doc says it isn't recommended anyways [3/18/2011 11:42:34 PM] Samuel Williams: 11 Levels have errors (possible crash?) with 'X' options enabled without 'X' option there is no error generating zones. Wether 'X' is enabled or not, i did get a few 'No output triangles' and 'Too many points!' (recast was enabled) [3/18/2011 11:45:06 PM] Samuel Williams: do I need to use this? #ifdef TNL_OS_WIN32 triangulate((char*)"zpV", &in, &out, NULL); #else triangulate((char*)"zpXV", &in, &out, NULL); #endif [3/18/2011 11:45:28 PM] buckyballreaction: only if you want give us linux users a speed boost :) [3/18/2011 11:45:40 PM] buckyballreaction: but we haven't even tested Mac yet, so i say we leave X out [3/18/2011 11:45:52 PM] buckyballreaction: oh, and I am moving that into another method anyways... [3/18/2011 11:48:07 PM] Samuel Williams: so using 'X' might speed up a little, but might fail and crash. What is the speed difference with and without using 'X' [3/18/2011 11:48:26 PM] buckyballreaction: i think it's like 15% [3/18/2011 11:48:30 PM] buckyballreaction: rough guess [3/18/2011 11:48:33 PM] buckyballreaction: not phenomenal [3/18/2011 11:56:18 PM] buckyballreaction: do we need to clean up anymore memory from Triangle? [3/18/2011 11:56:27 PM] buckyballreaction: there is a TODO that was left there... [3/18/2011 11:59:03 PM] Samuel Williams: TODO: free memory allocated by triangles in out struct I think i may have got that done, (i have not yet removed TODO comment) [3/18/2011 11:59:16 PM] buckyballreaction: ok, i'll remove it [3/18/2011 11:59:44 PM] Samuel Williams: the structs for triangulateio is in triangle.h line 262 [3/19/2011 12:01:16 AM] Samuel Williams: anything with (int *) and (REAL *) in that struct may be freed. [3/19/2011 12:01:25 AM] buckyballreaction: ok [3/19/2011 12:06:24 AM] buckyballreaction: i have a riddle [3/19/2011 12:06:42 AM] buckyballreaction: I am declaring a Vector like this: Vector intPoints(triangleData.pointCount * 2); [3/19/2011 12:06:54 AM] buckyballreaction: triangleData.pointCount = 115 [3/19/2011 12:07:26 AM] buckyballreaction: so that should create a Vector of length 230, right? So why does it say it has length 240? [3/19/2011 12:08:52 AM | Edited 12:14:25 AM] Samuel Williams: mElementCount = 230 (or is it zero?) probably because it like to set mArraySize to 240, so push_back will be faster. [3/19/2011 12:12:42 AM] Samuel Williams: try using intPoints.size() to find out the real size of vector, not the allocated size. [3/19/2011 12:20:20 AM] buckyballreaction: i'm getting a segfault and I don't know why... [3/19/2011 12:20:39 AM] buckyballreaction: with my refactor.. [3/19/2011 12:21:06 AM] Samuel Williams: when does it seg fault? [3/19/2011 12:21:30 AM] buckyballreaction: so i move dthe tranglulate code into GeomUtils [3/19/2011 12:21:45 AM] buckyballreaction: and i created an output structure: struct TriangleData { F32* pointlist; S32 pointCount; S32* trianglelist; S32 triangleCount; }; [3/19/2011 12:22:13 AM] buckyballreaction: but when I run that in recast, I segfault: Program received signal SIGSEGV, Segmentation fault. 0x000000000063c4c3 in rcBuildPolyMesh (nvp=6, verts=0xecdf00, vertCount=115, tris=0xecf5c0, ntris=113, mesh=...) at ../recast/RecastMesh.cpp:495 495 if (indices[t[0]] != indices[t[1]] && indices[t[0]] != indices[t[2]] && indices[t[1]] != indices[t[2]]) // Ensure no dupes [3/19/2011 12:22:22 AM] buckyballreaction: i checked all the data, and it looks good [3/19/2011 12:22:42 AM] buckyballreaction: all the numbers match up [3/19/2011 12:23:05 AM] Samuel Williams: could be something different between C and C++ ? [3/19/2011 12:23:59 AM] buckyballreaction: i just did it without recast and it segfaulted again [3/19/2011 12:24:10 AM] Samuel Williams: did you edit the code to fit on RecastMesh, or is it a straight copy? [3/19/2011 12:24:20 AM] buckyballreaction: no editing of recast [3/19/2011 12:24:34 AM] buckyballreaction: i just copied and pasted all the logic into GeomUtils [3/19/2011 12:24:48 AM] buckyballreaction: and created that TriangleData structure to store it for use later [3/19/2011 12:25:50 AM] Chris Eykamp: [Friday, March 18, 2011 9:55 PM] buckyballreaction: <<< i only ask because I favor being as precise as possible...Note that we'll be rounding to ints before we're done [3/19/2011 12:26:07 AM] buckyballreaction: howdy watusimoto [3/19/2011 12:26:32 AM] Samuel Williams: sometimes segfault / crash is caused by this? indices[t[0]] is pointing to memory address out of range. [3/19/2011 12:26:44 AM] Chris Eykamp: [Friday, March 18, 2011 10:37 PM] buckyballreaction: <<< the level is out of boundswhat does this mean? [3/19/2011 12:27:25 AM] buckyballreaction: it means that it was over in th 25million point range [3/19/2011 12:27:50 AM] buckyballreaction: and recast only allows for -16768 to 16767 [3/19/2011 12:28:35 AM] Samuel Williams: [Friday, March 18, 2011 10:09 PM] Samuel Williams: <<< http://96.2.123.136/bitfighter/zzzz2.level That is the level.that level won't work with recast... [3/19/2011 12:30:15 AM | Edited 12:30:20 AM] Samuel Williams: recast allows -32768 to 32767, that is the S16 limits. [3/19/2011 12:30:25 AM] buckyballreaction: i'm an idiot [3/19/2011 12:30:58 AM] buckyballreaction: i passed the S32* trianglelist into recast AFTER i called trifree on the original data [3/19/2011 12:31:38 AM] buckyballreaction: i'll get used to memory management eventually... [3/19/2011 12:31:50 AM] buckyballreaction: so i solved my segfault sam [3/19/2011 12:31:53 AM] Chris Eykamp: [Saturday, March 19, 2011 12:27 AM] buckyballreaction: <<< and recast only allows for -16768 to 167670 to 64K, actually [3/19/2011 12:32:09 AM] Chris Eykamp: but if the bounds are too big, we return false and no bots [3/19/2011 12:32:19 AM] buckyballreaction: has that actually been implemented? [3/19/2011 12:32:48 AM] Chris Eykamp: no, but it should be. There is a assert that checks, currently, or at least there was [3/19/2011 12:34:34 AM] buckyballreaction: just FYI, i'm in the middle of a pretty big refactor of the geom methods [3/19/2011 12:34:49 AM] buckyballreaction: it'll probably take a couple revisions [3/19/2011 12:35:09 AM] Chris Eykamp: ok, I'll stay away from them [3/19/2011 12:37:29 AM] buckyballreaction: is there a way to copy an array when all you have is the original pointer? [3/19/2011 12:39:27 AM | Edited 12:40:09 AM] Samuel Williams: ini data[100] int *data = new data[100]; memcpy(data, input, 100 * sizeof(int)); Something similar like that will do [3/19/2011 12:39:39 AM] buckyballreaction: argh... [3/19/2011 12:40:11 AM] Chris Eykamp: why do you want to do that? [3/19/2011 12:40:13 AM] buckyballreaction: ok, i'll have to do memory clean up somehow... [3/19/2011 12:40:34 AM] buckyballreaction: i want to clean up all of triangle's memory usage within the method i call it [3/19/2011 12:40:49 AM] buckyballreaction: but it will destroy the output trianglelist before it goes to recast [3/19/2011 12:41:13 AM] buckyballreaction: so i either have to 1. copy the array 2. destroy it later (which I don't want to do) [3/19/2011 12:41:52 AM] buckyballreaction: maybe i'll jus thave to do #2 [3/19/2011 12:42:30 AM] Samuel Williams: copy array may be slower, destroy later might be messier code. [3/19/2011 12:42:36 AM] Chris Eykamp: or... [3/19/2011 12:42:41 AM] Chris Eykamp: #3 [3/19/2011 12:42:47 AM] buckyballreaction: yes, tell me #3 [3/19/2011 12:43:08 AM] Chris Eykamp: look at RecastAlloc's rcScopedDelete [3/19/2011 12:43:17 AM] Chris Eykamp: look at how it's used in recast [3/19/2011 12:43:33 AM] Chris Eykamp: it's an allocated array that cleans itself up when it goes out of scope [3/19/2011 12:44:09 AM] Chris Eykamp: so you can create it, pass it around to sub functions, then it will clean itself up [3/19/2011 12:44:14 AM] buckyballreaction: COOL [3/19/2011 12:44:29 AM] Chris Eykamp: we could move that object into our Bitfighter lib somewhere, and let recast use that one [3/19/2011 12:44:39 AM] Chris Eykamp: yeah, it's cool [3/19/2011 12:44:41 AM] buckyballreaction: that's great! [3/19/2011 12:45:40 AM] buckyballreaction: where would a good place be to put that? [3/19/2011 12:45:48 AM] buckyballreaction: in bitfighter - TNL somewhere? [3/19/2011 12:45:49 AM] Chris Eykamp: I would change the name from rcScopedDelete to... scopedMemBlock??? [3/19/2011 12:45:56 AM] Chris Eykamp: perhaps in TNL [3/19/2011 12:46:24 AM] buckyballreaction: volatileArray? [3/19/2011 12:46:48 AM] Chris Eykamp: mmmm [3/19/2011 12:47:11 AM] Chris Eykamp: maybe create a tnlAlloc.h to house it? [3/19/2011 12:47:21 AM] Chris Eykamp: (with a comment about it's origin, of course) [3/19/2011 12:48:01 AM] buckyballreaction: ok [3/19/2011 12:48:14 AM] Chris Eykamp: scopedAlloc? [3/19/2011 12:48:37 AM] Chris Eykamp: I like the word scope because it suggests that something happens when it goes out of scope [3/19/2011 12:48:44 AM] Chris Eykamp: and that's the key to understanding how it works [3/19/2011 12:48:57 AM] buckyballreaction: scopedDeleteArray [3/19/2011 12:49:22 AM] Chris Eykamp: how about scopedArray? [3/19/2011 12:50:03 AM] Chris Eykamp: it's used thusly: rcScopedDelete firstVert = (int*)rcAlloc(mem amount) [3/19/2011 12:50:12 AM] Chris Eykamp: so it's not even necessarily an array [3/19/2011 12:50:19 AM] buckyballreaction: ah ok [3/19/2011 12:50:36 AM] Chris Eykamp: it's just a chunk of memory that is automatically cleaned up when it falls out of scope [3/19/2011 12:51:28 AM] Chris Eykamp: well, I guess it is kind of an array... [3/19/2011 12:51:28 AM] buckyballreaction: scopedAlloc sounds OK [3/19/2011 12:51:34 AM] Chris Eykamp: rcScopedDelete firstVert = (int*)rcAlloc(number of int elements) [3/19/2011 12:51:55 AM] Chris Eykamp: no, not an array [3/19/2011 12:52:00 AM] Chris Eykamp: I can't tell! [3/19/2011 12:52:28 AM] Samuel Williams: maybe ? [3/19/2011 12:52:47 AM] Chris Eykamp: ? [3/19/2011 12:53:11 AM] Samuel Williams: not sure... [3/19/2011 12:53:59 AM] Samuel Williams: TNL have this in tnlNetBase.h template class RefPtr : public RefObjectRef so you could use this? RefPtr a = something; [3/19/2011 12:55:09 AM] Chris Eykamp: the nice thing about rcScopedDelete is that you can grab the memory you need, and not worry about cleaning it up [3/19/2011 12:55:23 AM] Chris Eykamp: I'm not sure refPtr does that [3/19/2011 12:56:19 AM] Samuel Williams: template class RefPtr : public RefObjectRef class RefObjectRef have something about incRef() and \decRef() [3/19/2011 12:57:09 AM] buckyballreaction: howabout just scopedDelete [3/19/2011 12:57:16 AM] buckyballreaction: make it simple to trace origins [3/19/2011 12:57:39 AM] Chris Eykamp: that's for ref counting so you know when it's safe to delete... does refptr delete when it's done? [3/19/2011 12:58:36 AM] Samuel Williams: when RefPtr deletes, it calls this: ~RefObjectRef() { decRef(); } [3/19/2011 12:59:07 AM] Chris Eykamp: argh... I was looking for that [3/19/2011 12:59:20 AM] buckyballreaction: sooo [3/19/2011 12:59:31 AM] Chris Eykamp: my vote is for scopedAlloc() , 2nd choice scopedDelete() [3/19/2011 12:59:37 AM] buckyballreaction: OK [3/19/2011 12:59:47 AM] Chris Eykamp: it seems to me that allocating is the essence here, not deleting [3/19/2011 1:00:18 AM] Chris Eykamp: refPtr is so you can have a pointer to an pbject, but know when that object has been deleted [3/19/2011 1:00:46 AM] Chris Eykamp: so you don't try to manipulate a deleted object. it's kind of the opposite of scopedXXX [3/19/2011 1:01:57 AM] Samuel Williams: i guess the problem with RefPtr is T requires to be object. [3/19/2011 1:03:06 AM] buckyballreaction: ok, implemented :) [3/19/2011 1:03:10 AM] buckyballreaction: scopedAlloc [3/19/2011 1:03:16 AM] buckyballreaction: now to test... [3/19/2011 1:06:11 AM] buckyballreaction: wait [3/19/2011 1:06:22 AM] buckyballreaction: so rcScopedDelete is always used with rcAlloc [3/19/2011 1:06:34 AM] buckyballreaction: does that mean we have to do the same thing? [3/19/2011 1:07:00 AM] Chris Eykamp: yes, tnlAlloc? [3/19/2011 1:08:50 AM] buckyballreaction: so it would lok like: scopedAlloc indices = (int*)tnlAlloc(sizeof(int)*someCount); [3/19/2011 1:09:03 AM] buckyballreaction: does that look right? [3/19/2011 1:09:51 AM] Chris Eykamp: yes, but there is one more param in there [3/19/2011 1:09:56 AM] Chris Eykamp: a temp/permanent flag [3/19/2011 1:10:11 AM] Chris Eykamp: permanetn does not get cleaned up when it falls out of scope [3/19/2011 1:10:31 AM] buckyballreaction: ah, you think i should implement that, too? (i had removed it hoping not to worry about it...) [3/19/2011 1:11:15 AM] Chris Eykamp: mmmm [3/19/2011 1:11:35 AM] Chris Eykamp: maybe not... i guess you could just do a regular alloc for permeent memory allocation [3/19/2011 1:11:44 AM] Chris Eykamp: I haven't really looked closely enough to know [3/19/2011 1:12:20 AM] buckyballreaction: i only see TEMP always being declared for use, but this is the ultimate function: static void *rcAllocDefault(int size, rcAllocHint) { return malloc(size); } [3/19/2011 1:12:32 AM] buckyballreaction: so it's not even implemented [3/19/2011 1:12:57 AM] Chris Eykamp: ah, rcAlloc yes, you found that [3/19/2011 1:13:18 AM] Chris Eykamp: so rcAlloc is really just malloc [3/19/2011 1:13:30 AM] Chris Eykamp: so maybe we don't need tnlAlloc... use malloc instead [3/19/2011 1:13:43 AM] buckyballreaction: i have no idea how to use that... [3/19/2011 1:13:48 AM] Chris Eykamp: I thin kthe hint is used in the desctuctor [3/19/2011 1:13:54 AM] buckyballreaction: memory stuff is kind of new to me... [3/19/2011 1:14:45 AM] Chris Eykamp: don't get too scared... simply replace rcAlloc(size, hint) with malloc(size) [3/19/2011 1:14:51 AM] buckyballreaction: oh, so just use malloc(size);okey doke [3/19/2011 1:15:00 AM] Chris Eykamp: that's all that's happening, right? [3/19/2011 1:15:40 AM] buckyballreaction: right [3/19/2011 1:15:45 AM] buckyballreaction: just abstracted a bit.. [3/19/2011 1:16:30 AM] Chris Eykamp: probably with the idea they can change the way it works by plugging in a different function [3/19/2011 1:16:42 AM] Chris Eykamp: somehow [3/19/2011 1:21:01 AM] buckyballreaction: ok [3/19/2011 1:21:16 AM] buckyballreaction: now i do this: scopedAlloc copyPointList = (F32*)malloc(sizeof(F32)*out.numberofpoints); [3/19/2011 1:21:35 AM] buckyballreaction: how do i put out.pointlist into copyPointList? [3/19/2011 1:21:38 AM] Chris Eykamp: sam, what was your improved rounding function? [3/19/2011 1:22:05 AM] Chris Eykamp: @bbr -- with a memcpy [3/19/2011 1:22:25 AM] Chris Eykamp: you've got one block of memory, and you want to copy it to another place [3/19/2011 1:22:29 AM] Samuel Williams: floor(number + 0.5) [3/19/2011 1:22:33 AM] Chris Eykamp: thx [3/19/2011 1:25:06 AM] buckyballreaction: thanks [3/19/2011 1:25:38 AM] Chris Eykamp: but... I still am unclear why you need to do the copy [3/19/2011 1:26:09 AM] Chris Eykamp: create the structure at the outermost scope and pass it around [3/19/2011 1:27:32 AM] buckyballreaction: so the method is something like this: tessellate (input, output){ triangulate (in, out) output.trianglelist = out.trianglelist trifree(out.trianglelist) } [3/19/2011 1:27:41 AM] buckyballreaction: the problem is the trifree at the end [3/19/2011 1:29:22 AM] buckyballreaction: output is just: struct TriangleData { F32* pointlist; S32 pointCount; S32* trianglelist; S32 triangleCount; }; [3/19/2011 1:33:42 AM] Chris Eykamp: why do you want to run trifree there if you want to keep out.trianglelist? [3/19/2011 1:33:54 AM] buckyballreaction: yeah, that was my #2 above [3/19/2011 1:33:54 AM] Zoomber: good evening [3/19/2011 1:34:16 AM] buckyballreaction: i'm now thinking of wrapping the pointer in scopedAlloc and not runnign trifree [3/19/2011 1:34:32 AM] Chris Eykamp: that's what I'm suggesting [3/19/2011 1:34:41 AM] buckyballreaction: i'm learning... [3/19/2011 1:34:43 AM] Zoomber: err..good evening [3/19/2011 1:34:59 AM] Zoomber: wait no, that one didnt get sent, sorry. good evening [3/19/2011 1:35:03 AM] Chris Eykamp: trifree is just free(memptr); [3/19/2011 1:35:47 AM] Chris Eykamp: so you might be able to create trilist with scopedAlloc and not free it. as you suggested [3/19/2011 1:36:00 AM] buckyballreaction: yes! [3/19/2011 1:36:16 AM] Chris Eykamp: in fact, we could create them all with scopedAlloc for consistency [3/19/2011 1:36:22 AM] Chris Eykamp: if that in fact works [3/19/2011 1:36:46 AM] Chris Eykamp: (not sure where they are all allocated) [3/19/2011 1:36:54 AM] buckyballreaction: testing now... [3/19/2011 1:38:32 AM] Zoomber: hey guys, im just looking over the afbl rules and seeing if there are any points I can remove because of updates or other reason [3/19/2011 1:38:34 AM] Zoomber: s [3/19/2011 1:39:00 AM] Zoomber: When playing a game, does the bitfighter master server record which server a game was played on? [3/19/2011 1:42:02 AM] Samuel Williams: http://bitfighter.org/gamereports/ almost Every finished game are bring recorded. [3/19/2011 1:42:26 AM] Zoomber: ok good. thanks [3/19/2011 1:43:12 AM] buckyballreaction: rats, segfaults [3/19/2011 1:44:28 AM] buckyballreaction: woud the scopedAlloc die once it was out of the method? [3/19/2011 1:45:49 AM] Samuel Williams: If you want to know the speed difference of triangulate with and without 'X' option. Timings: 281 0 31 828 (clipper) (???) (triangulate) (reCast) The timing of Triangulate is so small (31), the 'X' option doesn't hardly change the overall speed of calculating bot zones, the 'X' option is removed from triangulate due to some error/crash on some level. Also, getRealMilliseconds appears inaccurate, it jumps in multiples of about 16.5 in my computer. [3/19/2011 1:46:17 AM] buckyballreaction: that is funny [3/19/2011 1:46:33 AM] Zoomber: _k, u there? [3/19/2011 1:49:06 AM] buckyballreaction: this fails: scopedAlloc copyPointList(out.pointlist); outputData.pointList = copyPointList; [3/19/2011 1:50:18 AM] Chris Eykamp: You might need some *s [3/19/2011 1:50:21 AM] Chris Eykamp: [Saturday, March 19, 2011 1:21 AM] buckyballreaction: <<< scopedAlloc copyPointList = (F32*)malloc(sizeof(F32)*out.numberofpoints); [3/19/2011 1:50:39 AM] buckyballreaction: output data looks like this: struct TriangleData { scopedAlloc pointList; S32 pointCount; scopedAlloc triangleList; S32 triangleCount; }; [3/19/2011 1:50:46 AM] buckyballreaction: everything compiles fine [3/19/2011 1:51:52 AM] Chris Eykamp: out.pointlist is just a pointer, right? [3/19/2011 1:52:00 AM] buckyballreaction: yep [3/19/2011 1:52:03 AM] Chris Eykamp: in which cas, you're allocing 4 bytes [3/19/2011 1:52:14 AM] Chris Eykamp: i.e. size of the pointer [3/19/2011 1:52:16 AM] Chris Eykamp: ? [3/19/2011 1:52:18 AM] Chris Eykamp: maybe? [3/19/2011 1:52:36 AM] Chris Eykamp: or allocating the address of the pointer [3/19/2011 1:52:40 AM] buckyballreaction: i am using the constructor of the scopedAlloc method [3/19/2011 1:52:52 AM] buckyballreaction: template class scopedAlloc { T* ptr; inline T* operator=(T* p); public: inline scopedAlloc() : ptr(0) {} inline scopedAlloc(T* p) : ptr(p) {} inline ~scopedAlloc() { if(ptr) free(ptr); } inline operator T*() { return ptr; } }; [3/19/2011 1:52:57 AM] Chris Eykamp: yes, but I think your size is wrong [3/19/2011 1:53:28 AM] buckyballreaction: so trying to avoid malloc completely is a bad idea? [3/19/2011 1:53:49 AM] buckyballreaction: i was hoping to just pass the pointer [3/19/2011 1:53:56 AM] Chris Eykamp: well, I'm not sure [3/19/2011 1:54:36 AM] Chris Eykamp: actually, I'm confused too. but I don't think you can avoid the malloc. That's what the function is all about [3/19/2011 1:54:48 AM] Chris Eykamp: scopedAlloc is allocating a chunk of memory [3/19/2011 1:54:54 AM] Chris Eykamp: you need to tell it how much [3/19/2011 1:55:01 AM] Chris Eykamp: a pointer can't do that [3/19/2011 1:55:32 AM] Chris Eykamp: you want to allocate the same amount of memory that the thing the pointer is pointing to was alloced, right? [3/19/2011 1:56:16 AM] buckyballreaction: i guess... [3/19/2011 1:56:43 AM] Chris Eykamp: you might need to feed that number in [3/19/2011 1:56:52 AM] buckyballreaction: i may have incorrectly thought that just using the pointer to pass to the constructor would be enough [3/19/2011 1:57:03 AM] Chris Eykamp: because I don't thinik you can get the size from the pointer [3/19/2011 1:57:08 AM] buckyballreaction: and i wouldn't need to allocate anything [3/19/2011 1:57:11 AM] Chris Eykamp: the pointer is just a memory address [3/19/2011 1:57:42 AM] Chris Eykamp: ah, so you want to make a copy of the pointer so you know where that data is stored in memory [3/19/2011 1:57:58 AM] Chris Eykamp: int *newptr = oldptr; [3/19/2011 1:58:07 AM] buckyballreaction: yes [3/19/2011 1:58:13 AM] Chris Eykamp: there you go! [3/19/2011 1:58:14 AM] buckyballreaction: will 'free' not work on that afterwards? [3/19/2011 1:58:25 AM] Chris Eykamp: you can free newptr or oldptr, but not both [3/19/2011 1:58:38 AM] Chris Eykamp: but now things get dangerous [3/19/2011 1:59:00 AM] Chris Eykamp: because you have two ptrs floating around, and how do you know which one to free? [3/19/2011 1:59:15 AM] Chris Eykamp: once one is freed, the other points to junk [3/19/2011 1:59:38 AM] buckyballreaction: so essentially i should not use scopedAlloc at all here? just keep the pointer and free later? [3/19/2011 2:00:16 AM] Chris Eykamp: I guess so. before you were talking about copying the data [3/19/2011 2:00:28 AM] Chris Eykamp: now you are talking about copying the pointer to the data [3/19/2011 2:00:40 AM] Zoomber: hey guys, is there a way in our forums, to click a word that jumps the scrollbar down the page a bit? [3/19/2011 2:00:49 AM] Zoomber: like, a clickable table of contents [3/19/2011 2:01:04 AM] buckyballreaction: @zoomber, it's called 'page down' [3/19/2011 2:01:11 AM] buckyballreaction: and it's on your keyboard :) [3/19/2011 2:01:28 AM] Zoomber: lolz, theres 10 chapters, and only one page down button :) [3/19/2011 2:01:29 AM] Chris Eykamp: if you are copying the data, you'll need to do the scopedAlloc; if you are copying the pointer, a simple assignment will do [3/19/2011 2:01:34 AM] Chris Eykamp: does this all make sense? [3/19/2011 2:01:40 AM] buckyballreaction: yes it makes sense [3/19/2011 2:02:03 AM] buckyballreaction: if i pass the pointer, does that mean i'll have to explicitly clean it up afterwards? [3/19/2011 2:02:29 AM] buckyballreaction: not take advantage of auto destruction? [3/19/2011 2:04:16 AM] Chris Eykamp: sorry... dozing off [3/19/2011 2:04:39 AM] Chris Eykamp: you can take advantage of the auto destruction [3/19/2011 2:04:46 AM] Chris Eykamp: when you allocate it [3/19/2011 2:05:03 AM] Chris Eykamp: you just need to allocate it in the same scope you'll wnat to use it later [3/19/2011 2:05:10 AM] buckyballreaction: and since i am NOT allocating by passing the pointer... i can't take advantage [3/19/2011 2:05:21 AM] Chris Eykamp: mmmm [3/19/2011 2:05:33 AM] Chris Eykamp: I'm really confused! [3/19/2011 2:05:42 AM] buckyballreaction: yeah this is goofy [3/19/2011 2:09:05 AM] buckyballreaction: ok, i guess it's time to sleep [3/19/2011 2:09:15 AM] Zoomber: um [3/19/2011 2:09:20 AM] Zoomber: ok [3/19/2011 2:09:23 AM] Zoomber: but [3/19/2011 2:10:14 AM] buckyballreaction: hi zoomber, sorry if it seems like I am ignoring you - i am just in a focused learning mindset... [3/19/2011 2:10:28 AM] Zoomber: oh no, that wasnt the problem [3/19/2011 2:10:48 AM] Zoomber: i just digged up an old post of a few people still concerned aout engineer [3/19/2011 2:11:20 AM] Zoomber: and did some looking through myself, and found, we should really add another requirement to forcefield placing [3/19/2011 2:13:59 AM] Zoomber: opening a server that shows basically, what is happening [3/19/2011 2:31:52 AM] Zoomber: oh, found something else too [3/19/2011 2:32:07 AM] Zoomber: in the old zap, while in the editor, the keystroke N gave a Speedzone [3/19/2011 2:32:24 AM] Zoomber: guess this was lost since speedzones werent included in the source code? [3/19/2011 2:33:07 AM] buckyballreaction: please add an issue to google code - i might not remember this [3/19/2011 2:34:01 AM] Samuel Williams: polygon speed zone? [3/19/2011 2:34:17 AM] Zoomber: a gofast [3/19/2011 2:34:26 AM] Zoomber: @raptor: doing that right now [3/19/2011 2:34:36 AM] buckyballreaction: thansk thanks [3/19/2011 2:34:40 AM] Zoomber: wait [3/19/2011 2:34:44 AM] Zoomber: before you go [3/19/2011 2:34:54 AM] Zoomber: the "submit issue" button is unclickable [3/19/2011 2:34:59 AM] Zoomber: is there anything im missing? [3/19/2011 2:35:14 AM] buckyballreaction: use a different browser? [3/19/2011 2:35:15 AM] Chris Eykamp: email the case to me; I'll add it [3/19/2011 2:35:24 AM] Zoomber: well not that, i can click the disgard button [3/19/2011 2:35:27 AM] Samuel Williams: you can always select a goFast, press ctrl+C Then point where you want to paste it, and press ctrl+V [3/19/2011 2:35:28 AM] Chris Eykamp: he may not have permissions? [3/19/2011 2:35:53 AM] buckyballreaction: if he has an account, he can submit 'defect from user' [3/19/2011 2:36:02 AM] buckyballreaction: that's open to anyone [3/19/2011 2:36:05 AM] Zoomber: @sam understood [3/19/2011 2:36:16 AM] Chris Eykamp: @z was that N key from zap or bf? [3/19/2011 2:36:18 AM] Zoomber: under template: right? [3/19/2011 2:36:27 AM] Zoomber: from zap, so i assume it was lost with the other code? [3/19/2011 2:36:47 AM] Chris Eykamp: gofasts were reimplemented by me; no zap code [3/19/2011 2:36:59 AM] Zoomber: right, but they replaced zap's speedzones right? [3/19/2011 2:37:01 AM] Chris Eykamp: so i never added a shortcut to the editor, apparently [3/19/2011 2:37:05 AM] Zoomber: ah, ok [3/19/2011 2:37:14 AM] Chris Eykamp: n appears unused at the moment [3/19/2011 2:37:20 AM] Zoomber: oh, what does it do? [3/19/2011 2:37:30 AM] Chris Eykamp: nothing [3/19/2011 2:37:34 AM] Chris Eykamp: n=nothing [3/19/2011 2:37:49 AM] Zoomber: lol? [3/19/2011 2:37:50 AM] Samuel Williams: N = Nothing, that what it stands for currently.. [3/19/2011 2:38:03 AM] Chris Eykamp: :) [3/19/2011 2:38:48 AM] Zoomber: n places head of speedzone where mouse is [3/19/2011 2:38:54 AM] Zoomber: like this [3/19/2011 2:38:58 AM] *** Zoomber sent n.png *** [3/19/2011 2:40:48 AM] Samuel Williams: you can currently drag that "GoFast" (red square) to put it on a level map. [3/19/2011 8:31:31 AM] karamazovapy: you guys are out of control...! [3/19/2011 10:10:21 AM] buckyballreaction: ugly merge... [3/19/2011 10:10:36 AM] buckyballreaction: almost finished with my refactor attempt #1 [3/19/2011 10:18:30 AM] buckyballreaction: i did it [3/19/2011 10:18:35 AM] buckyballreaction: it's pushed [3/19/2011 10:19:50 AM] karamazovapy: quick - look at the forums before I delete this guy and his posts [3/19/2011 10:19:54 AM] buckyballreaction: ok [3/19/2011 10:20:07 AM] buckyballreaction: oh my goodness [3/19/2011 10:20:27 AM] buckyballreaction: axe him [3/19/2011 10:20:34 AM] karamazovapy: gone [3/19/2011 10:20:56 AM] buckyballreaction: how old was that guy? [3/19/2011 10:21:05 AM] karamazovapy: he started at least one new thread in every forum titled "Introduction" and then just had some weird message like "Hi everyone" in each [3/19/2011 10:21:09 AM] buckyballreaction: most spam bots just register and wait for weeks/months [3/19/2011 10:21:16 AM] karamazovapy: I don't think that was an actual person... [3/19/2011 10:21:22 AM] buckyballreaction: he wastn't [3/19/2011 10:21:27 AM] buckyballreaction: it was too programmatic [3/19/2011 10:21:41 AM] karamazovapy: supposedly, though: [3/19/2011 10:21:53 AM] karamazovapy: Location: Greece Age: 29 Occupation: Education, training Interests: Dining out [3/19/2011 10:22:08 AM] karamazovapy: something in every field is another major red flag [3/19/2011 10:22:40 AM] karamazovapy: wow... he racked up 15 posts [3/19/2011 10:22:43 AM] buckyballreaction: just to make sure i usually run their e-mail through a google search - they usually show up as being related to SPAM [3/19/2011 10:23:11 AM] karamazovapy: well his name was Vigogseffothe [3/19/2011 10:23:37 AM] buckyballreaction: that pretty much obviously generated, too [3/19/2011 10:23:39 AM] karamazovapy: that was a righteous banhammer, by any measure [3/19/2011 10:23:47 AM] buckyballreaction: yep [3/19/2011 10:24:03 AM] karamazovapy: anyway! [3/19/2011 10:24:50 AM] buckyballreaction: i still not sure about this user: laurenonbs [3/19/2011 10:26:45 AM] karamazovapy: I'm guessing spam, but I don't mind waiting [3/19/2011 10:26:57 AM] karamazovapy: xsserver.eu in germany [3/19/2011 10:27:10 AM] karamazovapy: cazok.com e-mail address [3/19/2011 10:27:14 AM] buckyballreaction: yeah same [3/19/2011 10:27:57 AM] karamazovapy: bitfightervideo has gotten some weird friends from around the world...it's totally possible [3/19/2011 10:28:04 AM] buckyballreaction: another indication is when the difference between their registerd date and 'last active' date is 2-4 min. [3/19/2011 10:28:13 AM] karamazovapy: yeah [3/19/2011 10:31:32 AM] karamazovapy: oooh...speaking of which, new bitfightervideo subscriber "nascarrulesdude" [3/19/2011 10:31:34 AM] karamazovapy: hah [3/19/2011 11:29:49 AM] buckyballreaction: ok, all the botzone generation methods return boolean now [3/19/2011 11:30:05 AM] buckyballreaction: i can't seem to figure out how to disable bots though... [3/19/2011 11:31:13 AM] buckyballreaction: i tried setting this flag in game.cpp:825 if the zone build fails: if(!BotNavMeshZone::buildBotMeshZones(this)) getGameType()->mAllowAddBot = false; [3/19/2011 11:31:28 AM] buckyballreaction: doesn't seem to work [3/19/2011 1:52:10 PM | Edited 1:52:29 PM] Samuel Williams: Look at where mAllowAddBot is used: if(!mAllowAddBot && !clientRef->clientConnection->isAdmin()) if you are not admin AND if mAllowAddBot is off, then add bot is not allowed. [3/19/2011 1:53:08 PM] Samuel Williams: hosting from the menu automatically makes you admin.. [3/19/2011 3:41:10 PM] buckyballreaction: is that hte behaviour we want? [3/19/2011 3:42:01 PM] Samuel Williams: not sure.. [3/19/2011 3:43:35 PM] buckyballreaction: maybe we need another flag: mBotZoneCreationFailure [3/19/2011 3:43:40 PM] buckyballreaction: or something like that [3/19/2011 4:13:39 PM] buckyballreaction: huh [3/19/2011 4:14:17 PM] buckyballreaction: i think the robot addition logic might need to be switch around: maybe it should check if zones exist first, then go through the if/else tests [3/19/2011 4:16:33 PM] Samuel Williams: in Triangulate::ProcessComplex, why limit this? outputData.pointCount >= 0xffe [3/19/2011 4:16:53 PM] buckyballreaction: i don't know - it was a test that watusimoto pu thtere [3/19/2011 4:17:04 PM] Samuel Williams: some of the level don't generate at all because of that.. [3/19/2011 4:17:31 PM] buckyballreaction: any common levels? because that was always there... (but in BotNavMeshZone before) [3/19/2011 4:18:02 PM] buckyballreaction: i do now know why it is there [3/19/2011 4:18:21 PM] Samuel Williams: before, it was just a TNLAssert, and i can just let it continue after assert.. [3/19/2011 4:18:50 PM] Samuel Williams: it was in Recast, not moved to Triangulate, i could have ran it without Recast... [3/19/2011 4:18:55 PM] buckyballreaction: wouldn't the assert have killed the game? [3/19/2011 4:19:29 PM] Samuel Williams: it just paused it, goes to debugger, and i can hit run to continue running past assert. [3/19/2011 4:20:26 PM] buckyballreaction: but in normal play it kills the game right? [3/19/2011 4:21:32 PM] Samuel Williams: TNLAssert will pause when in debug mode, non_debug mode will ignore tnlAssert [3/19/2011 4:21:45 PM] buckyballreaction: ahhh... [3/19/2011 4:23:02 PM] buckyballreaction: i misunderstood how TNLAssert works [3/19/2011 4:23:52 PM] buckyballreaction: please fix it [3/19/2011 4:43:22 PM] Samuel Williams: got it done, i have pushed my changes that fix windows compiling errors.. [3/19/2011 4:58:11 PM] buckyballreaction: excellent [3/19/2011 5:12:28 PM] buckyballreaction: why did you need to add PI to poly2tri? [3/19/2011 5:13:53 PM | Edited 5:14:04 PM] Samuel Williams: it is missing undefined, i need to add it to compile successfully. [3/19/2011 5:14:01 PM] buckyballreaction: interesting [3/19/2011 5:14:05 PM] buckyballreaction: ok [3/19/2011 5:14:25 PM] buckyballreaction: also, why is: [3/19/2011 5:14:28 PM] buckyballreaction: bool recastPassed = false; [3/19/2011 5:14:30 PM] buckyballreaction: needed? [3/19/2011 5:14:52 PM] buckyballreaction: is that a fallback? [3/19/2011 5:15:03 PM] Samuel Williams: when recast fails, don't leave with no bot zones, yes as a fallback. [3/19/2011 5:15:08 PM] buckyballreaction: ahh [3/19/2011 5:15:10 PM] buckyballreaction: good idea [3/19/2011 5:15:21 PM] buckyballreaction: so ProcessComplex must pass still [3/19/2011 8:59:31 PM] buckyballreaction: sam, your latest change to poly2tri fails compiling on linux [3/19/2011 9:00:03 PM] buckyballreaction: cleaning again to make sure... [3/19/2011 9:03:45 PM] buckyballreaction: M_PI should be declared in math.h of the stl [3/19/2011 9:03:58 PM] buckyballreaction: adding it in conflicts with compile [3/19/2011 9:04:13 PM] buckyballreaction: is M_PI not included in your implementation? [3/19/2011 9:05:18 PM] Samuel Williams: M_PI doesn't appear to be in windows math.h [3/19/2011 9:05:25 PM] buckyballreaction: what [3/19/2011 9:05:30 PM] buckyballreaction: that is weird [3/19/2011 9:06:53 PM] buckyballreaction: i can fix that... [3/19/2011 9:08:00 PM] Samuel Williams: ok, i found M_PI, but requires: #define _USE_MATH_DEFINES #include [3/19/2011 9:08:19 PM] buckyballreaction: or just: #ifndef M_PI #define M_PI 3.14159265358979323846 #endif [3/19/2011 9:09:23 PM] buckyballreaction: Also M_PI_2 [3/19/2011 9:09:27 PM] buckyballreaction: is 1/2 PI [3/19/2011 9:10:06 PM] Samuel Williams: ok, i may have got M_PI_2 wrong.. [3/19/2011 9:12:25 PM] Samuel Williams: PI_3div4 = PI * 3 / 4 M_PI_2 = PI / 2 i was thinking of (pi * 2) That is where i thought to multiply, and not divide. [3/19/2011 9:13:02 PM] buckyballreaction: i can make the quick change and commit after i do one more compile test [3/19/2011 9:17:09 PM] buckyballreaction: ok pushed [3/19/2011 9:20:26 PM] Samuel Williams: it does conpile ok for me. [3/19/2011 9:20:32 PM] buckyballreaction: yay [3/19/2011 9:21:01 PM] Samuel Williams: I have just pushed my changes, for trying to get polygon barriers to work with bot zone generating. [3/19/2011 9:22:13 PM] buckyballreaction: excellent [3/19/2011 9:23:27 PM] buckyballreaction: what does flag TNL_ENABLE_LOGGING do again? [3/19/2011 9:24:41 PM] buckyballreaction: and is it used for your release builds (as opposed to debug) [3/19/2011 9:24:42 PM] buckyballreaction: ? [3/19/2011 9:24:59 PM] Samuel Williams: where is TNL_ENABLE_LOGGING ? [3/19/2011 9:25:17 PM] buckyballreaction: it's a flag that is added in the linux Makefile [3/19/2011 9:25:24 PM] buckyballreaction: i don't know why [3/19/2011 9:25:26 PM] buckyballreaction: it was always there [3/19/2011 9:26:38 PM | Edited 9:27:01 PM] Samuel Williams: found it, is in tnl/log.cpp i guess it writes to log files "Bitfighter.log" and "bitfighter_server.log" [3/19/2011 9:27:13 PM] buckyballreaction: ah, i better leave it, then [3/19/2011 9:28:34 PM] Samuel Williams: GameType 10 8 Team Blue 0 0 1 BarrierMakerS 0 0 0 -2 0 -2 -4 BarrierMakerS 0 1 -2 2 0 0 0 Spawn 0 0 -3 Have errors trying to triangulate A duplicate vertex at (0, 0) appeared and was ignored. [3/19/2011 9:29:07 PM] buckyballreaction: i need to write a new buffer barrierForBotZone [3/19/2011 9:29:18 PM] buckyballreaction: for those type barriers [3/19/2011 9:30:01 PM] Samuel Williams: currently, i blindly just copy all the points to mBotZoneBufferGeometry [3/19/2011 9:30:53 PM] Samuel Williams: maybe clipper thinks it is 2 seperate polygons, doesn't merge, and doesn't find duplicate points. [3/19/2011 9:35:12 PM] buckyballreaction: are you actually adding the points as a TPolygon and then feeding it to clipper? [3/19/2011 9:36:33 PM] Samuel Williams: All i am doing is changing the initalizing of barriers, if(mSolid) mBotZoneBufferGeometry = mPoints; [3/19/2011 9:36:55 PM] buckyballreaction: i think that they aren't being fed into clipper at all.. [3/19/2011 9:39:19 PM] Samuel Williams: Clipper appears to work, this is 2 seperate triangles overlapping http://96.2.123.136/bitfighter/zap_d-20110319-2138146.png [3/19/2011 9:40:29 PM] buckyballreaction: ok, i may have read the code wrong... [3/19/2011 9:41:46 PM] Samuel Williams: doesn't work with this: http://96.2.123.136/bitfighter/zap_d-20110319-2139524.png A duplicate vertex at (-254.99899292, 0) appeared and was ignored. So why does triangulate crash, instead of just ignoring? [3/19/2011 9:42:21 PM] buckyballreaction: i believe it's because triangle isn't a very robust library [3/19/2011 9:42:30 PM] buckyballreaction: that's why we started looking into poly2tri instead.. [3/19/2011 9:42:50 PM] Samuel Williams: triangulate always error/crash when there is duplicate points.. [3/19/2011 9:43:22 PM] buckyballreaction: yeah, it is supposed to never crash - the doc says it should just throw the warning and continue [3/19/2011 9:43:36 PM] buckyballreaction: but it's been my experience that it likes to crash a lot [3/19/2011 9:45:01 PM] Samuel Williams: docs for triangulate may be outdated or wrong, that my guess.. [3/19/2011 9:45:09 PM] buckyballreaction: me too [3/19/2011 10:27:59 PM] buckyballreaction: how can i get the current bot count in-game? is that stored somewhere? [3/19/2011 10:29:32 PM] buckyballreaction: do i have to do a database lookup? [3/19/2011 10:30:32 PM] Samuel Williams: getRobotCount() or Robot::robots.size() [3/19/2011 10:56:33 PM] buckyballreaction: too simple.. [3/19/2011 11:02:05 PM] buckyballreaction: ok, bots are now disabled if zones fail to create [3/19/2011 11:02:52 PM] buckyballreaction: sam, are you working on something right now? [3/19/2011 11:04:28 PM] Samuel Williams: I have just written a fast duplicate point removal that uses Vector.sort() [3/19/2011 11:04:40 PM] buckyballreaction: oh cool [3/19/2011 11:06:24 PM] buckyballreaction: i just ran that double triangle level that you say failed [3/19/2011 11:06:43 PM] buckyballreaction: and triangle did say there was a duplicate vertex, but it didn't crash [3/19/2011 11:06:50 PM] buckyballreaction: and zones created just fine [3/19/2011 11:07:16 PM] Samuel Williams: did you change anything in the code to make it not fail? [3/19/2011 11:07:20 PM] buckyballreaction: nope [3/19/2011 11:07:34 PM] buckyballreaction: this is why i think the triangle code is flaky [3/19/2011 11:09:23 PM] Samuel Williams: Just throw in a bunch of duplicate points into triangulate, it should crash one way or the others.. Want me to push by duplicate point removal code? [3/19/2011 11:09:45 PM] buckyballreaction: have you tested it on the zonetestsuite? [3/19/2011 11:10:10 PM] buckyballreaction: http://96.2.123.136/upload/zonetestsuite.level [3/19/2011 11:11:46 PM] Samuel Williams: it works on that test level. [3/19/2011 11:12:03 PM] buckyballreaction: oh good [3/19/2011 11:12:16 PM] buckyballreaction: say - did you do adjustments to work with zero-length barriers? [3/19/2011 11:13:13 PM] Samuel Williams: i might have, as in a process of not letting it generate holes outside the polygon, but have not tested [3/19/2011 11:13:42 PM] buckyballreaction: what was that big level with tons of zero-lengthed barriers called again? [3/19/2011 11:13:48 PM] buckyballreaction: it has a ring of turrets in the middle [3/19/2011 11:14:53 PM] Samuel Williams: ok, zero length barrier now seems to get ignored. http://96.2.123.136/bitfighter/zap_d-20110319-2314087.png [3/19/2011 11:15:20 PM] buckyballreaction: i should add that to the test suite [3/19/2011 11:15:29 PM] Samuel Williams: before my changes for holes calculating, it will just be no zones. [3/19/2011 11:18:44 PM] Samuel Williams: Racket ? [3/19/2011 11:18:50 PM] buckyballreaction: probably [3/19/2011 11:20:48 PM] Samuel Williams: http://96.2.123.136/bitfighter/zap_d-20110319-2319208.png tiny barrier get ignored.. [3/19/2011 11:21:08 PM] Samuel Williams: all zones get genenerated ok. [3/19/2011 11:21:12 PM] buckyballreaction: ok [3/19/2011 11:21:20 PM] buckyballreaction: i'll work on getting the tiny barriers to have buffers [3/19/2011 11:23:36 PM] buckyballreaction: found another bug [3/19/2011 11:23:48 PM] buckyballreaction: wormholes don't have proper zone connections [3/19/2011 11:23:55 PM] buckyballreaction: so bots don't work on racket [3/19/2011 11:24:04 PM] buckyballreaction: but i'm gonna work on the buffers for now.. [3/19/2011 11:25:43 PM | Edited 11:25:56 PM] Samuel Williams: ok, i have just pushed (mine) on top of your pushes 60 seconds ago [3/19/2011 11:28:25 PM] buckyballreaction: i didn't know qsort was part of stl [3/19/2011 11:29:13 PM] Samuel Williams: I am using Vector, not vector. [3/19/2011 11:29:24 PM] buckyballreaction: for erase_fast? [3/19/2011 11:29:38 PM] Samuel Williams: yes, that is one part [3/19/2011 11:57:47 PM] buckyballreaction: zero-length barriers are buffered now [3/20/2011 12:00:02 AM] buckyballreaction: waht are you working on now (so i don't collide with your work) [3/20/2011 12:00:05 AM] buckyballreaction: ? [3/20/2011 12:00:34 AM] Samuel Williams: makeBotMeshZones3 - trying to adjust the holes to work with polygon barriers. [3/20/2011 12:01:53 AM] buckyballreaction: you mean add the buffers to poly barriers? [3/20/2011 12:03:36 AM] Samuel Williams: there is a problem where non-convec shaped polygon walls puts the center as a hole - outside the polygon, which can make every zone disappear, except a few inside polygon. [3/20/2011 12:04:10 AM] buckyballreaction: yes, the centroid calculation would be bad on those [3/20/2011 12:04:18 AM] buckyballreaction: so you are not working on the buffers? [3/20/2011 12:04:32 AM] buckyballreaction: because if not, i can work on those... [3/20/2011 12:05:34 AM] Samuel Williams: i currently trying to fix holes.push_back, i have not worked on buffering the polygon walls (i only made it so it copies points) [3/20/2011 12:06:17 AM] buckyballreaction: ok, i'll work on buffering them [3/20/2011 12:39:10 AM] Chris Eykamp: bbr does not like Triangle [3/20/2011 12:45:45 AM] buckyballreaction: good evening [3/20/2011 12:45:54 AM] buckyballreaction: i think it's almost great [3/20/2011 12:46:29 AM] Chris Eykamp: hi [3/20/2011 12:46:33 AM] Chris Eykamp: I am so exhausted [3/20/2011 12:46:46 AM] buckyballreaction: find info on old jobs wearing you out? :) [3/20/2011 12:47:08 AM] Chris Eykamp: I've been running around all day, digging up sod, building a fence, trying to find skis for my kids [3/20/2011 12:47:23 AM] buckyballreaction: Oooo a real work saturday [3/20/2011 12:47:30 AM] Chris Eykamp: I have a huge pile of paper for that project [3/20/2011 12:47:32 AM] Chris Eykamp: will scan it all and try to overwhelm them [3/20/2011 12:54:17 AM] buckyballreaction: argh linker errors [3/20/2011 1:02:05 AM] buckyballreaction: i'm working buffering the polygon barriers [3/20/2011 1:12:42 AM] buckyballreaction: @sam, have you figured out how to get an arbitrary point on the inside of a concave polygon with external centroid? [3/20/2011 1:15:51 AM] Chris Eykamp: triangulate the polygon, pick centroid of one of the triangles [3/20/2011 1:16:17 AM] Chris Eykamp: really, can stop trianglyation early [3/20/2011 1:17:13 AM] buckyballreaction: some progress on my end: http://96.2.123.136/upload/1snapshot22.png [3/20/2011 1:17:44 AM] Samuel Williams: I have just got the bot zones to work with polygon walls http://96.2.123.136/bitfighter/zap_d-20110320-0113185.png I have pushed my changes. [3/20/2011 1:18:02 AM] buckyballreaction: oooo [3/20/2011 1:18:09 AM] buckyballreaction: now let me try with buffers... [3/20/2011 1:18:48 AM] buckyballreaction: sam, did you mean to increase the precision in clipper? [3/20/2011 1:19:15 AM] Samuel Williams: well, with the duplicate points being handles, we can increase precision. [3/20/2011 1:19:39 AM] buckyballreaction: ok, let me test that on sarcophage.. [3/20/2011 1:22:43 AM] buckyballreaction: increased precision breaks levels for me [3/20/2011 1:23:04 AM] Samuel Williams: does it not generate any points? [3/20/2011 1:23:21 AM] buckyballreaction: it breaks before triangle [3/20/2011 1:23:39 AM] buckyballreaction: clipper fails on sarcophage if the precision is greater than 0.001 [3/20/2011 1:24:03 AM] Chris Eykamp: precision is not needed, as all points are rounded to ints before the end of the chain [3/20/2011 1:25:20 AM] buckyballreaction: sam, what level is that with the poly walls? [3/20/2011 1:25:28 AM] buckyballreaction: oh [3/20/2011 1:25:29 AM] buckyballreaction: sorry [3/20/2011 1:25:32 AM] buckyballreaction: i have to read.. [3/20/2011 1:26:07 AM] buckyballreaction: is there a way to take a screenshot in-game? [3/20/2011 1:26:21 AM] Chris Eykamp: ctrl-Q, I think [3/20/2011 1:26:56 AM] Chris Eykamp: people begged for that feature... then never used it [3/20/2011 1:27:04 AM] buckyballreaction: man, that is so much easier - this whole time i've been doing a desktop screenshot then cropping with gimp [3/20/2011 1:27:59 AM] Samuel Williams: in-game screenshot might be BMP format, which is big filesize.. [3/20/2011 1:28:43 AM] Chris Eykamp: first pass was with targa... same big size, more obscure format. [3/20/2011 1:29:39 AM] Samuel Williams: PNG, JPG, and GIF are the three most common formats in the internet pictires.. [3/20/2011 1:29:54 AM] Chris Eykamp: PNG would be best here [3/20/2011 1:29:58 AM] buckyballreaction: png! [3/20/2011 1:29:59 AM] Chris Eykamp: no patent issues [3/20/2011 1:30:24 AM] Chris Eykamp: just not worth the time in my opinion [3/20/2011 1:30:37 AM] Samuel Williams: PNG have big compression for solid colors.. GIF limited to 256 colors, JPG compress extremely well, with loss of quality. [3/20/2011 1:31:19 AM] Chris Eykamp: maybe we could bundle imageMagick with bitfighter [3/20/2011 1:31:25 AM] Samuel Williams: PNG don't lose any quality. [3/20/2011 1:31:40 AM] buckyballreaction: interesting - imagemagick can't convert the BMPs [3/20/2011 1:31:47 AM] Chris Eykamp: really? [3/20/2011 1:32:31 AM] buckyballreaction: yeah: > convert screenshot_0.bmp screenshot_0.png convert: insufficient image data in file `screenshot_0.bmp' @ error/bmp.c/ReadBMPImage/903. convert: missing an image filename `screenshot_0.png' @ error/convert.c/ConvertImageCommand/2970. [3/20/2011 1:32:42 AM] buckyballreaction: haha [3/20/2011 1:32:54 AM] buckyballreaction: and i though imagemagick was the most robust [3/20/2011 1:34:58 AM] buckyballreaction: alsmot: http://96.2.123.136/upload/1snapshot23.png [3/20/2011 1:36:50 AM] buckyballreaction: it's like a hole isn't set right... [3/20/2011 1:38:01 AM] Chris Eykamp: Who can tell me what this block does? [3/20/2011 1:38:03 AM] Chris Eykamp: for(S32 k = 0; k < barrier->mBotZoneBufferGeometry.size(); k++) { point1 = point2; point2 = point3; point3 = barrier->mBotZoneBufferGeometry[k]; ctr = (point1 + point2 + point3) * 0.33333333f; if(PolygonContains2(barrier->mBotZoneBufferGeometry.address(), barrier->mBotZoneBufferGeometry.size(), ctr + Point(1.3,1.7)) && PolygonContains2(barrier->mBotZoneBufferGeometry.address(), barrier->mBotZoneBufferGeometry.size(), ctr - Point(1.3,1.7))) { holes.push_back(ctr.x); holes.push_back(ctr.y); break; } } [3/20/2011 1:38:13 AM] buckyballreaction: sam just barely wrote that [3/20/2011 1:38:48 AM] buckyballreaction: i think it is the way pick a point inside the wall if the centroid exists outside [3/20/2011 1:39:01 AM] buckyballreaction: what i was asking him if he solved, earlier [3/20/2011 1:39:06 AM] Chris Eykamp: ah, i see [3/20/2011 1:40:04 AM | Edited 1:40:57 AM] Samuel Williams: With (barrier wall) buffering, we know all the points will be inside the buffered outline.. you can just make the first point of mPoints as a hole. [3/20/2011 1:40:58 AM] buckyballreaction: @sam, i think it doesn't quite work - did you see my latest snapshot? [3/20/2011 1:41:26 AM] Samuel Williams: yes. [3/20/2011 1:41:30 AM] Zoomber: so [3/20/2011 1:42:14 AM] Zoomber: hello [3/20/2011 1:42:21 AM] buckyballreaction: hi [3/20/2011 1:42:22 AM] Zoomber: i see someone is stay away im editing [3/20/2011 1:42:29 AM] buckyballreaction: :) [3/20/2011 1:42:31 AM] Zoomber: what a friendly welcome :) [3/20/2011 1:42:56 AM] buckyballreaction: it's because in one day i had four people join my test server, and i had to keep kicking them [3/20/2011 1:43:03 AM] buckyballreaction: was feeling bad [3/20/2011 1:43:09 AM] buckyballreaction: because they wanted to play [3/20/2011 1:43:10 AM] Zoomber: yeah, that can be hard [3/20/2011 1:43:25 AM] Zoomber: i feel ya [3/20/2011 1:44:57 AM] Zoomber: wow, it feels great to have just written segments of a long paragraph and be able to look at all of it. [3/20/2011 1:45:02 AM] Chris Eykamp: Each polygon object is triangluated when it is created. I'm going to rewrite the finding of interior point to use centroid of one of these interior tirnalges [3/20/2011 1:45:15 AM] Chris Eykamp: that will be 100% right, and will be very fast [3/20/2011 1:45:22 AM] Zoomber: cool [3/20/2011 1:46:09 AM] Zoomber: by the way watusimoto, have you checked out the AFBL thread yet? We are going to possibly try and reinstate it [3/20/2011 1:46:23 AM] Chris Eykamp: great [3/20/2011 1:46:29 AM] Chris Eykamp: haven't read the thread today [3/20/2011 1:46:52 AM] Zoomber: I'm sure the players will enjoy it if we get it up and running again [3/20/2011 1:48:25 AM] Samuel Williams: I have just pushed, to fix more of the duplicate point removal when it does find duplicate points.. [3/20/2011 1:52:18 AM] Samuel Williams: as for holes problem will this work? (remove For() {}) then add: holes.push_back(barrier->mPoints[0].x); holes.push_back(barrier->mPoints[0].y); [3/20/2011 1:53:17 AM] Chris Eykamp: that will return an edge point, no? [3/20/2011 1:55:35 AM] buckyballreaction: i think i just performed an operation that would have fried the first pentiums [3/20/2011 1:55:46 AM] buckyballreaction: and created a black hole [3/20/2011 2:00:32 AM] Samuel Williams: http://96.2.123.136/bitfighter/110319.GIF There is a difference between mPoints, and mBotZoneBufferGeometry. Inputting the BufferGeometry, and using mPoints as holes, should work. [3/20/2011 2:01:02 AM] buckyballreaction: ahh.. [3/20/2011 2:01:02 AM] buckyballreaction: smart [3/20/2011 2:02:15 AM] Chris Eykamp: I really hate all those corner triangles [3/20/2011 2:02:43 AM] Chris Eykamp: I wish we could somehow merge them, even if they are not quite convex [3/20/2011 2:02:47 AM] buckyballreaction: i just found out how to reduce those... [3/20/2011 2:03:11 AM] buckyballreaction: FYI, i am using part of the clipper library that generates an offset [3/20/2011 2:03:19 AM] buckyballreaction: was pretty easy [3/20/2011 2:03:34 AM] buckyballreaction: although it generates curves around the corners [3/20/2011 2:06:15 AM] Chris Eykamp: looks pretty [3/20/2011 2:06:49 AM] Chris Eykamp: is there a good example level that has polywalls that are posing a problem on the interior point detection front? [3/20/2011 2:07:20 AM] buckyballreaction: Triple point stars is what we've been using [3/20/2011 2:07:29 AM] buckyballreaction: lots of concave polys [3/20/2011 2:07:40 AM] Chris Eykamp: is that on sam's server? [3/20/2011 2:07:44 AM] buckyballreaction: y [3/20/2011 2:09:46 AM] Samuel Williams: Triple Point Stars Zig Zag Rotating Speed Poninter Mine Field Those are my maps that use Polygon Walls. [3/20/2011 2:10:09 AM] buckyballreaction: oh my goodness it's late - i have to go, must get up early [3/20/2011 2:10:16 AM] buckyballreaction: good night [3/20/2011 2:10:38 AM] Chris Eykamp: good night [3/20/2011 2:22:17 AM] Chris Eykamp: just pushed my interior point detction simplification [3/20/2011 2:23:00 AM] Chris Eykamp: without buffering triple Point Stars makes very attractive looking zones [3/20/2011 2:41:07 AM | Edited 2:41:27 AM] Samuel Williams: OK, my fix for change back precision = 0.001, Fix Duplicate Point Removal. May have broke Duplicate (Points) Detection, but now i have pushed my fix, my duplicate point detection should now fully work. [3/20/2011 2:43:08 AM] Chris Eykamp: good [3/20/2011 2:43:32 AM] Chris Eykamp: Do you know if recastPassed is ever gets set to false? [3/20/2011 2:45:19 AM] Samuel Williams: recastPassed starts as false.. if useRecast is enabled and level is small enough, it can be true. [3/20/2011 2:46:53 AM] Samuel Williams: see this line? bool recastPassed = false; [3/20/2011 2:46:54 AM] Chris Eykamp: do we have any levels where mergeTriangles fails? [3/20/2011 2:46:58 AM] Chris Eykamp: yes [3/20/2011 2:48:08 AM] Samuel Williams: I don't think there is any levels that Merging triangles fails... But it won't work for big huge levels (Points overflows U16) [3/20/2011 2:48:51 AM] Chris Eykamp: if the level is that big... well, bots will probably not work well anyway [3/20/2011 2:49:22 AM] Chris Eykamp: there is a case in to impose a limt on the size of levels in the editor [3/20/2011 2:49:36 AM] Chris Eykamp: though people can always edit the level by hand [3/20/2011 2:51:10 AM | Edited 2:51:17 AM] Samuel Williams: [Friday, March 18, 2011 10:09 PM] Samuel Williams: <<< http://96.2.123.136/bitfighter/zzzz2.level That is the level.That is the level where the editor and in-game goes goffy (level is extremely away from center) [3/20/2011 2:55:46 AM] Chris Eykamp: weird [3/20/2011 2:56:04 AM] Chris Eykamp: the level should work; both in editor and in zone generation [3/20/2011 2:56:22 AM] Chris Eykamp: but maybe we're at the point where floats start to break down [3/20/2011 2:56:58 AM] Chris Eykamp: but this is also a completely contrived level [3/20/2011 2:57:43 AM] Samuel Williams: 32 float is accurate to about 7 digits, so 1.234567 or 1234567000000000 is about the most accurate as it can get for 32 bit floats. [3/20/2011 2:59:35 AM] Chris Eykamp: I have no problem not supporting such levels; in fact I think it would be reasonable to impose limits at load time to avoid weirdness [3/20/2011 2:59:49 AM] Chris Eykamp: both in the editor and in game [3/20/2011 3:07:30 AM] Samuel Williams: trying to find hole for 4 point polygon, and 2 of the point at the exact same point positions, cause mRenderFillGeometry to be empty, which crash the game when trying to use holes.. [3/20/2011 3:07:55 AM] Samuel Williams: BotNavMeshZone.cpp line 934.. [3/20/2011 3:08:29 AM] Samuel Williams: Might be better to have: if(barrier->mSolid && barrier->mRenderFillGeometry.size >= 3) [3/20/2011 3:08:50 AM] Chris Eykamp: what is the point order? aabc? [3/20/2011 3:08:55 AM] Chris Eykamp: or abac? [3/20/2011 3:09:07 AM] Samuel Williams: aabc. [3/20/2011 3:09:26 AM] Chris Eykamp: we should be detecting that when the zone is read in [3/20/2011 3:09:31 AM] Chris Eykamp: sorry, wall [3/20/2011 3:09:36 AM] Chris Eykamp: I thought we were already doing that [3/20/2011 3:09:37 AM] Samuel Williams: abac also crashes.. [3/20/2011 3:09:48 AM] Chris Eykamp: both are invalid [3/20/2011 3:10:21 AM] Samuel Williams: it can crash when mRenderFillGeometry is empty.. [3/20/2011 3:10:32 AM] Samuel Williams: ( no fills of the wall [3/20/2011 3:10:48 AM] Chris Eykamp: so if mRFG is empty, then we should just ignore the wall for the purposes of zone generation? [3/20/2011 3:11:03 AM] Chris Eykamp: or... if mRFG is empty, maybe we should just delete the wall at create time [3/20/2011 3:11:14 AM] Chris Eykamp: I think that might be the way to handle it [3/20/2011 3:11:23 AM] Chris Eykamp: because it won't render properly, either [3/20/2011 3:13:20 AM | Edited 3:13:53 AM] Samuel Williams: There is also other ways that can produce invalid polygon fills, without duplicate points... http://96.2.123.136/bitfighter/zap_d-20110320-0311568.png [3/20/2011 3:13:40 AM] Samuel Williams: then, it creates only one bot zone (in green) [3/20/2011 3:14:31 AM] Chris Eykamp: a bowtie zone [3/20/2011 3:14:42 AM] Chris Eykamp: sorry, bowtie wall [3/20/2011 3:16:03 AM] Chris Eykamp: but at least it doesn't crash [3/20/2011 3:16:34 AM] Chris Eykamp: I'm going to add an empty mRFG detection and just reject those polys at load time, so we don't need to worry about crashes in zone generation [3/20/2011 3:17:47 AM] Samuel Williams: Or you can just add a check during adding of holes.. if(mSolid) { if(barrier->mRenderFillGeometry.size >= 3) ... } ... [3/20/2011 3:20:42 AM] Chris Eykamp: I don't like that because then we still have a polluted wall floating around [3/20/2011 3:21:04 AM] Chris Eykamp: will it impdede ships? will it cause rendering problems? it's behavior is ill defined [3/20/2011 3:21:45 AM] Chris Eykamp: adding the check in zone generation only addresses one aspect of the potential problems [3/20/2011 3:27:55 AM] Samuel Williams: ok, you can have it reject the empty fill polygon, as it is possible to have non polygon zero width size that can function the same as polygon arranged as abac.. [3/20/2011 3:29:07 AM] Chris Eykamp: I think a polywall needs to have volume to be valid [3/20/2011 3:29:20 AM] Chris Eykamp: otherwise it is not a polygon [3/20/2011 3:32:24 AM | Edited 3:33:53 AM] Samuel Williams: 1-width barrier can not see the fill because of line width, it would cost extra rendering time then 0-width barrier zero-width barrier does not do fill, and only draws ONE lines, that speed up rendering.. [3/20/2011 3:33:11 AM] Samuel Williams: it also works with bot zones, with the added width buffering.. [3/20/2011 3:34:02 AM] Chris Eykamp: those are lines; I wuold argue that 0 width lines should be treated as an error as well, but as long as it causes no problems, I'm less concerned [3/20/2011 3:34:57 AM] Chris Eykamp: I have very strong feelings about geometry in this regard; that's what I do for a living [3/20/2011 3:36:14 AM | Edited 3:36:31 AM] Samuel Williams: so a barrier should only go invalid when 1. mSolid = true & mRenderFillGeometry.size == 0 2. have fewer then 3 points (mSolid == true) [3/20/2011 3:36:52 AM] Samuel Williams: 3. have fewer then 2 points (mSolid == false) [3/20/2011 3:38:33 AM] Chris Eykamp: there may be other conditions, but those are all invalid [3/20/2011 3:38:48 AM] Chris Eykamp: though I think 2 is a subcase of 1 [3/20/2011 3:39:31 AM | Edited 3:39:41 AM] Samuel Williams: ok, 1 will cover 2 (can't fill with only 2 point polygon) [3/20/2011 3:39:47 AM] Chris Eykamp: we already check for 3 [3/20/2011 3:39:52 AM] Chris Eykamp: I've added a check for 2 [3/20/2011 3:45:05 AM] Chris Eykamp: I've also added support for using PolyWall instead of BarrierMakerS in level files [3/20/2011 3:45:45 AM] Chris Eykamp: PolyWall will not have the width param [3/20/2011 3:46:03 AM] Chris Eykamp: but BarrierMakerS will continue to work as-is [3/20/2011 3:46:13 AM] Samuel Williams: maybe support for both BarrierMakerS and PolyWall, and save only as PolyWall ? [3/20/2011 3:46:18 AM] Chris Eykamp: exactly! [3/20/2011 3:46:36 AM] Chris Eykamp: we do that with a couple of other things [3/20/2011 3:47:02 AM] Chris Eykamp: even original Zap! levels should work in Bitfighter [3/20/2011 3:47:23 AM] Chris Eykamp: I don't ever want to break an existing level file if there's any way to avoid it [3/20/2011 3:48:29 AM] Samuel Williams: should MAX_BARRIER_WIDTH be limited on loading? [3/20/2011 3:49:05 AM] Chris Eykamp: probably [3/20/2011 3:49:22 AM] Chris Eykamp: but only if not limiting causes problems [3/20/2011 3:50:56 AM] Samuel Williams: MIN_BARRIER_WIDTH, i say should be zero, as it does not have any problems.. [3/20/2011 3:51:10 AM] Chris Eykamp: old nexuses could only be defined with 4 points, and were specified with UL and LR corners [3/20/2011 3:51:15 AM] Chris Eykamp: yes [3/20/2011 3:51:25 AM] Chris Eykamp: we can still read those old nexus items [3/20/2011 3:51:38 AM] Chris Eykamp: even though we can now create polygonal nexuses [3/20/2011 3:52:55 AM] Samuel Williams: I did improve GoFast snapping part to make sure there are no way to go through walls to re-position for snapping.. [3/20/2011 4:01:30 AM] Samuel Williams: maybe i might still need to fix problem gofast the snapping going through walls. .. [3/20/2011 4:02:09 AM] Chris Eykamp: what do you mean? [3/20/2011 4:02:43 AM] Samuel Williams: you can go to my "Sam Test" and i can show you.. [3/20/2011 4:03:02 AM] Chris Eykamp: ok [3/20/2011 4:05:10 AM] Chris Eykamp: we should probably leave it working like that in (to be created) dungeon mode [3/20/2011 4:05:27 AM] Chris Eykamp: that's just the crazy things that those guys like :) [3/20/2011 4:06:12 AM] Samuel Williams: i will need to fix that, That what happen when using setActualVel and not mImpulseVector to add speed.. [3/20/2011 4:06:24 AM] Chris Eykamp: good [3/20/2011 4:07:23 AM] Samuel Williams: using setActualVel = Point(0,0) and using setActualVel = impulse causes problem with get stuck in the wall in a few levels.. [3/20/2011 4:08:36 AM] Samuel Williams: i will try to fix both problems tomorrow.. [3/20/2011 4:08:55 AM] Samuel Williams: in GoFast SpeedZone.. [3/20/2011 4:25:21 AM] Chris Eykamp: good night [3/20/2011 10:40:05 AM] buckyballreaction: I see you favor capitalizing the first letter of comment sentences :) [3/20/2011 11:52:22 AM] buckyballreaction: so for polygon buffers we have a couple choices: 1. I use clippers algo, but limit the points around the vertices - maybe limit based on angle; so a really acute angle will get more points 2. I use most of clippers algo, but I rewrite the corner-point piece to be smarter for bitfighter zones and require fewer points but still allow zones to be created on the fringe cases (like with the rectangulare corner tangent insets) [3/20/2011 11:52:55 AM] buckyballreaction: #1 is easy, #2 means going back to trig... [3/20/2011 1:27:06 PM] Chris Eykamp: well, start with #1 -- it's easy and may be good enough [3/20/2011 3:44:25 PM] buckyballreaction: ok, i'll see how #1 fairs.. [3/20/2011 10:30:06 PM] Chris Eykamp: Polywalls are a pain in the editor... will hopefully have them working tonight... except I have a lot of other stuff that needs to get done. [3/20/2011 11:26:49 PM] buckyballreaction: . [3/20/2011 11:55:49 PM] buckyballreaction: good evening [3/20/2011 11:57:50 PM] buckyballreaction: #1 is insufficient - arc cuts are too deep [3/20/2011 11:58:12 PM] buckyballreaction: but i'm close with a better solution... [3/21/2011 12:20:24 AM] Samuel Williams: hi, i have just pushed mine, to make Recast rcPolyMesh de-allocate memroy.. [3/21/2011 12:21:02 AM] Chris Eykamp: great [3/21/2011 12:21:11 AM] buckyballreaction: hooray! [3/21/2011 12:22:38 AM] Chris Eykamp: just so you know... I'll only be on briefly tomorrow, not at all Tuesday, and probbaly only sporadically until Sunday or Monday [3/21/2011 12:22:49 AM] buckyballreaction: ok [3/21/2011 12:23:04 AM] buckyballreaction: i actually have projects at work this coming week myself [3/21/2011 12:23:18 AM] Chris Eykamp: so if you need me to help decide anything, expect delays; email is probably better than IM, but I really don;t know what the situation will be where I am [3/21/2011 12:25:07 AM] buckyballreaction: okey doke [3/21/2011 12:36:42 AM] buckyballreaction: i'm starting to believe that zone buffers are more of a bandaid than a solution - but i don't know what else to do... [3/21/2011 12:37:10 AM] Chris Eykamp: why? [3/21/2011 12:38:13 AM] buckyballreaction: because of how much guess and check work i am having to do to make sure that the buffer corners are inset just enough... [3/21/2011 12:38:52 AM] Chris Eykamp: that doesn't mean the underlying idea is flawed [3/21/2011 12:39:10 AM] Chris Eykamp: what if you took the clipper boundaries and generalized them a bit? [3/21/2011 12:39:27 AM] buckyballreaction: explain [3/21/2011 12:39:45 AM] Chris Eykamp: well you get a lot of points as it "rounds the corner", right? [3/21/2011 12:39:55 AM] buckyballreaction: yep [3/21/2011 12:40:02 AM] buckyballreaction: and i know how to reduce the points [3/21/2011 12:40:03 AM] Chris Eykamp: and that's the main problem, right? [3/21/2011 12:40:26 AM] buckyballreaction: the problem is that reducing the points makes large inset cuts [3/21/2011 12:40:40 AM] Chris Eykamp: so I'm thinking instead of including every point, maybe we only include every 2nd point [3/21/2011 12:40:55 AM] Chris Eykamp: or no two adjacent points closer than, say 5 [3/21/2011 12:41:06 AM] Chris Eykamp: or 3 or 1 [3/21/2011 12:41:52 AM] buckyballreaction: that's easy [3/21/2011 12:41:55 AM] buckyballreaction: already tried that [3/21/2011 12:42:10 AM] Chris Eykamp: and no good [3/21/2011 12:42:28 AM] Chris Eykamp: why no good? [3/21/2011 12:42:53 AM] buckyballreaction: nope - the problem is when two poly walls are just less than a ships radius apart, and zones still get created between them because the radial cuts are too deep [3/21/2011 12:43:20 AM] buckyballreaction: because clipper's function always follows the radial arc... [3/21/2011 12:43:29 AM] buckyballreaction: actually that just gave me an idea [3/21/2011 12:43:40 AM] buckyballreaction: i'll increase the radius first, then do the cut... [3/21/2011 12:43:55 AM] Chris Eykamp: that won't work [3/21/2011 12:44:29 AM] Chris Eykamp: so what you are doing is turnign an arc into a chorded arc, essentailly, by weeding out some of the points [3/21/2011 12:44:30 AM] Samuel Williams: http://96.2.123.136/bitfighter/zap_d-20110321-0043344.png Want to stop the robots from getting stuck.. [3/21/2011 12:44:36 AM] Chris Eykamp: you end up with a partial polygon [3/21/2011 12:45:07 AM] Chris Eykamp: @sam: That's why we need the buffers [3/21/2011 12:45:34 AM] buckyballreaction: time to draw, if you will join me: http://www.twiddla.com/508251 [3/21/2011 1:15:44 AM] Chris Eykamp: you could sweep around the vertex, say, every 5degrees, and do a check using one of the methods we have to do that [3/21/2011 1:15:59 AM] Chris Eykamp: that's how turrets find their mount point [3/21/2011 1:16:54 AM] Chris Eykamp: maybe you only need to check at the bisection ray... not sure, would have to draw some pix [3/21/2011 1:17:22 AM] buckyballreaction: ok, let me try and see if 3 cuts at 90 degrees can handle what i need it to [3/21/2011 1:17:55 AM] Chris Eykamp: could probably do two checks -- at the bisection angle, and then a vert-vert check for any verts in that radius\ [3/21/2011 1:18:06 AM] Chris Eykamp: In my head, I can't see how that would fail [3/21/2011 1:19:07 AM] Chris Eykamp: if there are no verts within 50, and a ray extending straight out of the corner doesn't hit anything within 50, then are we set? [3/21/2011 1:19:49 AM] Chris Eykamp: no [3/21/2011 1:20:28 AM] buckyballreaction: can fail if a star-shaped polywall stuck in between... [3/21/2011 1:21:39 AM | Edited 1:21:44 AM] Samuel Williams: Robot get stuck with forcefirlds http://96.2.123.136/bitfighter/zap_d-20110321-0118490.png and GoFast (SpeedZone) http://96.2.123.136/bitfighter/zap_d-20110321-0120014.png [3/21/2011 1:21:41 AM] Chris Eykamp: well, a sweeping test every 5 deg will catch anything but the rarest of rare geometries [3/21/2011 1:22:12 AM] Chris Eykamp: bots are blisffuly unaware of ffs and gofasts [3/21/2011 1:25:08 AM] Samuel Williams: It will be difficult with LUA alone to see what path the bot is taking... Maybe during path finding, detect if something is in the way, and find another path.. [3/21/2011 1:28:35 AM] buckyballreaction: oh my goodness it worked [3/21/2011 1:28:57 AM] buckyballreaction: http://96.2.123.136/upload/1snapshot24.png [3/21/2011 1:29:18 AM] buckyballreaction: a ship can only get through barriers 1-2 2-3 3-4 [3/21/2011 1:29:45 AM] buckyballreaction: all the others it can't and with three cuts, it worked [3/21/2011 1:30:32 AM] Chris Eykamp: that's cool! [3/21/2011 1:30:49 AM] Chris Eykamp: there will be cases where this will fail, but rarer [3/21/2011 1:31:00 AM] Samuel Williams: To avoid blue background, maybe use black team, not blue? [3/21/2011 1:31:09 AM] buckyballreaction: good idea sam [3/21/2011 1:46:17 AM] Samuel Williams: should fix a problem where using Recast will not link the teleporters.. [3/21/2011 1:46:41 AM] Samuel Williams: that makes robot get stuck in zonecontrol2 [3/21/2011 1:47:11 AM] buckyballreaction: yes [3/21/2011 1:47:28 AM] buckyballreaction: i think i saw that code in the adjacency calculations [3/21/2011 1:47:32 AM] buckyballreaction: in BotNavMeshZone [3/21/2011 1:50:49 AM] Samuel Williams: Almost all of level maps i have works, except Flashing Lights. [3/21/2011 1:51:46 AM] Samuel Williams: Doesn't work on Flashing Lights because of being inside one large barrier, and bot zone don't generate inside barrier. [3/21/2011 1:56:16 AM] buckyballreaction: ok, i can commit my polywall buffer additions now [3/21/2011 1:56:27 AM] buckyballreaction: does anyone have anything to commit before I do? [3/21/2011 1:58:29 AM] Chris Eykamp: it's probably goinjg to cause me grief, but go for it [3/21/2011 2:00:18 AM] buckyballreaction: okey doke, here goes... [3/21/2011 2:02:06 AM] buckyballreaction: one last clean compile to make sure.. [3/21/2011 2:07:37 AM] buckyballreaction: ok, pushed [3/21/2011 2:07:43 AM] buckyballreaction: feel free to test [3/21/2011 2:13:23 AM] buckyballreaction: ok, what's next to work on? [3/21/2011 2:14:41 AM] Samuel Williams: zap\geomutils.cpp(798) : error C4716: 'Zap::offsetPolygon' : must return a value [3/21/2011 2:14:51 AM] buckyballreaction: arge [3/21/2011 2:14:57 AM] buckyballreaction: i didn't mean to make it bool [3/21/2011 2:15:11 AM] buckyballreaction: i'll change it real quick.. [3/21/2011 2:16:11 AM] buckyballreaction: done [3/21/2011 2:16:15 AM] buckyballreaction: pushed [3/21/2011 2:17:21 AM] Samuel Williams: i am getting the teleporter bot zone connection almost working, i just need to test.. [3/21/2011 2:18:13 AM] buckyballreaction: cool [3/21/2011 2:18:28 AM] buckyballreaction: i need sleep now, good night [3/21/2011 2:18:35 AM] buckyballreaction: thanks for help [3/21/2011 2:19:01 AM] Chris Eykamp: good night [3/21/2011 2:31:38 AM] Samuel Williams: Buffered polygon wall don't work when points are arranged in reverse order. http://96.2.123.136/bitfighter/zap_d-20110321-0228047.png http://96.2.123.136/bitfighter/zap_d-20110321-0227267.png [3/21/2011 2:35:35 AM] Chris Eykamp: odd [3/21/2011 3:25:52 AM] Chris Eykamp: going to bed; later [3/21/2011 12:21:12 PM] buckyballreaction: @sam, I think I know why... [3/21/2011 12:21:57 PM] buckyballreaction: is there a way to detect the order of points? or even, order them properly? [3/21/2011 12:27:01 PM] Chris Eykamp: I'm sure there is -- do a google search [3/21/2011 12:27:24 PM] buckyballreaction: google is your friend [3/21/2011 12:27:47 PM] buckyballreaction: i guess i meant, is there a way coded in bitfighter already? [3/21/2011 12:28:16 PM] buckyballreaction: because the more I dig around the code the more methods I see that seem to duplicate work.. [3/21/2011 12:28:17 PM] Chris Eykamp: I don't think so [3/21/2011 12:28:20 PM] buckyballreaction: ok [3/21/2011 12:28:34 PM] Chris Eykamp: are you dealing with concave or convex polygons [3/21/2011 12:28:46 PM] buckyballreaction: both [3/21/2011 12:29:05 PM] Chris Eykamp: point order for convex is probably trivial [3/21/2011 12:29:15 PM] Chris Eykamp: concave is certainly more complex [3/21/2011 12:30:12 PM] Chris Eykamp: that's probably not terribly helpful :) [3/21/2011 12:30:27 PM] buckyballreaction: haha [3/21/2011 12:30:29 PM] Chris Eykamp: I'll bet Clipper has some point order code in it [3/21/2011 12:30:42 PM] Chris Eykamp: which may or may not be accessible [3/21/2011 12:30:54 PM] buckyballreaction: i already change the algo for offsetting.. [3/21/2011 12:31:25 PM] buckyballreaction: ok, i'll see if my hunch is right, first.. [3/21/2011 12:32:56 PM] Chris Eykamp: I do know that "winding order" is the proper term [3/21/2011 12:35:38 PM] buckyballreaction: ah yes, thanks [3/21/2011 7:39:12 PM] karamazovapy: someday, zone generation will be done. [3/21/2011 7:40:44 PM] Chris Eykamp: there have been some hard slogs in Bitfighter history, but I think this is the longest and sloggiest [3/21/2011 7:43:53 PM] karamazovapy: I'm authoring a dvd on my machine, and it didn't occur to me that I would have to render video [3/21/2011 8:07:10 PM] buckyballreaction: my slogging boots are worn out [3/21/2011 8:15:18 PM] karamazovapy: anybody want to give me an opinion on these graphic designers? http://www.virtualredhead.com/ [3/21/2011 8:17:09 PM] buckyballreaction: i don't really have an eye for graphic design - but the website is nice and simple [3/21/2011 8:17:10 PM] karamazovapy: I'm starting to shop around a little for logo and web designers, and these folks are about a quarter mile from my house [3/21/2011 8:17:23 PM] karamazovapy: what about web design? http://www.virtualredhead.com/portfolio/entry/urca_web_site [3/21/2011 8:18:57 PM] buckyballreaction: their web design looks pretty good from my perspective; although, i'm the type that would have to see the code to make final judgement :) [3/21/2011 8:19:16 PM] karamazovapy: fair enough [3/21/2011 8:19:41 PM] buckyballreaction: most of their designs seem clean-cut, and i like that [3/21/2011 8:20:04 PM] karamazovapy: this site is a little stark, but I might like something kind of like it - they did the work - http://www.dewittcreativitygroup.org/ [3/21/2011 8:21:23 PM] buckyballreaction: looking at the code of that site: it is pretty clean, too [3/21/2011 8:21:45 PM] buckyballreaction: i'll even applaud them for keeping the style out of the structure [3/21/2011 8:22:10 PM] buckyballreaction: code-wise speaking.. [3/21/2011 8:22:14 PM] karamazovapy: the other web design that seems to be floating around town is these folks - http://themediaadvantage.com/ [3/21/2011 8:22:19 PM] karamazovapy: their work seems pretty puketastic [3/21/2011 8:22:30 PM] karamazovapy: they actually crashed my firefox more than once [3/21/2011 8:22:50 PM] karamazovapy: http://themediaadvantage.com/our-work/web-design/ [3/21/2011 8:26:14 PM] karamazovapy: I meant town literally, they've done a bunch of local bars and restaurants, not just the ones they've linked [3/21/2011 8:31:52 PM] buckyballreaction: my analysis of the the code on that site: it is pretty clean, but messier than the first. And way too heavy on the JavaScript (which is probably what crashes your browswer) [3/21/2011 8:40:45 PM] buckyballreaction: haha, that first site has this code on the main page: [3/21/2011 8:46:39 PM] karamazovapy: the sites they've done are javascript overload, if you check out some of the links [3/21/2011 11:30:26 PM] buckyballreaction: what is the fastest way to reverse a Vector? [3/21/2011 11:44:28 PM] buckyballreaction: it works! [3/21/2011 11:44:54 PM] buckyballreaction: clockwise polygon winding not being buffered correctly is solved... [3/21/2011 11:45:03 PM] buckyballreaction: pushing after some clean-up... [3/21/2011 11:46:32 PM] karamazovapy: w00t [3/21/2011 11:51:17 PM] buckyballreaction: ok, pushed! [3/21/2011 11:51:21 PM] buckyballreaction: now good night [3/22/2011 12:21:17 AM] karamazovapy: man, quartz is a real turd sandwich sometimes [3/22/2011 1:34:18 PM] buckyballreaction: forum posting rule #1: anything you say may be taken emotionally out-of-context no less then 4 times the normal amount [3/22/2011 1:34:50 PM] Chris Eykamp: did someone get upset? [3/22/2011 1:35:39 PM] buckyballreaction: i was just commenting on _k's comment about this thread: http://bitfighter.org/forums/viewtopic.php?f=30&t=630&start=0 [3/22/2011 1:48:38 PM] karamazovapy: quartz and I have a little history...honestly, I've never had a personal problem with the guy, but he's had a huge personal problem with me for years [3/22/2011 1:49:15 PM] Chris Eykamp: just let it go [3/22/2011 1:49:24 PM] Chris Eykamp: you can't win :) [3/22/2011 1:49:25 PM] karamazovapy: yeah, I'm not particularly bothered [3/22/2011 1:49:28 PM] buckyballreaction: you didn't run off with his daughter or something? [3/22/2011 1:49:31 PM] karamazovapy: I try not to even respond when he posts [3/22/2011 1:49:45 PM] karamazovapy: I think he's about 16 now [3/22/2011 1:50:03 PM] buckyballreaction: haha, ok [3/22/2011 1:50:44 PM] karamazovapy: but back when he was around 12 or 13 he developed the impression that I was intentionally unfairly critical of his ideas, and that everyone was unfairly positive about mine [3/22/2011 1:51:23 PM] karamazovapy: there's nothing to be done about it, but he gets upset pretty easily and has thrown a few epic tantrums [3/22/2011 1:51:29 PM] karamazovapy: via forum [3/22/2011 2:41:24 PM] buckyballreaction: so curious - now that buffers work all around - what are the next steps for bot zones? [3/22/2011 2:42:21 PM] Chris Eykamp: we're done?!? [3/22/2011 2:43:02 PM] karamazovapy: false [3/22/2011 2:43:03 PM] karamazovapy: not possible [3/22/2011 2:43:35 PM] buckyballreaction: pretty much - although do we?: 1. want to remove the older 2 zone gen methods 2. remove the option to select a zone gen method from the INI 3. fallback to the square method if another fails [3/22/2011 2:43:46 PM] buckyballreaction: so basically clean-up [3/22/2011 2:43:52 PM] Chris Eykamp: autogenerate when level loads if nobots flag is not set (logging errors and setting nobots flag is generation fails); get rid of cacheing code [3/22/2011 2:43:58 PM] Chris Eykamp: 2 yes [3/22/2011 2:44:40 PM] buckyballreaction: i already added code to disable bots if zone generation fails [3/22/2011 2:44:41 PM] Chris Eykamp: square method is too slow for regular use; I thiink we should get rid of that [3/22/2011 2:44:52 PM] Chris Eykamp: so I would say fallback is no bots [3/22/2011 2:44:59 PM] Chris Eykamp: let's try that and see how it works [3/22/2011 2:45:11 PM] Chris Eykamp: we can always revivie older methods if we need a fallback [3/22/2011 2:45:11 PM] buckyballreaction: oooo, then i get to axe large swaths of code [3/22/2011 2:45:14 PM] Chris Eykamp: yes [3/22/2011 2:45:16 PM] Chris Eykamp: now... careful. [3/22/2011 2:45:25 PM] Chris Eykamp: I've been axeing large swaths of code myself [3/22/2011 2:45:35 PM] Chris Eykamp: and if we both axe the same thing... [3/22/2011 2:45:42 PM] buckyballreaction: do you have stuff to check in? [3/22/2011 2:45:52 PM] Chris Eykamp: I *could* check in what I've got [3/22/2011 2:45:56 PM] Chris Eykamp: it compiles, and works [3/22/2011 2:45:57 PM] buckyballreaction: because i should wait until everyone is not in the middle of something.. [3/22/2011 2:46:12 PM] Chris Eykamp: but it redraws the barriers mutliple times per rendering pass [3/22/2011 2:46:16 PM] Chris Eykamp: so cmdr view is very slow [3/22/2011 2:46:40 PM] Chris Eykamp: but I could check that in and fix that problem later (I understand it, just ened to figure out how to prevent it) [3/22/2011 2:47:03 PM] Chris Eykamp: perhaps I should do that [3/22/2011 2:47:12 PM] buckyballreaction: what wait! [3/22/2011 2:47:14 PM] buckyballreaction: ? [3/22/2011 2:47:17 PM] buckyballreaction: what are you working on? [3/22/2011 2:47:21 PM] Chris Eykamp: I'm using Clipper to do all wall unions now [3/22/2011 2:47:35 PM] buckyballreaction: oooo... like for rendering as well? [3/22/2011 2:47:44 PM] Chris Eykamp: for generating what gets rendered, yes [3/22/2011 2:47:51 PM] buckyballreaction: oh cool [3/22/2011 2:47:59 PM] buckyballreaction: yes i should wait for you [3/22/2011 2:48:01 PM] Chris Eykamp: using the same code we use for merging bot zones [3/22/2011 2:48:31 PM] Chris Eykamp: thing is, I'm not sure when I'll be finished with my rendering bug; I can check in now and fix the bug alter [3/22/2011 2:48:56 PM] Chris Eykamp: because I'm not sure when I'll be able to check in [3/22/2011 2:49:22 PM] buckyballreaction: i don't mind waiting... [3/22/2011 2:49:29 PM] buckyballreaction: because i dislike hard merges [3/22/2011 2:49:47 PM] Chris Eykamp: but you might wait a day or two [3/22/2011 2:50:38 PM] buckyballreaction: that's ok [3/22/2011 2:50:43 PM] buckyballreaction: i'll twiddle the thumbs [3/22/2011 2:51:11 PM] Chris Eykamp: and I may have broken the editor; not sure [3/22/2011 2:51:39 PM] buckyballreaction: i noticed something when using the editor and fixing polywall buffers [3/22/2011 2:51:55 PM] buckyballreaction: the barrier buffers were created twice [3/22/2011 2:52:02 PM] buckyballreaction: or at lease, the method was called twice [3/22/2011 2:52:10 PM] buckyballreaction: are barriers loaded twice? [3/22/2011 2:57:46 PM] Chris Eykamp: not sure; I doubt it [3/22/2011 2:57:52 PM] Chris Eykamp: possibly processed twice [3/22/2011 2:58:09 PM] buckyballreaction: because every level i loaded printed my debug info twice on each barrier [3/22/2011 3:00:25 PM] Chris Eykamp: ok, I pushed my code; hack away [3/22/2011 3:02:14 PM] buckyballreaction: i built a winding order determination method in GeomUtils [3/22/2011 3:02:21 PM] buckyballreaction: in case you need it [3/22/2011 3:02:49 PM] Chris Eykamp: good [3/22/2011 3:03:05 PM] Chris Eykamp: I hope I don't :) [3/22/2011 4:07:27 PM] buckyballreaction: so my unionPolygons method has been scapped? is that because it was used only once? [3/22/2011 4:07:30 PM] buckyballreaction: scrapped [3/22/2011 4:09:43 PM] buckyballreaction: ahh, you compined the union of bot geometries [3/22/2011 4:09:51 PM] buckyballreaction: and i can't type [3/22/2011 4:15:06 PM] Chris Eykamp: combine! [3/22/2011 4:27:35 PM] buckyballreaction: are we planning on getting rid of sam's botzone cache? [3/22/2011 4:28:30 PM] Chris Eykamp: I don't see any reason for it anymore [3/22/2011 4:28:47 PM] Chris Eykamp: it just adds complication [3/22/2011 8:37:23 PM] buckyballreaction: there is this method: removeUnusedNavMeshZones() [3/22/2011 8:37:27 PM] buckyballreaction: is that still needed? [3/22/2011 9:28:35 PM] Chris Eykamp: fixed the multiple rendering of wall edges, need to fix clipping in editor. less code = more better! [3/22/2011 10:40:01 PM] buckyballreaction: what is?: getGameType()->mScriptName [3/22/2011 10:43:36 PM] buckyballreaction: and why is this a requirement for building zones?: if(getGameType()->mScriptName != "") getGameType()->mBotZoneCreationFailed = !BotNavMeshZone::buildBotMeshZones(this); [3/22/2011 10:45:28 PM] karamazovapy: don't think I noticed this one earlier - http://wowubuntu.com/bitfighter.html [3/22/2011 11:58:03 PM] buckyballreaction: @sam, is there a chance that botzones don't work with autogenerated levels? [3/23/2011 12:03:59 AM] buckyballreaction: current revision of bitfighter segfaults any time i try to join a game.. [3/23/2011 12:22:54 AM] buckyballreaction: crashes because of the findObjects() lookup in Barrier::clipRenderLinesToPoly() [3/23/2011 12:23:16 AM] buckyballreaction: for some reason the BucketWidth is not initialized in that call to findObjects [3/23/2011 12:48:56 AM] Zoomber: so raptor, working on barrier class meathods i see [3/23/2011 12:53:45 AM] Chris Eykamp: [Tuesday, March 22, 2011 10:43 PM] buckyballreaction: <<< if(getGameType()->mScriptName != "") getGameType()->mBotZoneCreationFailedI think that is a holdover from earlier days when zones were too slow to be dynamically generated for levelgen levesl. I think we can remove that restriction. [3/23/2011 12:55:17 AM] buckyballreaction: okey doke [3/23/2011 12:55:27 AM] buckyballreaction: also, i just barely found the reason for the segfault [3/23/2011 12:55:42 AM] buckyballreaction: it was doing this: gServerGame->getGridDatabase()->findObjects [3/23/2011 12:55:56 AM] buckyballreaction: needs to do this: gClientGame->getGridDatabase()->findObjects [3/23/2011 12:56:07 AM] buckyballreaction: in clipRenderLinesToPoly [3/23/2011 12:59:16 AM] buckyballreaction: now i can get on with my clean-up :) [3/23/2011 1:02:46 AM] buckyballreaction: uh oh, what did i do [3/23/2011 1:03:42 AM] Samuel Williams: [Tuesday, March 22, 2011 10:43 PM] buckyballreaction: <<< getGameType()->mScriptName != ""That was first there, as caching won't work for generating zones, so cache has to be disabled for level gens. [3/23/2011 1:04:19 AM] buckyballreaction: i think i did something... [3/23/2011 1:04:29 AM] Max Hushahn: n [3/23/2011 1:04:33 AM] Chris Eykamp: I've got to go, but I think we can disable caching permanently and the zones will work for levelgens just fine [3/23/2011 1:04:48 AM] Max Hushahn: hello [3/23/2011 1:04:52 AM] Samuel Williams: someone could have changed it in a way that disables zone generating in levelgen.. [3/23/2011 1:05:38 AM] buckyballreaction: umm [3/23/2011 1:06:06 AM] buckyballreaction: the outline geometry isn't being rendered when connecting to another server [3/23/2011 1:06:11 AM] buckyballreaction: did i do that? [3/23/2011 1:06:21 AM] buckyballreaction: ...hi zoomber... [3/23/2011 1:08:35 AM] buckyballreaction: also zero length barriers are unseen in the editor... [3/23/2011 1:09:22 AM] Samuel Williams: the outline geometry does get rendered when connecting to server, as of (620730fb693c) Fix hundreds of compile warnings. I have not yet update to lastest.. [3/23/2011 1:09:51 AM] buckyballreaction: if you would, can you update to 1259e46a9f76 [3/23/2011 1:09:59 AM] buckyballreaction: last commit by watusimoto [3/23/2011 1:11:20 AM] Chris Eykamp: I get a bucketwidth crash as of my last checkin [3/23/2011 1:11:31 AM] buckyballreaction: yes! [3/23/2011 1:11:35 AM] buckyballreaction: that was the segafult that i fixed [3/23/2011 1:12:00 AM] buckyballreaction: line 371 of barrier.cpp [3/23/2011 1:12:08 AM] buckyballreaction: change gServerGame to gClientGame [3/23/2011 1:13:18 AM] Samuel Williams: I have updated to (1259e46a9f76) Wall rendering ... And compiling [3/23/2011 1:14:38 AM] buckyballreaction: ok, my method clean-up didn't cause the missing outline rendering [3/23/2011 1:15:41 AM] buckyballreaction: it doesn't occur in the editor or hosting a game, only when joining a game [3/23/2011 1:16:12 AM] buckyballreaction: so you should be good to update to tip - since it fixes the segfault [3/23/2011 1:18:46 AM] Samuel Williams: i get bucketWidth error, as GridDatabase::findObjects 'this' pointer is null (trying to access gServerGame) [3/23/2011 1:19:01 AM] buckyballreaction: yes, my latest commit fixes that [3/23/2011 1:23:37 AM] Samuel Williams: After changing to gClientGame, line edge generating works from hosting, not joining server.. And it doesn't generate line edge at all in Bitwize Orray, weather hosing or not. [3/23/2011 1:24:11 AM] buckyballreaction: yes same behaviour here, too [3/23/2011 1:24:25 AM] buckyballreaction: also zero-length walls don't show up any more - like in Racket [3/23/2011 1:24:29 AM] buckyballreaction: but tha tmay be unrelated [3/23/2011 1:25:15 AM] buckyballreaction: i'm going to update to: b048e65908cc and see if that was the commit that did it [3/23/2011 1:26:19 AM] buckyballreaction: nope, broken there, too [3/23/2011 1:27:33 AM] Samuel Williams: i do think it went broken after (cfa11e7add37) Merge. [3/23/2011 1:28:42 AM] Samuel Williams: and after (620730fb693c) Fix hundreds of compile warnings.. [3/23/2011 1:29:05 AM] buckyballreaction: yeah, it was one of watusimoto's two commits after that one [3/23/2011 1:32:48 AM] buckyballreaction: i wonder if it is because mRenderLineSegments and associated methods were made static [3/23/2011 1:35:40 AM] Zoomber: 620730fb was a day ago [3/23/2011 1:43:09 AM] buckyballreaction: well, i gotta sleep [3/23/2011 1:43:24 AM] buckyballreaction: havent' figured it out yet.. [3/23/2011 1:43:45 AM | Edited 1:43:55 AM] Samuel Williams: i see a problem with making mRenderLineSegments static, it has to render ALL the lines, even when only a few lines is visible.. [3/23/2011 1:45:05 AM] Samuel Williams: before, it will render only the lines with the visible barrier.. [3/23/2011 1:46:02 AM] buckyballreaction: i made it non-static, and removed the .clear() line [3/23/2011 1:46:10 AM] buckyballreaction: and it still doesn't work [3/23/2011 1:54:28 AM] buckyballreaction: i think it has something to do with the code in game.cpp:2074 [3/23/2011 1:55:26 AM] buckyballreaction: or not [3/23/2011 1:55:30 AM] buckyballreaction: i don't know... [3/23/2011 1:55:34 AM] buckyballreaction: going to bed [3/23/2011 1:55:35 AM] buckyballreaction: night [3/23/2011 1:56:00 AM] Samuel Williams: http://96.2.123.136/bitfighter/zzzz3.level This level takes forever in prepareRenderGeometry. [3/23/2011 1:56:18 AM] Samuel Williams: The old prepareRenderGeometry is a lot faster. [3/23/2011 1:57:31 AM] buckyballreaction: yeah, i bet clipper is slower because it is a much larger algorithm [3/23/2011 1:59:19 AM] Samuel Williams: bye, if you going to bed.. [3/23/2011 1:59:23 AM] buckyballreaction: night [3/23/2011 11:43:17 AM] buckyballreaction: sooo... any luck on discovering why edge geom is not working when connecting to a server? [3/23/2011 5:38:56 PM] Samuel Williams: in clipRenderLinesToPoly, barrierList is empty after findObjects... gClientGame->getGridDatabase()->findObjects(BarrierType, barrierList, gServerWorldBounds); Why gServerWorldBounds? [3/23/2011 5:39:38 PM] Samuel Williams: that results in barrierList being empty after running findObjects [3/23/2011 7:06:09 PM] buckyballreaction: so maybe it was my change from gServerGame -> gClientGame? [3/23/2011 7:06:32 PM] buckyballreaction: gServerGame crashed consistently, though [3/23/2011 7:08:39 PM] Samuel Williams: the problem is gServerWorldBounds = Rect((0,0)(0,0)) because of not hosting the game. [3/23/2011 7:10:06 PM] Samuel Williams: Maybe try this? findObjects(BarrierType, barrierList, Rect(-F32_MAX,-F32_MAX,F32_MAX,F32_MAX)); [3/23/2011 7:10:34 PM] buckyballreaction: i actually can't work on it right now - i have an exam [3/23/2011 7:10:43 PM] buckyballreaction: it will take me a coupl edays to complete :( [3/23/2011 7:11:39 PM] Samuel Williams: looks like you are too buzy.. [3/23/2011 7:12:14 PM] buckyballreaction: i started doing a big cleanup with the botzone generation, but it'll have to wait [3/23/2011 11:55:47 PM] Zoomber: uh oh [3/23/2011 11:55:55 PM] Zoomber: my hard drive is giving me the sound i dont ever want to here [3/23/2011 11:55:57 PM] Zoomber: hear* [3/23/2011 11:56:15 PM] Zoomber: click click click click click click click click, all in tempo [3/23/2011 11:56:59 PM] Zoomber: but the s.m.a.r.t status says its ifne [3/23/2011 11:57:07 PM] Zoomber: so hopefully, it wont get worse for a hwile [3/23/2011 11:57:11 PM] Zoomber: just odd.. [3/24/2011 12:07:38 AM | Edited 12:08:18 AM] Chris Eykamp: [Wednesday, March 23, 2011 1:43 AM] Samuel Williams: <<< i see a problem with making mRenderLineSegments static, it has to render ALL the lines, even when only a few lines is visible..Just a qucik note, because I only have a minute, but the reason this is so is because clipper generates a mess of segments, and there is no way to tie them back to individual walls. Rendering a bunch of lines is pretty fast given the way we do them "in bulk" with openGL, so I don't think there is much of a performance penalty here, probably less than trying to figure out which are on the screen and which aren't. That's essentially what OpenGL is doing for us... just a thought. [3/24/2011 12:07:50 AM] Chris Eykamp: hate do drop in and drop out, but that's life on the road! [3/24/2011 12:19:26 PM] buckyballreaction: @zoomber, replace your hard disk NOW [3/24/2011 12:22:42 PM] karamazovapy: haha...totally missed that...yeah, you'd better at least back up your vital files, kind of immediately. [3/24/2011 2:04:50 PM] buckyballreaction: ignoring the clicking hard drive because SMART says it's ok is like ignoring the tornado outside because you can't feel the wind yet... [3/24/2011 2:33:59 PM] karamazovapy: assuming it really is the drive and not a fan acting up [3/24/2011 10:07:07 PM] Zoomber: lol [3/24/2011 10:07:30 PM] Zoomber: and yes, tis the hard drive, as the hard drive led light blinks at the same time the hard drive clicks in rythum [3/24/2011 10:08:29 PM] Zoomber: luckily, all my stuff valuable is on my mac [3/24/2011 10:13:30 PM] Max h: n [3/24/2011 10:13:44 PM] buckyballreaction: hi [3/24/2011 10:13:48 PM] Zoomber: hey raptor, [3/24/2011 10:13:53 PM] buckyballreaction: am i supposed to have you as two contacts? [3/24/2011 10:14:18 PM] Zoomber: oh, yes sorry, this is my other account [3/24/2011 10:14:46 PM] buckyballreaction: so which should I have? [3/24/2011 10:14:51 PM] Zoomber: both? :) [3/24/2011 10:15:24 PM] Zoomber: anyway, was wondering about something [3/24/2011 10:15:29 PM] buckyballreaction: i may or may not random choose one to kick in the future... :D [3/24/2011 10:15:36 PM] Zoomber: lol [3/24/2011 10:15:58 PM] Zoomber: not if i ... [3/24/2011 10:16:23 PM] *** Zoomber (onmac) has been promoted to conversation host. *** [3/24/2011 10:16:28 PM] Zoomber: ahah! [3/24/2011 10:16:43 PM] buckyballreaction: now i can kick your old one? [3/24/2011 10:17:03 PM] Zoomber: hmmm [3/24/2011 10:17:25 PM] Zoomber: no, its the creater of the room, thats the only thing that cant be changed [3/24/2011 10:17:55 PM] Zoomber: so its role, is 1, while the role on this account, is 2, (smaller number = higher role) [3/24/2011 10:18:08 PM] Zoomber: now, i dont know why your role is helper, but [3/24/2011 10:18:25 PM] *** buckyballreaction has been promoted to conversation host. *** [3/24/2011 10:18:30 PM] Zoomber: now, you should be maseter [3/24/2011 10:18:51 PM] Zoomber: now, if i downgrade this account to helper, i bet you can finally kick me [3/24/2011 10:19:12 PM] Zoomber: aha, try now [3/24/2011 10:20:26 PM] Max h: oh, i see your confusion, on windows, instead of "master", its "conversation host" [3/24/2011 10:20:38 PM] Max h: could be like that for linux? [3/24/2011 10:20:51 PM] buckyballreaction: i was thinking about my contact list [3/24/2011 10:20:57 PM] buckyballreaction: i removed your old one :) [3/24/2011 10:21:05 PM] buckyballreaction: zoomber-only, now [3/24/2011 10:21:12 PM] Zoomber: ? [3/24/2011 10:21:24 PM] Zoomber: oh i thought you meant kick from chat [3/24/2011 10:21:47 PM] Zoomber: lol dont remove that one :( [3/24/2011 10:22:35 PM] Samuel Williams: hi.. [3/24/2011 10:23:09 PM] Samuel Williams: Why do i see 'Max h" as my contacts, but not Zoomber ? renaming and duplicate accounts? [3/24/2011 10:24:17 PM] Max h: renamed this one [3/24/2011 10:24:46 PM] Max h: sorry, im still zoomber [3/24/2011 10:25:42 PM] Samuel Williams: What is hewlletpackard as part of Max 's profile [3/24/2011 10:27:05 PM | Edited 10:27:22 PM] Zoomber (onmac): two accounts so I can be on windows and mac at the same tme [3/24/2011 10:27:52 PM] Samuel Williams: The other one is z00mber or is that z-Zero-Zero-mber ? [3/24/2011 10:28:24 PM | Edited 10:28:39 PM] Zoomber (onmac): those are 0s (Zeros) [3/24/2011 11:33:01 PM] Samuel Williams: Our Skype history chats: http://96.2.123.136/bitfighter/skype110324.txt [3/24/2011 11:44:51 PM | Edited 11:45:19 PM] Samuel Williams: Could always leave this room and create / join a new room if both bbr. and wat. wants to.. [3/24/2011 11:45:28 PM] Max h: sam: theres a whole histoy page [3/24/2011 11:45:37 PM] Max h: do you want me to make a new skype room? [3/24/2011 11:47:22 PM | Edited 11:47:38 PM] Samuel Williams: maybe someone else could create new room, like me... as umm, i somewhat dislike multiple accounts coming from one user... ( bbr appears to not like it either? ) [3/24/2011 11:48:11 PM] Max h: im sorry to hear that. if thats bothering you, i can remove one of them [3/24/2011 11:50:38 PM] Max h: in fact i think your right. it is a bit confusing [3/24/2011 11:50:43 PM] *** Max h removed Zoomber (onmac) from this conversation. *** [3/24/2011 11:54:09 PM] Samuel Williams: Name changing can also be a bit confusing, when looking at history.. [3/24/2011 11:54:52 PM] Max h: im sorry about that, I needed to change my name back to max h, as a friend i wanted to add on skype, does not know me as "Zoomber" [3/24/2011 11:55:32 PM] buckyballreaction: done! with my exame [3/24/2011 11:55:37 PM] buckyballreaction: back to bitfighter! [3/24/2011 11:55:48 PM] Max h: horray! [3/24/2011 11:58:06 PM] Samuel Williams: I have never changed my name in skype, my name have always been "Samual Williams" since my first day of using skype. [3/25/2011 12:01:46 AM] buckyballreaction: so sam, i have some more clean-up of the nav zones to commit [3/25/2011 12:01:57 AM] buckyballreaction: do you have anything to commit? [3/25/2011 12:03:52 AM] Max h: i shall pull once you push [3/25/2011 12:08:26 AM] Samuel Williams: i have nothing yet to push... [3/25/2011 12:09:34 AM] buckyballreaction: ok, will i mess you up if i commit some radical changes? [3/25/2011 12:10:17 AM] buckyballreaction: or [3/25/2011 12:10:45 AM] Samuel Williams: i have not hardly made any changes.. [3/25/2011 12:10:48 AM] buckyballreaction: okey doke [3/25/2011 12:14:09 AM] buckyballreaction: has anyone else noticed that if you open/close bitfighter several times in a row, the window position inches down the screen each time? [3/25/2011 12:19:37 AM] Samuel Williams: Windows position inching down a little,i think that is linux problem (doesn't happen to windows) [3/25/2011 12:22:16 AM | Edited 12:22:32 AM] Samuel Williams: does windows inch down a little when pressing ALT + ENTER (multiple times) ? [3/25/2011 12:22:39 AM] buckyballreaction: haha, yep [3/25/2011 12:22:59 AM] Samuel Williams: does it go off-screen or not? [3/25/2011 12:23:16 AM] buckyballreaction: let me get there... [3/25/2011 12:23:39 AM] buckyballreaction: yup it will [3/25/2011 12:32:23 AM] buckyballreaction: can you explain to me what the define 'ALWAYS_LOAD_BOT_ZONES' is supposed to do in game.cpp? [3/25/2011 12:32:39 AM] buckyballreaction: because it is calling the old BotNavMeshZone::buildBotNavMeshZoneConnections() method [3/25/2011 12:33:52 AM] Samuel Williams: I just added there for testing bot zones, so i don't need to use /addbot, and it always generate all zones on all maps when starting up "Host Game" [3/25/2011 12:34:05 AM] buckyballreaction: it is used in two places [3/25/2011 12:34:15 AM] buckyballreaction: can I remove both? [3/25/2011 12:34:31 AM] Samuel Williams: you can remove if you want, One if it is #ifndef the other is #ifdef [3/25/2011 12:34:45 AM] buckyballreaction: does tha mean one needs to stay? [3/25/2011 12:34:59 AM] Samuel Williams: you can remove everything inside #ifdef, keeping that code inside #ifndef [3/25/2011 12:35:24 AM] buckyballreaction: so remove ifdef, don't remove ifndef [3/25/2011 12:35:36 AM] Samuel Williams: I needed in both places to avoid double load zones... [3/25/2011 12:36:02 AM] Samuel Williams: So it always run one code or the other.. [3/25/2011 12:36:08 AM] buckyballreaction: ok [3/25/2011 12:36:16 AM] buckyballreaction: and the ifndef was the original place? [3/25/2011 12:37:29 AM] Samuel Williams: you may remove code #ifdef ALWAYS_LOAD_BOT_ZONES remove everything in here #endif keep code inside #ifndef ALWAYS_LOAD_BOT_ZONES (#if - N - def) [3/25/2011 12:37:38 AM] buckyballreaction: ok [3/25/2011 12:52:05 AM] buckyballreaction: bots aren't that smart on zonecontrol [3/25/2011 12:52:15 AM] buckyballreaction: they pick zones at random, instead of nearest one [3/25/2011 12:56:10 AM] buckyballreaction: ok, about to push a lot of clean-up [3/25/2011 1:00:09 AM] buckyballreaction: pushed! [3/25/2011 1:00:17 AM] buckyballreaction: it's bed for me... [3/25/2011 1:01:17 AM] Samuel Williams: ok, i got the client missing line problem fixed... [3/25/2011 1:01:26 AM] buckyballreaction: really? [3/25/2011 1:02:29 AM] Samuel Williams: i have pushed my changes that should hopefully fix the missing line barrier in join server.. [3/25/2011 1:04:21 AM] buckyballreaction: compile error: WinUser.h [3/25/2011 1:04:42 AM] Samuel Williams: oops,.. [3/25/2011 1:05:37 AM] Samuel Williams: i am removing that include.. [3/25/2011 1:05:41 AM] buckyballreaction: ok [3/25/2011 1:06:55 AM] Samuel Williams: ok, i have pushed my removal of include winUser.h [3/25/2011 1:08:12 AM] Samuel Williams: it was something to do with trying to compile in my other windows computer ( i have 2 computers in windows XP) (or linux ubuntu as dual boot) [3/25/2011 1:08:43 AM] buckyballreaction: it works! [3/25/2011 1:09:06 AM] buckyballreaction: just curious - will setting the word bounds so high impact performance? [3/25/2011 1:09:10 AM] Samuel Williams: Bitwise Orray still doesn't work.. [3/25/2011 1:09:45 AM] Samuel Williams: it is only finding objects within the bounds, it doesn't impact performance - want to find ALL barriers. [3/25/2011 1:10:01 AM] buckyballreaction: ah ok [3/25/2011 1:10:10 AM] buckyballreaction: well good night! [3/25/2011 1:11:18 AM] Samuel Williams: good night... [3/25/2011 9:46:31 AM] buckyballreaction: good morning [3/25/2011 8:26:01 PM] buckyballreaction: good evening [3/25/2011 8:36:57 PM] Samuel Williams: good night? (not yet..) [3/25/2011 8:37:33 PM] buckyballreaction: not yet :0 [3/25/2011 8:48:32 PM] buckyballreaction: it seems to me like there should be a better way to fix the missing edge geometry than using such large extents... although I can't think of how [3/25/2011 8:51:21 PM] Samuel Williams: The huge Rect is only there to find ALL barriers, it is finding all barriers and probably inputting it into clipper, but the clipper outputs nothing in Bitwise Orray [3/25/2011 11:53:34 PM] buckyballreaction: hello again [3/25/2011 11:54:21 PM] buckyballreaction: sam, if you're around, can look at the issues list with me and see what of the '015a' is left to do? [3/25/2011 11:57:07 PM] buckyballreaction: i see these three: 1. bot shoot own forcefields 2. send all stick info 3. huge memory leak with /showzones [3/25/2011 11:57:19 PM] buckyballreaction: has any of them been done, to your knowledge? [3/25/2011 11:57:47 PM] Samuel Williams: how can /showzones cause memory leak? [3/25/2011 11:58:23 PM] buckyballreaction: it may not be '/showzones' directly, but when showing the botzones in the editor, i saw my memory inflate to over 160MB of RAM [3/25/2011 11:59:01 PM] buckyballreaction: and it kept climbing 1 MB every 5-10 seconds [3/25/2011 11:59:42 PM] Samuel Williams: ok, bot zones in editor, not /showzones... Maybe it is creating new item without deleting the old item... [3/26/2011 12:00:38 AM] buckyballreaction: i mean [3/26/2011 12:00:44 AM] buckyballreaction: when i tested a level in the editor [3/26/2011 12:00:49 AM] buckyballreaction: then did /addbot [3/26/2011 12:00:57 AM] buckyballreaction: then /showzones [3/26/2011 12:01:02 AM] buckyballreaction: ram started inflating [3/26/2011 12:01:21 AM] buckyballreaction: i remember testing ctf3 [3/26/2011 12:02:52 AM] Samuel Williams: does RAM inflate without /showzones and after /addbot ? [3/26/2011 12:03:01 AM] buckyballreaction: nope [3/26/2011 12:03:09 AM] buckyballreaction: nor did it do it with showpaths [3/26/2011 12:03:19 AM] buckyballreaction: i and getting another test ready... [3/26/2011 12:03:25 AM] buckyballreaction: i and = i am [3/26/2011 12:04:11 AM] buckyballreaction: ok right now with ctf3: 11148K [3/26/2011 12:04:31 AM] buckyballreaction: /addbot: 12364K [3/26/2011 12:04:37 AM] buckyballreaction: holding stable [3/26/2011 12:05:56 AM] buckyballreaction: /showzones: 12864 [3/26/2011 12:05:56 AM] Samuel Williams: you can try /addbot /kickbot /showzones and see if the showzones itself have memory leak. [3/26/2011 12:06:18 AM] buckyballreaction: 13632K [3/26/2011 12:06:22 AM] buckyballreaction: ok, i'll kick bot [3/26/2011 12:06:47 AM] buckyballreaction: it sure isn't going up as fast anymore... maybe recast hadn't been cleaned up yet? [3/26/2011 12:06:57 AM] buckyballreaction: 14424K [3/26/2011 12:07:03 AM] buckyballreaction: (already kicked bot) [3/26/2011 12:07:18 AM] buckyballreaction: i'm just looking at commander's map [3/26/2011 12:07:27 AM] buckyballreaction: 14952 [3/26/2011 12:07:31 AM] buckyballreaction: not even moving [3/26/2011 12:07:48 AM] buckyballreaction: 15480 [3/26/2011 12:08:27 AM] buckyballreaction: 16536 [3/26/2011 12:08:42 AM] buckyballreaction: so about 1MB every 40seconds now [3/26/2011 12:08:48 AM] buckyballreaction: which is slower than before.. [3/26/2011 12:09:13 AM] buckyballreaction: 17592 [3/26/2011 12:10:36 AM] buckyballreaction: maybe it's the commander's map [3/26/2011 12:11:35 AM] Samuel Williams: http://96.2.123.136/bitfighter/11032601.PNG i don't have memory leak... zap_d.exe memory usage shows me as 37,988 or 38,008 KB (bouncing up and down once of a while) I am just sitting at the bitfighter with /showzones without bots.. [3/26/2011 12:11:47 AM] buckyballreaction: yeah, memory paused now that i exited the commander's map [3/26/2011 12:12:01 AM] buckyballreaction: try keeping the commander's map open for a while [3/26/2011 12:12:33 AM] Samuel Williams: still shows 38008 KB mem usage, not changing anymore.. [3/26/2011 12:14:23 AM] buckyballreaction: ok, now trying with no zones and commander's map open [3/26/2011 12:14:24 AM] Samuel Williams: in-game time limit rans out, level restarts, now at 38,948 kb [3/26/2011 12:15:36 AM] buckyballreaction: commander's map and no /showzones is stable... [3/26/2011 12:16:32 AM] Samuel Williams: after my repeated /addbot /restart, my Mem Usage is now at 39,312 KB [3/26/2011 12:16:37 AM] buckyballreaction: growing again - as soon as i /addbot and then /kickbot [3/26/2011 12:16:57 AM] buckyballreaction: so /showzones with commander's map is what does the leak [3/26/2011 12:17:49 AM] Samuel Williams: could it be a problem with bot zone rendering? or some linux-specific (possible opengl driver?) having memory leak? [3/26/2011 12:18:01 AM] buckyballreaction: could very well be [3/26/2011 12:18:23 AM] buckyballreaction: i just shut off /showzones and i'm still on the commander's map - no inflation [3/26/2011 12:19:02 AM] Samuel Williams: if you want, you could go to BotNavMeshZone.cpp BotNavMeshZone::render and comment out everything inside it (or a few) [3/26/2011 12:19:31 AM] Samuel Williams: To see if the problem is the rendering part and not the game. [3/26/2011 12:20:23 AM] Samuel Williams: my Mem Usage is at 39,316 kb after showing Bot Zone the whole time in the past 4 minutes (without bots). [3/26/2011 12:21:27 AM] buckyballreaction: yeah, you don't have much of a leak [3/26/2011 12:22:39 AM] buckyballreaction: i also notice CPU usage: 1. no commander's map: 4% 2. commander's map: 4-9% 3. c-map + showzones: 49% [3/26/2011 12:23:05 AM] buckyballreaction: i commented out most of render - no memory leak [3/26/2011 12:23:15 AM] Samuel Williams: it could be Triangulate::Process(mPolyBounds, mPolyFill); gets called repeatedly being called when triangulate is unable to fill keeping mPolyFill.size() == 0 [3/26/2011 12:25:38 AM] buckyballreaction: ok, commented that part out - testing... [3/26/2011 12:25:50 AM] buckyballreaction: at 12116K (non-shared) [3/26/2011 12:26:48 AM] buckyballreaction: no leak so far [3/26/2011 12:26:54 AM] buckyballreaction: i guess that was it [3/26/2011 12:27:34 AM] buckyballreaction: how often does ::render get called? [3/26/2011 12:28:22 AM] Samuel Williams: BotNavMeshZone::render gets called for each individual bot zones in each frames (usually at 100 frames per second) [3/26/2011 12:28:24 AM] buckyballreaction: still no leak [3/26/2011 12:29:09 AM] buckyballreaction: woudl tha mean the problem is in ::Process somewhere? [3/26/2011 12:31:21 AM] Samuel Williams: i see the problem in Triangulate::Process 1. int *V = new int[n]; 2. possible Return False without delete V; 3. at end of loop it does delete V (not if it returned before this line) [3/26/2011 12:32:17 AM] buckyballreaction: i'm having a hard time with my IDE - keeps crashing every 2 min... [3/26/2011 12:33:05 AM] Samuel Williams: does your IDE have memory leak? or is it something spesific or random? [3/26/2011 12:33:11 AM] buckyballreaction: random [3/26/2011 12:33:13 AM] buckyballreaction: eclipse [3/26/2011 12:33:23 AM] buckyballreaction: just started today after getting home from work [3/26/2011 12:33:39 AM] buckyballreaction: it's interfering with me coding.. [3/26/2011 12:33:58 AM] Samuel Williams: did it got updated? then starts crashing? [3/26/2011 12:34:58 AM] buckyballreaction: not sure... [3/26/2011 12:35:12 AM] buckyballreaction: i'm gonna redownload it and start fresh [3/26/2011 12:35:45 AM] Max h: hi [3/26/2011 12:35:59 AM] buckyballreaction: howdy [3/26/2011 12:37:20 AM] Max h: been a slow day for me. hows everyone? [3/26/2011 12:38:10 AM] buckyballreaction: good [3/26/2011 12:44:23 AM] buckyballreaction: i think java was updated... [3/26/2011 12:44:30 AM] buckyballreaction: argh [3/26/2011 12:44:40 AM] Max h: funny, said the same thing for me [3/26/2011 12:44:49 AM] Max h: OMGTHANKYOU [3/26/2011 12:44:58 AM] Max h: this may be the best day of the night\ [3/26/2011 12:45:22 AM] Max h: i have FINALLY gotten my apple wireless mighty mouse to work with windows xp [3/26/2011 12:45:26 AM] Max h: on my ibm desktop [3/26/2011 12:45:58 AM] Max h: i tried everything, even installing bootcamp drivers on non-apple hardware [3/26/2011 12:49:35 AM] buckyballreaction: sam, do you have to specify 'delete[]' instead of just 'delete'? [3/26/2011 12:50:50 AM] Samuel Williams: i don't know, i guess there is no need to put in [] in delete [3/26/2011 12:51:45 AM] Samuel Williams: another idea is to replace new / delete with Vector int *V = new int[n]; Vector V; V.setSize((n)); [3/26/2011 12:52:20 AM] Samuel Williams: V.setSize(( n )); (stupid ((n))) [3/26/2011 12:52:57 AM] buckyballreaction: that was exactly the memory leak [3/26/2011 12:53:08 AM] buckyballreaction: i added the delete before the return, and no inflation [3/26/2011 12:53:29 AM] buckyballreaction: good eye sam [3/26/2011 12:53:49 AM] Samuel Williams: i can push my change to Vector, or should we keep using V.setSize((n)); ? [3/26/2011 12:54:10 AM] buckyballreaction: let's just add the delete [3/26/2011 12:54:20 AM] buckyballreaction: because rendering requires performance... [3/26/2011 12:54:23 AM] Samuel Williams: int *V = new int[n]; i mean keep that, or change to Vector? [3/26/2011 12:54:31 AM] buckyballreaction: keep [3/26/2011 12:54:37 AM] Samuel Williams: ok [3/26/2011 12:55:28 AM] buckyballreaction: i can push the added 'delete' [3/26/2011 12:55:35 AM] buckyballreaction: unless you are about to [3/26/2011 12:55:51 AM] Samuel Williams: i made no changes to code.. [3/26/2011 12:55:57 AM] buckyballreaction: okey doke [3/26/2011 12:56:00 AM] buckyballreaction: pushing... [3/26/2011 12:56:57 AM] buckyballreaction: thanks for helping with that one sam [3/26/2011 1:00:28 AM] buckyballreaction: i'm going to make a radical change... [3/26/2011 1:00:59 AM] buckyballreaction: i'm going to create a 'third_party' folder and put in all of out newly acquired libraries like Triangle/recast/etc.. [3/26/2011 1:11:03 AM] buckyballreaction: i will try to make sure the vc++ projects are updated as well.. [3/26/2011 2:01:23 AM] buckyballreaction: hmmm... maybe instead of a zap/ and third_part/ directory, i create a src/ directory with all of them in it? [3/26/2011 9:34:57 AM] buckyballreaction: so i did a seach through all of zap/ for any declaration of 'new', searching for memory leaks [3/26/2011 9:35:09 AM] buckyballreaction: I found several objects that don't have destructors [3/26/2011 9:35:14 AM] buckyballreaction: like Barrier [3/26/2011 9:35:23 AM] buckyballreaction: should it have a destructor? [3/26/2011 9:48:50 AM] karamazovapy: Gozer? [3/26/2011 9:50:22 AM] buckyballreaction: ? [3/26/2011 9:50:46 AM] karamazovapy: http://www.google.com/search?q=Goze&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:en-US:official&client=firefox-a#sclient=psy&hl=en&safe=off&client=firefox-a&hs=WLq&rls=org.mozilla:en-US%3Aofficial&source=hp&q=Gozer&aq=f&aqi=g5&aql=&oq=&pbx=1&bav=on.2,or.r_gc.r_pw.&fp=f4efcaa1b8c328f [3/26/2011 9:51:14 AM] buckyballreaction: haha, i get it [3/26/2011 9:51:19 AM] buckyballreaction: been a while since i saw that [3/26/2011 10:46:35 AM] buckyballreaction: ok, destructors are implicit and auto-generated by the compiler [3/26/2011 10:47:25 AM] karamazovapy: holla atcha staypuft [3/26/2011 11:21:29 AM] buckyballreaction: eclipse profiler with valgrind is really good... [3/26/2011 11:33:10 AM] buckyballreaction: i'm finding memory errors, but i'm not sure how to handle some of them... [3/26/2011 12:07:34 PM] buckyballreaction: i think tnlVector has a leak... [3/26/2011 12:08:09 PM] buckyballreaction: tnlVector.h:422 is always throwing a valgrind error: 482 (256 direct, 226 indirect) bytes in 2 blocks are definitely lost in loss record 121 of 180 [3/26/2011 8:13:10 PM] buckyballreaction: C++0x Final Draft has been aproved by the ISO committee [3/26/2011 8:13:42 PM] buckyballreaction: hopefully we'll see boost libraries in std:: and supported by the compilers real soon.. [3/26/2011 9:50:33 PM] buckyballreaction: . [3/27/2011 6:54:06 PM] Samuel Williams: While PolyWall and BarrierMakerS is both the same, PolyWall will not load when using older version 014 and 015 (but works on current version 015a), a problem when someone wants to see the level that uses PolyWall, and only have old version 015. [3/27/2011 7:32:21 PM] buckyballreaction: yep - that's the price paid with innovation [3/27/2011 7:53:12 PM] buckyballreaction: maybe the next release should be 016 and an emphasis put on levels created might not be backwards compatible? [3/27/2011 9:49:56 PM] Max h: or quickly patch up 15a and release that so people can use it? [3/27/2011 9:50:10 PM] Max h: and anything planned in 15a that wasnt done can be in 15b? [3/28/2011 1:28:09 AM] Max h: is anyone on? i think i have a really serioius problem with my computer [3/28/2011 1:30:16 AM] Samuel Williams: ? [3/28/2011 1:31:19 AM] karamazovapy: we told you to back that thang up! [3/28/2011 1:31:23 AM] Max h: it could be a virus, but for soem reason, when I try to click on links from google to sites i go to frequently, and usually work, they go to the site, but get redirected by something else [3/28/2011 1:31:41 AM] Max h: and go to some ad site [3/28/2011 1:32:00 AM] Max h: and its not the website or google, because it works fine on my mac [3/28/2011 1:32:42 AM] Max h: i also ran a scan, and it says C:\windows\system32\svchost.exe (380_ is a trojan horse agent [3/28/2011 1:33:21 AM] Max h: and nother one at c:\windows\system32\svchost.exe 380:\memoory_00b20000 [3/28/2011 1:33:34 AM] Max h: and avg cant remove them [3/28/2011 1:33:42 AM] Samuel Williams: Clean Re-install operating system (windows xp?) should get rid of any trojan / virus in the hard disk.. [3/28/2011 1:34:01 AM] karamazovapy: better first try [3/28/2011 1:34:13 AM] karamazovapy: svchost is NOT a trojan [3/28/2011 1:34:19 AM] karamazovapy: grab hijackthis [3/28/2011 1:34:22 AM] Max h: it isnt? [3/28/2011 1:34:26 AM] Max h: ok [3/28/2011 1:34:30 AM] karamazovapy: no, svchost is a necessary system process [3/28/2011 1:34:50 AM] Samuel Williams: maybe svchost is hacked / have trogan injected in that file? [3/28/2011 1:35:02 AM] Max h: yeah [3/28/2011 1:35:12 AM] karamazovapy: google svchost [3/28/2011 1:35:35 AM] karamazovapy: http://en.wikipedia.org/wiki/Svchost [3/28/2011 1:36:07 AM] Max h: thanks for link, everything i try to google gets redirected [3/28/2011 1:36:09 AM] karamazovapy: run hijackthis and get rid of whatever's hijacking your machine [3/28/2011 1:36:27 AM] karamazovapy: http://free.antivirus.com/hijackthis/ [3/28/2011 1:36:49 AM] Max h: hmm, this ip adress shows up right before it redirects the link [3/28/2011 1:37:01 AM] Max h: maybe i can find out whos behind this [3/28/2011 1:37:51 AM] Max h: downloading hijackthis [3/28/2011 1:39:20 AM] Max h: "The April 30, 2007 release of Windows Server Update Services 3.0 led to reports of svchost.exe issues, including 100% CPU usage, memory hogging, and excessive laptop fan/power usage.[3]" [3/28/2011 1:39:47 AM] karamazovapy: that's no longer a problem in 2011 [3/28/2011 1:40:00 AM] Max h: oh, good [3/28/2011 1:40:51 AM] Max h: the virus just force quit firefox...right before my download finished [3/28/2011 1:41:04 AM] Max h: yet, windows said I was the one who force quit it [3/28/2011 1:42:17 AM] Max h: ok ill get skype on my mac. i gotta pull the plug for a second, things are getting out of hand on my desktop now [3/28/2011 1:42:21 AM] karamazovapy: bring up the task manager, kill any processes you can (including system processes) and try again [3/28/2011 1:42:32 AM] karamazovapy: if that doesn't work, restart in safe mode with networking and give it a shot [3/28/2011 1:42:43 AM] Max h: svchost using 33,000 k of memory [3/28/2011 1:43:20 AM] Max h: everythings super slow now [3/28/2011 1:46:24 AM] Samuel Williams: re-install Windows XP, it is probably the best way, and might be the only way to get rid of any trojan... If your computer have license key at the bottom / back of the computer.. [3/28/2011 1:47:39 AM] Max h: i have the lisense key, but getting the drivers from ibm is always a big pain [3/28/2011 1:48:12 AM] Max h: i think it only got into safari right now [3/28/2011 1:48:22 AM] Max h: everything in it is different [3/28/2011 1:48:35 AM] Samuel Williams: which is a bigger pain, trying to get rid of trojan, or finding drivers after re-install? [3/28/2011 1:49:04 AM] Max h: the theme in the safari window looks like a fake version of windows 2000, even though the theme in the rest of my computer's windows and desktop is xp style [3/28/2011 1:49:58 AM] Max h: probably the drivers. i dont have a driver install cd with me [3/28/2011 1:50:31 AM] Max h: which really sets me back. theres about over 1000 drivers for each component on IBM, even more specifically, the thinkcentre series [3/28/2011 1:50:51 AM] karamazovapy: have you restarted in safe mode? [3/28/2011 1:50:58 AM] Max h: will in a second [3/28/2011 1:51:10 AM] karamazovapy: that should be your first line of defense [3/28/2011 1:51:17 AM] karamazovapy: it'll bypass anything that shouldn't get loaded [3/28/2011 1:53:16 AM | Edited 1:54:57 AM] Samuel Williams: To get to safe mode options, pressing F8 multiple times after computer turns on, but before windows XP is starting up, should show a menus... [3/28/2011 1:55:30 AM] Max h: ok [3/28/2011 1:59:48 AM] Max h: could use system restore? [3/28/2011 2:00:24 AM] karamazovapy: you could try, but it might not actually fix anything [3/28/2011 2:01:25 AM] Max h: in safe mode, safari freezes hell over just when opened [3/28/2011 2:02:12 AM] Samuel Williams: unless it is a FULL system restore that restores everything on computer, and possibly removes the trojan... [3/28/2011 2:05:28 AM] Max h: @_K, ran hijack this [3/28/2011 2:18:32 AM] karamazovapy: see fishy stuff? [3/28/2011 2:18:47 AM] Max h: nothing yet, i have the log though [3/28/2011 2:19:19 AM] Max h: aha! [3/28/2011 2:19:22 AM] Max h: maybe this is it? [3/28/2011 2:19:28 AM] Max h: under Running processes: [3/28/2011 2:19:34 AM] Max h: two of these come up [3/28/2011 2:19:46 AM] Max h: C:\Windows\System32\svchost.exe [3/28/2011 2:19:49 AM] Max h: identical [3/28/2011 2:19:54 AM] Max h: but two [3/28/2011 2:19:58 AM] karamazovapy: what does the rest of the line say? [3/28/2011 2:20:29 AM] Max h: nothing, just kind of looks like [3/28/2011 2:20:33 AM] Max h: Processess Running: [3/28/2011 2:20:35 AM] Max h: ..etc.. [3/28/2011 2:20:41 AM] Max h: C:\Windows\System32\svchost.exe [3/28/2011 2:20:44 AM] Max h: ...etc... [3/28/2011 2:20:56 AM] karamazovapy: that doesn't sound like hijackthis... [3/28/2011 2:21:05 AM] Max h: no thats just the first part [3/28/2011 2:21:21 AM] Samuel Williams: does the google redirect problem still happen, even while in safe mode? [3/28/2011 2:21:26 AM] Max h: your right, that was just the running processes [3/28/2011 2:21:34 AM] Max h: i cant even open safari in safe mode [3/28/2011 2:21:47 AM] Max h: plus, my wireless card is external, so i have no way to tell, as it does not load in safe mode [3/28/2011 2:22:54 AM] karamazovapy: my hijackthis entries look like: O2 - BHO: Spybot-S&D IE Protection - {53707962-6F74-2D53-2644-206D7942484F} - C:\Custom\Program Files\Spybot - Search & Destroy\SDHelper.dll [3/28/2011 2:23:00 AM] Max h: _k, does the hijack log have a bunch of numbers like R1 R0, folowed by others [3/28/2011 2:23:26 AM] karamazovapy: yes, although you should be able to see all of those things in the main window, too [3/28/2011 2:23:27 AM] Max h: yeah, first i have running processes:, then i have that ^ [3/28/2011 2:24:04 AM] Max h: avg aparently has a command line virus scanner too [3/28/2011 2:24:29 AM] Max h: ok, i cant find any other svchost besides that [3/28/2011 2:24:52 AM] karamazovapy: the shadier stuff can be BHOs, HKLMs, or Services [3/28/2011 2:25:00 AM] Max h: right [3/28/2011 2:25:13 AM] Max h: and hkus? [3/28/2011 2:25:26 AM] karamazovapy: easiest way to scan the log quickly is to read what the application is supposed to be in parentheses [3/28/2011 2:25:43 AM] karamazovapy: like (Shockwave Flash Object) [3/28/2011 2:26:08 AM] Max h: 09 - Extra button: (no_name) - {e2e2dd38-d088-4134-82b7-f2ba38496583} [3/28/2011 2:26:11 AM] karamazovapy: or [Adobe Acrobat Speed Launcher] [3/28/2011 2:26:20 AM] karamazovapy: you can delete that, but it's probably harmless [3/28/2011 2:26:43 AM] karamazovapy: extra buttons are just extra buttons added to your browser, like a dedicated yahoo! button [3/28/2011 2:26:44 AM] Max h: oh, that could be for a utility i have [3/28/2011 2:27:16 AM] Max h: that inverts the controls on my mac keyboard, so i can have mac commands, on windows, and i dont get all that mixed up when using an apple keyboard with a windows [3/28/2011 2:27:51 AM] Max h: what about this? 010 - unknown file in winsock LSP: Cwindows\system32\nwprovau.dll [3/28/2011 2:29:13 AM] karamazovapy: it appears to be harmless, but there's a utility you can download to remove it if you really want to [3/28/2011 2:29:52 AM] Max h: ok, ill let it be if it is [3/28/2011 2:29:56 AM] karamazovapy: is there any way you can just post your log file somewhere? [3/28/2011 2:30:15 AM] Max h: maybe i can use a flash drive [3/28/2011 2:30:26 AM] Max h: only way i can transfer, since it doesnt detect my bluetooth/wireless [3/28/2011 2:32:36 AM] karamazovapy: are you gonna try that? [3/28/2011 2:33:03 AM] *** Max h sent hijackthis.log *** [3/28/2011 2:33:09 AM | Edited 2:33:18 AM] Max h: was able to use my ipod shuffle drive [3/28/2011 2:34:02 AM] karamazovapy: nice - okay, well you can delete the first seven entries without doing any harm [3/28/2011 2:34:09 AM] karamazovapy: all the R1 and R0s [3/28/2011 2:34:22 AM] Max h: ok [3/28/2011 2:35:11 AM] Max h: does that mean i check it and click "Fix checked" ? [3/28/2011 2:35:24 AM] karamazovapy: I haven't finished looking through the list [3/28/2011 2:35:28 AM] karamazovapy: but you can check those [3/28/2011 2:35:38 AM] Max h: ok [3/28/2011 2:35:44 AM] Max h: done [3/28/2011 2:36:29 AM] karamazovapy: the HKUS RunOnce: [ShowDeskFix] entries all look nasty [3/28/2011 2:36:49 AM] Max h: check? [3/28/2011 2:36:53 AM] karamazovapy: yes [3/28/2011 2:36:54 AM] Max h: done [3/28/2011 2:37:05 AM] karamazovapy: listing /s /n /i:u ? shaaaady [3/28/2011 2:37:43 AM] Max h: odd [3/28/2011 2:39:23 AM] karamazovapy: yeah, I'd Fix Checked with those selected [3/28/2011 2:39:35 AM] karamazovapy: that should at least fix your registry a bit [3/28/2011 2:39:55 AM] karamazovapy: have you run the latest update of spybot? [3/28/2011 2:40:02 AM] Max h: done [3/28/2011 2:40:07 AM] Max h: spybot? [3/28/2011 2:40:13 AM] karamazovapy: spybot s&d? [3/28/2011 2:40:24 AM] karamazovapy: http://www.safer-networking.org/en/home/index.html [3/28/2011 2:40:31 AM] Max h: ooh. dont even have it [3/28/2011 2:40:43 AM] karamazovapy: that will detect malware/worms/nasties [3/28/2011 2:40:55 AM] Max h: ok [3/28/2011 2:40:56 AM] karamazovapy: you use that and hijackthis hand in hand [3/28/2011 2:41:10 AM] Max h: can hijackthis work outside safe mode? [3/28/2011 2:41:17 AM] karamazovapy: definitely [3/28/2011 2:41:20 AM] karamazovapy: malware tweaks your system files [3/28/2011 2:41:32 AM] karamazovapy: spybot deletes malware, hijack this fixes the system files [3/28/2011 2:41:38 AM] Max h: neat [3/28/2011 2:41:52 AM] karamazovapy: so you want to run them both kind of back to back and do a restart [3/28/2011 2:41:56 AM] karamazovapy: then run them both again [3/28/2011 2:42:42 AM] karamazovapy: and spybot searches for an ungodly number of possible nasties [3/28/2011 2:43:20 AM] Max h: ok [3/28/2011 2:44:39 AM] karamazovapy: yeah, spybot has 790,000 definitions now [3/28/2011 2:45:00 AM] karamazovapy: and updates are free [3/28/2011 2:45:09 AM] Max h: if you could compare it to avg, how much better would you say it is? [3/28/2011 2:45:48 AM] karamazovapy: I think they kind of do different things...but I've always felt like spybot does what I want it to [3/28/2011 2:47:04 AM] Max h: i dont feel like avg has done that much, besides block an outgoing program Ive just run in which i just click the unblock button [3/28/2011 2:47:04 AM] karamazovapy: I visit some pretty sketchy corners of the web and I don't remember the last time I had a serious computer problem [3/28/2011 2:48:18 AM] karamazovapy: spybot and hijackthis were our standard one-two punch back when I was a sysadmin [3/28/2011 2:48:23 AM] Max h: when searching something on google, have you ever clicked on a link, but got stopped adn redirected to a page that says, the page you are navigating to could potentially contain a virus? [3/28/2011 2:48:28 AM] karamazovapy: if a computer was beyond use, we'd re-image it [3/28/2011 2:49:00 AM] karamazovapy: that sounds like antivirus software acting up [3/28/2011 2:49:08 AM] Max h: it happened on my mac once [3/28/2011 2:49:12 AM] karamazovapy: once or twice firefox itself has given me a similar warning [3/28/2011 2:49:48 AM] Max h: yeah, i think i was using firefox too [3/28/2011 2:49:56 AM] Max h: back then [3/28/2011 2:51:07 AM] karamazovapy: anyway, it's late here and I have to work in the morning [3/28/2011 2:51:17 AM] karamazovapy: whatever spybot finds, you can fix without worrying [3/28/2011 2:51:27 AM] karamazovapy: it won't break anything unless you have sketchy ad-supported software [3/28/2011 2:51:28 AM] Max h: ok [3/28/2011 2:51:30 AM] Max h: late here too [3/28/2011 2:51:34 AM] Max h: thanks for that help [3/28/2011 2:51:40 AM] karamazovapy: then the ad-supported software might not work until you reinstall it [3/28/2011 2:51:53 AM] Max h: makes sense [3/28/2011 2:52:11 AM] karamazovapy: make sure you actually download the updated definitions for spybot, though [3/28/2011 2:52:27 AM] karamazovapy: there's an update button in the application [3/28/2011 2:52:35 AM] karamazovapy: no browser requried [3/28/2011 2:52:48 AM] karamazovapy: good luck [3/28/2011 2:53:36 AM] Max h: thanks [3/28/2011 10:27:05 AM] buckyballreaction: morning [3/28/2011 1:11:00 PM] Max h: good morning [3/28/2011 1:37:56 PM] Chris Eykamp: hi [3/28/2011 1:43:16 PM] buckyballreaction: hello [3/28/2011 1:43:34 PM] buckyballreaction: it's been relatively quiet with you gone [3/28/2011 1:44:11 PM] Chris Eykamp: well, I was so exhausted in the evenings, the thought of logging on seemed horrible [3/28/2011 1:44:22 PM] buckyballreaction: hehe, no problem [3/28/2011 1:45:41 PM] buckyballreaction: want a quick update? [3/28/2011 1:49:12 PM] Chris Eykamp: I keep saying this, but we need to get things wrapped up for 015a... [3/28/2011 1:49:14 PM] Chris Eykamp: update, sure [3/28/2011 1:51:44 PM] buckyballreaction: ok, so we have one problem, sort of: with your changes to building the barrier edge geometry all at once, the following things happen: 1. edge geo would not be generated at all - sam made this fix: http://code.google.com/p/bitfighter/source/detail?r=cfced785bfc2f901a99f677b4dba00ceb7094734 2. with sam's fix, clipper fails on some levels and the edges are not drawn [3/28/2011 1:52:18 PM] buckyballreaction: i am dubious about sam's fix - it seems there should be a better way, but maybe i am wrong [3/28/2011 1:53:36 PM] buckyballreaction: oh and: 3. clipper is slow with edge geo on maps with TONs of barriers, like this one: http://96.2.123.136/bitfighter/zzzz3.level [3/28/2011 1:55:22 PM] Chris Eykamp: the big rectangle shouldn't be needed; nor should it hurt (beyond a performance hit) [3/28/2011 1:57:03 PM] Chris Eykamp: I assume that is your area of concern, not the win compile changes [3/28/2011 2:00:33 PM] buckyballreaction: correct [3/28/2011 2:01:01 PM] buckyballreaction: the problem was: [3/28/2011 2:01:11 PM] buckyballreaction: on that same line, you checked in code: gClientGame->getGridDatabase()->findObjects() [3/28/2011 2:01:16 PM] buckyballreaction: oops [3/28/2011 2:01:27 PM] buckyballreaction: not that, you checked in: gServerGame->getGridDatabase()->findObjects( [3/28/2011 2:02:03 PM] buckyballreaction: I changed gServerGame to gClientGame because gServerGame was segfaulting when you tried to join a server (not when you hosted, though) [3/28/2011 2:02:53 PM] buckyballreaction: http://code.google.com/p/bitfighter/source/detail?r=c07b97058c33cd98770f9a9535b7c4b1c59dcdc1 [3/28/2011 2:05:47 PM] Chris Eykamp: [Monday, March 28, 2011 2:01 PM] buckyballreaction: <<< gClientGame->getGridDatabase()->findObjects()should be right [3/28/2011 2:05:59 PM] Chris Eykamp: that should get all the walls [3/28/2011 2:10:19 PM] buckyballreaction: yes, but it consistently returns 0 walls [3/28/2011 2:10:44 PM] buckyballreaction: it pulls from gServerWorldBounds [3/28/2011 2:10:52 PM] buckyballreaction: is there a gClientWorldBounds? [3/28/2011 2:15:54 PM] Chris Eykamp: mmmm... there may be. Or we could track the walls separately, the way we do the zones, so we have a list of them all outside of the database [3/28/2011 2:16:01 PM] Chris Eykamp: there is a way to get all the walls [3/28/2011 2:23:21 PM] buckyballreaction: gServerWorldBounds is alway 0,0 -> 0,0 at that piont [3/28/2011 2:24:31 PM] buckyballreaction: a ha!: mWorldBounds [3/28/2011 2:24:34 PM] buckyballreaction: let me try that... [3/28/2011 2:25:29 PM] buckyballreaction: except it's private... [3/28/2011 2:25:32 PM] buckyballreaction: rats [3/28/2011 2:35:01 PM] Chris Eykamp: private to what? [3/28/2011 2:35:35 PM] buckyballreaction: gClientGame, but it doesn't matter, I just tried sending the bounds in, and they came across as 0,0 -> 0,0 [3/28/2011 2:35:40 PM] Chris Eykamp: actually, gServerWorldBounds should probably be stored on gServerGame [3/28/2011 2:36:00 PM] Chris Eykamp: apropos of nothing [3/28/2011 2:36:29 PM] buckyballreaction: they are stored there... [3/28/2011 2:36:35 PM] buckyballreaction: oh no wait [3/28/2011 2:36:53 PM] buckyballreaction: they are in Zap [3/28/2011 2:36:56 PM] buckyballreaction: namespace [3/28/2011 2:37:23 PM] buckyballreaction: so for whatever reason, the bounds are being calculated on the client side [3/28/2011 2:37:30 PM] buckyballreaction: are = are NOT [3/28/2011 2:50:27 PM] Chris Eykamp: maybe they're never used on the client side? [3/28/2011 2:50:39 PM] Chris Eykamp: the issue is that the client needs a list of all walls, right? [3/28/2011 2:51:13 PM] buckyballreaction: the issue is that findObjects is given a bounds of 0,0 -> 0,0 [3/28/2011 2:51:21 PM] buckyballreaction: so no walls are returned [3/28/2011 2:51:39 PM] buckyballreaction: i guess that's a roundabout way of saying 'yes' [3/28/2011 2:52:13 PM] Chris Eykamp: right [3/28/2011 2:52:25 PM] Chris Eykamp: well, we obviously have some way of getting them because we render them [3/28/2011 2:53:02 PM] buckyballreaction: it's rendering them one by one, though, isn't it? [3/28/2011 2:53:30 PM] Chris Eykamp: yes, but where is the list of items that are rendered come from? [3/28/2011 2:54:17 PM] buckyballreaction: i don't know exactly... [3/28/2011 2:54:30 PM] buckyballreaction: something somewhere is calling the 'render' method on each barrier [3/28/2011 2:54:50 PM] buckyballreaction: it seems to be muddled in the RPC calls, but i'm not totally sure [3/28/2011 2:54:51 PM] Chris Eykamp: this should work: computeWorldObjectExtents() [3/28/2011 2:55:04 PM] Chris Eykamp: no rpc calls involved, I don't think [3/28/2011 2:55:12 PM] Chris Eykamp: look at ClientGame::renderCommander() [3/28/2011 2:55:33 PM] Chris Eykamp: conputes mWorldBounds [3/28/2011 2:55:39 PM] Chris Eykamp: then does [3/28/2011 2:55:40 PM] Chris Eykamp: mDatabase.findObjects(CommandMapVisType, rawRenderObjects, mWorldBounds); [3/28/2011 2:55:46 PM] Chris Eykamp: then renders [3/28/2011 2:57:02 PM] buckyballreaction: it worked! [3/28/2011 2:57:12 PM] buckyballreaction: excellent [3/28/2011 2:57:28 PM] Chris Eykamp: looks to me that mWorldBounds should just be a local variable [3/28/2011 2:57:36 PM] Chris Eykamp: or should be updated "centrally" [3/28/2011 2:57:45 PM] Chris Eykamp: rather than updated here and there where it is used [3/28/2011 2:58:07 PM] buckyballreaction: yeah [3/28/2011 2:58:13 PM] buckyballreaction: i pushed the change [3/28/2011 2:58:34 PM] Chris Eykamp: it is needed every frame for rendering [3/28/2011 2:59:01 PM] Chris Eykamp: so why not update it in the main loop, and then it will always be available [3/28/2011 2:59:05 PM] Chris Eykamp: ? [3/28/2011 2:59:49 PM] Chris Eykamp: I can do that tonight if you don't want to [3/28/2011 3:01:05 PM] buckyballreaction: I can only make minor edits right now... busy [3/28/2011 3:01:46 PM] buckyballreaction: sam found one level where clipper fails to merge the outline geometry: Bitwise Orray [3/28/2011 3:01:47 PM] Chris Eykamp: no prob; I'll put it on my list for tonight [3/28/2011 3:01:56 PM] buckyballreaction: it's on his server [3/28/2011 3:02:09 PM] Chris Eykamp: probably some stupid edge case [3/28/2011 3:02:15 PM] buckyballreaction: yep [3/28/2011 3:02:28 PM] buckyballreaction: oh and he found the memory leak with /showzones [3/28/2011 3:02:48 PM] Chris Eykamp: great [3/28/2011 3:03:21 PM] buckyballreaction: what about #3: clipper is slow on maps with tons of barriers? [3/28/2011 3:03:58 PM] Chris Eykamp: #3? [3/28/2011 3:05:13 PM] buckyballreaction: sorry, #3 in my list i posted earlier [3/28/2011 3:05:28 PM] buckyballreaction: about problems with the new edge geo code [3/28/2011 3:06:15 PM] Chris Eykamp: ah yes [3/28/2011 3:06:18 PM] buckyballreaction: #1 - bounds not being calculated #2 - sam's level that fails with clipper #3 - levels with lots of barriers take forever to load with using clipper [3/28/2011 3:06:28 PM] Chris Eykamp: how slow is slow [3/28/2011 3:06:32 PM] buckyballreaction: http://96.2.123.136/bitfighter/zzzz3.level [3/28/2011 3:06:40 PM] buckyballreaction: 5 seconds on my home laptop [3/28/2011 3:06:42 PM] Chris Eykamp: that level isn't THAT big [3/28/2011 3:06:46 PM] buckyballreaction: that's like 15 for you [3/28/2011 3:06:50 PM] Chris Eykamp: right [3/28/2011 3:06:57 PM] buckyballreaction: maybe that's not the level, let me check.. [3/28/2011 3:08:32 PM] buckyballreaction: yep, that's the level [3/28/2011 3:08:38 PM] buckyballreaction: maybe it's all the criss-crosses [3/28/2011 8:22:39 PM] buckyballreaction: . [3/28/2011 10:05:42 PM] karamazovapy: mac daddy make ya, JUMP! JUMP! [3/28/2011 10:06:26 PM] karamazovapy: daddy mac make ya, JUMP! JUMP! [3/28/2011 10:06:36 PM] karamazovapy: kris kross make ya, JUMP! JUMP! [3/28/2011 10:37:54 PM] buckyballreaction: straight form the 80s! [3/28/2011 10:51:58 PM] buckyballreaction: i forgot to ask: would it be a good idea to create a sub-folder called 'src', then put in all the code and various libraries there? that way the project root would be a little cleaner... [3/28/2011 10:52:38 PM] buckyballreaction: vc++ projects should still work ok - i'd clean up the mac/linux building [3/28/2011 10:57:55 PM] Chris Eykamp: all the code is already in the zap folder -- would you rename that? or are you thinking src/tnl, src/sqlite, src/zap, etc.? [3/28/2011 10:58:02 PM] buckyballreaction: yes [3/28/2011 10:58:04 PM] buckyballreaction: the latter [3/28/2011 10:59:08 PM] Chris Eykamp: so would it be a good idea? [3/28/2011 10:59:28 PM] Chris Eykamp: it's not a bad idea [3/28/2011 10:59:29 PM] buckyballreaction: well - i don' tthink it is good or bad as much as clean :) [3/28/2011 10:59:48 PM] Chris Eykamp: you know more about clean than I do! [3/28/2011 11:00:03 PM] buckyballreaction: i htink i drive my wife crazy because of it... [3/28/2011 11:00:22 PM] Chris Eykamp: trying to think if there are any ramifications for the server [3/28/2011 11:00:35 PM] Chris Eykamp: as long as the exe folder is in the right place... [3/28/2011 11:01:04 PM] buckyballreaction: yes - that is the only thing... relative paths to the exe folder will have to change in the respective project files - but that is easy [3/28/2011 11:01:08 PM] buckyballreaction: exe will stay where it is [3/28/2011 11:01:36 PM] buckyballreaction: but i wouldn't do this until after this next release [3/28/2011 11:02:04 PM] buckyballreaction: which seems to keep eluding us... [3/28/2011 11:02:12 PM] Chris Eykamp: I kind of like having the zap folder where it is... but the other stuff makes sense [3/28/2011 11:02:52 PM] Chris Eykamp: and if moving the other stuff makes sense, then moving zap makes sense [3/28/2011 11:03:01 PM] buckyballreaction: hehe [3/28/2011 11:03:20 PM] buckyballreaction: yeah - and it's easier to keep them all in the same directory so i don't have to alter a million include paths [3/28/2011 11:04:13 PM] Chris Eykamp: ok [3/28/2011 11:13:03 PM] buckyballreaction: what is left for release? [3/28/2011 11:13:30 PM] buckyballreaction: i see two 015a things: 1. send all joystick data 2. bots ht owns forcefields [3/28/2011 11:13:46 PM] buckyballreaction: i have no idea where to even begin with either [3/28/2011 11:14:04 PM] buckyballreaction: would #2 have to do with the lua part of the robot? or in the c++? [3/28/2011 11:15:09 PM] Chris Eykamp: #2 is lua [3/28/2011 11:15:14 PM] Chris Eykamp: and we can defer to 016 [3/28/2011 11:15:29 PM] Chris Eykamp: #1 is actaully pretty easy [3/28/2011 11:15:51 PM] Chris Eykamp: we aready send info about joystick #1; this would just be to send it for any other sitcks we know about [3/28/2011 11:16:00 PM] Chris Eykamp: this could also be deferred [3/28/2011 11:16:08 PM] buckyballreaction: i don't think joysticks on mac even work... [3/28/2011 11:16:24 PM] Chris Eykamp: and, if non-trivial, we could discuss whether it's even needed at all [3/28/2011 11:16:38 PM] Chris Eykamp: because we do nothing with the data we already collect [3/28/2011 11:16:49 PM] buckyballreaction: then... [3/28/2011 11:16:51 PM] buckyballreaction: release time! [3/28/2011 11:17:10 PM] Chris Eykamp: yes! except that it sounds like there's lots of broken stuff still [3/28/2011 11:18:08 PM] buckyballreaction: like what? [3/28/2011 11:18:40 PM] buckyballreaction: unless you are referring to the slow outline geo on that level [3/28/2011 11:21:13 PM] Chris Eykamp: yes [3/28/2011 11:21:21 PM] Chris Eykamp: is that the only thing left? [3/28/2011 11:21:46 PM] buckyballreaction: as far as i know [3/28/2011 11:21:54 PM] buckyballreaction: i already did a LOT of method clean-up [3/28/2011 11:22:07 PM] buckyballreaction: perhaps I could do more if i searched hard enough... [3/28/2011 11:22:45 PM] Chris Eykamp: how about generating bot zones during load time and all that [3/28/2011 11:23:02 PM] buckyballreaction: instead of when a bot is added? [3/28/2011 11:23:59 PM] Chris Eykamp: yes [3/28/2011 11:24:04 PM] buckyballreaction: i actually don't remember discussing this [3/28/2011 11:24:12 PM] buckyballreaction: you think it is a good idea? [3/28/2011 11:24:33 PM] Chris Eykamp: yes -- then there will be no delay if bot is added mid-game [3/28/2011 11:24:50 PM] Chris Eykamp: and if zones fail, we set the no bots flag [3/28/2011 11:25:02 PM] Chris Eykamp: what's the downside? [3/28/2011 11:25:11 PM] buckyballreaction: none that i can think of [3/28/2011 11:25:16 PM] buckyballreaction: i already did that second part [3/28/2011 11:26:44 PM] buckyballreaction: just curious - i notice a progress bar at the start of levels some times - how does that work? [3/28/2011 11:33:38 PM] Chris Eykamp: server sends the number of objects before sending them [3/28/2011 11:41:33 PM] buckyballreaction: i guess that slow clipper level takes 3 seconds instead of 5 [3/28/2011 11:44:26 PM] Chris Eykamp: any idea why? [3/28/2011 11:44:57 PM] buckyballreaction: i haven't delved into it too much - i've only repeated what sam said [3/28/2011 11:46:44 PM] buckyballreaction: would ServerGame::cycleLevel be the appropriate place to add the zone generation? [3/28/2011 11:49:35 PM] Chris Eykamp: sure; we already have a section: // Do some prep work if we have bots and/or zones [3/28/2011 11:53:18 PM] Chris Eykamp: I also want to rethink the voting thing a little. [3/28/2011 11:53:37 PM] Chris Eykamp: remove voting from team changing for now [3/28/2011 11:55:43 PM] buckyballreaction: wow something weird happened [3/28/2011 11:57:01 PM] buckyballreaction: http://96.2.123.136/upload/snapshot25.png [3/28/2011 11:57:28 PM] buckyballreaction: i removed the requirement for bots to be in the level, and all of a sudden all the zones aren't created on this level [3/28/2011 11:57:37 PM] buckyballreaction: (which is the level that is slow with clipper) [3/28/2011 11:57:47 PM] buckyballreaction: so far all other levels generate fine, though [3/29/2011 12:00:36 AM] Chris Eykamp: [Monday, March 28, 2011 11:57 PM] buckyballreaction: <<< i removed the requirement for bots to be in the level, and all of a sudden all the zones aren't created on this levelWhat do you mean? [3/29/2011 12:01:15 AM] buckyballreaction: so before, i had to use /addbot to have the zones created [3/29/2011 12:01:39 AM] buckyballreaction: and zones were created on that level correctly - i.e. around every grouping of barriers [3/29/2011 12:02:06 AM] buckyballreaction: but it fails now that i create them in cycleLevel [3/29/2011 12:02:09 AM] buckyballreaction: which is really weird [3/29/2011 12:02:55 AM] buckyballreaction: as if zones are being created before outline geometry is being calculated... [3/29/2011 12:03:02 AM] buckyballreaction: like in another thread [3/29/2011 12:04:37 AM] Chris Eykamp: are you sure outline geom is already generated? [3/29/2011 12:04:49 AM] buckyballreaction: nope :) [3/29/2011 12:05:03 AM] buckyballreaction: but every other level i have tried (about 30) is working [3/29/2011 12:05:14 AM] buckyballreaction: granted none take as long as that to generate [3/29/2011 12:09:49 AM] buckyballreaction: hmmm... so prepareBarrierRenderingGeometry is part of clientGame and in a different RPC than cycleLevel [3/29/2011 12:10:56 AM] Chris Eykamp: ah, right. barrier render geom is not needed on server [3/29/2011 12:19:54 AM] buckyballreaction: ha! fixed it [3/29/2011 12:20:11 AM] buckyballreaction: gServerWorldBounds was being used in buildBotNavMeshZones [3/29/2011 12:20:11 AM] Chris Eykamp: what was the problem? [3/29/2011 12:20:19 AM] buckyballreaction: instead of the input bounds [3/29/2011 12:20:41 AM] buckyballreaction: and for some reason, gServerWorldBounds were zeroed on that level [3/29/2011 12:21:09 AM] buckyballreaction: so now if you host that level(zzzz3) it takes 3 seconds to load, then 3 seconds to render :) [3/29/2011 12:22:35 AM] Chris Eykamp: ha [3/29/2011 12:22:40 AM] buckyballreaction: one last test, and i'll commit... [3/29/2011 12:23:09 AM] Chris Eykamp: well, I just broke cmdrs map [3/29/2011 12:23:47 AM] buckyballreaction: noooo [3/29/2011 12:27:34 AM] buckyballreaction: it's not clipper [3/29/2011 12:27:37 AM] buckyballreaction: Timings: 291 1276 4187 [3/29/2011 12:27:58 AM] buckyballreaction: it's recast + zone adjacency [3/29/2011 12:29:03 AM] buckyballreaction: with recast off: Timings: 291 1269 3847 [3/29/2011 12:31:06 AM] Chris Eykamp: ah... are there lots of zones? [3/29/2011 12:31:12 AM] buckyballreaction: 7800 [3/29/2011 12:31:15 AM] buckyballreaction: after recast [3/29/2011 12:35:17 AM] buckyballreaction: ok, pushed the bot loading at level cycle [3/29/2011 12:35:19 AM] buckyballreaction: works well [3/29/2011 12:35:33 AM] buckyballreaction: now to properly track the performance hit... [3/29/2011 12:35:48 AM] Chris Eykamp: well, that's a lot of zones [3/29/2011 12:36:11 AM] buckyballreaction: yeah, clipper was super fast [3/29/2011 12:36:44 AM] Chris Eykamp: which was clipper? the 291? [3/29/2011 12:36:50 AM] buckyballreaction: yup [3/29/2011 12:37:01 AM] buckyballreaction: which included the buildHolesList and barrier searching [3/29/2011 12:37:49 AM] Chris Eykamp: fast! [3/29/2011 12:38:48 AM] buckyballreaction: 37918 of triangles were created on that level.. [3/29/2011 12:39:07 AM] buckyballreaction: but if clipper was so fast, how come the rendering is so slow... [3/29/2011 12:39:08 AM] Chris Eykamp: !!! [3/29/2011 12:39:31 AM] Chris Eykamp: are the two related? [3/29/2011 12:39:41 AM] buckyballreaction: they seem to take the same amount of time.. [3/29/2011 12:43:26 AM] buckyballreaction: clipper is super fast with the rendering Geo, too... so weird [3/29/2011 12:43:50 AM] Chris Eykamp: not weird at all [3/29/2011 12:43:53 AM] Chris Eykamp: it's just fast [3/29/2011 12:44:20 AM] buckyballreaction: well, i mean, i don't see where the slow down is except if it's in that loop in clipRenderLinesToPoly after clipper runs [3/29/2011 12:46:23 AM] Chris Eykamp: ah... which loop? [3/29/2011 12:46:43 AM] buckyballreaction: yep, it's the loop [3/29/2011 12:47:12 AM] buckyballreaction: Barrier::clipRenderLinesToPoly() [3/29/2011 12:47:21 AM] buckyballreaction: the for loop in that eats up all the time [3/29/2011 12:48:05 AM] buckyballreaction: i wonder if std::vector.size() isn't constant time... [3/29/2011 12:48:19 AM] buckyballreaction: which would be nuts [3/29/2011 12:49:45 AM] Chris Eykamp: what line? I can look [3/29/2011 12:49:52 AM] Chris Eykamp: fixed cmdrs map [3/29/2011 12:49:53 AM] buckyballreaction: 377 [3/29/2011 12:50:10 AM] buckyballreaction: tnlVector.size is constant time [3/29/2011 12:50:22 AM] buckyballreaction: i'm gonna prewrap it with that and see if that helps [3/29/2011 12:50:27 AM] Chris Eykamp: or (U32 k = 1; k < poly.size(); k++) ? [3/29/2011 12:52:38 AM] Chris Eykamp: Adding lineSegmentPoints.setSize(poly.size()); should make things microscopically faster [3/29/2011 12:56:24 AM] buckyballreaction: that loop is accounting for 3627 milliseconds [3/29/2011 12:56:31 AM] buckyballreaction: what the crazy [3/29/2011 12:59:15 AM] buckyballreaction: ha!! [3/29/2011 12:59:17 AM] buckyballreaction: !!! [3/29/2011 12:59:20 AM] buckyballreaction: !!!! [3/29/2011 12:59:40 AM] buckyballreaction: adding: lineSegmentPoints.setSize(poly.size()); [3/29/2011 12:59:46 AM] buckyballreaction: timing: 6 [3/29/2011 1:00:08 AM] Chris Eykamp: lots and lots of resizing [3/29/2011 1:00:14 AM] buckyballreaction: wow, that's amazing [3/29/2011 1:00:19 AM] Chris Eykamp: yes, indeed it is [3/29/2011 1:00:28 AM] Chris Eykamp: I just had a messy merge [3/29/2011 1:00:43 AM] buckyballreaction: uh oh [3/29/2011 1:01:21 AM] Chris Eykamp: i feel that hg makes the user do too much manually [3/29/2011 1:01:26 AM] Chris Eykamp: when there is a problem [3/29/2011 1:01:45 AM] Chris Eykamp: rather than focus on the problem area, as svn does, it makes the user manually merge the whole file [3/29/2011 1:01:53 AM] Chris Eykamp: won't compile now [3/29/2011 1:01:58 AM] buckyballreaction: really? [3/29/2011 1:02:15 AM] buckyballreaction: i just have hg launch kdiff3 and it goes to the areas it couldn't merge [3/29/2011 1:02:26 AM] buckyballreaction: just the conflict areas [3/29/2011 1:02:31 AM] Chris Eykamp: easy fix [3/29/2011 1:02:58 AM] Chris Eykamp: mmm... but no more wall outlines [3/29/2011 1:04:40 AM] Chris Eykamp: back in a bit [3/29/2011 1:12:47 AM] Chris Eykamp: lineSegmentPoints.setSize(poly.size()); kills my outlines [3/29/2011 1:13:19 AM] buckyballreaction: which level? [3/29/2011 1:13:47 AM] buckyballreaction: ahhh.. [3/29/2011 1:13:54 AM] buckyballreaction: interesting [3/29/2011 1:13:58 AM] buckyballreaction: yes [3/29/2011 1:14:30 AM] buckyballreaction: we need an increaseSize instead of setSize [3/29/2011 1:15:19 AM] Chris Eykamp: yes [3/29/2011 1:15:34 AM] Chris Eykamp: or figure out the total size somehow [3/29/2011 1:15:44 AM] Chris Eykamp: you'll want to update [3/29/2011 1:15:53 AM] buckyballreaction: hmmm... that may destroy the performance gains.. [3/29/2011 1:16:50 AM] Chris Eykamp: testiung [3/29/2011 1:16:50 AM] Chris Eykamp: S32 size = 0; for(U32 i = 0; i < solution.size(); i++) size += solution[i].size(); [3/29/2011 1:18:30 AM] buckyballreaction: merge was almost good... [3/29/2011 1:18:59 AM] buckyballreaction: oops [3/29/2011 1:19:07 AM] buckyballreaction: you got it in the next revision, nevermind [3/29/2011 1:20:23 AM] buckyballreaction: make sure to add 2 to: size += solution[i].size(); [3/29/2011 1:20:27 AM] buckyballreaction: size += solution[i].size() + 2; [3/29/2011 1:20:46 AM] Chris Eykamp: mmm... check my latest; see if it needs that +2 [3/29/2011 1:20:53 AM] Chris Eykamp: not sure why it does [3/29/2011 1:21:27 AM] Chris Eykamp: 4 points = 4 edges [3/29/2011 1:21:39 AM] Chris Eykamp: not 6 edges [3/29/2011 1:22:06 AM] buckyballreaction: ah, you're right [3/29/2011 1:22:10 AM] buckyballreaction: the inner loop starts at 1 [3/29/2011 1:22:11 AM] Max h: [Monday, March 28, 2011 10:06 PM] karamazovapy: <<< daddy mac make ya, JUMP! JUMP!if only I could hum to you the song thats stuck in my head right now [3/29/2011 1:22:18 AM] Max h: that i do not know the name to [3/29/2011 1:23:54 AM] buckyballreaction: timings: 284 [3/29/2011 1:24:05 AM] buckyballreaction: an order of mag better [3/29/2011 1:24:09 AM] buckyballreaction: yay [3/29/2011 1:24:10 AM] Chris Eykamp: yes [3/29/2011 1:24:32 AM] Chris Eykamp: I wonder if there is a way to get counts out of clipper [3/29/2011 1:25:43 AM] buckyballreaction: haven't looked into the main code much [3/29/2011 1:32:10 AM] buckyballreaction: you should take a look at the level 'Bitwise Orrery' [3/29/2011 1:32:27 AM] buckyballreaction: clipper fails on it - lots of overlapping walls [3/29/2011 1:40:52 AM] Chris Eykamp: did clipper fail on it before I mucked about? [3/29/2011 1:40:58 AM] buckyballreaction: i think so [3/29/2011 1:41:05 AM] buckyballreaction: that level is really goofy [3/29/2011 1:41:40 AM] buckyballreaction: i jsut tested it agian, and clipper is returning false with a zero solution [3/29/2011 1:42:11 AM] buckyballreaction: which is really funny because botzones work.. [3/29/2011 1:49:09 AM] Chris Eykamp: I see why things render so slowly with bot zones on [3/29/2011 1:49:23 AM] buckyballreaction: yep [3/29/2011 1:49:34 AM] buckyballreaction: you mean /showzones [3/29/2011 1:50:09 AM] Chris Eykamp: yes [3/29/2011 1:51:55 AM] buckyballreaction: sam brough up a good point - if people make maps with 015a and use PolyWall, then 015 clients can't run those maps [3/29/2011 1:52:37 AM] Chris Eykamp: I don't really care about that [3/29/2011 1:52:46 AM] Chris Eykamp: people should upgrade [3/29/2011 1:52:46 AM] buckyballreaction: ok [3/29/2011 1:53:21 AM] Chris Eykamp: we can advance to 016 to force an upgrade notice [3/29/2011 1:54:04 AM] buckyballreaction: so you think we are ready for 015a now? [3/29/2011 1:55:28 AM] buckyballreaction: oh, haha [3/29/2011 1:55:42 AM] buckyballreaction: i forgot to mention one other thing your new rendinering geo does.. [3/29/2011 1:56:18 AM] buckyballreaction: the zero-length barriers are no longer shown [3/29/2011 1:57:55 AM] buckyballreaction: haha, also take a look at level 'Pixel' on sam's server - another case where rendering geo fails but botzones work [3/29/2011 2:00:08 AM] Chris Eykamp: yuck [3/29/2011 2:02:54 AM] buckyballreaction: actually, i think it may be because we broke something... [3/29/2011 2:03:03 AM] buckyballreaction: almost no level works now when connecting to sam's server [3/29/2011 2:03:05 AM] Chris Eykamp: argh [3/29/2011 2:03:17 AM] Chris Eykamp: try reverting and see if that fixes the probelm [3/29/2011 2:03:30 AM] buckyballreaction: to whree? [3/29/2011 2:04:36 AM] Chris Eykamp: beginning of tonight? [3/29/2011 2:04:46 AM] buckyballreaction: wow... lot's borken [3/29/2011 2:07:02 AM] buckyballreaction: reverting to: 3f22df0bf2f1 [3/29/2011 2:07:17 AM] buckyballreaction: works ok [3/29/2011 2:11:06 AM] Chris Eykamp: we have some bad zones; one looks like this: [3/29/2011 2:11:07 AM] Chris Eykamp: Point 0 ==> 810.000000, 654.000000 Point 1 ==> 813.000000, 651.000000 Point 2 ==> 807.000000, 657.000000 [3/29/2011 2:11:14 AM] Chris Eykamp: those points appear colinear [3/29/2011 2:11:33 AM] buckyballreaction: bot zones? or walls? [3/29/2011 2:11:38 AM] buckyballreaction: outline geo, i mean [3/29/2011 2:12:18 AM] Chris Eykamp: zone [3/29/2011 2:12:34 AM] buckyballreaction: which map? [3/29/2011 2:13:38 AM] Chris Eykamp: geowar [3/29/2011 2:13:50 AM] Chris Eykamp: it's why rendering is so slow [3/29/2011 2:14:03 AM] Chris Eykamp: game keeps trying to triangulate these flat zones [3/29/2011 2:14:21 AM] Chris Eykamp: i don't know that they are otherwise harmful [3/29/2011 2:14:44 AM] Chris Eykamp: but maybe we should triangluate them (for rendering purposes), and delete them if they are empty [3/29/2011 2:15:05 AM] Chris Eykamp: don't knwo what that will do to our connectivity [3/29/2011 2:15:43 AM] Chris Eykamp: maybe this is a problem with a change I made to recast [3/29/2011 2:15:53 AM] buckyballreaction: i don't see anything you did that could cause crazyiness with the outline geo... [3/29/2011 2:15:54 AM] Chris Eykamp: well, maybe not [3/29/2011 2:16:09 AM] Chris Eykamp: I think it is in all levels [3/29/2011 2:18:52 AM] Chris Eykamp: no, not in ctf1 [3/29/2011 2:19:00 AM] Chris Eykamp: but still slow [3/29/2011 2:19:20 AM] Chris Eykamp: i'm dozing off [3/29/2011 2:19:26 AM] buckyballreaction: yeah me too [3/29/2011 2:19:30 AM] buckyballreaction: time to call it a night [3/29/2011 2:19:35 AM] buckyballreaction: good night [3/29/2011 2:20:35 AM] Chris Eykamp: ok -- 3f22df0bf2f1 works? [3/29/2011 2:20:48 AM] buckyballreaction: yep [3/29/2011 2:20:52 AM] Chris Eykamp: ok... [3/29/2011 2:20:58 AM] Chris Eykamp: sigh [3/29/2011 2:21:04 AM] Chris Eykamp: good night [3/29/2011 2:21:08 AM] buckyballreaction: night [3/29/2011 2:27:29 AM] Max h: my comptuers still acting out [3/29/2011 2:27:52 AM] Max h: im about 2 more strkes close to just wiping the whole thing [3/29/2011 2:32:13 AM] Max h: ok now im really scared [3/29/2011 2:32:52 AM] Max h: first, my sound card hardware disappeared, but the drivers were aparently "working", and the location was "unknown" [3/29/2011 2:33:16 AM] Max h: now, alot of windows are opening up in windows 2000 theme style, even though i know i left it in luna style [3/29/2011 2:33:43 AM] Max h: now, i opened up properties to check why this is ahppening, ahd nave discovered, there is no luna theme anymore, just windows classic themes [3/29/2011 2:33:49 AM] Max h: is someone really messing wiht me? [3/29/2011 2:36:11 AM] Max h: internet explorer s not responding [3/29/2011 2:36:32 AM] Max h: packets are constantly being sent thorugh my wireless card [3/29/2011 2:37:09 AM] Max h: but, in a suspisious way [3/29/2011 2:40:09 AM] Max h: thats it [3/29/2011 2:40:17 AM] Max h: i cant deal with whats going on now [3/29/2011 2:40:36 AM] Max h: i have to take one last shot in safe mode, and then im wiping out everything [3/29/2011 2:49:18 AM] Max h: ok, a forced shutdown helped it [3/29/2011 12:09:35 PM] buckyballreaction: i can't quite figure out what the problem is with the outline geo... [3/29/2011 12:12:27 PM] buckyballreaction: it's good to have one method to get the extents instead of three... [3/29/2011 5:24:45 PM] Chris Eykamp: where did the line: gClientGame->getGridDatabase()->findObjects(BarrierType, barrierList, Rect(-999999999,-999999999,999999999,999999999)); come from? [3/29/2011 5:24:52 PM] Chris Eykamp: I thought you removed it [3/29/2011 5:26:18 PM] buckyballreaction: i did - it shouldn't be there... [3/29/2011 5:26:24 PM] buckyballreaction: did you change to a different revision? [3/29/2011 5:26:38 PM] Chris Eykamp: I am at the current revision, I believe [3/29/2011 5:27:04 PM] Chris Eykamp: 7e6009e6816964021680f630fd67ad0150998ac9 [3/29/2011 5:27:17 PM] Chris Eykamp: I've seen this before [3/29/2011 5:29:36 PM] Chris Eykamp: though... [3/29/2011 5:29:37 PM] Chris Eykamp: C:\Users\Chris\Documents\bf-trunk>hg sum parent: 1686:7e6009e68169 tip Speed up branch: default commit: 9 modified, 1398 unknown update: (current) [3/29/2011 5:29:42 PM] Chris Eykamp: suggests I'm not up to date [3/29/2011 5:30:35 PM] Chris Eykamp: but... [3/29/2011 5:30:36 PM] Chris Eykamp: C:\Users\Chris\Documents\bf-trunk>hg up 0 files updated, 0 files merged, 0 files removed, 0 files unresolved [3/29/2011 5:30:41 PM] Chris Eykamp: suggests I am [3/29/2011 5:36:35 PM] Chris Eykamp: odd; I forced a revert to the tip version, and now that line is gone [3/29/2011 5:37:19 PM] buckyballreaction: 9 modified? [3/29/2011 5:37:22 PM] buckyballreaction: hg revert [3/29/2011 5:37:27 PM] buckyballreaction: oh, yes, you did [3/29/2011 5:38:10 PM] Chris Eykamp: hmmm... wonder why revert is not listed as an option when I do "hg" [3/29/2011 5:44:26 PM] buckyballreaction: i don't have it either... [3/29/2011 5:51:37 PM] Chris Eykamp: I know what broke [3/29/2011 5:51:40 PM] Chris Eykamp: last night [3/29/2011 5:51:43 PM] Chris Eykamp: now how to fix it... [3/29/2011 5:51:46 PM] buckyballreaction: tell me! [3/29/2011 5:51:52 PM] buckyballreaction: please... [3/29/2011 5:51:53 PM] Chris Eykamp: //gClientGame->getGridDatabase()->findObjects(BarrierType, barrierList, gClientGame->getWorldExtents()); gClientGame->getGridDatabase()->findObjects(BarrierType, barrierList, Rect(-999999999,-999999999,999999999,999999999)); [3/29/2011 5:52:14 PM] Chris Eykamp: getWorldExtents isn't getting updated soon enough [3/29/2011 5:52:45 PM] Chris Eykamp: so not all walls are selected; so not all wall edges are generated [3/29/2011 5:53:10 PM] Chris Eykamp: can probably update extents before this line and should be good to go [3/29/2011 5:54:01 PM] buckyballreaction: so i cahnged it to this: Rect bounds = gClientGame->getWorldExtents(); gClientGame->getGridDatabase()->findObjects(BarrierType, barrierList, bounds); [3/29/2011 5:54:04 PM] buckyballreaction: and it fails [3/29/2011 5:54:54 PM] Chris Eykamp: gClientGame->computeWorldObjectExtents(); // Make sure world extents include all loaded objects gClientGame->getGridDatabase()->findObjects(BarrierType, barrierList, gClientGame->getWorldExtents()); [3/29/2011 5:55:16 PM] Chris Eykamp: seems to work [3/29/2011 5:55:21 PM] Chris Eykamp: if you have the latest [3/29/2011 5:56:30 PM] buckyballreaction: ctf3 still fails [3/29/2011 5:56:36 PM] buckyballreaction: will do a clean... [3/29/2011 5:56:38 PM] Chris Eykamp: fixes ctf1 &2, ctf3 & 4 still broken [3/29/2011 5:56:41 PM] Chris Eykamp: argh [3/29/2011 5:56:56 PM] Chris Eykamp: those fail in a different way [3/29/2011 5:57:06 PM] Chris Eykamp: 1 &2 had missing wall edges [3/29/2011 5:57:10 PM] Chris Eykamp: 3 &4 have random lines [3/29/2011 6:37:23 PM] buckyballreaction: could it be in Game::computeWorldObjectExtents()? [3/29/2011 6:37:47 PM] buckyballreaction: perhaps when unioning all the extents [3/29/2011 6:38:31 PM] buckyballreaction: although i don't see that you made any logic changes... [3/29/2011 6:38:38 PM] Chris Eykamp: that doesn't explain how the barrier edges get scrambled [3/29/2011 6:39:11 PM] karamazovapy: (I wish I could watch Silent Running without thinking "this looks really fake" the whole time) [3/29/2011 7:23:33 PM] Chris Eykamp: so ctf3 worked fine before my most recent edits? [3/29/2011 8:30:57 PM] Chris Eykamp: The problem is this block: [3/29/2011 8:30:59 PM] Chris Eykamp: // Precomputing list size improves performance dramatically S32 size = 0; for(U32 i = 0; i < solution.size(); i++) size += solution[i].size(); lineSegmentPoints.setSize(size); [3/29/2011 8:32:25 PM] Chris Eykamp: fix is: [3/29/2011 8:32:26 PM] Chris Eykamp: lineSegmentPoints.setSize(size * 2); [3/29/2011 8:59:15 PM] Chris Eykamp: fix pushed [3/29/2011 8:59:20 PM] Chris Eykamp: all levels seem to work now [3/29/2011 9:00:12 PM] buckyballreaction: great!! [3/29/2011 9:00:44 PM] Chris Eykamp: heading home; later! [3/29/2011 9:00:48 PM] buckyballreaction: bye [3/29/2011 9:00:49 PM] Chris Eykamp: rain finally stopped! [3/29/2011 9:23:29 PM] buckyballreaction: did you want all that commented-out '// Visualize raw barrier geometry' code in barrier::clipRenderLinesToPoly? [3/29/2011 9:30:48 PM] Chris Eykamp: I did; I suppose we don't need it any more [3/29/2011 9:31:00 PM] buckyballreaction: i can clean up - i am adding some better doc [3/29/2011 9:31:05 PM] Chris Eykamp: ok [3/29/2011 9:31:20 PM] buckyballreaction: also you killed my zones somehow... [3/29/2011 9:31:28 PM] Chris Eykamp: what? [3/29/2011 9:31:39 PM] buckyballreaction: yeah, i think it has to do with the vector changes... [3/29/2011 9:31:40 PM] Chris Eykamp: I thought I tested those [3/29/2011 9:31:44 PM] buckyballreaction: let me looke real quick.. [3/29/2011 9:32:01 PM] Chris Eykamp: I made one final change I may not have tested [3/29/2011 9:32:14 PM] Chris Eykamp: but most of the vector stuff was well tested [3/29/2011 9:35:02 PM] Chris Eykamp: ctf1,2,3 all worked fine [3/29/2011 9:35:09 PM] Chris Eykamp: all work fine [3/29/2011 9:41:10 PM] Chris Eykamp: so now we have two triangulation methods [3/29/2011 9:41:28 PM] buckyballreaction: yeah, i never spent time to get poly2tri to work [3/29/2011 9:42:00 PM] Chris Eykamp: not even counting that [3/29/2011 9:42:03 PM] Chris Eykamp: we have Triangle [3/29/2011 9:42:10 PM] Chris Eykamp: and triangulate::process [3/29/2011 9:42:21 PM] buckyballreaction: ah yes, that was were the memory leak was [3/29/2011 9:42:27 PM] Chris Eykamp: where? [3/29/2011 9:42:40 PM] Chris Eykamp: triangulate::process? [3/29/2011 9:42:57 PM] buckyballreaction: yes [3/29/2011 9:43:02 PM] buckyballreaction: below the line: [3/29/2011 9:43:04 PM] buckyballreaction: //** Triangulate: ERROR - probable bad polygon! [3/29/2011 9:43:12 PM] buckyballreaction: it needed to have that delete [3/29/2011 9:43:17 PM] Chris Eykamp: ah [3/29/2011 9:43:35 PM] Chris Eykamp: maybe we can get rid of it and use Triangle [3/29/2011 9:43:47 PM] buckyballreaction: but that is called several times a second right? [3/29/2011 9:43:58 PM] Chris Eykamp: shouldn't be [3/29/2011 9:44:06 PM] Chris Eykamp: should only be called once per polygon [3/29/2011 9:44:12 PM] Chris Eykamp: and the results cached [3/29/2011 9:44:33 PM] buckyballreaction: i still think triangle is flaky [3/29/2011 9:44:55 PM] Chris Eykamp: well, perhaps it is; either way, we don't need two methods to do the same thing [3/29/2011 9:45:35 PM] buckyballreaction: i agree - i thought that that the old one was called a ton, so since it was simpler it was good to leave [3/29/2011 9:45:43 PM] Chris Eykamp: simpler, probably [3/29/2011 9:45:58 PM] Chris Eykamp: it's called 14 times [3/29/2011 9:51:00 PM] Chris Eykamp: dang it; I commented out a pair of lines in the editor before I went on vacation to test something; I've forgotten what it was, but now the walls don't render properly [3/29/2011 9:51:21 PM] Chris Eykamp: found it! lucky! [3/29/2011 9:51:51 PM] buckyballreaction: phoew [3/29/2011 9:52:02 PM] Chris Eykamp: haven't fixed it yet though [3/29/2011 9:59:22 PM] Chris Eykamp: now I remember why I commented those lines out [3/29/2011 9:59:23 PM] Chris Eykamp: ugh [3/29/2011 10:02:50 PM] buckyballreaction: yeah zones are a bit more volatile - on complex levels with lots of triangles they fail... [3/29/2011 10:03:02 PM] buckyballreaction: whereas they didn't last night [3/29/2011 10:03:28 PM] Chris Eykamp: example? [3/29/2011 10:03:48 PM] buckyballreaction: zzzz3.level [3/29/2011 10:04:02 PM] Chris Eykamp: oh.... that level [3/29/2011 10:08:47 PM] Chris Eykamp: the editor needs a major refactor [3/29/2011 10:08:52 PM] buckyballreaction: sure does [3/29/2011 10:09:27 PM] Chris Eykamp: our outline methods now take a list of Barriers; we don't use them in the editor [3/29/2011 10:10:19 PM] Chris Eykamp: so we'll need to create a special item that inherits from our WorldItem and Barriers [3/29/2011 10:10:33 PM] Chris Eykamp: everything is a WorldItem in the editor [3/29/2011 10:10:58 PM] Chris Eykamp: but I've been wanting to tie the editor closer to the actual objects for a while, so this may be a start [3/29/2011 10:13:43 PM] Samuel Williams: For speed on calculating outline in editor, may want to calculate outline walls only the small location where something changed, not everything. [3/29/2011 10:16:23 PM] Chris Eykamp: that's what we were doing [3/29/2011 10:16:31 PM] Chris Eykamp: unfortunately... [3/29/2011 10:16:41 PM] Chris Eykamp: I'm not sure we can still do that [3/29/2011 10:16:56 PM] Chris Eykamp: but i agree, that would be ideal [3/29/2011 10:17:06 PM] buckyballreaction: are you editing barrier.cpp or botnavmeshzone code? [3/29/2011 10:17:18 PM] Chris Eykamp: not really [3/29/2011 10:17:26 PM] Chris Eykamp: a few comments and whathots [3/29/2011 10:17:34 PM] Chris Eykamp: mostly focusing on editor [3/29/2011 10:17:37 PM] buckyballreaction: can you commit those? [3/29/2011 10:18:21 PM] buckyballreaction: i want to reduce conflicts, a little refactoring was lost from the merge last night [3/29/2011 10:18:38 PM] Chris Eykamp: slooow [3/29/2011 10:20:59 PM] Chris Eykamp: only edits in editor and geomutils [3/29/2011 10:21:08 PM] Chris Eykamp: back later [3/29/2011 10:23:26 PM] buckyballreaction: getWorldExtents is 0 again on some levels, argh [3/29/2011 10:23:36 PM] buckyballreaction: when building zones - that's why it's failing [3/29/2011 10:26:28 PM] buckyballreaction: what if i were to compute them in cycleLevel instead? [3/29/2011 10:42:10 PM] buckyballreaction: yep, that's a good place [3/29/2011 10:49:49 PM] buckyballreaction: i don't know what's wrong, but that loop after clipper unions the polygons now takes 13 seconds on that map [3/29/2011 11:28:13 PM] Chris Eykamp: well, I probably won't have a chance to fid out, as I left my power supply at work and have only a little more time on my battery [3/29/2011 11:40:54 PM] buckyballreaction: this is weird [3/29/2011 11:43:15 PM] buckyballreaction: with the latest checked-in code, here are the timings for that loop that was slowing down the outline geo: 1. 13664ms - with lineSegmentPoints.setSize(segments * 2) 2. 9063ms - with lineSegmentPoints.setSize(segments) 3. 4532ms - with no pre-computed setSize [3/29/2011 11:43:34 PM] buckyballreaction: that's after doing a complete project clean and recompile [3/29/2011 11:44:12 PM] Chris Eykamp: what??!? [3/29/2011 11:44:19 PM] buckyballreaction: yep [3/29/2011 11:44:36 PM] Samuel Williams: maybe the computer is trying very hard to find some free memory? [3/29/2011 11:45:09 PM] Chris Eykamp: the idea was that by setting the size ahead of time, memory management would be simplified, and hence faster [3/29/2011 11:45:20 PM] buckyballreaction: it seems like the speed gain must be due to: 1. my insanity 2. bad compile with older object files at the time... [3/29/2011 11:46:07 PM] Samuel Williams: maybe it tries to repeadedly call constructor inside setsize for each elements? [3/29/2011 11:47:09 PM] Chris Eykamp: it was significantly faster earlier today [3/29/2011 11:47:30 PM] buckyballreaction: i don't know what happened... [3/29/2011 11:47:30 PM] Samuel Williams: or, i see the problem, using setSize, then pushback, will cause empty data for the first segments * 2. [3/29/2011 11:47:56 PM] buckyballreaction: sam, explain further [3/29/2011 11:49:08 PM] Samuel Williams: lineSegmentPoints.setSize(segments * 2); lineSegmentPoints.push_back(Point(a,b)); Push back will only add on to the end of the number of elements. [3/29/2011 11:50:27 PM] Samuel Williams: lineSegmentPoints.setsize will make it that size, but push_back will add more to that size. [3/29/2011 11:50:33 PM] Chris Eykamp: maybe lineSegPts[i]=Point(a,b) [3/29/2011 11:50:35 PM] Chris Eykamp: ? [3/29/2011 11:50:46 PM] Chris Eykamp: instead of push_back? [3/29/2011 11:51:02 PM] Chris Eykamp: I thought that push_back would use an available slot from setSize if it were available [3/29/2011 11:51:06 PM] Chris Eykamp: perhaps i was wrong' [3/29/2011 11:51:07 PM] buckyballreaction: me too [3/29/2011 11:51:43 PM] buckyballreaction: let me try that [3/29/2011 11:52:55 PM] Samuel Williams: Vector lineSegmentPoints(100); will allocate that much memory, but keeps getSize() == 0. setSize() will set the size to that much, then there is no need for push_back [3/29/2011 11:54:39 PM] Samuel Williams: The slowdown is where Vector needs more memory for push_back, and has to re-allocate and move memory.. [3/29/2011 11:55:09 PM] Chris Eykamp: I agree that is the likely problem; thought we were avoiding that; may need to assign directly to index to avoid [3/29/2011 11:55:21 PM] buckyballreaction: i am trying that now [3/30/2011 12:01:26 AM] Chris Eykamp: so am I :) [3/30/2011 12:01:37 AM] Chris Eykamp: because I need to refactor that a little for the edito [3/30/2011 12:01:38 AM] Chris Eykamp: r [3/30/2011 12:01:50 AM] buckyballreaction: woo! segafult [3/30/2011 12:04:04 AM] buckyballreaction: wow, down to 5ms [3/30/2011 12:04:08 AM] buckyballreaction: that's amazing [3/30/2011 12:04:23 AM] buckyballreaction: arrays are soooo much faster [3/30/2011 12:05:32 AM] buckyballreaction: works well [3/30/2011 12:05:35 AM] buckyballreaction: want me to check in? [3/30/2011 12:06:56 AM] Chris Eykamp: You may also want to scan the code for other instances of setsize and make sure we're not maing the same error [3/30/2011 12:07:03 AM] buckyballreaction: ok [3/30/2011 12:07:27 AM] buckyballreaction: i can't believe i totally misunderstood how setSize works [3/30/2011 12:07:36 AM] Chris Eykamp: and also for declarations that look like Vector name(size) [3/30/2011 12:07:47 AM] Chris Eykamp: me too [3/30/2011 12:07:50 AM] Chris Eykamp: thanks Sam!! [3/30/2011 12:08:06 AM] buckyballreaction: so check in at least what i have? then i go Vector hunting? [3/30/2011 12:10:06 AM] Chris Eykamp: sure [3/30/2011 12:10:27 AM] Chris Eykamp: 58% batter [3/30/2011 12:10:28 AM] Chris Eykamp: y [3/30/2011 12:12:32 AM] buckyballreaction: makeing cookies? [3/30/2011 12:12:35 AM] buckyballreaction: pushed [3/30/2011 12:12:43 AM] buckyballreaction: hope it doesn't conflict too much... [3/30/2011 12:13:12 AM] Chris Eykamp: it will be bad [3/30/2011 12:14:02 AM] buckyballreaction: do you have a favourite diff viewer? [3/30/2011 12:14:30 AM] buckyballreaction: if not, kdiff3 will load conflict merges and only require you to solve the conflicts [3/30/2011 12:15:28 AM] buckyballreaction: not sure how to tie that in on windows, but on linux in the .hgrc file i added: [extdiff] cmd.kdiff3= [merge-tools] kdiff3.args = $base $local $other -o $output [3/30/2011 12:16:09 AM] buckyballreaction: before that i had to add the extension: [extensions] hgext.extdiff= [3/30/2011 12:16:33 AM] Chris Eykamp: I use (and like) winmerge [3/30/2011 12:18:55 AM] buckyballreaction: no other setSize with push_back [3/30/2011 12:21:22 AM] Chris Eykamp: there must be! [3/30/2011 12:22:09 AM] buckyballreaction: i looked through all declarations of setSize on a Vector in the zap/ folder - all data was being set with array[] [3/30/2011 12:22:13 AM] buckyballreaction: afterwards [3/30/2011 12:22:29 AM] Chris Eykamp: ah, ok [3/30/2011 12:22:42 AM] Chris Eykamp: good [3/30/2011 12:22:55 AM] buckyballreaction: make me wonder whether using tnlVector is all that beneficial... [3/30/2011 12:23:08 AM] buckyballreaction: maybe we should just use arrays and std::vector [3/30/2011 12:24:04 AM] Samuel Williams: std::vector might allow getting the address by using &vector1[0]; [3/30/2011 12:24:13 AM] buckyballreaction: it doesn't [3/30/2011 12:24:20 AM] buckyballreaction: i tried :( [3/30/2011 12:24:46 AM] buckyballreaction: see my second comment here: http://code.google.com/p/bitfighter/issues/detail?id=87 [3/30/2011 12:28:07 AM] buckyballreaction: oh wait... maybe it can allow that sam [3/30/2011 12:28:27 AM] buckyballreaction: i must have done something different... [3/30/2011 12:28:30 AM] buckyballreaction: need to test... [3/30/2011 12:30:39 AM] Chris Eykamp: wow... editor working [3/30/2011 12:30:46 AM] Chris Eykamp: without my great refactor [3/30/2011 12:31:04 AM] buckyballreaction: ?? [3/30/2011 12:34:36 AM] Chris Eykamp: I was going to merge walls with editor items [3/30/2011 12:34:39 AM] Chris Eykamp: may not need to [3/30/2011 12:38:12 AM] buckyballreaction: actually it looks like std::vector lets you do &vector as well as vector[i] [3/30/2011 12:38:17 AM] buckyballreaction: why did i think otherwise? [3/30/2011 12:41:21 AM] Chris Eykamp: but does it let you get a pointer to the array? [3/30/2011 12:41:37 AM] Chris Eykamp: I don't like refactoring under the gun of shutdown from battery loss [3/30/2011 12:41:39 AM] Chris Eykamp: stressful [3/30/2011 12:41:47 AM] Chris Eykamp: 47% [3/30/2011 12:41:53 AM] buckyballreaction: stress bad [3/30/2011 12:42:01 AM] buckyballreaction: shut down all flash apps [3/30/2011 12:43:37 AM] Samuel Williams: 58% at 31 minutes ago, now 47% battery? at that rate it may last for about 100 more minutes? [3/30/2011 12:43:56 AM] Chris Eykamp: maybe -- new battery, never run it down before [3/30/2011 12:44:16 AM] Chris Eykamp: still pressure! [3/30/2011 12:47:57 AM] buckyballreaction: haven't got the array pointer working... but why not just pass by reference (and alter code to match?) [3/30/2011 12:48:10 AM] buckyballreaction: it was that array pointer that is the problem.. [3/30/2011 12:48:13 AM] buckyballreaction: now i remember [3/30/2011 12:49:23 AM] Chris Eykamp: one reason is passing the array is more efficient in some cases; opengl has some very optimized drawing routines that are based on an array of coordinates. a Vector can be used as input to thtat without further dinking around [3/30/2011 12:49:40 AM] buckyballreaction: ahhh... ok. [3/30/2011 12:49:46 AM] buckyballreaction: passing to methods we can't change [3/30/2011 12:49:49 AM] buckyballreaction: that makes sense [3/30/2011 12:51:34 AM] Chris Eykamp: I'm very tempted to check in my work so far, before you do!@ [3/30/2011 12:52:00 AM] buckyballreaction: i haven't done much work since i checked in 40 min. ago :) [3/30/2011 12:52:12 AM] buckyballreaction: i've been playing with vectorVectorvectorVectorvectorVector [3/30/2011 12:52:31 AM] Chris Eykamp: you haven't put it in the repository yet, have you? [3/30/2011 12:52:39 AM] buckyballreaction: uh oh [3/30/2011 12:52:46 AM] Chris Eykamp: so... tempted... [3/30/2011 12:53:10 AM] buckyballreaction: i did push [3/30/2011 12:53:29 AM] buckyballreaction: that's why i asked if you were editing barrier.cpp and botnav.... [3/30/2011 12:53:37 AM] buckyballreaction: hoping to stave off a painful merge... [3/30/2011 12:53:47 AM] Chris Eykamp: I wasn't then; am now [3/30/2011 12:54:15 AM] Chris Eykamp: get your stuff in, I'll merge; I want to make sure my latest is in before my machine dies [3/30/2011 12:54:34 AM] buckyballreaction: i have nothiing further to push [3/30/2011 12:55:32 AM] buckyballreaction: i can't believe how ugly the std:: code is to try and follow [3/30/2011 12:55:43 AM] Chris Eykamp: ok then... [3/30/2011 12:55:53 AM] Chris Eykamp: 3... [3/30/2011 12:55:56 AM] Chris Eykamp: 2... [3/30/2011 12:55:59 AM] Chris Eykamp: 1... [3/30/2011 12:56:02 AM] Chris Eykamp: 0... [3/30/2011 12:56:04 AM] buckyballreaction: hg pull [3/30/2011 12:56:18 AM] Chris Eykamp: doh! [3/30/2011 1:00:27 AM] Chris Eykamp: nervous about order of ops in a-b+c? [3/30/2011 1:00:52 AM] buckyballreaction: yes - because i have seen crazy things on different platforms depending on th ecompiler [3/30/2011 1:01:20 AM] buckyballreaction: but mostly so my brain feels safe - bad habits from math [3/30/2011 1:01:52 AM] Chris Eykamp: something broke during the merge [3/30/2011 1:02:16 AM] buckyballreaction: i can try and fix if your about to lose power [3/30/2011 1:02:19 AM] buckyballreaction: you're [3/30/2011 1:02:48 AM] Chris Eykamp: here are the (now) 3 problems I am seeing: [3/30/2011 1:03:09 AM] Chris Eykamp: 1) in ctf1, one wall in editor is not being "edged" properly (near UL corner) [3/30/2011 1:03:30 AM] Chris Eykamp: 2) turrets/ffs are snapping to inner edges (that are not visible) in editor [3/30/2011 1:03:54 AM] Chris Eykamp: and, the new one from merge, 3) wall outlines only partially rendered when playing [3/30/2011 1:04:10 AM] Chris Eykamp: I'm going to try to fix 3 first, will elt you know what happens [3/30/2011 1:04:28 AM] buckyballreaction: which map for #3 [3/30/2011 1:04:28 AM] buckyballreaction: ? [3/30/2011 1:04:35 AM] Chris Eykamp: all ctf1 [3/30/2011 1:04:39 AM] Chris Eykamp: will push now [3/30/2011 1:04:40 AM] buckyballreaction: ok [3/30/2011 1:04:42 AM] buckyballreaction: k [3/30/2011 1:04:55 AM] buckyballreaction: also, i found the pointer for std::vector [3/30/2011 1:05:44 AM] buckyballreaction: you can either: 1. int* arrayPtr = &vec[0]; 2. int* arrayPtr = vec.data(); [3/30/2011 1:06:28 AM] Chris Eykamp: ok, so maybe getting rid of Vector will be feasible? [3/30/2011 1:06:34 AM] buckyballreaction: oh yeah! [3/30/2011 1:06:45 AM] buckyballreaction: i like you commit comment: 'editor working better now' [3/30/2011 1:06:48 AM] Chris Eykamp: or using it to wrap Vector [3/30/2011 1:06:52 AM] Chris Eykamp: well, it is [3/30/2011 1:07:04 AM] Chris Eykamp: rather Vector wrapping vector [3/30/2011 1:07:06 AM] buckyballreaction: what did you make work better [3/30/2011 1:07:07 AM] buckyballreaction: ? [3/30/2011 1:07:17 AM] buckyballreaction: no, you can extent vector without serious problems [3/30/2011 1:07:20 AM] buckyballreaction: can't [3/30/2011 1:07:23 AM] Chris Eykamp: edges rendered properly 99% [3/30/2011 1:07:24 AM] buckyballreaction: extend [3/30/2011 1:07:50 AM] Chris Eykamp: can't extend, but can create class Vector that has at it's core a vector [3/30/2011 1:07:58 AM] Chris Eykamp: and can return the vector for methods that need it [3/30/2011 1:08:12 AM] buckyballreaction: i guess that's true [3/30/2011 1:08:41 AM] Chris Eykamp: there are a couple of Vector methods that vector doesn't have, but we've covered the critical ones [3/30/2011 1:09:19 AM] buckyballreaction: how was edges not working before? [3/30/2011 1:09:46 AM] Samuel Williams: Here is how to get the address of std::vector http://96.2.123.136/bitfighter/std_vector.txt [3/30/2011 1:09:57 AM] Chris Eykamp: in editor, you saw all 4 edges of every wall segment [3/30/2011 1:10:11 AM] buckyballreaction: oh yeah [3/30/2011 1:10:20 AM] buckyballreaction: i thought that that was by design... [3/30/2011 1:10:29 AM] buckyballreaction: to give it an engineering feel [3/30/2011 1:12:09 AM] Chris Eykamp: and 4) instructions not rendering properly (probably same problem as 1) [3/30/2011 1:12:54 AM] buckyballreaction: wait, did you just undo your refactor to my refactor of putting clipper in GeomUtils? [3/30/2011 1:13:37 AM] Chris Eykamp: probably [3/30/2011 1:13:40 AM] Chris Eykamp: needs change [3/30/2011 1:13:54 AM] Chris Eykamp: I need to call that inner method from 2 places [3/30/2011 1:14:05 AM] Chris Eykamp: if that's what you're talking about [3/30/2011 1:14:05 AM] buckyballreaction: cool [3/30/2011 1:14:15 AM] Chris Eykamp: too many things calling other things [3/30/2011 1:14:18 AM] buckyballreaction: yeah, i had put that in GeomUtils originally [3/30/2011 1:14:25 AM] buckyballreaction: ok, i'm gonna fix your merge... [3/30/2011 1:14:34 AM] buckyballreaction: my optimizations were lost [3/30/2011 1:15:15 AM] Chris Eykamp: sorry! [3/30/2011 1:15:25 AM] Chris Eykamp: I think they're there though [3/30/2011 1:15:41 AM] Chris Eykamp: because I made them in parallel [3/30/2011 1:15:59 AM] buckyballreaction: wait! [3/30/2011 1:16:02 AM] buckyballreaction: you're right! [3/30/2011 1:16:10 AM] buckyballreaction: sorry, i was reading the diff backwards [3/30/2011 1:17:08 AM] buckyballreaction: missed one: ignoreOrientation can be true and give a speed boost (I clocked about 20%) [3/30/2011 1:17:20 AM] buckyballreaction: but it needs to be false if we use poly2tri [3/30/2011 1:17:59 AM] buckyballreaction: i can make that quick change and push [3/30/2011 1:18:30 AM] buckyballreaction: @sam, does vc++ have the std::vector::data() method available? [3/30/2011 1:21:10 AM] Samuel Williams: no, i don't see std::vector::data() [3/30/2011 1:21:25 AM] buckyballreaction: rats - because that looks cleaner [3/30/2011 1:21:27 AM] Chris Eykamp: we have findZoneContaining and findZoneContainingPoint in BotNavMeshZone [3/30/2011 1:21:34 AM] Chris Eykamp: can they be combined? [3/30/2011 1:21:40 AM] buckyballreaction: let me look... [3/30/2011 1:22:16 AM] Chris Eykamp: 35% [3/30/2011 1:22:47 AM] buckyballreaction: findZoneContainingPoint is used by linkTeleportersBotNavMeshZoneConnections [3/30/2011 1:23:02 AM] buckyballreaction: the other is used by robots [3/30/2011 1:23:38 AM] Chris Eykamp: but they do the same thing? [3/30/2011 1:23:54 AM] Samuel Williams: findZoneContaining returns U16 number, the other returns BotNavMeshZone *, they appear to do the same... [3/30/2011 1:24:34 AM] Chris Eykamp: yes; could return the zone and then just grab it's id; no need for separate method [3/30/2011 1:26:18 AM] buckyballreaction: they are identical - except one returns NULL and the other U16_MAX [3/30/2011 1:28:30 AM] buckyballreaction: we need one in BotNavMeshZone:: namespace for robots to use [3/30/2011 1:30:21 AM] Samuel Williams: findZoneContainingPoint may be faster, as it looks into grid database. [3/30/2011 1:30:56 AM] buckyballreaction: i need to head to bed [3/30/2011 1:31:03 AM] buckyballreaction: can't keep eyes open [3/30/2011 1:31:12 AM] buckyballreaction: good night everyone [3/30/2011 1:32:07 AM] Chris Eykamp: night [3/30/2011 1:32:46 AM] Chris Eykamp: ok, figured out the in-game rendering issue [3/30/2011 1:32:54 AM] Chris Eykamp: now to figure out the right fix [3/30/2011 1:36:50 AM] Chris Eykamp: ok, that chunk has been pushed [3/30/2011 1:36:59 AM] Chris Eykamp: now just the editor/instructions problems remain [3/30/2011 1:47:53 AM] Chris Eykamp: machine dying [3/30/2011 1:47:57 AM] Chris Eykamp: bye [3/30/2011 2:37:13 AM] Samuel Williams: Trying to add 2-points polygon wall, There is a problem with "delete this;" in Barrier Constructer, it doesn't return NULL (zero) when trying to create new barrier. So it can crash with errors anywhere there is "New Barrier();" [3/30/2011 6:27:25 PM] Max h: _k, are you on? [3/30/2011 6:28:07 PM] Max h: errrr [3/30/2011 6:28:36 PM] Max h: my pc is as screwed up now as a guy whos waken up a day into his cold [3/30/2011 6:51:24 PM] Max h: the virus is really..taken over [3/30/2011 6:51:32 PM] Max h: is anyone on? [3/30/2011 6:51:37 PM] Samuel Williams: ? [3/30/2011 6:52:11 PM] Max h: is it possable for a virus software to hurt physical hardware? [3/30/2011 6:52:22 PM] Chris Eykamp: yes, but unlikely [3/30/2011 6:52:36 PM] Max h: my ibm computer is having a virus nightmare [3/30/2011 6:52:55 PM] Max h: some software called "windows Repair" has managed to install itself onto my computer [3/30/2011 6:53:04 PM] Max h: i dont have the ability to exit out of it [3/30/2011 6:53:07 PM] Samuel Williams: it could (overclocking, overvolting, ...), but probably not as controlling that by software really depends on specific hardware. [3/30/2011 6:53:58 PM] Samuel Williams: if your windows up to date? or outdated? [3/30/2011 6:54:05 PM] Max h: no, its fine [3/30/2011 6:54:20 PM] Max h: like yesterday, when i got that first virus, now its gotten worse [3/30/2011 6:55:28 PM] Max h: i may have to go back into safe mode, but my wallpaper no longer loads, theres a status icon that looks like it appears to be the virus, telling me "damaged hard drive clusters detected. private data is at risk" even though, if you click on the bubble, it brings up the fake "windows repair utility" [3/30/2011 6:55:56 PM] Max h: im going to try to look for my windows install dvd, if i can find that [3/30/2011 6:55:59 PM] Max h: but if i cant, i cant reinstall my system [3/30/2011 6:56:33 PM] Samuel Williams: maybe you could try a "Malicuous Software Tools Removal" That can remove some types of virus infection.. http://www.microsoft.com/security/pc-security/malware-removal.aspx [3/30/2011 6:56:51 PM] Max h: also, my start menu is corrupted [3/30/2011 6:56:59 PM] Max h: and only shows one program when clicking on "all programs" [3/30/2011 6:57:43 PM] Max h: dammit, now the software is, again, going to force me to shutdown [3/30/2011 6:59:38 PM] Samuel Williams: can your computer dual-boot? ( like my computer have 2 operating system, windows XP and linux ubuntu ) [3/30/2011 6:59:51 PM] Max h: my hard drive cant be damaged though, as smart status still reports "ok" [3/30/2011 7:00:03 PM] Max h: i dont have any other os installed besides windows [3/30/2011 7:01:35 PM] Samuel Williams: you can try to install linux as a second boot, it involves needing a computer that can record ISO into a blank cd, then inserting it to disk, and it can boot off the cd... [3/30/2011 7:02:17 PM] Max h: i have a seperate sony dvd recorder, and I have made an ubuntu install disk for my mac in the past, i could try that [3/30/2011 7:02:27 PM] Max h: task manager wont stat [3/30/2011 7:03:03 PM] Samuel Williams: use a computer that is not infected with virus for downloading / burning to cd. [3/30/2011 7:03:14 PM] Max h: do you know where taskmanager is located? [3/30/2011 7:03:21 PM] Max h: so i can try opening it up manually? [3/30/2011 7:03:36 PM] Samuel Williams: press CTRL + ALT + DEL, or right click botton taskbar [3/30/2011 7:03:42 PM] Max h: On 3/30/11, at 5:02 PM, Samuel Williams wrote: > use a computer that is not infected with virus for downloading / burning to cd. might already have an ubuntu cd, ill look [3/30/2011 7:04:15 PM] Max h: when i right click the bottom taskbar, and try to select "task manager" it is in grey, and un-clickable [3/30/2011 7:04:46 PM | Edited 7:04:57 PM] Samuel Williams: For downloading ubuntu, make sure the cpu type is x86 (as most windows XP use that cpu type) (32 bit) [3/30/2011 7:05:08 PM] Max h: windows search is broken too [3/30/2011 7:05:39 PM] Max h: also, alot of my files that ive downloaded are missing [3/30/2011 7:06:10 PM] Max h: infact, when i browse my home folder, its empty [3/30/2011 7:06:40 PM] Max h: i think the virus is hiding alot of files [3/30/2011 7:07:15 PM | Edited 7:07:24 PM] Samuel Williams: yes, some virus mess around with (or delete / hide) data in the hard disk... [3/30/2011 7:07:53 PM] Max h: this is a nightmare [3/30/2011 7:08:18 PM] Max h: found taskman.exe [3/30/2011 7:09:09 PM] Max h: task manager opens, but no window shows up [3/30/2011 7:09:12 PM | Edited 7:09:23 PM] Samuel Williams: most virus can only affect one type of operating system.. virus made to infect windows XP cannot infect mac or linux. [3/30/2011 7:09:26 PM] Max h: maybe i can try safe mode first? [3/30/2011 7:10:38 PM | Edited 7:10:40 PM] Max h: computer resolution was just switched by force [3/30/2011 7:11:01 PM | Edited 7:11:15 PM] Max h: could be fatal to my monitor if resolution was high enough [3/30/2011 7:11:49 PM] Samuel Williams: if you have used linux ubuntu before in intel based mac, and still have that disk, you might be able to insert that same disk in windows xp computer and restart, and should boot the cd instead of hard disk.. [3/30/2011 7:12:17 PM] karamazovapy: safe mode is a reasonable first step [3/30/2011 7:12:23 PM] Max h: trying safe mode now [3/30/2011 7:12:39 PM] karamazovapy: but if it gets bad, a full reformat is the only sure thing [3/30/2011 7:13:20 PM] karamazovapy: you could try just reinstalling/repairing your OS, but I dunno [3/30/2011 7:13:31 PM] Max h: the virus is pretty bad righ tnow [3/30/2011 7:13:45 PM] karamazovapy: I mean, if it gets to the point where you can't boot windows at all [3/30/2011 7:13:49 PM] Max h: oh [3/30/2011 7:13:50 PM] Max h: ok [3/30/2011 7:13:56 PM] karamazovapy: some real nasties lock you out of safe mode [3/30/2011 7:14:06 PM] Samuel Williams: some virus is too new, and cannot yet be removed by any anti-virus (until they know how to remove it) [3/30/2011 7:14:30 PM] Max h: in safe mode, should i log ingo the system administrator account intstead? [3/30/2011 7:14:46 PM] Max h: since safe mode enables it? [3/30/2011 7:15:09 PM] karamazovapy: yeah, probably [3/30/2011 7:15:46 PM] Max h: ok [3/30/2011 7:16:19 PM] Max h: ok [3/30/2011 7:16:31 PM] Max h: the virus doesnt work in safe mode, so thats a good thing [3/30/2011 7:16:42 PM | Edited 7:16:51 PM] Max h: aparently, it just deleted most of the all programs shortcuts [3/30/2011 7:17:04 PM] Max h: but [3/30/2011 7:17:13 PM] Max h: it looks like all my data in my home folder is gone [3/30/2011 7:17:18 PM] Max h: but is intact in the administrator folder [3/30/2011 7:17:31 PM] Max h: and the all users folder [3/30/2011 7:18:09 PM] Max h: but i still cant use the search engine [3/30/2011 7:18:32 PM] Max h: this is depressing [3/30/2011 7:18:52 PM] Max h: im out of ideas [3/30/2011 7:18:55 PM] Max h: all my stuff is gone [3/30/2011 7:20:14 PM] Max h: _K, do you remember what the software you had me install a few days ago was? [3/30/2011 7:20:18 PM] karamazovapy: it deleted all the stuff for the user you were logged in as? [3/30/2011 7:20:21 PM] Samuel Williams: start - run - msconfig - Diagnostic Startup ? [3/30/2011 7:20:23 PM] Max h: im trying to find it in program files [3/30/2011 7:20:29 PM] karamazovapy: hijackthis, spybot s&d [3/30/2011 7:20:33 PM] Max h: On 3/30/11, at 5:20 PM, karamazovapy wrote: > it deleted all the stuff for the user you were logged in as? yes, or at least hid them [3/30/2011 7:20:45 PM] Max h: oh yeah, hijackthis [3/30/2011 7:21:02 PM] karamazovapy: not overly surprising...I have everything saved to a separate file structure, like c:\ [3/30/2011 7:21:07 PM] karamazovapy: erm... c:\custom\program files [3/30/2011 7:21:43 PM] karamazovapy: also lets me keep track of what I've installed myself [3/30/2011 7:21:44 PM] Max h: err, cant find the hijackthis folder [3/30/2011 7:22:20 PM] Max h: oh, but thats a good idea [3/30/2011 7:22:41 PM] Max h: the program files looks unharmed, but i have to search for everything manually [3/30/2011 7:24:46 PM] Max h: well, at least i know what step im on. step 1, no search engine, no shortcuts, dont know where the virus is located, but i know theres something somewhere [3/30/2011 7:25:33 PM] karamazovapy: well you can still copy files with your ipod, right? [3/30/2011 7:25:35 PM] Max h: oh, found hijackthis [3/30/2011 7:25:37 PM] Max h: yeah [3/30/2011 7:26:06 PM] buckyballreaction: this is what I do everytime this happens to someone's computer: [3/30/2011 7:26:39 PM] Max h: listening [3/30/2011 7:27:13 PM] buckyballreaction: 1. use system rescue cd to back up needed data (http://sysresccd.org) 2. dban the drive (utility on the same cd) 3. reinstall windows [3/30/2011 7:27:32 PM] buckyballreaction: that may not be what you want to hear, but it is almost always less hassle [3/30/2011 7:27:53 PM] Max h: can it rescue drivers though? [3/30/2011 7:28:18 PM] Max h: thats my only concern [3/30/2011 7:28:19 PM] buckyballreaction: you use another computer to download the appropriate drives to a USB disk [3/30/2011 7:28:31 PM] buckyballreaction: then install them off the disk once windows is reinstalled [3/30/2011 7:28:48 PM] Max h: its more of..the drivers are hard to find online [3/30/2011 7:28:59 PM] buckyballreaction: i always go to the manufacturers website, look up the model # and ge them drivers [3/30/2011 7:29:03 PM] Max h: ibm has organization toroubles [3/30/2011 7:29:11 PM] buckyballreaction: oh yeah it does [3/30/2011 7:29:32 PM] buckyballreaction: but they should be there - i've rescued many IBM systems before [3/30/2011 7:29:36 PM] Max h: plus, i have some external hardware, but i think i can set those up easilly [3/30/2011 7:30:01 PM] buckyballreaction: what is the computer model/make? [3/30/2011 7:30:12 PM] Max h: M52 ThinkCentre [3/30/2011 7:31:03 PM] buckyballreaction: what is the machine type? [3/30/2011 7:31:11 PM] buckyballreaction: something like 8099 [3/30/2011 7:31:14 PM] buckyballreaction: or 8110 [3/30/2011 7:31:16 PM] Max h: is this MT-M? [3/30/2011 7:31:22 PM] Max h: 9211kud? [3/30/2011 7:31:30 PM] buckyballreaction: that works [3/30/2011 7:31:43 PM] buckyballreaction: here are your drivers: http://www-307.ibm.com/pc/support/site.wss/MIGR-60651.html [3/30/2011 7:31:59 PM] Max h: oh wow [3/30/2011 7:32:03 PM] buckyballreaction: and i hate their driver website [3/30/2011 7:32:07 PM] Max h: thats facinating [3/30/2011 7:32:38 PM] buckyballreaction: you may have to guess at which video or network driver is yours... [3/30/2011 7:32:56 PM] buckyballreaction: i usually make folders on my USB disk called 'video' 'audio' 'network', etc. [3/30/2011 7:33:03 PM] Max h: i might be able to boot back in normal mode one more time, and open the intel graphics hud [3/30/2011 7:33:15 PM] buckyballreaction: ok good, you know it's intel [3/30/2011 7:33:27 PM] buckyballreaction: there's only one intel driver on the page [3/30/2011 7:33:28 PM] Max h: yes [3/30/2011 7:33:31 PM] Max h: oh ok [3/30/2011 7:33:42 PM] Max h: oh i see [3/30/2011 7:36:05 PM] Samuel Williams: Erasing hard disk and re-installing windows is really the only way to get rid of any and all virus, I had to reinstall my windows XP, (because of i have a failed hard disk and windows won't boot..) [3/30/2011 7:38:13 PM] buckyballreaction: oh, and when backing up - don't back up any EXE files [3/30/2011 7:38:18 PM] buckyballreaction: no matter what [3/30/2011 7:38:36 PM] buckyballreaction: or COM (but those are rare now) [3/30/2011 7:39:33 PM] Max h: aha! [3/30/2011 7:39:42 PM] karamazovapy: ? [3/30/2011 7:39:46 PM] Max h: the files were hidden, not deleted [3/30/2011 7:39:46 PM] Samuel Williams: after you re-install windows, make sure it is up to date, use windows update, many updates fixes many security problem and reduce chances of getting infected of virus.. [3/30/2011 7:40:13 PM] Max h: and theres a shortcut to the virus's fake "virus detection software" [3/30/2011 7:40:39 PM] Max h: @buckyballreactoin any at all? [3/30/2011 7:40:59 PM] buckyballreaction: nope [3/30/2011 7:41:01 PM] buckyballreaction: just say no [3/30/2011 7:41:04 PM] buckyballreaction: to EXE [3/30/2011 7:41:05 PM] Max h: ok, one of the virus's executables is called "pxxpekijomnaxjk" [3/30/2011 7:41:15 PM] buckyballreaction: i am sure there are hundreds of them [3/30/2011 7:41:17 PM] Max h: in description, it says "TFControl" [3/30/2011 7:41:31 PM] buckyballreaction: they also like to embed themselves in EXE files that you know are OK [3/30/2011 7:41:57 PM | Edited 7:42:10 PM] Max h: copyright "it lead" [3/30/2011 7:42:10 PM] Samuel Williams: virus can damage all the files in the operating system, that mey require re-install to remove virus. [3/30/2011 7:44:11 PM] Max h: right [3/30/2011 7:44:22 PM] Max h: ok, found something else, the virus used a tarma installer [3/30/2011 7:48:28 PM] buckyballreaction: sorry wireless got knocked out [3/30/2011 7:51:22 PM] Max h: question, if i come across a folder with a green checkmark icon on it, does this mean something? [3/30/2011 7:51:35 PM] buckyballreaction: i don' [3/30/2011 7:51:38 PM] buckyballreaction: t know [3/30/2011 7:51:42 PM] Max h: oh, nevermind, thats just hg kicking in..funny enough [3/30/2011 7:51:52 PM] Max h: (it was only happening on the bitfighter folder) [3/30/2011 7:52:01 PM] buckyballreaction: haven't been working with windows in a while [3/30/2011 7:52:11 PM] buckyballreaction: except to use linux to rescue files :) [3/30/2011 7:52:25 PM] Max h: lol [3/30/2011 7:52:35 PM] buckyballreaction: oh, and DON'T backup from the windows system [3/30/2011 7:53:25 PM] Max h: i wont. im just going to take a couple documents i need from the comuter, and put them on my mac, and just erase the rest [3/30/2011 7:53:40 PM] Max h: unless I succeed at my last attempt to stop this virus [3/30/2011 8:12:44 PM] Max h: umm [3/30/2011 8:13:25 PM] Max h: well deleting everything in a temp folder harm a computer at all? [3/30/2011 8:14:03 PM] buckyballreaction: shouldn't [3/30/2011 8:14:23 PM] buckyballreaction: unless you're in the middle of installing something [3/30/2011 8:14:31 PM | Edited 8:14:51 PM] Samuel Williams: anything in Temp folder shouldn't harm anything when deleted, it is just left over from some programs that need a temp space to write.. [3/30/2011 8:14:52 PM] Max h: ok [3/30/2011 8:15:36 PM] Max h: got to go, ill be back in an hour [3/30/2011 10:47:43 PM] Max h: well, i can now almost safely say, i have conquered this virus [3/30/2011 10:48:13 PM] Max h: by tracing the source files and removing those, manualy fixing the registries it corrupted, and dumping my temp files folder [3/30/2011 10:48:50 PM] Max h: @_k, spybots great, love its registry back feature [3/30/2011 10:51:25 PM] Max h: wow, it does it all [3/30/2011 10:51:44 PM] Max h: thanks for the reccomendation [3/30/2011 11:28:40 PM] Chris Eykamp: I hate samba [3/30/2011 11:33:33 PM] buckyballreaction: tell me your woes - i have samba experience (medium) [3/30/2011 11:34:06 PM] Chris Eykamp: someone (possibly me, not sure how) deleted my samba config file [3/30/2011 11:34:16 PM] Chris Eykamp: so I'm trying to recreate it [3/30/2011 11:34:25 PM] Chris Eykamp: very simple use case [3/30/2011 11:34:29 PM] buckyballreaction: need a working one? [3/30/2011 11:34:33 PM] Chris Eykamp: I want to see my files from a windows machine [3/30/2011 11:34:38 PM] Chris Eykamp: sure [3/30/2011 11:34:47 PM] buckyballreaction: simple share? [3/30/2011 11:34:48 PM] Chris Eykamp: I'm using the sample that came with samba as a template [3/30/2011 11:34:50 PM] Chris Eykamp: yes [3/30/2011 11:34:52 PM] Chris Eykamp: very simple share [3/30/2011 11:34:55 PM] buckyballreaction: k, one moment [3/30/2011 11:35:45 PM] Chris Eykamp: the problem _may be_ that I have the workgroup set wrong, but I can;t find that setting in windows to know what to set it to in samba, if it even matters [3/30/2011 11:36:05 PM] buckyballreaction: ignore the workgroup [3/30/2011 11:36:19 PM] Chris Eykamp: done! [3/30/2011 11:36:24 PM] Chris Eykamp: (ignored) [3/30/2011 11:36:54 PM] buckyballreaction: http://pastie.org/1737981 [3/30/2011 11:37:09 PM] buckyballreaction: on the samba server, you need to set up the user [3/30/2011 11:37:21 PM] Chris Eykamp: how do I do that? [3/30/2011 11:37:34 PM] buckyballreaction: to do that run: smbpasswd -a someuser [3/30/2011 11:37:38 PM] Chris Eykamp: and is the user my windows login or my linux login? [3/30/2011 11:37:46 PM] buckyballreaction: anything you want [3/30/2011 11:37:53 PM] Chris Eykamp: i see [3/30/2011 11:37:54 PM] buckyballreaction: they are users specific to the samba server [3/30/2011 11:38:04 PM] Chris Eykamp: ok, and i'll be prompted for a pw [3/30/2011 11:38:08 PM] buckyballreaction: yep [3/30/2011 11:38:08 PM] Chris Eykamp: first time I connect [3/30/2011 11:38:11 PM] Chris Eykamp: got it [3/30/2011 11:38:15 PM] Chris Eykamp: ok, let's give it a shot [3/30/2011 11:38:25 PM] Chris Eykamp: every time I set up samba it takes waaaay to long [3/30/2011 11:38:30 PM] Chris Eykamp: and makes me hostile [3/30/2011 11:39:16 PM] buckyballreaction: i always use the skeleton file i posted (add more shares if needed), and then set up a samba user with the same username as a local user that has access to the files in the shared directory on the local linux box [3/30/2011 11:41:43 PM] Chris Eykamp: smbpasswd -a chris New SMB password: Retype new SMB password: Failed to add entry for user chris. [root@Plugbox samba]# [3/30/2011 11:41:50 PM] Chris Eykamp: How do you list existing users [3/30/2011 11:42:51 PM] buckyballreaction: is there a local user named chris? [3/30/2011 11:42:57 PM] Chris Eykamp: well, trying the skeleton to see if I even get to the login stage [3/30/2011 11:42:58 PM] Chris Eykamp: no [3/30/2011 11:43:12 PM] buckyballreaction: i bet by default it ties the samba user to a local one [3/30/2011 11:43:32 PM] buckyballreaction: sometime along the samba evolution they switched to that, i think [3/30/2011 11:43:34 PM] Chris Eykamp: it may be seeing the account I created the last time I set up samba [3/30/2011 11:43:46 PM] Chris Eykamp: not looking good [3/30/2011 11:43:56 PM] Chris Eykamp: hasn't failed yet, but taking too long [3/30/2011 11:44:20 PM] Chris Eykamp: ok, failed now [3/30/2011 11:44:24 PM] buckyballreaction: argh [3/30/2011 11:44:27 PM] buckyballreaction: sorry [3/30/2011 11:44:41 PM] Chris Eykamp: no prob [3/30/2011 11:44:48 PM] Chris Eykamp: daemon is running [3/30/2011 11:45:15 PM] buckyballreaction: try this: pdbedit -w -L [3/30/2011 11:45:26 PM] buckyballreaction: run that should list the users in the samba database [3/30/2011 11:46:04 PM] buckyballreaction: unless you are using older version of samba, in which case there is a file called smbpasswd somewhere [3/30/2011 11:46:29 PM] Chris Eykamp: well, this is a measure of progress... in my samba log, I get this: [3/30/2011 11:46:30 PM] Chris Eykamp: [2011/03/30 23:44:56.809736, 0] lib/util_sock.c:1432(get_peer_addr_internal) getpeername failed. Error was Transport endpoint is not connected read_fd_with_timeout: client 0.0.0.0 read error = Connection reset by peer. [3/30/2011 11:46:59 PM] Chris Eykamp: pdbedit -w -L [root@Plugbox samba]# [3/30/2011 11:47:01 PM] Chris Eykamp: nothing [3/30/2011 11:47:18 PM] buckyballreaction: do you have a local non-root user? [3/30/2011 11:47:28 PM] Chris Eykamp: what do you think? [3/30/2011 11:47:31 PM] Chris Eykamp: :) [3/30/2011 11:47:33 PM] Chris Eykamp: no [3/30/2011 11:47:38 PM] Chris Eykamp: though I could create one [3/30/2011 11:47:41 PM] buckyballreaction: ohh.. a plugbox! [3/30/2011 11:47:48 PM] Chris Eykamp: yes, a new one [3/30/2011 11:47:56 PM] Chris Eykamp: well, a few months old [3/30/2011 11:48:02 PM] Chris Eykamp: garish pink [3/30/2011 11:48:05 PM] buckyballreaction: i hear the power supplys are flaky one many of those [3/30/2011 11:48:09 PM] buckyballreaction: pink!? [3/30/2011 11:48:21 PM] Chris Eykamp: yessir [3/30/2011 11:48:27 PM] buckyballreaction: adduser or useradd [3/30/2011 11:48:35 PM] buckyballreaction: then match the user with smbpasswd [3/30/2011 11:48:43 PM] Chris Eykamp: my old power supply may have died; they gave me a discount on a replacement [3/30/2011 11:49:21 PM] buckyballreaction: once you have a local user, you'll need to set directory permissions on your shares to allow that user [3/30/2011 11:49:33 PM] Chris Eykamp: ok [3/30/2011 11:50:54 PM] Chris Eykamp: ok I can create files on the share, and read them as well as chris [3/30/2011 11:51:13 PM] Chris Eykamp: ls [3/30/2011 11:51:15 PM] buckyballreaction: can you do 'smbpasswd -a chris' ? [3/30/2011 11:51:17 PM] Chris Eykamp: oops! [3/30/2011 11:51:17 PM] buckyballreaction: haha [3/30/2011 11:52:20 PM] Chris Eykamp: ?? [3/30/2011 11:52:20 PM] Chris Eykamp: [chris@Plugbox usbhd-sdb1]$ smbpasswd Old SMB password: New SMB password: Retype new SMB password: Receiving SMB: Server stopped responding Could not connect to machine 127.0.0.1: Call timed out: server did not respond after 20000 milliseconds [chris@Plugbox usbhd-sdb1]$ [3/30/2011 11:52:38 PM] Chris Eykamp: I'll try the -a option as root [3/30/2011 11:53:07 PM] Chris Eykamp: that worked better [3/30/2011 11:53:10 PM] Chris Eykamp: ok, done [3/30/2011 11:53:39 PM] Chris Eykamp: still not seeing the files from windows [3/30/2011 11:53:53 PM] buckyballreaction: you'll have to restart the server probably [3/30/2011 11:54:00 PM] Chris Eykamp: oh yes, good idea [3/30/2011 11:54:04 PM] buckyballreaction: can't remember if adding users required that... [3/30/2011 11:54:48 PM] Chris Eykamp: well, not restarting doesn't work, so maybe restarting will help [3/30/2011 11:55:18 PM] Chris Eykamp: I'm trying to access the files via \\192.168.blah [3/30/2011 11:55:30 PM] Chris Eykamp: just in case that;s an issue [3/30/2011 11:55:54 PM] Chris Eykamp: ok, no dice! [3/30/2011 11:56:05 PM] buckyballreaction: shouldn't be unless you disallow your router to let wireless clients connect to lan clients or other such nonsense [3/30/2011 11:56:09 PM] Chris Eykamp: wait [3/30/2011 11:56:19 PM] Chris Eykamp: why isn't my samba daemon running? [3/30/2011 11:56:27 PM] buckyballreaction: its a demon? [3/30/2011 11:56:33 PM] buckyballreaction: :) [3/30/2011 11:56:56 PM] Chris Eykamp: not sure, but it wasn't running because my ps -aux |grep blah had the wrong blah [3/30/2011 11:57:10 PM] Chris Eykamp: is running, and now, suddently, a login has appeared [3/30/2011 11:57:15 PM] Chris Eykamp: let's see what happens [3/30/2011 11:57:44 PM] Chris Eykamp: maybe samba needed to get warmed up [3/30/2011 11:57:55 PM] Chris Eykamp: lo and hehold, there's my share [3/30/2011 11:57:58 PM] buckyballreaction: yay [3/30/2011 11:58:03 PM] Chris Eykamp: and there are my files [3/30/2011 11:58:07 PM] Chris Eykamp: great! [3/30/2011 11:58:08 PM] buckyballreaction: double yay [3/30/2011 11:58:44 PM] Chris Eykamp: now to see if the files that appeared corrupt when I was reading this disk directly from windows still look b0rked [3/30/2011 11:58:55 PM] Chris Eykamp: I really hope not [3/31/2011 12:02:46 AM] Chris Eykamp: yup, still appear corrupted [3/31/2011 12:03:03 AM] buckyballreaction: sorry [3/31/2011 12:03:31 AM] Chris Eykamp: I probably have another backup [3/31/2011 12:03:35 AM] Chris Eykamp: but it does concern me a little [3/31/2011 12:03:43 AM] Chris Eykamp: this is my newest and bestest drive [3/31/2011 12:04:08 AM] Chris Eykamp: back later -- kid issues [3/31/2011 12:04:24 AM] buckyballreaction: k [3/31/2011 12:09:51 AM] buckyballreaction: in the editor, when building a continuous, multi-segment barrier; the outline geo isn't created for the last segment in the group [3/31/2011 12:10:22 AM] buckyballreaction: then when you delete the group, the graphic for that last barrier stays behind [3/31/2011 12:12:26 AM] Samuel Williams: different problem, 2 overlapping polygon walls, one in reversed order points, will not be clipped or ger clipped wrong. But 2 overlapping polygon walls both in clockwise will clip right. [3/31/2011 12:14:18 AM] buckyballreaction: wow, the editor class is enormous [3/31/2011 12:14:54 AM] Samuel Williams: UIEditor.cpp have 5867 total lines. [3/31/2011 12:16:27 AM] buckyballreaction: does the editor let you change the winding order of polywall? [3/31/2011 12:17:10 AM] buckyballreaction: also moving polywall corners doesn't seem to want to snap to the grid [3/31/2011 12:17:59 AM] buckyballreaction: ah, figured out how to reverse the winding order [3/31/2011 12:18:33 AM] buckyballreaction: actually, any type of polywall clipping is borken for me [3/31/2011 12:22:02 AM] Samuel Williams: polywall clipping mostly works in game (not in editor) [3/31/2011 12:22:14 AM] buckyballreaction: yes, i speak of editor [3/31/2011 12:22:27 AM] buckyballreaction: is there a level where it doesn't work in-game? [3/31/2011 12:23:13 AM] Samuel Williams: http://96.2.123.136/bitfighter/ztest1.level (the one that have mixed clockwise and counter-clockwise overlapping each other. [3/31/2011 12:23:51 AM] buckyballreaction: ahhh... [3/31/2011 12:23:58 AM] buckyballreaction: interesting... [3/31/2011 12:24:24 AM] buckyballreaction: zones always work... i applied the isClockwise method to buffers [3/31/2011 12:24:33 AM] Samuel Williams: if there is only clockwise polywall, it will fully be clipped correctly in-game [3/31/2011 12:24:49 AM] buckyballreaction: only CCW works too.. [3/31/2011 12:25:25 AM] Samuel Williams: yes. See the invisible wall problem? [3/31/2011 12:25:40 AM] buckyballreaction: yep [3/31/2011 12:25:55 AM] buckyballreaction: zero-length buffers do that now... [3/31/2011 12:26:13 AM] buckyballreaction: it was one of watusimoto's commits that did it... let me find out where again [3/31/2011 12:26:34 AM | Edited 12:26:39 AM] Samuel Williams: they now become invisible with the new outling geometry calculating using clipper. [3/31/2011 12:26:57 AM] buckyballreaction: ah yes, that was it [3/31/2011 12:27:24 AM] Samuel Williams: that invisible wall problem didn't exist earliear (it will be visible on old version 015) [3/31/2011 12:27:40 AM] buckyballreaction: @_k are you around? [3/31/2011 12:28:01 AM] buckyballreaction: do you remember if zero-length barriers used to be invisible in zap or early bitfighter days? [3/31/2011 12:29:00 AM] buckyballreaction: i wonder if zero-length barriers need a larger offset... [3/31/2011 12:29:07 AM] buckyballreaction: i know i use one for botzones [3/31/2011 12:29:37 AM] buckyballreaction: i did this: if (start == end) // Test for zero-length barriers difference = (end + Point(0,1)) - start; else difference = end - start; [3/31/2011 12:29:37 AM] Samuel Williams: no, but i do remember seeing invisible wall, where lots of small barrier is hidden behing one giant barrier and ships spawn on top of giant barrier [3/31/2011 12:30:02 AM] buckyballreaction: that way zone buffers are created [3/31/2011 12:32:23 AM] buckyballreaction: i could force zero length barriers to have a length of 1 or even 0.5 [3/31/2011 12:32:31 AM] buckyballreaction: but would that be a good idea? [3/31/2011 12:34:35 AM] Samuel Williams: not sure how that will look like... with multiple render lines where there is really just a wall sized at zero width. [3/31/2011 12:39:04 AM] Samuel Williams: i see editor freezing problem, if i dragging a wall, it freezes, if i stop moving wall, it unfreeze, if i move wall, it freeze again. If i hold down W to scroll while dragging, i can see the freezing effect.. Could be due to repeatedly calling slow calculating mousemove handling withoug gaving time to render.. [3/31/2011 12:46:17 AM] buckyballreaction: i don't have a freezing problem [3/31/2011 12:54:32 AM] Samuel Williams: http://www.youtube.com/watch?v=mip17xxxQZQ Shows the freezing in editor ( maybe it only happens in windows) [3/31/2011 12:55:10 AM] buckyballreaction: wow [3/31/2011 12:55:17 AM] buckyballreaction: i definitely don't have that problem.. [3/31/2011 1:00:09 AM] Samuel Williams: http://96.2.123.136/bitfighter/11033100.png RecomputerWallGeometry takes long enough that there is another mousemove to process, without render in between [3/31/2011 1:02:05 AM] buckyballreaction: you use a crazy code font [3/31/2011 1:02:20 AM] Samuel Williams: so if the mouse pointer updates at 10 milliseconds, and processing mouse move takes longer then 10 ms, then it can create freezing effect as there is no render in between mousemove [3/31/2011 1:03:25 AM] Samuel Williams: that font looks good to me, i was used to that font where a year ago i have a font that came with (windows only) Blitz Basic.. [3/31/2011 1:04:07 AM] buckyballreaction: and it doesn't hurt your eyes after hours of looking at it? [3/31/2011 1:04:44 AM] Samuel Williams: I use CRT monitors, which already smooths the screen a little.. [3/31/2011 1:04:55 AM] buckyballreaction: ah, true [3/31/2011 1:05:37 AM] Samuel Williams: well, on my triple monitor setup, i use 2 CRT, and 1 LCD (1280 x 1024) [3/31/2011 1:09:08 AM] buckyballreaction: wow [3/31/2011 1:09:09 AM] buckyballreaction: crazy [3/31/2011 1:09:18 AM] buckyballreaction: i just use 4 - 8 virtual desktops [3/31/2011 1:09:27 AM] buckyballreaction: on one monitor [3/31/2011 1:12:48 AM] Samuel Williams: My Radeon 9200 AGP have VGA, DVI-D(unused), TV out My Radeon 9250 PCI have vga, TV out(unused), DVI-I(using it as analog) I could use a TV as a fourth screen, but 480i TV too blurry. [3/31/2011 1:14:03 AM] Samuel Williams: Basically, i am running 3 screens in 2 graphics cards.. [3/31/2011 1:28:02 AM] buckyballreaction: ok, all barriers end up clounter-clockwise... [3/31/2011 1:29:18 AM] Samuel Williams: i may need to go to bed.. [3/31/2011 1:29:42 AM] buckyballreaction: ok, i almost have polywall clipping working in game no matte rwhat winding order the points are in the editor.. [3/31/2011 1:30:04 AM] Samuel Williams: good.. [3/31/2011 1:32:04 AM] buckyballreaction: it works! [3/31/2011 1:32:08 AM] buckyballreaction: checking in.. [3/31/2011 1:38:29 AM] buckyballreaction: i'm heading to bed, too [3/31/2011 1:38:30 AM] buckyballreaction: good night [3/31/2011 1:38:35 AM] Samuel Williams: bye [3/31/2011 1:42:54 AM] Max h: it never ends [3/31/2011 10:59:15 AM] Chris Eykamp: ok, 2 editor problems left: polyWalls don't intersect properly, turrets can be placed on interior wall segments that should have been clipped [3/31/2011 10:59:52 AM] buckyballreaction: barriers + polywalls don't intersect properly either [3/31/2011 11:00:14 AM] buckyballreaction: all of that is fixed by applying the fix i made here: http://code.google.com/p/bitfighter/source/detail?r=f04603371517e3ff2189a8fe8cddcba60bcd830e [3/31/2011 11:00:29 AM] buckyballreaction: the intersection problems, I mean - not sure about turret [3/31/2011 11:01:17 AM] buckyballreaction: i think the turret will fix it self once CCW points are forced on all polywalls [3/31/2011 11:03:42 AM] Chris Eykamp: I think the turret fix is related to a change in the way we handle clipped edges -- we used to store them associtead with each wall, now we hold them in a big lump [3/31/2011 11:04:00 AM] Chris Eykamp: I think we're still snapping on the old per-wall edge geometry, which exists, but is not clipped [3/31/2011 11:04:15 AM] buckyballreaction: interesting [3/31/2011 11:04:48 AM] buckyballreaction: i am almost scared to look at the editor code - it's like it's its own game [3/31/2011 11:04:56 AM] Chris Eykamp: yes [3/31/2011 11:05:22 AM] Chris Eykamp: it's always been its own thing [3/31/2011 11:06:14 AM] Chris Eykamp: oops problem #3 -- deleting wall needs to trigger wall geometry rebuild [3/31/2011 11:06:18 AM] Chris Eykamp: that should be easy [3/31/2011 11:06:28 AM] buckyballreaction: is that the phantom walls being left behind? [3/31/2011 11:06:32 AM] Chris Eykamp: yes [3/31/2011 12:31:03 PM] Chris Eykamp: On my ride in this mornign, I realized what #3 was -- I'll have that fixed tonight. I think I also have a line on the interior wall segment issue. [3/31/2011 2:04:14 PM] karamazovapy: what's the current coding conundrum? [3/31/2011 2:04:42 PM] buckyballreaction: botzones are finally complete.. now it's editor changes [3/31/2011 2:04:57 PM] buckyballreaction: i had a question for you... [3/31/2011 2:05:11 PM] buckyballreaction: about zero-length barriers [3/31/2011 2:05:21 PM] buckyballreaction: did they ever used to be invisible in game? [3/31/2011 2:05:28 PM] buckyballreaction: (because they are now...) [3/31/2011 2:06:06 PM] karamazovapy: I think zero LENGTH barriers appeared as very thin verticle slices with their specified width [3/31/2011 2:06:20 PM] buckyballreaction: yes, that has changed... [3/31/2011 2:06:28 PM] buckyballreaction: i was curious if it had ever been different before [3/31/2011 2:06:38 PM] buckyballreaction: since you are a long time player of zap/bitfighter [3/31/2011 2:06:41 PM] karamazovapy: I don't know if anyone ever really used them [3/31/2011 2:06:57 PM] karamazovapy: don't expect anyone to notice, anyway [3/31/2011 2:07:00 PM] buckyballreaction: i've seen them in several levels - Racket is one [3/31/2011 2:07:13 PM] karamazovapy: let me check an old zap build [3/31/2011 2:08:28 PM] karamazovapy: correction - they appear as horizontal segments with their specified widths [3/31/2011 2:08:46 PM] buckyballreaction: yes horizontal [3/31/2011 2:08:58 PM] buckyballreaction: ok, then this is a change [3/31/2011 2:09:42 PM] buckyballreaction: so the questions is now: do we want to leave them invisible? [3/31/2011 2:10:56 PM] karamazovapy: do we want invisible walls? [3/31/2011 2:11:25 PM] buckyballreaction: do we want to leave the zero-length segments as invisible walls (because of the recent code changes) [3/31/2011 2:13:10 PM] karamazovapy: whether it's an exploit or a feature doesn't make much difference to how people will use them [3/31/2011 2:13:38 PM] buckyballreaction: yes, and i don't care either way; i am just curious as to what to do [3/31/2011 2:14:28 PM] buckyballreaction: map-makers may be expecting zero-length barriers to show up as really thin segments; the recent code changes nullify that [3/31/2011 2:14:41 PM] karamazovapy: I know watusimoto isn't a big fan of invisible stuff [3/31/2011 2:15:40 PM] karamazovapy: I don't care much, although I can imagine playing on some frustrating levels [3/31/2011 2:58:25 PM] Chris Eykamp: I think we should add a tiny length ot 0-lenght walls for all gametypes except the yet-to-be-created dungeon game type [3/31/2011 2:59:31 PM] buckyballreaction: ok, i can do that easily... I just hope clipper is ok with it [3/31/2011 3:01:25 PM] buckyballreaction: i am frustrated at work today because I have three issues that I could fix myself if I had access, but I don't because they outsourced our IT department; therefore my issues stay unresolved because they don't have resources... grumble grumble [3/31/2011 3:02:54 PM] Chris Eykamp: well, enjoy the fact that you got my samba install all fixed up! [3/31/2011 3:03:12 PM] buckyballreaction: if only i had root access to the servers in question... [3/31/2011 3:03:27 PM] Chris Eykamp: I'm now doing a file-by-file compare of 25K files to see how far the corrpution has spread [3/31/2011 3:03:34 PM] buckyballreaction: oh man [3/31/2011 3:03:47 PM] buckyballreaction: doing a hash compare? [3/31/2011 3:04:07 PM] buckyballreaction: or do you have to check the contents because you don't have original? [3/31/2011 3:04:16 PM] Chris Eykamp: currently doing a date/filesize compare [3/31/2011 3:04:25 PM] Chris Eykamp: that will catch all my known cases [3/31/2011 3:04:33 PM] buckyballreaction: ahh, much faster [3/31/2011 3:04:38 PM] Chris Eykamp: hash compare will be more difficult, and MUCH slower [3/31/2011 3:05:34 PM] Chris Eykamp: although this is running slow enough that it *might* be doing a hash compare [3/31/2011 3:06:12 PM] buckyballreaction: you could just use rsync and do a dry-run [3/31/2011 3:06:22 PM] buckyballreaction: that's super fast [3/31/2011 3:07:59 PM] Chris Eykamp: ah, but I'm doing this on windows [3/31/2011 3:08:07 PM] buckyballreaction: evil [3/31/2011 3:08:11 PM] Chris Eykamp: I could do that from Linux, but I'd need to solve 2 problems [3/31/2011 3:08:29 PM] Chris Eykamp: 1) Mounting Ntfs disk for at least read access, probably easy [3/31/2011 3:08:50 PM] Chris Eykamp: 2) Accessing data inside a truecrypt file container, unknown difficulty [3/31/2011 3:08:50 PM] buckyballreaction: not that windows is evil, but scripting on windows is evil [3/31/2011 3:09:01 PM] buckyballreaction: ah ha! [3/31/2011 3:09:06 PM] buckyballreaction: trucrypt [3/31/2011 3:09:10 PM] buckyballreaction: fun stuff [3/31/2011 3:09:22 PM] buckyballreaction: so the TSA can see your files? [3/31/2011 3:09:36 PM] Chris Eykamp: it is; what I want to do is figure out how to mount a truecrypt container as a drive, as you do in windows [3/31/2011 3:09:51 PM] Chris Eykamp: I'm sure it can be done; no idea how [3/31/2011 3:09:53 PM] buckyballreaction: that is available for linux [3/31/2011 3:10:00 PM] Chris Eykamp: yes, but command line? [3/31/2011 3:10:06 PM] Chris Eykamp: I'm sure it is [3/31/2011 3:10:18 PM] Chris Eykamp: also, I don't have root on the machine where the container lives [3/31/2011 3:10:40 PM] buckyballreaction: ah, that's the biggest problem right there [3/31/2011 3:10:45 PM] buckyballreaction: you'd need root to mount [3/31/2011 3:10:45 PM] Chris Eykamp: it may be [3/31/2011 3:10:55 PM] Chris Eykamp: I can probably get past that hurdle [3/31/2011 3:11:01 PM] Chris Eykamp: in fact, I may have sudo privs [3/31/2011 3:11:02 PM] buckyballreaction: but here: http://www.truecrypt.org/downloads [3/31/2011 3:11:12 PM] buckyballreaction: has console-only download [3/31/2011 3:11:27 PM] Chris Eykamp: ah yes [3/31/2011 3:11:30 PM] buckyballreaction: they have decent doc as well [3/31/2011 3:11:44 PM] Chris Eykamp: I had tried installing earlier, but got discourgaged when i realized it was a compile-only solution [3/31/2011 3:11:48 PM] Chris Eykamp: no packages [3/31/2011 3:11:54 PM] buckyballreaction: hehe, yep [3/31/2011 3:11:55 PM] Chris Eykamp: I'm sure it's easy [3/31/2011 3:11:56 PM] buckyballreaction: although [3/31/2011 3:11:59 PM] buckyballreaction: what OS? [3/31/2011 3:12:10 PM] buckyballreaction: because the openSUSE buildservice might have it... [3/31/2011 3:12:47 PM] Chris Eykamp: Linux 2.6.35-28-server #49-Ubuntu SMP Tue Mar 1 14:55:37 UTC 2011 x86_64 GNU/Linux [3/31/2011 3:12:53 PM] buckyballreaction: ugh - ubuntu [3/31/2011 3:12:55 PM] Chris Eykamp: not suse [3/31/2011 3:13:02 PM] Chris Eykamp: I'll compile [3/31/2011 3:13:11 PM] Chris Eykamp: I really want to use rsync to do this syncing [3/31/2011 3:13:31 PM] Chris Eykamp: so... 64 bit, right? [3/31/2011 3:13:41 PM] buckyballreaction: yep [3/31/2011 3:14:21 PM] Chris Eykamp: I'll give it a shot [3/31/2011 3:14:54 PM] buckyballreaction: looks like you are running maverick [3/31/2011 4:16:23 PM] Chris Eykamp: whoa [3/31/2011 4:16:31 PM] Chris Eykamp: the truecript installer is way easy [3/31/2011 4:16:42 PM] Chris Eykamp: you unpack it and it's shell script [3/31/2011 4:17:06 PM] Chris Eykamp: you run that, answer a couple of trivial questions (agree to license? sudo pw?) then voila, all done [3/31/2011 4:17:32 PM] Chris Eykamp: easier than a package manager! [3/31/2011 5:06:36 PM] buckyballreaction: great! [3/31/2011 5:44:45 PM] buckyballreaction: zero-length barriers are visible in-game again with my latest push [3/31/2011 5:52:49 PM] Samuel Williams: /// This level might crash: GameType 10 8 LevelCredits sam686 Team Blue 0 0 1 PolyWall 0 1 1 1 2 1 [3/31/2011 5:55:03 PM] Samuel Williams: The problem is with "Delete this" in Barrier constructor. [3/31/2011 6:03:57 PM] Samuel Williams: http://96.2.123.136/bitfighter/ERROR110331.gif I see "Invalid barrier detected" then errors.. As seen in picture, there is 'b' barrier that only get halfway initalized.. [3/31/2011 6:04:18 PM] buckyballreaction: i fixed a type that messed up botzones [3/31/2011 6:04:21 PM] buckyballreaction: typo [3/31/2011 6:05:49 PM] buckyballreaction: line 142? [3/31/2011 6:06:54 PM] Samuel Williams: yes, "Delete this" in constructor is the problem. [3/31/2011 6:07:54 PM | Edited 6:08:10 PM] Samuel Williams: it tries to delete this while it is being created from new Barrier(...); [3/31/2011 6:10:04 PM] buckyballreaction: there is another 'delete this' on 106 [3/31/2011 6:11:08 PM] Samuel Williams: Delete this in constructor have unknown behavior, as when this says: http://stackoverflow.com/questions/5303608/delete-this-in-constructor [3/31/2011 6:12:22 PM] buckyballreaction: is there a way to call the destructor instead? [3/31/2011 6:13:35 PM] Samuel Williams: b = new Barrier();; It will still return a non-NULL pointer, even after delete this; in constructor. [3/31/2011 6:15:15 PM] Samuel Williams: b->!barrier(); (the main 'B' memory won't be freed...) [3/31/2011 6:19:23 PM | Edited 6:23:07 PM] Samuel Williams: It is possible for this to work... void reconstruct(Barrier *b) { b->~Barrier(); new(b) Barrier(); } // It will re-create Barrier without re-allocating memory.. [3/31/2011 6:23:28 PM] Samuel Williams: oops, it is ~Barrier.. that the destruct or name.. [3/31/2011 6:30:07 PM] buckyballreaction: gotta go - i'll be back tonight [3/31/2011 11:13:18 PM] buckyballreaction: good evening [3/31/2011 11:54:07 PM] Chris Eykamp: hi [3/31/2011 11:54:19 PM] buckyballreaction: good evening [4/1/2011 12:00:28 AM] buckyballreaction: i'm still scared of UIEditor.cpp [4/1/2011 12:01:03 AM] Chris Eykamp: it's a mess [4/1/2011 12:01:18 AM] Chris Eykamp: well, actually it's pretty interesting, but there's a lot going on [4/1/2011 12:01:26 AM] Chris Eykamp: it's not really a mess [4/1/2011 12:01:33 AM] Chris Eykamp: but I'm working onthe internal wall snapping [4/1/2011 12:01:42 AM] Chris Eykamp: I understand the issue; having troubles fixing it [4/1/2011 12:02:06 AM] buckyballreaction: don't we just have to force CCW winding? [4/1/2011 12:09:10 AM] Chris Eykamp: where? [4/1/2011 12:09:35 AM] buckyballreaction: on any polywall created [4/1/2011 12:10:50 AM] Chris Eykamp: users could create polywall with cw winding [4/1/2011 12:11:09 AM] Chris Eykamp: I don't know how to force it [4/1/2011 12:11:28 AM] buckyballreaction: it is forced in game upon barrier creation in the level [4/1/2011 12:11:43 AM] Chris Eykamp: yes, but users can't specify winding there [4/1/2011 12:11:52 AM] Chris Eykamp: we gernerate that from what the user input [4/1/2011 12:12:04 AM] Chris Eykamp: we could do the same for polywalls, I suppose [4/1/2011 12:12:15 AM] Chris Eykamp: in the game, we can force it [4/1/2011 12:12:20 AM] Chris Eykamp: but not in the editor [4/1/2011 12:12:24 AM] buckyballreaction: ah [4/1/2011 12:12:28 AM] Chris Eykamp: and we need to render from the editor [4/1/2011 12:12:28 AM] buckyballreaction: i was hoping you could [4/1/2011 12:12:43 AM] Chris Eykamp: what if user enters points in wrong direction? [4/1/2011 12:19:18 AM] buckyballreaction: can we auto update the order? [4/1/2011 12:19:29 AM] Chris Eykamp: that would confuse the user [4/1/2011 12:19:45 AM] Chris Eykamp: we could maintian a ccw wound copy internally [4/1/2011 12:20:40 AM] buckyballreaction: or maybe when the turret is added, we quickly check the winding order and reverse the snap? [4/1/2011 12:21:10 AM] Chris Eykamp: i don't understand that [4/1/2011 12:23:49 AM] buckyballreaction: i mean when the turret is added to a barrier, if it is clockwise flip the turret [4/1/2011 12:23:56 AM] buckyballreaction: sorry polywall [4/1/2011 12:24:02 AM] buckyballreaction: gotta get my terminology... [4/1/2011 12:25:17 AM] Chris Eykamp: what does the turret have to do with anything? all that cares about is finding an appropriate edge to snap to. winding is unimportant [4/1/2011 12:25:23 AM] buckyballreaction: wait wait... i think i misunderstand the problem: [4/1/2011 12:25:26 AM] buckyballreaction: yes [4/1/2011 12:25:33 AM] buckyballreaction: ok so state the problem again? [4/1/2011 12:25:48 AM] Chris Eykamp: I'm not sure we have a problem [4/1/2011 12:26:08 AM] buckyballreaction: turrets can be added to the inside of a polywall <-- is this it? [4/1/2011 12:26:29 AM] Chris Eykamp: yes [4/1/2011 12:26:31 AM] Chris Eykamp: but [4/1/2011 12:26:36 AM] Chris Eykamp: it's not a winding problem [4/1/2011 12:26:53 AM] Chris Eykamp: well, actually, i haven;t really tried with polywalls [4/1/2011 12:27:02 AM] Chris Eykamp: they can be added inside regular walls, and that;s what I'm fixing now [4/1/2011 12:28:18 AM] buckyballreaction: ok, so for barriers, i can only add turrets facing outwards; for polywalls, i can add turrets facing both inwards and outwards [4/1/2011 12:28:35 AM] buckyballreaction: is this even a problem, then? [4/1/2011 12:28:48 AM] Chris Eykamp: well, sure it's a problem, but not a winding one [4/1/2011 12:29:02 AM] buckyballreaction: yes, i see that now - i was mixing up my problems... [4/1/2011 12:29:04 AM] Chris Eykamp: add two crossing barriers; you can add turrets to the insides of the intersection [4/1/2011 12:29:11 AM] Chris Eykamp: that's what I'm fixing [4/1/2011 12:29:15 AM] buckyballreaction: ah ok [4/1/2011 12:29:38 AM] Chris Eykamp: but I'm getting problems with the const keyword [4/1/2011 12:29:54 AM] buckyballreaction: was this a problem in 015, too? [4/1/2011 12:30:57 AM] Chris Eykamp: the problem I'm fixing? no [4/1/2011 12:30:59 AM] Chris Eykamp: it's new [4/1/2011 12:31:04 AM] Chris Eykamp: since clipper [4/1/2011 12:31:17 AM] buckyballreaction: so a regression [4/1/2011 12:31:18 AM] buckyballreaction: ok [4/1/2011 12:32:09 AM] buckyballreaction: actually this may be a winding problem [4/1/2011 12:32:19 AM] buckyballreaction: for clipper, at least [4/1/2011 12:32:26 AM] Chris Eykamp: the problem I'm working on is not a winding problem [4/1/2011 12:32:53 AM] buckyballreaction: you need to input everything into clipper as CCW for them to be clipped as the 'subject' polys [4/1/2011 12:33:48 AM] Chris Eykamp: yes, but that's not the problem here [4/1/2011 12:33:49 AM] buckyballreaction: so if everything clipped properly in the editor, there would be no internal outline geo for the turrets to snap to [4/1/2011 12:34:00 AM] buckyballreaction: ok [4/1/2011 12:34:13 AM] buckyballreaction: maybe i'll just shut my mouth and find something else to work on... :) [4/1/2011 12:34:41 AM] Chris Eykamp: yes! (not the shut mouth part, but your anaysis) [4/1/2011 12:35:03 AM] buckyballreaction: hehe [4/1/2011 12:35:13 AM] Chris Eykamp: but it's very complex because the outline geometry needs to be in a database for speed [4/1/2011 12:35:23 AM] Chris Eykamp: for snapping purposes [4/1/2011 12:35:27 AM] buckyballreaction: ah [4/1/2011 12:35:47 AM] Chris Eykamp: when we're drawing, we can just have a jumble of lines and blit them onto the screen [4/1/2011 12:36:12 AM] Chris Eykamp: but for snapping they need to be in the db, so they can't just be a long vector of points, they need to be objects that inherit from databaseObject [4/1/2011 12:36:26 AM] Chris Eykamp: and so it gets really messy really quickly [4/1/2011 12:36:41 AM] Chris Eykamp: in the game, we don;t care about any of that... just draw [4/1/2011 12:36:45 AM] buckyballreaction: gotcha [4/1/2011 12:36:47 AM] buckyballreaction: makes sense [4/1/2011 12:36:52 AM] buckyballreaction: so how did this regress? [4/1/2011 12:37:43 AM] Chris Eykamp: because before we associated outline lines with the segments they were attached to; we can't do that anymore because clipper just returns a mess of lines [4/1/2011 12:37:56 AM] Chris Eykamp: so now those lines need to be put into the database [4/1/2011 12:38:32 AM] buckyballreaction: ugh [4/1/2011 12:38:40 AM] Chris Eykamp: indeed [4/1/2011 12:39:24 AM] Chris Eykamp: any idea how to kill a windows process that's unkillable by normal means? [4/1/2011 12:39:38 AM] buckyballreaction: start -> shutdown? [4/1/2011 12:39:46 AM] Chris Eykamp: not even sure that will work [4/1/2011 12:39:46 AM] buckyballreaction: ooo [4/1/2011 12:39:49 AM] buckyballreaction: yes [4/1/2011 12:39:55 AM] buckyballreaction: let me find the little utility... [4/1/2011 12:39:56 AM] Chris Eykamp: i can do it by powering off the machine violently [4/1/2011 12:40:03 AM] Chris Eykamp: I'll bet your utility won't work [4/1/2011 12:40:34 AM] buckyballreaction: try this guy: http://technet.microsoft.com/en-us/sysinternals/bb896653 [4/1/2011 12:40:35 AM] Chris Eykamp: I've had to power down 3x in 2 days [4/1/2011 12:40:39 AM] Chris Eykamp: tried it [4/1/2011 12:40:42 AM] buckyballreaction: rats [4/1/2011 12:40:51 AM] Chris Eykamp: this process is unkillable [4/1/2011 12:40:54 AM] Chris Eykamp: completely [4/1/2011 12:41:01 AM] buckyballreaction: what is it called? [4/1/2011 12:41:05 AM] Chris Eykamp: the process? [4/1/2011 12:41:08 AM] buckyballreaction: yes [4/1/2011 12:41:09 AM] Chris Eykamp: it's Directory Opus [4/1/2011 12:41:20 AM] Samuel Williams: [Friday, April 01, 2011 12:39 AM] Chris Eykamp: <<< any idea how to kill a windows process that's unkillable by normal means?Sometimes i had a pwoblem wiere there is a command window not tied to any process that cannot be closed, its a ghosting window.. [4/1/2011 12:41:33 AM] Chris Eykamp: got hung up trying to read an Ext drive [4/1/2011 12:41:52 AM] Chris Eykamp: I can see the process when I do ctrl-alt-delete [4/1/2011 12:42:33 AM] Chris Eykamp: now I have another... ext2mgr [4/1/2011 12:42:33 AM] Samuel Williams: it may show up in Application, but maybe not show up in list of Processes.. [4/1/2011 12:42:45 AM] Chris Eykamp: it's in the process list [4/1/2011 12:42:47 AM] buckyballreaction: http://www.mydigitallife.info/2009/02/06/how-to-kill-stubborn-process-that-fails-to-end-process-in-task-manager/ [4/1/2011 12:42:50 AM] buckyballreaction: pskill [4/1/2011 12:42:53 AM] buckyballreaction: tried that? [4/1/2011 12:43:04 AM] buckyballreaction: makes you feel unixy :) [4/1/2011 12:43:13 AM] Chris Eykamp: isn't that the sysinternals program? [4/1/2011 12:43:18 AM] buckyballreaction: yep [4/1/2011 12:43:23 AM] Chris Eykamp: yes, tried that [4/1/2011 12:43:27 AM] buckyballreaction: well, another one [4/1/2011 12:43:30 AM] buckyballreaction: command line [4/1/2011 12:43:31 AM] buckyballreaction: really? [4/1/2011 12:43:34 AM] buckyballreaction: rats again [4/1/2011 12:44:29 AM] Chris Eykamp: I tried pskill from the cmdline [4/1/2011 12:44:32 AM] Chris Eykamp: nothting from a gui [4/1/2011 12:44:48 AM] buckyballreaction: process explorer was a gui [4/1/2011 12:44:54 AM] Chris Eykamp: even read that article :) [4/1/2011 12:44:57 AM] buckyballreaction: ha! [4/1/2011 12:45:07 AM] Samuel Williams: http://blogs.msdn.com/b/debugger/archive/2010/03/11/help-my-console-windows-won-t-go-away.aspx That is a problem i sometimes have... [4/1/2011 12:45:08 AM] Chris Eykamp: oh, then I didn't try process explorer [4/1/2011 12:45:31 AM] buckyballreaction: yes, try that: http://technet.microsoft.com/en-us/sysinternals/bb896653 [4/1/2011 12:45:39 AM] Chris Eykamp: @sam: not seen that [4/1/2011 12:45:48 AM] Samuel Williams: what window is it? [4/1/2011 12:46:56 AM] Chris Eykamp: no effect [4/1/2011 12:48:08 AM] Chris Eykamp: there's now two: dopus.exe (directory opus) and ext2mgr [4/1/2011 12:49:24 AM] Chris Eykamp: I'll have to power down later to kill them [4/1/2011 12:51:33 AM] buckyballreaction: well, tell me how process explorer works [4/1/2011 12:51:47 AM] buckyballreaction: it hasn't failed me in the past - it lets you see the DLLs involved [4/1/2011 12:54:01 AM] Chris Eykamp: it fails utterly [4/1/2011 12:54:17 AM] Chris Eykamp: i'm going to try running it as admin [4/1/2011 12:54:48 AM] Chris Eykamp: these processes are strong [4/1/2011 12:54:49 AM] Samuel Williams: I don't know if there a solution out there.. http://www.google.com/search?q=dopus.exe+won%27t+end+process [4/1/2011 12:54:51 AM] Chris Eykamp: and powerful [4/1/2011 12:58:18 AM] Chris Eykamp: wow, even running as admin... no effect [4/1/2011 1:12:46 AM] buckyballreaction: how does tnlVector treat insert() insertion to the front? (i think that's what i'm reading...) [4/1/2011 1:14:24 AM] Chris Eykamp: I think it shifts then inserts [4/1/2011 1:14:28 AM] Chris Eykamp: it's a slow operation [4/1/2011 1:14:43 AM] Chris Eykamp: we hardly ever use it [4/1/2011 1:14:48 AM] buckyballreaction: i'm rewriting it to use stl::vector [4/1/2011 1:15:54 AM] Samuel Williams: is Vector::insert ever used at all? [4/1/2011 1:15:59 AM] buckyballreaction: yep [4/1/2011 1:16:10 AM] buckyballreaction: in the editor :) [4/1/2011 1:16:33 AM] buckyballreaction: really a list should be used for insertion [4/1/2011 1:17:13 AM] Samuel Williams: i see, it still used, but rarely... (in WorldItem::insertVert) [4/1/2011 1:32:09 AM] buckyballreaction: tnlVector.clear() just sets the vector size to 0 [4/1/2011 1:32:31 AM] buckyballreaction: i think i've been using it wrongly: i should have been using deleteAndClear() [4/1/2011 1:32:37 AM] Chris Eykamp: no [4/1/2011 1:32:48 AM] Chris Eykamp: deleteAndClear only has a few very specific uses [4/1/2011 1:32:56 AM] Chris Eykamp: most of the time you don't want to delete [4/1/2011 1:32:57 AM] Chris Eykamp: only clear [4/1/2011 1:34:02 AM] buckyballreaction: stl::vector.clear() does what, then? it looks like it is equivalent to deleteAndClear() [4/1/2011 1:35:00 AM] buckyballreaction: oh wait, this is the stl comment: * Erases all the elements. Note that this function only erases the * elements, and that if the elements themselves are pointers, the * pointed-to memory is not touched in any way. Managing the pointer is * the user's responsibility. [4/1/2011 1:35:17 AM] Samuel Williams: Vector::clear() is Vector::SetSzie(0); well, is deleteAndClear() the same thing or not?? [4/1/2011 1:35:19 AM] buckyballreaction: so maybe it is equivalent to tnlVector.clear() [4/1/2011 1:35:41 AM] Chris Eykamp: no, deleteAndClear runs delete on each item before clearing [4/1/2011 1:35:41 AM] Samuel Williams: DeleteAndClear have for(U32 i = 0; i < mElementCount; i++) delete mArray[i]; clear(); [4/1/2011 1:36:02 AM] Chris Eykamp: remeber: only delete when you've done new [4/1/2011 1:36:21 AM] Chris Eykamp: Point xxx = Point(1,2); [4/1/2011 1:36:22 AM] buckyballreaction: yes, but setSize in tnlVector goes through every element and calls free() [4/1/2011 1:36:24 AM] Chris Eykamp: delete xxx; [4/1/2011 1:36:28 AM] Chris Eykamp: will cause problems [4/1/2011 1:37:08 AM] Samuel Williams: will this cause a memory leak? for(i=0; i<1000; i++) { a.pushback(Barrier()); a.clear(); } [4/1/2011 1:37:24 AM] Chris Eykamp: no [4/1/2011 1:38:03 AM] buckyballreaction: so delete and clear is for the case where you create a vector of pointers, and you called new for those pointers? [4/1/2011 1:38:38 AM] Chris Eykamp: yes; just saves you the step of deleteing them yourself [4/1/2011 1:38:48 AM] buckyballreaction: ah ok [4/1/2011 1:38:53 AM] buckyballreaction: now i can move on :) [4/1/2011 1:39:40 AM] Samuel Williams: Vector a; for(i=0; i<1000; i++) { a.pushback(new Barrier()); a.clearAndClear(); } That won't cause memory leak, will it? [4/1/2011 1:40:20 AM] buckyballreaction: that will cause undefined behaviour [4/1/2011 1:40:21 AM] buckyballreaction: i think [4/1/2011 1:40:27 AM] Chris Eykamp: [Friday, April 01, 2011 1:39 AM] Samuel Williams: <<< a.clearAndClear();a.deleteAndClear()? [4/1/2011 1:40:42 AM] Chris Eykamp: that code won;t work [4/1/2011 1:40:48 AM] Chris Eykamp: oh wait [4/1/2011 1:40:51 AM] Chris Eykamp: it will [4/1/2011 1:40:52 AM] Samuel Williams: there is a difference between Vector and Vector [4/1/2011 1:41:08 AM] Chris Eykamp: no leak [4/1/2011 1:41:51 AM] buckyballreaction: oh boy, now i'm in to the operators... [4/1/2011 1:45:07 AM] buckyballreaction: brief overview, what is the operator= supposed to do? [4/1/2011 1:45:32 AM] Chris Eykamp: assignment [4/1/2011 1:45:44 AM] Chris Eykamp: :) [4/1/2011 1:46:15 AM] Samuel Williams: copy Vectors? Vector a,b; a.push_back(Barrier()); b=a; [4/1/2011 1:55:22 AM] buckyballreaction: are reserve() and setSize() supposed to behave differently form one another? [4/1/2011 1:55:35 AM] Chris Eykamp: no idea! [4/1/2011 1:55:48 AM] Chris Eykamp: in our vecor, setSize reserves space [4/1/2011 1:55:59 AM] Chris Eykamp: in a sense, at least [4/1/2011 1:57:11 AM] Samuel Williams: reserve(100); is the same as Vector b(100); it keeps size() or GetSize() = zero; it just allocates more memory to make pusk_back faster.. [4/1/2011 1:57:37 AM] Samuel Williams: it keeps the same size unaltered in reserve() [4/1/2011 1:58:19 AM] buckyballreaction: so does that differ from setSize? [4/1/2011 1:58:37 AM] buckyballreaction: oh... i get it now [4/1/2011 1:58:40 AM] buckyballreaction: yes [4/1/2011 1:59:28 AM] buckyballreaction: setSize() : add n elements, move iterator to the end reserve() : add n elements, keep iterator at start [4/1/2011 2:08:18 AM] buckyballreaction: can you called the destructor of another object? [4/1/2011 2:08:46 AM] buckyballreaction: or would i even need to call the destructor for the innerVector in the destructor of Vector? [4/1/2011 2:08:48 AM] Chris Eykamp: not sure... don't think you'd want to [4/1/2011 2:09:08 AM] Chris Eykamp: destructor is called automatically when object is deleted [4/1/2011 2:10:05 AM] buckyballreaction: moment of truth - time to compile [4/1/2011 2:17:40 AM] buckyballreaction: almost there... how do i do this?: innerVector.resize(size, T); [4/1/2011 2:18:03 AM] buckyballreaction: gives error: tnlVector.h:126:30: error: expected primary-expression before ‘)’ token [4/1/2011 2:18:18 AM] Chris Eykamp: I've never seen that sytax before [4/1/2011 2:18:38 AM] buckyballreaction: yes - i need to pass in the T somehow... [4/1/2011 2:19:10 AM] Chris Eykamp: what is it supposed to do? [4/1/2011 2:19:28 AM] buckyballreaction: stl::vector has this: void resize(size_type __new_size, value_type __x = value_type()) [4/1/2011 2:19:59 AM] buckyballreaction: but tnlVector only has: void resize(S32 index) [4/1/2011 2:20:07 AM] Samuel Williams: the second param is optional, see '=' ? [4/1/2011 2:20:26 AM] buckyballreaction: OOOOoooohhhhh [4/1/2011 2:20:28 AM] buckyballreaction: duh [4/1/2011 2:20:30 AM] buckyballreaction: ok [4/1/2011 2:20:33 AM] buckyballreaction: thanks sam [4/1/2011 2:20:45 AM] buckyballreaction: i do not recommend reading stl sources.. [4/1/2011 2:27:23 AM] buckyballreaction: and when contructing the tnlVector around stl::vector, should this work?: template inline Vector::Vector(const U32 initialSize) // Constructor { innerVector(initialSize); } [4/1/2011 2:28:20 AM] buckyballreaction: i have a private member: vector innerVector; [4/1/2011 2:28:59 AM] Samuel Williams: you could just as well do this, should function the same. innerVector(); a.reserve(initalSize); [4/1/2011 2:30:50 AM] buckyballreaction: how about?: innerVector = vector(initialSize); [4/1/2011 2:33:31 AM] Samuel Williams: std::vector aa(150); function differently, it physically set the size to 150.. TNL::Vector a(150) will only allocate that much keeping getSize() to zero. [4/1/2011 2:33:37 AM] Samuel Williams: had to do some testing... [4/1/2011 2:39:43 AM] buckyballreaction: so what's the difference with adding 'const' before or after the method name?: const S32 size() S32 size() const [4/1/2011 2:42:25 AM] Samuel Williams: maybe there are both the same, i don't see anything different, other then the ordering of const.. [4/1/2011 3:14:41 AM] buckyballreaction: oh my goodnes TNL compiles [4/1/2011 3:26:40 AM] buckyballreaction: this makes no sense - i don't even know how this compiled before [4/1/2011 3:28:19 AM] buckyballreaction: the old tnlVector has: template inline T* Vector::address() const [4/1/2011 3:29:49 AM] buckyballreaction: i use the exact same thing, but classes in tnl and zap are both complaining that the can't convert from const [4/1/2011 3:29:59 AM] Samuel Williams: you could try this to return address of vector: template inline T* Vector::address() const { return &innerVector[0]; } [4/1/2011 3:30:10 AM] buckyballreaction: yes, that is exactly what i use [4/1/2011 3:33:23 AM] buckyballreaction: for instance: GeomUtils.cpp:969:38: instantiated from here ../tnl/tnlVector.h:125:30: error: invalid conversion from ‘const float*’ to ‘float*’ [4/1/2011 3:33:51 AM] buckyballreaction: all of a sudden i have problems everywhere [4/1/2011 3:34:44 AM] Samuel Williams: maybe remove that const ? [4/1/2011 3:35:02 AM] buckyballreaction: did that, and now all the const methods are complaining... [4/1/2011 3:35:46 AM] Samuel Williams: tnlVector.h line 206 and line 132.. [4/1/2011 3:36:36 AM] buckyballreaction: yep, identical [4/1/2011 3:37:10 AM] Samuel Williams: if you change T* address() const; // to: T* address(); will that fix errors? [4/1/2011 3:37:22 AM] buckyballreaction: it will fix some, but then introduce others [4/1/2011 3:37:26 AM] buckyballreaction: i am in a loop [4/1/2011 3:39:36 AM] Samuel Williams: also try change template inline T* Vector::address() const {...} to template inline T* Vector::address() {...} [4/1/2011 3:40:22 AM] buckyballreaction: yep, did that [4/1/2011 3:40:31 AM] buckyballreaction: so weird... [4/1/2011 3:43:00 AM] Samuel Williams: the problem with removing const, is the use of const Vector &points in polygonIntersectsSegment.. [4/1/2011 3:43:25 AM] buckyballreaction: yes [4/1/2011 3:43:29 AM] buckyballreaction: and there are many more places [4/1/2011 3:45:30 AM] buckyballreaction: ok, i think i may have found a workaround... [4/1/2011 3:45:40 AM] buckyballreaction: i use both: T* address(); const T* address() const; [4/1/2011 3:45:58 AM] buckyballreaction: template inline T* Vector::address() { return &(*innerVector.begin()); } [4/1/2011 3:46:31 AM] buckyballreaction: because begin() is also declared twice in std::vector once as a pointer, once as const_pointer [4/1/2011 3:46:32 AM] Samuel Williams: [Friday, April 01, 2011 3:45 AM] buckyballreaction: <<< const T* address() const;Double const? [4/1/2011 3:46:43 AM] buckyballreaction: yeah.. it's what works.. [4/1/2011 3:49:18 AM] Samuel Williams: ok, i see a difference before and after const.. http://www.google.com/search?q=const+before+or+after+function [4/1/2011 4:00:00 AM] buckyballreaction: i think this is almost a lost cause... [4/1/2011 4:00:24 AM] buckyballreaction: i'm thinking of replacing all Vector with std::vector or std::list [4/1/2011 4:01:28 AM] Samuel Williams: will there be any speed gain for using std::vector instead of TNL::Vector ? [4/1/2011 4:01:53 AM] buckyballreaction: yes, especially for really large vectors [4/1/2011 4:02:19 AM] buckyballreaction: the speed gain is in slightlly better logic in std::vector [4/1/2011 4:02:30 AM] buckyballreaction: but complexity should be the same (I think) [4/1/2011 4:04:36 AM] Samuel Williams: there may an easy speed gain in TNL::Vector by increasing VectorBlockSize, or by altering Vector::checkSize to double mArraySize memory instead of adding little more memory to checkSize.. [4/1/2011 4:04:59 AM] buckyballreaction: yes i agree... [4/1/2011 4:05:27 AM] buckyballreaction: i guess i'd rather move away from TNL for anything that already is in STL [4/1/2011 4:05:42 AM] buckyballreaction: so we have less maintenance with the TNL stuff [4/1/2011 4:05:53 AM] buckyballreaction: but this may be a bigger project than I wish... [4/1/2011 4:06:37 AM] Samuel Williams: one possible problem is there is no erase_fast in std::vector.. [4/1/2011 4:07:06 AM] Samuel Williams: The normal erase may be slower when vector gets bigger. [4/1/2011 4:07:27 AM] buckyballreaction: template inline void Vector::erase_fast(U32 index) { if(index != innerVector.size() - 1) innerVector[index] = innerVector[innerVector.size() - 1]; innerVector.erase(innerVector.end()); } [4/1/2011 4:07:55 AM] buckyballreaction: but we should really use a list instead of vector for both speed in insertion and deletion [4/1/2011 4:09:32 AM] buckyballreaction: well, i need ot go to bed [4/1/2011 4:09:37 AM] buckyballreaction: it's waaaay too late [4/1/2011 4:09:43 AM] buckyballreaction: thansk for your help sam [4/1/2011 4:09:46 AM] Samuel Williams: bye.. [4/1/2011 4:10:52 AM] buckyballreaction: if you want to see my current tnlVector.h, here it is: http://pastebin.com/tJS0Mjz7 [4/1/2011 4:11:01 AM] buckyballreaction: not that I am stuck on the insert method [4/1/2011 4:11:03 AM] buckyballreaction: note [4/1/2011 4:11:18 AM] buckyballreaction: i got past the address method problems [4/1/2011 4:11:51 AM] buckyballreaction: but insert i may have done wrong - there is something funny going on [4/1/2011 4:11:54 AM] buckyballreaction: good night [4/1/2011 11:29:47 AM] buckyballreaction: good day [4/1/2011 12:49:49 PM] buckyballreaction: ok, solved my insertion problem [4/1/2011 12:50:43 PM] buckyballreaction: now the problem is that UIEditor uses a Vector - and apparenlty the STL people decided to handle booleans in a separate class from std::vector [4/1/2011 12:50:57 PM] buckyballreaction: so the overloaded operator is having a fit... [4/1/2011 1:03:34 PM] buckyballreaction: stink: http://www.gotw.ca/publications/N1185.pdf [4/1/2011 2:00:54 PM] buckyballreaction: OK [4/1/2011 2:00:57 PM] buckyballreaction: I think i got it [4/1/2011 2:01:21 PM] buckyballreaction: tnlVector is now wording as a wrapper for std::vector with a few helper functions [4/1/2011 2:01:29 PM] buckyballreaction: working [4/1/2011 2:01:46 PM] buckyballreaction: with one issue: you cannot use Vector [4/1/2011 2:02:06 PM] buckyballreaction: I had to change the Vector in UIEditor to vector [4/1/2011 2:03:02 PM] buckyballreaction: her eis the final code: http://pastie.org/1744753 [4/1/2011 2:04:22 PM] buckyballreaction: so far no crashes [4/1/2011 3:34:12 PM] Chris Eykamp: ok, we have a problem [4/1/2011 3:34:32 PM] Chris Eykamp: clipper hands us back a list of disjointed line segments, perfect for rendering [4/1/2011 3:34:33 PM] buckyballreaction: woot! [4/1/2011 3:35:04 PM] buckyballreaction: thinking of keeping the old clipRenderLines to poly for the editor? [4/1/2011 3:37:12 PM] Chris Eykamp: in the editor, we need to know which side of those is the "inside" and which is the outside [4/1/2011 3:37:44 PM] Chris Eykamp: but without knowing which exterior segment is associated with what, I'm not sure how we can make that determination [4/1/2011 3:38:33 PM] Chris Eykamp: given a handful of lines, how do you "reassemble" them into a polygon, for which you can have a meaningful "inside' and "outside"? [4/1/2011 3:38:56 PM] Chris Eykamp: does that make sense?> [4/1/2011 3:39:01 PM] buckyballreaction: yes, i thought that this may be a problem [4/1/2011 3:39:10 PM] Chris Eykamp: I didn't, but I was wrong [4/1/2011 3:39:24 PM] buckyballreaction: :( [4/1/2011 3:39:49 PM] Chris Eykamp: I was hoping that we could use Left or Right, but I'm not sure we can [4/1/2011 3:40:10 PM] Chris Eykamp: I think we are already requesting that Clipper respect winding order [4/1/2011 3:40:44 PM] Chris Eykamp: but when I have a single wall, the turret goes inside on 3 edges, and outside on one. That doesn't suggest consistency [4/1/2011 3:41:32 PM] buckyballreaction: yeah, clipper is good for in-game [4/1/2011 3:42:07 PM] buckyballreaction: i actually turned on clipper.ignoreOrientation [4/1/2011 3:42:23 PM] buckyballreaction: so the output of clipper can go in any winding direction [4/1/2011 3:42:49 PM] buckyballreaction: i turned it on because Triange didn't require it (poly2tri would) [4/1/2011 3:42:59 PM] Chris Eykamp: I'm currently running with ignoreOr(false) [4/1/2011 3:43:00 PM] buckyballreaction: and it gave a moderate speed boost 20-30% [4/1/2011 3:43:15 PM] buckyballreaction: oh [4/1/2011 3:43:23 PM] Chris Eykamp: which may be fine for the editor [4/1/2011 3:43:32 PM] Chris Eykamp: maybe I can use the winding order somehow [4/1/2011 3:43:54 PM] Chris Eykamp: for linear wall segments, winding order will always be consistent, since we generate the edges consistently [4/1/2011 3:44:00 PM] Chris Eykamp: for polywalls we can reverse if needed [4/1/2011 3:45:13 PM] buckyballreaction: that was what i was suggesting last night - force the CCW somehow [4/1/2011 3:45:36 PM] buckyballreaction: or maybe it ws two nights ago... [4/1/2011 3:45:48 PM] buckyballreaction: i stayed up way too late converting tnlVector [4/1/2011 3:46:33 PM] Chris Eykamp: I saw [4/1/2011 3:46:38 PM] Chris Eykamp: I fell asleep again [4/1/2011 3:46:47 PM] Chris Eykamp: I was fine until I had a beer [4/1/2011 3:46:55 PM] Chris Eykamp: then 1/2 hour later... *poof* [4/1/2011 3:47:06 PM] Chris Eykamp: but it was a really good bear [4/1/2011 3:47:08 PM] Chris Eykamp: beer [4/1/2011 3:47:11 PM] buckyballreaction: imagine that... :) [4/1/2011 3:47:41 PM] buckyballreaction: so did you see my comments about the limitations of tnlVector as a wrapper for std::vector? [4/1/2011 3:47:58 PM] Chris Eykamp: yes -- no bools [4/1/2011 3:48:03 PM] Chris Eykamp: don't understand why [4/1/2011 3:48:36 PM] Chris Eykamp: figured I'd cross that bridge when I come to it [4/1/2011 3:49:00 PM] buckyballreaction: it's becasue the people who drew up the c++ spec for std::vector decided to do bools differently than any other data type: they basically transform booleans into bits [4/1/2011 3:49:08 PM] Chris Eykamp: ah [4/1/2011 3:49:36 PM] buckyballreaction: so if you do vector, it is really a bitset [4/1/2011 3:50:22 PM] Chris Eykamp: right [4/1/2011 3:50:32 PM] Chris Eykamp: probably much more memory efficient that way [4/1/2011 3:50:47 PM] buckyballreaction: yes, but not necessarily speedwise [4/1/2011 3:51:28 PM] buckyballreaction: so anyways, i think that is one of the things to be considered for deprecation with the upcoming C++0x spec [4/1/2011 3:51:40 PM] buckyballreaction: and make bools actually bools in a vector [4/1/2011 3:52:22 PM] Chris Eykamp: I just figured out how to fix the editor [4/1/2011 3:52:32 PM] buckyballreaction: really/ [4/1/2011 3:52:42 PM] Chris Eykamp: we snap to the edges, but then "resnap" to the segment itself [4/1/2011 3:52:58 PM] Chris Eykamp: the edge will give us our position, but the segment will give us our direction [4/1/2011 3:53:09 PM] Chris Eykamp: in-game we attach to the segment, not the edge [4/1/2011 3:53:33 PM] Chris Eykamp: so we'll do the same in the editor [4/1/2011 3:53:42 PM] buckyballreaction: godo didea [4/1/2011 3:53:45 PM] buckyballreaction: good idea [4/1/2011 3:53:47 PM] Chris Eykamp: I *think* that will work [4/1/2011 3:54:20 PM] Chris Eykamp: BtW, I got a letter today telling me that I would get that job I applied for; they're going to send me an offer letter next week [4/1/2011 3:54:47 PM] Chris Eykamp: things are rather drawn out.. [4/1/2011 3:54:56 PM] buckyballreaction: oh wow [4/1/2011 3:55:00 PM] buckyballreaction: to europe? [4/1/2011 4:04:52 PM] Chris Eykamp: yes [4/1/2011 4:04:59 PM] Chris Eykamp: I haven't seen the offer yet [4/1/2011 4:05:19 PM] Chris Eykamp: nor have I looked into cost of living; LX is known to be very expensive [4/1/2011 4:05:36 PM] Chris Eykamp: nor have I considered taxes [4/1/2011 4:05:50 PM] Chris Eykamp: but I assume it will be a good offer [4/1/2011 4:06:34 PM] buckyballreaction: oh yes taxes [4/1/2011 4:06:42 PM] buckyballreaction: we think we are taxed to death here... [4/1/2011 4:08:03 PM] Chris Eykamp: yeah, well, that sentimtent us usually expressed by people who have never lived elsewhere [4/1/2011 4:08:10 PM] Chris Eykamp: but we get what we pay for [4/1/2011 4:08:37 PM] buckyballreaction: yep [4/1/2011 4:09:11 PM] Chris Eykamp: except in OR; we pay a lot of income tax, and still have crappy schools [4/1/2011 4:09:28 PM] Chris Eykamp: though, to be fair, I don't know if they are any more or less crappy than elsewhere [4/1/2011 4:09:57 PM] buckyballreaction: we do the same in UT, but the schools here are actually waaaay better than other states i've lived in [4/1/2011 4:10:18 PM] Chris Eykamp: well, that's good. [4/1/2011 4:10:25 PM] Chris Eykamp: off to lunch, back later [4/1/2011 4:10:28 PM] buckyballreaction: later [4/1/2011 5:25:09 PM] buckyballreaction: some stats (in microseconds): http://pastie.org/1745423 [4/1/2011 5:25:30 PM] buckyballreaction: compares the old tnlVector with the new and equivalent of std::vector [4/1/2011 5:26:07 PM] buckyballreaction: all performed on a vector of 10000 elements [4/1/2011 5:27:55 PM] buckyballreaction: also the new tnlVector let's you grab the internal std::vector, so we don't have to rebuild TPolys [4/1/2011 5:28:08 PM] Chris Eykamp: signifcantly faster for all uses cases we actually use [4/1/2011 5:28:16 PM] buckyballreaction: yep [4/1/2011 5:28:17 PM] Chris Eykamp: this last point is great [4/1/2011 5:28:48 PM] buckyballreaction: i've been testing the code so far, no hiccups or crashes [4/1/2011 5:28:50 PM] Chris Eykamp: think we can leverage that for triangle somehow? [4/1/2011 5:29:25 PM] buckyballreaction: i even profiled a game with valgrind to catch anything malicious... nothing [4/1/2011 5:29:33 PM] Samuel Williams: old tnlVector is faster only on pop_back(), the rest is much faster in std::vector [4/1/2011 5:29:37 PM] buckyballreaction: game/editor/hosting/all [4/1/2011 5:29:47 PM] Chris Eykamp: we don't use pop_back much [4/1/2011 5:29:50 PM] Chris Eykamp: if at all [4/1/2011 5:30:14 PM] Samuel Williams: i would say std::vector is about 10 times faster.. [4/1/2011 5:30:36 PM] buckyballreaction: 200 times faster on push_back [4/1/2011 5:30:39 PM] Chris Eykamp: yes, though the times involved are so slow as to be imperceptible... but it is a step in the right direction [4/1/2011 5:30:46 PM] Chris Eykamp: sorry so low [4/1/2011 5:31:00 PM] buckyballreaction: every magnitude counts :) [4/1/2011 5:31:04 PM] Chris Eykamp: :) [4/1/2011 5:31:10 PM] Chris Eykamp: yes, not trying to undercut your fine work [4/1/2011 5:31:51 PM] buckyballreaction: the only thing keeping me from checking in is the Vector i had to change in UIEditor.cpp - i know you're probably deep in the code [4/1/2011 5:32:39 PM] Chris Eykamp: yes [4/1/2011 5:32:45 PM] Chris Eykamp: what did you have to change there? [4/1/2011 5:33:02 PM] Samuel Williams: There might be Vector from the old leftover master stats that may be in master code to stay compatible to old version.. [4/1/2011 5:36:00 PM] buckyballreaction: just changed a Vector to vector and adjust the insert() methods called to use the iterator instead of index [4/1/2011 5:38:48 PM] Samuel Williams: printf("%i %i", sizeof(bool[100]), sizeof(char[100])); it prints "100 100", so does that mean bool is 8-bit? [4/1/2011 5:39:28 PM] buckyballreaction: it's not 1bit, that's all i know [4/1/2011 5:39:54 PM] buckyballreaction: here are my UIEditor changes: http://pastie.org/1745485 [4/1/2011 5:41:30 PM] Chris Eykamp: so .size() returns a U32 now? [4/1/2011 5:41:37 PM] buckyballreaction: nope [4/1/2011 5:41:58 PM] buckyballreaction: oh wait [4/1/2011 5:41:59 PM] buckyballreaction: yes [4/1/2011 5:41:59 PM] Chris Eykamp: then why [4/1/2011 5:42:01 PM] Chris Eykamp: - for(S32 j = 0; j < mVertSelected.size(); j++) + for(U32 j = 0; j < mVertSelected.size(); j++) [4/1/2011 5:42:13 PM] Chris Eykamp: that change will mess up a lot of code [4/1/2011 5:42:22 PM] Chris Eykamp: nothing importlant, but tons of warnings [4/1/2011 5:42:29 PM] buckyballreaction: how? [4/1/2011 5:42:37 PM] Chris Eykamp: S32 U32 comparisons, no? [4/1/2011 5:42:53 PM] Chris Eykamp: maybe not [4/1/2011 5:43:03 PM] buckyballreaction: so vector returns U32 (which is what we need for bool), Vector returns S32 [4/1/2011 5:43:15 PM] buckyballreaction: i kept the quick cast in tnlVector to S32 [4/1/2011 5:43:28 PM] Chris Eykamp: maybe we should just move over to U32?? [4/1/2011 5:43:51 PM] buckyballreaction: yeah probably - it's just lots of .size() to clean up... [4/1/2011 5:44:38 PM] buckyballreaction: i mean - move all the size() calls to U32, I think we should keep using S32 as a standard [4/1/2011 5:45:03 PM] Samuel Williams: for(U32 j = mVertSelected.size() - 1; j >= 0; j--) // endless loop Careful with converting to Unsigned, as Unsigned is always >= 0 [4/1/2011 5:45:37 PM] buckyballreaction: ahhhh [4/1/2011 5:46:00 PM] Chris Eykamp: good call! [4/1/2011 5:46:04 PM] buckyballreaction: ok, i better cast then... for vector.size() [4/1/2011 5:46:17 PM] buckyballreaction: and we'll leave everything as S32 [4/1/2011 5:48:14 PM] Samuel Williams: for(U32 j = mVertSelected.size() - 1; j != U32_MAX; j--) // if we really want to use U32, then this will work, but the code might not be pretty... [4/1/2011 5:48:28 PM] Chris Eykamp: Nooooooooo!!!!! [4/1/2011 5:49:05 PM] buckyballreaction: i think i agree with watusimoto... [4/1/2011 5:49:11 PM] buckyballreaction: too hard on the brain [4/1/2011 5:49:58 PM] Samuel Williams: U32 and loop that count backwards can cause confusion.. [4/1/2011 5:55:58 PM] buckyballreaction: but none of my changes are backwards loops, should I still cast? [4/1/2011 5:56:15 PM] buckyballreaction: this will only be a problem if using std::vector with bools [4/1/2011 5:56:30 PM] Samuel Williams: you don't have to cast if it counts forward.. [4/1/2011 5:56:40 PM] Chris Eykamp: I prefer S32, but maybe just because I'm used to it [4/1/2011 5:58:23 PM] buckyballreaction: ok [4/1/2011 5:58:30 PM] buckyballreaction: does these changes look easy enough to merge? [4/1/2011 5:58:43 PM] buckyballreaction: or would you prefer I wait [4/1/2011 6:00:40 PM] Chris Eykamp: I can go either way [4/1/2011 6:00:50 PM] Chris Eykamp: not too hard to merge [4/1/2011 6:04:07 PM] buckyballreaction: ok, i'm ready to commit, then [4/1/2011 6:26:26 PM] Chris Eykamp: ahem [4/1/2011 6:26:38 PM] Chris Eykamp: //Vector walls; //if(closestWall && closestWall->getCollisionPoly(walls)) // if(isWoundClockwise(walls)) // normal = -normal; // Avoid objects pointing inside polygon walls [4/1/2011 6:26:49 PM] Chris Eykamp: that's what was making things go inside walls [4/1/2011 6:27:12 PM] Chris Eykamp: not the whole edge dynamic I describe earlier [4/1/2011 6:27:25 PM] buckyballreaction: did i do that? [4/1/2011 6:27:36 PM] Chris Eykamp: I think you did [4/1/2011 6:27:43 PM] buckyballreaction: which class? [4/1/2011 6:27:46 PM] Chris Eykamp: may be necessary for polywalls [4/1/2011 6:27:54 PM] Chris Eykamp: engineeredObjects.cpp [4/1/2011 6:27:59 PM] Chris Eykamp: but not for regular walls [4/1/2011 6:28:02 PM] buckyballreaction: nope, didn't do it :) [4/1/2011 6:28:09 PM] buckyballreaction: never touched that class before [4/1/2011 6:28:20 PM] buckyballreaction: i may be wrong... [4/1/2011 6:28:22 PM] buckyballreaction: :D [4/1/2011 6:28:26 PM] Chris Eykamp: well, I didn't do it! [4/1/2011 6:28:59 PM] buckyballreaction: pushed! [4/1/2011 6:29:02 PM] Samuel Williams: i put that there, because otherwise turrets will point inside instead of outside in-game (not editor, but not sure if it affected editor...) [4/1/2011 6:29:19 PM] buckyballreaction: ahhh [4/1/2011 6:29:41 PM] Samuel Williams: it for polywall having points in reverse order.. [4/1/2011 6:29:41 PM] Chris Eykamp: but only for polywalls, I'm thinking [4/1/2011 6:29:48 PM] Chris Eykamp: ok [4/1/2011 6:31:47 PM] buckyballreaction: this was a good exercise for me... i learned all i never wanted to know about the innerworkings of c++ [4/1/2011 6:39:00 PM] buckyballreaction: also, feel free to look over the class briefly to check my work - I am not entirely confident that everything is the cleanest or most effecient, but I tried. [4/1/2011 6:46:53 PM] buckyballreaction: sam it would be helpful if you could do a test compile of my latest push - just in case i did something to break windows... [4/1/2011 6:47:25 PM] buckyballreaction: you'll have to do a complete clean... [4/1/2011 6:50:20 PM] Samuel Williams: it compiles, but there is error trying to get address when size() is zero. [4/1/2011 6:51:33 PM | Edited 6:51:42 PM] Samuel Williams: Vector address() when size() is zero, at UIQueryServers.cpp line 1301 (it hit a debug breakpoint in the internal std::vector [4/1/2011 6:51:44 PM] buckyballreaction: that happened before though, didn't it? [4/1/2011 6:52:15 PM] Samuel Williams: no, before the new vector, address() would return NULL when size() is zero. [4/1/2011 6:52:40 PM] buckyballreaction: ah ok [4/1/2011 6:54:31 PM] Samuel Williams: part of the problem is void QueryServersUserInterface::sort() is trying to sort a zero-size servers list.. well it have nothing to sort when size() is zero.. [4/1/2011 6:56:35 PM] Samuel Williams: more problems, now in config.cpp line 204 void loadLevels() levelValNames.sort(alphaSort); when levelValNames is zero size.. [4/1/2011 6:59:46 PM] buckyballreaction: ok [4/1/2011 6:59:55 PM] buckyballreaction: I pushed a change [4/1/2011 7:00:05 PM] buckyballreaction: sorry for the long recompiles... [4/1/2011 7:02:42 PM] Samuel Williams: super long recompiles because of changing header (.h) files. [4/1/2011 7:02:50 PM] buckyballreaction: yeah... i that [4/1/2011 7:02:58 PM] buckyballreaction: i hate that.. [4/1/2011 7:06:09 PM] Chris Eykamp: I've been trying to get rid of .h dependencies [4/1/2011 7:06:17 PM] Chris Eykamp: forward declarations! [4/1/2011 7:10:16 PM] buckyballreaction: forward declaration? [4/1/2011 7:11:20 PM] Chris Eykamp: forward declarations! [4/1/2011 7:12:00 PM] buckyballreaction: i am terminology ignorant [4/1/2011 7:13:50 PM] Chris Eykamp: http://www-subatech.in2p3.fr/~photons/subatech/soft/carnac/CPP-INC-1.shtml [4/1/2011 7:15:50 PM] buckyballreaction: we could go the sqlite route: make zap one giant .cpp file... :) [4/1/2011 7:16:09 PM] Chris Eykamp: yes, that's a fine idea [4/1/2011 7:17:05 PM] buckyballreaction: i wonder if there is a utility to do just that: combine all classes/headers, and reorder where necessary, into one file [4/1/2011 7:19:15 PM] Samuel Williams: It should work, after fixing 2 Vector problems, (i pushed my fix) [4/1/2011 7:19:19 PM] Chris Eykamp: I'll bet there is! [4/1/2011 7:19:56 PM] buckyballreaction: sam, am I missing a constructor? [4/1/2011 7:20:20 PM] buckyballreaction: remember setSize is evil... [4/1/2011 7:20:24 PM] buckyballreaction: it needs to be reserve() [4/1/2011 7:21:18 PM] Samuel Williams: you could add Reserve() in Vector if you want... SetSize was needed, as otherwise i will get "Supscript out of range" [4/1/2011 7:21:27 PM] buckyballreaction: oh wait, you are using the operator[] [4/1/2011 7:21:31 PM] buckyballreaction: afterwards, so it's fine [4/1/2011 7:21:42 PM] Samuel Williams: SetSize and push_back together is evil.. [4/1/2011 7:21:49 PM] buckyballreaction: yes, exactly.. [4/1/2011 7:22:23 PM] buckyballreaction: i have a constructor for initial size... does it not work? [4/1/2011 7:23:17 PM] Samuel Williams: There is debugging mode where it checks if operator[] is out of range of getSize(); [4/1/2011 7:24:36 PM] Samuel Williams: reserve() only helps speed up for multiple push_back, it doesn't change the real size, only the size of memory allocated in its internal vector memory [4/1/2011 7:25:31 PM] Chris Eykamp: so reserve & push_back are ok together [4/1/2011 7:26:10 PM] Samuel Williams: yes, as TNL Vector a(100); is also like the same as reserve. [4/1/2011 7:26:43 PM] buckyballreaction: gotta go home, be back in a bit [4/1/2011 7:26:50 PM] Chris Eykamp: bye [4/1/2011 7:27:15 PM] Chris Eykamp: [Friday, April 01, 2011 7:26 PM] Samuel Williams: <<< Vector a(100)really? [4/1/2011 7:27:26 PM] Chris Eykamp: not the same as a.setsize(100)? [4/1/2011 7:28:22 PM] Samuel Williams: It only does memory reserve, keeping the size the same zero. [4/1/2011 7:28:49 PM] Samuel Williams: it always have been doing that way, before the TNL::Vector changes. [4/1/2011 7:29:38 PM] Chris Eykamp: ok [4/1/2011 7:30:19 PM] Samuel Williams: TNL::Vector a(100) assumes reserve, keeping getSize() at zero. std::vector a(100) actually setSize() [4/1/2011 8:31:27 PM] buckyballreaction: is this useful?: http://www.lazycplusplus.com/ [4/1/2011 10:33:00 PM] buckyballreaction: what should be the intended behaviour of the constuctors in Vector()? [4/1/2011 10:34:16 PM] buckyballreaction: should Vector(vector& vec) copy the contents of vec into its internal vector, or should it just slurp it in? [4/1/2011 10:36:19 PM] Samuel Williams: i an not sure, but the new vector system does work without problems.. [4/1/2011 10:38:29 PM] buckyballreaction: internally I keep a std::vector - should I change that to a pointer? that way we could avoid copying? [4/1/2011 10:43:42 PM] Samuel Williams: i would think it could break compatibility if passing only by pointer, if one wants to change things in one vector, keeping the other unchanged.. [4/1/2011 11:10:12 PM] buckyballreaction: i added the method getStlVector() that returns the innerVector [4/1/2011 11:10:22 PM] buckyballreaction: should I return a pointer? [4/1/2011 11:10:39 PM] buckyballreaction: since i am returning the object, does that mean a copy is made? [4/1/2011 11:11:57 PM] buckyballreaction: not quite sure how that works with return.. [4/1/2011 11:12:06 PM] Samuel Williams: probably ges copied, unless returning a pointer.. [4/1/2011 11:25:48 PM] buckyballreaction: yep, get's copied [4/1/2011 11:31:19 PM] Max h: evening [4/1/2011 11:32:28 PM] buckyballreaction: hi [4/1/2011 11:33:56 PM] Max h: found out you should defrag your disk every now and then, instead of just, once in a year, or never [4/1/2011 11:34:07 PM] buckyballreaction: for windows machines yes [4/1/2011 11:35:56 PM | Edited 11:36:07 PM] Max h: yes, macs don't need to be defragmented, assuming the same for other linux systems? [4/1/2011 11:36:30 PM] buckyballreaction: usually not - they use file-systems that don't fragment as much [4/1/2011 11:36:53 PM] Max h: my ipod was fragmented too, : p [4/1/2011 11:36:56 PM] buckyballreaction: they still can be fragemented, but only if you keep the drives very full [4/1/2011 11:37:04 PM] buckyballreaction: it has to do with the file system [4/1/2011 11:37:29 PM] buckyballreaction: NTFS (windows) and FAT32 (usb disks) can fragment [4/1/2011 11:37:44 PM] Max h: anyway, saw the post by 007dna concerning an editor problem [4/1/2011 11:37:53 PM] Samuel Williams: only spinning disk will benefit from defrag, flash drives don't benefit from defrag.. [4/1/2011 11:38:06 PM] buckyballreaction: yes, you're correct sam... [4/1/2011 11:38:38 PM] buckyballreaction: i was thinking of my external USB portable drive [4/1/2011 11:38:48 PM] buckyballreaction: i formatted it FAT32 to be cross-platform friendly [4/1/2011 11:39:18 PM] buckyballreaction: if your ipod was formatted on windows, it will fragment [4/1/2011 11:39:36 PM] Max h: my ipod has a flash drive, but actually, eariler models of ipods(before the ipod touch came out) all had spinning hard drives, and a seperate micro-disc in it as well, (when in disk mode, you could hear it spinning) [4/1/2011 11:40:39 PM] Samuel Williams: my windows XP home edition is in 75 GB FAT32 file system format, as i don't like when NTFS is incompatible with other operating system (windows 98 or linux) [4/1/2011 11:41:30 PM] Max h: the ntfs hard drive format is also read only if browsed on a mac os [4/1/2011 11:41:41 PM] buckyballreaction: @sam, you still run win98? [4/1/2011 11:41:50 PM] Max h: but the fat32, can be written on, and renamed. at least the windows xp nfts [4/1/2011 11:42:27 PM] Samuel Williams: not hardly anymore, but i still have old computer that runs windows 98 AMK k6-2 533 MHz [4/1/2011 11:42:42 PM] buckyballreaction: sweet! [4/1/2011 11:43:07 PM] Samuel Williams: with 160 MB of RAM, about 7 GB hard disk capacity. [4/1/2011 11:43:35 PM] buckyballreaction: that's great! [4/1/2011 11:43:39 PM] Max h: my cousins have a mac that operates by flash hard drives [4/1/2011 11:43:58 PM | Edited 11:44:03 PM] Max h: my father, had THE very first mac, up till about 5 years ago [4/1/2011 11:45:16 PM] Samuel Williams: spinning disk hard drive in laptops, need to be careful not to shake computer, it could destroy data in spinning disk.. [4/1/2011 11:45:29 PM] buckyballreaction: i've done that... [4/1/2011 11:46:10 PM] buckyballreaction: sorry sam, i pushed some minor tnlVector imporvements [4/1/2011 11:47:20 PM] Max h: computers very slow tonight, even after the huge defrag [4/1/2011 11:48:15 PM] buckyballreaction: kill all the useless start-up processes [4/1/2011 11:49:01 PM | Edited 11:49:11 PM] Samuel Williams: is the CPU slow, or hard disk slow, or internet slow, or graphics card too slow? is too many program / process running, eating CPU? [4/1/2011 11:50:38 PM] Max h: aparently, its taking very long to open even a local html saved document. And on top of that, an error message tells me there is no such file to open, even though it hasn't been moved [4/1/2011 11:50:59 PM] buckyballreaction: i still say you should wipe your machine [4/1/2011 11:51:10 PM] Max h: ram and memory low [4/1/2011 11:51:13 PM] Max h: i wish i could [4/1/2011 11:51:22 PM] Max h: i tried to look for the dvd yesterday, and could not find it [4/1/2011 11:52:26 PM] Max h: so i had to just try and remove the virus myself, and while im 99% sure I succeded, windows still seems to be a bit damaged by it [4/1/2011 11:52:49 PM] buckyballreaction: time to slay a forum bot... [4/1/2011 11:52:56 PM | Edited 11:53:03 PM] Max h: i had to fix several registries and fix a few non-response services [4/1/2011 11:53:12 PM] Max h: ooh, may I watch? [4/1/2011 11:53:34 PM] buckyballreaction: he posted in all forums simultaneously [4/1/2011 11:54:35 PM] Max h: hmm, dont see anything? [4/1/2011 11:54:43 PM] buckyballreaction: he has been slain [4/1/2011 11:54:48 PM] Max h: ahh i see, i was too late [4/1/2011 11:54:52 PM] buckyballreaction: so what about an editor error? [4/1/2011 11:55:16 PM] Max h: http://bitfighter.org/forums/viewtopic.php?f=28&t=607&p=4132#p4132 [4/1/2011 11:55:25 PM] Max h: i havent been able to reproduce his problem [4/1/2011 11:55:30 PM] Max h: but ill try again once im in tahoe [4/1/2011 11:55:50 PM] buckyballreaction: ah yes [4/1/2011 11:55:55 PM] Max h: aparently, when he uses the editor, he sees a strange "image" and it crashes [4/1/2011 11:56:00 PM] buckyballreaction: need much more info before we can even being to debug [4/1/2011 11:56:05 PM] Max h: right [4/1/2011 11:56:20 PM] Max h: he said he wanted to post a pic, but couldnt upload it [4/1/2011 11:58:20 PM] Max h: btw, (multitasking :P), my theme service seems to not be working, and when I go to try to restart it, it fails to start up due to timeout. [4/1/2011 11:58:56 PM | Edited 11:59:03 PM] Max h: @raptor it would be nice if apple would send all those crash reports to the developers :) [4/1/2011 11:59:16 PM] Samuel Williams: maybe that strange image and crash could indicate the computer or graphics card dying.. [4/1/2011 11:59:31 PM] buckyballreaction: yep [4/1/2011 11:59:37 PM] buckyballreaction: easily hardware, too.. [4/2/2011 12:00:06 AM] Max h: hmm [4/2/2011 12:00:22 AM] buckyballreaction: sam, did you ever work on issue 53: http://code.google.com/p/bitfighter/issues/detail?id=53 [4/2/2011 12:00:24 AM] buckyballreaction: ? [4/2/2011 12:00:29 AM] Max h: could possibly be a premission error? [4/2/2011 12:00:41 AM] buckyballreaction: watusimoto said it was lua based, i have yet to learn lua... [4/2/2011 12:02:58 AM] Max h: ok, cant be a premission error [4/2/2011 12:03:18 AM] Max h: nor can it be a mutated level [4/2/2011 12:03:32 AM] Max h: i have to agree with sam on this one [4/2/2011 12:03:39 AM] Samuel Williams: Why there is more robot files in exe/robots, but only "orbotbot" and "s_bot" in installer/robots ? [4/2/2011 12:03:54 AM] Max h: but also say, it could also be that he is using a very old mac that barely supports macosx 10.4 [4/2/2011 12:04:27 AM] buckyballreaction: i wondered that too the other day... [4/2/2011 12:04:41 AM] buckyballreaction: we probably need to have installer consistency [4/2/2011 12:04:52 AM] buckyballreaction: create src/ dir [4/2/2011 12:04:57 AM] Max h: that means windows uses need to install extra bots manually? [4/2/2011 12:04:57 AM] buckyballreaction: create a resource dir/ [4/2/2011 12:05:10 AM] buckyballreaction: put all c++ in src/ dir [4/2/2011 12:05:22 AM] buckyballreaction: put all sounds/music/bots/etc. in resource dir [4/2/2011 12:05:41 AM] buckyballreaction: then have the building programs put everything in the exe dir [4/2/2011 12:06:08 AM] Max h: what about an alias/shortcut? [4/2/2011 12:06:14 AM] buckyballreaction: hehe [4/2/2011 12:06:42 AM] buckyballreaction: you can't effectively use shortcuts on windows [4/2/2011 12:06:59 AM] buckyballreaction: i.e. select a shortcut for an output dir [4/2/2011 12:07:07 AM] buckyballreaction: because it isn't a dir [4/2/2011 12:07:14 AM] Max h: i see [4/2/2011 12:07:19 AM] buckyballreaction: on mac and linux you can create 'soft links' [4/2/2011 12:07:27 AM] Max h: aliases for mac only! [4/2/2011 12:07:32 AM] buckyballreaction: which are true 'shortcuts' [4/2/2011 12:07:45 AM] buckyballreaction: and let you use them as output directories for processes [4/2/2011 12:08:01 AM] Max h: yes [4/2/2011 12:11:02 AM] Samuel Williams: there... I pushed a fix that should fix s_bot shooting neutral forcefields.. [4/2/2011 12:11:05 AM] Max h: ah, if my theme service cannot seem to start up, could it be due to an error with svchost? [4/2/2011 12:11:07 AM] buckyballreaction: wow sam [4/2/2011 12:11:11 AM] buckyballreaction: awesome [4/2/2011 12:12:20 AM] Samuel Williams: look for installer/s_bot.. [4/2/2011 12:16:45 AM] buckyballreaction: s_bot works well, i'll close the issue [4/2/2011 12:22:32 AM] buckyballreaction: if you load unknown's octagon level on sam's server with the latest code, the middle turret is inside the wall edge [4/2/2011 12:23:10 AM] Samuel Williams: my server isn't the latest.. [4/2/2011 12:23:16 AM] buckyballreaction: ahhh.. ok [4/2/2011 12:23:19 AM] buckyballreaction: that's right [4/2/2011 12:23:35 AM] buckyballreaction: no wait [4/2/2011 12:23:44 AM] buckyballreaction: it happens after i downloaded it and opened it in the editor [4/2/2011 12:25:00 AM] buckyballreaction: so wierd [4/2/2011 12:47:51 AM] Chris Eykamp: I'm going to attempt that merge with the editor now [4/2/2011 12:49:05 AM] buckyballreaction: ok [4/2/2011 12:50:11 AM] Chris Eykamp: mmmmm no conflicts [4/2/2011 12:50:16 AM] Chris Eykamp: that was easy [4/2/2011 12:50:16 AM] buckyballreaction: yay [4/2/2011 12:50:29 AM] Chris Eykamp: too easy [4/2/2011 12:50:38 AM] Chris Eykamp: anyway, the latest editor code is in [4/2/2011 12:51:23 AM] Chris Eykamp: now need to get turrets to not snap internally to polywalls, and to get polywall and regualar wall edges to merge properly [4/2/2011 12:52:39 AM] Chris Eykamp: oh boy... long compile [4/2/2011 12:53:17 AM] buckyballreaction: mPoints.size() - i - 1 [4/2/2011 12:53:31 AM] buckyballreaction: wher is the grouping? in your barrier slight optimization [4/2/2011 12:55:21 AM] Chris Eykamp: is that q for me? [4/2/2011 12:55:27 AM] buckyballreaction: yes [4/2/2011 12:55:34 AM] buckyballreaction: i'm a bit braindead at the moment... [4/2/2011 12:55:38 AM] Chris Eykamp: I'm not sure I understand the q [4/2/2011 12:55:57 AM] Chris Eykamp: point me to a line? [4/2/2011 12:56:07 AM] buckyballreaction: http://code.google.com/p/bitfighter/source/detail?r=869de62726fbc877ac96d9cb75205815e9d50e36 [4/2/2011 12:56:28 AM] Chris Eykamp: uh oh... build failed [4/2/2011 12:56:33 AM] Chris Eykamp: on the code I just checked in [4/2/2011 12:56:42 AM] Chris Eykamp: do I need to do a clean? [4/2/2011 12:56:42 AM] buckyballreaction: did you do a full clean? [4/2/2011 12:56:45 AM] Chris Eykamp: no [4/2/2011 12:56:45 AM] buckyballreaction: y [4/2/2011 12:57:01 AM] buckyballreaction: because tnlVector is included in almost everything [4/2/2011 12:57:01 AM] Chris Eykamp: why a clean? [4/2/2011 12:57:30 AM] Chris Eykamp: wouldn't everythign get recompiled anyway? [4/2/2011 12:57:38 AM] buckyballreaction: you'd think... [4/2/2011 12:57:39 AM] Chris Eykamp: well no matter, I've cleaned, and am rebuilding [4/2/2011 12:57:46 AM] Chris Eykamp: I _do_ think [4/2/2011 12:57:48 AM] buckyballreaction: but experience has taught me otherwise with IDEs [4/2/2011 12:57:54 AM] Chris Eykamp: though it didn't work :) [4/2/2011 12:58:01 AM] buckyballreaction: and Makefiles fail [4/2/2011 12:58:10 AM] buckyballreaction: sam already checked something in... [4/2/2011 12:58:38 AM] Samuel Williams: i have build successfully... [4/2/2011 12:58:43 AM] buckyballreaction: full clean of tnl and zap [4/2/2011 12:58:50 AM] Chris Eykamp: so your q -- I preallocated space for the points [4/2/2011 12:58:50 AM] buckyballreaction: all object files must be removed [4/2/2011 12:58:56 AM] Chris Eykamp: the weird formula [4/2/2011 12:59:22 AM] buckyballreaction: every time i see two minus signs in a row, my math background kicks in... [4/2/2011 12:59:38 AM] Chris Eykamp: when i is .size() - 1, the formula evaluates to 0 [4/2/2011 12:59:47 AM] buckyballreaction: i just did a clean compile [4/2/2011 12:59:55 AM] Chris Eykamp: when i is 0, the formula evaluates to size() - 1 [4/2/2011 1:00:11 AM] Chris Eykamp: what's wrong with the way that;s written? [4/2/2011 1:00:16 AM] Chris Eykamp: a - b - c [4/2/2011 1:00:21 AM] Chris Eykamp: not a - (b-c) [4/2/2011 1:00:33 AM] buckyballreaction: a - (b -c) is different than (a -b) -c [4/2/2011 1:00:33 AM] Chris Eykamp: rather (a-b) - c [4/2/2011 1:00:38 AM] Chris Eykamp: of course [4/2/2011 1:00:58 AM] Chris Eykamp: when you see a-b-c, do you really see a-(b-c)? [4/2/2011 1:01:05 AM] buckyballreaction: yeah... [4/2/2011 1:01:07 AM] buckyballreaction: it's weird [4/2/2011 1:01:10 AM] Chris Eykamp: yes [4/2/2011 1:01:35 AM] Chris Eykamp: your math background didn't include order of evaluation for +,-? :) [4/2/2011 1:01:38 AM] buckyballreaction: that's why i alway do groupings.. my brain tends to look at things backwards [4/2/2011 1:01:47 AM] Chris Eykamp: groupings are genarlly good [4/2/2011 1:02:02 AM] Chris Eykamp: in this case they might look weird [4/2/2011 1:02:20 AM] Chris Eykamp: actually, it might be clearer to rewrite and go in ascending order [4/2/2011 1:02:32 AM] Chris Eykamp: since we no longer need to do push_back [4/2/2011 1:02:37 AM] Chris Eykamp: we can populate in any order [4/2/2011 1:02:51 AM] buckyballreaction: everything looks good with the merge [4/2/2011 1:02:51 AM] Chris Eykamp: so the loop would go from 0 to size-1 [4/2/2011 1:03:14 AM] Chris Eykamp: then you could do i - (size-1) [4/2/2011 1:03:28 AM] Chris Eykamp: which might look better [4/2/2011 1:03:35 AM] buckyballreaction: that looks waaay better [4/2/2011 1:03:41 AM] Chris Eykamp: except I'm not sure that's correct [4/2/2011 1:03:55 AM] Chris Eykamp: rewrite it if you like :) [4/2/2011 1:04:28 AM] buckyballreaction: have we proven that Vector(size) + array assignment is faster than just plain old push_back now? [4/2/2011 1:04:30 AM] Chris Eykamp: builds fine after clean [4/2/2011 1:04:36 AM] buckyballreaction: oh good [4/2/2011 1:04:47 AM] Chris Eykamp: I don't think we have proven that [4/2/2011 1:04:59 AM] buckyballreaction: i will do some quick tests... [4/2/2011 1:05:09 AM] Chris Eykamp: though it should be faster to preallcoate in one block rather than allocating in dribs and drabs [4/2/2011 1:05:13 AM] Chris Eykamp: but testing is good [4/2/2011 1:09:44 AM] buckyballreaction: yep: push_back: 2123 prealloc: 1247 [4/2/2011 1:09:52 AM] buckyballreaction: microseconds - seems pretty consistent, too [4/2/2011 1:10:23 AM] Chris Eykamp: 2x [4/2/2011 1:10:33 AM] buckyballreaction: that was 100000 elements [4/2/2011 1:10:59 AM] buckyballreaction: 10000: push_back: 318 prealloc: 83 [4/2/2011 1:11:49 AM] Chris Eykamp: how hard do you think it would be to modify clipper to use a Point rather than a DoublePoint? [4/2/2011 1:11:57 AM] buckyballreaction: i was just thinking that... [4/2/2011 1:12:08 AM] Chris Eykamp: that would get rid of another conversion thing [4/2/2011 1:12:10 AM] buckyballreaction: we could do away with polygon packing/unpacking [4/2/2011 1:12:18 AM] Chris Eykamp: I'm wondering if we could do it with a typedef [4/2/2011 1:12:30 AM] Chris Eykamp: typedef Point DoublePoint [4/2/2011 1:12:39 AM] buckyballreaction: and .X -> .x [4/2/2011 1:12:41 AM] Chris Eykamp: though DoublePoint has X and Y and point has x and y [4/2/2011 1:12:47 AM] Chris Eykamp: yes [4/2/2011 1:12:59 AM] buckyballreaction: which is silly [4/2/2011 1:13:26 AM] Chris Eykamp: I'm wondering if there's a way to fix that with a define or something easy, though perhaps a search/replace would be easiest [4/2/2011 1:14:05 AM] Chris Eykamp: I wonder if the author would consider changing X to x [4/2/2011 1:14:33 AM] buckyballreaction: his newer version is .X, too [4/2/2011 1:15:18 AM] Chris Eykamp: maybe there's a clever way of creating a typedef or somesuch to bridge that gap. Not sure [4/2/2011 1:24:30 AM] buckyballreaction: compiles but fails linking... [4/2/2011 1:25:15 AM] Samuel Williams: maybe you need a full recompile when it fail linking? [4/2/2011 1:25:20 AM] buckyballreaction: sam pulled out the bitwise operations... [4/2/2011 1:25:29 AM] buckyballreaction: yep, that did it [4/2/2011 1:30:39 AM] buckyballreaction: ok, i got it converted [4/2/2011 1:30:45 AM] buckyballreaction: to Zap::Point [4/2/2011 1:30:54 AM] buckyballreaction: you still here watusimoto? [4/2/2011 1:33:25 AM] buckyballreaction: i don't want to be duplicating your work... [4/2/2011 1:35:29 AM] Samuel Williams: I may want to try to fix annoying freezing problem that bbr don't seem to have.. http://www.youtube.com/watch?v=mip17xxxQZQ [4/2/2011 1:35:58 AM] buckyballreaction: ugh... yeah that would be annoying [4/2/2011 1:36:09 AM] buckyballreaction: maybe linux X server handles mouse nicer? [4/2/2011 1:36:30 AM] buckyballreaction: or it may be a glut problem [4/2/2011 1:36:35 AM] buckyballreaction: i'm guess GLUT [4/2/2011 1:36:36 AM] Samuel Williams: could be specific to windows XP.. [4/2/2011 1:38:18 AM] Samuel Williams: that can be fixed in bitfighter code, it because of mouse movement while dragging freezes only when dragging a polygon wall, probably due to repeating calculating of render edges taking lots of time, and another mouse update appears before having a chance to render.. [4/2/2011 1:47:12 AM] buckyballreaction: sam, your barrier change sefaults... [4/2/2011 1:47:41 AM] buckyballreaction: oops [4/2/2011 1:47:43 AM] buckyballreaction: wait [4/2/2011 1:47:50 AM] buckyballreaction: nevermind [4/2/2011 1:47:51 AM] Samuel Williams: Before my changes, i got "Subscript out of range".. Maybe it is something else... [4/2/2011 1:48:02 AM] Samuel Williams: My barrier changes works for me... [4/2/2011 1:48:03 AM] buckyballreaction: i am testing the different algos... [4/2/2011 1:51:42 AM] buckyballreaction: wow sam, that algo is super fast - i think i'm going to add it to tnlVector.reverse() [4/2/2011 2:02:28 AM] Samuel Williams: There, no more freezing effect on me when dragging PolyWall in editor [4/2/2011 2:29:23 AM] buckyballreaction: ok, i added your reverse function to tnlVector [4/2/2011 2:29:26 AM] buckyballreaction: now to use it... [4/2/2011 2:32:31 AM] Samuel Williams: i will soon need to go to bed. [4/2/2011 2:32:37 AM] buckyballreaction: yeah me too [4/2/2011 2:32:52 AM] buckyballreaction: i tested your reversing against std::reverse [4/2/2011 2:33:15 AM] buckyballreaction: they are the same algorithm, but yours is faster because it has fewer method calls [4/2/2011 2:34:20 AM] Samuel Williams: std::reverse could behave differently in different version (windows version vs linux version have different speed difference) [4/2/2011 2:36:19 AM] Samuel Williams: mine only loops half the total size, as the other half is already flipped after processing the first half, it swap individual elements.. [4/2/2011 2:38:44 AM] buckyballreaction: well the linux version of std::reverse splits it in half... [4/2/2011 2:42:04 AM] Samuel Williams: Windows version of std::vector appears to create new array, move everything to new array putting it in reverse order, and destroy the old array... Not sure how fast it is.. [4/2/2011 2:42:46 AM] buckyballreaction: ok altered barrier.cpp to use reverse() now [4/2/2011 2:43:01 AM] buckyballreaction: time for bed for me [4/2/2011 2:43:18 AM] Samuel Williams: bye. [4/2/2011 2:43:24 AM] buckyballreaction: night [4/2/2011 2:47:01 AM | Edited 2:47:40 AM] Samuel Williams: i was looking at Reserved, wrong piece of code, very hard to understand with strange naming... (from wondows std::vector code) Windows don't appear to have std::vector::reverse, not at all (it have reserve, but not reverse) [4/2/2011 11:45:09 AM] buckyballreaction: std::reverse is under [4/2/2011 11:48:31 AM] buckyballreaction: almost done optimizing methods that use DoublePoint [4/2/2011 12:07:36 PM] Chris Eykamp: great [4/2/2011 12:07:46 PM] Chris Eykamp: I can't seem to stay awake past 11PM anymore [4/2/2011 12:08:02 PM] buckyballreaction: that's a healthy vice:) [4/2/2011 12:08:13 PM] Chris Eykamp: the week of getting to bed earlier for my interview, then the week skiing really reset my clock [4/2/2011 12:08:27 PM] buckyballreaction: oh yeah... how was skiing up here? [4/2/2011 12:08:32 PM] Chris Eykamp: healthy but frustrating [4/2/2011 12:08:35 PM] Chris Eykamp: the skiing was awesome [4/2/2011 12:08:49 PM] Chris Eykamp: we had a day of poweder at Alta, and antoerh day of poweder at Solitude [4/2/2011 12:09:07 PM] Chris Eykamp: My son and I did a run at Solitude that ranks in the top 5 I've ever done [4/2/2011 12:09:13 PM] buckyballreaction: cool [4/2/2011 12:09:28 PM] Chris Eykamp: I only regret that we were'nt able to do it a second time, mainly due to a screw up on my part [4/2/2011 12:09:54 PM] Chris Eykamp: it's great -- at 11, Thomas is finally a good enough skiier that I will take him down (almost) anything with me [4/2/2011 12:10:09 PM] Chris Eykamp: and there isn't much I won't ski [4/2/2011 12:10:18 PM] buckyballreaction: cool [4/2/2011 12:10:28 PM] Chris Eykamp: I figure skiing will be the only thing he'll want to do with me as he gets older [4/2/2011 12:10:38 PM] Chris Eykamp: mainly because he won't be able to afford going on his own [4/2/2011 12:10:53 PM] buckyballreaction: hehe [4/2/2011 12:10:58 PM] buckyballreaction: yeah, it's an expensive sport [4/2/2011 12:10:59 PM] Chris Eykamp: thinking stragegically [4/2/2011 12:11:04 PM] Chris Eykamp: extremely expensive [4/2/2011 12:11:21 PM] buckyballreaction: ok pushed! [4/2/2011 12:11:31 PM] Chris Eykamp: and, sadly, somewhat wasteful [4/2/2011 12:11:38 PM] Chris Eykamp: and destructive [4/2/2011 12:11:43 PM] buckyballreaction: clipper uses Zap::Point, and I applied relevant optimizations [4/2/2011 12:11:49 PM] Chris Eykamp: excellent [4/2/2011 12:11:58 PM] buckyballreaction: yeah, heavy traffic skiing it harsh [4/2/2011 12:12:09 PM] Chris Eykamp: I've got about 15 mins to see if I can fix any of the outstanding editor problems [4/2/2011 12:12:56 PM] buckyballreaction: one problem I noticed: when moving vertices of polywall, an attached turret will oscillate in and out [4/2/2011 12:13:20 PM] Chris Eykamp: I like the use reverse checkin [4/2/2011 12:13:39 PM] buckyballreaction: sorry it's require a big recompile... [4/2/2011 12:13:42 PM] Chris Eykamp: I was going to suggest creating a standard reversing mechansim... didn't realize we got one with your vector refactor [4/2/2011 12:14:05 PM] buckyballreaction: sam put it together - i just added it :) [4/2/2011 12:14:19 PM] buckyballreaction: it's fast [4/2/2011 12:14:26 PM] Chris Eykamp: when my google friend first looked at BF code, his first suggestion was to replace Vector with vector [4/2/2011 12:14:37 PM] Chris Eykamp: now I can tell him we've taken his advice :) [4/2/2011 12:14:43 PM] buckyballreaction: hehe [4/2/2011 12:14:51 PM] buckyballreaction: sort of... [4/2/2011 12:14:54 PM] Chris Eykamp: better speed, more standardization [4/2/2011 12:14:56 PM] Chris Eykamp: well, totally [4/2/2011 12:15:08 PM] Chris Eykamp: we still have our own methods, but we're really using vector now [4/2/2011 12:15:24 PM] buckyballreaction: yep [4/2/2011 12:15:27 PM] buckyballreaction: i like it [4/2/2011 12:15:30 PM] Chris Eykamp: yes [4/2/2011 12:16:18 PM] buckyballreaction: I added a method: getStlVector() that returns a reference to the innerVector [4/2/2011 12:16:34 PM] buckyballreaction: i hope i implemented it effeciently in my latest optimization checkin [4/2/2011 12:17:03 PM] buckyballreaction: i'm still on a little shaky ground when it comes to what actually happens with references and passing them around... [4/2/2011 12:17:03 PM] Chris Eykamp: yes, that's great [4/2/2011 12:17:20 PM] Chris Eykamp: that should simplify the code and increase performance [4/2/2011 12:17:25 PM] Chris Eykamp: reduce useless translations [4/2/2011 12:17:37 PM] Chris Eykamp: that was the big selling point for me [4/2/2011 12:19:32 PM] buckyballreaction: i actually kind of like the wrapper - we can add our own method additions like reverse() [4/2/2011 12:20:13 PM] Chris Eykamp: exactly [4/2/2011 12:26:04 PM] buckyballreaction: all the methods of tnlVector are in the header file - would it be could to put them in a .cpp so that the code isn't recompiled in every include? [4/2/2011 12:26:14 PM] buckyballreaction: would it be good.. [4/2/2011 12:27:12 PM] Chris Eykamp: I don't think it would matter much either way [4/2/2011 12:27:19 PM] Chris Eykamp: but I'm not really sure [4/2/2011 12:27:31 PM] Chris Eykamp: oh, wait, I see [4/2/2011 12:28:05 PM] Chris Eykamp: yes, might make sense. i suspect the original thinking was that the Vector code was stable so it was a moot issue; hopefully this will be true again in future, but I don't mind. [4/2/2011 12:28:36 PM] Chris Eykamp: argh -- lots of clipper type conversion warnings [4/2/2011 12:28:44 PM] buckyballreaction: really? [4/2/2011 12:28:51 PM] buckyballreaction: full clean! [4/2/2011 12:29:52 PM] buckyballreaction: i have no compile warnings.. [4/2/2011 12:29:53 PM] Chris Eykamp: yes [4/2/2011 12:29:58 PM] Chris Eykamp: double to float conversions [4/2/2011 12:29:59 PM] Chris Eykamp: easy to fix [4/2/2011 12:30:06 PM] Chris Eykamp: I assume we'll be upgrading to new clipper [4/2/2011 12:30:17 PM] Chris Eykamp: so I should just fix these in the most expedient manner [4/2/2011 12:31:10 PM] buckyballreaction: ahh... i forgot F32 is float, not double [4/2/2011 12:31:16 PM] buckyballreaction: sorry [4/2/2011 12:31:35 PM] Chris Eykamp: no worries [4/2/2011 12:31:40 PM] buckyballreaction: clipper 4 has reached 'beta' status [4/2/2011 12:32:04 PM] buckyballreaction: if we use it, we'll have to recast all Point(x,y) to int.. [4/2/2011 12:32:08 PM] buckyballreaction: S32, i mean [4/2/2011 12:33:20 PM] buckyballreaction: yeah clipper doesn't need double... we use precision of 0.001 and don't allow points over 32767 [4/2/2011 12:36:08 PM] Chris Eykamp: fixes pushed [4/2/2011 12:37:51 PM] buckyballreaction: compiles fine still [4/2/2011 12:38:24 PM] Chris Eykamp: what's the problem here? [4/2/2011 12:38:25 PM] Chris Eykamp: return mVertSelected[vertIndex]; [4/2/2011 12:38:26 PM] Chris Eykamp: fails [4/2/2011 12:38:39 PM] Chris Eykamp: vector mVertSelected [4/2/2011 12:38:52 PM] Chris Eykamp: ok, thought it might be obvious, maybe not [4/2/2011 12:39:00 PM] Chris Eykamp: vertIndex == 1 [4/2/2011 12:39:12 PM] Chris Eykamp: there are two items in the vector [4/2/2011 12:39:17 PM] buckyballreaction: where? [4/2/2011 12:39:37 PM] Chris Eykamp: uiEditor.cpp [4/2/2011 12:39:37 PM] Chris Eykamp: bool WorldItem::vertSelected(S32 vertIndex) { return mVertSelected[vertIndex]; } [4/2/2011 12:39:52 PM] Chris Eykamp: need to see if I can reproduce [4/2/2011 12:40:01 PM] buckyballreaction: that should work fine... [4/2/2011 12:40:10 PM] buckyballreaction: syntactically correct, i think [4/2/2011 12:40:31 PM] Chris Eykamp: _DEBUG_ERROR("vector iterator not dereferencable"); [4/2/2011 12:40:38 PM] Chris Eykamp: that's in the stack [4/2/2011 12:40:52 PM] buckyballreaction: you're joking [4/2/2011 12:40:53 PM] Chris Eykamp: reproducable [4/2/2011 12:41:00 PM] Chris Eykamp: nope [4/2/2011 12:41:12 PM] Chris Eykamp: open editor, create new level [4/2/2011 12:41:32 PM] buckyballreaction: ok [4/2/2011 12:41:38 PM] Chris Eykamp: place one wall, place second crossing; crash. [4/2/2011 12:41:41 PM] Chris Eykamp: every time [4/2/2011 12:41:48 PM] buckyballreaction: nope [4/2/2011 12:41:50 PM] buckyballreaction: not here... [4/2/2011 12:42:09 PM] Chris Eykamp: really? [4/2/2011 12:42:15 PM] Chris Eykamp: interesting [4/2/2011 12:42:17 PM] buckyballreaction: yeah, no problems [4/2/2011 12:42:30 PM] Chris Eykamp: first line diagonal, ul to lr [4/2/2011 12:42:34 PM] buckyballreaction: i tested the editor a bunch as soon as i moved that to vector [4/2/2011 12:42:36 PM] Chris Eykamp: second line to make an x [4/2/2011 12:42:52 PM] buckyballreaction: nope [4/2/2011 12:42:56 PM] buckyballreaction: still editing [4/2/2011 12:43:10 PM] Chris Eykamp: here, every time [4/2/2011 12:43:12 PM] buckyballreaction: is vector different on windows? [4/2/2011 12:43:19 PM] buckyballreaction: let me see how it is instantiated [4/2/2011 12:43:23 PM] Chris Eykamp: I don't know [4/2/2011 12:43:28 PM] Chris Eykamp: shouldn't be [4/2/2011 12:43:55 PM] Chris Eykamp: going to try Vector [4/2/2011 12:44:00 PM] Chris Eykamp: just for kicks [4/2/2011 12:44:12 PM] Chris Eykamp: mmm... no I'm not [4/2/2011 12:44:33 PM] buckyballreaction: yeah, i spent a good three hours on trying Vector should fail [4/2/2011 12:45:00 PM] Chris Eykamp: we're just using it straight up, right? [4/2/2011 12:45:06 PM] buckyballreaction: right [4/2/2011 12:45:12 PM] Chris Eykamp: so that's not really even your problem [4/2/2011 12:45:33 PM] buckyballreaction: borken implementation in windows? [4/2/2011 12:46:37 PM] Chris Eykamp: seeing similar problems elsewhere in editor [4/2/2011 12:46:51 PM] Chris Eykamp: mMostRecentState = mItems; // For later saving to the undo stack if need be [4/2/2011 12:47:04 PM] Chris Eykamp: this is Vector [4/2/2011 12:47:34 PM] Chris Eykamp: must be something different in windows -- you'd have seen this in your testing [4/2/2011 12:47:47 PM] buckyballreaction: I wonder if sam has... [4/2/2011 12:48:00 PM] buckyballreaction: and you did a full clean? [4/2/2011 12:48:53 PM] Chris Eykamp: last night, not this morning [4/2/2011 12:49:00 PM] Chris Eykamp: maybe I should [4/2/2011 12:49:35 PM] buckyballreaction: i am saddened that you and sam don't have parallel building set up [4/2/2011 12:50:24 PM] Chris Eykamp: I've got 10 gallons of beer in my basement that needs to be bottled today; I'm procrastinating cleaning the bottles, as that's a tedius task; maybe I'll start that while doing another clean build. Note that I did not see these problems last night, though I didn't really look for them. Maybe I'll revert and check if it's something that happened in the last batch of checkins [4/2/2011 12:50:52 PM] buckyballreaction: ok [4/2/2011 12:51:19 PM] buckyballreaction: the only thing I did was this: http://code.google.com/p/bitfighter/source/detail?r=b569ac71b4c1c866d2a460702ecd3fe37ca1989a [4/2/2011 12:51:19 PM] Chris Eykamp: rebuilding to my last merge [4/2/2011 12:51:49 PM] Chris Eykamp: but I also fell asleep shortly after that merge, don't even know if the clean rebuild had finished before I lost consciousnes [4/2/2011 12:51:55 PM] buckyballreaction: maybe i shouldn't have put in a refence there, maybe a copy [4/2/2011 12:52:23 PM] Chris Eykamp: ok, well, whatever is going on is probably a simple fix [4/2/2011 12:53:11 PM] Chris Eykamp: I doubt that last change is a problem [4/2/2011 12:53:17 PM] Chris Eykamp: but we'll see [4/2/2011 12:53:26 PM] Chris Eykamp: this machine needs more oomph [4/2/2011 12:53:44 PM] buckyballreaction: do you have this option?: Tools -> Options -> Projects and Solutions -> Build and Run -> maximum number of parallel project builds [4/2/2011 12:55:23 PM] Chris Eykamp: problem existed last night [4/2/2011 12:55:33 PM] Chris Eykamp: will try clean rebuild of latest [4/2/2011 12:57:05 PM] Chris Eykamp: [Saturday, April 02, 2011 12:53 PM] buckyballreaction: <<< Tools -> Options -> Projects and Solutions -> Build and Run -> maximum number of parallel project builds4 [4/2/2011 12:58:20 PM] buckyballreaction: and you can tell 4 threads are building? [4/2/2011 12:58:49 PM] buckyballreaction: just curious because sam says a full build takes a while for him [4/2/2011 12:59:19 PM] buckyballreaction: so i wonder if that option is actually disabled.. [4/2/2011 12:59:47 PM] Chris Eykamp: I have an i3, so that's why it takes a while for me [4/2/2011 1:00:22 PM] Chris Eykamp: OK, cleaned, rebuilding; back in a bit [4/2/2011 1:00:35 PM] buckyballreaction: it takes like 25 seconds on my work computer to build everthing from scratch - and that is running on 6 CPUs [4/2/2011 1:00:37 PM] buckyballreaction: ok [4/2/2011 1:03:30 PM] Chris Eykamp: still building [4/2/2011 1:03:45 PM] Chris Eykamp: just finished [4/2/2011 1:04:42 PM] Chris Eykamp: still broken :( [4/2/2011 1:05:14 PM] buckyballreaction: i can't believe the ISO C++ standard doesn't make bools booleans but bits [4/2/2011 1:05:20 PM] Chris Eykamp: vector iterator not dereferncable [4/2/2011 1:05:29 PM] Chris Eykamp: yes [4/2/2011 1:05:41 PM] Chris Eykamp: but it's the hand we're dealt [4/2/2011 1:05:55 PM] buckyballreaction: maybe we should write bitfighter in java! [4/2/2011 1:06:05 PM] Chris Eykamp: ha! [4/2/2011 1:06:13 PM] Chris Eykamp: ok, got to get some real work done. back later [4/2/2011 1:06:17 PM] buckyballreaction: later [4/2/2011 3:23:15 PM] buckyballreaction: i think instead of vector we should use deque [4/2/2011 3:23:36 PM] buckyballreaction: because i have been reading about tons of crazy issues with vector [4/2/2011 3:25:40 PM] buckyballreaction: we wouldn't have constant time look-ups, but we woul dhave constant-time insertion [4/2/2011 3:26:39 PM] buckyballreaction: but i think in the editor using a deque for vertex points shouldn't really give a performance problem [4/2/2011 3:27:33 PM] buckyballreaction: OR, we could use tnlVector with an [4/2/2011 3:28:59 PM] buckyballreaction: OR bitset [4/2/2011 3:29:52 PM] buckyballreaction: bitset is fixed size, nevermind [4/2/2011 3:30:10 PM] Max h: 01110111011010000111100100100000011010000110010101101100011011000110111100100000011101000110100001100101011100100110010100100001 [4/2/2011 3:30:40 PM] Max h: (secret message) [4/2/2011 3:30:52 PM] buckyballreaction: why hello there! [4/2/2011 3:31:08 PM] Max h: ż??po? no? ??? ?o? [4/2/2011 3:31:23 PM] Samuel Williams: hi.. [4/2/2011 3:31:39 PM] buckyballreaction: hi sam [4/2/2011 3:31:53 PM] buckyballreaction: did you read watusimoto's problem? [4/2/2011 3:32:02 PM] buckyballreaction: does your editor crash? [4/2/2011 3:32:15 PM] Samuel Williams: no. i am up to date.. [4/2/2011 3:32:53 PM] buckyballreaction: he says that every time he draws crossing barriers, it crashes [4/2/2011 3:33:41 PM] Samuel Williams: no, i don't get any error / crash when drawing crossing barrier.. [4/2/2011 3:34:23 PM] Samuel Williams: something might be different between visual c++ 2007 / 2010 ? [4/2/2011 3:34:31 PM] buckyballreaction: that could be [4/2/2011 3:35:00 PM] buckyballreaction: i've been spoiled with coding in Java at work - there are no where near as many quirks as in c++ [4/2/2011 3:41:37 PM] buckyballreaction: wait, a deque is more like a vector than list... so it should have similiar behaviour [4/2/2011 4:04:01 PM] buckyballreaction: ok changed vector to deque in uieditor.cpp [4/2/2011 4:04:16 PM] buckyballreaction: maybe that will help watusimoto [4/2/2011 6:41:12 PM] buckyballreaction: so i've been studying the structure deque [4/2/2011 6:41:43 PM] buckyballreaction: it seems faster than vector in all cases except memory deallocation [4/2/2011 6:41:59 PM] buckyballreaction: it's only disadvantage seems to be pointer addition: &d[0] + x * sizeof(x) [4/2/2011 6:42:05 PM] buckyballreaction: will not work with deque [4/2/2011 6:42:27 PM] Max h: wish you could raid two PCs together like you can with hard drives [4/2/2011 9:13:41 PM] buckyballreaction: zoomber, it's called 'rsync' [4/2/2011 9:15:55 PM] Samuel Williams: bitfighter master dead? [4/2/2011 9:16:21 PM] buckyballreaction: look slike it [4/2/2011 9:16:44 PM] buckyballreaction: a process runs that will send an e-mail to watusimoto about it if it occurs [4/2/2011 9:29:10 PM] buckyballreaction: i think there is a way to restart it remotely... built into bitfighter.org [4/2/2011 9:29:31 PM] buckyballreaction: but it requires authentication and I think only _k has the credentials [4/2/2011 9:30:52 PM | Edited 9:30:56 PM] Samuel Williams: is http://bitfighter.org/ page loads at all, i cannot load the page.. [4/2/2011 9:33:03 PM] Samuel Williams: i can't load not a single thing in the bitfighter.org... it appears both master and http://bitfighter.org have died.. [4/2/2011 9:33:37 PM] buckyballreaction: oh wonderful [4/2/2011 9:34:05 PM | Edited 9:34:14 PM] Samuel Williams: [Saturday, April 02, 2011 9:29 PM] buckyballreaction: <<< i think there is a way to restart it remotely... built into bitfighter.orgThat won't work when bitfighter.org is dead.. [4/2/2011 9:34:13 PM] buckyballreaction: hehe, nope [4/2/2011 9:35:02 PM] Samuel Williams: one good thing, you can see the server list (all 015 clients keeps the old server list from master in INI file.. [4/2/2011 9:36:54 PM] Samuel Williams: [Saturday, April 02, 2011 9:16 PM] buckyballreaction: <<< a process runs that will send an e-mail to watusimoto about it if it occursI am not sure if wats got the email - if the process is run in the same server and server completely died? [4/2/2011 9:37:12 PM] buckyballreaction: it is run on the game server [4/2/2011 9:37:22 PM] buckyballreaction: checks master port remotely [4/2/2011 9:37:38 PM] Samuel Williams: ok.. all Game server still works [4/2/2011 9:38:05 PM] buckyballreaction: if you press F7 [4/2/2011 9:38:22 PM] buckyballreaction: are the the joystick numbers out of order? [4/2/2011 9:39:04 PM] Samuel Williams: 5/7 and 6/8 get flipped in Keys Down.. [4/2/2011 9:39:31 PM] Samuel Williams: for Logiteck Dual Action [4/2/2011 9:40:39 PM] Samuel Williams: as for axis - 0,1,2,5 is shown to work, but 0,1,2,3 for linux.. [4/2/2011 9:41:38 PM] buckyballreaction: i was just curious - i didn't know they could change based on joystick [4/2/2011 9:42:53 PM] Samuel Williams: Logitech dual action in windows, POV is used for d-pad in Linux, D-pad gets mapped to 2 more axis (4,5) [4/2/2011 10:06:51 PM] Chris Eykamp: bitfighter.org, eykamp.com, and the the machine that's hosting it all appears dead [4/2/2011 10:07:41 PM] Chris Eykamp: they do respond to ping, but not to ssh [4/2/2011 10:08:14 PM] Chris Eykamp: we need to migrate bitfighter.org to another server [4/2/2011 10:08:23 PM] Chris Eykamp: where we can all get on [4/2/2011 10:08:25 PM] Chris Eykamp: and in [4/2/2011 10:09:06 PM] Samuel Williams: HTTP runs through a slightly different IP (indirect connect) bitfighter master is a more direct IP address.. [4/2/2011 10:09:42 PM] Chris Eykamp: yes, but it appears that the physical machine it is all on is dead\ [4/2/2011 10:17:49 PM] Chris Eykamp: back up [4/2/2011 10:18:51 PM] buckyballreaction: yay [4/2/2011 10:35:48 PM] Max h: rsync? [4/2/2011 10:39:17 PM] Max h: [Saturday, April 02, 2011 9:13 PM] buckyballreaction: <<< zoomber, it's called 'rsync'i mean like, the abiltiy to run 1 operating system, from 2 computers, or one operating system on one computer, while using the other computer for extra resources [4/2/2011 10:41:11 PM] Samuel Williams: Many operating system currently supports: Multiple CPU multiple graphics card Multiple keyboard / mouse inputs Multiple joysticks [4/2/2011 10:42:25 PM] Max h: right [4/2/2011 10:42:36 PM] Samuel Williams: Multiples monitors But problems: 1. you don't get multiple mouse pointers from using 2 different mouse at the same time 2. operating system usually don't run in 2 machines together (they have their own memory, and their own hard disk.. [4/2/2011 10:42:57 PM] buckyballreaction: VNC! [4/2/2011 10:43:15 PM] Max h: oh, awesome idea raptor. let one computer sit there while the other does all the work! [4/2/2011 11:26:33 PM] buckyballreaction: watusimoto, i made a change to UIEditor.cpp [4/2/2011 11:26:44 PM] buckyballreaction: vector -> deque [4/2/2011 11:27:00 PM] buckyballreaction: i am curious if you are still having the editor crashes [4/2/2011 11:30:06 PM] Samuel Williams: If i try to delete something (HealthItem or SpawnPoint) it may error.. [4/2/2011 11:30:42 PM] buckyballreaction: i've already tested that and have no problems... [4/2/2011 11:33:26 PM] Samuel Williams: The problem is mUnmovedItems is too small... diff --git a/zap/UIEditor.cpp b/zap/UIEditor.cpp --- a/zap/UIEditor.cpp +++ b/zap/UIEditor.cpp @@ -3667,7 +3667,8 @@ mSnapVertex_j = NONE; itemToLightUp = NONE; //TNLAssert(mUnmovedItems.size() > itemIndex, "UnmovedItems too small!"); - mUnmovedItems.erase(itemIndex); + if(U32(mUnmovedItems.size()) > U32(itemIndex)) + mUnmovedItems.erase(itemIndex); [4/2/2011 11:38:20 PM] buckyballreaction: i don't get it [4/2/2011 11:38:30 PM] buckyballreaction: are you getting a problem, or is this a 'maybe'? [4/2/2011 11:39:16 PM] Samuel Williams: mUnmovedItems.size = 17 (0,1,2, ... 15,16), itemIndex = 17, out of range.. [4/2/2011 11:39:32 PM] buckyballreaction: does this have to do with my deque change? [4/2/2011 11:40:16 PM] Samuel Williams: not sure... [4/2/2011 11:49:06 PM] Chris Eykamp: saw that, haven [4/2/2011 11:49:11 PM] Chris Eykamp: t tried it [4/2/2011 11:49:27 PM] Chris Eykamp: working on getting dialblo I running in a vm for my kids to play [4/2/2011 11:49:30 PM] Chris Eykamp: what a pain that was [4/2/2011 11:49:40 PM] Chris Eykamp: but finally works great under virtual box 4 [4/2/2011 11:50:10 PM] Chris Eykamp: now sorting through a half dozen hard drives trying to figure out my corrupted archive issue [4/2/2011 11:52:07 PM] Chris Eykamp: building [4/2/2011 11:52:08 PM] buckyballreaction: doesn't diable work well with WINE: [4/2/2011 11:52:24 PM] Chris Eykamp: does wine work on windows 7? [4/2/2011 11:52:30 PM] buckyballreaction: oh... [4/2/2011 11:52:33 PM] buckyballreaction: hehe, not sure exactly [4/2/2011 11:52:44 PM] Chris Eykamp: only if i run linux in a vm [4/2/2011 11:52:47 PM] buckyballreaction: let me do a bit of research, i used to package WINE [4/2/2011 11:53:17 PM] buckyballreaction: actually one of the goals of WINE is to run old windows games on newer windows systems [4/2/2011 11:53:47 PM] Chris Eykamp: well, it works perfectly [4/2/2011 11:53:55 PM] Chris Eykamp: so I have a good solution [4/2/2011 11:53:59 PM] buckyballreaction: excellent [4/2/2011 11:54:05 PM] buckyballreaction: i wonder if dosbox runs diablo... [4/2/2011 11:54:20 PM] Chris Eykamp: I like the vm because I can just save the current image and pick up where I left off [4/2/2011 11:54:42 PM] Chris Eykamp: I'm going to set one up for LAME because LAME offers no way to pause games, but you can just pause the whole vm [4/2/2011 11:54:55 PM] buckyballreaction: what's LAME? [4/2/2011 11:55:09 PM] buckyballreaction: besides the mp3 library.. [4/2/2011 11:57:21 PM] Chris Eykamp: sorry MAME [4/2/2011 11:57:33 PM] Chris Eykamp: arcade game emulator [4/2/2011 11:57:38 PM] Chris Eykamp: kids like the classic Gauntlet [4/2/2011 11:57:57 PM] Chris Eykamp: but they can only get so far in their alotted time, so they play the first 20 levels over and over [4/2/2011 11:58:06 PM] buckyballreaction: ha! i found one guy who got windows95 to run in dosbox and then diablo in that... [4/2/2011 11:58:18 PM] Chris Eykamp: if they can pause they can pick up where they were the next day [4/2/2011 11:58:21 PM] buckyballreaction: ah yes.. a VM save would be nice [4/2/2011 11:58:32 PM] Chris Eykamp: they spend about $75 in virtual quarters to get there :) [4/2/2011 11:58:41 PM] buckyballreaction: haha [4/2/2011 11:58:42 PM] buckyballreaction: cool [4/2/2011 11:58:59 PM] Chris Eykamp: running [4/2/2011 11:59:09 PM] Chris Eykamp: nervous? will it work? [4/2/2011 11:59:18 PM] buckyballreaction: works on my end :) [4/2/2011 11:59:29 PM] buckyballreaction: i read a lot about vector [4/2/2011 11:59:38 PM] buckyballreaction: the general consensus was to never rely on it [4/2/2011 11:59:42 PM] Chris Eykamp: crash [4/2/2011 11:59:54 PM] buckyballreaction: now that's just weird [4/3/2011 12:00:06 AM] Chris Eykamp: vector erase iterator outside range [4/3/2011 12:00:14 AM] Chris Eykamp: needs investigation [4/3/2011 12:00:24 AM] buckyballreaction: that's a different errror.. [4/3/2011 12:00:45 AM] Chris Eykamp: yes [4/3/2011 12:00:51 AM] buckyballreaction: same thing in the editor though? [4/3/2011 12:00:52 AM] Chris Eykamp: inside barrierEnds.clear(); // local static vector [4/3/2011 12:00:58 AM] buckyballreaction: haha [4/3/2011 12:01:02 AM] Chris Eykamp: that's kind of a problem [4/3/2011 12:01:11 AM] buckyballreaction: it sounds like your tnlVector never got cleaned out [4/3/2011 12:01:15 AM] Chris Eykamp: clear() should never fail [4/3/2011 12:01:30 AM] Chris Eykamp: I'll clean build [4/3/2011 12:01:55 AM] buckyballreaction: i looked into moving the vector code into a cpp file [4/3/2011 12:02:03 AM] buckyballreaction: it isn't allowed with templates [4/3/2011 12:02:09 AM] buckyballreaction: so scratch that [4/3/2011 12:02:23 AM] Chris Eykamp: is there any possibility that innerVector is not properly initialized? [4/3/2011 12:02:36 AM] Chris Eykamp: just a thought; no reason to suspect [4/3/2011 12:02:47 AM] buckyballreaction: i did lots of creation tests.. [4/3/2011 12:03:18 AM] buckyballreaction: all those stats tests i did all involved basic initialization and constructor usage of the new Vector [4/3/2011 12:03:23 AM] buckyballreaction: never had any problems [4/3/2011 12:04:27 AM] buckyballreaction: i guess i don't understand how sam doesn't crash... [4/3/2011 12:04:38 AM] buckyballreaction: but he uses vc++ 2008 i think [4/3/2011 12:04:40 AM] Chris Eykamp: let me rebuild before we get too far into it [4/3/2011 12:04:57 AM] buckyballreaction: can you make sure that the tnl objects are nuked [4/3/2011 12:05:43 AM] buckyballreaction: i don't know how you have it set up, but in Mac i had to pre-build tnl as a static library before linking [4/3/2011 12:05:53 AM] buckyballreaction: that static library sometimes stayed around... [4/3/2011 12:10:10 AM] Chris Eykamp: I cleaned [4/3/2011 12:10:14 AM] Chris Eykamp: then bluescreened [4/3/2011 12:10:22 AM] buckyballreaction: cleaned too much! [4/3/2011 12:10:24 AM] Chris Eykamp: now trying to recover where I was [4/3/2011 12:10:29 AM] Chris Eykamp: just a touch [4/3/2011 12:10:31 AM] buckyballreaction: what OS? [4/3/2011 12:10:36 AM] buckyballreaction: XP? [4/3/2011 12:10:41 AM] Chris Eykamp: win7 [4/3/2011 12:10:54 AM] buckyballreaction: i've never seen a blue screen on win7 yet.. [4/3/2011 12:11:01 AM] Chris Eykamp: I have a couple of times [4/3/2011 12:11:12 AM] Chris Eykamp: but I push it hard [4/3/2011 12:11:14 AM] buckyballreaction: i hear it takes skill now to do that.. [4/3/2011 12:11:28 AM] Chris Eykamp: I'm not sure about that [4/3/2011 12:11:54 AM] buckyballreaction: my work laptop technically has windows 7 on it, but I don't feel at home with it... [4/3/2011 12:12:18 AM] buckyballreaction: besides, i don't need to give tech support since i don't know the OS well enough :) [4/3/2011 12:12:30 AM] Chris Eykamp: I generally like it [4/3/2011 12:12:50 AM] buckyballreaction: its just been too many years since i've used windows as a primary OS [4/3/2011 12:13:30 AM] Chris Eykamp: I don't feel Linux is quite there yet as a consumer OS [4/3/2011 12:13:37 AM] buckyballreaction: it definitely isn't [4/3/2011 12:14:04 AM] buckyballreaction: the running joke is: 'this year is Year of the Linux Desktop' [4/3/2011 12:14:11 AM] buckyballreaction: it'll never happen [4/3/2011 12:14:34 AM] buckyballreaction: we'll, technically I guess Google made it happen with Andriod [4/3/2011 12:15:15 AM] Chris Eykamp: it will happen [4/3/2011 12:15:30 AM] buckyballreaction: we have to kick the evangelists out first... [4/3/2011 12:15:32 AM] Chris Eykamp: it's really a ui issue [4/3/2011 12:15:46 AM] Chris Eykamp: though a very hard one [4/3/2011 12:16:04 AM] Chris Eykamp: ok, built; testing [4/3/2011 12:16:07 AM] buckyballreaction: yep [4/3/2011 12:16:12 AM] buckyballreaction: work work! [4/3/2011 12:16:23 AM] Chris Eykamp: crash [4/3/2011 12:16:33 AM] buckyballreaction: different error? [4/3/2011 12:16:33 AM] Chris Eykamp: same thing [4/3/2011 12:17:19 AM] Chris Eykamp: innerVector has two elements, that look legit [4/3/2011 12:17:34 AM] Chris Eykamp: so it was properly initialziaed [4/3/2011 12:17:51 AM] buckyballreaction: i think it has to do with stale objects... [4/3/2011 12:17:57 AM] buckyballreaction: but i don't know how [4/3/2011 12:19:43 AM] Chris Eykamp: doesn't look like it [4/3/2011 12:19:54 AM] Chris Eykamp: but it would make sense [4/3/2011 12:20:16 AM] Chris Eykamp: actually [4/3/2011 12:21:58 AM] Chris Eykamp: inside, clear calls erase(begin(), end()); [4/3/2011 12:22:18 AM] Chris Eykamp: which checks the following: [4/3/2011 12:22:21 AM] Chris Eykamp: if (_Last < _First || _VICONT(_First) != this || _VIPTR(_First) < this->_Myfirst || this->_Mylast < _VIPTR(_Last)) [4/3/2011 12:22:26 AM] Chris Eykamp: if that is true, error [4/3/2011 12:22:36 AM] Chris Eykamp: I don't really understand that blcok [4/3/2011 12:22:38 AM] Chris Eykamp: but [4/3/2011 12:22:48 AM] Chris Eykamp: _First looks legit [4/3/2011 12:23:04 AM] Chris Eykamp: _last, however, loooks unintialized or something [4/3/2011 12:23:27 AM] buckyballreaction: in std::vector, last (or end()) always points to the last element + 1 [4/3/2011 12:24:04 AM] Chris Eykamp: so... end() points to garbage? [4/3/2011 12:24:28 AM] buckyballreaction: i couldn't really tell... the STL is amazing hard to follow [4/3/2011 12:24:33 AM] buckyballreaction: it could have been a placeholder [4/3/2011 12:25:21 AM] Chris Eykamp: ok, well it points to garbage [4/3/2011 12:25:39 AM] buckyballreaction: i think that is standard [4/3/2011 12:25:46 AM] Chris Eykamp: either way, I have to assume it is working as intended [4/3/2011 12:26:00 AM] Chris Eykamp: which means... what? [4/3/2011 12:26:27 AM] buckyballreaction: it means... create a temporary diff of your current changes and nuke the whold HG checkout [4/3/2011 12:26:33 AM] buckyballreaction: ? [4/3/2011 12:26:34 AM] buckyballreaction: maybe? [4/3/2011 12:27:21 AM] Chris Eykamp: I have no curren tchanges [4/3/2011 12:27:27 AM] Chris Eykamp: recheckout the whole thing?? [4/3/2011 12:27:40 AM] Chris Eykamp: I don't think thats the issue [4/3/2011 12:28:10 AM] buckyballreaction: is there a vc++ cache that could be cleaned? [4/3/2011 12:28:16 AM] Chris Eykamp: well, I could try a clean checkout in a new lcoation [4/3/2011 12:28:21 AM] buckyballreaction: yes that [4/3/2011 12:28:24 AM] Chris Eykamp: why not [4/3/2011 12:30:37 AM] buckyballreaction: sam, would any of these suggestions help you with building faster?: http://stackoverflow.com/questions/55517/very-slow-compile-times-on-visual-studio/55645#55645 [4/3/2011 12:32:11 AM] buckyballreaction: i guess most of those suggestions wouldn't apply - its for vc++ 2005 [4/3/2011 12:35:32 AM] buckyballreaction: so what would you say to getting bitfighter to compile in mingw? [4/3/2011 12:35:35 AM] buckyballreaction: any benefits? [4/3/2011 12:35:59 AM] Chris Eykamp: I've tried [4/3/2011 12:36:18 AM] Chris Eykamp: I wanted to use a non-VC++ IDE, though i haven't found any betterones [4/3/2011 12:36:34 AM] Chris Eykamp: and since the version I use is free... [4/3/2011 12:36:42 AM] buckyballreaction: ok [4/3/2011 12:36:44 AM] buckyballreaction: just curious.. [4/3/2011 12:36:54 AM] Chris Eykamp: building new clone [4/3/2011 12:37:15 AM] buckyballreaction: please work please work [4/3/2011 12:39:30 AM] buckyballreaction: oh, i forgot to ask: i found the file zap/SoundSystem.cpp has some OGG vorbis playback routines coded up in it, although it doesn't compile because of several missing classes. [4/3/2011 12:39:39 AM] buckyballreaction: do you know the history behind that file? [4/3/2011 12:42:36 AM] Chris Eykamp: no [4/3/2011 12:43:39 AM] Chris Eykamp: don't know why the master is set as the default startup project [4/3/2011 12:43:42 AM] Chris Eykamp: testing [4/3/2011 12:45:40 AM] Samuel Williams: [Sunday, April 03, 2011 12:30 AM] buckyballreaction: <<< sam, would any of these suggestions help you with building faster?: http://stackoverflow.com/questions/55517/very-slow-compile-times-on-visual-studio/55645#55645Use a true multicore processor.... Too bad my computer use old pentium 4 3 GHz.... [4/3/2011 12:46:17 AM] buckyballreaction: ah.. sorry [4/3/2011 12:47:35 AM] Chris Eykamp: crash [4/3/2011 12:47:40 AM] buckyballreaction: what!? [4/3/2011 12:47:57 AM] Chris Eykamp: same thing [4/3/2011 12:48:01 AM] Chris Eykamp: doesn't make sense [4/3/2011 12:49:12 AM] Chris Eykamp: sam, please try this with latest code: start editor with new level, create two crossing walls in an x formation, then move one of the end vertices [4/3/2011 12:49:33 AM] Chris Eykamp: crashes for me every time [4/3/2011 12:51:42 AM] Chris Eykamp: well this is crazy [4/3/2011 12:51:50 AM] Chris Eykamp: crashes with win2010 [4/3/2011 12:51:57 AM] Chris Eykamp: maybe I'll check for updated [4/3/2011 12:52:11 AM] Samuel Williams: [Sunday, April 03, 2011 12:51 AM] Samuel Williams: <<< no crashes for me.. http://96.2.123.136/bitfighter/zap_d-20110403-0050222.pngwrong chat window... [4/3/2011 12:53:04 AM] Samuel Williams: it does crash on me in EditorUserInterface::deleteItem, due to mUnmovedItems.erase(itemIndex); (mUnmovedItems being too small) [4/3/2011 12:53:54 AM] buckyballreaction: what item did you delete? [4/3/2011 12:54:14 AM] Samuel Williams: i can freely move walls around, add more walls and items, and no crashes there... [4/3/2011 12:54:39 AM] Samuel Williams: when deleting spawn point (anything that is not barrier wall) [4/3/2011 12:55:00 AM] Chris Eykamp: why would it crash so consistently for me and not for you, sam? [4/3/2011 12:55:04 AM] Chris Eykamp: different compiler? [4/3/2011 12:55:10 AM] Chris Eykamp: (2008 v 2010)? [4/3/2011 12:55:16 AM] buckyballreaction: ha! crash! [4/3/2011 12:55:23 AM] buckyballreaction: deleteing spawn point [4/3/2011 12:55:54 AM] Samuel Williams: where did you crash? [4/3/2011 12:56:30 AM] buckyballreaction: deleteing a spawn point in editor, like you [4/3/2011 12:57:06 AM] buckyballreaction: doint regression testing... [4/3/2011 12:57:07 AM] Samuel Williams: bbr have same crash as me when deleting spawn point. [4/3/2011 12:57:47 AM] Chris Eykamp: installing sp1 [4/3/2011 12:58:18 AM] Samuel Williams: [Sunday, April 03, 2011 12:55 AM] Chris Eykamp: <<< why would it crash so consistently for me and not for you, sam?did you make any changes to programming code that is not shown in repository? [4/3/2011 12:58:31 AM] Chris Eykamp: no [4/3/2011 12:58:38 AM] Chris Eykamp: I did a clean checkout into a new folder [4/3/2011 12:58:40 AM] Chris Eykamp: built there [4/3/2011 12:58:44 AM] Chris Eykamp: same problem [4/3/2011 12:59:02 AM] Chris Eykamp: looks like an internal problem with vector class [4/3/2011 12:59:12 AM] buckyballreaction: i'm reverting to just before the last merge to see if my vector classs causes sam's and mine error.. [4/3/2011 12:59:15 AM] Samuel Williams: ok.. i am not sure why, i just don't have any problems.. [4/3/2011 1:00:11 AM] Chris Eykamp: maybe move internalVector to a deque as a quick fix? [4/3/2011 1:00:18 AM] buckyballreaction: nope [4/3/2011 1:00:21 AM] buckyballreaction: everything works [4/3/2011 1:00:28 AM] Chris Eykamp: not quite [4/3/2011 1:00:29 AM] buckyballreaction: before the last merge [4/3/2011 1:00:43 AM] buckyballreaction: and after my vector commits [4/3/2011 1:01:16 AM] buckyballreaction: everything works at that revision, i mean - specifically: 1f8a3f6e8d3a [4/3/2011 1:01:19 AM] Chris Eykamp: 443MB???? [4/3/2011 1:01:24 AM] buckyballreaction: WOW [4/3/2011 1:01:42 AM] buckyballreaction: now testing at the merge... [4/3/2011 1:02:30 AM] Chris Eykamp: since it's never failed for you, what will that tell you? [4/3/2011 1:02:38 AM] buckyballreaction: i did duplicate sam's error [4/3/2011 1:03:03 AM] buckyballreaction: which may be due to the Vector class, if so.. then i can debug [4/3/2011 1:03:49 AM] buckyballreaction: sam [4/3/2011 1:04:10 AM] buckyballreaction: merge with watusimoto's code at 986d50a2010 introduced our error [4/3/2011 1:04:41 AM] buckyballreaction: we were good at 1f8a3f6e8d3a [4/3/2011 1:04:59 AM] Samuel Williams: with my crash on delete spawn error, it is simply out of range... itemIndex if bigger (or equal) to mUmovedItems.size() [4/3/2011 1:05:59 AM] Samuel Williams: in void EditorUserInterface::deleteItem(S32 itemIndex) there is mUnmovedItems.. i simply change it to if(mUnmovedItems.size() > itemIndex) mUnmovedItems.erase(itemIndex); and no more crash... [4/3/2011 1:06:12 AM] buckyballreaction: perfect [4/3/2011 1:06:35 AM] buckyballreaction: can you commit? [4/3/2011 1:06:46 AM] buckyballreaction: maybe it will inadvertently fix watusimoto... [4/3/2011 1:07:00 AM] Samuel Williams: ok.. [4/3/2011 1:07:40 AM] Samuel Williams: pushed.. [4/3/2011 1:08:25 AM] buckyballreaction: i wonder where that was introduced... [4/3/2011 1:09:18 AM] Chris Eykamp: + if(mUnmovedItems.size() > itemIndex) // better fix? + mUnmovedItems.erase(itemIndex); [4/3/2011 1:09:34 AM] Chris Eykamp: the real question is how does this sutation come about [4/3/2011 1:09:51 AM] Chris Eykamp: what are you doing to trigger this? [4/3/2011 1:10:28 AM] Samuel Williams: delete spawn point causes mUnmovedItems.size() == itemIndex, but index must be < .size(), and index >= zero [4/3/2011 1:11:06 AM] Chris Eykamp: so you are selecting an existing spawn point and hitting the del key? [4/3/2011 1:11:14 AM] Samuel Williams: yes. [4/3/2011 1:11:36 AM] Chris Eykamp: try moving something just before doing that [4/3/2011 1:12:03 AM] Chris Eykamp: maybe mUnmovedItems is not relevant to this situation; [4/3/2011 1:13:39 AM] buckyballreaction: you did change some code near there: http://code.google.com/p/bitfighter/source/detail?r=ef86be420632d420beea970f2cc37e0bee72200c [4/3/2011 1:14:10 AM] buckyballreaction: but it doesn't look like anything special [4/3/2011 1:16:59 AM] Samuel Williams: now it freezes when starting empty map, add then delete one spawn point... [4/3/2011 1:18:24 AM] buckyballreaction: watusimoto, if you revert and do a clean build at 1f8a3f6e8d3a, will you get a crash? [4/3/2011 1:18:54 AM] buckyballreaction: that is just before the merge of your UI stuff, but after the new Vector implementation [4/3/2011 1:21:03 AM] Chris Eykamp: think I tried something liek this earlier, will try again [4/3/2011 1:22:41 AM] Chris Eykamp: hold on here [4/3/2011 1:22:44 AM] Chris Eykamp: I just got this msg [4/3/2011 1:22:54 AM] Samuel Williams: made another push to fix freezing, now editor somehow doesn't want to delete spawn point when hitting delete button... [4/3/2011 1:23:18 AM] Chris Eykamp: blah.../include/vector was modified outside source editor -- do you want to reload? [4/3/2011 1:23:39 AM] buckyballreaction: ? [4/3/2011 1:23:44 AM] buckyballreaction: that's seems odd [4/3/2011 1:23:56 AM] Chris Eykamp: maybe from the sp install that's going on? [4/3/2011 1:24:13 AM] Samuel Williams: maybe you need to re-install or repair files in visual c++ ? [4/3/2011 1:24:13 AM] buckyballreaction: that would do it [4/3/2011 1:25:00 AM] Chris Eykamp: oh great, another unkillable process [4/3/2011 1:25:01 AM] Samuel Williams: or updates might fix it? [4/3/2011 1:25:11 AM] Chris Eykamp: we'll see [4/3/2011 1:25:52 AM] buckyballreaction: sam, are your commits just putting on more bandages to tthe problem? It seems like there is something else happening.. [4/3/2011 1:26:23 AM] Samuel Williams: at lease no more crashing / freezing.. [4/3/2011 1:26:58 AM] buckyballreaction: oh so it did fix it? [4/3/2011 1:27:09 AM] Chris Eykamp: @bbr, asking about [Sunday, April 03, 2011 1:09 AM] Chris Eykamp: <<< + if(mUnmovedItems.size() > itemIndex) // better fix? + mUnmovedItems.erase(itemIndex); [4/3/2011 1:27:10 AM] Chris Eykamp: ? [4/3/2011 1:27:18 AM] buckyballreaction: yep [4/3/2011 1:27:43 AM] Chris Eykamp: mUnmoveditems is used as a referece when moving items [4/3/2011 1:28:23 AM] Chris Eykamp: could be that the regular items list is updated, but mUnovedItems is not, because no move happens [4/3/2011 1:28:31 AM] Chris Eykamp: but if so that would have shown up eons ago [4/3/2011 1:28:47 AM] buckyballreaction: maybe the old tnlVector let some things slide... [4/3/2011 1:28:47 AM] Samuel Williams: something wrong with EditorUserInterface::deleteItem that prevents deleting SpawnPoint loadoutZone, and all non-barrier walls. [4/3/2011 1:28:57 AM] Chris Eykamp: I need to refresh myself on why munovedItems even exists [4/3/2011 1:29:25 AM] buckyballreaction: the more i look at this, the more it seems UIEditor could use an overhaul.. [4/3/2011 1:30:04 AM] Chris Eykamp: it might be overly complex, but it is generally pretty sound, I think [4/3/2011 1:30:33 AM] buckyballreaction: i know there is at least one memory leak hidden in there. [4/3/2011 1:30:35 AM] Chris Eykamp: got the vector iterator not referencable again [4/3/2011 1:31:04 AM] Samuel Williams: where is the error? [4/3/2011 1:31:45 AM] Chris Eykamp: place two crossing walls [4/3/2011 1:32:03 AM] Chris Eykamp: crashes at... [4/3/2011 1:33:04 AM] Chris Eykamp: mMostRecentState = mItems; // For later saving to the undo stack if need be [4/3/2011 1:33:16 AM] Chris Eykamp: line 3921 of UIEditor.cpp [4/3/2011 1:33:22 AM] Chris Eykamp: that assignment [4/3/2011 1:35:06 AM] buckyballreaction: did i mess up the operator= in tnlVector.h:208 ? [4/3/2011 1:35:24 AM] buckyballreaction: i left it just like the old tnlVector, I think [4/3/2011 1:35:43 AM] buckyballreaction: no i didn't [4/3/2011 1:35:51 AM] buckyballreaction: i just let std::vector handle it [4/3/2011 1:36:05 AM] Chris Eykamp: when you changed vecor to deque it fixed the problem [4/3/2011 1:36:19 AM] buckyballreaction: ?? [4/3/2011 1:36:26 AM] buckyballreaction: you mean you haven't updated? [4/3/2011 1:36:32 AM] Chris Eykamp: I reverted, like you asked [4/3/2011 1:36:53 AM] Chris Eykamp: sorry, I'm testing the old revision you asked me to test [4/3/2011 1:37:06 AM] buckyballreaction: ok [4/3/2011 1:37:27 AM] Chris Eykamp: sp has finished installing, will update to latest and test again [4/3/2011 1:37:34 AM] buckyballreaction: okey doke [4/3/2011 1:37:49 AM] buckyballreaction: it's looking like something went funny with that merge [4/3/2011 1:37:54 AM] Chris Eykamp: I think there is a problem with vector in Visual Studio 2010 [4/3/2011 1:37:59 AM] buckyballreaction: ah ok [4/3/2011 1:38:08 AM] Chris Eykamp: seems unlikely [4/3/2011 1:38:15 AM] buckyballreaction: but that merge introduced sam's and mine bug [4/3/2011 1:38:16 AM] Chris Eykamp: but it's the most logical explanation [4/3/2011 1:38:56 AM] buckyballreaction: 986d50a2010a <- introduced the crashing with delete spawn point [4/3/2011 1:39:19 AM] buckyballreaction: and sometimes intead of crashing, it just freezes the game and spikes the CPU [4/3/2011 1:39:41 AM] Chris Eykamp: I did a lot of editor refactor; might well have broken something [4/3/2011 1:39:55 AM | Edited 1:40:12 AM] Samuel Williams: i did fix the freezing and cpu spike, but it then refuse to delete spawn points.. [4/3/2011 1:39:57 AM] Chris Eykamp: I'm still trying to get so I can do further testing [4/3/2011 1:40:15 AM] Chris Eykamp: but I've been sidelined by the vector thing [4/3/2011 1:40:39 AM] buckyballreaction: that last commit of yours sam looks fishy [4/3/2011 1:40:53 AM] Samuel Williams: so, copying whole vector have problems only for wat's ? [4/3/2011 1:41:07 AM] buckyballreaction: we don't know what his problem is [4/3/2011 1:41:25 AM] buckyballreaction: just that it seems like there is a problem with vector [4/3/2011 1:42:04 AM] buckyballreaction: but he just compiled the commit after the new implementation of Vector and before his merge of UI code - he said it works fine there [4/3/2011 1:42:24 AM] Chris Eykamp: http://connect.microsoft.com/VisualStudio/feedback/details/557029/visual-c-iterator-debugging-incorrectly-raises-assertion-on-correct-use-of-return-value-of-std-vector-erase [4/3/2011 1:42:26 AM] buckyballreaction: sam, your last commit, did you mean to delete that 'j--' ? [4/3/2011 1:42:49 AM] Samuel Williams: yes.. [4/3/2011 1:43:31 AM] Chris Eykamp: still crashes [4/3/2011 1:44:23 AM] Samuel Williams: in TNL::Vector, will adding this fix crash? innerVector.reserve(p.size()); innerVector = p.innerVector; return *this; [4/3/2011 1:44:37 AM] Chris Eykamp: but I'm not seeing the flood of complaints I'd expect if this were a VC++ bug [4/3/2011 1:44:39 AM] Samuel Williams: in operator = [4/3/2011 1:44:42 AM] buckyballreaction: ha, they say the fix will be in VC11 [4/3/2011 1:44:55 AM] buckyballreaction: http://connect.microsoft.com/VisualStudio/feedback/details/545013/vector-erase-returns-incompatible-iterator-in-debug-build [4/3/2011 1:44:56 AM] Chris Eykamp: add that where? [4/3/2011 1:45:26 AM] buckyballreaction: that will require a full clean build [4/3/2011 1:45:35 AM] buckyballreaction: line 208 in tnlVector.h [4/3/2011 1:45:48 AM] buckyballreaction: is the method [4/3/2011 1:46:07 AM] Samuel Williams: forget modifying TNL for full rebuild,... [4/3/2011 1:46:12 AM] Chris Eykamp: oh, well, the problem I get now is related to doing a clear [4/3/2011 1:46:19 AM] buckyballreaction: hehe [4/3/2011 1:46:40 AM] buckyballreaction: have you tested a release build? [4/3/2011 1:46:52 AM] Samuel Williams: try this in UIEditor: mMostRecentState .reserve(mItems.size()); mMostRecentState = mItems; [4/3/2011 1:47:02 AM] Chris Eykamp: I'm updated to the latest in the repo, and I get a crash here: [4/3/2011 1:47:04 AM] Chris Eykamp: barrierEnds.clear(); // local static vector [4/3/2011 1:47:15 AM] buckyballreaction: so goofy [4/3/2011 1:47:17 AM] Chris Eykamp: editor line 237 [4/3/2011 1:47:21 AM] Chris Eykamp: that should never crash [4/3/2011 1:47:27 AM] Chris Eykamp: I'll try a releaes [4/3/2011 1:47:34 AM] Samuel Williams: try barrierEnds.setSize(0); [4/3/2011 1:47:59 AM] buckyballreaction: watusimoto, can you turn off _HAS_ITERATOR_DEBUGGING [4/3/2011 1:48:32 AM] Samuel Williams: it will probably require full rebuild when changing global defines.. [4/3/2011 1:48:36 AM] Chris Eykamp: trying sams suggestion [4/3/2011 1:48:40 AM] Chris Eykamp: first [4/3/2011 1:49:44 AM] Chris Eykamp: setsize crashes in same place [4/3/2011 1:49:53 AM] Chris Eykamp: trying release build [4/3/2011 1:49:53 AM] buckyballreaction: yeah, that's not your problem [4/3/2011 1:50:35 AM] Chris Eykamp: apparently not [4/3/2011 1:50:56 AM] Chris Eykamp: building releae with original code from repo [4/3/2011 1:51:02 AM] Samuel Williams: try if(barrierEnds.size() != 0) barrierEnds.clear(); [4/3/2011 1:51:18 AM] Chris Eykamp: [Sunday, April 03, 2011 1:50 AM] Samuel Williams: <<< barrierEndshas 2 elements [4/3/2011 1:51:21 AM] Chris Eykamp: in this case [4/3/2011 1:51:27 AM] Chris Eykamp: and both look legit [4/3/2011 1:52:20 AM] Chris Eykamp: I could get rid of the vector here since barrierEnds will always have 2 elements; use start and end instead or something [4/3/2011 1:52:24 AM] Chris Eykamp: talk about work around1 [4/3/2011 1:52:39 AM] buckyballreaction: no bandaids yet! [4/3/2011 1:52:51 AM] Chris Eykamp: that's more like a tourniquet [4/3/2011 1:52:55 AM] buckyballreaction: hahaha [4/3/2011 1:53:13 AM] Samuel Williams: you could also try: while(barrierEnds.size() != 0) barrierEnds.erase_fast(0); [4/3/2011 1:55:56 AM] buckyballreaction: i'm half asleep [4/3/2011 1:56:06 AM] buckyballreaction: i need to go all the way.. [4/3/2011 1:56:12 AM] Chris Eykamp: later [4/3/2011 1:56:14 AM] buckyballreaction: good nigth [4/3/2011 1:56:27 AM] Chris Eykamp: I'm testing your and sams suggestions, then I'm off to bed too [4/3/2011 1:56:40 AM] buckyballreaction: cool [4/3/2011 1:56:42 AM] Chris Eykamp: release versino built [4/3/2011 1:56:53 AM] buckyballreaction: i started researching vorbis integration... [4/3/2011 1:57:00 AM] buckyballreaction: for 016 [4/3/2011 1:57:37 AM] Chris Eykamp: no crash [4/3/2011 1:57:41 AM] Chris Eykamp: in release [4/3/2011 1:57:44 AM] buckyballreaction: wow [4/3/2011 1:57:55 AM] buckyballreaction: you stumbled upon a mean vc++ 2010 bug i think [4/3/2011 1:58:28 AM] Chris Eykamp: back to debug with sam's test [4/3/2011 1:58:42 AM] buckyballreaction: night for reals now [4/3/2011 1:59:21 AM] Chris Eykamp: sam's test fails in debug mode [4/3/2011 1:59:33 AM] Chris Eykamp: now for bbr's #define test [4/3/2011 2:01:24 AM] Chris Eykamp: looks like undefining _HAS_ITERATOR_DEBUGGING has no effect; am doing clean and rebuild [4/3/2011 2:01:34 AM] buckyballreaction: #define _HAS_ITERATOR_DEBUGGING = 0 [4/3/2011 2:02:04 AM] Chris Eykamp: I added it to the undefines section of the build params [4/3/2011 2:02:26 AM] buckyballreaction: here it just says 'enabled' http://connect.microsoft.com/VisualStudio/feedback/details/557029/visual-c-iterator-debugging-incorrectly-raises-assertion-on-correct-use-of-return-value-of-std-vector-erase [4/3/2011 2:02:29 AM] Chris Eykamp: I'll verify it is really off [4/3/2011 2:02:49 AM] buckyballreaction: is it actually a define? [4/3/2011 2:03:08 AM] Samuel Williams: maybe _HAS_ITERATOR_DEBUGGING turns back on when using _debug ? [4/3/2011 2:03:17 AM] Chris Eykamp: I'll verify [4/3/2011 2:03:23 AM] Chris Eykamp: but I don;t get "vector iterators incompatible." [4/3/2011 2:03:33 AM] Chris Eykamp: though this otherwise seems like my problem [4/3/2011 2:03:50 AM] Chris Eykamp: The return value of this overload of std::vector::erase() is an iterator pointing to the element after the erasure, or end() if the last element was erased. [4/3/2011 2:03:53 AM] Chris Eykamp: I see that [4/3/2011 2:05:26 AM] Chris Eykamp: http://stackoverflow.com/questions/1016463/setting-has-iterator-debugging-to-0 [4/3/2011 2:07:41 AM | Edited 2:07:56 AM] Samuel Williams: in tnlVector.h, you could try #undef _DEBUG //remove debug codes.. #include #ifdef TNL_DEBUG #define _DEBUG #endif [4/3/2011 2:08:36 AM] Chris Eykamp: my way of disabling it must not work [4/3/2011 2:13:25 AM] Samuel Williams: mixed with and without __DEBUG might not work... [4/3/2011 2:13:46 AM] Chris Eykamp: trying your idea [4/3/2011 2:14:50 AM] Samuel Williams: That use won't compile on my computer... #undef _DEBUG #include [4/3/2011 2:15:58 AM] Chris Eykamp: need to reenable _DEBUG, no? [4/3/2011 2:17:16 AM] Samuel Williams: should re-enable _debug after #include [4/3/2011 2:18:01 AM] Chris Eykamp: isn't that what your block does? [4/3/2011 2:18:43 AM] Samuel Williams: yes.. [4/3/2011 2:20:11 AM] Samuel Williams: i get this compile error when trying #undef _debug 1>c:\program files\microsoft visual studio 9.0\vc\include\xlocale(1865) : error C2039: '_invalid_parameter' : is not a member of '`global namespace'' [4/3/2011 2:21:16 AM] Chris Eykamp: weird [4/3/2011 2:22:57 AM] Chris Eykamp: if this fixes vc10, we might need to put a version check in [4/3/2011 2:26:32 AM] Samuel Williams: does it work? or not? [4/3/2011 2:27:06 AM] Chris Eykamp: all kinds of link errors [4/3/2011 2:28:10 AM] Samuel Williams: well, stupid visual 2010 Vector error (in debug mode).. [4/3/2011 2:29:28 AM] Samuel Williams: could go back to visual 2008... or i could try visual 2010... [4/3/2011 2:38:56 AM] Chris Eykamp: falling asleep; will revisit tomorrow [4/3/2011 2:38:56 AM] Chris Eykamp: good night [4/3/2011 2:41:43 AM] Chris Eykamp: gazillions of UIInstructions.obj : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in clipper.obj [4/3/2011 2:41:46 AM] Chris Eykamp: good night! [4/3/2011 10:46:25 AM] buckyballreaction: http://msdn.microsoft.com/en-us/library/aa985982(v=vs.80).aspx [4/3/2011 6:55:14 PM] Max h: hey [4/3/2011 6:56:06 PM] Max h: hey guys, if you happen to work on bots, and you were wondering what the old bot names were, I found a list of all of them [4/3/2011 6:59:56 PM] Max h: the ones I remember from memory, were: slicer, irrelevent smoke, shazbot, pr0n, tr0n, and quake or something [4/3/2011 7:02:37 PM | Edited 7:02:51 PM] Max h: theres also BOTprocessor, neon blossom, cathode kiss, jayBOT, JoshBOT, Evenkill, girlbot, walkabout, ponyBOT, TwitchBOT, BOT Milk?, HexaBOTic, BOTIN8R, LigerBOT, Fishbait, and sulker [4/3/2011 7:02:44 PM] Max h: oh, and ticktock [4/3/2011 7:14:41 PM] Max h: im going to try adding them to s.bot [4/3/2011 7:28:01 PM] Max h: i try function getName() return math.random("Birrelevent smokeot") end [4/3/2011 7:28:09 PM] Max h: and for some reason, it names the bot nancy [4/3/2011 7:28:24 PM] Max h: i thought that just wouldn't work at all [4/3/2011 7:29:17 PM] Max h: obviously that statements incomplete and incorrect i know, its just odod though [4/3/2011 7:39:22 PM] Max h: ok [4/3/2011 7:39:30 PM] Max h: i fixed it but still have somehting wrong [4/3/2011 7:39:37 PM] Max h: function getName() return math.random(#rocket) end [4/3/2011 7:39:42 PM] Max h: rocket = {"S","1"} [4/3/2011 7:40:01 PM | Edited 7:40:06 PM] Max h: in the game though, instead of "S", it uses the number one, and instead of "1", it uses the number 2 [4/3/2011 7:41:56 PM] Max h: if i add another "" value, it just adds another consecutive number [4/3/2011 7:42:33 PM] buckyballreaction: hi zoomber [4/3/2011 7:42:35 PM] Max h: hi raptor [4/3/2011 7:43:15 PM] Max h: hey raptor, im trying to make a bot have multible names, but so far, i can only do numbers [4/3/2011 7:43:23 PM] buckyballreaction: i'm sorry to say that i have never worked with the bot code... [4/3/2011 7:43:27 PM] Max h: my first time too [4/3/2011 7:44:08 PM] Max h: doesnt seem too hard though. first try mod got me somewhere, even if not success [4/3/2011 7:44:15 PM] Max h: at least not, a complete fail [4/3/2011 7:46:25 PM] Max h: interesting [4/3/2011 7:46:32 PM] Max h: if i do [4/3/2011 7:46:33 PM] Max h: rocket = "2 2 1 2" [4/3/2011 7:46:41 PM] Max h: ill get anything between 1 and 6 [4/3/2011 7:47:23 PM] Max h: ok, the more numbers (or letters) i put in, the higher variation of numbers there is [4/3/2011 7:47:46 PM] Max h: so obviously, i cant use math.random in this case, to specify ony letters, [4/3/2011 7:55:52 PM] Max h: taking a break [4/3/2011 7:56:08 PM] buckyballreaction: did you look at the docs [4/3/2011 7:56:15 PM] buckyballreaction: on the wiki [4/3/2011 8:45:28 PM] buckyballreaction: . [4/3/2011 8:47:58 PM] Samuel Williams: http://96.2.123.136/bitfighter/period.gif [4/3/2011 8:48:24 PM] buckyballreaction: ? [4/3/2011 8:48:30 PM] buckyballreaction: am i that bad at punctuation? [4/3/2011 8:48:56 PM] Samuel Williams: well its a joke from you keep typing period/dot . [4/3/2011 8:49:17 PM] buckyballreaction: ha [4/3/2011 8:49:26 PM] buckyballreaction: yeah, my skype doesn't update sometimes [4/3/2011 8:49:44 PM] Samuel Williams: it freeze-date? [4/3/2011 8:50:22 PM] buckyballreaction: well, i open the chat room, and it doesn't update the history [4/3/2011 8:50:30 PM] buckyballreaction: i wait for an hour or two, then i do my dot [4/3/2011 8:50:57 PM] buckyballreaction: for some reason sending text will trigger the history [4/3/2011 8:51:00 PM] Samuel Williams: i made some changes, as i actually install c++ 2010 express, i still have visual studio 2008.. [4/3/2011 8:51:19 PM] Samuel Williams: there is error and problem in 2010 that don't exist in 2008.. [4/3/2011 8:51:28 PM] buckyballreaction: yeah, that's what it looks like [4/3/2011 8:52:38 PM] Samuel Williams: visual 2010 appears to have problem with crashing when de-allocating deque.. [4/3/2011 8:53:20 PM] buckyballreaction: is that a different problem than what watusimoto had? his was with vector and iterators right? [4/3/2011 8:53:25 PM] Samuel Williams: i got _HAS_ITERATOR_DEBUGGING=0 and vector working.. [4/3/2011 8:53:33 PM] buckyballreaction: oh great! [4/3/2011 8:53:41 PM] buckyballreaction: then another error occured? [4/3/2011 8:53:48 PM] Samuel Williams: yes, error in deque.. [4/3/2011 8:54:00 PM] buckyballreaction: that is crazy [4/3/2011 8:54:01 PM] Samuel Williams: so- i changes it to vector [4/3/2011 8:54:19 PM] buckyballreaction: man [4/3/2011 8:54:28 PM] buckyballreaction: ok [4/3/2011 8:54:30 PM] buckyballreaction: whatever [4/3/2011 8:54:42 PM] Samuel Williams: should now work without anymore visual 2010-specific crash.. [4/3/2011 8:55:28 PM] buckyballreaction: that is so wacky [4/3/2011 8:56:50 PM] Samuel Williams: could complain to visual 2010 makers that something not right... Newer version could anytime break compatibility with something or have bugs... [4/3/2011 8:57:33 PM] buckyballreaction: i saw two bugs on the vector problem [4/3/2011 8:57:42 PM] buckyballreaction: they said it was fixed in vc++ 2011 [4/3/2011 10:16:28 PM] buckyballreaction: sam [4/3/2011 10:16:43 PM] buckyballreaction: didn't watusimoto say that deque worked just fine for him in a release build? [4/3/2011 10:16:57 PM] buckyballreaction: did you upgrade to visual 2010 [4/3/2011 10:17:16 PM] Samuel Williams: yes, but i kept the old visual 2008 as well.. [4/3/2011 10:17:23 PM] buckyballreaction: oh ok [4/3/2011 10:18:10 PM] Samuel Williams: in visual 2010, i didn't test release mode, only tested debug mode and make it not crash no more.. [4/3/2011 10:18:32 PM] buckyballreaction: oh ok [4/3/2011 10:18:35 PM] buckyballreaction: thanks [4/3/2011 10:20:19 PM] Samuel Williams: in visual 2010, deque may crash when deleting anything in editor, as it somehow crash inside deque when trying to run WorldItem's destructor when it used deque. [4/3/2011 10:20:54 PM] buckyballreaction: that stinks [4/3/2011 10:40:54 PM] Chris Eykamp: [Sunday, April 03, 2011 8:54 PM] Samuel Williams: <<< should now work without anymore visual 2010-specific crash..thanks sam-- as usual, going above and beyond the call [4/3/2011 10:53:20 PM] Samuel Williams: i just pushed a fix for "index out of range" , when deleting last vertex of any poly in editor. [4/3/2011 10:54:12 PM] Samuel Williams: also, i stop that drifting polywall while dragging by disabling snapToWallCorners and snapToWallEdges.. [4/3/2011 11:17:31 PM] buckyballreaction: hi [4/3/2011 11:22:13 PM] buckyballreaction: so when you move a vertex of a polywall with a turret on it, the turret moves too [4/3/2011 11:22:39 PM] buckyballreaction: but when you move a barrier end with a turret on it, the turret doesn't move [4/3/2011 11:26:23 PM] buckyballreaction: is that expected behaviour? [4/3/2011 11:26:34 PM] buckyballreaction: is one preferred over the other? [4/3/2011 11:40:23 PM | Edited 11:40:39 PM] Samuel Williams: Here is my triple monitor all from one computer. http://96.2.123.136/upload/grab08727.jpg (i used a small laptop that have a built-in camera) [4/3/2011 11:41:01 PM] buckyballreaction: oh wow sam [4/3/2011 11:41:11 PM] buckyballreaction: lots of desk space required for the CRTs.. [4/3/2011 11:41:29 PM] Samuel Williams: the one on the right is lcd.. [4/3/2011 11:45:45 PM] Samuel Williams: my LCD is analog VGA only, but my graphics card have one unused DVI that could be the fourth screen (if i have one more monitor with DVI input)... I have one empty DVI-D (digital only) [4/3/2011 11:46:30 PM] Samuel Williams: still, i think three screens is enough... [4/3/2011 11:46:42 PM] buckyballreaction: hehe [4/3/2011 11:46:45 PM] buckyballreaction: i'd say so.. [4/3/2011 11:47:01 PM] buckyballreaction: have you ever tried virtual desktops instead? [4/3/2011 11:47:07 PM] buckyballreaction: reclaim some desk-space :) [4/3/2011 11:47:52 PM] Samuel Williams: i don't think windows XP have virtual desktop like linux have.. (might require special software) [4/3/2011 11:48:14 PM] buckyballreaction: i htink you're right [4/3/2011 11:50:12 PM] Samuel Williams: in the other side, linux does support multi-monitor from only one card linux don't quite support multiple graphics cards.. (might require special config file editing) [4/3/2011 11:51:36 PM] Samuel Williams: my computer have 2 graphics (Radeon 9200 AGP and Radeon 9250 PCI) [4/3/2011 11:54:36 PM] Samuel Williams: My windows display properties looks like this http://96.2.123.136/upload/multimon.png [4/3/2011 11:55:09 PM] buckyballreaction: cool [4/3/2011 11:58:28 PM] Samuel Williams: in bitfighter editor, when turrets attached to polywall, turrets repeatedly blinks and pointing at opposide of the same edge.. editor is almost done, but may need render line clipping then 2 polywall overlap... [4/4/2011 12:06:36 AM] Samuel Williams: http://www.youtube.com/watch?v=F75oRmvAqUI That the flipping turret effect, turret should never point to the inside of wall [4/4/2011 12:10:05 AM] Samuel Williams: [Sunday, April 03, 2011 10:40 PM] Chris Eykamp: <<< thanks sam-- as usual, going above and beyond the callI am not sure if you really got it compiled and working after my changes (you didn't say anything).. [4/4/2011 12:16:15 AM] buckyballreaction: i'm heading to bed early.. good night [4/4/2011 12:16:24 AM] Samuel Williams: bye.. [4/4/2011 1:10:44 AM] Chris Eykamp: haven't tested the new yet; I was out for a bit; am building now [4/4/2011 1:19:14 AM] Chris Eykamp: I can no longer reproduce any of the crashes I was seeing last night [4/4/2011 1:19:24 AM] Chris Eykamp: so I'd say you fixed it [4/4/2011 1:19:26 AM] Samuel Williams: good [4/4/2011 1:19:30 AM] Chris Eykamp: yes, good [4/4/2011 1:19:37 AM] Chris Eykamp: now to see how :) [4/4/2011 10:41:57 AM] buckyballreaction: good morning [4/4/2011 12:15:37 PM] buckyballreaction: so are we closer to a release yet? :) [4/4/2011 12:28:21 PM] Chris Eykamp: probably closer, still some editor issues [4/4/2011 9:22:09 PM] buckyballreaction: BBB 4! [4/4/2011 9:22:36 PM] buckyballreaction: i'll probably play for a few minutes just to make sure i get the lowest score... [4/4/2011 11:02:39 PM] karamazovapy: 3B4 w00t! [4/4/2011 11:17:28 PM] buckyballreaction: ver 4.0 of clipper was released [4/4/2011 11:17:37 PM] buckyballreaction: readme: http://cdnetworks-us-1.dl.sourceforge.net/project/polyclipping/README [4/4/2011 11:50:34 PM] Chris Eykamp: so... do we upgrade? [4/4/2011 11:51:29 PM] Chris Eykamp: the use of ints means we have a F32(bf) -> S32(clipper)->F32(Triangle)->S32(recast)->F32(bf) chain [4/4/2011 11:51:33 PM] Chris Eykamp: that's a lot of conversions [4/5/2011 3:10:58 AM] Samuel Williams: http://96.2.123.136/bitfighter/countdown.html [4/5/2011 9:10:15 AM] buckyballreaction: yeah lot's of conversions... [4/5/2011 9:10:23 AM] buckyballreaction: and what we have works... [4/5/2011 10:09:49 AM] Chris Eykamp: for all levels but one [4/5/2011 10:10:21 AM] buckyballreaction: which one again? [4/5/2011 10:10:33 AM] Chris Eykamp: zzzzzz or something [4/5/2011 10:11:50 AM] buckyballreaction: as far as I know clipper works with all the zzzz* levels [4/5/2011 10:11:56 AM] buckyballreaction: in-game, that is [4/5/2011 10:23:48 AM] Chris Eykamp: good [4/5/2011 10:24:04 AM] Chris Eykamp: I like the idea of the speed boost from using ints [4/5/2011 10:24:25 AM] Chris Eykamp: if we ever move to poly2tri, maybe that can use ints [4/5/2011 10:24:43 AM] Chris Eykamp: then we'll just need 2 conversions, like we have now [4/5/2011 10:25:21 AM] Chris Eykamp: or, maybe we can create an int version of Point for use in-game; then we'd just use ints throughtout [4/5/2011 10:25:48 AM] buckyballreaction: would that affect graphics? [4/5/2011 10:25:52 AM] buckyballreaction: and movement? [4/5/2011 10:25:55 AM] Chris Eykamp: since we're ultimately dealing with screen pixels, I don't think so [4/5/2011 10:26:04 AM] Chris Eykamp: movement?.... not sure [4/5/2011 10:26:10 AM] Chris Eykamp: possibly, I suppose [4/5/2011 10:26:35 AM] Chris Eykamp: I guess it depends on where/when/what we convert to int [4/5/2011 10:27:02 AM] Chris Eykamp: of course, speed of clipper is not really important in game, is it? [4/5/2011 10:27:05 AM] buckyballreaction: is it 1 to 1, in-game point to pixel? [4/5/2011 10:27:35 AM] Chris Eykamp: I'm actually not sure; but now I realize this wouldn't be a huge boost [4/5/2011 10:27:47 AM] Chris Eykamp: as that long chain only happens at load time [4/5/2011 10:28:02 AM] Chris Eykamp: so forget this line of thought [4/5/2011 10:28:33 AM] buckyballreaction: ok :) [4/5/2011 10:30:47 AM] Chris Eykamp: ii think I can get rid of that mUnmovedItems list that Sam was having problems with [4/5/2011 10:30:56 AM] Chris Eykamp: I just looked at everywhere it is used [4/5/2011 10:31:15 AM] buckyballreaction: i am still unsure of what it is used for exactly [4/5/2011 10:31:20 AM] Chris Eykamp: we really only use it to verify that things have actually moved, and we can do that with a single point [4/5/2011 10:31:41 AM] Chris Eykamp: well, don't worry about it; if I'm right, it will be gone, and you don't need to learn about it! [4/5/2011 10:32:41 AM] buckyballreaction: haha ok [4/5/2011 10:38:16 AM] Chris Eykamp: can Iget it done before I have to leave for work? stay tuned to find out! [4/5/2011 10:38:28 AM] buckyballreaction: i won't change the station [4/5/2011 10:41:03 AM] Chris Eykamp: passed first feasibility test [4/5/2011 10:54:33 AM] Chris Eykamp: only one use of unmovedItems left [4/5/2011 10:54:41 AM] Chris Eykamp: the hardest... time's a wasting! [4/5/2011 10:58:56 AM] Chris Eykamp: using quick hack... [4/5/2011 11:05:05 AM] buckyballreaction: hackety hackety hack [4/5/2011 11:05:40 AM] Chris Eykamp: all working except for duplicate undo state being saved [4/5/2011 11:10:14 AM] Chris Eykamp: works! [4/5/2011 11:10:24 AM] Chris Eykamp: quick cleanup, checkin, then off to work [4/5/2011 11:10:38 AM] buckyballreaction: yay [4/5/2011 11:18:12 AM] Chris Eykamp: pushed [4/5/2011 11:18:15 AM] Chris Eykamp: see you! [4/5/2011 11:18:17 AM] buckyballreaction: late [4/5/2011 11:18:19 AM] buckyballreaction: r [4/5/2011 12:45:00 PM] Chris Eykamp: [Tuesday, April 05, 2011 11:59 AM] Chris Eykamp: <<< to make that thing work without further refactor, I had to make a slight change to the way the undo works internally -- hopefully it will result in no change to the user but undo/redo/move needs to be tested a little more than I was able to in my hurry [4/5/2011 1:07:14 PM] buckyballreaction: do you think we should ever consider poly2tri? [4/5/2011 1:07:38 PM] buckyballreaction: i already can't remember why we were considering it the first place [4/5/2011 1:08:08 PM] buckyballreaction: maybe because it's C++ instead of C? [4/5/2011 1:09:35 PM] Chris Eykamp: we were considering it because you have an irrational distrust of triangle [4/5/2011 1:09:48 PM] Chris Eykamp: no, let's stick with what we have for now [4/5/2011 1:17:30 PM] buckyballreaction: ah yes - Triangle crashed on me one to many times and fueled that distrust [4/5/2011 1:18:31 PM] Chris Eykamp: but not crashing now! [4/5/2011 1:21:45 PM] Chris Eykamp: As for timing of next release, we'll need to wait until after the BBB4 [4/5/2011 1:26:18 PM] buckyballreaction: i think so, too [4/5/2011 1:26:21 PM] buckyballreaction: :( [4/5/2011 3:07:34 PM] buckyballreaction: i tested the undo/redo on lots of things - works well so far [4/5/2011 3:07:38 PM] buckyballreaction: also i found this: http://96.2.123.136/upload/11snapshot24.png [4/5/2011 3:08:52 PM] buckyballreaction: there are two problems: 1. there is a 2 -> 5 segment 2. there is no outline geo for 5 -> 0 [4/5/2011 7:10:31 PM | Edited 7:11:00 PM] Samuel Williams: There is problems in-game for LoadoutZone and GoalZone. http://96.2.123.136/bitfighter/zap_d-20110405-1907058.png [4/5/2011 7:12:11 PM] Chris Eykamp: I know the problem [4/5/2011 7:12:50 PM] Chris Eykamp: I changed the render routines [4/5/2011 7:14:02 PM] Chris Eykamp: In renderPolygonoutline, try changing GL_LINES to GL_LINE_LOOP [4/5/2011 7:14:24 PM] Chris Eykamp: in GameObjectRenderer.cpp [4/5/2011 7:16:11 PM] Chris Eykamp: void renderPolygonOutline(const Vector &outline) { renderPointVector(outline,GL_LINE_LOOP); } [4/5/2011 7:17:41 PM] Samuel Williams: Next problem: http://96.2.123.136/bitfighter/zap_d-20110405-1916588.png filling more then it should. [4/5/2011 7:18:54 PM] Chris Eykamp: ok, i know this one too [4/5/2011 7:19:00 PM] Chris Eykamp: less sure how to fix [4/5/2011 7:19:11 PM] Chris Eykamp: We have this fn: [4/5/2011 7:19:12 PM] Chris Eykamp: void renderTriangulatedPolygonFill(const Vector &fill) { renderPointVector(fill, GL_POLYGON); } [4/5/2011 7:19:27 PM] Chris Eykamp: GL_POLYGON needs to be replaced with soemthing that renders triangles [4/5/2011 7:19:44 PM] Chris Eykamp: perhaps... GL_TRIANGLES? [4/5/2011 7:20:07 PM] Samuel Williams: i will try gl_triangles [4/5/2011 7:20:18 PM] Chris Eykamp: did the previous suggestion fix the problem? [4/5/2011 7:20:40 PM] Samuel Williams: void renderTriangulatedPolygonFill(const Vector &fill) { renderPointVector(fill, GL_TRIANGLES); // NOT gl_polygon } [4/5/2011 7:20:49 PM] Chris Eykamp: yes [4/5/2011 7:20:57 PM] Chris Eykamp: let me know if that works! [4/5/2011 7:22:25 PM] Samuel Williams: it works.. http://96.2.123.136/bitfighter/zap_d-20110405-1921536.png [4/5/2011 7:23:03 PM] Chris Eykamp: excellent! [4/5/2011 7:23:23 PM] Chris Eykamp: I like the new higher performance rendering method, so I'm glad we've made it work for all these cases [4/5/2011 7:23:41 PM] Chris Eykamp: I must have fallen asleep after writing it, but before testing [4/5/2011 7:35:19 PM] Samuel Williams: Should bot zone always generate, or should it only generate on /addbot ? It could be a waste of some memory when never using any robots.. [4/5/2011 7:35:34 PM] buckyballreaction: always generate [4/5/2011 7:36:08 PM] Chris Eykamp: I think always generate [4/5/2011 7:36:10 PM] Chris Eykamp: two advantages [4/5/2011 7:36:39 PM] Chris Eykamp: 1) no game delay while generating bots if they are added mid-game [4/5/2011 7:36:55 PM] Chris Eykamp: 2) if zone creation fails, we can set nobots flag [4/5/2011 7:37:17 PM] Chris Eykamp: I think we'll get to the point soon where we'll always add bots to a level [4/5/2011 7:41:19 PM] Samuel Williams: could do a dedicated-server-only release, as there is a fix a possible crash when old client sends invalid loadout info into server, and old 015 server crash, but new 015 serve will ignore it and not crash.. [4/5/2011 7:41:55 PM] Samuel Williams: possibly a server only release before bitfighter battle 4.. [4/5/2011 7:41:58 PM] buckyballreaction: also the stats fixes: there are cumulative results on servers right now [4/5/2011 7:42:22 PM] Chris Eykamp: server-only == you, me, k? [4/5/2011 7:42:50 PM | Edited 7:43:04 PM] Samuel Williams: yes, mainly for _K, (or who ever will host big bitfighter battle server) [4/5/2011 7:46:11 PM] buckyballreaction: i think that migh tbe good [4/5/2011 7:46:22 PM] buckyballreaction: what platform does he host on? [4/5/2011 7:46:58 PM] Samuel Williams: probably linux type? [4/5/2011 7:47:27 PM] buckyballreaction: it would also be good for him to have it runing for a few days for testing.. [4/5/2011 7:48:22 PM] Chris Eykamp: _k is on linux virtual server [4/5/2011 7:48:42 PM] buckyballreaction: does he use an RPM/DEB or self-compile? [4/5/2011 7:49:02 PM] Chris Eykamp: self compile, I think [4/5/2011 8:01:58 PM] karamazovapy: yeah, I self compile on a centOS vps [4/5/2011 8:02:29 PM] karamazovapy: I think it's still centos, I might've changed it up to some other debian build [4/5/2011 8:20:16 PM] buckyballreaction: there are a few beneficial fixes that I think you should have in the server [4/5/2011 8:20:53 PM] buckyballreaction: however something might need to be done with voting... [4/5/2011 8:21:02 PM] buckyballreaction: i don't even remember how it's implemented now [4/5/2011 8:24:51 PM] Samuel Williams: voting can be adjusted or disabled in ini file.. [4/5/2011 8:28:11 PM | Edited 8:29:48 PM] Samuel Williams: [Host] VoteLength=12 (in seconds, zero disables it) VoteLengthToChangeTeam=10 (in seconds, zero disables it) VoteRetryLength=30 (in seconds, avoid repeating vote abuse) VoteYesStrength=3 VoteNoStrength=-3 VoteNothingStrength=-1 (All vote counts in total bigger then zero will pass) [4/5/2011 9:15:43 PM] Samuel Williams: There is 2 more levels where client side clipping completely fails (no outline barriers). http://96.2.123.136/bitfighter/bitfighter-20110405-2112474.png http://96.2.123.136/bitfighter/bitfighter-20110405-2113349.png [4/5/2011 9:16:52 PM] Samuel Williams: you only need to join kserv and start that map to see the problem in newer bitfighter (not old release version).. [4/5/2011 9:24:59 PM] karamazovapy: for what it's worth, those are both very large level files [4/5/2011 9:25:51 PM] Samuel Williams: that problem only occurs on current repository of newer client, not original 015 client release. [4/5/2011 10:02:18 PM] Chris Eykamp: +#if CS_PROTOCOL_VERSION == 32 + if(loadout[i] == WeaponHeatSeeker) // Reject HeatSeeker, Not supported yet + return; +#endif [4/5/2011 10:02:25 PM] Chris Eykamp: What is this [4/5/2011 10:03:30 PM] Samuel Williams: There is old clients that tries to send "HeatSeeker" weapon that does nothing... [4/5/2011 10:03:46 PM] Samuel Williams: can be removed for next version 016 [4/5/2011 10:03:54 PM] Chris Eykamp: ok [4/5/2011 10:04:24 PM] Chris Eykamp: [Tuesday, April 05, 2011 9:16 PM] Samuel Williams: <<< you only need to join kserv and start that map to see the problem in newer bitfighterall levels, or just those two? [4/5/2011 10:04:30 PM] Samuel Williams: the code #if CS_PROTOCOL_VERSION == 32 will automatically allow HeatSeeker, when protocal changes.. [4/5/2011 10:04:57 PM] Chris Eykamp: if the weapon is done by then ;) [4/5/2011 11:40:19 PM] buckyballreaction: would it be worth it to move to the new clipper if it has a higher success rate among the levels? [4/5/2011 11:41:03 PM] Chris Eykamp: I thought we were already at 100% [4/5/2011 11:41:21 PM] buckyballreaction: sam just showed two levels that failed... [4/5/2011 11:41:30 PM] buckyballreaction: those are two common levels in the BBBs [4/5/2011 11:41:34 PM] Chris Eykamp: but we don't know why yet [4/5/2011 11:41:42 PM] buckyballreaction: that's true [4/5/2011 11:41:43 PM] Chris Eykamp: did clipper fail on those> [4/5/2011 11:41:53 PM] buckyballreaction: let me do some testing... [4/5/2011 11:42:16 PM] Chris Eykamp: but yes, if the old clipper fails on those, and the new clipper works, then we should consider switching [4/5/2011 11:42:39 PM] Chris Eykamp: because I for one am not yet sick of this\ [4/5/2011 11:42:53 PM] buckyballreaction: I can't tell if you are being sarcastic... [4/5/2011 11:43:11 PM] Chris Eykamp: I am [4/5/2011 11:43:15 PM] buckyballreaction: hehe [4/5/2011 11:44:13 PM] buckyballreaction: thos levels are not found on sam's server [4/5/2011 11:45:53 PM] buckyballreaction: _k, if you are around, would you be willing to give up these two levels (arachnaphobia, apollon's gasket) for testing purposes. [4/5/2011 11:46:08 PM] buckyballreaction: I will keep them in a temp directory and delete them when done [4/5/2011 11:49:23 PM] buckyballreaction: or actually, _k, I only need t have lots of time on the maps on your server - since it is client-side [4/5/2011 11:49:38 PM] karamazovapy: http://www.msu.edu/~youattan/biglevels.zip [4/5/2011 11:49:56 PM] karamazovapy: I'm willing to bet the kServ bitbash (with infinite time) is a victim, to [4/5/2011 11:49:58 PM] karamazovapy: o [4/5/2011 11:50:19 PM] karamazovapy: maybe not [4/5/2011 11:50:37 PM] buckyballreaction: thanks! [4/5/2011 11:50:43 PM] buckyballreaction: is that the one: kServ.level? [4/5/2011 11:50:47 PM] karamazovapy: yep [4/5/2011 11:50:58 PM] buckyballreaction: okey doke [4/5/2011 11:51:02 PM] buckyballreaction: i'll do my testing [4/5/2011 11:51:02 PM] karamazovapy: edwardian script makes for big level files [4/5/2011 11:51:30 PM] buckyballreaction: haha, that one actually works [4/5/2011 11:51:43 PM] buckyballreaction: zones failed though... [4/5/2011 11:51:52 PM] karamazovapy: no surprise there [4/5/2011 11:52:18 PM] buckyballreaction: that level is amazing [4/5/2011 11:52:22 PM] buckyballreaction: how did you pull that off? [4/5/2011 11:53:50 PM] karamazovapy: they call me the jesus man [4/5/2011 11:54:00 PM] karamazovapy: but that's also why I don't usually give out my code [4/5/2011 11:54:10 PM] buckyballreaction: and how are you node a coder? [4/5/2011 11:54:12 PM] buckyballreaction: not [4/5/2011 11:56:04 PM] karamazovapy: I don't really have the background, so I'm always doing really hacky work [4/5/2011 11:56:28 PM] buckyballreaction: like me! :) [4/5/2011 11:56:58 PM] karamazovapy: from day one, I was coding over my head [4/5/2011 11:57:01 PM] buckyballreaction: ok, my results: it is clipper that fails on both of those maps [4/5/2011 11:57:18 PM] buckyballreaction: bots work on apollonian, but not spider-man map [4/5/2011 11:57:54 PM] Max h: raptor, you should check out the mac app store [4/5/2011 11:58:09 PM] buckyballreaction: hi zoomber [4/5/2011 11:58:21 PM] Max h: i found something watusimoto may like [4/5/2011 11:58:40 PM] karamazovapy: I nixed bots on apollonian back when zone gen was so crazy [4/5/2011 11:59:00 PM] karamazovapy: they also had trouble finding the teleporters [4/5/2011 11:59:31 PM] buckyballreaction: well they work just fine on that map now [4/5/2011 11:59:38 PM] buckyballreaction: sam did some teleporter work [4/6/2011 12:02:27 AM] Max h: if we ever put bitfighrter on app store [4/6/2011 12:03:15 AM] Max h: theres an application that will check our application for errors that would make apple reject bitfighter [4/6/2011 12:03:47 AM] Max h: also an app that opens up a window, and whatever you drop in gets converted to a dmg [4/6/2011 12:10:53 AM] buckyballreaction: i've seen an app like that before [4/6/2011 12:14:32 AM] Samuel Williams: what does dmg stands for, dmg = damage? [4/6/2011 12:14:43 AM] Chris Eykamp: disk image [4/6/2011 12:14:52 AM] Chris Eykamp: I think [4/6/2011 12:15:11 AM] buckyballreaction: it's a crazy disk image format that Apple engineered [4/6/2011 12:15:32 AM] buckyballreaction: it allows for everything from RAW data to compression schemes around its filesystem [4/6/2011 12:15:50 AM] Samuel Williams: ok.. [4/6/2011 12:21:45 AM] Chris Eykamp: found a big edge segment problem in the editor... no idea how to fix it yet [4/6/2011 12:23:52 AM] Samuel Williams: Here is a very simple small level that clipper fails on.. http://96.2.123.136/bitfighter/zztest3.level [4/6/2011 12:27:18 AM] buckyballreaction: ok, got the new clipper integrated for testing.... [4/6/2011 12:27:26 AM] buckyballreaction: now to see if it compiles.. [4/6/2011 12:38:06 AM] buckyballreaction: linker errors drive me nuts [4/6/2011 12:47:17 AM] buckyballreaction: clipper4 so far is failing miserably [4/6/2011 12:47:34 AM] Chris Eykamp: really? [4/6/2011 12:47:38 AM] buckyballreaction: it freezes the game indefinitely and spiking the CPU [4/6/2011 12:48:07 AM] buckyballreaction: i think there is an evil bug somewhere... [4/6/2011 12:55:48 AM] Chris Eykamp: blech [4/6/2011 12:56:20 AM] Chris Eykamp: generate dataset to send to author? [4/6/2011 12:56:48 AM] buckyballreaction: it will crash if i try to draw even one barrier in the editor in a blank map [4/6/2011 12:57:13 AM] buckyballreaction: i have found some bug fixes to the previous clipper, I am applying those and retrying it... [4/6/2011 1:05:10 AM] buckyballreaction: so why would the edge geometry work in the editor, but not in-game for those kServ levels? [4/6/2011 1:05:49 AM] Samuel Williams: grid size? grid size is 1 in editor (not multiplied) [4/6/2011 1:06:15 AM] Samuel Williams: well it is calculated at gridsize=1 in editor.. [4/6/2011 1:06:54 AM] buckyballreaction: so maybe lowering the precision? [4/6/2011 1:07:22 AM | Edited 1:07:51 AM] Samuel Williams: when in-game all barriers get multiplied by grid size, but not multiplied in editor.. that might lower precision in editor.. [4/6/2011 1:08:33 AM] buckyballreaction: i lowered the precision to 0.01 and the editor now doesn't work [4/6/2011 1:08:39 AM] Samuel Williams: well, floating point have equal precision, but clipper have min precision = 0.001.. [4/6/2011 1:08:43 AM] Chris Eykamp: try mutiplying everything by 500 on the way in, dividing on the way out [4/6/2011 1:10:14 AM] buckyballreaction: isn't that counter-intuitive from my last results with decreasing the precision? [4/6/2011 1:11:10 AM] buckyballreaction: maybe i'm just not thinking correctly... [4/6/2011 1:13:46 AM] Chris Eykamp: oh, sorry, I thought you were still dealing with new clipper (ints) [4/6/2011 1:14:16 AM] buckyballreaction: nope, I can't get that to not stall [4/6/2011 1:14:43 AM] buckyballreaction: any other reasons why editor works and game doesn't? [4/6/2011 1:15:58 AM] buckyballreaction: and zones work, too... [4/6/2011 1:16:07 AM] Samuel Williams: if it freezes, look for something like this: while(true) {a=b; } It is probably much bigger code to look for... [4/6/2011 1:17:22 AM] Chris Eykamp: well, in the game, coords are multiplied by gridSize [4/6/2011 1:17:33 AM] Chris Eykamp: so you might actually try that mult by 500 trick [4/6/2011 1:18:23 AM] Samuel Williams: which map are you testing the clipper? [4/6/2011 1:18:48 AM] buckyballreaction: apollonian [4/6/2011 1:19:24 AM] Samuel Williams: [Wednesday, April 06, 2011 12:23 AM] Samuel Williams: <<< Here is a very simple small level that clipper fails on.. http://96.2.123.136/bitfighter/zztest3.levelDoes clipper fail on this simple test level? is it fixed? [4/6/2011 1:19:30 AM] buckyballreaction: oh... [4/6/2011 1:19:33 AM] buckyballreaction: i forgot about that [4/6/2011 1:20:04 AM] Chris Eykamp: there are probably a lot of tiny segments in that level... the gridsize factor is the main difference I can think of btwn editor and game [4/6/2011 1:20:18 AM] buckyballreaction: editor works for that, but zones don't [4/6/2011 1:20:22 AM] buckyballreaction: and edges don't [4/6/2011 1:20:44 AM] buckyballreaction: ok, i'll do the multiplication trick [4/6/2011 1:26:47 AM] Chris Eykamp: this is awesome [4/6/2011 1:27:14 AM] Chris Eykamp: in the editor, you can use polywalls to drag turrets around the screen, and attach them to differnt walls and such [4/6/2011 1:27:37 AM] Chris Eykamp: if you do the motions just right, you can make a turret rotate around the entire perimeter of a polywall [4/6/2011 1:27:54 AM] buckyballreaction: haha [4/6/2011 1:28:12 AM] Samuel Williams: http://96.2.123.136/bitfighter/zap_d-20110406-0126057.png the polywall is red at the bottom right when first team color is red. [4/6/2011 1:34:10 AM] Chris Eykamp: that's a red wall [4/6/2011 1:37:40 AM] buckyballreaction: it worked!! [4/6/2011 1:39:32 AM] buckyballreaction: apollonian works with the *500, but arachnaphobia doesn't [4/6/2011 1:39:41 AM] buckyballreaction: zones now fail on apollonian, too [4/6/2011 1:40:33 AM] Chris Eykamp: but arach. works without the *500? [4/6/2011 1:40:42 AM] buckyballreaction: nope [4/6/2011 1:40:46 AM] buckyballreaction: it just doesn't work at all [4/6/2011 1:40:51 AM] Chris Eykamp: hmmm [4/6/2011 1:41:36 AM] Chris Eykamp: that's a large levl [4/6/2011 1:41:46 AM] Chris Eykamp: but probably not so large as to overflow any bounds [4/6/2011 1:41:50 AM] buckyballreaction: it's not [4/6/2011 1:41:55 AM] buckyballreaction: grid size is 50 [4/6/2011 1:42:28 AM] Samuel Williams: maybe instead of *500 .. Clipper /500, how about reversing it to /500 .. clipper *500 [4/6/2011 1:42:47 AM] buckyballreaction: hehe, ok [4/6/2011 1:44:03 AM] buckyballreaction: weird [4/6/2011 1:44:32 AM] buckyballreaction: http://96.2.123.136/upload/snapshot26.png [4/6/2011 1:44:39 AM] buckyballreaction: now for spider level.. [4/6/2011 1:45:01 AM] Chris Eykamp: looks like you ran out of precision [4/6/2011 1:45:06 AM] buckyballreaction: yep [4/6/2011 1:45:51 AM] buckyballreaction: and for spider level: http://96.2.123.136/upload/snapshot27.png [4/6/2011 1:46:56 AM] Samuel Williams: you can try /100 .. clipper *100 instead of 500.. [4/6/2011 1:47:27 AM] buckyballreaction: so i increased the precision in clipper to 1.0E-6 and used the /500 on the points first [4/6/2011 1:47:31 AM] buckyballreaction: and now spider works [4/6/2011 1:47:49 AM] buckyballreaction: but editor doesn't [4/6/2011 1:48:03 AM] Chris Eykamp: the long segments rendered, but not the short ones [4/6/2011 1:48:32 AM] buckyballreaction: i think these levels have two different problems [4/6/2011 1:48:44 AM] Chris Eykamp: yes [4/6/2011 1:48:54 AM] karamazovapy: sorry to design such problematic things [4/6/2011 1:48:59 AM] Chris Eykamp: one has problems with tiny segments, the other is really huge [4/6/2011 1:49:18 AM] buckyballreaction: _k, you're levels are perfect for making us code better... [4/6/2011 1:49:18 AM] Chris Eykamp: I think they are related but opposite problems [4/6/2011 1:49:24 AM] buckyballreaction: yep [4/6/2011 1:49:26 AM] buckyballreaction: me too [4/6/2011 1:49:33 AM] buckyballreaction: your [4/6/2011 1:49:42 AM] karamazovapy: curious the ultra tiny segments in kServ.level don't pose a problem [4/6/2011 1:50:10 AM] Chris Eykamp: but the small circles will generate really tiny segments [4/6/2011 1:50:37 AM] buckyballreaction: _k, that level went haywire as soon as i messed with the precision [4/6/2011 1:51:19 AM] karamazovapy: that one's pretty haywire to begin with [4/6/2011 1:53:36 AM] Samuel Williams: i made a new level http://96.2.123.136/bitfighter/zap_d-20110406-0152504.png The problem now is the editor http://96.2.123.136/bitfighter/zap_d-20110406-0151431.png [4/6/2011 1:54:24 AM] buckyballreaction: that last one isn't found [4/6/2011 1:56:11 AM] Samuel Williams: there, http://96.2.123.136/bitfighter/zap_d-20110406-0151431.png should now not be broken.. [4/6/2011 1:56:42 AM] buckyballreaction: yeah, these are looking more and more like clipper bugs... [4/6/2011 1:57:26 AM] Samuel Williams: the main thing is to get clipper to work in-game, that more important then editor clipper.. [4/6/2011 1:58:18 AM] karamazovapy: what exactly is clipper supposed to do? smooth lines or something? [4/6/2011 1:58:24 AM] buckyballreaction: using precision 0.01 with no */500 will get apollonian to work with edge geometry and zones [4/6/2011 1:58:50 AM] Samuel Williams: clipper combine multiple polygon or rectangles barriers into one, then outputs line edges.. [4/6/2011 2:00:22 AM] Samuel Williams: The old method wasn't efficient, generates lots of short lines, and sometimes creates missing line on the barrier edge.. [4/6/2011 2:03:08 AM] Chris Eykamp: whereas the new method just doesn't work on some levels [4/6/2011 2:14:01 AM | Edited 2:14:10 AM] Samuel Williams: There is another problem level, level "Tube" in "bobdaduck collection" server (clipper problem) [4/6/2011 2:15:34 AM] Samuel Williams: level "Battle" have clipper problem, missing lines. [4/6/2011 2:25:21 AM] buckyballreaction: argh, i'm fading [4/6/2011 2:28:25 AM] Chris Eykamp: :) [4/6/2011 2:39:06 AM] buckyballreaction: ok well i found where clipper is throwing exceptions - but I don' t know what to do about it [4/6/2011 2:39:48 AM] buckyballreaction: it is throwing a different exception for edge geo than for bot geo, although they both have precision checks [4/6/2011 2:39:59 AM] buckyballreaction: but time to go to bed for now [4/6/2011 2:40:00 AM] buckyballreaction: night [4/6/2011 2:40:11 AM] Chris Eykamp: good night! [4/6/2011 2:40:25 AM] Samuel Williams: night. [4/6/2011 2:54:57 AM] Chris Eykamp: some of th eproblems we were blaming on clipper might be a different problem [4/6/2011 2:55:08 AM] Chris Eykamp: I'm not properly triangulating polywalls in the editor [4/6/2011 2:55:21 AM] Chris Eykamp: I think that is the problme with your 3 lobed level [4/6/2011 2:57:34 AM | Edited 2:57:44 AM] Samuel Williams: the problem with editor displaying polywall in my 3-loped level ("triple round") didn't exist until your 2 latest changes 105 minutes ago. [4/6/2011 2:59:09 AM | Edited 2:59:16 AM] Samuel Williams: After 2 of your latest changes, it looks horrable http://96.2.123.136/bitfighter/zap_d-20110406-0151431.png [4/6/2011 2:59:15 AM] Chris Eykamp: well, I can reproduce something like it, and I know what the problem is. When i fix that, maybe your level will be fixed. [4/6/2011 2:59:27 AM] Chris Eykamp: yes, that's the problem [4/6/2011 2:59:45 AM] Chris Eykamp: I need to triangluate the fill; I think that won't be too hard [4/6/2011 3:02:30 AM] buckyballreaction: OK [4/6/2011 3:02:31 AM] buckyballreaction: i lied [4/6/2011 3:02:34 AM] buckyballreaction: i'm still up [4/6/2011 3:02:40 AM] buckyballreaction: in order to post this: https://sourceforge.net/projects/polyclipping/forums/forum/1148419/topic/4470204 [4/6/2011 3:02:42 AM] Chris Eykamp: wait... you're back [4/6/2011 3:03:45 AM] buckyballreaction: ok, now i go to bed for reals... i just had to wrap that up [4/6/2011 3:04:48 AM] Chris Eykamp: be sure to update in the AM [4/6/2011 3:04:58 AM] buckyballreaction: okey doke [4/6/2011 3:06:46 AM] buckyballreaction: night [4/6/2011 3:10:35 AM] Samuel Williams: void WallSegment::renderFill(bool renderLight) glBegin(GL_TRIANGLES); // not GL_POLYGON [4/6/2011 3:10:39 AM] Chris Eykamp: sam, try updating and see if your lobed level works [4/6/2011 3:11:09 AM] Samuel Williams: But causes half trangles.. i will update now [4/6/2011 3:11:17 AM] Chris Eykamp: well, the points were'nt triangles until just a second ago, so that fix will not work [4/6/2011 3:20:33 AM] Samuel Williams: it mostly works http://96.2.123.136/bitfighter/zap_d-20110406-0319283.png The problem is reverse order counter clockwise point order don't get clipped. [4/6/2011 3:24:05 AM] Chris Eykamp: May need to add a check for that [4/6/2011 3:29:14 AM] Samuel Williams: There is a problem with all forcefield and all turrets moving in all random places.. [4/6/2011 3:31:13 AM] Chris Eykamp: yes, tomorrow for that one [4/6/2011 3:31:48 AM] Samuel Williams: http://www.youtube.com/watch?v=7ytv8WyVsrA [4/6/2011 3:37:37 AM] Chris Eykamp: ok, heading for bed [4/6/2011 3:37:49 AM] Chris Eykamp: just checked in a fix for the reverse order points and clipping [4/6/2011 3:38:23 AM] Chris Eykamp: whoa... that video is whack [4/6/2011 3:38:30 AM] Samuel Williams: testing [4/6/2011 3:39:07 AM] Samuel Williams: good, looks very good.. barriers and polywall is ok [4/6/2011 3:39:10 AM] Chris Eykamp: good... goodnight! [4/6/2011 3:39:15 AM] Chris Eykamp: tomorrow turrets and ffs [4/6/2011 3:39:31 AM] Chris Eykamp: then maybe the editor will be back on track [4/6/2011 10:49:44 AM] buckyballreaction: morning [4/6/2011 1:26:46 PM] Chris Eykamp: some of the problems we saw last night have been resolved -- at least ones in the editor [4/6/2011 1:27:01 PM] Chris Eykamp: sam's 3-lobed map, for example, now renders fine in the editor [4/6/2011 1:27:23 PM] buckyballreaction: oh good [4/6/2011 1:32:24 PM] buckyballreaction: finally finished integrating clipper 4 properly [4/6/2011 1:33:00 PM] buckyballreaction: i.e. upscaling by a factor of 1000 before and casting as S32, downscaling afterwards [4/6/2011 1:33:15 PM] buckyballreaction: so far it has been working on every problem level [4/6/2011 1:38:40 PM] buckyballreaction: even _k cursive level works [4/6/2011 1:38:52 PM] buckyballreaction: everything works with zones, too [4/6/2011 1:39:35 PM] Chris Eykamp: most excellent. no more freezing? [4/6/2011 1:39:52 PM] buckyballreaction: nope [4/6/2011 1:40:16 PM] Chris Eykamp: performance adequate with all that casting? [4/6/2011 1:40:20 PM] buckyballreaction: i think the freezing was due to a crazy float conversion i had going on by try to make clipper Zap::Point compatible [4/6/2011 1:40:38 PM] buckyballreaction: ah performance [4/6/2011 1:40:45 PM] buckyballreaction: seems ok - probably could be smarter [4/6/2011 1:41:09 PM] Chris Eykamp: I wonder if there is a way to cast an entire vector of f32s to ints without copying them to a new vector [4/6/2011 1:41:27 PM] Chris Eykamp: though even if there were, we'd still need the multiply [4/6/2011 1:41:47 PM] buckyballreaction: yep [4/6/2011 1:42:04 PM] Chris Eykamp: are you preallocating everything? [4/6/2011 1:42:13 PM] buckyballreaction: nope, not yet [4/6/2011 1:42:24 PM] buckyballreaction: i just finished getting it to work :) [4/6/2011 1:42:36 PM] buckyballreaction: pretty much everywhere I changes TPolyPolygon to Vector > [4/6/2011 1:44:22 PM] buckyballreaction: then in the mergePolys method i do the coversion: 1. Vector > -> Polygons (this was called TPolyPolygon) 2. run clipper 3. Polygons -> Vector > [4/6/2011 1:44:48 PM] buckyballreaction: Polygons is vector > [4/6/2011 2:51:21 PM] Chris Eykamp: We can take a look and see what we can do about performance. With a single allocation, it really shouldn't take too long to convert and mulitply even several thousand points. Certainly less time that in would have taken to process each segment individually as we did in previous versions of the game. [4/6/2011 2:53:12 PM] buckyballreaction: wow, so far clipper hasn't failed in any of my tests [4/6/2011 2:55:07 PM] buckyballreaction: all three kServ test levels, zzzz* levels, bitwise orrery, sarcophage [4/6/2011 2:55:13 PM] buckyballreaction: all work with edges and zones [4/6/2011 2:55:25 PM] Chris Eykamp: excellent [4/6/2011 2:55:40 PM] Chris Eykamp: I'd go back and post on your previous post that it's no longer freezing [4/6/2011 2:55:49 PM] Chris Eykamp: so angus doesn't freak out [4/6/2011 2:55:52 PM] buckyballreaction: ok [4/6/2011 2:56:12 PM] buckyballreaction: I can commit what I have - but I am a bit busy to do much optimizing at the moment [4/6/2011 2:56:21 PM] Chris Eykamp: no worries [4/6/2011 3:18:46 PM] buckyballreaction: ok pushed! [4/6/2011 3:30:25 PM] karamazovapy: http://img26.imageshack.us/img26/3809/turretsp.png [4/6/2011 3:30:47 PM] buckyballreaction: ? [4/6/2011 3:30:52 PM] karamazovapy: regular vs heavy turret idea [4/6/2011 3:31:01 PM] karamazovapy: http://bitfighter.org/forums/viewtopic.php?f=4&t=661&start=0 [4/6/2011 3:31:59 PM] karamazovapy: a more artillery-style turret [4/6/2011 4:25:19 PM] buckyballreaction: neat idea [4/6/2011 4:26:14 PM] Chris Eykamp: yes [4/6/2011 4:26:26 PM] Chris Eykamp: and easy [4/6/2011 4:32:15 PM] Chris Eykamp: just curious -- did you update the vc2010 project file? [4/6/2011 4:41:15 PM] buckyballreaction: yep [4/6/2011 5:50:46 PM] Chris Eykamp: ok, i'll take a swing at optimization tonight, and we can see how it looks [4/6/2011 9:26:22 PM] buckyballreaction: good evenign [4/6/2011 9:34:25 PM] buckyballreaction: before your optimizations the upscale/downscale timings (in microseconds): up: 2872 down: 1627 [4/6/2011 9:35:13 PM] buckyballreaction: for level kServ_apollonion [4/6/2011 9:35:20 PM] buckyballreaction: updating to latest.. [4/6/2011 9:36:53 PM] buckyballreaction: now the timings: up: 1498 down: 904 [4/6/2011 9:37:32 PM] buckyballreaction: so takes about 1/2 the time... [4/6/2011 9:39:02 PM] Samuel Williams: some levels freezes on the new clipper.. level Kate in-game (editor doesn't freeze) [4/6/2011 9:40:52 PM] buckyballreaction: 'Kate'? [4/6/2011 9:41:11 PM] Samuel Williams: try loading "Kate" in my server.. [4/6/2011 9:43:17 PM] Samuel Williams: mem usage jumps up while frozen, all the way up to 500 MB.. [4/6/2011 9:44:32 PM] buckyballreaction: wow, barely recovered from that.... [4/6/2011 9:45:15 PM] buckyballreaction: yeah, ummm [4/6/2011 9:45:38 PM] buckyballreaction: that filled up RAM all the way, then proceeded to swap space [4/6/2011 9:46:35 PM] Samuel Williams: http://96.2.123.136/bitfighter/clip_freeze.gif [4/6/2011 9:47:07 PM] Samuel Williams: look at bottom left at local variables - pg have 23051357 elements.. [4/6/2011 9:47:13 PM] buckyballreaction: WOW [4/6/2011 9:47:36 PM] buckyballreaction: wait! [4/6/2011 9:47:46 PM] buckyballreaction: the developer updated that method, saying there was a bug in it [4/6/2011 9:47:47 PM] Samuel Williams: it appears stuck in endless loop, then try/catch tries to recover.. [4/6/2011 9:49:03 PM] buckyballreaction: http://polyclipping.svn.sourceforge.net/viewvc/polyclipping/sandbox/clipper.cpp?revision=113&view=markup [4/6/2011 9:49:19 PM] buckyballreaction: around line 1869, he said he made a fix to BuildResult [4/6/2011 9:49:23 PM] buckyballreaction: now to find it.. [4/6/2011 9:50:51 PM] buckyballreaction: i don't find it.. [4/6/2011 9:52:33 PM] buckyballreaction: found it, he added: ppg.resize(k); [4/6/2011 9:52:37 PM] buckyballreaction: at the end of the method [4/6/2011 9:55:48 PM] buckyballreaction: ok here goes.... [4/6/2011 10:00:01 PM] Samuel Williams: ok. it eventually crashes with out of memory... I see this: First-chance exception at 0x7c812afb in zap_d.exe: Microsoft C++ exception: std::bad_alloc at memory location 0x0012d420.. [4/6/2011 10:02:03 PM] Samuel Williams: then after try/catch from out of memory, it crash trying to do void DisposePolyPts(PolyPt*& pp) {... delete tmpPp; ... } [4/6/2011 10:02:09 PM] buckyballreaction: can you provide Kate for me to download so I can see if it works in editor? [4/6/2011 10:02:22 PM] Samuel Williams: did you try /getmap ? [4/6/2011 10:02:30 PM] buckyballreaction: i can't load the level [4/6/2011 10:03:14 PM] Samuel Williams: ok, can't getmap when it crash on client load... [4/6/2011 10:03:22 PM] buckyballreaction: :) [4/6/2011 10:04:19 PM] Samuel Williams: http://96.2.123.136/bitfighter/0310furbuggy.level (Kate) [4/6/2011 10:07:07 PM] buckyballreaction: ok [4/6/2011 10:07:08 PM] buckyballreaction: thanks [4/6/2011 10:07:13 PM] buckyballreaction: i will post a bug report [4/6/2011 10:12:46 PM] Chris Eykamp: not bad for 15 mins work [4/6/2011 10:14:45 PM] Chris Eykamp: I meant the doubling of speed [4/6/2011 10:14:53 PM] Chris Eykamp: complimenting MY work [4/6/2011 10:14:56 PM] Chris Eykamp: just to be clear [4/6/2011 10:14:58 PM] buckyballreaction: :) [4/6/2011 10:15:00 PM] Chris Eykamp: :) [4/6/2011 10:18:11 PM] buckyballreaction: https://sourceforge.net/projects/polyclipping/forums/forum/1148419/topic/4472184 [4/6/2011 10:23:20 PM] buckyballreaction: but at least _k's cursive level works with bots :) [4/6/2011 10:25:05 PM] Samuel Williams: i will delete a few barrier at a time until it will not freeze / crash, to narrow down the problem.. [4/6/2011 10:25:20 PM] buckyballreaction: yours will crash with vc++ still running? [4/6/2011 10:25:51 PM] buckyballreaction: because mine won't ever crash - it just eats and eats memory until the system starts swapping so hard that I can't do anything [4/6/2011 10:26:01 PM] Samuel Williams: bitfighter freeze in clipper, then after 5 minutes, bitfighter crash (out of memory) [4/6/2011 10:33:18 PM] Samuel Williams: http://96.2.123.136/bitfighter/zzzz11.level only one 3-point barrier [4/6/2011 10:33:27 PM] Samuel Williams: it freezes with only that barrier.. [4/6/2011 10:33:34 PM] buckyballreaction: no way [4/6/2011 10:33:38 PM] buckyballreaction: ok, i'll update the bug [4/6/2011 10:35:09 PM] Chris Eykamp: I'd make sure that we can feed it those three points and reproduce the problem [4/6/2011 10:35:26 PM] buckyballreaction: that's what i'm doing [4/6/2011 10:35:28 PM] Chris Eykamp: i.e. just hardcode the call to clipper with those points [4/6/2011 10:35:30 PM] Chris Eykamp: great [4/6/2011 10:35:47 PM] Chris Eykamp: that will make it very easy to demonstrate both to us and to angus where the problem lies [4/6/2011 10:36:54 PM | Edited 10:37:26 PM] Samuel Williams: it a regular 3-points barrier,width=1, and that barrier it-self will freeze / crash... (on spesific locations) [4/6/2011 10:37:26 PM] Chris Eykamp: if width > 1 does it still crash? [4/6/2011 10:38:02 PM | Edited 10:38:38 PM] Samuel Williams: runs ok without freezing when width is bigger then 1 [4/6/2011 10:39:12 PM] buckyballreaction: here are the points: Poly 0, Point 0: -1334384, 8878 Poly 0, Point 1: -1517588, 91558 Poly 1, Point 0: -1151178, -73800 Poly 1, Point 1: -1334384, 8878 [4/6/2011 10:40:03 PM] Samuel Williams: clipper doesn't work with only 2 point of a poly.. [4/6/2011 10:40:52 PM] buckyballreaction: wait wait [4/6/2011 10:41:03 PM] buckyballreaction: is this a zero width barrier? [4/6/2011 10:41:23 PM] Samuel Williams: how does clipper determine the width then, with only 2 point? [4/6/2011 10:48:43 PM] Samuel Williams: Here is the real input to clipper.. Poly 0 Point 0: -1334384, 8879 Poly 0 Point 1: -1517588, 91559 Poly 0 Point 2: -1518000, 90647 Poly 0 Point 3: -1334796, 7967 Poly 1 Point 0: -1151178, -73800 Poly 1 Point 1: -1334384, 8879 Poly 1 Point 2: -1334796, 7967 Poly 1 Point 3: -1151590, -74712 [4/6/2011 10:49:07 PM] buckyballreaction: isn't that the bot zones? [4/6/2011 10:49:22 PM] buckyballreaction: oh, i guess not [4/6/2011 10:50:26 PM] Samuel Williams: i added Polygons upscaleClipperPoints(const Vector >& inputPolygons) { .. logprintf("Poly %i Point %i: %i, %i", i, j, polygon[j].X, polygon[j].Y); ..} [4/6/2011 10:50:42 PM] Samuel Williams: inside J loop [4/6/2011 10:50:53 PM] Samuel Williams: after push_back [4/6/2011 10:51:05 PM] Chris Eykamp: [Wednesday, April 06, 2011 10:48 PM] Samuel Williams: <<< -1518000multiply by 1000, and we're getting close to an overflow [4/6/2011 10:51:30 PM] buckyballreaction: the new clipper beta uses long long [4/6/2011 10:52:02 PM] Samuel Williams: i think it is currently S32 (up to 2147483647) [4/6/2011 10:52:49 PM] Samuel Williams: yes, it can be a possible overflow inside clipper when handling big numbers... [4/6/2011 10:53:34 PM] buckyballreaction: so i can't duplicate feeding it raw into clipper [4/6/2011 10:53:37 PM] buckyballreaction: (yet) [4/6/2011 10:54:32 PM] buckyballreaction: duplicated! [4/6/2011 10:54:42 PM] buckyballreaction: ok, now to send him some points [4/6/2011 10:56:12 PM] buckyballreaction: updated: https://sourceforge.net/projects/polyclipping/forums/forum/1148419/topic/4472184/index/page/1 [4/6/2011 11:05:20 PM] Chris Eykamp: wait a minute... [4/6/2011 11:05:28 PM] Chris Eykamp: that data you posted doesn't make sense... does it? [4/6/2011 11:06:02 PM] Chris Eykamp: what format is that supposed to be in? a->b->c->d->a? [4/6/2011 11:06:05 PM] buckyballreaction: two barriers, four points [4/6/2011 11:06:09 PM] Samuel Williams: 3-point barrier is really is 2 individual 4-point rectangles [4/6/2011 11:06:13 PM] buckyballreaction: a, b, c, d [4/6/2011 11:06:28 PM] Chris Eykamp: with an implied segment of d->a [4/6/2011 11:06:36 PM] buckyballreaction: clipper doesn't use segments [4/6/2011 11:06:54 PM] Chris Eykamp: well, it uses them somehow [4/6/2011 11:07:05 PM] buckyballreaction: internally, yes, i suppose [4/6/2011 11:07:11 PM] buckyballreaction: but in put is only points [4/6/2011 11:07:13 PM] Chris Eykamp: you specivy the four corners of a closed rectange, for example [4/6/2011 11:07:20 PM] buckyballreaction: yes [4/6/2011 11:07:23 PM] Chris Eykamp: ok [4/6/2011 11:07:48 PM] Chris Eykamp: maybe I misunderstood [4/6/2011 11:07:50 PM] buckyballreaction: in this case 2 4-corner close rectangles that shar an edge [4/6/2011 11:08:10 PM] Chris Eykamp: are these wound in opposite directions? [4/6/2011 11:08:22 PM] Chris Eykamp: top one has [4/6/2011 11:08:33 PM] Chris Eykamp: 7967 -> 8879 [4/6/2011 11:08:44 PM] Chris Eykamp: (y's, last then first, making a loop) [4/6/2011 11:08:56 PM] Chris Eykamp: the second has 8879 - > 7967 [4/6/2011 11:09:10 PM] Chris Eykamp: seems those points are in opposite order [4/6/2011 11:09:18 PM] buckyballreaction: nope [4/6/2011 11:09:18 PM] Chris Eykamp: no wait, that make ssense too [4/6/2011 11:09:25 PM] buckyballreaction: just tested - both are clockwise [4/6/2011 11:09:30 PM] Chris Eykamp: yes, [4/6/2011 11:09:34 PM] Chris Eykamp: ok [4/6/2011 11:09:48 PM] Chris Eykamp: hard to mentally process those points [4/6/2011 11:10:06 PM] buckyballreaction: i just spit them into clippers isClockwise method real quick.. :) [4/6/2011 11:10:14 PM] Chris Eykamp: can you reproduce by adding 100K to all x's? [4/6/2011 11:10:21 PM] Chris Eykamp: or 1M? [4/6/2011 11:10:25 PM] buckyballreaction: let me try [4/6/2011 11:10:44 PM] Chris Eykamp: thiking that small numbers, ideally small positive numbers would be interesting [4/6/2011 11:10:58 PM] Chris Eykamp: but keeping hte same general shape and spatial relation btwn points [4/6/2011 11:11:33 PM] buckyballreaction: yep * 100 crashes [4/6/2011 11:11:41 PM] buckyballreaction: oh sorry [4/6/2011 11:11:44 PM] buckyballreaction: you asked for addition [4/6/2011 11:12:51 PM] buckyballreaction: adding 100 to all of them does not crash [4/6/2011 11:15:19 PM] buckyballreaction: which is weird [4/6/2011 11:36:10 PM] buckyballreaction: sam, i found that it is stuck in this loop in BuildResults(): do { pg->push_back(p->pt); p = p->next; } while (p != m_PolyPts[i]); and it is alternating between two PolyPt : p = p->next.next [4/6/2011 11:36:31 PM] buckyballreaction: and it never breaks the condition [4/6/2011 11:37:33 PM] Samuel Williams: that is the same thing i got http://96.2.123.136/bitfighter/clip_freeze.gif [4/6/2011 11:39:22 PM] buckyballreaction: oh yeah, huh [4/6/2011 11:39:36 PM] buckyballreaction: i didn't take as close a look at that the first time... [4/6/2011 11:42:29 PM] Samuel Williams: http://96.2.123.136/bitfighter/clip_freeze2.gif showing p->next->next->next->next->next->next->next-> ... [4/6/2011 11:42:52 PM] buckyballreaction: hahahaha [4/6/2011 11:43:24 PM] buckyballreaction: wait, so both pointers are pointing to the same place? [4/6/2011 11:43:37 PM] Samuel Williams: it just alternates between 2 memory address.. [4/7/2011 12:03:02 AM] buckyballreaction: well, i'm heading to bed; I await angus' reply [4/7/2011 5:13:32 AM] Samuel Williams: in Clipper::BuildResult, i put this check: do { pg->push_back(p->pt); if(p->prev->next != p) _asm int 3; if(p->next->prev != p) _asm int 3; p = p->next; } while (p != m_PolyPts[i] && p != p_orig); _asm int 3 is breakpoint.. Somehow p->next->prev does not equal p when it should? [4/7/2011 10:21:45 AM] buckyballreaction: so early.. [4/7/2011 10:26:34 AM] Chris Eykamp: Possible solution: [4/7/2011 10:27:45 AM] Chris Eykamp: we have to "recenter" data for purposes of recast. Maybe we should do that at the beginning, before we start with clipper. It seems the data you posted is no colinear, but only nearly colinear; maybe something in the process chokes on big numbers [4/7/2011 10:28:14 AM] buckyballreaction: what do you mean, re-center? [4/7/2011 10:38:57 AM] Chris Eykamp: I mean subtract a fixed number so the level is centered in the 0-U16 number space [4/7/2011 10:39:26 AM] buckyballreaction: ahhh [4/7/2011 10:39:30 AM] Chris Eykamp: look at min/max coords, figure the factor, and add/subtract it when we're multiplying by 1000 [4/7/2011 10:39:50 AM] Chris Eykamp: thouth with ints it shouldn't matter... maybe it does [4/7/2011 12:05:45 PM] Chris Eykamp: is my understanding correct that the problematic level is a 3 point straight wall with a width of 1? [4/7/2011 12:30:42 PM] buckyballreaction: not really... [4/7/2011 12:30:53 PM] buckyballreaction: when multiplied by 1000, it is no longer a width of one.. [4/7/2011 12:31:10 PM] Chris Eykamp: interesting [4/7/2011 12:31:23 PM] Chris Eykamp: so there is a definite width, right? [4/7/2011 12:31:24 PM] buckyballreaction: yeah, so i think it is an 'official' bug in clipper [4/7/2011 12:31:37 PM] Chris Eykamp: angus seemed reluctant do come to that conclusion [4/7/2011 12:32:04 PM] Chris Eykamp: next time you post, you might also clarify that by crash you meant endless loop [4/7/2011 12:32:07 PM] buckyballreaction: he responded with an 'oops': http://sourceforge.net/projects/polyclipping/forums/forum/1148419/topic/4472184 [4/7/2011 12:32:11 PM] buckyballreaction: i already did this morning [4/7/2011 12:32:23 PM] Chris Eykamp: ah [4/7/2011 12:32:27 PM] Chris Eykamp: yes, new post [4/7/2011 12:32:40 PM] Chris Eykamp: I was similarly confused at first as well. [4/7/2011 12:32:53 PM] Chris Eykamp: that's the value of whitespace :) [4/7/2011 12:33:00 PM] buckyballreaction: ah... [4/7/2011 12:33:02 PM] buckyballreaction: doh [4/7/2011 12:35:26 PM] karamazovapy: so clarify for me one more time...all this clipper stuff is to make wall edges render properly...? [4/7/2011 12:38:40 PM] Chris Eykamp: and generate zones [4/7/2011 12:38:50 PM] Chris Eykamp: that was the primary reason we started in with this [4/7/2011 12:38:53 PM] karamazovapy: ah, I see the connection [4/7/2011 12:39:22 PM] Chris Eykamp: the new edge computations are much faster, so it makes sense to use them to generate edges for drawing the levels as well [4/7/2011 1:50:56 PM] Chris Eykamp: this has been a LONG road, but the payoff (picture perfect automatic fast bot zones) will be worth it. [4/7/2011 2:04:49 PM] buckyballreaction: _k, if you didn't catch it in the conversation from yesterday, bots work on your crazy cursive map now :) [4/7/2011 3:27:19 PM] karamazovapy: they "work" already, once they catch a glimpse of you [4/7/2011 3:34:52 PM] buckyballreaction: i guess that's true, but now they 'see' you anywhere on the map [4/7/2011 3:47:57 PM] karamazovapy: ivan really sneaks up on you with that map...now he's going to be even worse... [4/7/2011 9:30:31 PM] Samuel Williams: With updated clipper from 4.1.0 to 4.1.1, the line edge and bot zones generatiing now works on all maps I have.. [4/7/2011 10:47:39 PM] buckyballreaction: good evening [4/7/2011 10:51:15 PM] buckyballreaction: hooray! [4/7/2011 10:52:12 PM] buckyballreaction: you grabbed it from his most recent update just an hour or two ago? [4/7/2011 10:53:08 PM] Samuel Williams: yes [4/7/2011 10:53:15 PM] buckyballreaction: yay!! [4/7/2011 10:54:04 PM] buckyballreaction: this is great!!! [4/7/2011 10:54:07 PM] buckyballreaction: i am so happy!! [4/7/2011 10:54:19 PM] buckyballreaction: it means an end (hopefully) to the insanity!! [4/7/2011 11:53:08 PM] buckyballreaction: so does that mean _k should use the curren tsource for his server? [4/8/2011 12:01:01 AM] Chris Eykamp: http://arstechnica.com/gaming/news/2010/07/masterpiece-robotron-2084.ars\ [4/8/2011 12:01:01 AM] Chris Eykamp: http://arstechnica.com/gaming/news/2010/07/masterpiece-robotron-2084.ars [4/8/2011 12:01:01 AM] Chris Eykamp: video [4/8/2011 12:01:01 AM] Chris Eykamp: 3:48 [4/8/2011 12:01:01 AM] Chris Eykamp: brains [4/8/2011 12:01:12 AM] Chris Eykamp: those things that shoot out and snake around the screen [4/8/2011 12:01:37 AM] Chris Eykamp: those are what the 'worms' are supposed to be (in code, don't work, never seen in a game) [4/8/2011 12:01:48 AM] Chris Eykamp: that's what I want our super turrets to shoot [4/8/2011 12:02:19 AM] Samuel Williams: getting close to release, but there is one editor problem, turret and forcefield go everywhere on non-poly walls http://www.youtube.com/watch?v=7ytv8WyVsrA [4/8/2011 12:03:18 AM] Chris Eykamp: yes [4/8/2011 12:04:05 AM] buckyballreaction: i like it! [4/8/2011 12:04:11 AM] buckyballreaction: the turrets snake shooter [4/8/2011 12:04:13 AM] buckyballreaction: homing? [4/8/2011 12:04:49 AM] buckyballreaction: looks homing with a touch of randomness [4/8/2011 12:09:01 AM] buckyballreaction: gotta go, sorry.. [4/8/2011 12:09:27 AM] Samuel Williams: i have got turret to fire different weapons, go see in-game "Sam Host" [4/8/2011 12:09:33 AM] karamazovapy: laser snakes? [4/8/2011 12:10:06 AM] Chris Eykamp: I saw that... a perfect example of the benefits of using xml in the level file [4/8/2011 12:10:13 AM] Samuel Williams: can't get it to fire laser snakes until it breaks compatibility... [4/8/2011 12:10:33 AM] Chris Eykamp: the 'worms' (as I call them) do not home [4/8/2011 12:10:54 AM] Chris Eykamp: they turn randomly, and are shootable [4/8/2011 12:11:03 AM] Chris Eykamp: if you hit them on the tip [4/8/2011 12:11:17 AM] karamazovapy: that hostile burst turret is awfully hostile! [4/8/2011 12:11:37 AM] Chris Eykamp: this would be a 016 thing [4/8/2011 12:12:06 AM] Chris Eykamp: I'm looking for an open source robotron clone to steal code form [4/8/2011 12:12:53 AM] karamazovapy: check out sam's tweaked turrets [4/8/2011 12:13:36 AM | Edited 12:14:20 AM] Samuel Williams: that is, join "Sam Host" using your current version of 015 (or any 015 version) [4/8/2011 12:17:02 AM] Samuel Williams: well in a level file, i have it like this: Turret -2 2.5 -3 1 W=Phaser Turret -2 2.5 1 1 W=Triple Turret -2 2.5 3 1 W=Burst Turret -2 2.5 -1 1 W=Bouncer ... Only the latest code will be able to read "W=" part, older server version will not read it.. [4/8/2011 12:27:49 AM] Chris Eykamp: sam host not up? [4/8/2011 12:28:16 AM] Samuel Williams: ok, now up... [4/8/2011 12:32:01 AM] Chris Eykamp: the bursters seem so slow... yet they keep killing me [4/8/2011 12:32:19 AM] Samuel Williams: burst is powerful.. [4/8/2011 12:32:30 AM] Chris Eykamp: that's cool, however, I do like the idea that turrets have their own weapons, and players have theirs [4/8/2011 12:32:48 AM] Samuel Williams: turret bullets appears to be the weakest. [4/8/2011 12:32:56 AM] Chris Eykamp: yes [4/8/2011 12:33:14 AM] Chris Eykamp: maybe we can create a turret-only explosive projectile [4/8/2011 12:33:59 AM] Samuel Williams: can only do limited changes without breaking version 015 compatibility.. [4/8/2011 12:34:18 AM] Chris Eykamp: I don't think we should let that hold us back [4/8/2011 12:34:41 AM] Chris Eykamp: as soon as we get this thing working, we can release our 015a, then move on to 016 [4/8/2011 12:34:47 AM] Samuel Williams: and, 015a have not released yet [4/8/2011 12:36:01 AM] Chris Eykamp: true [4/8/2011 12:36:17 AM] Chris Eykamp: pretty much need to verify that clipper4 is stable, and get the editor fixed [4/8/2011 12:38:14 AM] Samuel Williams: i have checks nearly all the levels I have, it now works all the maps i have ckecked, i ckecked by hosting, then repeadedly typing /prev /prev /prev /prev /prev /prev /prev .... not /next or it will skip some levels due to min_players where /prev ignore min/max players in level [4/8/2011 12:41:38 AM] Samuel Williams: clipper also no longer doesn't crash with 4-point bow-tie shape that messes up the fill anyway. [4/8/2011 12:49:44 AM] Chris Eykamp: http://toucharcade.com/2011/02/11/a-preview-of-jeff-minters-minotron-2112-llamatron-redux/ [4/8/2011 12:49:45 AM] Chris Eykamp: video [4/8/2011 12:50:04 AM] Chris Eykamp: possible solution of how to make the controls work if we ever port game to iphone/ipad/etc [4/8/2011 12:52:04 AM] Samuel Williams: how will you be able to use both modules with that limited control? [4/8/2011 12:53:52 AM] Chris Eykamp: with your nose [4/8/2011 12:54:08 AM] Chris Eykamp: that's a good point, actually [4/8/2011 12:55:32 AM] buckyballreaction: ok back [4/8/2011 12:55:36 AM] Samuel Williams: it will be difficult to program controls with only a touch-screen input, many touch-screen is limited to only 1 or 2 spots at a time.. [4/8/2011 12:56:28 AM | Edited 12:56:33 AM] Samuel Williams: Also, it can block the screen when game demands real-time action.. [4/8/2011 12:57:03 AM] Samuel Williams: can't see underneach your finger or thumb. [4/8/2011 12:57:19 AM] Chris Eykamp: maybe I got excited too quickly at a partial solution [4/8/2011 12:58:54 AM] Samuel Williams: also, in the video, how to stop firing? [4/8/2011 12:59:42 AM] Samuel Williams: the video shows player continuous never-stopping firing of weapon. [4/8/2011 1:00:08 AM] Samuel Williams: can be a problem when trying to recover energy in bitfighter.. [4/8/2011 1:00:38 AM] buckyballreaction: we'd have to have people hook up joystick on the ipad (if there is a USB port...) [4/8/2011 1:06:08 AM] buckyballreaction: there is a dearth of opensource robotron clones [4/8/2011 1:08:40 AM] Chris Eykamp: alas, there is [4/8/2011 1:09:04 AM] Chris Eykamp: but how hard can it be to clone thoes worms? [4/8/2011 1:09:36 AM] Samuel Williams: some programmer likes to start with simple 2d game.. and any 2d simple game is easily programmable.. [4/8/2011 1:11:08 AM] Chris Eykamp: except one [4/8/2011 1:25:42 AM] buckyballreaction: clipper 4 is working great in my tests too [4/8/2011 1:25:51 AM] buckyballreaction: that kate kevel is crazy [4/8/2011 1:25:55 AM] buckyballreaction: level [4/8/2011 1:26:43 AM] Chris Eykamp: is that the one with the masks? [4/8/2011 1:26:50 AM] buckyballreaction: the three faces [4/8/2011 1:29:28 AM] Samuel Williams: is polywall bot zone buffered or not? while regular wall is buffered. [4/8/2011 1:30:34 AM] buckyballreaction: polywall should be buffered [4/8/2011 1:30:39 AM] buckyballreaction: oh... [4/8/2011 1:30:52 AM] buckyballreaction: actually, i never checked to make sure the new clipper would work with that.. [4/8/2011 1:32:07 AM] buckyballreaction: eeek [4/8/2011 1:32:13 AM] buckyballreaction: it's failing [4/8/2011 1:32:18 AM] buckyballreaction: ok, let me diagnose [4/8/2011 1:50:27 AM] buckyballreaction: i don't get it [4/8/2011 1:50:31 AM] buckyballreaction: it should be working [4/8/2011 1:50:40 AM] buckyballreaction: i see little different between the new method and the old.. [4/8/2011 2:01:32 AM] buckyballreaction: ha!, [4/8/2011 2:01:38 AM] buckyballreaction: it is working [4/8/2011 2:01:53 AM] buckyballreaction: but the output points aren't being used [4/8/2011 2:03:23 AM] Samuel Williams: invisible wall problem aren't fully fixed, try getting the flag in this level: http://96.2.123.136/bitfighter/ztest12.level [4/8/2011 2:05:13 AM] buckyballreaction: cool [4/8/2011 2:05:52 AM] buckyballreaction: i think i know how to fix that: if barrier width is 0, add 0.5 or so [4/8/2011 2:06:17 AM] buckyballreaction: but i'm in th emiddle of tracking down the polywall-zone problem.. [4/8/2011 2:06:50 AM] Samuel Williams: clipper can be inefficient with lots of walls with barrier width of zero when all the barrier of zero width is crossing each other.. [4/8/2011 2:13:08 AM] Chris Eykamp: you probably want to set that width when the level is loaded [4/8/2011 2:13:22 AM] Chris Eykamp: i think just set a minimum wall width of 1 [4/8/2011 2:13:49 AM] Chris Eykamp: the editor lets you create 0 widht walls, I consider this a bug [4/8/2011 2:14:45 AM] Samuel Williams: http://96.2.123.136/bitfighter/why_clip.gif having width of zero increases efficiency. and reduce line count, 0.5 instead of zero increases line count [4/8/2011 2:17:22 AM] Chris Eykamp: well, except that 0 width lines create invisible walls and aer having other undesireable effects on clipper [4/8/2011 2:17:50 AM] Chris Eykamp: I'm guessing clipper expects polygons, and polygons generally have area [4/8/2011 2:19:24 AM] buckyballreaction: i don't get it - the buffered points are coming out of clipper and being fed into Traingle/recast OK [4/8/2011 2:19:42 AM] Samuel Williams: there is a second options, could skip 2-point zero width barrier, and draw all lines directly without being clipped, while everything else is clipped. But that means 0-width barrier lines won't be clipped at all. [4/8/2011 2:21:13 AM] Samuel Williams: there is very little number of levels that uses zero-width barrier walls, none of it crosses any barriers.. [4/8/2011 2:21:44 AM] Chris Eykamp: why do they use 0-width walls? to make them invisible, or to make them really thin? [4/8/2011 2:22:29 AM] Samuel Williams: 0-width barrier did display correctly on older verson, before clipper.. [4/8/2011 2:23:13 AM] Samuel Williams: so, zero-width was never invisible in older version.. [4/8/2011 2:25:12 AM] Chris Eykamp: ok, so let's just make it 1 [4/8/2011 2:25:20 AM] Chris Eykamp: that will replicate old behavior [4/8/2011 2:25:32 AM] Chris Eykamp: you said it's rare... [4/8/2011 2:25:43 AM] Samuel Williams: static const S32 MIN_BARRIER_WIDTH = 0; = 1 ? [4/8/2011 2:26:40 AM] Chris Eykamp: ha... just set that [4/8/2011 2:26:51 AM] Chris Eykamp: will check that in shortly [4/8/2011 2:27:43 AM] Chris Eykamp: max will be sad you fixed his ship-firing-turret-projectiles hack [4/8/2011 2:32:45 AM] Samuel Williams: maybe create a new weapon called "Bouncy Burst" that only explode when it hits a ship? [4/8/2011 2:33:37 AM] Chris Eykamp: how about a worm gun? :-)\ [4/8/2011 2:33:53 AM] buckyballreaction: haha [4/8/2011 2:33:56 AM] buckyballreaction: oops [4/8/2011 2:34:22 AM | Edited 2:34:29 AM] Samuel Williams: triples, bouncers, and burst can combine to be the most powerful weapon "Triple Bouncy Burst" [4/8/2011 2:34:50 AM] buckyballreaction: id10t am I [4/8/2011 2:40:51 AM] Samuel Williams: http://96.2.123.136/bitfighter/zap_d-20110408-0239377.png look at the green color filename, it is partially hidden by Wall at bottom right.. [4/8/2011 2:41:21 AM] Samuel Williams: very short filename might be completely hidden.. [4/8/2011 2:42:31 AM] buckyballreaction: ok, attempting to merge... [4/8/2011 2:45:12 AM] karamazovapy: we could give the turrets the old zap burst graphic [4/8/2011 2:45:25 AM] Samuel Williams: the crazy forcefield reversing it self only occurs on horizontal or vertical non-poly wall, but not diagnal walls.. [4/8/2011 2:45:50 AM] Chris Eykamp: that is the next bug [4/8/2011 2:46:06 AM] Chris Eykamp: we don't have the old zap burst graphic! [4/8/2011 2:46:14 AM] karamazovapy: it's just a big bouncer [4/8/2011 2:46:17 AM] buckyballreaction: ok pushing fix to botzone buffers [4/8/2011 2:46:18 AM] Chris Eykamp: ok, then we do [4/8/2011 2:46:41 AM] Chris Eykamp: what about a turret that shoots out mines [4/8/2011 2:46:51 AM] Chris Eykamp: that arm when they come to rest [4/8/2011 2:46:54 AM] karamazovapy: or, you could create a heavy turret by giving it burst damage, no area of effect, but larger ordinance [4/8/2011 2:47:13 AM] Chris Eykamp: exploding soccer ball shooter [4/8/2011 2:47:19 AM] karamazovapy: hah [4/8/2011 2:47:23 AM] karamazovapy: asteroid shooter [4/8/2011 2:47:25 AM] Chris Eykamp: what should we do about the lack of dock space? [4/8/2011 2:47:40 AM] buckyballreaction: pushed [4/8/2011 2:47:45 AM | Edited 2:48:03 AM] Samuel Williams: [Friday, April 08, 2011 2:45 AM] karamazovapy: <<< we could give the turrets the old zap burst graphicversion 015 client won't know where the burst come from, either the old zap exlosion applies to all burst, or doesn't apply to any burst.. [4/8/2011 2:47:57 AM] karamazovapy: bind repairables to one thing, zones to another... [4/8/2011 2:48:14 AM] Chris Eykamp: don't worry about 015 -- any new turret would be for 016 [4/8/2011 2:48:23 AM] Chris Eykamp: no more features for 015! [4/8/2011 2:48:37 AM] buckyballreaction: feature freeze! [4/8/2011 2:48:39 AM] buckyballreaction: please! [4/8/2011 2:48:49 AM] karamazovapy: that's my line. [4/8/2011 2:48:58 AM] Chris Eykamp: so we can do anything we want [4/8/2011 2:49:08 AM] Chris Eykamp: but... what about the dock? ideas? [4/8/2011 2:49:20 AM] Chris Eykamp: make it wider, so we can fit more items across? [4/8/2011 2:49:25 AM] buckyballreaction: dock? [4/8/2011 2:49:27 AM] karamazovapy: dock idea - group zones into one thing, repairables into another [4/8/2011 2:49:27 AM] Chris Eykamp: make it have 2 "pages" [4/8/2011 2:49:33 AM] buckyballreaction: ah, that dock [4/8/2011 2:49:40 AM] Samuel Williams: right click brings up a menu in editor? [4/8/2011 2:49:54 AM] buckyballreaction: a simcity dock? [4/8/2011 2:49:59 AM] Chris Eykamp: r-click adds vertex [4/8/2011 2:50:03 AM] buckyballreaction: where you click a button and it drops down options [4/8/2011 2:50:04 AM] Chris Eykamp: what is simcitydock? [4/8/2011 2:50:09 AM] Chris Eykamp: ah [4/8/2011 2:50:28 AM] Chris Eykamp: could make the dock horizontal [4/8/2011 2:50:34 AM] karamazovapy: that's a good one! [4/8/2011 2:50:43 AM] Samuel Williams: make use of middle mouse button in editor? [4/8/2011 2:50:53 AM] karamazovapy: good luck, mac users [4/8/2011 2:50:58 AM] buckyballreaction: haha [4/8/2011 2:51:21 AM] Chris Eykamp: could put info (level name, etc.) in LR corner of screem, off the dock [4/8/2011 2:51:49 AM] buckyballreaction: i like info in top left [4/8/2011 2:51:54 AM] karamazovapy: yeah, at least float the coordinates somewhere else [4/8/2011 2:52:12 AM] Chris Eykamp: could do upper left [4/8/2011 2:52:18 AM] Chris Eykamp: eitehr floating or in a box [4/8/2011 2:52:32 AM] Chris Eykamp: will try floating first [4/8/2011 2:52:37 AM] karamazovapy: does that info really need to display at all times, by default? [4/8/2011 2:52:38 AM] Chris Eykamp: adding a box is easy [4/8/2011 2:52:57 AM] Samuel Williams: draggable and resizable toolbox? [4/8/2011 2:53:18 AM] Chris Eykamp: I think the info should be there... [4/8/2011 2:53:37 AM] Chris Eykamp: level name (maybe not), but that also serves as a need-to-save indicator [4/8/2011 2:53:46 AM] Chris Eykamp: teams, probably [4/8/2011 2:54:13 AM] Chris Eykamp: grid size? probably (though maybe we could just remove that and you see it in the f3 menu) [4/8/2011 2:54:22 AM] Chris Eykamp: coordinates... probably [4/8/2011 2:54:33 AM] karamazovapy: if we can fit Ast. ASP, and Test Res. side by side, we could probably fit some of that other stuff [4/8/2011 2:55:04 AM] karamazovapy: maybe not everything gets a text caption, but it appears on mouseover? [4/8/2011 2:55:08 AM] Chris Eykamp: turret will have super-turret beside it [4/8/2011 2:55:23 AM] Samuel Williams: it will fit if you shrink everything inside toolbox.. [4/8/2011 2:55:31 AM] Chris Eykamp: Mine/Bug [4/8/2011 2:56:01 AM] Chris Eykamp: I'll start with min/bug [4/8/2011 2:56:12 AM] Chris Eykamp: and try floating the text in the ur [4/8/2011 2:56:44 AM] Chris Eykamp: if that gets really annoying we can add a hotkey to hide it [4/8/2011 2:56:48 AM] karamazovapy: most of the things don't really require captions [4/8/2011 2:57:07 AM] karamazovapy: flag/repair/asteroid/test/resource [4/8/2011 2:57:10 AM] Chris Eykamp: true [4/8/2011 2:57:13 AM] buckyballreaction: _k, for your server tomorrow, can you at least apply this change?: http://code.google.com/p/bitfighter/source/detail?r=bbd72c5c34f4 [4/8/2011 2:57:27 AM] karamazovapy: yeah, I'll get it in the morning [4/8/2011 2:57:27 AM] buckyballreaction: it will fix statistics [4/8/2011 2:57:34 AM] buckyballreaction: ok [4/8/2011 2:57:44 AM] karamazovapy: thanks for the heads up [4/8/2011 2:57:52 AM] buckyballreaction: that's if you aren't going to update and wanted to keep the old 015 code [4/8/2011 2:58:11 AM] buckyballreaction: at a minimum i request that patch because it is a lot less work for stats... :) [4/8/2011 2:58:21 AM] karamazovapy: I'm happy to update whatever makes sense [4/8/2011 3:00:24 AM] Samuel Williams: look at how tiny that toolbox is in editor.. http://96.2.123.136/bitfighter/tiny_toolbox.gif [4/8/2011 3:00:25 AM] buckyballreaction: the Mac project is in need of serious repair [4/8/2011 3:01:37 AM] Samuel Williams: toolbox only get tiny when going fullscreen at 2048x1536 resolution.. [4/8/2011 3:01:44 AM] buckyballreaction: ah... [4/8/2011 3:01:49 AM] buckyballreaction: i was wondering [4/8/2011 3:02:17 AM] buckyballreaction: so what bugs need to be squashed before 015a? [4/8/2011 3:03:05 AM] karamazovapy: ooh! I've had an ipad control idea [4/8/2011 3:03:30 AM] Chris Eykamp: biggest outstanding bug is spazzing ffs/turrets in editor [4/8/2011 3:03:46 AM] buckyballreaction: is someone working on that? [4/8/2011 3:04:08 AM] Samuel Williams: that spazzing ff/turret occurs in both polygon and regular wall, if not diagnal... [4/8/2011 3:06:06 AM] Chris Eykamp: I was going to, but not tonight; I'm getting the dock under control then going to bed [4/8/2011 3:06:37 AM] Chris Eykamp: I don't really want to do it, but I feel some responsibility for it since the editor seems to be mostly my domain [4/8/2011 3:06:51 AM] buckyballreaction: i'm trying to track down when it was introduced [4/8/2011 3:06:55 AM] Chris Eykamp: but if you can figure it out.... go for it! [4/8/2011 3:07:13 AM] Chris Eykamp: probably around the time we started doing the clipper overhaul [4/8/2011 3:11:11 AM] buckyballreaction: what's the best way to duplicate it? [4/8/2011 3:11:53 AM] Samuel Williams: http://www.youtube.com/watch?v=7ytv8WyVsrA [4/8/2011 3:12:13 AM] buckyballreaction: thanks! [4/8/2011 3:12:28 AM] Samuel Williams: forcefield or turret attached to non-diagnal wall.. [4/8/2011 3:13:19 AM] Chris Eykamp: fhose ffs shuold not be changing when you drag that polywall [4/8/2011 3:13:49 AM] Samuel Williams: that video a little old, but still have the same problem.. [4/8/2011 3:14:38 AM | Edited 3:15:08 AM] Samuel Williams: repeatedly drag and drop from any wall several time, and watch MANY turret and forcefield change position. [4/8/2011 3:18:03 AM] Chris Eykamp: argh, found a display bug... drag a polywall off the dock [4/8/2011 3:18:10 AM] buckyballreaction: found the regression: ef86be420632 [4/8/2011 3:18:39 AM] buckyballreaction: http://code.google.com/p/bitfighter/source/detail?r=ef86be420632d420beea970f2cc37e0bee72200c [4/8/2011 3:18:54 AM] buckyballreaction: somehting in there made it go haywire [4/8/2011 3:19:41 AM] Chris Eykamp: will look tomorrow [4/8/2011 3:21:49 AM] Chris Eykamp: I notice a perceptible delay after moving wall or polywall as edges recalculate [4/8/2011 3:22:14 AM] buckyballreaction: can the recalculation be done after the move? [4/8/2011 3:22:59 AM] Chris Eykamp: it is; that's when the delay comes. the workI did tonight delayed any recalcs until after polywalls were moved (previusly did it while they were being dragged) [4/8/2011 3:23:09 AM] buckyballreaction: ah cool [4/8/2011 3:29:05 AM] buckyballreaction: good nigth [4/8/2011 3:29:54 AM] Chris Eykamp: night [4/8/2011 5:27:57 AM] Samuel Williams: have now fix that turret and forcefield problem in editor.. [4/8/2011 10:41:07 AM] buckyballreaction: morning [4/8/2011 10:49:23 AM] buckyballreaction: is the editor fixed? [4/8/2011 10:50:27 AM] buckyballreaction: because i am not seeing the problem any more... [4/8/2011 11:44:34 AM] Chris Eykamp: [Friday, April 08, 2011 5:27 AM] Samuel Williams: <<< have now fix that turret and forcefield problem in editor.. [4/8/2011 11:44:40 AM] Chris Eykamp: I'm guessing yes [4/8/2011 11:45:14 AM] buckyballreaction: ha. i don't know how I missed that... [4/8/2011 11:45:20 AM] buckyballreaction: well great! [4/8/2011 11:45:48 AM] buckyballreaction: I am so ready to release 015a so we can start really breaking everything with new features/etc. [4/8/2011 11:47:39 AM] Chris Eykamp: yes, we all are [4/8/2011 11:48:02 AM] Chris Eykamp: From his fix, I think I see why things were broken [4/8/2011 11:48:08 AM] Chris Eykamp: interesting, really [4/8/2011 11:48:26 AM] buckyballreaction: i still don't even know what happened to how his fix works [4/8/2011 11:48:45 AM] Chris Eykamp: looks like he just offset the turret slightly from the wall it was attaching to [4/8/2011 11:48:54 AM] Chris Eykamp: by .001 [4/8/2011 11:49:15 AM] buckyballreaction: and how does that fix it? [4/8/2011 11:51:18 AM] Chris Eykamp: well, the way a mount point is found is you start at the turret's position, and start scanning in a circle, looking for the closest point [4/8/2011 11:52:12 AM] Chris Eykamp: before, we were looking at thick wall segments, now we're looking at thin edges. Could be that when the starting point is right on the edge it doesn't see that, and continues to scan, seeing a nearby edge 'across the way', and attaches there. [4/8/2011 11:52:34 AM] Chris Eykamp: though they should not all be trying to reattach when you move just one wall, but that is a different issue [4/8/2011 11:52:44 AM] Chris Eykamp: that's my guess anyway [4/8/2011 11:54:53 AM] buckyballreaction: interesting [4/8/2011 1:29:06 PM] Chris Eykamp: one more editor glitch I can fix tonight (I hope) is that when you move a wall, I think the turrets and ffs attached to it should move as well. this was a glitch in 015, but is more of an issue with polywalls. [4/8/2011 1:42:32 PM] karamazovapy: so which release should I be getting? [4/8/2011 1:44:48 PM] Chris Eykamp: ?? [4/8/2011 1:44:57 PM] Chris Eykamp: oh, thought you were bbr [4/8/2011 1:45:04 PM] Chris Eykamp: you'll want the latest from the repository [4/8/2011 3:39:47 PM] karamazovapy: current 3B4 playlist: triple point stars, endless war, rockionex, figure 8, double, twisting halls, airlock, tube, honeycomb breakout, colosseum, badlands, curlyq, portal retrieve, sunburst, 90th degree burn, thank you drive thru, juggernaut's run, ancient bit ruins, tangle box, yivo, twilight zone, kill em all, knuckle up, golden, tinman's reprise, war, flagday [4/8/2011 3:40:18 PM] buckyballreaction: oooo sunburst [4/8/2011 3:40:26 PM] buckyballreaction: i forgot to test zones and bots on that one [4/8/2011 3:40:44 PM] karamazovapy: well there won't be any bots tonight [4/8/2011 3:54:09 PM] buckyballreaction: they work on that level! [4/8/2011 3:54:20 PM] buckyballreaction: and and they find the right paths, too [4/8/2011 3:54:52 PM] Chris Eykamp: so, do we have any faiures with the latest code? either in the editor, in the game, or with bot zones? [4/8/2011 3:56:02 PM] buckyballreaction: not yet [4/8/2011 3:56:19 PM] buckyballreaction: every once in a while, I see bots not grabbing a target [4/8/2011 3:56:36 PM] buckyballreaction: but i don't knwo if that is with the findPath code, or with the bot lua code [4/8/2011 3:57:14 PM | Edited 3:57:28 PM] Samuel Williams: in bitmatch, robots (S_BOT) only find a path when it see a near by enemy.. [4/8/2011 3:57:49 PM] buckyballreaction: ah, that the behaviour i'm seeing [4/8/2011 3:58:07 PM] buckyballreaction: also in rabbit [4/8/2011 3:58:27 PM] Chris Eykamp: but that's a bot issue, not a zone issue, right? [4/8/2011 3:58:41 PM] buckyballreaction: but when i /showpaths, it seems like if I get close enough, even without LOS, they will target via AStar [4/8/2011 3:58:49 PM] buckyballreaction: yes, bot issue [4/8/2011 3:58:50 PM] buckyballreaction: not zone [4/8/2011 3:59:03 PM] Chris Eykamp: so, as it stands clipper4 is 100% working [4/8/2011 3:59:08 PM] buckyballreaction: yes! [4/8/2011 3:59:13 PM] buckyballreaction: but i always speak too soon... [4/8/2011 3:59:22 PM] buckyballreaction: really wacky levels are working now [4/8/2011 3:59:46 PM] buckyballreaction: i have had no failures since sam's update yesterday [4/8/2011 3:59:54 PM] Chris Eykamp: good [4/8/2011 4:00:04 PM] Chris Eykamp: sam to the rescue :) [4/8/2011 4:02:33 PM] karamazovapy: well the server is ready to rock and roll [4/8/2011 4:02:55 PM] karamazovapy: I've upped 75ish levels to pick from [4/8/2011 4:03:30 PM] Chris Eykamp: wow [4/8/2011 4:03:57 PM] karamazovapy: 27 for the initial rotation, which should probably about cover it [4/8/2011 4:04:01 PM] karamazovapy: but I wanted to have room for requests [4/8/2011 4:20:24 PM | Edited 4:20:36 PM] Samuel Williams: may need to fix creating of zero size file on /getmap when getmap is disabled [4/8/2011 4:24:45 PM] Chris Eykamp: yes, should fix that [4/8/2011 8:53:19 PM] buckyballreaction: good evening [4/8/2011 8:59:49 PM] Chris Eykamp: game is on [4/8/2011 9:49:26 PM] buckyballreaction: the stats are sitll cumulative, was the server not updated? [4/8/2011 10:41:13 PM] buckyballreaction: time to clean the mac project [4/8/2011 11:12:41 PM] Chris Eykamp: ah... the master, or k's server? [4/8/2011 11:13:44 PM | Edited 11:15:22 PM] Samuel Williams: there is a problem where kill / deaths adds on and don't reset to zero, it a problem with old original release of 015 [4/8/2011 11:13:50 PM] Samuel Williams: server [4/8/2011 11:14:42 PM | Edited 11:14:52 PM] Samuel Williams: http://bitfighter.org/gamereports/ .... me getting 747 kills in one game look wrong... [4/8/2011 11:16:27 PM] Samuel Williams: this kill problem adding on, not reset to zero, does not occur on my server.. [4/8/2011 11:54:59 PM] buckyballreaction: that was fixed a long time ago - i guess _k didn't update first [4/9/2011 9:55:32 AM] buckyballreaction: good morning [4/9/2011 10:35:23 AM] buckyballreaction: has anyoneseen this?: http://code.google.com/p/bitfighter/issues/detail?id=90#makechanges [4/9/2011 10:36:51 AM] buckyballreaction: he provides a patch, but I don't know how that will affect things... [4/9/2011 10:40:30 AM] buckyballreaction: patch doesn't seem to affect my system [4/9/2011 11:05:55 AM] buckyballreaction: so if osmeone could test that patch in windows, that would be great [4/9/2011 7:01:48 PM] karamazovapy: is the 'e' notation for decimals in level code really useful? [4/9/2011 7:04:04 PM] Samuel Williams: it happens to do 3.6E-30 when number gets very very tiny.. [4/9/2011 7:04:32 PM] karamazovapy: I'm still not clear on how updates are handled. I got hg up -c bitfighter-015 [4/9/2011 7:05:10 PM] Samuel Williams: that will get the old release version, not updated un-release version.. [4/9/2011 7:05:53 PM] buckyballreaction: hg pull -u [4/9/2011 7:06:28 PM] buckyballreaction: will do a pull of the latest + update to it [4/9/2011 7:07:32 PM] Samuel Williams: i am uploading all my videos to youtube, i am halfway done uploading.. [4/9/2011 7:07:55 PM] Samuel Williams: video i am uploading is all of BBB4. [4/9/2011 7:08:55 PM] buckyballreaction: i only made it for one or two matches :( [4/9/2011 7:09:18 PM] Samuel Williams: i was in Big Battle the whole time.. [4/9/2011 7:09:31 PM] buckyballreaction: haha, yeah, i saw your kill count at the end of it.. [4/9/2011 7:11:41 PM] Samuel Williams: if your server is updated to latest repository, you may test the voting system, when there is 2 or more players and non-admin player wants to change team. [4/9/2011 7:12:12 PM] buckyballreaction: in the games i was a part of, i saw people changing sides right at the end of matches [4/9/2011 7:13:08 PM] Samuel Williams: it would be fun to see player tryed to change team, but vote fail, especially near the end of game.. [4/9/2011 7:13:15 PM] buckyballreaction: so i don't envy you, _k, when you try to get accurate winning stats [4/9/2011 7:14:28 PM] Samuel Williams: There is Change Team in the stats, but is not displayed on web page stats, it may be in database.. [4/9/2011 7:21:28 PM] buckyballreaction: just to clarify: all game types require at least one team, correct? [4/9/2011 7:22:42 PM] Samuel Williams: yes, i think al game type needs one or more team, even though bitmatch doesn't have team, there is still one team color. [4/9/2011 7:36:39 PM] buckyballreaction: sam, if you apply the patch here: http://code.google.com/p/bitfighter/issues/detail?id=90 are there any adverse effects on Windows? [4/9/2011 7:38:41 PM] buckyballreaction: because everything I read about setting ALC_FREQUENCY says to not worry about and let openAL set it itself [4/9/2011 7:38:52 PM] Samuel Williams: what difference does removing this: {ALC_FREQUENCY, 11025}, have any effect? [4/9/2011 7:39:01 PM] buckyballreaction: no effect on my end [4/9/2011 7:39:20 PM] buckyballreaction: but it fixes a bug with hardware that can't handle that low frequency [4/9/2011 7:39:33 PM] Samuel Williams: there no effect on windows xp.... [4/9/2011 7:39:45 PM] buckyballreaction: ok, i'm going to accept the patch and commit, then [4/9/2011 7:40:17 PM] buckyballreaction: everything i read says to not use it - just let openAL set it automatically [4/9/2011 7:41:55 PM] buckyballreaction: pushed [4/9/2011 8:03:01 PM] karamazovapy: for stats, I usually flash the score board some time at the beginning of the game, note teams, and then look again at the final "winning" scoreboard [4/10/2011 3:23:00 PM] karamazovapy: I'm having trouble accessing bitfighter.org [4/10/2011 3:57:38 PM] Samuel Williams: Hi, I can access bitfighter.org just fine.. [4/10/2011 4:04:06 PM] karamazovapy: I can too, now [4/10/2011 4:04:40 PM] Samuel Williams: when will BBB4 results be shown? [4/10/2011 6:33:45 PM] buckyballreaction: I am afraid that I don't have the time to do as comprehensive of statistics as last time: the cumulative scores took a while to normalize [4/10/2011 6:34:02 PM] buckyballreaction: at least not at the moment [4/10/2011 7:01:24 PM] karamazovapy: there may be a problem with team selection...the teams didn't change at all through the first four games of 3B4...still sorting through the video for results [4/10/2011 7:17:25 PM] Samuel Williams: Found a problem with RatingSort not sorting... It was because of it used this: S32 RatingSort(...) { return getCurrentRating(*b) - getCurrentRating(*a); } Where return 0.5-0.3 will be zero when converted to S32... [4/10/2011 7:20:58 PM] karamazovapy: so that would keep teams from being chosen properly? [4/10/2011 7:22:09 PM] Samuel Williams: when RatingSort don't work, it may end up sorting team at the order of who joined server.. [4/10/2011 7:22:39 PM] Samuel Williams: that can explain why me and _k don't ever be in same team.. [4/10/2011 7:22:59 PM | Edited 7:23:05 PM] Samuel Williams: me and _k are the first 2 to join server [4/10/2011 7:24:29 PM] karamazovapy: well if you go back and watch the team selection, the player groups change very little [4/10/2011 7:39:55 PM] karamazovapy: you and Gen.Tvvix were together almost the entire time [4/10/2011 7:46:11 PM] karamazovapy: I won 1 game in the first hour, 1 game in the second hour [4/10/2011 7:48:30 PM | Edited 7:48:50 PM] Samuel Williams: in 21. Retrieve Golden, "The game ended in a tie." message at end of game.. [4/10/2011 7:49:47 PM] karamazovapy: didn't it? [4/10/2011 7:50:20 PM] Samuel Williams: yes, it was a tie at 3-3, then someone in blue team scored after the game ended.. [4/10/2011 7:50:38 PM] karamazovapy: yeah, that's what I thought [4/10/2011 7:51:25 PM] Samuel Williams: the message at top left that says it tied or who wins is more reliable.. [4/10/2011 7:51:47 PM] karamazovapy: I actually watch the end of each match, and check teams at several points throughout [4/10/2011 8:01:24 PM] Samuel Williams: in 15. Zone, Thank you, Drive thru, Zoomber was AFK the entire 10 minutes.. [4/10/2011 8:01:42 PM] karamazovapy: I know [4/10/2011 8:01:47 PM] karamazovapy: I didn't win a single game in hour 3 [4/10/2011 8:01:57 PM] karamazovapy: so I've got 2 for the first three hours [4/10/2011 8:03:23 PM | Edited 8:03:35 PM] Samuel Williams: Also, in that same game, kicking Arctic immediately lag-disconnect Sky_lark (when 2:27 time limit is left) [4/10/2011 8:03:47 PM] karamazovapy: I think arctic and sky often play from the same house [4/10/2011 8:03:54 PM] karamazovapy: and he seems to have connection problems [4/10/2011 8:04:24 PM] Samuel Williams: That is because of a bug (fixed for 015a) that lag out everyone who is in the same IP address, or same computer. [4/10/2011 8:04:37 PM] karamazovapy: oh! [4/10/2011 8:04:42 PM] karamazovapy: well that's good to know! [4/10/2011 8:07:20 PM] buckyballreaction: speaking of 015a - we need to release! [4/10/2011 8:07:32 PM] buckyballreaction: so we can starting breaking the code again... [4/10/2011 8:10:45 PM] Samuel Williams: 015a will have an option for a level file: SoccerPickup on/off (what should the default be? and might want that option in editor? [4/10/2011 8:11:15 PM] karamazovapy: I'm not sure that should be variable [4/10/2011 8:12:19 PM] Samuel Williams: well, for now it is currently allow pickup soccer by default, but can be turned on/off by editing level file by adding a SoccerPickup line.. [4/10/2011 8:12:45 PM] Samuel Williams: but that is only for 015a, not old 015.. [4/10/2011 8:24:14 PM] karamazovapy: I think the most players we had on at once was 14...there might've been 15 for a second, but I don't want to scan for it if I'm just guessing [4/10/2011 8:46:08 PM] karamazovapy: congrats sam, you're our big winner! [4/10/2011 8:46:22 PM] karamazovapy: long overdue, results are posted: http://bitfighter.org/forums/viewtopic.php?f=20&t=672 [4/10/2011 8:46:39 PM] karamazovapy: I had a grand 4 wins over 4 hours [4/10/2011 8:46:51 PM] karamazovapy: WATUSIMOTO BEAT ME!!! [4/10/2011 8:47:15 PM] Samuel Williams: Good. [4/10/2011 8:47:21 PM] karamazovapy: lol [4/10/2011 8:47:32 PM] buckyballreaction: woo! i'm last! [4/10/2011 8:47:41 PM] buckyballreaction: mission accomplished [4/10/2011 8:48:14 PM] karamazovapy: you got a win, though! [4/10/2011 8:48:16 PM] Samuel Williams: [Sunday, April 10, 2011 8:47 PM] buckyballreaction: <<< woo! i'm last!Probably bacause of sorting equal wins in abc order.. [4/10/2011 8:48:20 PM] karamazovapy: we had several "participants" [4/10/2011 8:48:59 PM] karamazovapy: Alkizar ground_lark phantomime Thxmxs tony zelda84109 [4/10/2011 8:49:05 PM] karamazovapy: ^ no wins ^ [4/10/2011 8:50:18 PM | Edited 8:51:22 PM] Samuel Williams: sky_lark and ground_lark is probably the same person, seen in a video Bitfighter B4 32. Blinding Snow [4/10/2011 8:50:39 PM] karamazovapy: I know, but if I start picking out who is or isn't using dupes, I'm opening a whole new bag of cats [4/10/2011 8:51:07 PM] karamazovapy: also, I think it's funny to pretend there's someone named ground_lark out there [4/10/2011 8:52:32 PM] Samuel Williams: i bet sky_lark and ground_lark is the same person (ground_lark got level change permission like sky_lark.) [4/10/2011 8:52:50 PM] karamazovapy: I'm 100% positive they're the same person, but that's not really the point [4/10/2011 8:54:44 PM] Samuel Williams: ok, what do i get from winning the most? [4/10/2011 8:55:30 PM] karamazovapy: one of these - or something comparable, if you have any ideas: (1) SENNHEISER PC131 3.5mm Connector Over-the-head Headset (1) V7 M60G11-7N Black USB Wired Laser Gaming Mouse (1) Logitech Rumblepad 2 Vibration Feedback Gamepad (1) I-ROCKS KR-6820E-BK Black 104 Key USB/PS2 Wired Back-lit Gaming Keyboard [4/10/2011 8:59:21 PM] karamazovapy: links are in the Big Bitfighter Battle IV - PRIZES topic [4/10/2011 10:02:48 PM] Samuel Williams: i may get that headset, the question is how to get it? [4/10/2011 10:04:18 PM] karamazovapy: you give me an address, and I order it/have it shipped to you [4/10/2011 10:07:50 PM | Edited 10:09:24 PM] Samuel Williams: ok, send my address through forum PM.. to _k [4/10/2011 10:15:57 PM] Samuel Williams: For bot zone catching, there is: http://code.google.com/p/bitfighter/issues/detail?id=37 At one point Zone was cached, but later the cache was removed. [4/10/2011 10:26:43 PM] buckyballreaction: this has to do with client-side level caching, right? [4/10/2011 10:27:01 PM] buckyballreaction: i.e. caching the walls? [4/10/2011 10:27:11 PM] buckyballreaction: will zones need to be cached client side? [4/10/2011 10:27:43 PM] Samuel Williams: [Sunday, April 10, 2011 10:15 PM] Samuel Williams: <<< For bot zone catching,... [4/10/2011 10:28:32 PM] Samuel Williams: it is for catching generated bot zone.. [4/10/2011 10:30:03 PM] Samuel Williams: server side generated bot zones. and server could cache, at one point, it was caching bot zones to file, but later get removed from the code. [4/10/2011 10:30:09 PM] Samuel Williams: should bot zones be cached? [4/10/2011 10:31:14 PM] buckyballreaction: i don't think so anymore [4/10/2011 10:31:55 PM] buckyballreaction: it's pretty fast to just generate them [4/10/2011 10:32:04 PM] buckyballreaction: and it keeps the complexity down [4/10/2011 10:32:08 PM] Samuel Williams: well thy should this issle stay open? http://code.google.com/p/bitfighter/issues/detail?id=37 There is a seperate issue where there is cache loaded levels.. [4/10/2011 10:32:25 PM] buckyballreaction: probably should close then, is my guess [4/10/2011 11:03:54 PM] Chris Eykamp: case closed [4/10/2011 11:05:04 PM | Edited 11:05:21 PM] Samuel Williams: as for Specials nobots, should it be added as an option in editor? [4/10/2011 11:32:11 PM] buckyballreaction: i think every option should be allowed in the editor [4/10/2011 11:32:20 PM] buckyballreaction: it's just a matter of how to display it.. [4/10/2011 11:55:13 PM] Chris Eykamp: I agree [4/10/2011 11:55:36 PM] Chris Eykamp: i think we need a new robots section of the options [4/10/2011 11:55:45 PM] Chris Eykamp: to specify bots, params, etc. [4/10/2011 11:55:52 PM] Chris Eykamp: and perhaps the nobots flag [4/10/2011 11:56:06 PM] Chris Eykamp: we're just out of room on the existing menus [4/11/2011 12:01:30 AM] *** Samuel Williams sent 11040830.AVI,... *** [4/11/2011 12:01:42 AM] Samuel Williams: stupid drag and drop.. [4/11/2011 10:24:27 AM] buckyballreaction: what options are there for robots other than 'nobots'? [4/11/2011 10:26:04 AM] buckyballreaction: also should we default engineer to off? [4/11/2011 11:04:35 AM] Chris Eykamp: sure -- default engineer to off [4/11/2011 11:04:57 AM] Chris Eykamp: can specify one or more bots, each with an arbitrary number of arbitrary parameters [4/11/2011 11:05:27 AM] Chris Eykamp: each robot needs a team, a script name, and 0 or more params that are passed to the script [4/11/2011 11:43:44 AM] buckyballreaction: I also notice that bots still love to bang into walls: this happens because AStar returns a direct LOS path between zones around a corner and that path will not take into account the bot's width and traverse a zone buffer [4/11/2011 11:44:06 AM] buckyballreaction: and the bot bonks into the barrier corner [4/11/2011 11:45:18 AM] Chris Eykamp: yes; [4/11/2011 11:45:25 AM] Chris Eykamp: the solution is straightforward [4/11/2011 11:45:54 AM] Chris Eykamp: currently, the bot calculate LOS from their center to the center of their target [4/11/2011 11:47:56 AM] Chris Eykamp: what we need to do is calculate LOS from 24 pixels "left of center" of the bot to 24 pixels "left of center" of the target, and a second calculation on the right side. or better, see if there is a way to "sweep" the rectangle bounded by those two rays, to see if it hits anything before the target [4/11/2011 11:48:08 AM] Chris Eykamp: we may actually have a method for this already -- swept ellipsoid [4/11/2011 11:51:55 AM] Chris Eykamp: well looks like that method and its partner require a subject polygon to do their dirty work; however, could do a bounding box around that rectangle, pull all walls out of spatial databae, and do comparison against each of those [4/11/2011 11:52:08 AM] Chris Eykamp: that's getting to be a lot of calculations though [4/11/2011 11:53:03 AM] Chris Eykamp: but what we need is straightforward: we have a rectabgle, and we need to see if it intersects any walls [4/11/2011 11:53:20 AM] Chris Eykamp: and we can get a list of walls in the neighborhood [4/11/2011 12:08:58 PM] Chris Eykamp: freeze score while game over. ==> good! [4/11/2011 12:09:11 PM] buckyballreaction: yeah that was a good one [4/11/2011 12:29:37 PM] buckyballreaction: since 016 is going to have lots of big changes, do we want to implement some of the smaller non-breaking features first? (like split server/chat messages) [4/11/2011 12:30:03 PM] buckyballreaction: but that one may be protocol breaking... not sure yet [4/11/2011 12:47:40 PM] Chris Eykamp: [Monday, April 11, 2011 12:29 PM] buckyballreaction: <<< (like split server/chat messages)that should be easy enough [4/11/2011 12:48:24 PM] Chris Eykamp: I think we already distinguish between chat and non chat msgs at the protocol level; just a question of queueing them separately and displaying them in their own areas [4/11/2011 12:48:43 PM] Chris Eykamp: maybe with an INI option to keep them as they are ? [4/11/2011 12:48:48 PM] Chris Eykamp: or not [4/11/2011 12:49:46 PM] Chris Eykamp: we've still got a few days before we've got the final editor issues buttoned up (though we could release that as-is without major crisis) [4/11/2011 12:55:30 PM] Chris Eykamp: s2cDisplayMessage, s2cDisplayChatMessage [4/11/2011 12:55:38 PM] Chris Eykamp: that's where I'd start [4/11/2011 12:55:44 PM] buckyballreaction: okey doke [4/11/2011 12:56:04 PM] buckyballreaction: also, would you have ctrl+m go for just the chat, goign forward? [4/11/2011 12:56:10 PM] buckyballreaction: or maybe a new binding? [4/11/2011 12:56:12 PM] Chris Eykamp: I don't know [4/11/2011 12:56:31 PM] Chris Eykamp: depends how much room we leave for the messages [4/11/2011 12:56:56 PM] buckyballreaction: ok [4/11/2011 12:57:05 PM] Chris Eykamp: the real question is do we need it? [4/11/2011 12:57:13 PM] buckyballreaction: do we need ctrl+m? [4/11/2011 12:57:15 PM] Chris Eykamp: maybe we can get rid of it [4/11/2011 12:57:36 PM] Chris Eykamp: do we need ctrl-m or something similar, or does separating the messages accompish the same goal? [4/11/2011 12:57:53 PM] buckyballreaction: ah, i see [4/11/2011 12:57:58 PM] buckyballreaction: i'll have to think about it... [4/11/2011 12:58:06 PM] buckyballreaction: but i have to go now - meeting... [4/11/2011 12:58:13 PM] buckyballreaction: be back later [4/11/2011 12:58:15 PM] Chris Eykamp: bye [4/11/2011 3:38:47 PM] *** karamazovapy sent youatt_thesis_proposal_final.pdf *** [4/11/2011 3:38:59 PM] karamazovapy: my thesis proposal finally passed committee [4/11/2011 3:39:25 PM] karamazovapy: not my best writing, but I was so sick of working on it, I just stopped caring [4/11/2011 3:45:25 PM] Chris Eykamp: good luck [4/11/2011 3:47:09 PM] karamazovapy: oh - interesting event [4/11/2011 3:47:19 PM] karamazovapy: I just updated my server [4/11/2011 3:47:22 PM] karamazovapy: tried to run it [4/11/2011 3:47:35 PM] karamazovapy: Welcome to Bitfighter! o OpenAL support on this platform. PANIC: unprotected error in call to Lua API (not enough memory) IP:Any:0 - client "" disconnected. [4/11/2011 3:48:16 PM] Chris Eykamp: how many other servers are you running? [4/11/2011 3:48:22 PM] karamazovapy: zero [4/11/2011 3:50:15 PM] Chris Eykamp: try again? [4/11/2011 3:50:47 PM] karamazovapy: Welcome to Bitfighter! No OpenAL support on this platform. PANIC: unprotected error in call to Lua API (not enough memory) IP:Any:0 - client "" disconnected. [4/11/2011 3:51:15 PM] karamazovapy: I'm only trying to launch kserv [4/11/2011 3:51:32 PM] karamazovapy: no more or fewer levels than I hosted pre-update [4/11/2011 3:51:49 PM] karamazovapy: in fact, many fewer than 3B4, but I do have bots [4/11/2011 3:53:54 PM] karamazovapy: same files without bots enabled: [4/11/2011 3:53:55 PM] karamazovapy: Welcome to Bitfighter! No OpenAL support on this platform. ***LEVELGEN ERROR*** in kserv2/kServ_bomb2.levelgen ::: Error during initializing lua helper functions scripts/lua_helper_functions.lua: scripts/lua_helper_functions.lua:38: module 'geometry' not found: no field package.preload['geometry'] no file 'screenshots/geometry.lua' no file './geometry.so' no file '/usr/local/lib/lua/5.1/geometry.so' no file '/usr/local/lib/lua/5.1/loadall.so'. Can't run levelgen script... ***LEVELGEN ERROR*** in kserv2/kServ_fivegrid.levelgen ::: Error during initializing lua helper functions scripts/lua_helper_functions.lua: scripts/lua_helper_functions.lua:38: module 'geometry' not found: no field package.preload['geometry'] no file 'screenshots/geometry.lua' no file './geometry.so' no file '/usr/local/lib/lua/5.1/geometry.so' no file '/usr/local/lib/lua/5.1/loadall.so'. Can't run levelgen script... ***LEVELGEN ERROR*** in kserv2/kServ_labyrinth.levelgen ::: Error during initializing lua helper functions scripts/lua_helper_functions.lua: scripts/lua_helper_functions.lua:38: module 'geometry' not found: no field package.preload['geometry'] no file 'screenshots/geometry.lua' no file './geometry.so' no file '/usr/local/lib/lua/5.1/geometry.so' no file '/usr/local/lib/lua/5.1/loadall.so'. Can't run levelgen script... ANIC: unprotected error in call to Lua API (not enough memory) IP:Any:0 - client "" disconnected. [4/11/2011 3:56:27 PM] karamazovapy: so does all this zone gen stuff significantly increase the memory overhead required to host a dedicated server? [4/11/2011 3:58:08 PM] Chris Eykamp: not sure, interesting question... [4/11/2011 3:58:21 PM] karamazovapy: I mean, it's not even letting me launch without bots [4/11/2011 3:58:31 PM] karamazovapy: I'll try removing a few big levels and see what happens [4/11/2011 3:58:36 PM] Chris Eykamp: the geometry not found is puzzling [4/11/2011 3:58:58 PM] Chris Eykamp: unless that's caused by an earlier failure [4/11/2011 3:59:36 PM] karamazovapy: still not launching when I remove my biggest levelgen and the cursive level [4/11/2011 4:00:15 PM] karamazovapy: still fails when I remove all levelgens [4/11/2011 4:01:11 PM] karamazovapy: okay, it will launch with one level that's under 1k [4/11/2011 4:01:18 PM] karamazovapy: build from there [4/11/2011 4:02:10 PM] karamazovapy: while idling, it's hardly using any memory [4/11/2011 4:06:29 PM] karamazovapy: it won't launch with one 1k level running bots [4/11/2011 4:08:09 PM] karamazovapy: yeah, I'm unable to host a server with one 996 byte level and a modified s_bot [4/11/2011 4:08:35 PM] karamazovapy: PANIC: unprotected error in call to Lua API (not enough memory) [4/11/2011 4:20:33 PM] karamazovapy: just taught footloose how to host a dedicated server though [4/11/2011 6:11:22 PM] Samuel Williams: LUA errors might be due to missing LUA files (missing Geometry.lua).. I don't really know about out of memore, possibly damaged LUA files, or the maching you tried to run is running low on RAM.. [4/11/2011 6:12:01 PM] Chris Eykamp: he's running on a low end vps, which may well be memory constrained [4/11/2011 6:12:18 PM] Chris Eykamp: but [4/11/2011 6:12:19 PM] karamazovapy: it's undoubtedly memory constrained [4/11/2011 6:13:42 PM] Chris Eykamp: if the zone generation/clipper stuff takes too much memory, I'd expect it to crash there, not in the lua loading stage (by which time clipper would have released any memory it;s using, or perhaps hadn't yet grabbed, not sure the order of things) to this might not be related to that... the geometry issue makes me think there may be something else going on [4/11/2011 6:13:48 PM] Chris Eykamp: but not sure [4/11/2011 6:14:00 PM] Chris Eykamp: I'm going to try updating my server htis evening and see what happens for me [4/11/2011 6:14:30 PM] karamazovapy: I tried a pretty basic level and one bot, so it seems fishy [4/11/2011 10:15:08 PM] buckyballreaction: _k, make sure to do a 'make clean' first [4/11/2011 10:18:30 PM] buckyballreaction: if you didn't do a 'make clean' there can easily be all sorts of inexplicable errors because we changed some fundamental inner workings of bitfighter (tnlVector) [4/11/2011 10:20:59 PM] karamazovapy: how do I do a "make clean"? remove the old repository first? [4/11/2011 10:21:10 PM] buckyballreaction: this is linux, correct? [4/11/2011 10:21:29 PM] karamazovapy: correct [4/11/2011 10:21:45 PM] buckyballreaction: after you do 'hg pull -u' in the repository directory, just type in 'make clean' before you do 'make bitfighterd' [4/11/2011 10:22:01 PM] karamazovapy: okay [4/11/2011 10:22:10 PM] buckyballreaction: that forces a compile from scratch [4/11/2011 10:22:15 PM] karamazovapy: I'll give it a shot in the next hour here and we'll see if that fixes things [4/11/2011 10:22:37 PM] buckyballreaction: ok [4/11/2011 10:25:13 PM] buckyballreaction: not to see about making bots a bit less drunk... [4/11/2011 10:25:16 PM] buckyballreaction: now [4/11/2011 10:55:40 PM] karamazovapy: server works! [4/11/2011 10:55:44 PM] karamazovapy: make clean fixed it [4/11/2011 10:56:21 PM] buckyballreaction: great! [4/11/2011 10:57:50 PM] Samuel Williams: /addbot not working in k_serv... (/kickbots works) [4/11/2011 10:58:48 PM] Samuel Williams: though, /addbot and /kickbots requires level change password (i have it) [4/11/2011 10:59:20 PM] karamazovapy: I'm just happy the server launched successfully [4/11/2011 10:59:45 PM] Samuel Williams: there is /addbot 0 bot_file.bot where 0 is team number [4/11/2011 11:00:08 PM] karamazovapy: are you sure you're adding files I actually have? [4/11/2011 11:00:32 PM] Samuel Williams: the problem is listing the available robots to add.. [4/11/2011 11:01:18 PM] Samuel Williams: it uses bot files that already exists in server, which /addbot defaults to s_bot.. [4/11/2011 11:01:29 PM] Samuel Williams: but there is no s_bot, so /addbot fails. [4/11/2011 11:01:33 PM] karamazovapy: oh, I don't have an s_bot file anywhere [4/11/2011 11:01:57 PM] buckyballreaction: it's in the installer/robots folder [4/11/2011 11:02:13 PM] karamazovapy: I didn't bother copying it [4/11/2011 11:03:08 PM] Samuel Williams: i could add /listbots to output available robots server have.. [4/11/2011 11:03:37 PM] karamazovapy: maybe /addbot should just be an admin function... [4/11/2011 11:11:32 PM] Chris Eykamp: we should be shipping s_bot with the game, i think [4/11/2011 11:11:53 PM] Chris Eykamp: and I'm hoping to add an autocomplete to the bot names [4/11/2011 11:13:21 PM] Samuel Williams: Having auto-complete /addbot probably requires server sending bot names to clients.. [4/11/2011 11:16:33 PM] Chris Eykamp: ah, yes, it probably does [4/11/2011 11:16:39 PM] Chris Eykamp: that will be a 016 feature! [4/11/2011 11:18:20 PM] Samuel Williams: it can be done for 015a, as i added one thing to gameConnection - s2cSoccerCollide (only exist on 015a, but not old 015 version), Old version will simply ignore it when it receives it. I made use of RPCVersion=3. [4/11/2011 11:18:34 PM] Chris Eykamp: ah yes [4/11/2011 11:18:35 PM] Samuel Williams: stays compatible to older version.. [4/11/2011 11:18:47 PM] Chris Eykamp: good thinking [4/11/2011 11:25:31 PM] karamazovapy: I never bothered to copy ../installer/levels . or robots or sfx because I never use any of them [4/11/2011 11:37:26 PM] buckyballreaction: ok bots don't hit walls as often now... [4/11/2011 11:40:33 PM] buckyballreaction: ok pushed [4/11/2011 11:41:50 PM] buckyballreaction: now for server/chat messages.. [4/11/2011 11:51:20 PM] buckyballreaction: argh everything is c-style arrays [4/11/2011 11:55:12 PM] Chris Eykamp: is there another style? [4/11/2011 11:55:33 PM] Chris Eykamp: oh, you mean the strings [4/11/2011 11:56:51 PM] buckyballreaction: if i put the player chat messages on the bottom, does that mean I should put the chat-entry box on the bottome, too? [4/11/2011 11:59:57 PM] buckyballreaction: or is that too radical? [4/12/2011 12:04:06 AM] Chris Eykamp: I don't know... [4/12/2011 12:04:17 AM] Chris Eykamp: what makes sense to you? [4/12/2011 12:04:29 AM] Chris Eykamp: don't worry about radical -- worry about the best design [4/12/2011 12:04:45 AM] buckyballreaction: i don't really spend enough time in multiplayer games where people chat a lot... [4/12/2011 12:07:00 AM] Chris Eykamp: same here [4/12/2011 12:07:35 AM] buckyballreaction: seem like most games i've played (mostly RTS) have the chat box appear at the bottom [4/12/2011 12:07:46 AM] Chris Eykamp: let's try it [4/12/2011 12:09:14 AM] buckyballreaction: y coords are positive going downwards, correct? [4/12/2011 12:09:19 AM] buckyballreaction: for drawing test [4/12/2011 12:09:21 AM] buckyballreaction: text [4/12/2011 12:10:23 AM] Samuel Williams: mostly yes, depends what function you use. [4/12/2011 12:58:04 AM] buckyballreaction: password is 'test' sam :) [4/12/2011 12:59:17 AM] buckyballreaction: http://96.2.123.136/upload/snapshot28.png [4/12/2011 12:59:29 AM] buckyballreaction: http://96.2.123.136/upload/snapshot29.png [4/12/2011 12:59:48 AM] buckyballreaction: chat messages working [4/12/2011 12:59:57 AM] buckyballreaction: one problem is load out menu [4/12/2011 1:00:27 AM] buckyballreaction: but hat was with ctrl +m [4/12/2011 1:01:29 AM] Samuel Williams: [Tuesday, April 12, 2011 12:58 AM] buckyballreaction: <<< password is 'test' sam :)Password for what? for a host server i don't see listed? [4/12/2011 1:01:46 AM] buckyballreaction: haha, yeah - you tried to connect to my test server briefly [4/12/2011 1:11:23 AM] Samuel Williams: you have lots of bugs to fix with seperate chat.. [4/12/2011 1:11:31 AM] buckyballreaction: yeah... [4/12/2011 1:11:34 AM] buckyballreaction: i need to go to bed [4/12/2011 1:11:43 AM] buckyballreaction: want to tinker with it? [4/12/2011 1:11:45 AM] Samuel Williams: buy. [4/12/2011 1:11:49 AM] buckyballreaction: i can give you a diff [4/12/2011 1:11:49 AM] Samuel Williams: bye. [4/12/2011 1:11:56 AM] Samuel Williams: ok [4/12/2011 1:12:16 AM] Samuel Williams: diff first, then bye. [4/12/2011 1:13:04 AM] buckyballreaction: ok, here it is: http://96.2.123.136/upload/separate_chat.diff [4/12/2011 1:13:06 AM] Chris Eykamp: good night [4/12/2011 1:13:25 AM] Chris Eykamp: we should list the bugs as we find them, so that any of us can fix them [4/12/2011 1:13:29 AM] buckyballreaction: problems: 1. overlap of various menus 2. sometimes nicknames come back as fff?fff?fff? [4/12/2011 1:13:38 AM] Chris Eykamp: I liked the screen shots, btw [4/12/2011 1:13:50 AM] buckyballreaction: but that may be because I didn't do 'make clean' :) [4/12/2011 1:13:53 AM] Chris Eykamp: i think it will be a good change when we get it all cleaned up [4/12/2011 1:14:04 AM] Chris Eykamp: fff? [4/12/2011 1:14:07 AM] buckyballreaction: 3. have not touched the input chat box yet [4/12/2011 1:14:09 AM] Chris Eykamp: fffffffffffffffffffffffffffffffffffff [4/12/2011 1:14:40 AM] buckyballreaction: yeah... those char arrays!! [4/12/2011 1:15:06 AM] Chris Eykamp: re conflict with loadout menu... maybe loadout menu can have box behind it that blacks out / almost blacks out chat messages behind it [4/12/2011 1:15:37 AM] buckyballreaction: like a dim-the-background box? [4/12/2011 1:15:41 AM] Chris Eykamp: exactly [4/12/2011 1:15:42 AM] Chris Eykamp: maybe [4/12/2011 1:16:04 AM] Chris Eykamp: just ocurred to me it would also dim out other elements like the level that don;t really conflict [4/12/2011 1:16:15 AM] Chris Eykamp: and that might or might not look good [4/12/2011 1:16:22 AM] Chris Eykamp: but it's super easy to test [4/12/2011 1:17:05 AM] Chris Eykamp: all those problems are easy to fix [4/12/2011 1:17:22 AM] buckyballreaction: i'll have to pick up again tomorrow... [4/12/2011 1:17:44 AM] buckyballreaction: unless sam or you can use the diff and get stuff ironed out.. [4/12/2011 1:17:51 AM] buckyballreaction: but you migh tboth be working on something else [4/12/2011 1:19:05 AM] buckyballreaction: night [4/12/2011 1:27:21 AM] Chris Eykamp: night [4/12/2011 2:00:30 AM] Samuel Williams: Found a reason why it displays fff?fff?fff? it was an array out of range where chat colors list corrupting some chat chars, in GameUserInterface::displayChatMessage. // Create a slot for our new message No: for(S32 i = MessageDisplayCount - 1; i > 0; i--) Yes: for(S32 i = ChatMessageDisplayCount - 1; i > 0; i--) [4/12/2011 2:02:22 AM] Chris Eykamp: :) [4/12/2011 2:02:27 AM] Chris Eykamp: good eye [4/12/2011 2:02:36 AM] Chris Eykamp: easily missed [4/12/2011 2:02:56 AM] Chris Eykamp: my project for the evening is a failure. it works, but it's not good ui [4/12/2011 2:03:04 AM] Chris Eykamp: so I'm removing it [4/12/2011 2:03:22 AM | Edited 2:03:28 AM] Samuel Williams: what project was it? [4/12/2011 2:03:42 AM] Chris Eykamp: moving ffs along with the walls they're attached to [4/12/2011 2:04:03 AM] Chris Eykamp: to fix that "rotating" turret you get when moving a polywall in a circle [4/12/2011 2:04:09 AM] Chris Eykamp: that is really annoying [4/12/2011 2:04:39 AM] Chris Eykamp: but we may need to live with it for the moment [4/12/2011 2:04:56 AM] Samuel Williams: ok, small problem.. [4/12/2011 2:05:04 AM] Chris Eykamp: yes, thought it would be a small fix [4/12/2011 2:05:34 AM] Chris Eykamp: and it was, but just not a good one. found a few other small bugs though, so not a total waste [4/12/2011 2:10:45 AM] Chris Eykamp: actually, another fix I made in the editor a few days ago makes that probelm less severe [4/12/2011 2:10:54 AM] Chris Eykamp: c'est la vie [4/12/2011 2:11:37 AM] Samuel Williams: i am going to bed, bye [4/12/2011 2:12:16 AM] Chris Eykamp: me too... good night [4/12/2011 11:05:31 AM] buckyballreaction: good catch sam! [4/12/2011 11:05:32 AM] buckyballreaction: thanks [4/12/2011 11:50:27 AM] buckyballreaction: so i made the chat text font-size 12, as opposed to 14 for server messages [4/12/2011 11:50:57 AM] buckyballreaction: i'm also thinking about moving up the load-out and voice menus a bit so i can put the chat box on the bottom [4/12/2011 11:51:21 AM] buckyballreaction: discussions with heavy-gaming co-workers yield that that's the convention [4/12/2011 12:04:29 PM] Chris Eykamp: do it [4/12/2011 12:04:58 PM] Chris Eykamp: also, loadout menu and chat box need not be active at the same time [4/12/2011 12:06:01 PM] buckyballreaction: the voice menu will overlap the chat messages if there are more than 2 on the screen [4/12/2011 12:06:40 PM] buckyballreaction: so i was just htinking of moving it vertically just enough to allow the base 5 chat messages [4/12/2011 12:07:02 PM] buckyballreaction: (or whatever number makes sense) [4/12/2011 3:43:04 PM] buckyballreaction: ok done [4/12/2011 3:43:08 PM] buckyballreaction: and pushed :) [4/12/2011 3:43:44 PM] Chris Eykamp: do you like it? [4/12/2011 3:43:57 PM] buckyballreaction: i think it's good [4/12/2011 3:44:06 PM] buckyballreaction: the font may be a bit small, though... [4/12/2011 3:44:24 PM] buckyballreaction: let me get you a screen shot to compare; 1:1 pixel res [4/12/2011 3:46:54 PM] buckyballreaction: http://96.2.123.136/upload/111snapshot24.png [4/12/2011 3:47:52 PM] buckyballreaction: and another: http://96.2.123.136/upload/1snapshot25.png [4/12/2011 3:53:03 PM] buckyballreaction: argh found a bug: http://96.2.123.136/upload/1snapshot26.png [4/12/2011 3:55:00 PM] Chris Eykamp: the quick chat menu could be larger, depending on how people have it configured [4/12/2011 3:55:13 PM] karamazovapy: as long as you're wrestling with chat, can you enable multi-line messages for F5/lobby chat? [4/12/2011 3:55:32 PM] buckyballreaction: that was the largest quick chat menu [4/12/2011 3:55:35 PM] Chris Eykamp: I think we need to be able to deal with an overlap between those overlya menus and the chat messages [4/12/2011 3:55:41 PM] Chris Eykamp: right, but you can customize it [4/12/2011 3:55:50 PM] buckyballreaction: oh really? [4/12/2011 3:55:54 PM] karamazovapy: yeah, in the ini you can make your own messages [4/12/2011 3:55:55 PM] Chris Eykamp: yeah, in the INI file [4/12/2011 3:56:02 PM] karamazovapy: highly useful [4/12/2011 3:56:18 PM] karamazovapy: especially for controller jocks [4/12/2011 3:56:25 PM] buckyballreaction: ah.. neat [4/12/2011 3:56:29 PM] buckyballreaction: i didn't know [4/12/2011 3:56:40 PM] karamazovapy: people rarely use it intentionally [4/12/2011 3:57:03 PM] buckyballreaction: so you're saying that the answer is not to move the helper menus up, but rather deal with the overlap better? [4/12/2011 3:57:23 PM] karamazovapy: I think that's the take home message [4/12/2011 3:58:06 PM] buckyballreaction: i have an idea... [4/12/2011 3:58:30 PM] buckyballreaction: detect if there is a helper menu, and fade/dim the chat text [4/12/2011 3:59:21 PM] buckyballreaction: _k, multi-line messaging? was that ever there before? [4/12/2011 3:59:42 PM] karamazovapy: nope, it's just frustrating to have such a low message length limit [4/12/2011 4:02:41 PM] karamazovapy: I was telling footloose how to host a dedicated server using lobby chat, and I had to break the command line into three messages [4/12/2011 4:04:06 PM] buckyballreaction: yikes [4/12/2011 4:04:09 PM] buckyballreaction: that stinks [4/12/2011 4:04:33 PM] karamazovapy: I got the message across, it just seemed silly [4/12/2011 4:08:34 PM] buckyballreaction: how to fade text to transparent? use alpha? [4/12/2011 4:15:39 PM] Chris Eykamp: yes [4/12/2011 4:15:54 PM] Chris Eykamp: you want to make the text dimmer or partially transparent? [4/12/2011 4:16:19 PM] Chris Eykamp: and when you say fade, you don't mean a gradient, right? [4/12/2011 4:40:00 PM] buckyballreaction: partially transparent sounds good [4/12/2011 4:40:12 PM] buckyballreaction: i use alpha of 0.5 and that didn't seem to do much [4/12/2011 4:43:09 PM] Chris Eykamp: you need to enable blending [4/12/2011 4:43:16 PM] Chris Eykamp: took me about a week to figure that out [4/12/2011 4:43:24 PM] buckyballreaction: any pointers to save me a week? :) [4/12/2011 4:47:46 PM] Chris Eykamp: [Tuesday, April 12, 2011 4:42 PM] Chris Eykamp: <<< you need to enable blending [4/12/2011 4:47:57 PM] Chris Eykamp: see above [4/12/2011 4:48:09 PM] Chris Eykamp: otherwise transparency does nothing [4/12/2011 4:48:33 PM] Chris Eykamp: glEnableBlend; [4/12/2011 4:48:44 PM] Chris Eykamp: glDisableBlend; [4/12/2011 4:48:58 PM] Chris Eykamp: it's (possibly) expensive, so only use it where you need it [4/12/2011 4:50:23 PM] Chris Eykamp: I actually don't know how bad it is [4/12/2011 5:13:55 PM] buckyballreaction: it works! [4/12/2011 5:14:00 PM] buckyballreaction: doesn't look half bad [4/12/2011 5:54:53 PM] buckyballreaction: http://96.2.123.136/upload/1snapshot27.png [4/12/2011 5:55:48 PM] Chris Eykamp: good... I think the menu should be raised, but you've eliminated the conflict [4/12/2011 5:56:00 PM] buckyballreaction: the menu is back in its original position [4/12/2011 5:56:05 PM] buckyballreaction: want it raised again? [4/12/2011 5:56:10 PM] Chris Eykamp: it is? [4/12/2011 5:56:14 PM] buckyballreaction: yep [4/12/2011 5:56:39 PM] Chris Eykamp: I think higher would be better, don't you? [4/12/2011 5:56:44 PM] buckyballreaction: yup [4/12/2011 5:56:55 PM] Chris Eykamp: maybe slightly above centered? [4/12/2011 5:56:59 PM] buckyballreaction: the top? [4/12/2011 5:57:01 PM] buckyballreaction: yeah [4/12/2011 5:57:16 PM] Chris Eykamp: the whole thing centered vertically, but raised a little [4/12/2011 5:57:29 PM] Chris Eykamp: or maybe just centered? [4/12/2011 5:59:09 PM] buckyballreaction: the menu is defined by distance from top... [4/12/2011 5:59:42 PM] buckyballreaction: this is a little better: http://96.2.123.136/upload/1snapshot28.png [4/12/2011 5:59:55 PM] Chris Eykamp: yes [4/12/2011 6:00:23 PM] buckyballreaction: this is quick chat at that height: http://96.2.123.136/upload/1snapshot29.png [4/12/2011 6:03:21 PM] Chris Eykamp: I think I'd prefer a tad higher (in both cases) but don't feel strongly. this is better than before [4/12/2011 6:07:04 PM] Chris Eykamp: hell, I probably wouldn't even think about it if we weren't thinking about it [4/12/2011 6:08:39 PM] buckyballreaction: http://96.2.123.136/upload/snapshot30.png [4/12/2011 6:08:45 PM] buckyballreaction: http://96.2.123.136/upload/snapshot31.png [4/12/2011 6:09:06 PM] Chris Eykamp: perfect! [4/12/2011 6:09:14 PM] Chris Eykamp: any chances of collisions with messages above? [4/12/2011 6:09:32 PM] buckyballreaction: none [4/12/2011 6:09:56 PM] Chris Eykamp: Do we want to fade those msgs anwya, for consistency (if we're fading the msgs below)? [4/12/2011 6:10:18 PM] buckyballreaction: let me see.. [4/12/2011 6:11:12 PM] Samuel Williams: in quick chat message group, ini file you can have MessageType=commandm useful for addbot or any other commands http://96.2.123.136/bitfighter/bitfighter-20110412-1802246.png [4/12/2011 6:11:44 PM] Samuel Williams: and thats the /yes /no voting command in quick menu. [4/12/2011 6:11:54 PM] Samuel Williams: all set in INI file [4/12/2011 6:12:09 PM] buckyballreaction: http://96.2.123.136/upload/snapshot32.png [4/12/2011 6:13:09 PM] Samuel Williams: maybe only fade the overlapping text, and not all text? [4/12/2011 6:13:54 PM] Samuel Williams: maybe quick chat can have a black solid semi-transparent box. [4/12/2011 6:14:15 PM] buckyballreaction: that would require that the chat render method be aware of the size of the helper menu render method [4/12/2011 6:16:47 PM] Samuel Williams: did you get the chat position wrong? i can't see any chat text at all.. [4/12/2011 6:17:23 PM] buckyballreaction: that last graphic fades all messages [4/12/2011 6:19:46 PM] Samuel Williams: UserInterface::chatMessageMargin = -85, in renderChatMessageDisplay, y=-85, that what my debugger says. [4/12/2011 6:20:05 PM] buckyballreaction: i haven't committed these changes yet... [4/12/2011 6:20:34 PM] buckyballreaction: I was first wondering if you like the fading of the server messages at the top, too? [4/12/2011 6:26:43 PM] Samuel Williams: I have a fix for my problem, probably bacause of static variable gets initalized first, then game canvas can initalize to make getGameCanvasHeight work. S32 UserInterface::chatMessageMargin = 600 - 85; // gScreenInfo.getGameCanvasHeight() doesn't work [4/12/2011 6:27:34 PM] buckyballreaction: ok, i'll hard code it [4/12/2011 6:31:16 PM] buckyballreaction: ok pushed changes with fading of chat messages [4/12/2011 6:31:25 PM] buckyballreaction: didn't push change with fading of server message... [4/12/2011 6:31:51 PM] buckyballreaction: because I'm not sure how I feel about it yet [4/12/2011 6:54:12 PM] Chris Eykamp: I'm not sure I love it either. [4/12/2011 6:54:38 PM] Chris Eykamp: I like the idea of a translucent tile on which the menu would sit; maybe that could be a future refactor? [4/12/2011 6:55:21 PM] buckyballreaction: a tile that fades everything behind it only? [4/12/2011 6:55:29 PM] Chris Eykamp: yes [4/12/2011 6:55:49 PM] Chris Eykamp: sort of what Sam suggested [4/12/2011 6:55:53 PM] buckyballreaction: how would you get everything else to fade? [4/12/2011 6:56:09 PM] buckyballreaction: or is it simpler... [4/12/2011 6:56:11 PM] Chris Eykamp: you would figure out the size the menu would be, then draw a partially transparent black box [4/12/2011 6:56:17 PM] Chris Eykamp: then draw the menu [4/12/2011 6:56:23 PM] buckyballreaction: ahhh... [4/12/2011 6:56:28 PM] buckyballreaction: that doesn't seem so hard [4/12/2011 6:56:33 PM] Chris Eykamp: probably not [4/12/2011 6:57:36 PM] Chris Eykamp: but... before you dig into that, if we didn't provide a border, it might look weird that walls or such were dimmed when they were near the menu, as things can be very different lengths in the quick chat menu [4/12/2011 6:59:48 PM] buckyballreaction: i thought we'd just do the hieght/width calculations first then add the tile before the text [4/12/2011 7:00:37 PM] buckyballreaction: calculate in the render method that way the tile would change size with the text [4/12/2011 7:01:07 PM] Chris Eykamp: yes, I just mean that if your text looks like this: XXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXX XXX XXX XXX [4/12/2011 7:01:32 PM] Chris Eykamp: then the area below the long X row will be dimmed, and it might look odd if there were no border to clarify where the edge of the "tile" was [4/12/2011 7:01:46 PM] buckyballreaction: i get it now [4/12/2011 7:01:48 PM] Chris Eykamp: maybe drawing a gray rectabgle around the bounds of the fadded area? [4/12/2011 7:02:00 PM] Chris Eykamp: just something to suggest an edge? [4/12/2011 7:02:04 PM] buckyballreaction: yeah that would nicer [4/12/2011 7:02:29 PM] Chris Eykamp: sort of what I was getting at with the fading lines [4/12/2011 7:03:13 PM] buckyballreaction: ok going home... [4/12/2011 7:06:36 PM] Chris Eykamp: later! [4/12/2011 7:20:14 PM] Chris Eykamp: home fast [4/12/2011 7:20:20 PM] buckyballreaction: yep [4/12/2011 7:20:26 PM] buckyballreaction: 2.5 miles [4/12/2011 7:20:58 PM] buckyballreaction: talk about less stress - i never want to work 20 miles away from home again [4/12/2011 7:22:29 PM] Chris Eykamp: no kidding [4/12/2011 7:22:39 PM] Chris Eykamp: you could bike that distance, if the roads are any good [4/12/2011 7:23:15 PM] buckyballreaction: i want to badly - but the roads have no shoulder and there are no sidewalks [4/12/2011 7:23:26 PM] buckyballreaction: and its high traffic [4/12/2011 7:23:41 PM] Chris Eykamp: I <3 utah! [4/12/2011 7:23:43 PM] buckyballreaction: haha [4/12/2011 7:23:49 PM] buckyballreaction: drives me crazy [4/12/2011 7:23:58 PM] Chris Eykamp: no distance too short to drive [4/12/2011 7:24:05 PM] buckyballreaction: hehehe [4/12/2011 7:24:14 PM] Chris Eykamp: the weather is generally conducive as well [4/12/2011 7:24:36 PM] buckyballreaction: our last snow was on sunday [4/12/2011 7:24:46 PM] buckyballreaction: i'm hopeing it's the last last snow [4/12/2011 7:27:51 PM] Chris Eykamp: me too so I can stop hearing from my friend about how many days he's skiied this year [4/12/2011 7:29:31 PM] buckyballreaction: haha [4/12/2011 7:34:24 PM] buckyballreaction: how would I get the text to not exceed the bounds of the chat box? [4/12/2011 7:34:40 PM] buckyballreaction: I can't seem to find it.. [4/12/2011 7:35:38 PM] buckyballreaction: or at least figure it out [4/12/2011 7:37:47 PM] Samuel Williams: make text smaller? [4/12/2011 7:37:54 PM] buckyballreaction: did that :) [4/12/2011 7:38:16 PM] buckyballreaction: i think before since the box extended to the edge of the screen, it just did render anymore [4/12/2011 7:38:30 PM] buckyballreaction: now, since it doesn't, I need to put a cap or something... [4/12/2011 7:41:28 PM | Edited 7:41:34 PM] Samuel Williams: http://96.2.123.136/bitfighter/zap_d-20110412-1940379.png (chat box overlap "Nexus opens:") [4/12/2011 7:42:13 PM] buckyballreaction: rats [4/12/2011 7:42:40 PM] buckyballreaction: i guess i can make it shorter... [4/12/2011 7:43:28 PM] Samuel Williams: non-team non-nexus will have nothing in the way. [4/12/2011 7:44:15 PM] buckyballreaction: but i should build in some sort of wrap [4/12/2011 7:47:13 PM] buckyballreaction: it's funny - the max_chat_length is 2048 [4/12/2011 7:47:56 PM] Samuel Williams: AbstractChat::addCharToMessage // Only add char if there's room [4/12/2011 7:48:46 PM] Samuel Williams: W have bigger width then i [4/12/2011 7:49:09 PM] buckyballreaction: good find [4/12/2011 7:49:12 PM] Samuel Williams: unless it is fixed-width font.. [4/12/2011 7:49:33 PM] buckyballreaction: i wish it was fixed width [4/12/2011 7:49:36 PM] buckyballreaction: makes it simpler [4/12/2011 9:38:02 PM] buckyballreaction: _k, i am trying my hardest to get multi-line chat working... [4/12/2011 9:43:56 PM] karamazovapy: it would be nice, but don't kill yourself over it [4/12/2011 9:44:03 PM] karamazovapy: we've gotten along so far [4/12/2011 9:44:43 PM] buckyballreaction: well, i need to figure it out so I can allow better in-game communication too - the chat box is a bit smaller now, and it needs to dynamically adjust somehow [4/12/2011 9:51:31 PM] Samuel Williams: Black border around text? http://96.2.123.136/bitfighter/zap_d-20110412-2149339.png My way of drawing black text with big width lines, then draw green text with thin, small width lines don't look good. [4/12/2011 9:53:26 PM] karamazovapy: ew [4/12/2011 9:53:32 PM] buckyballreaction: hehe [4/12/2011 10:25:07 PM] Samuel Williams: How about this: http://96.2.123.136/bitfighter/zap_d-20110412-2224074.png darker behind text to make it more readable. [4/12/2011 10:29:11 PM] karamazovapy: a single rectangle might make more sense visually [4/12/2011 10:32:46 PM] Samuel Williams: this? http://96.2.123.136/bitfighter/zap_d-20110412-2232146.png [4/12/2011 10:39:23 PM] Samuel Williams: This? http://96.2.123.136/bitfighter/zap_d-20110412-2238514.png Fades out. [4/12/2011 10:42:21 PM] karamazovapy: yeah, it seems a bit weird to box that extended spy bug message, but I'm not sure what's best [4/12/2011 11:08:50 PM] karamazovapy: I wonder if we could get in on a future humble bundle [4/12/2011 11:08:51 PM] karamazovapy: http://www.humblebundle.com/ [4/13/2011 12:21:44 AM] buckyballreaction: ok, i've got typing in lots of letters working nicely in all chats [4/13/2011 12:21:57 AM] buckyballreaction: i just need to display them multi-line now [4/13/2011 12:37:03 AM] buckyballreaction: ugh, this GUI stuff drives me crazy [4/13/2011 12:43:49 AM] buckyballreaction: sam, I pushed what I have so far [4/13/2011 12:44:08 AM] buckyballreaction: I still need to display long messages on multiple lines somehow... [4/13/2011 12:44:15 AM] buckyballreaction: but you can type in long messages now :) [4/13/2011 1:26:26 AM | Edited 1:27:01 AM] Chris Eykamp: messages were limited at the sender side by the length of the line - length of your user name [4/13/2011 1:26:45 AM] Chris Eykamp: receiver just displayed what it got [4/13/2011 1:28:48 AM] buckyballreaction: yes [4/13/2011 1:28:51 AM] buckyballreaction: not anymore [4/13/2011 1:30:57 AM] Samuel Williams: As for compatibility with old clients.. Chat lines too long will go off screen. [4/13/2011 1:31:06 AM] buckyballreaction: exactly [4/13/2011 1:31:12 AM] buckyballreaction: that is what I am trying to solve [4/13/2011 1:31:16 AM] buckyballreaction: no [4/13/2011 1:31:21 AM] buckyballreaction: not for old clients [4/13/2011 1:31:25 AM] buckyballreaction: too bad for them :) [4/13/2011 1:40:19 AM] buckyballreaction: ok, my brain is shutting down [4/13/2011 1:40:21 AM] buckyballreaction: good night! [4/13/2011 1:49:25 AM] Chris Eykamp: night [4/13/2011 11:35:07 AM] buckyballreaction: good morning! [4/13/2011 11:35:26 AM] buckyballreaction: anyone have a chance to test out my new chat improvements? [4/13/2011 11:48:01 AM] karamazovapy: not I, said the pig [4/13/2011 1:56:56 PM] buckyballreaction: i need to come up with an effecient and simple word-wrap algorithm... [4/13/2011 2:08:59 PM] Chris Eykamp: go word by word adding the length of each word until you've exceeded a line? [4/13/2011 2:09:15 PM] buckyballreaction: yes... [4/13/2011 2:09:33 PM] buckyballreaction: now i need a word-splitting algo that takes multiple characters [4/13/2011 2:14:34 PM] Chris Eykamp: "that takes multiple characters"? [4/13/2011 2:14:57 PM] buckyballreaction: in other words, can wrap at a space, or comma, or tab, or dash, etc. [4/13/2011 2:15:24 PM] Chris Eykamp: oh... that :) [4/13/2011 2:15:34 PM] Chris Eykamp: no tab [4/13/2011 2:15:39 PM] buckyballreaction: no tab, right [4/13/2011 2:16:20 PM] buckyballreaction: i guess maybe i only need worry about space - that would make it simpler [4/13/2011 2:16:38 PM] Chris Eykamp: yes [4/13/2011 2:54:57 PM] buckyballreaction: tada! : http://96.2.123.136/upload/snapshot33.png [4/13/2011 2:57:09 PM] Chris Eykamp: great! [4/13/2011 2:57:27 PM] Chris Eykamp: really great! [4/13/2011 3:02:18 PM] karamazovapy: nice work! [4/13/2011 3:02:42 PM] karamazovapy: I don't think people will need to multi-line very often, but it will be nice to be able to [4/13/2011 3:03:15 PM] Chris Eykamp: +2 [4/13/2011 3:03:27 PM] Chris Eykamp: that's my answer to the new +1 button [4/13/2011 3:03:33 PM] buckyballreaction: hehe [4/13/2011 3:03:37 PM] buckyballreaction: scroogle [4/13/2011 3:03:42 PM] Chris Eykamp: and yes, it is patentded [4/13/2011 3:04:09 PM] karamazovapy: twice as emphatic! [4/13/2011 3:04:50 PM] karamazovapy: a buddy and I attended a speed dating event last night. I got the girl he wanted [4/13/2011 3:05:02 PM] buckyballreaction: how many minutes? [4/13/2011 3:05:13 PM] karamazovapy: I think it was supposed to be 6 minutes per person, but the time seemed to go by faster than that [4/13/2011 3:06:19 PM] buckyballreaction: I only every did an activity like that once - when I was a teenages at some group-get-to-know-you event [4/13/2011 3:07:41 PM] karamazovapy: I did it once before, but when I retold the stories from it, this buddy insisted we had to go back [4/13/2011 6:44:59 PM] buckyballreaction: okey just a few glitches to work out with multi-line text, then I can see about doing it in-game... [4/13/2011 6:59:08 PM] buckyballreaction: my problem: the renderMessages() method takes in a number of messages to display; but, if some are multiline, then the display will over flow [4/13/2011 7:00:10 PM] karamazovapy: not sure if we need multi-line in game [4/13/2011 7:00:17 PM] karamazovapy: things seem to move pretty quickly there [4/13/2011 7:00:28 PM] buckyballreaction: very true [4/13/2011 7:00:45 PM] buckyballreaction: but once i have one done, the other is relatively simple to implement.. [4/13/2011 7:00:53 PM] karamazovapy: true enough [4/13/2011 7:00:57 PM] buckyballreaction: so my problems are with the lobby still.. [4/13/2011 7:01:57 PM] buckyballreaction: it is a set 16 messages that are displayed in the lobby. I have to figure out a way to make that dynamic based on the line count of each method [4/13/2011 7:05:49 PM] Chris Eykamp: why? [4/13/2011 7:06:01 PM] Chris Eykamp: why not decide how many to display as you're rendering? [4/13/2011 7:06:09 PM] Chris Eykamp: you render until you run out of room [4/13/2011 7:06:09 PM] buckyballreaction: or that [4/13/2011 7:06:16 PM] Chris Eykamp: seems easier :) [4/13/2011 7:06:40 PM] buckyballreaction: yes, that is what I am trying to implement, actually - i was just wondering if anyone had any other ideas [4/13/2011 7:07:56 PM] karamazovapy: is there a way to count lines instead of messages? [4/13/2011 7:08:18 PM] buckyballreaction: at the end of each message, I keep a running total [4/13/2011 7:08:18 PM] karamazovapy: or maybe store each new line as a message? [4/13/2011 7:08:40 PM] buckyballreaction: i think i am just partially brain-dead at the moment and the logic eludes me a bit.. [4/13/2011 7:08:53 PM] karamazovapy: well you're ahead of me either way [4/13/2011 7:53:34 PM] buckyballreaction: _k, how do you load bots for your server? [4/13/2011 7:53:58 PM] buckyballreaction: in the level files? [4/13/2011 8:01:19 PM] Samuel Williams: level files, Robot [team] [robot file] [extra params] and /addbot [team] [robot file] [ectra params] Both use same parameters. [4/13/2011 8:39:05 PM] karamazovapy: I use Robot [team] [robot file] [4/13/2011 8:40:13 PM] karamazovapy: although as a bit of skullduggery, I also run a levelgen script that randomly selects and adds bots to each team, to keep things fresh [4/13/2011 8:41:15 PM] buckyballreaction: ok cool [4/13/2011 8:41:30 PM] karamazovapy: is that the aspect you were curious about? [4/13/2011 8:41:35 PM] buckyballreaction: yes [4/13/2011 8:42:13 PM] karamazovapy: I thought it might get boring to always get stuck with the same bots time after time, and I was curious about whether certain combinations might give you an advantage on certain levels [4/13/2011 8:42:56 PM] karamazovapy: the script also determines whether the bots get proper names or nicknames ivan/vanya, dmitri/mitya, alexei/alyosha [4/13/2011 8:43:43 PM] buckyballreaction: cool [4/13/2011 8:45:00 PM] karamazovapy: it just occurred to me that I should probably just use one bot file and adjust all the karamazov-specific qualities with parameters, but for the time being each brother gets his own file [4/13/2011 8:45:55 PM] karamazovapy: the loadout and weapon code involved the most tweaking [4/13/2011 8:46:34 PM] buckyballreaction: i just know one of them is an evil triple cloaker [4/13/2011 8:46:44 PM] karamazovapy: yes, that would be ivan [4/13/2011 8:47:09 PM] karamazovapy: he cloaks from the time he detects you to the time he has a firing solution [4/13/2011 8:47:40 PM] karamazovapy: very sneaky sometimes [4/13/2011 8:47:50 PM] karamazovapy: moderate aggression and defense [4/13/2011 8:48:16 PM] karamazovapy: dmitri is more aggressive, less defensive, uses bouncers recklessly, and strobes turbo boost to chase people down [4/13/2011 8:48:49 PM] karamazovapy: alexei is the most defensive, orbits flags tightly, and uses repair and shield pretty heavily [4/13/2011 8:48:49 PM] buckyballreaction: ah... he's the bouncer one [4/13/2011 8:49:19 PM] karamazovapy: yeah, they have energy-remaining-based instructions on when to stop using their specials [4/13/2011 11:39:35 PM] buckyballreaction: it works!!! [4/13/2011 11:39:51 PM] buckyballreaction: i had to re-engineer the whole renderMessages() method, but it works! [4/13/2011 11:53:31 PM] buckyballreaction: pushed! [4/13/2011 11:53:36 PM] buckyballreaction: multi-line working in lobby now [4/13/2011 11:59:29 PM] Chris Eykamp: please don't make any editor changes [4/13/2011 11:59:37 PM] buckyballreaction: okey doke [4/13/2011 11:59:46 PM] buckyballreaction: i have only touch UIChat/UIGame [4/14/2011 12:00:07 AM] Samuel Williams: my line breaking stuff is only editing UIChat.cpp. [4/14/2011 12:00:28 AM] Chris Eykamp: good [4/14/2011 12:00:35 AM] Chris Eykamp: I'm in middle of a HUGE refactor [4/14/2011 12:00:46 AM] buckyballreaction: so that's what you've been up to... [4/14/2011 12:01:30 AM] Chris Eykamp: mostly I've been up to falling asleep :( [4/14/2011 12:01:54 AM] Chris Eykamp: trying to better integrate it with the game itself; use the same methods and objects [4/14/2011 12:02:11 AM] Chris Eykamp: though I'm mostly trying to stop it from being broken [4/14/2011 12:02:28 AM] buckyballreaction: i didn't think it was broken anymore after the last changes... [4/14/2011 12:03:47 AM] Chris Eykamp: maybe not after your last changes [4/14/2011 12:03:54 AM] Chris Eykamp: It's completely broken now [4/14/2011 12:03:59 AM] Chris Eykamp: won't compile at all [4/14/2011 12:04:04 AM] Chris Eykamp: 76 erroirs [4/14/2011 12:04:11 AM] buckyballreaction: wow [4/14/2011 12:04:19 AM] Chris Eykamp: it's doing better thought [4/14/2011 12:04:19 AM] buckyballreaction: sounds like quite the refactor, then... [4/14/2011 12:49:48 AM] buckyballreaction: ok, done responding to my dad's chain mail.... [4/14/2011 12:49:55 AM] buckyballreaction: can I help with anything? [4/14/2011 12:59:44 AM] Chris Eykamp: scan through the open cases and see if any are doable and interesting [4/14/2011 1:00:13 AM] buckyballreaction: you feel like you might be stuck with the editor for a little while? [4/14/2011 1:00:15 AM] buckyballreaction: :) [4/14/2011 1:00:22 AM] Chris Eykamp: oh yes [4/14/2011 1:00:26 AM] Chris Eykamp: this is a big change [4/14/2011 1:00:40 AM] Chris Eykamp: which will yield exactly no changes in functionality if done right ;) [4/14/2011 1:00:59 AM] buckyballreaction: will maintainability increase? [4/14/2011 1:01:01 AM] Chris Eykamp: flipping back and forth with my taxes [4/14/2011 1:01:04 AM] Chris Eykamp: I hope so [4/14/2011 1:01:20 AM] buckyballreaction: taxes! [4/14/2011 1:07:09 AM] buckyballreaction: as you redo the editor, are you going to remove bot zones? [4/14/2011 1:14:39 AM] buckyballreaction: good night [4/14/2011 1:18:44 AM] Samuel Williams: ok, got my own way of multi line working.. [4/14/2011 1:18:50 AM] Samuel Williams: in game lobby [4/14/2011 1:19:09 AM] Chris Eykamp: [Thursday, April 14, 2011 1:06 AM] buckyballreaction: <<< as you redo the editor, are you going to remove bot zones?not yet [4/14/2011 10:13:55 AM] buckyballreaction: morning [4/14/2011 10:19:23 AM] buckyballreaction: wow sam, I am impressed with your multi-line function [4/14/2011 10:19:34 AM] buckyballreaction: much smarter than mine [4/14/2011 10:20:33 AM] buckyballreaction: I noticed two things: 1. text always starts at bottom 2. the alignBottom flag seems broken when changed [4/14/2011 10:27:29 AM] buckyballreaction: also, what is the number '32' doing in your split function? [4/14/2011 10:28:07 AM] buckyballreaction: is that a hard-coded character limit on words that are too long? [4/14/2011 12:11:50 PM] buckyballreaction: wait, duh - 32 is the ascii character code for a space [4/14/2011 12:12:18 PM] Chris Eykamp: in may localities, yes [4/14/2011 12:12:38 PM] Chris Eykamp: but should 32 be replaced with ' ' if that's what it represents? [4/14/2011 12:12:51 PM] Chris Eykamp: so as to avoid confusion? [4/14/2011 12:13:03 PM] Chris Eykamp: in C++, ' ' == 32 [4/14/2011 12:13:04 PM] buckyballreaction: i think so [4/14/2011 12:13:32 PM] buckyballreaction: i am trying to reverse engineer sam's multi-line method and see if his best features can be merged with mine somehow... [4/14/2011 12:13:39 PM] Chris Eykamp: :) [4/14/2011 12:13:49 PM] Chris Eykamp: I got the editor to compile and not crash last night! [4/14/2011 12:13:58 PM] Chris Eykamp: but now it's all really weird [4/14/2011 12:13:59 PM] buckyballreaction: hooray! [4/14/2011 12:14:05 PM] buckyballreaction: weird? [4/14/2011 12:14:08 PM] Chris Eykamp: dock items getting bigger and smaller [4/14/2011 12:14:22 PM] Chris Eykamp: things rendering wrong [4/14/2011 12:14:28 PM] Chris Eykamp: all kinds of off [4/14/2011 12:14:44 PM] Chris Eykamp: and parts of the code are REALLY ugly [4/14/2011 12:14:45 PM] buckyballreaction: can you still edit a level file well enough? [4/14/2011 12:14:49 PM] Chris Eykamp: no [4/14/2011 12:15:02 PM] Chris Eykamp: I'll get it fixed up though [4/14/2011 12:15:13 PM] Chris Eykamp: I created a new object -- the EditorGame [4/14/2011 12:15:57 PM] buckyballreaction: akin to ClientGame? [4/14/2011 12:16:02 PM] Chris Eykamp: now sits yes [4/14/2011 12:18:32 PM] Chris Eykamp: so we have ClientGame ServerGame and EditorGame [4/14/2011 12:19:18 PM] Chris Eykamp: objects get things like gridSize from the game object, so if we are unifying the objects, those in the editor need a game [4/14/2011 12:19:22 PM] Chris Eykamp: seems a little weird [4/14/2011 12:19:25 PM] Chris Eykamp: but should work [4/14/2011 12:19:45 PM] Chris Eykamp: though 99% of functionality is not needed [4/14/2011 12:20:01 PM] buckyballreaction: before, ServerGame was used? [4/14/2011 12:20:22 PM] buckyballreaction: when you launch a level from the editor, i mean? [4/14/2011 12:20:22 PM] Chris Eykamp: nothing was used. the objects in the editor were completely independent from those in the rest of the code [4/14/2011 12:20:31 PM] buckyballreaction: ahhhhh [4/14/2011 12:20:33 PM] Chris Eykamp: once you launch, a regular game starts up [4/14/2011 12:20:37 PM] buckyballreaction: that's why the class was so huge [4/14/2011 12:20:47 PM] Chris Eykamp: and is actually loaded from a temp file written by the editor [4/14/2011 12:21:22 PM] Chris Eykamp: my main motivation was that if we changed the way an object was stored in the level file, adding a param, for example, I was tired of modifying teh code in two places [4/14/2011 12:21:37 PM] buckyballreaction: that is good motivation [4/14/2011 12:21:44 PM] Chris Eykamp: so I wanted to get the reading functions aligned, and that requires a huge overhaul of everything else [4/14/2011 12:22:25 PM] Chris Eykamp: but it will be better going forward. when we add a new object type, it will have editor support built in. [4/14/2011 12:22:33 PM] buckyballreaction: excellent [4/14/2011 12:22:43 PM] Chris Eykamp: I hope [4/14/2011 2:01:05 PM] buckyballreaction: so this is sam's multi-line output: http://96.2.123.136/upload/snapshot34.png [4/14/2011 2:01:22 PM] buckyballreaction: he gets arond the scrolling text issue by rendering starting at the bottom [4/14/2011 2:01:42 PM] buckyballreaction: his algorithm for splitting text is much smarter than mine [4/14/2011 2:02:07 PM] buckyballreaction: but mine renders at the top until it can't anymore, then continues at the bottom [4/14/2011 2:02:46 PM] Chris Eykamp: there's precedent for top-to-bottom and bottom-to-top [4/14/2011 2:02:57 PM] Chris Eykamp: though I like top-to-bottom a bit better [4/14/2011 2:03:32 PM] buckyballreaction: i am trying to see if I can merge his word splitting algo with my top to bottom piece... [4/14/2011 2:03:34 PM] Chris Eykamp: messages aer ordered the same either way? [4/14/2011 2:03:43 PM] buckyballreaction: yes [4/14/2011 2:04:13 PM] Chris Eykamp: can you use his algo to split into an array of strings, look at its size, then start rendering? [4/14/2011 2:04:40 PM] buckyballreaction: that's what both of ours do [4/14/2011 2:04:58 PM] Chris Eykamp: ok, then why is top-down harder? [4/14/2011 2:05:00 PM] buckyballreaction: well, techincally he does his character my character and mine create strings of words [4/14/2011 2:05:23 PM] buckyballreaction: top-down is harder because when you get to the bottom you have to decide what to do with the top [4/14/2011 2:05:27 PM] Chris Eykamp: I meant an array of lines [4/14/2011 2:05:42 PM] Chris Eykamp: so you have your lines... I have 12 but room for 8, I'l start with row 4 [4/14/2011 2:05:58 PM] buckyballreaction: yes that is what his does [4/14/2011 2:06:32 PM] Chris Eykamp: ok, I don't really understand the problem, but then I'm not sure it would help anyone if i did :) [4/14/2011 2:07:00 PM] buckyballreaction: the problem is with the rendering loop: he loops backwards until there is no more space [4/14/2011 2:07:06 PM] buckyballreaction: bottom up [4/14/2011 2:07:28 PM] buckyballreaction: I loop forwards [4/14/2011 2:07:42 PM] Chris Eykamp: ah, you should be able to retrofit his without too much trouble [4/14/2011 2:07:50 PM] buckyballreaction: i think so... [4/14/2011 7:14:07 PM] Samuel Williams: [Thursday, April 14, 2011 2:01 PM] buckyballreaction: <<< so this is sam's multi-line output: http://96.2.123.136/upload/snapshot34.pngI have just fix that problem of my multi-line (pushed my changes), game lobby chat should now start rendering starting at the top. http://96.2.123.136/bitfighter/zap_d-20110414-1912591.png [4/14/2011 7:28:12 PM] Chris Eykamp: I have a class hiearchy issue [4/14/2011 7:28:43 PM] Chris Eykamp: Take the teleporter class, I'll call it Tel [4/14/2011 7:28:59 PM] Chris Eykamp: Tel inherits from GameObject, which is the basic game object class [4/14/2011 7:29:05 PM] Chris Eykamp: I've created EditorObject [4/14/2011 7:29:14 PM] Chris Eykamp: and I want Tel to inherit from that as well [4/14/2011 7:29:19 PM] Chris Eykamp: but [4/14/2011 7:29:51 PM] Chris Eykamp: GameObject inherits from DatabaseObject, to get the database functionalty [4/14/2011 7:29:59 PM] Chris Eykamp: I want EO to have that functionality as well [4/14/2011 7:30:39 PM] Chris Eykamp: so I created XObject (to be renamed) that has the things that GameObjects and EditorObjects share, like a team, and database functions [4/14/2011 7:31:26 PM] Chris Eykamp: so the end result is that Tel ends up inheriting DatabaseObject twice, once via GameObject, once via EditorObject [4/14/2011 7:31:31 PM] Chris Eykamp: and that causes problems [4/14/2011 7:32:01 PM] Chris Eykamp: forgot to mention that xobject inhertis from databaseObject to provide that functionatliy to both EO and GO [4/14/2011 7:32:20 PM] Chris Eykamp: so... that's my problem [4/14/2011 7:33:05 PM] Chris Eykamp: DO->XO->GO->Tel<-EO<-XO<-DO [4/14/2011 10:31:21 PM] buckyballreaction: pidgin [4/14/2011 10:31:25 PM] buckyballreaction: oops [4/14/2011 10:31:28 PM] Chris Eykamp: only 575 errors [4/14/2011 10:31:55 PM] Chris Eykamp: no ideas on the object model? [4/14/2011 10:32:07 PM] buckyballreaction: hi, just got home [4/14/2011 10:32:29 PM] Chris Eykamp: what?!??!? WHERE HAVE YOU BEEN??? [4/14/2011 10:32:57 PM] buckyballreaction: lots and lots of errands... since 6 or so my time [4/14/2011 10:33:43 PM] buckyballreaction: hooray sam!! [4/14/2011 10:33:54 PM] Samuel Williams: good. [4/14/2011 10:34:07 PM] buckyballreaction: ok object hierarchy.. [4/14/2011 10:34:13 PM] buckyballreaction: let me read what you said.. [4/14/2011 10:38:20 PM] buckyballreaction: hmmm [4/14/2011 10:38:25 PM] buckyballreaction: i see your dilemma [4/14/2011 10:38:48 PM] buckyballreaction: http://en.wikipedia.org/wiki/Diamond_problem [4/14/2011 10:39:34 PM] Chris Eykamp: ah yes... something to search for [4/14/2011 10:40:02 PM] buckyballreaction: what about this line: "If the inheritance from A to B and the inheritance from A to C are both marked "virtual" (for example, "class B : virtual public A"), C++ takes special care to only create one A object, and uses of A's members work correctly" [4/14/2011 10:40:04 PM] Chris Eykamp: though in my case I am not overriding them differently... those methods will be the same as they are on "D" [4/14/2011 10:40:10 PM] Chris Eykamp: (in the wiki diagram) [4/14/2011 10:40:55 PM] Chris Eykamp: sorry A [4/14/2011 10:42:01 PM] buckyballreaction: http://www.cprogramming.com/tutorial/virtual_inheritance.html [4/14/2011 10:46:13 PM] Chris Eykamp: just looking for something on that topic [4/14/2011 10:50:49 PM] Chris Eykamp: I'll try that! [4/14/2011 10:56:44 PM] buckyballreaction: hi sam, i might tidy up your multi-line methods a little and add a little doc, if you don't mind... [4/14/2011 11:35:24 PM] buckyballreaction: sam, what is the purpose of swapping the char indexes like this?: char c = text[cur]; text[cur] = 0; UserInterface::drawString(xpos, ypos, AbstractChat::CHAT_FONT_SIZE, &text[startingChar]); text[cur] = c; [4/14/2011 11:35:59 PM] buckyballreaction: you set the index 'cur' to 0, then back to the original again [4/14/2011 11:36:26 PM | Edited 11:36:36 PM] Samuel Williams: so it will stop drawing text when it hits a zero value char. otherwise it will draw ALL chars.. [4/14/2011 11:37:19 PM] buckyballreaction: so drawString keeps going until it hits the 0 char? [4/14/2011 11:37:27 PM] Samuel Williams: yes [4/14/2011 11:37:42 PM] buckyballreaction: i get it now, thanks [4/14/2011 11:52:03 PM] Chris Eykamp: down to 112 errors! [4/14/2011 11:52:11 PM] buckyballreaction: hooray! [4/14/2011 11:52:23 PM] buckyballreaction: did the virtual thingamajig work? [4/14/2011 11:54:21 PM] Chris Eykamp: yes, mostly [4/14/2011 11:54:29 PM] Samuel Williams: i went to work in RobotController (robot without seperate script). Note that mac projects may need a fix to add "robotController.cpp" [4/14/2011 11:54:34 PM] Chris Eykamp: had to suppress a warning on windows [4/14/2011 11:54:53 PM] Chris Eykamp: Why do we want a bot w/no script? [4/14/2011 11:55:05 PM] Chris Eykamp: It's like a level with no level [4/14/2011 11:55:08 PM] Samuel Williams: using C++ is faster then LUA [4/14/2011 11:55:17 PM] Chris Eykamp: that's true [4/14/2011 11:55:48 PM] Chris Eykamp: but for bots, it seems your energy would be better spent making a better lua bot, rather than a good c++ bot, so others could build on your work [4/14/2011 11:56:05 PM] Samuel Williams: levels and level scripts only loads during initalizing game, so speed don't matter there.. It the robot where speed can hurt performance. [4/14/2011 11:56:54 PM] Chris Eykamp: if there are places where performance is poor, we can code some of the functions in C++, then all bots can build on that [4/14/2011 11:57:35 PM] Chris Eykamp: i don't like the C++ bots because it waters down the knowledge and code [4/14/2011 11:58:06 PM] Chris Eykamp: it would be very similar to having a built in level -- one that no one could improve on [4/14/2011 11:58:33 PM] buckyballreaction: unless you build out a crazy complex bot framework where you can adjust any number of personalities [4/14/2011 11:59:00 PM] buckyballreaction: then people could just supply a config file [4/14/2011 11:59:30 PM] Samuel Williams: i am not that great with LUA programming.. different language then C++ [4/15/2011 12:00:00 AM] buckyballreaction: but the LUA will always allow higher customization with less knowledge required [4/15/2011 12:01:39 AM] Samuel Williams: I could add a LUA function "RunInternalBot" from LUA, and could allows some customizing. [4/15/2011 12:02:15 AM] buckyballreaction: sam, have you every played a FPS (like Unreal Tournament) where you could adjust the bots skills? [4/15/2011 12:02:47 AM | Edited 12:02:53 AM] Samuel Williams: i have played some First Person Shooters that have bots. [4/15/2011 12:03:40 AM] Chris Eykamp: [Thursday, April 14, 2011 11:58 PM] buckyballreaction: <<< unless you build out a crazy complex bot framework where you can adjust any number of personalities then people could just supply a config fileThat's exactly what we've got... just with a very complex config file, written in Lua :) [4/15/2011 12:04:01 AM] buckyballreaction: hehe, too true [4/15/2011 12:05:21 AM] Samuel Williams: Robots needs fixing to avoid crashing into forcefields and sometimes unable to destroy forcefields, mainly getWaypoints is telling robot to cross forcefields. [4/15/2011 12:05:38 AM] Chris Eykamp: the way I envision it, we could have lots of c++ functions, and the lua can just provide the glue between those [4/15/2011 12:05:54 AM] Chris Eykamp: much more navigational stuff could be in c++ [4/15/2011 12:06:52 AM] Chris Eykamp: if our best bots end up in c++, then I think the lua dev will die off, and the bot creation will depend on us [4/15/2011 12:07:33 AM] Chris Eykamp: (the reason I did the Lua stuff in the first place is that I had no idea how to make a bot, and I was hoping that someone else would figure it out... and they did!) [4/15/2011 12:08:59 AM] Samuel Williams: i see that LUA can be easier, but it doesn't have ALL function that C++ have, but some function could be added for LUA to use.. [4/15/2011 12:09:51 AM] buckyballreaction: yeah, i'm all for other people (like _k) coming up with good bots [4/15/2011 12:15:11 AM] Chris Eykamp: if we can identify what we need, we can add it [4/15/2011 12:24:00 AM] buckyballreaction: I think that's a good idea - add the repetitive heavy processing to c++ and allow hook-ins in Lua [4/15/2011 12:25:09 AM] buckyballreaction: AI is something that scripting languages are good at [4/15/2011 12:26:02 AM] Samuel Williams: does this mean i could remove c++ RobotController, and write some more LUA command instead? [4/15/2011 12:27:00 AM] buckyballreaction: I am not sure what you've done with RobotController [4/15/2011 12:27:50 AM | Edited 12:28:00 AM] Samuel Williams: i completely make RobotController myself.. Before today, it only attack nearby enemy and does not move at all. [4/15/2011 12:29:44 AM] Samuel Williams: i could remove RobotController, speeds up C++ compiler. [4/15/2011 12:30:34 AM] buckyballreaction: ahh, i see it now in robot.cpp [4/15/2011 12:32:56 AM] buckyballreaction: not sure - i kinda agree with watusimoto with doing the heavy lifting in c++ but allowing the AI be controlled with Lua [4/15/2011 12:38:33 AM] Samuel Williams: i can remove all "RobotController" that won't do much at all (i can commit and push) Then i can later add LUA functions when needed when writing more LUA bot [4/15/2011 12:38:56 AM] buckyballreaction: i like that idea [4/15/2011 12:39:11 AM] buckyballreaction: are there missing LUA functions right now? [4/15/2011 12:39:35 AM] Samuel Williams: want my to push my removal of RobotController? [4/15/2011 1:06:14 AM] Max h: pulling changes to my clone [4/15/2011 1:06:28 AM] buckyballreaction: wait! [4/15/2011 1:06:34 AM] Max h: waiting [4/15/2011 1:06:34 AM] buckyballreaction: i am about to push a change [4/15/2011 1:06:37 AM] Max h: oh [4/15/2011 1:06:44 AM] Max h: ill just push again :) [4/15/2011 1:06:54 AM] buckyballreaction: ok [4/15/2011 1:08:46 AM] Samuel Williams: when you only say push, do you mean push/pull or push/pop ? [4/15/2011 1:08:55 AM] Max h: yes [4/15/2011 1:09:00 AM] buckyballreaction: ok pushed [4/15/2011 1:09:04 AM] buckyballreaction: i mean hg push/pull [4/15/2011 1:09:20 AM] Max h: got the change [4/15/2011 1:10:08 AM] buckyballreaction: oops [4/15/2011 1:10:14 AM] buckyballreaction: didn't push... sam beat me [4/15/2011 1:10:21 AM] Samuel Williams: did you not push? [4/15/2011 1:10:31 AM] buckyballreaction: have to rebase real quick... [4/15/2011 1:11:03 AM] Samuel Williams: [Friday, April 15, 2011 1:09 AM] Max h: <<< got the changeBasically you got my changes, not bbr's [4/15/2011 1:11:19 AM] buckyballreaction: ok pushed! [4/15/2011 1:11:27 AM] Max h: oooh [4/15/2011 1:11:29 AM] Max h: ok [4/15/2011 1:12:08 AM] Max h: oh yeah, i got the one where you removed robot controller [4/15/2011 1:12:39 AM] Max h: now i have raptors [4/15/2011 1:12:45 AM] buckyballreaction: cool [4/15/2011 1:12:53 AM] buckyballreaction: zoomber, are you working on a feature in the code? [4/15/2011 1:13:32 AM] Max h: i started trying to tackle the mac microphone problem a while ago but havent been doing much lately.. [4/15/2011 1:13:50 AM] buckyballreaction: sam, linux compile error [4/15/2011 1:14:26 AM] Samuel Williams: clean / rebuild ? [4/15/2011 1:14:30 AM] buckyballreaction: yep [4/15/2011 1:14:53 AM] Samuel Williams: link errors? or some other errors? [4/15/2011 1:15:09 AM] buckyballreaction: robot.cpp:2007:6: error: ‘RobotController’ has not been declared robot.cpp: In function ‘void Zap::run(Zap::Robot*, Zap::GameType*)’: robot.cpp:2009:4: error: ‘ship’ was not declared in this scope robot.cpp:2010:4: error: ‘gametype’ was not declared in this scope robot.cpp: At global scope: robot.cpp:2056:6: error: ‘RobotController’ has not been declared [4/15/2011 1:16:09 AM] Samuel Williams: why did I not compile test? i got same errors.. i will fix it now [4/15/2011 1:16:17 AM] buckyballreaction: :) [4/15/2011 1:17:22 AM] buckyballreaction: what happens if I decrement an unsigned int = 0 [4/15/2011 1:17:33 AM] buckyballreaction: the int ends up being U32_MAX? [4/15/2011 1:17:44 AM] Samuel Williams: it becomes 0xFFFFFFFF (U32_MAX [4/15/2011 1:17:53 AM] buckyballreaction: ok thanks [4/15/2011 1:17:58 AM] buckyballreaction: couldn't remember... [4/15/2011 1:18:18 AM] buckyballreaction: I just found XBOX code in the TNL libraries [4/15/2011 1:18:29 AM] buckyballreaction: did zap ever run on the XBOX? [4/15/2011 1:18:48 AM] Samuel Williams: ok, i fixed error and pushed [4/15/2011 1:19:13 AM] buckyballreaction: compiling [4/15/2011 1:20:12 AM] buckyballreaction: success! [4/15/2011 1:20:27 AM] buckyballreaction: one minute clean compile... not bad [4/15/2011 1:25:28 AM] buckyballreaction: ok, i'm off to bed [4/15/2011 1:25:30 AM] buckyballreaction: good night [4/15/2011 1:25:46 AM] Max h: gn [4/15/2011 3:19:25 AM] Samuel Williams: There is a problem with Robot::canSeePoint checking only 2 edge points, and forcefield projector. I have drawn in red lines of where it is actually checking collision. Prevents robot from repair forcefield projectors when it get stuck. http://96.2.123.136/bitfighter/robot_canSeePoint_problem1.gif Second problem is only checking the edges, but not between, so robot thinks it can see point and tries to go directly. http://96.2.123.136/bitfighter/robot_canSeePoint_problem2.gif [4/15/2011 11:00:31 AM] buckyballreaction: good morning [4/15/2011 11:10:33 AM] buckyballreaction: So the solution is to draw a third line from center of robot to target and check that [4/15/2011 11:15:52 AM] buckyballreaction: the mercurial tree is looking pretty bare from watusimoto at the moment.. :) [4/15/2011 11:16:27 AM] buckyballreaction: but i have a feeling that will definitely change soon [4/15/2011 11:39:22 AM] buckyballreaction: so i added the third line in canSeePoint and tested it on a map I know fails with bots and forcefields - Kate [4/15/2011 11:39:25 AM] buckyballreaction: http://96.2.123.136/upload/snapshot35.png [4/15/2011 11:39:59 AM] buckyballreaction: with or without the third line, the bots get stuck there and do try to shoot the forcefield, but the angle is too steep [4/15/2011 11:40:04 AM] buckyballreaction: is this a different problem? [4/15/2011 11:47:29 AM] Chris Eykamp: [Friday, April 15, 2011 11:16 AM] buckyballreaction: <<< but i have a feeling that will definitely change soonmaybe not -- I'm not sure this will ever work [4/15/2011 1:03:01 PM] buckyballreaction: maybe take smaller steps? [4/15/2011 1:03:22 PM] Chris Eykamp: it's waaaaay to late for that [4/15/2011 1:03:29 PM] buckyballreaction: hehe [4/15/2011 1:11:41 PM] Chris Eykamp: btw, if we wanted to do a 015a release, we could do that without my editor changes [4/15/2011 3:07:42 PM] buckyballreaction: i'm thinking maybe that might be good, maybe after the minor bot issues are worked out [4/15/2011 3:08:14 PM] buckyballreaction: before your changes, what were the main outstanding editor bugs again? [4/15/2011 3:16:58 PM] Chris Eykamp: I think it was pretty much there [4/15/2011 3:17:19 PM] Chris Eykamp: a little jankiness related to ffs and turrets on walls that were being dragged around [4/15/2011 3:17:30 PM] Chris Eykamp: but really not much more than there's always been [4/15/2011 3:17:45 PM] Chris Eykamp: it's a little grosser on polywalls than regular walls [4/15/2011 3:17:51 PM] Chris Eykamp: but not out of control [4/15/2011 3:18:27 PM] Chris Eykamp: I do want to make sure that the voting stuff is disabled by default for all but a few particular cases [4/15/2011 3:18:36 PM] buckyballreaction: oh yeah the voting [4/15/2011 3:18:45 PM] buckyballreaction: didn't we come up with better ideas on how to use it? [4/15/2011 3:19:03 PM] Chris Eykamp: because i think that voting on everything can be worse than just letting things happen [4/15/2011 3:19:07 PM] buckyballreaction: like always allow switching teams, but disallow close the the end of a match? [4/15/2011 3:19:28 PM] Chris Eykamp: but near the end of a match, do you realy want to haev to vote on that? [4/15/2011 3:19:40 PM] buckyballreaction: of course not [4/15/2011 3:19:47 PM] Chris Eykamp: I think we might need a wider discussion of how this should work [4/15/2011 3:19:58 PM] buckyballreaction: i mean just lock out team changing in the last 5% of a match or something [4/15/2011 3:20:12 PM] Chris Eykamp: I voting is good for some applications; perhaps for level changes [4/15/2011 3:20:20 PM] buckyballreaction: yes [4/15/2011 3:20:22 PM] buckyballreaction: not team changing [4/15/2011 3:20:38 PM] Chris Eykamp: and maybe not in the first 2 mins or something [4/15/2011 3:21:05 PM] Chris Eykamp: maybe we should disable it completely via the INI and discuss it in the groups and show people how to enable it [4/15/2011 3:21:25 PM] Chris Eykamp: in 016 maybe we'll have it figured out enough to enable it by default at least in some situations [4/15/2011 3:21:35 PM] buckyballreaction: that may be the better route [4/15/2011 3:21:44 PM] Chris Eykamp: also, in 016, I want a loadout-style menu for the voting, rather than a chat interface [4/15/2011 3:21:57 PM] Chris Eykamp: (though I udnerstand that we can't do that for 015a) [4/15/2011 3:22:21 PM] buckyballreaction: good idea [4/15/2011 3:23:05 PM] buckyballreaction: i'll open a discussion in the forums, and an issue to keep track [4/15/2011 3:23:30 PM] Chris Eykamp: excellent [4/15/2011 3:30:36 PM] karamazovapy: I don't want any of my controller buttons to get hijacked by some idiot doing crap that requires voting [4/15/2011 3:30:55 PM] buckyballreaction: _k, explain [4/15/2011 3:31:13 PM] karamazovapy: presumably a loadout-style voting menu would have buttons mapped to it [4/15/2011 3:31:15 PM] buckyballreaction: my brain is in highly-logical mode right now and not very deductive... [4/15/2011 3:31:26 PM] karamazovapy: for yes/no/whatever [4/15/2011 3:31:39 PM] karamazovapy: if that pops up when someone initiates a vote, I don't want my buttons hijacked [4/15/2011 3:31:40 PM] Chris Eykamp: I'm going to map them to your fire and shields buttons [4/15/2011 3:31:57 PM] karamazovapy: but what if I want to fire or shield and not vote? [4/15/2011 3:31:58 PM] buckyballreaction: i think just shields woudl do it... [4/15/2011 3:32:03 PM] Chris Eykamp: then I attack [4/15/2011 3:32:27 PM] karamazovapy: point being, if I'm under attack and shielding, and a vote comes up, I'm going to inadvertantly vote for something [4/15/2011 3:32:53 PM] Chris Eykamp: that's why I'm advocating further discussion about this point [4/15/2011 3:33:02 PM] Chris Eykamp: and largely disabling it for 015a [4/15/2011 3:33:50 PM] karamazovapy: voting is a great idea on paper, but I'm not sure it's functional [4/15/2011 3:34:04 PM] buckyballreaction: i would say you have to proactively press a button to pull up the vote menu - just like loadout [4/15/2011 3:34:40 PM] karamazovapy: as long as I'm able to ignore votes all together, I'm happy [4/15/2011 3:34:41 PM] Chris Eykamp: mapped to fire, of course [4/15/2011 3:34:59 PM] Chris Eykamp: maybe that could be a new weapon [4/15/2011 3:35:09 PM] buckyballreaction: that's how it works in most FPS games i've played [4/15/2011 3:35:18 PM] Chris Eykamp: when you hit an enemy, a tangle of menus appears they need to negotiate before regaining control of their ship [4/15/2011 3:35:49 PM] karamazovapy: the people who initiate votes are the same people who abuse things and annoy everyone else [4/15/2011 3:36:52 PM] Chris Eykamp: maybe when you initiate a vote, you are automatically kicked [4/15/2011 3:37:29 PM] buckyballreaction: haha [4/15/2011 3:37:33 PM] karamazovapy: like I said, voting is great on paper [4/15/2011 3:58:29 PM] buckyballreaction: ok, started thread: http://bitfighter.org/forums/viewtopic.php?f=4&t=680&start=0 [4/15/2011 4:22:39 PM] buckyballreaction: did we want to disable the engineer by default in the editor? [4/15/2011 4:26:56 PM] Chris Eykamp: yes [4/15/2011 4:27:45 PM] karamazovapy: is engineer going to be turret limited in the next version? [4/15/2011 4:28:12 PM] buckyballreaction: i haven't been in on that discussion much [4/15/2011 4:29:01 PM] Chris Eykamp: meaning limited to turrets? [4/15/2011 4:29:12 PM] Chris Eykamp: hadn't really considered it [4/15/2011 4:30:46 PM] karamazovapy: oh, I thought that was something people had been talking about [4/15/2011 4:31:04 PM] karamazovapy: maybe it wasn't in developer talk [4/15/2011 4:31:12 PM] buckyballreaction: i think zoomber may have mentioned it [4/15/2011 4:31:32 PM] karamazovapy: I've heard a few people say that it's the force fields that are the frustrating part of engineer [4/15/2011 4:31:53 PM] karamazovapy: turret-only engineer mode wouldn't be as problematic [4/15/2011 4:33:59 PM] karamazovapy: be back later - I'm finally moving my computer into the office here [4/15/2011 5:46:23 PM] buckyballreaction: interesting statistics from the bitfighter download page. Number of downloads Win/Mac/Source: 014a: 481 / 369 / 54 015: 888 / 406 / 110 [4/15/2011 5:46:46 PM] Chris Eykamp: whoa [4/15/2011 5:48:17 PM] buckyballreaction: minor growth in mac users but almost double in windows and other(linux) users [4/15/2011 5:48:44 PM] buckyballreaction: and that doesn't even really include linux users [4/15/2011 5:48:45 PM] Chris Eykamp: where aer all those players? [4/15/2011 5:49:06 PM] buckyballreaction: that my question, too [4/15/2011 5:49:30 PM] Chris Eykamp: we need a good posting to tigsource.com [4/15/2011 5:49:35 PM] Chris Eykamp: best if not done by a developer [4/15/2011 5:51:34 PM] buckyballreaction: is that a popular site nowadays? [4/15/2011 5:51:53 PM] Chris Eykamp: I don't know... it looks popular [4/15/2011 5:51:59 PM] Chris Eykamp: it looks authoratative [4/15/2011 5:52:10 PM] Chris Eykamp: I forget how I came across it [4/15/2011 5:52:15 PM] buckyballreaction: then maybe wikipedia will stop being pedantic... [4/15/2011 5:52:23 PM] Chris Eykamp: linked in from a repuatable game review site [4/15/2011 6:14:53 PM] karamazovapy: is there a way to suggest a game? [4/15/2011 6:20:56 PM] Chris Eykamp: yes -- http://db.tigsource.com/game_submissions/new [4/15/2011 6:21:36 PM] karamazovapy: okay, it looks like I need an account to do it [4/15/2011 6:21:46 PM] karamazovapy: I'll give it a shot later if you want me to [4/15/2011 6:21:57 PM] Chris Eykamp: sure -- I'm sure you'll do a great job [4/15/2011 6:22:10 PM] karamazovapy: thanks for the vote of confidence. hot date, though [4/15/2011 6:22:11 PM] Chris Eykamp: my submissions all sound the same [4/15/2011 6:22:21 PM] Chris Eykamp: speed dating fallout? [4/15/2011 6:22:29 PM] karamazovapy: preach [4/15/2011 6:22:37 PM] karamazovapy: see y'all later [4/15/2011 6:22:59 PM] Chris Eykamp: try Micky's Malt Liquor -- Get's Your Girlie Quicker [4/15/2011 6:23:56 PM] Chris Eykamp: no one's going to touch that one! [4/15/2011 8:43:39 PM] buckyballreaction: well the new version of skype for linux has the very good feature of crashing upon start-up with no error messages [4/15/2011 8:45:13 PM] buckyballreaction: tax day! if you haven't done them yet.... [4/15/2011 10:25:27 PM] Max h: hey raptor [4/15/2011 10:26:03 PM] Max h: lol.. [4/15/2011 10:28:14 PM] Max h: hey raptor, if you get this, i just realized weve been neglecting the bitfighter info.plist file...(again for me..) [4/15/2011 10:28:58 PM] Max h: apple communicates with the plist file to find information including version, creater, name of executable, etc [4/15/2011 10:30:41 PM] Max h: while the executable name section is set up to follow whatever executable xcode builds, constantly keeping that one up to date, the version section needs to be updated manually, so we can say "15b bitfighter.org" or "Version 15a" or "Bitfighter 015a" or etc [4/15/2011 10:33:32 PM] Max h: guess i may as well look at the xcode project to see if theres anything else while im at it [4/15/2011 10:36:25 PM] Chris Eykamp: taxes are due Monday [4/15/2011 11:05:49 PM] Chris Eykamp: ok, what's this: vector mVertSelected; // never use std::vector use deque instead [4/15/2011 11:26:19 PM] karamazovapy: I actually have an empty mickey's bottle in the cupboard I drained last week [4/15/2011 11:26:36 PM] Chris Eykamp: sorry to hear that [4/15/2011 11:26:47 PM] Chris Eykamp: I guess that's MI living for you :) [4/15/2011 11:27:09 PM] karamazovapy: thug life [4/15/2011 11:29:30 PM] Chris Eykamp: some of the high quality beer here is probably as strong as Micky's, but tastes (and costs) much better [4/15/2011 11:29:40 PM] Chris Eykamp: well, it doesn't cost better, but rather worse [4/15/2011 11:29:50 PM] karamazovapy: I like good microbrews [4/15/2011 11:30:01 PM] karamazovapy: I had a snifter of the dark horse double crooked tree with dinner tonight [4/15/2011 11:30:27 PM] Chris Eykamp: we're spoiled in Oregon [4/15/2011 11:30:40 PM] karamazovapy: michigan is actually really good for micros, too [4/15/2011 11:32:42 PM] Chris Eykamp: most places do now [4/15/2011 11:32:50 PM] Chris Eykamp: but Oregon is one of the best [4/15/2011 11:36:26 PM] karamazovapy: we have Bells, Arbor, Thunder Bay, Arcadia, Shorts, Founders, New Holland, Dark Horse, Mackinaw, Michigan, and Traverse [4/15/2011 11:36:36 PM] karamazovapy: those are the good ones, anyway [4/15/2011 11:40:26 PM] Chris Eykamp: that's about how many are brewed within a mile of my house [4/15/2011 11:58:44 PM] karamazovapy: yeah, but unlike yours, these don't suck [4/16/2011 12:31:03 AM] buckyballreaction: hello [4/16/2011 12:31:28 AM] buckyballreaction: std::vector is an abomination [4/16/2011 12:31:54 AM] buckyballreaction: but for some reason when using deque, windows bitfighter builds were borken [4/16/2011 12:32:53 AM] buckyballreaction: so we had to revert to vector [4/16/2011 12:36:48 AM] buckyballreaction: maybe an array of bools would be better [4/16/2011 12:36:53 AM] buckyballreaction: or list [4/16/2011 12:39:05 AM] buckyballreaction: sam, are you here? [4/16/2011 2:34:20 AM] Samuel Williams: sorry, i was here the whole time, i was ignoring it due to in a past 6 hours, being on a topic i am not interested on. [4/16/2011 2:36:10 AM] Samuel Williams: deque appears to crash when starting editor when compiled on visual c++ 2010 (works without errors on visual C++ 2008) [4/16/2011 2:39:31 AM] Chris Eykamp: 71 errors, btw [4/16/2011 10:09:20 AM] buckyballreaction: so early... [4/16/2011 10:13:50 AM] buckyballreaction: i wish i could remember my question for you sam.. [4/16/2011 11:41:42 AM] Chris Eykamp: got the editor to compile last night [4/16/2011 11:41:45 AM] Chris Eykamp: but not work [4/16/2011 11:41:58 AM] Chris Eykamp: it crashes immediaetly [4/16/2011 1:09:27 PM] Chris Eykamp: Any idea why this works: TextItem *textItem = dynamic_cast(mDockItems[0]); XObject *xobj = mDockItems[0]; delete textItem; and this crashes (at the delete line; the assignments all work properly)? TextItem *textItem = dynamic_cast(mDockItems[0]); XObject *xobj = mDockItems[0]; delete xobj; [4/16/2011 3:01:55 PM] buckyballreaction: no idea [4/16/2011 4:40:03 PM] Chris Eykamp: http://stackoverflow.com/questions/5688719/new-delete-and-subclasses-in-c [4/16/2011 4:41:48 PM] buckyballreaction: i love stackoverflow [4/16/2011 4:42:27 PM] Chris Eykamp: testing now, then off to the hardware store [4/16/2011 4:42:34 PM] Chris Eykamp: before the rain starts again [4/16/2011 4:42:39 PM] buckyballreaction: we just got bunk beds! [4/16/2011 4:43:41 PM] Chris Eykamp: alright! [4/16/2011 4:43:51 PM] Chris Eykamp: you get the top or bottom bunk? [4/16/2011 4:44:06 PM] Chris Eykamp: ah, you let your wife pick. smart move. [4/16/2011 4:44:09 PM] buckyballreaction: the kid gets one, and the new kid will eventually get another :) [4/16/2011 4:44:34 PM] buckyballreaction: har har [4/16/2011 4:45:05 PM] Chris Eykamp: the second child is a sign of the memory loss and optimistic spirit that is part of the human condition [4/16/2011 4:45:14 PM] buckyballreaction: i might have to agree... [4/16/2011 4:45:14 PM] Chris Eykamp: no sane person would do it again [4/16/2011 4:45:20 PM] buckyballreaction: hehe [4/16/2011 4:45:26 PM] Chris Eykamp: and yet... [4/16/2011 4:47:14 PM] buckyballreaction: i've never guaranteed anyone of my sanity... [4/16/2011 4:49:17 PM] Chris Eykamp: your efforts on Bitfighter are evidence of that [4/16/2011 4:50:03 PM] buckyballreaction: but the rewards! [4/16/2011 4:51:08 PM] buckyballreaction: i learned HG, C/C++, better Makefiles, Mac Xcode, better packaging [4/16/2011 4:51:44 PM] buckyballreaction: and got to work on some geometry skills... however long and drawn out that was... [4/16/2011 4:52:15 PM] buckyballreaction: well, gotta go again [4/16/2011 4:52:16 PM] buckyballreaction: later [4/16/2011 4:52:44 PM] Chris Eykamp: me too... the suggested fix works, but so much else is broken... [4/16/2011 4:52:47 PM] Chris Eykamp: bye! [4/16/2011 4:52:51 PM] buckyballreaction: bye [4/16/2011 7:15:38 PM] buckyballreaction: thanks sam for the better canSeePoint()! [4/16/2011 7:15:53 PM] buckyballreaction: that was on my list... [4/16/2011 7:47:34 PM] Samuel Williams: probably should do multi-line for in-game chat. http://96.2.123.136/bitfighter/zap_d-20110416-1944345.png [4/16/2011 7:51:49 PM] buckyballreaction: haha [4/16/2011 7:51:51 PM] buckyballreaction: yeah... [4/16/2011 7:51:55 PM] buckyballreaction: but a simpler version [4/16/2011 7:52:05 PM] buckyballreaction: we don't need to scroll from the top anymore.. [4/16/2011 8:15:41 PM] Chris Eykamp: if you can, try to use the same code here and there! [4/16/2011 8:38:41 PM] buckyballreaction: I might be going dark for a little bit... I have two finals I need to do by Thursday, one is a stupid Java GUI [4/17/2011 4:31:46 AM] Samuel Williams: I came up with a level upload, when server have it enabled and using updated client, can upload and play any level you have. Stays compatible to older clients / servers that don't have map upload features. http://96.2.123.136/bitfighter/bitfighter-20110417-0428266.png http://96.2.123.136/bitfighter/bitfighter-20110417-0428379.png [4/17/2011 5:27:04 AM] Samuel Williams: When i did a wrap for in-game bottom chat text and in-game top main text, i had to bring some of my function back including alignBottom=true/false, and moved it to UserInterface::drawWrapText. [4/17/2011 1:48:18 PM] buckyballreaction: sam [4/17/2011 1:48:28 PM] buckyballreaction: is there an option to disable voting right now? [4/17/2011 1:49:03 PM] buckyballreaction: hi sam - i saw your chat changes. look good! [4/17/2011 1:50:26 PM] karamazovapy: the level upload idea looks great! it might make sense to put it after Zone Control in the menu, though [4/17/2011 1:50:55 PM] karamazovapy: and maybe change the text so it stands out, like [UPLOAD LEVELS] [4/17/2011 1:53:18 PM] buckyballreaction: is that to upload your local levels to a particular server? [4/17/2011 2:12:46 PM] Samuel Williams: [Sunday, April 17, 2011 1:48 PM] buckyballreaction: <<< is there an option to disable voting right now?I don't think it can be enabled or disabled while the server is running. It can be disabled in INI. yes, it is to upload local levels to server.. [4/17/2011 2:32:48 PM] Samuel Williams: voting could be disabled by default by going in IniSettings::init() and setting voteLength=0 and voteLengthToChangeTeam=0 [4/17/2011 3:28:52 PM] buckyballreaction: because I think we should release soon - if watusimoto still has lots of work to do in the editor [4/17/2011 3:29:31 PM] buckyballreaction: then we can really start tearing bitfighter apart again [4/17/2011 6:19:08 PM] karamazovapy: http://code.google.com/p/bitfighter/issues/detail?id=73 - watusimoto told me to create a case to activate the legendary supervisor script [4/17/2011 6:19:57 PM] buckyballreaction: yes... i don't know what that is... [4/17/2011 6:21:37 PM] karamazovapy: it's like a bot script that responds to in-game events [4/17/2011 6:22:04 PM] karamazovapy: or rather, the framework for such scripts [4/17/2011 6:22:37 PM] karamazovapy: it's been floating in the ether for months and months now [4/17/2011 6:23:30 PM] buckyballreaction: so, that means we'd have some sort of event system, then the bots would look at recent events and act accordingly? [4/17/2011 6:23:58 PM] karamazovapy: most talk has been about creating dynamic levels [4/17/2011 6:24:22 PM] karamazovapy: like when a team is one goal away from winning, scripting a bunch of asteroids to spawn in their base [4/17/2011 6:24:33 PM] buckyballreaction: ahhh [4/17/2011 6:24:40 PM] buckyballreaction: interesting [4/17/2011 6:24:54 PM] karamazovapy: or if a team is losing by three points, make their turrets and forcefields auto repair [4/17/2011 6:25:28 PM] karamazovapy: script nexus flags to appear only when players fly into a specific area [4/17/2011 6:25:49 PM] karamazovapy: almost like a levelgen that continues to run onTick [4/17/2011 6:25:55 PM] buckyballreaction: ok [4/17/2011 6:26:02 PM] buckyballreaction: i see why it would be a 'supervisor' [4/17/2011 6:26:19 PM] buckyballreaction: some sort of triggering system [4/17/2011 6:26:22 PM] karamazovapy: supposedly, the framework is already in the code, but hasn't been activated. most of it coincides with what the bots use [4/17/2011 6:26:33 PM] karamazovapy: yes, "triggers" is the other phrase people have used [4/17/2011 6:26:42 PM] karamazovapy: but watuismoto has always called it a supervisor script [4/17/2011 6:28:13 PM] buckyballreaction: ah ok [4/17/2011 6:30:54 PM] Samuel Williams: as for map uploading, it could be restricted to admin? I can have this in INI file: AllowMapUpload= (yes / no) AllowAdminMapUpload= (yes/no) what should be defaults? [4/17/2011 6:31:06 PM] buckyballreaction: yes, restricted to admin [4/17/2011 6:31:10 PM] karamazovapy: agree [4/17/2011 6:31:22 PM] buckyballreaction: admin only [4/17/2011 6:31:30 PM] Samuel Williams: ok, default to restricted to admin. [4/17/2011 6:31:32 PM] karamazovapy: does anyone actually give out their admin password, currently? [4/17/2011 6:32:47 PM] Samuel Williams: i never seen anyone gave away admin password.. [4/17/2011 6:33:03 PM] buckyballreaction: me neither - except watusimoto to myself once when I was doing maintenance on the servers [4/17/2011 6:33:30 PM] karamazovapy: well we have a command to remove a map from rotation, right? why not include this as a standard admin function? [4/17/2011 6:33:49 PM] buckyballreaction: yeah, i like that [4/17/2011 6:33:51 PM] karamazovapy: it seems pretty harmless [4/17/2011 6:34:48 PM] karamazovapy: or does uploading a map not automatically add it to rotation? [4/17/2011 6:35:11 PM] karamazovapy: I guess I assumed that it did [4/17/2011 6:35:31 PM] Samuel Williams: it automatically adds it to rotation, and starts the map that was uploaded. [4/17/2011 6:35:57 PM] karamazovapy: makes sense to me [4/17/2011 6:36:02 PM] buckyballreaction: me too [4/17/2011 6:36:46 PM] Samuel Williams: uploaded files will be names "uploaded_" + levelName + ".level" [4/17/2011 6:37:06 PM] karamazovapy: oooh - good thought. no accidental overwrites [4/17/2011 6:38:35 PM] karamazovapy: yeah, I don't see why it shouldn't just be an automatic admin privilege. that's just my opinion, though. [4/17/2011 6:38:59 PM] buckyballreaction: i think that's a good idea [4/17/2011 6:40:05 PM] buckyballreaction: so maybe just the one INI setting: AllowAdminMapUpload= [4/17/2011 6:40:16 PM] buckyballreaction: on by default [4/17/2011 6:49:12 PM] buckyballreaction: i'm in a cleaning mood sam... [4/17/2011 6:49:47 PM] buckyballreaction: i feel like splitting point.h into rect.h color.h and associated .cpp classes, then we can reduce the number of externs in the code [4/17/2011 6:51:51 PM] Samuel Williams: If possible if we can reduce the number of includes in all header (.h) files, it can help speed up compiler. [4/17/2011 6:51:59 PM] buckyballreaction: oh yeah! [4/17/2011 6:52:03 PM] buckyballreaction: that's totally a job for me... [4/17/2011 6:52:11 PM] buckyballreaction: would you say it's a good idea? [4/17/2011 6:52:52 PM] Samuel Williams: yes, speeds up compiler by not having to include a bunch of file just to compile one .cpp [4/17/2011 6:53:12 PM] Samuel Williams: add that up to hundreds of .cpp file, and it will be a slowdown. [4/17/2011 6:53:18 PM] buckyballreaction: i agree [4/17/2011 7:00:47 PM] Samuel Williams: i thought i pushed an uploading system... Now i pushed my uploading system to repository. [4/17/2011 7:03:40 PM | Edited 7:03:51 PM] Samuel Williams: i can enable anyone the ability to upload levels in my server (with updated client) and see if having anyone upload files in my server is a good idea.. [4/17/2011 7:04:08 PM] buckyballreaction: sounds fine - [4/17/2011 7:04:21 PM] buckyballreaction: hopefully only map-makers will use that function [4/17/2011 7:07:20 PM] Samuel Williams: i could add the ability to delete level while the server is running, but it can horribly cause client level list [4/17/2011 7:07:30 PM] buckyballreaction: nah [4/17/2011 7:07:38 PM] buckyballreaction: remove from rotation is good [4/17/2011 7:07:40 PM] Samuel Williams: to be outdated and messed up until client reconnect [4/17/2011 7:08:31 PM] Samuel Williams: there is s2cAddLevel, but there is no deletelevel to let client know that level don't exist no more. [4/17/2011 7:08:51 PM] buckyballreaction: will that break 015 client compatibility? [4/17/2011 7:09:13 PM] buckyballreaction: if 015 client connect to 015a server? [4/17/2011 7:09:21 PM] Samuel Williams: i can add it for newer clients, but old clients might get messed up when choosing levels. [4/17/2011 7:10:04 PM] Samuel Williams: uploading levels stays compatible, as it only add a feature... [4/17/2011 7:11:34 PM] Samuel Williams: s2cAddLevel is simply used after uploading level to put it on rotation, but for removing level, that will be a problem for older 015 clients choosing levels until client re-connects. [4/17/2011 7:12:16 PM] buckyballreaction: is the problem jus that the old 015 client will have an outdated list? [4/17/2011 7:12:24 PM] buckyballreaction: or do we expect a crash? [4/17/2011 7:13:26 PM | Edited 7:13:54 PM] Samuel Williams: ..... if i ever add the ability to remove level from rotation while server running. Doesn't crash, but old client will choose one level, and server thinks it chose the other levels. [4/17/2011 7:13:59 PM] buckyballreaction: lets not add that until 015a is out... [4/17/2011 7:14:09 PM] Samuel Williams: ok.. [4/17/2011 7:15:01 PM] buckyballreaction: we are suffering from 'feature creep'... ") [4/17/2011 7:15:03 PM] buckyballreaction: :) [4/17/2011 7:16:30 PM] Samuel Williams: Some features we want to add may not work right, or doesn't work, for compatibility for version 015.. [4/17/2011 7:17:04 PM] buckyballreaction: yeah, that's true... long lined chat will not be display on older clients.. [4/17/2011 7:17:14 PM] buckyballreaction: but at least the game will be playable! [4/17/2011 7:20:56 PM] buckyballreaction: ok, i'm starting 'The Great point.h Refactor' [4/17/2011 7:21:21 PM] Samuel Williams: one think i could work on is robots.. [4/17/2011 7:22:10 PM] buckyballreaction: ACTUALLY [4/17/2011 7:22:13 PM] buckyballreaction: oops [4/17/2011 7:22:16 PM] buckyballreaction: actually... [4/17/2011 7:22:22 PM] buckyballreaction: i have a question [4/17/2011 7:22:28 PM] buckyballreaction: on the map 'Kate' [4/17/2011 7:22:35 PM] buckyballreaction: the bots can't seem to shoot the forcefields [4/17/2011 7:22:41 PM] buckyballreaction: do you know why? [4/17/2011 7:23:09 PM] Samuel Williams: they are too far away from projector or is targeting other things to fire. [4/17/2011 7:23:50 PM] buckyballreaction: you saw this?: http://96.2.123.136/upload/snapshot35.png [4/17/2011 7:24:01 PM] buckyballreaction: it's trying to shoot it, it seems [4/17/2011 7:26:09 PM] Samuel Williams: maybe it is the bot random wobbly aiming as an attempt to make bots not be very accurate. [4/17/2011 7:26:58 PM | Edited 7:27:05 PM] Samuel Williams: it is in LUA code that makes the aiming random / wobbly. [4/17/2011 7:32:34 PM] Samuel Williams: i see s_bot get aiming off by a little bit in counter clockwise direction.. [4/17/2011 8:17:21 PM] buckyballreaction: s_bot performs much better now on levels with long forcefields [4/17/2011 8:37:32 PM] karamazovapy: yeah, the bots got really hung up in Blinding Snow when people charged the central ffs during 3B4 [4/17/2011 9:47:26 PM] buckyballreaction: ok, here goes the recompile with the Point refactor... [4/17/2011 9:50:46 PM] buckyballreaction: errors errors everywhere!! [4/17/2011 9:53:17 PM] Samuel Williams: everything uses "Point" [4/17/2011 9:53:50 PM] buckyballreaction: gameConnection.cpp:1156 has signed/unsigned warning [4/17/2011 9:53:59 PM] buckyballreaction: did you add that piece? [4/17/2011 9:54:51 PM] Samuel Williams: i added getLevelInfo as part of level upload system. [4/17/2011 9:55:26 PM] buckyballreaction: compiled! [4/17/2011 9:55:30 PM] buckyballreaction: failed linking!! [4/17/2011 9:59:05 PM | Edited 9:59:26 PM] Samuel Williams: if the signed / unsigned warning is in list[0].find("GameType") != -1 what does string:find return when it did not find a match? does it return S32 or U32 ? (or U64 / S64 ?) [4/17/2011 9:59:24 PM] buckyballreaction: not sure.. [4/17/2011 9:59:50 PM] buckyballreaction: return an Iterator? [4/17/2011 10:01:20 PM] buckyballreaction: string::npos [4/17/2011 10:01:25 PM] buckyballreaction: is what happens when not found [4/17/2011 10:06:24 PM] Samuel Williams: http://96.2.123.136/bitfighter/string_find.gif in visual 2008, that pop-up is showing mostly junk of what .find is and what string::npos is. [4/17/2011 10:18:32 PM] buckyballreaction: STL is crazy [4/17/2011 10:18:52 PM] buckyballreaction: ok sam - I am ready to push my Point/Rect/Color refactor [4/17/2011 10:19:06 PM] buckyballreaction: compile time went from 55 -> 45 seconds [4/17/2011 10:19:18 PM] buckyballreaction: on my laptop [4/17/2011 10:20:18 PM] Samuel Williams: i am sure your computer is faster then mine.. mine takes like about 2 minutes.. i should time it. [4/17/2011 10:20:35 PM] buckyballreaction: ready for the push? A full recompile will be required... [4/17/2011 10:20:56 PM] buckyballreaction: I think I fixed the VC++ project files, but you'll have to check [4/17/2011 10:21:20 PM] Samuel Williams: i will re-compile just /zap . [4/17/2011 10:21:29 PM] buckyballreaction: yes, that should be good [4/17/2011 10:21:57 PM] buckyballreaction: ok pushed [4/17/2011 10:22:55 PM] Samuel Williams: still compiling after 1.5 minutes. [4/17/2011 10:28:49 PM] Samuel Williams: 6 minutes 55 seconds to compile [4/17/2011 10:28:57 PM] buckyballreaction: old or new? [4/17/2011 10:29:01 PM] Samuel Williams: old [4/17/2011 10:29:29 PM] buckyballreaction: my guess is 5:45 now [4/17/2011 10:35:43 PM] Samuel Williams: 5 minutes 15 seconds wit the new [4/17/2011 10:35:50 PM] buckyballreaction: yay! [4/17/2011 10:35:53 PM] buckyballreaction: progress! [4/17/2011 10:36:31 PM] buckyballreaction: i also made some optimizations: adding 'inline' to the operator overloads [4/17/2011 10:37:20 PM] buckyballreaction: be right back.. [4/17/2011 10:41:13 PM] buckyballreaction: back [4/17/2011 10:59:24 PM] buckyballreaction: watusimoto, are you here? [4/17/2011 11:08:40 PM] buckyballreaction: bot attacked me before your last bot change [4/17/2011 11:08:44 PM] buckyballreaction: so that wasn't it [4/17/2011 11:08:48 PM] buckyballreaction: next.. [4/17/2011 11:08:59 PM] Samuel Williams: Found a problem with s_bot fireAtObjects if obj:getTeamIndx() == bot:getTeamIndx() and game:isTeamGame() !!!or!!! obj:getTeamIndx() == NeutralTeamIndx then return (false) [4/17/2011 11:09:10 PM] Samuel Williams: was and [4/17/2011 11:09:16 PM] buckyballreaction: ahhh... [4/17/2011 11:09:36 PM] buckyballreaction: yeah looks like it was this way for a while [4/17/2011 11:10:43 PM] Samuel Williams: doesn't seem to fix.. [4/17/2011 11:12:27 PM] Samuel Williams: ok, i was editing a duplicate file s_bot other then a copy that is being used.. [4/17/2011 11:13:04 PM] buckyballreaction: did it fix it? [4/17/2011 11:13:51 PM] Samuel Williams: yes, it fixed it.. [4/17/2011 11:13:57 PM] buckyballreaction: hooray! [4/17/2011 11:16:04 PM] Samuel Williams: ok, pushed in repository.. Not sure why my visual C++ 2008 likes to change sorting in my project file. [4/17/2011 11:16:15 PM] buckyballreaction: that was probably my fault... [4/17/2011 11:16:27 PM] buckyballreaction: i didn't add in the new Point classes alphabetically [4/17/2011 11:17:15 PM] Samuel Williams: not as bad as not adding them to projects at all.. [4/17/2011 11:17:37 PM] buckyballreaction: haha, yeah [4/18/2011 12:00:03 AM] buckyballreaction: any turret on the map is of type EngineeredObject? [4/18/2011 12:01:39 AM] Samuel Williams: class Turret : public EngineeredObject... void setObjectMask() { mObjectTypeMask = TurretType | CommandMapVisType; } [4/18/2011 12:02:25 AM] Samuel Williams: and this: EngineeredType = TurretType | ForceFieldProjectorType [4/18/2011 12:02:56 AM | Edited 12:03:09 AM] Samuel Williams: yes, so EngineerType is both turret and projector [4/18/2011 12:03:35 AM] buckyballreaction: ok [4/18/2011 12:03:37 AM] buckyballreaction: thanks [4/18/2011 12:09:07 AM] Chris Eykamp: [Sunday, April 17, 2011 10:59 PM] buckyballreaction: <<< watusimoto, are you here?am here now [4/18/2011 12:09:14 AM] buckyballreaction: howdy [4/18/2011 12:09:39 AM] Chris Eykamp: hi [4/18/2011 12:09:44 AM] buckyballreaction: sam and i think we are close to releasing.. unless you are close to finishing the editor [4/18/2011 12:09:49 AM] Chris Eykamp: I can now see textitems on the dock in the editor [4/18/2011 12:10:00 AM] buckyballreaction: yay! [4/18/2011 12:10:02 AM] Chris Eykamp: but can't place them [4/18/2011 12:10:10 AM] Chris Eykamp: and there are no other objects at the moment [4/18/2011 12:10:20 AM] Chris Eykamp: but it's a form of progress... [4/18/2011 12:10:37 AM] Chris Eykamp: the editor is using the actual in-game text item now [4/18/2011 12:11:00 AM] Chris Eykamp: what I face now is a lot of typing and copying/pasting and such [4/18/2011 12:11:08 AM] Chris Eykamp: but I think this will work [4/18/2011 12:11:17 AM] Samuel Williams: i would want to hide "Upload Level" when you are hosting.. same resion why /getmap is useless when you are the one hosting - you already have that level... [4/18/2011 12:11:49 AM] Chris Eykamp: makes sense... or... have it int he menu structure but disabled [4/18/2011 12:11:55 AM] Chris Eykamp: so it looks more familliar [4/18/2011 12:12:09 AM] Chris Eykamp: of course, we have no way to disable things currently.. [4/18/2011 12:16:23 AM] Samuel Williams: one thing i have noticed is testing from editor only allows one map from level select, but UploadLevels bypass that limitation.. [4/18/2011 12:17:22 AM] buckyballreaction: haha cool [4/18/2011 12:43:31 AM] buckyballreaction: can you do getExtents on a Turret? [4/18/2011 12:43:39 AM] buckyballreaction: and it return a proper value? [4/18/2011 12:44:49 AM] Samuel Williams: you can use getExtents, but it will be a rectangle.. (Rect) [4/18/2011 12:48:41 AM] Samuel Williams: getExtents should work on all database Objects (most gameObjects), as it is used for collision checking... using cheap Rect (getExtents) first, then a more expensive getCollisonPoly and Polygon collision. [4/18/2011 12:53:07 AM] Chris Eykamp: correct [4/18/2011 12:53:43 AM] buckyballreaction: well, i'm getting back the exact same geometry for every turret on the map for some reason - let me check to see if i ama passing references correctly [4/18/2011 12:55:21 AM | Edited 12:55:55 AM] Samuel Williams: as long as geometry(Turrets) is not Rect(0,0,0,0), then it is probably an error on code.. [4/18/2011 1:16:12 AM] buckyballreaction: no matter what I do, I can't seem to get the extents of the Turret from within the Turret constructor [4/18/2011 1:16:21 AM] buckyballreaction: are they created afterwards somehow? [4/18/2011 1:18:08 AM] Samuel Williams: EngineeredObject::processArguments ? [4/18/2011 1:18:40 AM] Samuel Williams: it needs to have mAnchorPoint and mAnchorNormal set while level loads.. [4/18/2011 1:18:42 AM] Chris Eykamp: they can't be created in the constructor [4/18/2011 1:18:57 AM] Chris Eykamp: they don't get that info until processarguments [4/18/2011 1:18:59 AM] Samuel Williams: then after computeExtent() you can use extents.. [4/18/2011 1:19:04 AM] Chris Eykamp: before that... who knows where it is? [4/18/2011 1:19:08 AM] buckyballreaction: rats - so i can't follwo the same model of creating the zone buffers in the constructor like i could with barriers [4/18/2011 1:19:36 AM] Chris Eykamp: barriers are a special case; every other game object works like turrets [4/18/2011 1:19:44 AM] buckyballreaction: well gee [4/18/2011 1:19:58 AM] buckyballreaction: ok, i'll work around it [4/18/2011 1:20:03 AM] Chris Eykamp: why are you creating zone buffers in the constructors? [4/18/2011 1:20:28 AM] buckyballreaction: for barriers, i created a member: mBotZoneBufferGeometry [4/18/2011 1:20:32 AM] Chris Eykamp: Are you essentially precomputing your ocatagonal buffers? [4/18/2011 1:20:44 AM] buckyballreaction: that is exactly what is done with barriers [4/18/2011 1:20:58 AM] Chris Eykamp: if so, do it in processarguments or some related location [4/18/2011 1:21:07 AM] buckyballreaction: ok [4/18/2011 1:21:08 AM] Chris Eykamp: there may be an init or something that gets called [4/18/2011 1:21:29 AM] Chris Eykamp: actually, don't do it in processarguments! [4/18/2011 1:21:49 AM] Chris Eykamp: I want to keep that pure, as we'll be using that in the editor [4/18/2011 1:21:54 AM] buckyballreaction: ok [4/18/2011 1:21:56 AM] Samuel Williams: would be more memory efficient to only compute buffers while getting the buffers, not in constructor, to avoid storing buffers in memory that may no longer be used after.. [4/18/2011 1:22:12 AM] Chris Eykamp: I actually agree with that [4/18/2011 1:22:14 AM] buckyballreaction: i'll just do it in BotNavMeshZone [4/18/2011 1:23:01 AM] Chris Eykamp: if you really wanted the objects to handle it themselves, you could add a getBotBuffer(bufferSize) method (with a better name of course) [4/18/2011 1:23:16 AM] buckyballreaction: yes, i like that idea [4/18/2011 1:23:33 AM] Chris Eykamp: but I think the proper time to run that is when you're generating the buffers [4/18/2011 1:24:10 AM] buckyballreaction: yes... so in this insanity i should probably move processing away from Barrier.cpp [4/18/2011 1:24:22 AM] buckyballreaction: and into BotNavMeshZone [4/18/2011 1:24:53 AM] Samuel Williams: if a few maps already have their own bot zones, that makes Barriers::mBotZoneBufferGeometry completely useless and only take up memory.. [4/18/2011 1:25:01 AM] buckyballreaction: i agree [4/18/2011 1:25:20 AM] buckyballreaction: i can't think of a better name than getBotBuffer() :) [4/18/2011 1:25:28 AM] buckyballreaction: that looks funny [4/18/2011 1:25:43 AM] Samuel Williams: getRobotBuffer ? [4/18/2011 1:26:01 AM] buckyballreaction: getBufferForBotZone [4/18/2011 1:26:06 AM] buckyballreaction: i like that [4/18/2011 1:29:49 AM] buckyballreaction: it works!!! [4/18/2011 1:29:52 AM] buckyballreaction: yay [4/18/2011 1:30:53 AM] buckyballreaction: not too horrible: http://96.2.123.136/upload/11snapshot29.png [4/18/2011 1:32:48 AM | Edited 1:32:57 AM] Samuel Williams: next, force field projectors? [4/18/2011 1:33:11 AM] buckyballreaction: i don't think they're needed - they are angled and bots can bounce right through them :) [4/18/2011 1:33:35 AM] buckyballreaction: also the zone buffer already covers them [4/18/2011 1:34:05 AM] Chris Eykamp: yes, but technically they should create a little divet in the zone [4/18/2011 1:34:23 AM] Chris Eykamp: you could create a narrow opening that appears wide enough for bot, but is blicked by a projector [4/18/2011 1:34:30 AM] Chris Eykamp: then stuck-o! [4/18/2011 1:34:48 AM] buckyballreaction: i guess that's true... [4/18/2011 1:34:50 AM] buckyballreaction: ok [4/18/2011 1:34:51 AM] buckyballreaction: i'll do those [4/18/2011 1:47:29 AM] buckyballreaction: is ForceField or ForceFieldProjector? [4/18/2011 1:47:56 AM] Samuel Williams: projector is the little triangle part.. [4/18/2011 1:48:23 AM] buckyballreaction: excellent, thanks [4/18/2011 1:48:25 AM] Samuel Williams: forcefield it self is the big long line that can disappear when projector dies. [4/18/2011 2:16:02 AM] buckyballreaction: so close... [4/18/2011 2:30:28 AM] buckyballreaction: done! and it works! [4/18/2011 2:35:58 AM] buckyballreaction: ok pushed [4/18/2011 2:36:09 AM] buckyballreaction: I did some testing on the standard stress levels... [4/18/2011 2:36:13 AM] buckyballreaction: all still work fine [4/18/2011 2:36:19 AM] buckyballreaction: but i need to sleep now [4/18/2011 10:24:04 AM] buckyballreaction: If you didn't see - we refactored the point.h header into proper classes with headers. Doing so reduced compile time by 20% [4/18/2011 11:51:25 AM] Chris Eykamp: Makes sense! [4/18/2011 12:59:46 PM] buckyballreaction: so zones account for FF projectors and turrets now [4/18/2011 1:00:19 PM] buckyballreaction: but sam brought up the point that Robot::canSeePoint doesn't take them into account [4/18/2011 1:01:37 PM] Chris Eykamp: because that still uses center-to-center straight line analysis, right? [4/18/2011 1:03:52 PM] buckyballreaction: sam improved it - it uses a rect to check against colisions of of barriers [4/18/2011 1:04:24 PM] buckyballreaction: i wonder if I could just add FF projectors and turret types to the search and it wouldn't hurt performance too much.. [4/18/2011 1:05:04 PM] Chris Eykamp: yes... is he getting the list of barriers from the database? if so the fix is trivial [4/18/2011 1:06:12 PM] Chris Eykamp: the database takes as an argument a typemask, which is essentially a bitmask (search for BIT(4) to see where these are defined). [4/18/2011 1:06:27 PM] buckyballreaction: yes - i learned those last night :0 [4/18/2011 1:06:36 PM] buckyballreaction: ok [4/18/2011 1:06:39 PM] Chris Eykamp: You can create a new type, called CollideableType or something, and define it in terms of existing items [4/18/2011 1:06:40 PM] buckyballreaction: sounds simple en ough, then [4/18/2011 1:06:50 PM] buckyballreaction: i like that idea [4/18/2011 1:06:54 PM] Chris Eykamp: CollideableType = BarrierType & TurretType & FFProjectorType [4/18/2011 1:06:57 PM] Chris Eykamp: or whatever [4/18/2011 1:07:18 PM] Chris Eykamp: then pass Collideabletype intot eh database call instead of barrierType (which is what I'm guessing he's doning now) [4/18/2011 1:07:21 PM] Chris Eykamp: and that should be it [4/18/2011 1:07:35 PM] buckyballreaction: great idea [4/18/2011 1:07:57 PM] buckyballreaction: i haven't done much manipulation of Bit masks before - is & or | be what I use? [4/18/2011 1:08:10 PM] Chris Eykamp: & [4/18/2011 1:08:24 PM] Chris Eykamp: sorry | [4/18/2011 1:08:39 PM] buckyballreaction: ok [4/18/2011 1:08:43 PM] buckyballreaction: that makes sense [4/18/2011 1:08:44 PM] Chris Eykamp: there are plenty of examples [4/18/2011 1:09:42 PM] Chris Eykamp: all these objects have the same methods, which makes this kind of upgrade so easy [4/18/2011 1:09:51 PM] buckyballreaction: excellent [4/18/2011 1:10:00 PM] Chris Eykamp: they all have an extend and a collisionPolygon etc. [4/18/2011 1:13:29 PM] buckyballreaction: WormType ? [4/18/2011 1:18:29 PM] Chris Eykamp: experimental [4/18/2011 1:18:42 PM] Chris Eykamp: a new projectile idea [4/18/2011 1:20:19 PM] buckyballreaction: was that the robotron tracking wormies? [4/18/2011 1:20:32 PM] Chris Eykamp: yes [4/18/2011 1:21:08 PM] buckyballreaction: i was hunting for code for that... [4/18/2011 1:21:14 PM] buckyballreaction: never found anything yet.. [4/18/2011 1:22:33 PM] Chris Eykamp: not much there [4/18/2011 1:22:44 PM] Chris Eykamp: probably in projectile.cpp [4/18/2011 1:25:22 PM] buckyballreaction: ok bots fixed [4/18/2011 1:25:39 PM] Chris Eykamp: great. as easy as I suggested? [4/18/2011 1:25:45 PM] buckyballreaction: oh yeah [4/18/2011 1:25:49 PM] buckyballreaction: no thought involved [4/18/2011 1:25:49 PM] Chris Eykamp: excellent [4/18/2011 1:26:27 PM] Chris Eykamp: UNfortunately, we're running out of space in our 32 bit flag; we're going to need to go to a 64 bit flag soon [4/18/2011 1:26:35 PM] Chris Eykamp: my editor work is using up empty slots [4/18/2011 1:26:56 PM] buckyballreaction: uh oh [4/18/2011 1:27:02 PM] buckyballreaction: yeah i was just seeing that [4/18/2011 1:27:34 PM] Chris Eykamp: I may be able to reuse some slots, like those used by projectiles, because they are not in the editor [4/18/2011 1:27:42 PM] Chris Eykamp: I've arleady done that once [4/18/2011 1:28:02 PM] buckyballreaction: sounds hackish [4/18/2011 1:28:03 PM] Chris Eykamp: but some things, like textItems, are in the game, but don't have their own slot [4/18/2011 1:28:12 PM] Chris Eykamp: so I can't do that [4/18/2011 1:28:34 PM] Chris Eykamp: I can with asteroidSpawns, flagSpawns, and the like [4/18/2011 1:28:48 PM] Chris Eykamp: but not quite there yet [4/18/2011 1:29:40 PM] buckyballreaction: do you think we should release before or after your editor changes? [4/18/2011 1:29:53 PM] buckyballreaction: because sam and I have just been refining and cleaning code, mostly [4/18/2011 1:31:07 PM] Chris Eykamp: it will be a few days at the very least before the editor is ready [4/18/2011 1:31:22 PM] Chris Eykamp: I'm open to the idea [4/18/2011 1:31:49 PM] Chris Eykamp: there's nothing compelling in this refactor from a user perspective [4/18/2011 1:32:14 PM] buckyballreaction: I'm just itching to really starting breaking code.. [4/18/2011 1:33:08 PM] buckyballreaction: play with SDL.. [4/18/2011 1:33:17 PM] Chris Eykamp: I hear you [4/18/2011 1:33:26 PM] Chris Eykamp: how do you feel about the game as it now stands? [4/18/2011 1:33:32 PM] Chris Eykamp: ready for release? [4/18/2011 1:33:33 PM] buckyballreaction: i think it's great [4/18/2011 1:33:35 PM] buckyballreaction: yes [4/18/2011 1:33:42 PM] Chris Eykamp: what about voting? [4/18/2011 1:33:48 PM] buckyballreaction: sam and I spent most of last night duking it out and see the problems [4/18/2011 1:34:04 PM] buckyballreaction: sam disabled voting by default [4/18/2011 1:34:13 PM] Chris Eykamp: I think that's the right answer for the moment [4/18/2011 1:34:22 PM] buckyballreaction: me too [4/18/2011 1:34:40 PM] Chris Eykamp: like PolyWalls, it might be something that lurks out there for a while before getting fully integrated [4/18/2011 1:34:52 PM] Chris Eykamp: we have several things like that as well [4/18/2011 1:35:07 PM] Chris Eykamp: what about k's idea of disabling ffs in the engineer module? [4/18/2011 1:35:20 PM] Chris Eykamp: making that turret only? [4/18/2011 1:35:24 PM] buckyballreaction: we disabled engineer by default [4/18/2011 1:35:28 PM] buckyballreaction: for new levels [4/18/2011 1:36:17 PM] Chris Eykamp: part of me says leave it as it is - you need to enable engineer and add resource items to your level, so hopefully you know what you are doing [4/18/2011 1:37:31 PM] buckyballreaction: yes, i think leaving it would be good, with default engineer disabled - until we get a better mechanism for disabling one or other... maybe [4/18/2011 1:39:09 PM] Chris Eykamp: it's purely a gameplay issue [4/18/2011 1:39:27 PM] Chris Eykamp: and in that I consider my opinion less enlightening than others' [4/18/2011 1:42:47 PM] buckyballreaction: me too [4/18/2011 1:49:15 PM] buckyballreaction: anything else you can think of? [4/18/2011 1:52:25 PM] Chris Eykamp: not off the top of my head [4/18/2011 1:52:47 PM] Chris Eykamp: we've got a release checklist in the wiki, but that's more for during-the-release stuff [4/18/2011 1:53:11 PM] Chris Eykamp: so all servers will now support -addbot? [4/18/2011 1:53:22 PM] Chris Eykamp: and will ship with s_bot? [4/18/2011 1:53:33 PM] buckyballreaction: yep [4/18/2011 1:54:14 PM] Chris Eykamp: well... then let's go for it [4/18/2011 1:57:04 PM] buckyballreaction: hooray! [4/18/2011 1:57:12 PM] buckyballreaction: i need to fix up the Mac project... [4/18/2011 1:57:18 PM] buckyballreaction: but that's easy [4/18/2011 2:27:25 PM] buckyballreaction: did ZAP_GAME_RELEASE move from game.h to version.h? [4/18/2011 2:27:28 PM] buckyballreaction: since last time? [4/18/2011 2:28:16 PM] buckyballreaction: ah yes it did: http://code.google.com/p/bitfighter/source/detail?r=7752a7000cee [4/18/2011 2:28:39 PM] buckyballreaction: the log says: "Move version info into version.h, and provide a mechanism for updating settings when changing versions" [4/18/2011 2:28:49 PM] buckyballreaction: what is this 'mechanism' ? [4/18/2011 2:32:46 PM] Chris Eykamp: ah [4/18/2011 2:34:22 PM] buckyballreaction: or is the version.h file itself the mechanism - an easy way to update only the needed information [4/18/2011 2:34:27 PM] Chris Eykamp: checkIfThisIsAnUpdate() in main.cpp [4/18/2011 2:34:45 PM] Chris Eykamp: gets run once each time version is upgraded [4/18/2011 2:34:49 PM] Chris Eykamp: can put INI fixes in here [4/18/2011 2:34:57 PM] Chris Eykamp: that was the intent, anyway [4/18/2011 2:35:10 PM] Chris Eykamp: could probably be better commented -- I had a hard time finding it [4/18/2011 2:35:37 PM] Chris Eykamp: gIniSettings.version shows the version the last time the game was run [4/18/2011 2:35:52 PM] buckyballreaction: ah ok [4/18/2011 2:36:00 PM] buckyballreaction: so a housekeeping method [4/18/2011 2:39:16 PM] Chris Eykamp: yes [4/18/2011 2:39:18 PM] buckyballreaction: do you think we should add anything to it? [4/18/2011 2:39:38 PM] buckyballreaction: seems like it probably isn't too important for this release [4/18/2011 2:39:45 PM] Chris Eykamp: not sure; only if we're changing the name of a INI param or something [4/18/2011 2:58:55 PM] Chris Eykamp: argh [4/18/2011 2:59:04 PM] Chris Eykamp: fsck is giving me hundreds of erros like this: [4/18/2011 2:59:05 PM] Chris Eykamp: Inode 29309343 has compression flag set on filesystem without compression support. Clear? yes Inode 29309343 has INDEX_FL flag set but is not a directory. Clear HTree index? yes Inode 29309343, i_size is 9253982074045373034, should be 0. Fix? yes Inode 29309343, i_blocks is 1679012923, should be 0. Fix? yes Inode 29306713 has compression flag set on filesystem without compression support. Clear? yes Inode 29306713 has INDEX_FL flag set but is not a directory. Clear HTree index? yes Inode 29306713, i_size is 3858023316445933841, should be 0. Fix? yes [4/18/2011 2:59:10 PM] Chris Eykamp: I think my disk is cooked [4/18/2011 3:00:16 PM] buckyballreaction: yikes! [4/18/2011 3:00:23 PM] buckyballreaction: is the disk encrypted? [4/18/2011 3:00:26 PM] Chris Eykamp: no [4/18/2011 3:00:44 PM] buckyballreaction: filesystem? [4/18/2011 3:00:49 PM] Chris Eykamp: ext2 [4/18/2011 3:01:05 PM] buckyballreaction: hehe - i remember the good old days with that FS... [4/18/2011 3:01:21 PM] Samuel Williams: probably the computer get turned off without safely shut down [4/18/2011 3:01:26 PM] Chris Eykamp: I'm hoping I can reformat and that the hardware is ok [4/18/2011 3:01:31 PM] Chris Eykamp: quite possibly happend [4/18/2011 3:01:38 PM] Chris Eykamp: it *might* be ext3 [4/18/2011 3:01:43 PM] Chris Eykamp: but I doubt it [4/18/2011 3:02:00 PM] buckyballreaction: the hardware *should* be ok: i would go to ext4 if possible [4/18/2011 3:02:17 PM] Samuel Williams: ext3 / ext4 have more safety against incorrect shut down. [4/18/2011 3:02:19 PM] buckyballreaction: i remember getting those errors with ext2 back when i played with linux in the 90s [4/18/2011 3:02:25 PM] Chris Eykamp: only if I can find a way to read ext4 on a windwos machine [4/18/2011 3:02:36 PM] buckyballreaction: what!? [4/18/2011 3:02:38 PM] buckyballreaction: you can't? [4/18/2011 3:02:47 PM] Chris Eykamp: I can read ext2, ext3 [4/18/2011 3:03:13 PM] buckyballreaction: what do you mean 'read'? a full mount? or just file access through a browser of sorts? [4/18/2011 3:03:21 PM] Chris Eykamp: full mount [4/18/2011 3:03:25 PM] Chris Eykamp: there are drivers [4/18/2011 3:03:49 PM] buckyballreaction: http://www.soluvas.com/read-browse-explore-open-ext2-ext3-ext4-partition-filesystem-from-windows-7/ [4/18/2011 3:04:19 PM] buckyballreaction: says you can do ext4 as long as you make sure not to add the 'extents' filesystem option - which kinda stinks since that is a performance loss [4/18/2011 3:04:36 PM] Chris Eykamp: performance is not an issue in my application [4/18/2011 3:04:48 PM] Chris Eykamp: it's a headless sytem constrained by wifi and internet speeds [4/18/2011 3:04:57 PM] buckyballreaction: readonly? [4/18/2011 3:05:02 PM] Chris Eykamp: rw [4/18/2011 3:05:18 PM] buckyballreaction: ah... you won't get rw with ext4 no matter what [4/18/2011 3:05:31 PM] Samuel Williams: The way I have my dual boot set up: Windows XP in Fat32 70 GB, linux ubuntu in 5 GB ext4. linux can fully read and write to Fat32. [4/18/2011 3:05:49 PM] buckyballreaction: if you need windows, linux has full support of ntfs [4/18/2011 3:06:02 PM] Chris Eykamp: maybe that's what I'll do [4/18/2011 3:06:39 PM] buckyballreaction: the specific linux software/drivers is 'ntfs-3g' [4/18/2011 3:06:45 PM] Chris Eykamp: when I go to lunch, I'm leaving a stick on my enter key so that it will keep answering the do you want to fix questions. For some reason the automatically say yes option did not work [4/18/2011 3:07:10 PM] buckyballreaction: you can pipe it through 'yes' [4/18/2011 3:07:25 PM] Chris Eykamp: what's that? [4/18/2011 3:07:34 PM] Chris Eykamp: ha! [4/18/2011 3:07:37 PM] Chris Eykamp: cat |yes [4/18/2011 3:07:40 PM] buckyballreaction: you've never typed 'yes' into a linux prompt? [4/18/2011 3:07:43 PM] buckyballreaction: :) [4/18/2011 3:07:57 PM] Chris Eykamp: fsck | yes? [4/18/2011 3:08:09 PM] buckyballreaction: sure [4/18/2011 3:08:14 PM] buckyballreaction: and that looks really bad [4/18/2011 3:08:46 PM] Chris Eykamp: since I'm so far in, I'll try the stick first, then if a half hr of that hasn't fixed it, yes it is [4/18/2011 3:10:31 PM] Chris Eykamp: though my stick method is janky... I have to wedge it between the partially closed lid of my laptop and the enter key, then apply some force to the screen to keep it down [4/18/2011 3:10:48 PM] buckyballreaction: 'fsck -y' shoudl do the same [4/18/2011 3:10:59 PM] Chris Eykamp: I tried that [4/18/2011 3:11:10 PM] Chris Eykamp: the nature of the errors cause dthat option to not be vialble [4/18/2011 3:12:08 PM] buckyballreaction: well that stinks [4/18/2011 3:14:04 PM] Chris Eykamp: indeed. thank goodness for sticks [4/18/2011 3:14:15 PM] Chris Eykamp: god's gift to sysadmins [4/18/2011 3:17:18 PM] buckyballreaction: mac project builds now [4/18/2011 3:17:28 PM] buckyballreaction: sam, we were just discussing doing a release [4/18/2011 3:17:32 PM] buckyballreaction: anything lingering? [4/18/2011 3:18:01 PM] buckyballreaction: i mad all the bot fixes [4/18/2011 3:18:07 PM] buckyballreaction: to canSeePoint and the zones [4/18/2011 3:21:26 PM] Samuel Williams: [Monday, April 18, 2011 1:34 PM] buckyballreaction: <<< sam disabled voting by defaultShould voting be disabled be default? Defaults is in IniSettings::init(), voteLength is not zero meaning is not disabled by default currently. [4/18/2011 3:22:17 PM] buckyballreaction: oh [4/18/2011 3:22:22 PM] buckyballreaction: i guess i misunderstood at the time [4/18/2011 3:22:23 PM] Samuel Williams: and voteLengthToChangeTeam want it disabled this as well? [4/18/2011 3:22:36 PM] buckyballreaction: we want voting totally disabled by default [4/18/2011 3:22:42 PM] Samuel Williams: ok. [4/18/2011 3:23:12 PM] karamazovapy: I still think voting for a levelchange is okay if no one logged in has the password [4/18/2011 3:23:12 PM] buckyballreaction: maybe an easy INI option EnableVoteSystem? [4/18/2011 3:23:43 PM] buckyballreaction: _k, we've determined to just scrap voting for now and release [4/18/2011 3:24:14 PM] karamazovapy: I'm not worked up, either way [4/18/2011 3:24:17 PM] buckyballreaction: sam, if we had that easy enable/disable option, people could keep their other voting settings [4/18/2011 3:25:28 PM] Samuel Williams: voteLength = 0; voteLengthToChangeTeam = 0; Thats the only 2 that will disable vote system.. [4/18/2011 3:29:08 PM] Samuel Williams: Only server owners and players that host might care about voting system settings, most players that only join server have no effect on vote settings. [4/18/2011 3:30:32 PM] Samuel Williams: want me to add voteEnable ? [4/18/2011 3:31:21 PM] buckyballreaction: I think it would be a good idea: that way people can keep their previous settings [4/18/2011 3:31:57 PM] buckyballreaction: and you could put in defaults for those voteLength* ones [4/18/2011 3:39:02 PM] Samuel Williams: ok, got it changed to have vote disabled by default. [4/18/2011 3:39:20 PM] Samuel Williams: with default having voteEnable = false [4/18/2011 4:02:58 PM] buckyballreaction: hooray! [4/18/2011 4:05:23 PM] buckyballreaction: anything else anyone can think of? [4/18/2011 4:05:36 PM] buckyballreaction: what should the last commit before release contain? just version.h updates? [4/18/2011 4:15:49 PM] Samuel Williams: lets see if I can fix /getmap that writes zero size file when server have getmap disabled.. [4/18/2011 4:19:56 PM] buckyballreaction: good idea [4/18/2011 4:44:13 PM] Chris Eykamp: sam, to be clear, I think the voting has a future, so don't feel your efforts were wasted! [4/18/2011 4:44:57 PM] Chris Eykamp: @sam & @bbr -- please make sure you update main.cpp with any new features you feel merit inclusion in the release notes [4/18/2011 4:45:30 PM] buckyballreaction: was that a bitwise operation performed on me? [4/18/2011 4:45:43 PM] Samuel Williams: yes, voting will have a future for version 016. [4/18/2011 4:45:57 PM] Chris Eykamp: yes [4/18/2011 4:46:58 PM] buckyballreaction: we've made 574 commits since the last version already... [4/18/2011 4:47:23 PM] buckyballreaction: that's close to a third of the total (1823) [4/18/2011 4:49:06 PM] buckyballreaction: i'll go through my commits and see if anything is missing from main.cpp [4/18/2011 4:50:19 PM] buckyballreaction: about that list in main.cpp: [4/18/2011 4:50:37 PM] buckyballreaction: does it need to be well-formed html? (i.e. with closing tags) [4/18/2011 4:50:50 PM] Chris Eykamp: well enough [4/18/2011 4:51:07 PM] Chris Eykamp: I usually read it, organize it a little, then do a copy-paste job on it [4/18/2011 4:51:11 PM] buckyballreaction: also does it need somthing in that first empty

? [4/18/2011 4:51:20 PM] Chris Eykamp: I found that keeping it in html format simplified release time [4/18/2011 4:51:38 PM] buckyballreaction: do you normally separate features and fixes? [4/18/2011 4:53:19 PM] Chris Eykamp: I try to organize things thematically, but generally (but not always) yes [4/18/2011 4:53:38 PM] Chris Eykamp: Depends on how I'm feeling when I create the entry [4/18/2011 4:53:56 PM] buckyballreaction: ok - would it be best i just add things and leave the orginization to you? [4/18/2011 4:54:07 PM] Chris Eykamp: But if I have a long section on the editor, I'll usually add a editor fix to that [4/18/2011 4:54:23 PM] Chris Eykamp: you're better at organization that I am! [4/18/2011 4:54:40 PM] Chris Eykamp: try to put your stuff in intelligently [4/18/2011 4:55:11 PM] Chris Eykamp: usually by the time I get to that part of the release, I'm tired and don't have the energy to do a great job with it [4/18/2011 4:55:18 PM] Chris Eykamp: the more that's done ahead of time, the better [4/18/2011 4:55:23 PM] buckyballreaction: okey doke [4/18/2011 4:58:03 PM] Chris Eykamp: fsck | yes [4/18/2011 4:58:08 PM] Chris Eykamp: or fsck < yes? [4/18/2011 4:58:55 PM] Chris Eykamp: that second one doesn't work [4/18/2011 4:59:05 PM] buckyballreaction: yes | [4/18/2011 4:59:22 PM] buckyballreaction: yes | fsck [4/18/2011 4:59:36 PM] buckyballreaction: sorry, had to pull out the old bash notes again... [4/18/2011 4:59:43 PM] Chris Eykamp: interesting.... hadn't considered that permutation [4/18/2011 5:00:14 PM] Chris Eykamp: boo! [4/18/2011 5:00:16 PM] Chris Eykamp: [root@Plugbox ~]# yes | fsck -C /dev/sdb1 fsck from util-linux-ng 2.18 e2fsck 1.41.12 (17-May-2010) e2fsck: need terminal for interactive repairs [root@Plugbox ~]# [4/18/2011 5:00:28 PM] buckyballreaction: LAME [4/18/2011 5:00:29 PM] Chris Eykamp: back to the stick. [4/18/2011 5:00:42 PM] Chris Eykamp: which did work [4/18/2011 5:00:45 PM] Chris Eykamp: mostly [4/18/2011 5:08:28 PM] buckyballreaction: -p [4/18/2011 5:08:33 PM] buckyballreaction: fsck auto repair [4/18/2011 5:09:23 PM] Samuel Williams: got /getmap working without it saving empty files when getmap is disabled. [4/18/2011 5:18:49 PM] Chris Eykamp: we have this problem: [4/18/2011 5:18:50 PM] Chris Eykamp: http://stackoverflow.com/questions/2369392/inheriting-both-abstract-class-and-class-implementation-in-c [4/18/2011 5:19:06 PM] Chris Eykamp: don't much like the answer [4/18/2011 5:19:43 PM] Chris Eykamp: oh, hey, wait!!!! I asked this question!!! [4/18/2011 5:19:47 PM] Chris Eykamp: what are the odds? [4/18/2011 5:32:04 PM] Chris Eykamp: back to the fsck problem... [4/18/2011 5:32:05 PM] Chris Eykamp: /dev/sdb1: UNEXPECTED INCONSISTENCY; RUN fsck MANUALLY. (i.e., without -a or -p options) [4/18/2011 5:32:08 PM] Chris Eykamp: lame! [4/18/2011 5:35:13 PM] Samuel Williams: is volume / pertition is severely or totally damaged, it might just be easier to clean / re-format it, if no data is important, not sure how badly it was damaged. [4/18/2011 5:36:38 PM] Chris Eykamp: most of the data is elsewhere, not sure how much is not [4/18/2011 5:36:58 PM] Chris Eykamp: amazing [4/18/2011 5:42:04 PM] buckyballreaction: yeah, i'd go to fat32 anyday over ext2 [4/18/2011 5:42:18 PM] buckyballreaction: ext2 is notorious for fighting you when you want to fix it [4/18/2011 6:22:04 PM] buckyballreaction: goin' home - be back soon [4/18/2011 6:44:08 PM] buckyballreaction: back [4/18/2011 8:04:04 PM] buckyballreaction: ok, finished a final exam [4/18/2011 8:04:08 PM] buckyballreaction: now back to bitfighter [4/18/2011 8:04:17 PM] buckyballreaction: features list! [4/18/2011 8:04:18 PM] buckyballreaction: right [4/18/2011 8:22:33 PM] buckyballreaction: Ok, I went through all my commits since bitfighter-015 and updated the changelog with things i though were most relevant [4/18/2011 8:25:36 PM] buckyballreaction: i have to take a break and start another exam, then I can work on your commits (sam and watusimoto) - if you were to not have done them by that time... :) [4/19/2011 12:01:49 AM] buckyballreaction: ok, i'm sick of my exam [4/19/2011 12:02:33 AM] buckyballreaction: i'll get back to looking through the changelogs... [4/19/2011 12:05:02 AM] Chris Eykamp: don't worry too much about it -- we don't need to be exhaustive [4/19/2011 12:05:15 AM] Chris Eykamp: I captured most of the changes until a couple of weeks ago [4/19/2011 12:05:28 AM] Chris Eykamp: there are going to be memory leaks in the editor [4/19/2011 12:05:39 AM] buckyballreaction: as it stands, or as you are coding it? [4/19/2011 12:05:42 AM] Chris Eykamp: as I am coding it [4/19/2011 12:05:49 AM] Chris Eykamp: there weren't before [4/19/2011 12:05:58 AM] Chris Eykamp: I convinced myself I needed to switch to new and delete, whereas before it was all refrences [4/19/2011 12:06:37 AM] Chris Eykamp: I quite certain I'll mess something up [4/19/2011 12:06:58 AM] buckyballreaction: does vc++ have a memory profiler? [4/19/2011 12:07:34 AM] Chris Eykamp: not the free version that I have [4/19/2011 12:07:40 AM] Chris Eykamp: maybe Sam does [4/19/2011 12:07:59 AM] buckyballreaction: eclipse + valgrind is a breeze [4/19/2011 12:08:16 AM] Samuel Williams: i have never used profiler and i don't know how.. [4/19/2011 12:08:20 AM] buckyballreaction: so i can easily do it if wanted [4/19/2011 12:10:03 AM] buckyballreaction: sam, does /gmute work ok? [4/19/2011 12:10:16 AM] Chris Eykamp: did everyone else just step backward? [4/19/2011 12:10:23 AM] Chris Eykamp: leaving you out in front? [4/19/2011 12:10:34 AM] buckyballreaction: ?? [4/19/2011 12:11:00 AM] Chris Eykamp: that old joke about the seargent asking for a volunteer to rush the machine gun nest, and everyone but one guy steps backwards [4/19/2011 12:11:15 AM] Chris Eykamp: making it appear he volunteererd [4/19/2011 12:11:28 AM] buckyballreaction: ah... [4/19/2011 12:11:32 AM] buckyballreaction: looks like it.. [4/19/2011 12:22:06 AM] buckyballreaction: ok, done with sam's commits... [4/19/2011 12:25:11 AM] buckyballreaction: was /mute added since 015? [4/19/2011 12:25:33 AM] buckyballreaction: yep [4/19/2011 12:28:09 AM] Samuel Williams: /gmute will mute a player to everyone /mute will mute a player to you [4/19/2011 12:28:18 AM] buckyballreaction: excellent [4/19/2011 12:28:32 AM] Samuel Williams: /gmute probably require admin. [4/19/2011 12:29:12 AM] Samuel Williams: /mute only works in-game, it doesn't work in game lobby. [4/19/2011 12:29:19 AM] buckyballreaction: wow... so many commits were with us playing with bot zones [4/19/2011 12:29:41 AM] Chris Eykamp: there were a lot [4/19/2011 12:29:45 AM] Chris Eykamp: it was a ton of work [4/19/2011 12:29:50 AM] Chris Eykamp: weeks and weeks [4/19/2011 12:29:56 AM] Chris Eykamp: of all three of us going full tilt [4/19/2011 12:30:35 AM] Samuel Williams: Bot zone generator started as a LUA levelgen script with pointCanSeePoint. [4/19/2011 12:30:54 AM] Chris Eykamp: that seems like forever ago [4/19/2011 12:32:25 AM] buckyballreaction: ok, pushed my last update of changelog [4/19/2011 12:33:23 AM] Chris Eykamp: great! [4/19/2011 12:33:51 AM] buckyballreaction: are we ready to update version.h? [4/19/2011 12:33:55 AM] buckyballreaction: and build? [4/19/2011 12:33:58 AM] buckyballreaction: and release? [4/19/2011 12:36:51 AM] buckyballreaction: maybe this is too monumental that it's hard to actually do it... [4/19/2011 12:37:16 AM] Samuel Williams: why is there both /exe/robots and /installer/robots containing different robot files? [4/19/2011 12:37:47 AM] buckyballreaction: we need to do some directory clean-up for 016 [4/19/2011 12:38:14 AM] buckyballreaction: merge a few directories as well as create a src/ directory for game sources [4/19/2011 12:38:47 AM] buckyballreaction: i don't know what the windows installer looks for, but for linux and Mac I have always just included both [4/19/2011 12:39:23 AM] Chris Eykamp: /exe/robots is there fortesting. /installer/robots is what gets packaged up [4/19/2011 12:39:44 AM] Chris Eykamp: that way you can muck about with /exe/robots and not worry about screwing up the intsall [4/19/2011 12:39:49 AM] Chris Eykamp: /exe/levels is the same [4/19/2011 12:39:59 AM] buckyballreaction: ah ok [4/19/2011 12:40:25 AM] Chris Eykamp: so make sure any new bot fixes are in the /installer/bots folder [4/19/2011 12:40:34 AM] Samuel Williams: i don't see /exe/levels at all, but rather i use c:/program files/bifighter/levels. [4/19/2011 12:41:09 AM] buckyballreaction: anything in /exe should be expendable, I believe [4/19/2011 12:41:11 AM] buckyballreaction: *should* [4/19/2011 12:41:51 AM] buckyballreaction: but it looks like there are more bots in exe/ than installer/ [4/19/2011 12:42:31 AM] buckyballreaction: instead of 'installer', we should have 'resources' [4/19/2011 12:42:41 AM] Samuel Williams: so everyting in /exe is not included in windows installer? [4/19/2011 12:42:48 AM] buckyballreaction: then the installation process moves what it needs from 'resources' into 'exe' [4/19/2011 12:42:54 AM] buckyballreaction: nope [4/19/2011 12:44:05 AM] buckyballreaction: sam, do you know how to package for windows? [4/19/2011 12:44:11 AM] Chris Eykamp: some things are, some aren't :) [4/19/2011 12:44:19 AM] Chris Eykamp: it could be improved, I suppose [4/19/2011 12:44:24 AM] Chris Eykamp: the .exe file is included [4/19/2011 12:44:25 AM] Samuel Williams: no, but CE probably does.. [4/19/2011 12:44:37 AM] Chris Eykamp: packaging is dead simple. [4/19/2011 12:44:52 AM] Chris Eykamp: build a release build [4/19/2011 12:45:00 AM] Chris Eykamp: (first read the release checklist in the wiki) [4/19/2011 12:45:43 AM] Chris Eykamp: you need nsis to build the release [4/19/2011 12:45:48 AM] Samuel Williams: i use visual studio 2008, thats probably why.. (i still have visual c++ 2010...) [4/19/2011 12:45:59 AM] buckyballreaction: ah nsis... [4/19/2011 12:46:00 AM] Chris Eykamp: then just run the nsis script in the install folder [4/19/2011 12:46:11 AM] Chris Eykamp: I've got it pretty well automated [4/19/2011 12:46:27 AM] Chris Eykamp: Even have the installer named with the version info in version.h [4/19/2011 12:46:48 AM] buckyballreaction: i see it [4/19/2011 12:46:53 AM] Chris Eykamp: it's pretty straightforward [4/19/2011 12:47:09 AM] Chris Eykamp: even does multiple compression types to find the best [4/19/2011 12:47:12 AM] buckyballreaction: sam you need: http://nsis.sourceforge.net/Main_Page [4/19/2011 12:47:19 AM] buckyballreaction: LZMA is almost always the best.. [4/19/2011 12:47:28 AM] Chris Eykamp: yes, probably [4/19/2011 12:53:34 AM] buckyballreaction: yeah, i'm gonna decide against changing the directory structure until after the release [4/19/2011 12:53:44 AM] buckyballreaction: even though it's tempting... [4/19/2011 12:55:42 AM] Samuel Williams: ok, so i install nsis, ran bitfighter installer script, and i see bitfighter-installer-015.. probably should be 015a ? [4/19/2011 12:55:58 AM] buckyballreaction: yeah, the version.h needs to be updated [4/19/2011 12:56:11 AM] buckyballreaction: i can do it and tag the release? [4/19/2011 12:56:52 AM] buckyballreaction: i guess i'm looking for consensus [4/19/2011 1:02:56 AM] Chris Eykamp: I feel uneasy, but only because I am in the unusual position of being completely along for the ride on this release. [4/19/2011 1:03:30 AM] Chris Eykamp: luckily, I have confidence in you guys, so when you think it's ready, then it will likely be at least as fully bakes as some of the things I've put out. [4/19/2011 1:04:58 AM] buckyballreaction: is the only output of the vc++ project the EXE? [4/19/2011 1:05:13 AM] Chris Eykamp: yes [4/19/2011 1:09:30 AM] buckyballreaction: well, i think we're ready [4/19/2011 1:09:39 AM] buckyballreaction: sam? [4/19/2011 1:09:43 AM] Samuel Williams: ? [4/19/2011 1:09:51 AM] buckyballreaction: or better - as ready as we'll ever be... [4/19/2011 1:09:59 AM] Samuel Williams: i think it is ready too. [4/19/2011 1:10:11 AM] buckyballreaction: ok, then i'll update version.h and tag the release [4/19/2011 1:10:21 AM] buckyballreaction: here goes... last chance to stop me [4/19/2011 1:11:35 AM] buckyballreaction: is MASTER_PROTOCOL_VERSION the same? [4/19/2011 1:11:58 AM] buckyballreaction: and CS_PROTOCOL_VERSION? [4/19/2011 1:12:12 AM] buckyballreaction: #define MASTER_PROTOCOL_VERSION 3 #define CS_PROTOCOL_VERSION 32 [4/19/2011 1:12:17 AM] buckyballreaction: is what it is nwo [4/19/2011 1:12:28 AM] Samuel Williams: cs_protocol is client to server, it is the same, keep it at 32 [4/19/2011 1:12:44 AM] buckyballreaction: ok, i'll leave them [4/19/2011 1:12:53 AM] Chris Eykamp: [Tuesday, April 19, 2011 1:11 AM] buckyballreaction: <<< MASTER_PROTOCOL_VERSIONsame [4/19/2011 1:13:00 AM] buckyballreaction: excellent [4/19/2011 1:17:04 AM] buckyballreaction: ok, version.h pushed [4/19/2011 1:17:11 AM] buckyballreaction: added tag for bitfighter-015a [4/19/2011 1:17:20 AM] buckyballreaction: creating mac DMG and source tarball... [4/19/2011 1:22:11 AM] Samuel Williams: are CE going to build and create installer, or is that for me? [4/19/2011 1:22:48 AM] Chris Eykamp: do you want to try? we could see how it builds for someone else [4/19/2011 1:23:06 AM] Samuel Williams: i am trying.. [4/19/2011 1:23:06 AM] Chris Eykamp: I can do it, but I'll need to get rid of my broken project first :) [4/19/2011 1:25:54 AM] buckyballreaction: sam are you having difficulty? [4/19/2011 1:26:33 AM] buckyballreaction: there's nothing like compiling for PPC on a x86_64 system in a VM [4/19/2011 1:27:11 AM] Samuel Williams: crash while testing EXE... i build without mysql, as before i used to always build with myswl... [4/19/2011 1:28:29 AM] Chris Eykamp: we are shipping the version with mysql, aren't we? [4/19/2011 1:28:36 AM] Samuel Williams: seems to crash in main.cpp UserInterface::drawStringf(10, 550, 15, "Master Server - %s", gConnectStatesTable[gClientGame->getConnectionToMaster()->getConnectionState()]); [4/19/2011 1:28:38 AM] Chris Eykamp: oh, sorry, sqlite [4/19/2011 1:28:40 AM] Chris Eykamp: I was confused [4/19/2011 1:28:47 AM] buckyballreaction: yes sqlite [4/19/2011 1:34:53 AM] buckyballreaction: oop [4/19/2011 1:35:30 AM] buckyballreaction: ok so s_bot is failing on mac [4/19/2011 1:35:57 AM] Samuel Williams: level gen fail on mac? [4/19/2011 1:36:02 AM] buckyballreaction: nope [4/19/2011 1:36:07 AM] buckyballreaction: cannot find s_bot.bot [4/19/2011 1:36:23 AM] buckyballreaction: ok case sensitivity is good [4/19/2011 1:37:00 AM] buckyballreaction: ah, i know why [4/19/2011 1:37:18 AM] buckyballreaction: it didn't sync the preferences... [4/19/2011 1:37:22 AM] buckyballreaction: i know how to fix [4/19/2011 1:39:32 AM] Chris Eykamp: oh, hey, I just thought of something... [4/19/2011 1:39:59 AM] Chris Eykamp: do we want to use the auto-upgrade feature to turn on smoothing for everyone? Or is that already on by default (when we added the setting)? [4/19/2011 1:41:11 AM] Samuel Williams: line smoothing? [4/19/2011 1:42:29 AM] Chris Eykamp: the linesmoothing thing you added a while back [4/19/2011 1:42:46 AM] Chris Eykamp: I didn't like it at first, but now that I'm used to it, I find that playing without it is horrible [4/19/2011 1:43:08 AM] Samuel Williams: useLineSmoothing = false; // Enable/disable anti-aliasing it shows false as default currently. [4/19/2011 1:43:24 AM] Samuel Williams: i always have my line smoothing on.. [4/19/2011 1:43:51 AM] Chris Eykamp: right -- I'm suggesting that we consider (now or later) making that be true by default [4/19/2011 1:44:18 AM] Chris Eykamp: I mean by changing people's INI file [4/19/2011 1:44:26 AM] buckyballreaction: what is this line-smoothing? [4/19/2011 1:45:20 AM] buckyballreaction: wow, that looks nice [4/19/2011 1:45:39 AM] Chris Eykamp: did you just answer your own question? [4/19/2011 1:45:47 AM] buckyballreaction: haha, yeah [4/19/2011 1:45:51 AM] buckyballreaction: talking out loud - sorry [4/19/2011 1:46:34 AM] Samuel Williams: with line smoothing, http://96.2.123.136/bitfighter/zap_d-20110418-0136197.png you see how perfectly smooth the lines are. [4/19/2011 1:47:11 AM] buckyballreaction: loks nice [4/19/2011 1:47:28 AM] buckyballreaction: does it require a lot of graphics processing power? [4/19/2011 1:48:11 AM] Chris Eykamp: it works on my laptop just fine [4/19/2011 1:48:37 AM] Chris Eykamp: I think most people would prefer that, but wouldn't know how to set their INI [4/19/2011 1:48:52 AM] Chris Eykamp: another option would be (for 016) to make that a menu option somewhere [4/19/2011 1:49:32 AM] Samuel Williams: use /linesmooth to switch on/off during game play [4/19/2011 1:50:44 AM] buckyballreaction: ok fixed and push mac s_bot problem [4/19/2011 1:50:50 AM] Samuel Williams: i see, i was missing _SECURE_SCL=0 in non-mysql project.. [4/19/2011 1:51:04 AM] buckyballreaction: i can retag any time.. [4/19/2011 1:51:15 AM] Chris Eykamp: I forget -- does your /linesmooth setting get saved in the INI? [4/19/2011 1:51:21 AM] Samuel Williams: yes [4/19/2011 1:52:14 AM] Chris Eykamp: ok, forget the idea for now. I'd like to try making a menu item for it in 016, if I can find a good spot [4/19/2011 1:52:38 AM] buckyballreaction: so yes, enable? i can do that real quick... [4/19/2011 1:53:09 AM] Samuel Williams: looks better with line smoothing enabled.. [4/19/2011 1:53:34 AM] buckyballreaction: if no things there will be graphics issues, then lets do it [4/19/2011 1:53:41 AM] buckyballreaction: no things - no one thinks [4/19/2011 1:54:04 AM] Chris Eykamp: you'd need to use that little function I showed you today... [4/19/2011 1:54:22 AM] buckyballreaction: which one? [4/19/2011 1:54:46 AM] Chris Eykamp: the one that runs once on update... I'd think you'd use that to set the INI setting to true [4/19/2011 1:55:22 AM] Chris Eykamp: then we'd delete it for the enxt version [4/19/2011 1:55:31 AM] Samuel Williams: good, i now have successfully compiled.. [4/19/2011 1:56:07 AM] Chris Eykamp: excellent! [4/19/2011 1:56:18 AM] Samuel Williams: i will push a project updates.. [4/19/2011 1:56:24 AM] Chris Eykamp: would also want to change the default setting in the code to true [4/19/2011 1:56:58 AM] buckyballreaction: how do i use the gINI stuff to force an INI update [4/19/2011 1:58:58 AM] Chris Eykamp: I think it would be this: [4/19/2011 1:59:04 AM] Chris Eykamp: Add this to that function I showed you: [4/19/2011 1:59:06 AM] Chris Eykamp: gIniSettings.useLineSmoothing = true; [4/19/2011 1:59:25 AM] buckyballreaction: that's it? [4/19/2011 1:59:32 AM] Samuel Williams: ok. got a visual 2008 project updated [4/19/2011 1:59:43 AM] Chris Eykamp: that will get run just once; though I'm not actually sure if it will get run after ini settings are loaded (good) or before (useless) [4/19/2011 1:59:47 AM] Chris Eykamp: also [4/19/2011 2:00:02 AM] buckyballreaction: will this make it permanent?: gINI.SetValueB("Effects","LineSmoothing", true, false); [4/19/2011 2:00:20 AM] Chris Eykamp: in config.cpp, change useLineSmoothing = false; to true [4/19/2011 2:00:33 AM] Chris Eykamp: that will set the default for new installs [4/19/2011 2:00:43 AM] buckyballreaction: ok [4/19/2011 2:01:20 AM] Chris Eykamp: gINI.setValueYN(section, "LineSmoothing", true); [4/19/2011 2:01:40 AM] buckyballreaction: that's guaranteed to make permanent? [4/19/2011 2:01:41 AM] Chris Eykamp: where section = "Effects" [4/19/2011 2:02:02 AM] Chris Eykamp: if you do that and gIniSettings.useLineSmoothing = true; [4/19/2011 2:02:19 AM] Chris Eykamp: that will probably work [4/19/2011 2:02:23 AM] Chris Eykamp: not positive [4/19/2011 2:02:37 AM] Chris Eykamp: don't know ifyou also need to write the INI file or not [4/19/2011 2:03:30 AM] Samuel Williams: in void IniSettings::init() useLineSmoothing = true; you may want to change it to true [4/19/2011 2:03:43 AM] Chris Eykamp: I don;t know when that fn is run; if it's run after the Ini is loaded, it should be pernament. If before, you might need to write it. [4/19/2011 2:03:59 AM] Chris Eykamp: @sam, yes, absolutely, that will get it right for new users [4/19/2011 2:04:03 AM] Chris Eykamp: who have no INI file [4/19/2011 2:04:12 AM] buckyballreaction: ok, i will test [4/19/2011 2:04:13 AM] Samuel Williams: or who delete ini file.. [4/19/2011 2:04:34 AM] Chris Eykamp: but if they have an INI file, they will sitll have the old default == false, unless they've set it somehow [4/19/2011 2:07:49 AM] buckyballreaction: didn't work [4/19/2011 2:07:58 AM] buckyballreaction: let me try one of the other ways... [4/19/2011 2:09:07 AM] buckyballreaction: ok this fails: gIniSettings.useLineSmoothing = true; [4/19/2011 2:09:13 AM] buckyballreaction: this works: gIniSettings.useLineSmoothing = true; [4/19/2011 2:09:15 AM] buckyballreaction: argh [4/19/2011 2:09:27 AM] buckyballreaction: this fails: gINI.setValueYN("Effects", "LineSmoothing", true); [4/19/2011 2:09:34 AM] buckyballreaction: this works: gIniSettings.useLineSmoothing = true; [4/19/2011 2:10:45 AM] buckyballreaction: pushed [4/19/2011 2:10:56 AM] buckyballreaction: ready to re-tag? [4/19/2011 2:11:02 AM] Chris Eykamp: super! [4/19/2011 2:11:14 AM] Chris Eykamp: that means the INI is already read when that fn runs [4/19/2011 2:11:25 AM] Chris Eykamp: we need to remember to remove that after the release, btw [4/19/2011 2:11:31 AM] Samuel Williams: make sure it is not forced on.. [4/19/2011 2:11:50 AM] Chris Eykamp: so people who turn it off don;t get it back on when they upgrade; yes [4/19/2011 2:12:14 AM] buckyballreaction: ok [4/19/2011 2:13:07 AM] Chris Eykamp: any more last second features ;) [4/19/2011 2:13:19 AM] Samuel Williams: you could just do a if(gIniSettings.version < 1829) gIniSettings.useLineSmoothing = true; [4/19/2011 2:14:00 AM] Chris Eykamp: true! [4/19/2011 2:14:12 AM] Chris Eykamp: that might actually be better [4/19/2011 2:14:16 AM] buckyballreaction: argh, ok [4/19/2011 2:14:37 AM] Chris Eykamp: for folks who don't upgrade to this version... but I think most will [4/19/2011 2:17:44 AM] buckyballreaction: done! [4/19/2011 2:18:13 AM] buckyballreaction: i fumbled the re-tagging a bit [4/19/2011 2:18:18 AM] buckyballreaction: but got it in the end [4/19/2011 2:20:34 AM] buckyballreaction: ok, now creating source tarball [4/19/2011 2:23:29 AM] Samuel Williams: good, got it compiled, and ran installer.. [4/19/2011 2:24:49 AM] Samuel Williams: for CE to test, http://96.2.123.136/bitfighter/ choose Bitfighter-Installer-015a.exe [4/19/2011 2:26:36 AM] buckyballreaction: ok, mac DMG tested and up on google code [4/19/2011 2:26:42 AM] buckyballreaction: source archive is there too [4/19/2011 2:27:00 AM] buckyballreaction: i will trigger linux builds in the morning - i'm a only semi-conscious right now [4/19/2011 2:27:34 AM] Chris Eykamp: seems to work [4/19/2011 2:27:41 AM] Samuel Williams: good [4/19/2011 2:27:46 AM] Chris Eykamp: yes, good [4/19/2011 2:27:54 AM] Chris Eykamp: the installer seems much bigger than usual [4/19/2011 2:28:02 AM] Chris Eykamp: maybe it's just growing [4/19/2011 2:28:15 AM] Samuel Williams: file size of .exe file? [4/19/2011 2:28:18 AM] buckyballreaction: source archive increase 1.4 MB [4/19/2011 2:28:20 AM] Chris Eykamp: the download [4/19/2011 2:28:33 AM] buckyballreaction: Mac DMG increased 0.9 MB [4/19/2011 2:28:49 AM] Chris Eykamp: lots more code, I suppose (triangle, etc.) [4/19/2011 2:28:51 AM] Samuel Williams: 015a.exe is 2.52 MB 015.exe is 1.85 MB [4/19/2011 2:28:52 AM] Chris Eykamp: sqlite [4/19/2011 2:28:58 AM] buckyballreaction: we have lots of new libraries - sqlite/triangle/recast/ etc. [4/19/2011 2:29:06 AM] Chris Eykamp: yes [4/19/2011 2:29:10 AM] Chris Eykamp: ok, well, great [4/19/2011 2:29:16 AM] buckyballreaction: sqlite is probably the biggest culprit [4/19/2011 2:30:12 AM] Chris Eykamp: yes, that's big [4/19/2011 2:30:58 AM] Samuel Williams: no more 015 comptibility problems when we move to 016.. [4/19/2011 2:31:14 AM] buckyballreaction: time for supreme breakage!! [4/19/2011 2:31:33 AM] buckyballreaction: actually time for bed.. good night! [4/19/2011 2:32:04 AM] Samuel Williams: don't have time for breakage? good night.. [4/19/2011 2:32:11 AM] buckyballreaction: :) [4/19/2011 2:34:27 AM] Chris Eykamp: night! good work to both of you@ [4/19/2011 2:35:17 AM] Samuel Williams: http://code.google.com/p/bitfighter/downloads/list I am sure you will put up 015a for windows soon.. [4/19/2011 2:35:58 AM] Chris Eykamp: are you sure? [4/19/2011 2:36:13 AM] Chris Eykamp: :) [4/19/2011 2:36:24 AM] Samuel Williams: yes [4/19/2011 2:43:30 AM] Samuel Williams: forum spam.. at bitfighter.org.. [4/19/2011 2:43:43 AM] Chris Eykamp: sigh [4/19/2011 2:44:05 AM] Chris Eykamp: I've uploaded 015a to google, but i can't figure out how to get rid of 015 from the downloads page [4/19/2011 2:44:50 AM] Samuel Williams: i can't seem to load google code at the moment.. [4/19/2011 2:44:58 AM] Chris Eykamp: maybe I crashed it [4/19/2011 2:45:35 AM] Samuel Williams: http://google.com/ doesn't work on me... [4/19/2011 2:45:58 AM] Chris Eykamp: wow [4/19/2011 2:47:56 AM] Samuel Williams: can you get rid of spam in bitfighter.org forum? [4/19/2011 2:48:33 AM] Samuel Williams: google now appears up... [4/19/2011 2:49:13 AM] Samuel Williams: and i was able to make the old windows hide from list of downloads [4/19/2011 2:49:22 AM] Samuel Williams: Labels: Deporecated [4/19/2011 2:50:01 AM] Samuel Williams: here is some spam: http://bitfighter.org/forums/search.php?author_id=701&sr=posts [4/19/2011 2:55:43 AM] Chris Eykamp: ah, I'll get rid fo that. [4/19/2011 2:57:04 AM] Chris Eykamp: gone [4/19/2011 2:57:52 AM] Samuel Williams: Good, whats left is announce the new version.. [4/19/2011 3:02:54 AM] Chris Eykamp: yes; tomorrow [4/19/2011 3:03:32 AM] Samuel Williams: good night, i am going to bed. [4/19/2011 3:06:09 AM] Chris Eykamp: good night! [4/19/2011 10:36:46 AM] buckyballreaction: we released [4/19/2011 10:36:48 AM] buckyballreaction: ! [4/19/2011 11:04:13 AM] buckyballreaction: got the following build warning: bitfighter.x86_64: W: binary-or-shlib-calls-gethostbyname /usr/lib64/bitfighter/bitfighter The binary calls gethostbyname(). Please port the code to use getaddrinfo() [4/19/2011 11:42:35 AM] buckyballreaction: theoretically, can that updateFunction be used to create the user prefence folders? I ask because maintaining the creation in the launching script in linux/mac is cumbersome [4/19/2011 12:08:20 PM] Chris Eykamp: interesting thought [4/19/2011 12:08:44 PM] Chris Eykamp: I would create a different fnction that checked if the folders existed and then created them if needed [4/19/2011 12:08:57 PM] Chris Eykamp: it shouldn't be dependent on verions/upgrades [4/19/2011 12:09:20 PM] buckyballreaction: I do have that functionality in the scripts - which is easy to maintain [4/19/2011 12:09:39 PM] buckyballreaction: the problem is when you have a situation like s_bot.bot file that was added [4/19/2011 12:10:04 PM] buckyballreaction: the game needs it, but the folders already exist so it skips the creation/copy of the folders [4/19/2011 12:10:11 PM] Chris Eykamp: ah [4/19/2011 12:10:29 PM] buckyballreaction: so i had to put in a specific test for the s_bot.bot file in the user prefs; if not found, copy it in [4/19/2011 12:10:30 PM] Chris Eykamp: why not do the copy every time? [4/19/2011 12:10:45 PM] Chris Eykamp: that's what nsis does, I think [4/19/2011 12:11:25 PM] buckyballreaction: because the copy should only be done once after update, and the script is called ever time youw ant to play [4/19/2011 12:11:49 PM] Chris Eykamp: I see [4/19/2011 12:12:14 PM] Chris Eykamp: could the script create a "marker file" to show what version it was last run on, and work the way the function does? [4/19/2011 12:12:16 PM] buckyballreaction: here is the script: https://build.opensuse.org/package/view_file?file=bitfighter.sh.for_deb&package=bitfighter&project=games&srcmd5=74a906591db61e9b542b9e51b440e114 [4/19/2011 12:12:31 PM] buckyballreaction: yes it could [4/19/2011 12:13:25 PM] Chris Eykamp: that's one approach [4/19/2011 12:13:37 PM] buckyballreaction: but then that is two places to do this processing [4/19/2011 12:13:51 PM] buckyballreaction: i don't like the script as it is now - it was just a hack [4/19/2011 12:14:44 PM] Chris Eykamp: they could both call a copy function [4/19/2011 12:14:54 PM] Chris Eykamp: the same copy function :) [4/19/2011 12:15:10 PM] buckyballreaction: what do you mean 'both'? [4/19/2011 12:15:38 PM] Chris Eykamp: the if(!exists folder) and the if(currVer!=lastInstallver) [4/19/2011 12:15:54 PM] buckyballreaction: yes [4/19/2011 12:15:54 PM] Chris Eykamp: copy { copy s_bot to new home } [4/19/2011 12:15:59 PM] buckyballreaction: that is what i am thinking [4/19/2011 12:16:10 PM] Chris Eykamp: it's not super clean [4/19/2011 12:16:13 PM] buckyballreaction: but should it be done in the script or in that method? [4/19/2011 12:16:27 PM] Chris Eykamp: I think in the script [4/19/2011 12:16:41 PM] Chris Eykamp: because that method is run on all platforms [4/19/2011 12:16:58 PM] buckyballreaction: ok, i could parse the existing INI for version [4/19/2011 12:17:19 PM] Chris Eykamp: that's a bit of a pain [4/19/2011 12:17:30 PM] Chris Eykamp: well, not too bad, I suppose [4/19/2011 12:17:38 PM] Chris Eykamp: the INI will give you the last run version [4/19/2011 12:17:53 PM] buckyballreaction: but how to get the new version programmatically... [4/19/2011 12:18:34 PM] Chris Eykamp: well, with NSIS it is written when the installer is built. I don't suppose you ahve a build script that could grab that and stick in into your script, do you? [4/19/2011 12:18:52 PM] buckyballreaction: yes actually [4/19/2011 12:19:05 PM] buckyballreaction: sort of... [4/19/2011 12:19:16 PM] buckyballreaction: for all linux platforms but Debian based... [4/19/2011 12:19:48 PM] buckyballreaction: or better said: RPM-based linux platforms can do it simple enough [4/19/2011 12:19:59 PM] buckyballreaction: because they install just like the NSIS script [4/19/2011 12:20:02 PM] Chris Eykamp: what if bitfighter had a -version option? [4/19/2011 12:20:05 PM] buckyballreaction: Mac is possible [4/19/2011 12:20:18 PM] buckyballreaction: with a little thinking... [4/19/2011 12:20:18 PM] Chris Eykamp: too much overhead? [4/19/2011 12:20:53 PM] buckyballreaction: i'm thinking only overhead the first time for the version detection, then whatever is required to do the update directives afterwards [4/19/2011 12:29:26 PM] Chris Eykamp: well, if you're firing up the game every time just to get the version, before launching it for real... [4/19/2011 12:30:52 PM] buckyballreaction: i wouldn't do that.. [4/19/2011 12:31:27 PM] Chris Eykamp: how would you know that the version had changed? [4/19/2011 12:31:40 PM] buckyballreaction: i'm thinking bash trickery to grab the version from the sources, then build the run script ahead of package time with it [4/19/2011 12:32:06 PM] Chris Eykamp: ah, I see; I thought you thought that would be difficult with Debian [4/19/2011 12:32:29 PM] buckyballreaction: yes [4/19/2011 12:32:34 PM] buckyballreaction: but not impossible, i think [4/19/2011 12:32:47 PM] buckyballreaction: i just hate packaging for debian [4/19/2011 12:32:55 PM] buckyballreaction: it so involved it hurts [4/19/2011 12:40:54 PM] buckyballreaction: ok, it's built for my linux platforms: https://build.opensuse.org/package/show?package=bitfighter&project=games [4/19/2011 12:41:10 PM] Chris Eykamp: well, that was easy [4/19/2011 12:41:22 PM] buckyballreaction: that's why i love RPM based distros [4/19/2011 12:41:30 PM] Chris Eykamp: :) [4/19/2011 12:41:43 PM] buckyballreaction: the one Debian 5.0 one took the majority of the time... [4/19/2011 12:41:50 PM] Chris Eykamp: so how do people find and use these files? [4/19/2011 12:42:13 PM] buckyballreaction: you can manually download from: http://download.opensuse.org/repositories/games/ [4/19/2011 12:42:40 PM] buckyballreaction: or add that URL + platform directory to your system's packaging system [4/19/2011 12:42:47 PM] buckyballreaction: and just browse through it [4/19/2011 12:43:07 PM] buckyballreaction: i have never been able to get the Ubuntu platforms working... [4/19/2011 12:43:16 PM] buckyballreaction: but luckily playdeb picked it up [4/19/2011 1:00:07 PM] buckyballreaction: changed this a bit: http://bitfighter.org/wiki/index.php?title=Release_checklist [4/19/2011 1:01:05 PM] buckyballreaction: looks liek we are on 'Add new release to all releases page' [4/19/2011 1:07:30 PM] Chris Eykamp: maybe we should change that to a ordered list so we can refer to steps by numbers! [4/19/2011 1:07:44 PM] buckyballreaction: easy enough [4/19/2011 1:07:53 PM] Chris Eykamp: was that a gentle reminder? :) [4/19/2011 1:08:36 PM] buckyballreaction: done :) [4/19/2011 1:08:36 PM] Chris Eykamp: this is the part that makes me nervous -- there is an autoupdater running, and it's never been tested live. [4/19/2011 1:08:47 PM] Chris Eykamp: well, it was tested live once, and it failed and had to be disabled\ [4/19/2011 1:09:05 PM] Chris Eykamp: I re-enabled it for 015, and it should kick in for 015a when I activate it [4/19/2011 1:09:28 PM] Chris Eykamp: fantastic. Now we're on step 11 [4/19/2011 1:09:31 PM] Chris Eykamp: much easier [4/19/2011 1:09:36 PM] buckyballreaction: haha [4/19/2011 1:12:32 PM] buckyballreaction: 13 is done, and I can do 18 [4/19/2011 1:12:34 PM] buckyballreaction: whenever [4/19/2011 1:14:51 PM] buckyballreaction: haha, source tarball already has three downloads (one was me) [4/19/2011 1:16:48 PM] Chris Eykamp: ok, do 18 at your leisure [4/19/2011 1:17:34 PM] Chris Eykamp: what I'd really like for the release page is checkboxes that we can all check, or something like that! [4/19/2011 1:17:47 PM] Chris Eykamp: maybe a google doc [4/19/2011 1:17:49 PM] buckyballreaction: that would require a web app... [4/19/2011 1:17:52 PM] buckyballreaction: or that [4/19/2011 1:17:54 PM] Chris Eykamp: I know [4/19/2011 1:17:57 PM] buckyballreaction: yeah google doc [4/19/2011 1:18:08 PM] Chris Eykamp: absolutely not worth the effort to do it via the wiki [4/19/2011 1:18:37 PM] buckyballreaction: agreed [4/19/2011 1:19:16 PM] Chris Eykamp: I'm doing it today with a slip of paper [4/19/2011 1:19:24 PM] buckyballreaction: haha [4/19/2011 1:19:26 PM] buckyballreaction: unacceptable... [4/19/2011 1:19:50 PM] Chris Eykamp: 11-17 look like they're on me [4/19/2011 1:20:07 PM] Chris Eykamp: but I need to fix this NPE first! [4/19/2011 1:20:21 PM] buckyballreaction: hooray for NPEs! [4/19/2011 1:20:36 PM] buckyballreaction: i'll look into hooking into google docs.. [4/19/2011 1:20:57 PM] Chris Eykamp: ok, not really worth too much effort there, either [4/19/2011 1:21:03 PM] Chris Eykamp: in my opinion [4/19/2011 1:40:28 PM] buckyballreaction: found this: http://checkvist.com/ [4/19/2011 1:42:11 PM] Chris Eykamp: interesting [4/19/2011 1:43:42 PM] Chris Eykamp: these lists don't look shared [4/19/2011 1:45:02 PM] buckyballreaction: last question here: http://checkvist.com/auth/faq [4/19/2011 1:49:01 PM] Chris Eykamp: ah [4/19/2011 2:12:24 PM] buckyballreaction: it amazes me how long config.cpp can take to compile on some systems... [4/19/2011 2:12:45 PM] buckyballreaction: I bet that that class could use some clean up [4/19/2011 2:18:16 PM] Chris Eykamp: I'm not sure how to simplify it further -- there's a lot fo stuff in there, but it is clean and well organized [4/19/2011 2:49:45 PM] buckyballreaction: man, the recompile of the servers brought the VM to its knees [4/19/2011 2:50:12 PM] Chris Eykamp: really [4/19/2011 2:50:14 PM] Chris Eykamp: wow [4/19/2011 2:50:26 PM] buckyballreaction: it just stopped on config.cpp [4/19/2011 2:50:36 PM] buckyballreaction: i can't even cancel the compile... [4/19/2011 2:50:38 PM] buckyballreaction: locked hard [4/19/2011 2:50:40 PM] Chris Eykamp: maybe it used up it's alotment of cpu [4/19/2011 2:50:48 PM] buckyballreaction: haha [4/19/2011 2:50:55 PM] Chris Eykamp: still stuck there? [4/19/2011 2:51:03 PM] Chris Eykamp: hell, you're root! [4/19/2011 2:51:07 PM] Chris Eykamp: kill -9!@ [4/19/2011 2:51:11 PM] buckyballreaction: yep CTRL + C doesn't even respond [4/19/2011 2:51:27 PM] buckyballreaction: trying to ssh via another shell [4/19/2011 2:53:50 PM] buckyballreaction: wow, locked hard [4/19/2011 2:53:52 PM] buckyballreaction: no response [4/19/2011 2:54:27 PM] buckyballreaction: ports are open and server is respoonding, though [4/19/2011 2:55:13 PM] Chris Eykamp: can't ssh in? [4/19/2011 2:55:18 PM] Chris Eykamp: we can always reboot the machine [4/19/2011 2:55:35 PM] buckyballreaction: nope [4/19/2011 2:55:39 PM] buckyballreaction: but ssh port is responding [4/19/2011 3:22:18 PM] buckyballreaction: i connected! [4/19/2011 3:29:34 PM] buckyballreaction: man, the compiler just can't get by config.cpp [4/19/2011 3:30:32 PM] Chris Eykamp: there's really not that much there from a difficult=to-compile perspective [4/19/2011 3:31:09 PM] buckyballreaction: yeah - i wonder if the version of gcc is running into a header include loop or something [4/19/2011 3:31:46 PM] Chris Eykamp: but why only there? [4/19/2011 3:32:03 PM] Chris Eykamp: you could easily upgrade gcc [4/19/2011 3:32:13 PM] Chris Eykamp: to match whatever you use locally [4/19/2011 3:32:18 PM] buckyballreaction: that's what i'm doing... :) [4/19/2011 3:32:23 PM] Chris Eykamp: nice to have root, eh? [4/19/2011 3:32:36 PM] buckyballreaction: oh yeah [4/19/2011 3:32:49 PM] Chris Eykamp: it's set up so awfully [4/19/2011 3:36:37 PM] buckyballreaction: centos 5 or rhel 5? [4/19/2011 3:36:53 PM] Chris Eykamp: currenly centos [4/19/2011 3:48:37 PM] buckyballreaction: ok trying with gcc44... [4/19/2011 3:51:08 PM] buckyballreaction: stuck on config.cpp again... [4/19/2011 3:51:10 PM] buckyballreaction: i have an idea [4/19/2011 3:52:06 PM] buckyballreaction: i was right! [4/19/2011 3:52:16 PM] buckyballreaction: compling in debug information was causing it to hand [4/19/2011 3:52:17 PM] buckyballreaction: hang [4/19/2011 3:52:58 PM] Chris Eykamp: that's messed up! [4/19/2011 3:53:38 PM] buckyballreaction: so weird - i've been compling with gcc44 and debug information the whole time [4/19/2011 3:57:02 PM] karamazovapy: http://www.youtube.com/watch?v=YccsNO1FV64 [4/19/2011 4:01:31 PM] buckyballreaction: compiled! [4/19/2011 4:01:35 PM] buckyballreaction: here goes server restart... [4/19/2011 4:11:45 PM] buckyballreaction: robots are back! [4/19/2011 4:11:59 PM] buckyballreaction: i had to manually copy in s_bot into the other server folders.. [4/19/2011 4:54:01 PM] Chris Eykamp: there's no way I'm going to get to the release stuff today... hopefully this evening. SORRY! [4/19/2011 4:54:20 PM] buckyballreaction: no problem [4/19/2011 4:54:37 PM] Chris Eykamp: everyone is so excited! [4/19/2011 4:55:10 PM] buckyballreaction: argh - pornographic spam in the forums... [4/19/2011 4:56:57 PM] Chris Eykamp: again? I just deleted some last night [4/19/2011 4:57:29 PM] buckyballreaction: yeah, those ones register and post quickly [4/19/2011 5:08:02 PM] Samuel Williams: i have made a small program that beeps when when bitfighter.org forum changes (someone makes a post) http://96.2.123.136/bitfighter/web_page_checker/ [4/19/2011 5:10:17 PM] Chris Eykamp: I need to finish my project to make you play a game before you regieser for the forums [4/19/2011 5:10:44 PM] buckyballreaction: oh yeah [4/19/2011 5:11:08 PM] Chris Eykamp: that will solve the problem [4/19/2011 5:11:48 PM] Samuel Williams: i can test the master and forum stuff, as i do have a phpbb forum on my computer... http://96.2.123.136/ [4/19/2011 5:13:54 PM] Samuel Williams: another idea is to require an approval for making the first forum post.. [4/19/2011 5:14:09 PM] Chris Eykamp: my idea was to replace the captcha validation with database search on the master [4/19/2011 5:14:26 PM] Chris Eykamp: I got as far as seeing how that worked, creating the captcha shell. [4/19/2011 5:14:33 PM] Chris Eykamp: then got pulled away [4/19/2011 5:14:52 PM] buckyballreaction: you're thinking of a DB table with every username ever logged on? [4/19/2011 5:14:54 PM] Chris Eykamp: I'd still like to move the master/forums/etc. to another server [4/19/2011 5:15:05 PM] buckyballreaction: oh yeah, that too.. [4/19/2011 5:15:08 PM] Chris Eykamp: i thik we have that, with the scores, do we not? [4/19/2011 5:15:38 PM] Chris Eykamp: I guess they'd need to finish a game. But not too onerous [4/19/2011 5:15:45 PM] buckyballreaction: yep [4/19/2011 5:15:48 PM] buckyballreaction: good idea [4/19/2011 5:16:05 PM] Chris Eykamp: it's all doable, and partially done [4/19/2011 5:17:02 PM] Samuel Williams: i did ran into "Maximum login attelpts exceeded, required captha verify" or similar, and that captha seems quite hard... [4/19/2011 5:17:44 PM] buckyballreaction: it so hard only a spammer can crack it... [4/19/2011 5:18:28 PM] Chris Eykamp: indeed [4/19/2011 5:18:42 PM] Chris Eykamp: I've had to manually let a few folks into the forums who couldn't get the captcha right [4/19/2011 5:18:56 PM] Samuel Williams: probably because that captha is used everywhere, makes it easy for spammers.. [4/19/2011 5:20:11 PM] buckyballreaction: i wonder if we could implement security through obscurity... [4/19/2011 5:20:26 PM] buckyballreaction: come up with our own captcha that is super easy [4/19/2011 5:20:50 PM] buckyballreaction: but since it wouldn't be widespread, no spambot would have it in its database of solvers [4/19/2011 5:22:38 PM] Chris Eykamp: it might; for a while I had an addition problem to get into the wiki [4/19/2011 5:23:30 PM] buckyballreaction: something as crazy as asking a really simple question: type in 'bitfighter' with no vowels [4/19/2011 5:23:36 PM] buckyballreaction: err.. task [4/19/2011 6:42:52 PM] Samuel Williams: bitfighter.org + master dead? [4/19/2011 6:44:39 PM] Chris Eykamp: I can connect with the client [4/19/2011 6:44:56 PM] Chris Eykamp: website seems to work [4/19/2011 6:45:35 PM] Samuel Williams: i can't seem to connect to bitfighter.org and i can't connect to master either.. [4/19/2011 6:47:26 PM] Chris Eykamp: odd [4/19/2011 6:47:42 PM] Chris Eykamp: connected again [4/19/2011 6:50:02 PM] Samuel Williams: see if i can connect to bitfighter.org through some proxy, if direct connect dont work for me... [4/19/2011 6:51:03 PM] Samuel Williams: seems like i can't connect to half of the web size that are there.... [4/19/2011 6:52:24 PM] buckyballreaction: i have no problems.. [4/19/2011 7:00:43 PM | Edited 7:01:38 PM] Samuel Williams: Seems to point to my internet service provider having troble when looking at trace route.. [4/19/2011 7:00:45 PM] Samuel Williams: 1 <1 ms <1 ms <1 ms 192.168.3.252 2 9 ms 9 ms 8 ms 10.34.0.1 3 11 ms 10 ms 19 ms 24.230.98.173 4 11 ms 8 ms 16 ms host-189-13-220-24-static.midco.net [24.220.13.1 89] 5 * * * Request timed out. 6 * * * Request timed out. 7 * * * Request timed out. 8 * * * Request timed out. 9 35 ms 41 ms 29 ms 12.122.28.82 10 28 ms 28 ms 29 ms cr1.dlstx.ip.att.net [12.122.28.85] 11 * * * Request timed out. 12 * 29 ms * 75.149.231.25 13 * * * Request timed out. 14 * * * Request timed out. 15 30 ms 28 ms 29 ms te3-1.dsr02.dllstx2.networklayer.com [70.87.255. 130] 16 * * * Request timed out. 17 * * * Request timed out. [4/19/2011 7:01:16 PM] Samuel Williams: i used "tracert bitfighter.org" command [4/19/2011 7:24:13 PM | Edited 7:26:17 PM] Samuel Williams: i can now connect to bitfighter.org and master, probably was some knnd of my ISP maintenance.. (but i randomly can't connect to master..) [4/19/2011 9:57:24 PM | Edited 10:00:09 PM] Samuel Williams: My connection to internet seems to now be fully working... i see an error in "New Features and Enhancements"
  • New levels have engineer enabled by default.
  • Engineer disabled by default [4/19/2011 10:02:45 PM] buckyballreaction: haha [4/19/2011 10:34:00 PM] Samuel Williams: my voting system in now fixed (after release), voting system may be broken before my fix.. [4/19/2011 11:36:15 PM] buckyballreaction: good thing we disabled by default then :) [4/19/2011 11:38:08 PM] Samuel Williams: we could make voting better for version 016. [4/19/2011 11:39:03 PM] buckyballreaction: agree [4/20/2011 12:01:58 AM] Chris Eykamp: @bbr, can you paste on pastebin the release list from main.cpp so I don't need to update? [4/20/2011 12:02:41 AM] buckyballreaction: okey doke [4/20/2011 12:03:40 AM] buckyballreaction: http://pastie.org/1814280 [4/20/2011 12:03:51 AM] buckyballreaction: i didn't do sub-groupings [4/20/2011 12:07:58 AM] Chris Eykamp: just noticed a little script box on pastie... can we paste that into a forums message to "embed" pastie pasting? [4/20/2011 12:08:24 AM] buckyballreaction: not sure - never used it [4/20/2011 12:09:10 AM] buckyballreaction: nope [4/20/2011 12:09:27 AM] buckyballreaction: no cross-site scripting vulnerabilities here :) [4/20/2011 12:13:15 AM] Samuel Williams: features look like this when it is on HTML file. http://96.2.123.136/upload/015a_features.html [4/20/2011 12:14:17 AM] Chris Eykamp: they avoid running into walls, turrets, and forcefield projectors less [4/20/2011 12:14:24 AM] Chris Eykamp: well, more [4/20/2011 12:14:28 AM] buckyballreaction: haha [4/20/2011 12:14:47 AM] buckyballreaction: probably my bad grammar [4/20/2011 12:15:52 AM | Edited 12:16:07 AM] Samuel Williams: they don't avoid, but tries to avoid.. but Robots may have a lower chance of running into walls. [4/20/2011 12:25:45 AM] Samuel Williams: in http://bitfighter.org/downloads why use https link for windows download, but http link for mac download? [4/20/2011 12:26:01 AM] Chris Eykamp: http://bitfighter.org/downloads updated [4/20/2011 12:26:51 AM] buckyballreaction: that's weird [4/20/2011 12:27:19 AM] Chris Eykamp: both use https now [4/20/2011 12:27:49 AM] Samuel Williams: https is slower, but a little bit more secure... [4/20/2011 12:28:44 AM] Chris Eykamp: what are the versions in version.h? [4/20/2011 12:29:13 AM] buckyballreaction: BUILD_VERSION 1836 [4/20/2011 12:29:17 AM] buckyballreaction: CS_PROTOCOL_VERSION 32 [4/20/2011 12:29:21 AM] buckyballreaction: MASTER_PROTOCOL_VERSION 3 [4/20/2011 12:29:25 AM] buckyballreaction: ZAP_GAME_RELEASE "015a" [4/20/2011 12:29:43 AM] Samuel Williams: you can run the game, then in INI file look for Version=1836 [4/20/2011 12:31:00 AM] Samuel Williams: ore press F7 while running game and look for "Build" [4/20/2011 12:31:30 AM] Chris Eykamp: I don't (yet) have new version installed [4/20/2011 12:31:47 AM] Chris Eykamp: old version now displays upgrade msg in scroller on main screen [4/20/2011 12:32:08 AM] buckyballreaction: oh good [4/20/2011 12:32:08 AM] Chris Eykamp: that is step #14 [4/20/2011 12:32:21 AM] Chris Eykamp: #15 is the one that makes me nervous [4/20/2011 12:32:28 AM] Chris Eykamp: but let's do it! [4/20/2011 12:35:37 AM] Chris Eykamp: windows auto-updater seems to be working [4/20/2011 12:35:55 AM] buckyballreaction: hooray! [4/20/2011 12:36:36 AM] Chris Eykamp: it works! [4/20/2011 12:36:53 AM] Chris Eykamp: if you run 015, you get a dialog that installs 015a for you [4/20/2011 12:36:59 AM] buckyballreaction: cool [4/20/2011 12:37:03 AM] Chris Eykamp: very [4/20/2011 12:37:18 AM] Chris Eykamp: but only on windows [4/20/2011 12:38:16 AM] buckyballreaction: I toyed with a similar framework for Mac, but it had issues [4/20/2011 12:38:30 AM] buckyballreaction: i don't remember what they were - only that it would require some overhead [4/20/2011 12:38:43 AM] Chris Eykamp: sparkle [4/20/2011 12:39:25 AM] buckyballreaction: that's right [4/20/2011 12:39:44 AM] Chris Eykamp: ok, just 16 & 17 left [4/20/2011 12:39:55 AM] Chris Eykamp: what are the 3 or 4 most compelling upgrades? [4/20/2011 12:40:00 AM] Chris Eykamp: bot zones [4/20/2011 12:40:05 AM] Chris Eykamp: polywalls [4/20/2011 12:40:17 AM] buckyballreaction: chat message enchancements? [4/20/2011 12:40:19 AM] Chris Eykamp: /addbots? [4/20/2011 12:40:26 AM] buckyballreaction: separation/length [4/20/2011 12:40:29 AM] Chris Eykamp: what are those? [4/20/2011 12:40:48 AM] Chris Eykamp: are they headline features? [4/20/2011 12:40:56 AM] buckyballreaction: eh [4/20/2011 12:41:08 AM] buckyballreaction: probably not [4/20/2011 12:41:14 AM] buckyballreaction: just nice to have [4/20/2011 12:41:19 AM] Chris Eykamp: lots of nice to have in this release [4/20/2011 12:42:17 AM] buckyballreaction: yeah s_bot is a good feature [4/20/2011 12:42:22 AM] buckyballreaction: bot that can play on all game modes [4/20/2011 12:42:23 AM] Chris Eykamp: ok, better bots [4/20/2011 12:42:28 AM] Chris Eykamp: good [4/20/2011 12:42:33 AM] Chris Eykamp: 4 headliners [4/20/2011 12:48:47 AM] Chris Eykamp: http://bitfighter.org/forums/viewtopic.php?f=20&t=684 [4/20/2011 12:48:57 AM] Chris Eykamp: Does that sum it up? [4/20/2011 12:50:11 AM] buckyballreaction: yep [4/20/2011 12:50:30 AM] buckyballreaction: oh, new linux platforms: openSUSE 11.4, Fedora 14 [4/20/2011 12:51:18 AM] Chris Eykamp: will you fix the releases page? [4/20/2011 12:51:25 AM] Chris Eykamp: can you fix the releases page? [4/20/2011 12:51:28 AM] buckyballreaction: i cannot [4/20/2011 12:51:32 AM] Chris Eykamp: ok [4/20/2011 12:51:44 AM] Chris Eykamp: email first, then fix [4/20/2011 12:52:11 AM] buckyballreaction: i can login... [4/20/2011 12:52:16 AM] buckyballreaction: but no edit appears anywhere [4/20/2011 12:53:17 AM] buckyballreaction: added #19: Post the update to gaming web sites [4/20/2011 12:54:05 AM] Chris Eykamp: ah yes [4/20/2011 12:54:08 AM] Chris Eykamp: that [4/20/2011 12:54:14 AM] Chris Eykamp: the most unpleasant of all [4/20/2011 12:54:23 AM] buckyballreaction: yep [4/20/2011 12:54:35 AM] buckyballreaction: i think i can do happypenguin.. [4/20/2011 12:57:52 AM] Chris Eykamp: linux version supdated [4/20/2011 12:58:11 AM] buckyballreaction: thanks [4/20/2011 12:58:21 AM] Chris Eykamp: ok. whew [4/20/2011 12:58:28 AM] Chris Eykamp: and found an error on my taxes to boot [4/20/2011 1:00:02 AM] Chris Eykamp: thus (nearly) concludes the first Chris-free Bitfighter release [4/20/2011 1:00:05 AM] Chris Eykamp: good work guys [4/20/2011 1:00:13 AM] buckyballreaction: hehe [4/20/2011 1:00:16 AM] buckyballreaction: good work [4/20/2011 1:03:17 AM] buckyballreaction: ok submitted to happypengion [4/20/2011 1:05:52 AM] Chris Eykamp: sorry to keep asking you for stuff, but can you send me the code for rendering arrows in the eidtor? Look for the string al =, and you should find it in editor.cpp [4/20/2011 1:05:58 AM] Chris Eykamp: somehow i deleted it [4/20/2011 1:07:35 AM] buckyballreaction: found this: http://pastie.org/1814369 [4/20/2011 1:08:59 AM] buckyballreaction: the whole method: http://pastie.org/1814374 [4/20/2011 1:13:13 AM] Chris Eykamp: perfect, thanks [4/20/2011 1:13:42 AM] Chris Eykamp: I can almost place textItems again (only item on the dock at the moment). that is, if I want to place them at 0,0 [4/20/2011 1:13:52 AM] Chris Eykamp: ugh, long way to go [4/20/2011 1:14:31 AM] Chris Eykamp: so... how long should we wait to see if we shoudl move forward with serious breakage? [4/20/2011 1:14:54 AM] buckyballreaction: i have a plan to start moving files around after i am done with my last final [4/20/2011 1:15:08 AM] buckyballreaction: specifically to clean up the installer and exe directories first [4/20/2011 1:15:16 AM] buckyballreaction: and adjust installation scripts accordingly [4/20/2011 1:16:09 AM] buckyballreaction: then... after you commit sometime, I was going to make another sub folder called 'src' and put all the code in there - and adjust project files accordingly [4/20/2011 1:17:24 AM] Chris Eykamp: great! [4/20/2011 1:19:27 AM] buckyballreaction: that is mostly just housekeeping... [4/20/2011 1:22:38 AM] Chris Eykamp: you can rename some misnamed classes while you're at it, if you like [4/20/2011 1:22:47 AM] buckyballreaction: oooo [4/20/2011 1:22:48 AM] buckyballreaction: ok [4/20/2011 1:22:53 AM] Chris Eykamp: huntersGame.cpp ==> nexusgame.cpp [4/20/2011 1:23:01 AM] Chris Eykamp: stuff like that [4/20/2011 1:23:25 AM] buckyballreaction: I have this idea of a 'Great extern Search and Destroy' [4/20/2011 1:23:27 AM] Chris Eykamp: you;ll enjoy that [4/20/2011 1:23:34 AM] buckyballreaction: for code cleanup [4/20/2011 1:23:39 AM] Chris Eykamp: good [4/20/2011 1:24:28 AM] Chris Eykamp: oh greatl [4/20/2011 1:24:54 AM] Chris Eykamp: because I am using old version of version.h, every time I start in the debugger, it downloads the new version from bitfighter.or [4/20/2011 1:24:55 AM] Chris Eykamp: g [4/20/2011 1:25:02 AM] buckyballreaction: hahaha [4/20/2011 1:27:02 AM] Samuel Williams: you probably want to avoid a bunch of renaming and moving files unless all programmers don't have any major un-commited un-pushed changes.. [4/20/2011 1:27:11 AM] buckyballreaction: yep [4/20/2011 1:27:18 AM] Samuel Williams: it makes merging harder.. [4/20/2011 1:27:39 AM] buckyballreaction: i can do the installer exe stuff easily enough, but the rest should wait for the new shiny editor [4/20/2011 1:28:17 AM] Samuel Williams: lets hope it is not a new broken editor.. [4/20/2011 1:30:04 AM] Chris Eykamp: right now it's not even broken [4/20/2011 1:48:07 AM] Samuel Williams: with editor using game objects, it could later be possible to have players inside editor, kind of like this: http://96.2.123.136/bitfighter/editor-and-players.gif Might look weard to players when wall changes shapes, not sure this is possible yet.. [4/20/2011 1:49:17 AM] Samuel Williams: and that could also be one way of spectator mode as well.. [4/20/2011 1:58:34 AM] buckyballreaction: that would be nuts! [4/20/2011 2:42:23 AM] buckyballreaction: ok, finally done with most of my exam [4/20/2011 2:42:27 AM] buckyballreaction: good night! [4/20/2011 10:36:24 AM] buckyballreaction: i just played a game with someone complaining about the chat location [4/20/2011 10:36:41 AM] buckyballreaction: but i think it's just because they're not used to it [4/20/2011 10:36:59 AM] buckyballreaction: also, got positive feedback on the linesmoothing [4/20/2011 11:26:43 AM] Chris Eykamp: if worse comes to worst, we can provide an INI option to remix the chat messages [4/20/2011 11:27:00 AM] Chris Eykamp: but I'm not too worried [4/20/2011 11:58:43 AM] buckyballreaction: yeah - i think it's a good change that people will just have to get used [4/20/2011 12:04:37 PM] karamazovapy: how close are we to the next release? [4/20/2011 12:04:46 PM] buckyballreaction: months! [4/20/2011 12:04:49 PM] Chris Eykamp: about -1 days [4/20/2011 12:05:01 PM] karamazovapy: I thought it was both of those [4/20/2011 12:05:20 PM] karamazovapy: kept wondering why I hadn't seen an announcement! [4/20/2011 12:05:34 PM] Chris Eykamp: it's there now [4/20/2011 12:05:42 PM] buckyballreaction: not on main page [4/20/2011 12:05:51 PM] Chris Eykamp: oh, crap... was that on the checklist? [4/20/2011 12:05:57 PM] buckyballreaction: let me check... [4/20/2011 12:05:59 PM] Chris Eykamp: I'll add something right now [4/20/2011 12:06:16 PM] Chris Eykamp: either way, I've only done this what... 100 times? [4/20/2011 12:06:19 PM] buckyballreaction: #16 [4/20/2011 12:13:32 PM] Chris Eykamp: home page updated [4/20/2011 12:13:44 PM] Chris Eykamp: numbered items are great! [4/20/2011 12:15:12 PM] buckyballreaction: you've convinced me... [4/20/2011 12:15:38 PM] Chris Eykamp: 18 windows downloads since last night [4/20/2011 12:16:04 PM] Chris Eykamp: mostly autoupgrade, I suspect [4/20/2011 12:18:32 PM] buckyballreaction: is auto upgrade forced? [4/20/2011 12:29:52 PM] Chris Eykamp: forced? The user is prompted [4/20/2011 12:30:09 PM] Chris Eykamp: but they are prompted every time, unless they disable autoupdate in their INI file [4/20/2011 12:30:16 PM] buckyballreaction: ok [4/20/2011 12:30:17 PM] Chris Eykamp: and no one knows how to do that [4/20/2011 12:30:34 PM] Chris Eykamp: so I think everyone will go ahead and upgrade [4/20/2011 12:31:00 PM] Chris Eykamp: there is also an in-game update notice, but that only kicks in when the major version changes (i.e. 015 to 016) [4/20/2011 12:31:13 PM] Chris Eykamp: that works for all platforms [4/20/2011 12:31:25 PM] Chris Eykamp: but does not do anything beyond displaying a notice [4/20/2011 12:31:47 PM] Chris Eykamp: you can see that by decrementing clientserver protocol version and recompiling [4/20/2011 12:31:52 PM] Chris Eykamp: in version.h [4/20/2011 12:32:13 PM] karamazovapy: so if I want to update my server, can I use hg up -u bitfighter-015a ? [4/20/2011 12:33:27 PM] karamazovapy: or hg pull -u bitfighter-015a ? [4/20/2011 12:33:28 PM] karamazovapy: or...? [4/20/2011 12:34:15 PM] buckyballreaction: the latter: hg pull -u bitfighter-015a [4/20/2011 12:34:29 PM] buckyballreaction: no [4/20/2011 12:34:34 PM] buckyballreaction: hg pull -u [4/20/2011 12:34:48 PM] buckyballreaction: then: hg up bitfighter-015a [4/20/2011 12:34:55 PM] karamazovapy: okay [4/20/2011 12:35:19 PM] karamazovapy: how to update a linux server would be a good wiki section [4/20/2011 12:35:58 PM] buckyballreaction: I wrote this: http://bitfighter.org/wiki/index.php?title=Contribute_using_Mercurial [4/20/2011 12:36:08 PM] buckyballreaction: but i guess that's not quite the exact steps [4/20/2011 12:36:46 PM] karamazovapy: not really...and I wouldn't look there if I was just interested in getting code and not contributing [4/20/2011 12:37:11 PM] karamazovapy: it'd be good to have pull, up, and make clean listed in a set of directions [4/20/2011 12:37:19 PM] buckyballreaction: ok, i'll write it [4/20/2011 12:37:27 PM] karamazovapy: cool. coolcoolcool. [4/20/2011 12:56:05 PM] buckyballreaction: Is this acceptable?: http://bitfighter.org/wiki/index.php?title=Updating_a_Linux_server_to_the_latest_code [4/20/2011 12:59:14 PM] karamazovapy: my chat isn't working [4/20/2011 12:59:55 PM] buckyballreaction: how so? [4/20/2011 1:00:14 PM] karamazovapy: I type a global chat message in game and it doesn't appear [4/20/2011 1:00:58 PM] karamazovapy: doesn't work for me on my server or classic [4/20/2011 1:01:07 PM] karamazovapy: no idea why [4/20/2011 1:01:21 PM] buckyballreaction: i'll join you on your server in a moment... [4/20/2011 1:01:23 PM] karamazovapy: quick chat doesn't appear [4/20/2011 1:01:41 PM] karamazovapy: or team [4/20/2011 1:01:53 PM] karamazovapy: footloose (presumably on 015) could see my chat though [4/20/2011 1:03:59 PM] karamazovapy: I can see when I type, but nothing appears after I send [4/20/2011 1:04:16 PM] karamazovapy: and I can't see anyone else, presumably [4/20/2011 1:04:21 PM] buckyballreaction: sounds like your client is messed up [4/20/2011 1:04:31 PM] buckyballreaction: what client are you using? [4/20/2011 1:04:33 PM] karamazovapy: I'll try reinstalling [4/20/2011 1:04:38 PM] karamazovapy: 015a on windows 7 [4/20/2011 1:04:41 PM] buckyballreaction: your server is handling the messages just fine [4/20/2011 1:06:35 PM] buckyballreaction: did you use the auto-update function? [4/20/2011 1:06:51 PM] buckyballreaction: maybe the auto-update isn't clearing out the proper files [4/20/2011 1:07:37 PM] karamazovapy: I didn't auto update, I just ran the installer and put it in my old directory [4/20/2011 1:07:47 PM] buckyballreaction: ok [4/20/2011 1:07:57 PM] buckyballreaction: you had me scared for a moment... [4/20/2011 1:08:07 PM] karamazovapy: didn't realize that would cause a problem [4/20/2011 1:08:15 PM] buckyballreaction: it shouldn't... [4/20/2011 1:08:27 PM] karamazovapy: ew...I have to fix my .ini now [4/20/2011 1:08:40 PM] buckyballreaction: ah, maybe it was an incompatible INI [4/20/2011 1:08:50 PM] karamazovapy: could be [4/20/2011 1:09:09 PM] buckyballreaction: but we tried to keep compatibility [4/20/2011 1:09:17 PM] buckyballreaction: unless you put some goofy things in there [4/20/2011 1:09:30 PM] karamazovapy: nah, but I've been using the same .ini forever [4/20/2011 1:09:46 PM] buckyballreaction: then i'm fresh out of ideas [4/20/2011 1:11:51 PM] karamazovapy: an ini dating back to 013 might be goofy enough [4/20/2011 1:15:22 PM] Chris Eykamp: a partial or missing INI should be restored with the missing settings set to their default values wihtout incident [4/20/2011 2:37:50 PM] karamazovapy: well no explanation from me. just quirky observation. [4/20/2011 6:02:15 PM] Chris Eykamp: 59 dowloads already. not bad! [4/20/2011 6:45:30 PM] buckyballreaction: 67! [4/20/2011 6:46:46 PM] buckyballreaction: http://happypenguin.org/ [4/20/2011 6:46:50 PM] buckyballreaction: top headline! [4/20/2011 6:47:37 PM] buckyballreaction: thought the botched up my list... [4/20/2011 6:47:42 PM] buckyballreaction: though they [4/20/2011 9:15:07 PM] buckyballreaction: and... Mac is beating windows! [4/20/2011 10:12:50 PM] buckyballreaction: ok, now time to clean up the installer files... [4/20/2011 10:20:27 PM] buckyballreaction: no one is coding in the 'installer' or 'exe' directories, i hope [4/20/2011 10:21:33 PM] buckyballreaction: haha, thanks _k for adding a comment on happypenguin [4/20/2011 10:34:41 PM] buckyballreaction: I got some positive feedback on the auto-updater [4/21/2011 12:23:20 AM] buckyballreaction: sam, are you around? [4/21/2011 12:23:35 AM] Samuel Williams: hi [4/21/2011 12:23:37 AM] buckyballreaction: hi [4/21/2011 12:23:59 AM] buckyballreaction: quesiton about snapshots - if the snapshots folder isn't there is it automatically created on windows? [4/21/2011 12:25:19 AM] Samuel Williams: what is the screenshot button? [4/21/2011 12:25:52 AM] buckyballreaction: f11? [4/21/2011 12:26:25 AM] Samuel Williams: f11 do nothing.. [4/21/2011 12:26:59 AM] Samuel Williams: found it Ctrl+Q [4/21/2011 12:27:03 AM] buckyballreaction: haha [4/21/2011 12:27:10 AM] buckyballreaction: i started on the other side of the keyboard... [4/21/2011 12:27:22 AM] Samuel Williams: screenshot folder get created after using ctrl+Q [4/21/2011 12:27:29 AM] buckyballreaction: ok thanks [4/21/2011 12:27:39 AM] buckyballreaction: i'm reorganizing the installer folders... [4/21/2011 12:27:57 AM] Samuel Williams: too bad they are BMP and not PNG... [4/21/2011 12:28:20 AM] buckyballreaction: yeah - one of my goals it figure out how to hook into libpng3 [4/21/2011 12:32:29 AM] buckyballreaction: do you know if master.cfg in the exe/ folder is used anymore? [4/21/2011 12:33:11 AM] Samuel Williams: it is only used for master [4/21/2011 12:33:22 AM] Samuel Williams: server and client don't use master.cfg [4/21/2011 12:33:33 AM] buckyballreaction: ok [4/21/2011 12:33:43 AM] buckyballreaction: but it is still actually used? [4/21/2011 12:34:23 AM] Samuel Williams: not used on server / client, but it is used for running master. [4/21/2011 12:56:27 AM] buckyballreaction: wow [4/21/2011 12:56:31 AM] buckyballreaction: hgserve is great! [4/21/2011 12:56:56 AM] buckyballreaction: i can pull from one virtual machine to another without having to push to google code and mess everyone up [4/21/2011 1:01:03 AM] buckyballreaction: ok, I installed vc++ 2008 in my windows VM [4/21/2011 1:01:13 AM] buckyballreaction: now to see how badly i broke the projects [4/21/2011 1:03:00 AM] buckyballreaction: sam, is the one I use bitfighter_sam.vcproj? [4/21/2011 1:03:11 AM] Samuel Williams: yes, [4/21/2011 1:04:00 AM] Samuel Williams: mysql needs some mysql files installed in computer. [4/21/2011 1:04:16 AM] buckyballreaction: do you build the TNL and libtomcrypt projects separately? [4/21/2011 1:04:22 AM] Samuel Williams: yes [4/21/2011 1:05:03 AM] buckyballreaction: how would i fix this?: fatal error C1083: Cannot open include file: 'dsound.h': No such file or directory [4/21/2011 1:05:16 AM] Samuel Williams: be sure to build libtocrypt / tnl in both debug and release mode.. [4/21/2011 1:05:30 AM] Samuel Williams: you need dsound and dinput [4/21/2011 1:05:47 AM] buckyballreaction: in other words... i need to install directx? [4/21/2011 1:06:10 AM] Samuel Williams: /win_include_do_not_distribute/readme.txt [4/21/2011 1:06:32 AM] buckyballreaction: ah ha! [4/21/2011 1:06:35 AM] buckyballreaction: thanks! [4/21/2011 1:08:09 AM] buckyballreaction: can you just zip up and send me those files? I don't want to start a 500MB download... [4/21/2011 1:08:25 AM] buckyballreaction: please [4/21/2011 1:08:31 AM] Samuel Williams: ok.. [4/21/2011 1:11:19 AM] Samuel Williams: http://96.2.123.136/win_include_do_not_distribute.zip [4/21/2011 1:11:36 AM] Samuel Williams: i may later remove the file in 5 minutes... [4/21/2011 1:11:46 AM] buckyballreaction: ok, i have it [4/21/2011 1:11:47 AM] buckyballreaction: thanks! [4/21/2011 1:13:18 AM] Samuel Williams: probably should go to Option, project and solutions, VC++ directory and add a full path to \win_include_do_not_distribute [4/21/2011 1:13:28 AM] Samuel Williams: in tools.. [4/21/2011 1:13:48 AM] buckyballreaction: can you have multiple solutions open at once? [4/21/2011 1:13:49 AM] Samuel Williams: for both include and library paths. [4/21/2011 1:14:01 AM] Samuel Williams: yes [4/21/2011 1:14:42 AM] Samuel Williams: As long as they are different solutions, but opening same solutions multiple times might cause problems. [4/21/2011 1:15:13 AM] buckyballreaction: ok [4/21/2011 1:15:18 AM] Samuel Williams: might want to also compile \lua\lua-vec in debug mode only. [4/21/2011 1:16:52 AM] buckyballreaction: ok [4/21/2011 1:17:26 AM] buckyballreaction: are those the only 3 besides zap? [4/21/2011 1:17:48 AM] Samuel Williams: yes that the only 3, then Zap. [4/21/2011 1:17:57 AM] buckyballreaction: ok, done with those - now to Zap [4/21/2011 1:18:16 AM] Samuel Williams: they got compiled into /lib [4/21/2011 1:18:52 AM] buckyballreaction: intersting... [4/21/2011 1:19:47 AM] Samuel Williams: you may have up to 5 files in /lib, depending if you compiled for both debug and release. libtomcrypt.lib libtomcryptd.lib lua-vec.lib tnl.lib tnld.lib [4/21/2011 1:20:28 AM] buckyballreaction: that's interesting - part of my reorginization was to create a /lib directory already... [4/21/2011 1:20:33 AM | Edited 1:21:53 AM] Samuel Williams: compiling Zap in debug requires tnld libtomcryptd and lua-vec library compiling Zap in release requires tnl libtomcrypt and lua-vec library [4/21/2011 1:24:12 AM] Samuel Williams: my project files may need a little more organizing, mostly to include multiple projects in one solution like on Visual 2010 project. [4/21/2011 1:36:19 AM] buckyballreaction: is ZAP.vcproj file needed anymore? [4/21/2011 1:37:26 AM] Samuel Williams: they are outdated and probably don't work no more.. [4/21/2011 1:37:39 AM] Samuel Williams: Zap.vcproj is outdated. [4/21/2011 1:37:53 AM] Samuel Williams: you can probably delete ZAP.vcproj. [4/21/2011 1:41:20 AM] buckyballreaction: what is IntelliSense? [4/21/2011 1:41:54 AM] Samuel Williams: intellisense is like an auto-complete feature. [4/21/2011 1:42:06 AM] buckyballreaction: OH MY GOODNESS IT COMPILED [4/21/2011 1:42:53 AM] buckyballreaction: except the exe is zap_d.exe [4/21/2011 1:42:56 AM] buckyballreaction: is that normal? [4/21/2011 1:43:50 AM] Samuel Williams: you can change it if you want, Project, properties, linker, general, output file. [4/21/2011 1:43:59 AM] buckyballreaction: but htat is normal for you? [4/21/2011 1:44:04 AM] Samuel Williams: yes [4/21/2011 1:44:15 AM] buckyballreaction: and you had to rename it for the installer? [4/21/2011 1:44:38 AM | Edited 1:45:45 AM] Samuel Williams: Release mode Output files is Bitfighter.exe [4/21/2011 1:44:52 AM] buckyballreaction: ahh... makes sense [4/21/2011 1:44:56 AM] Samuel Williams: it is only debug build that usually end up with zap_d.exe [4/21/2011 1:56:18 AM] buckyballreaction: word of warning - don't try to run bitfighter in a windows vm... [4/21/2011 1:56:48 AM] Samuel Williams: slow? [4/21/2011 1:57:04 AM] buckyballreaction: crash... [4/21/2011 1:57:15 AM] buckyballreaction: something with GLUT + DirectX + VMware [4/21/2011 1:57:59 AM] Samuel Williams: probably something with either directx sound or input. [4/21/2011 1:58:14 AM] Samuel Williams: entire windows crash? [4/21/2011 1:58:30 AM] Samuel Williams: blue screen of death? [4/21/2011 1:58:51 AM] buckyballreaction: it froze my linux box [4/21/2011 1:58:53 AM] buckyballreaction: linux host [4/21/2011 1:58:58 AM] buckyballreaction: it was amazing [4/21/2011 1:59:14 AM] buckyballreaction: i had to reconnect to it via SSH and force quit the X window system [4/21/2011 1:59:19 AM | Edited 1:59:25 AM] Samuel Williams: ok, thats a more dangerous crash.. [4/21/2011 2:01:36 AM] buckyballreaction: oh yeah [4/21/2011 2:02:07 AM] Samuel Williams: might be possible to compile without directX sound and input.. if there is a alternative to sound / joystics. [4/21/2011 2:03:20 AM] buckyballreaction: not sure that there is on windows [4/21/2011 2:03:27 AM] buckyballreaction: sdl_sound [4/21/2011 2:03:33 AM] buckyballreaction: not sure about joysticks [4/21/2011 2:04:34 AM] Samuel Williams: may be possible to compile without joystick support for your testing, but should not release without joystick support... [4/21/2011 2:06:10 AM | Edited 2:06:27 AM] Samuel Williams: probably your virtual machine software don't quite support directX. [4/21/2011 2:07:43 AM] buckyballreaction: ok, pushing my radical changes [4/21/2011 2:07:52 AM] buckyballreaction: windows project builds and installer script works [4/21/2011 2:08:01 AM] buckyballreaction: i will fix linux and mac tomorrow [4/21/2011 2:08:31 AM] Samuel Williams: ok,, and visual 2010 projects? [4/21/2011 2:08:41 AM] buckyballreaction: yep, fixed those too [4/21/2011 2:08:46 AM] Samuel Williams: good [4/21/2011 2:08:47 AM] buckyballreaction: (I hope) [4/21/2011 2:09:32 AM] Samuel Williams: i may need to figure out an easier way to build bitfighter with mysql.. [4/21/2011 2:09:35 AM] buckyballreaction: mac is going to be hard.... [4/21/2011 2:09:50 AM] buckyballreaction: can you use the same project but use a different target? [4/21/2011 2:10:09 AM] Samuel Williams: i could try [4/21/2011 2:10:54 AM] Samuel Williams: one problem is all debug / release / possible_other_Modes all use the same C++ files [4/21/2011 2:11:14 AM] buckyballreaction: ah, true [4/21/2011 2:11:25 AM] buckyballreaction: so you'd have to do a clean in between [4/21/2011 2:12:04 AM] Samuel Williams: they can each have their own temp building directory, so no clean needed.. [4/21/2011 2:12:20 AM] buckyballreaction: ah, i guess misunderstood that part, then [4/21/2011 2:12:38 AM | Edited 2:13:36 AM] Samuel Williams: And visual C++ looks for any .h files that have changed and re-compiles all C++ that uses .h [4/21/2011 2:13:05 AM] Samuel Williams: Visual C++ rarely needs clean [4/21/2011 2:13:10 AM] buckyballreaction: cool [4/21/2011 2:14:06 AM] buckyballreaction: ok, i gotta sleep now [4/21/2011 2:14:10 AM] buckyballreaction: good night [4/21/2011 2:14:14 AM] Samuel Williams: bye [4/21/2011 2:14:28 AM] Samuel Williams: see you tomorrow [4/21/2011 12:03:13 PM] buckyballreaction: more porn spam [4/21/2011 12:05:07 PM] buckyballreaction: i'm starting to think we need to implement that forum safeguard sooner [4/21/2011 2:03:27 PM] karamazovapy: there are supposedly text captchas built into the admin panel, but I couldn't get any of them to actually work [4/21/2011 2:04:20 PM] karamazovapy: a middle school principal sat me down for a talk today because I told a 13 year old who was throwing pencils to stop being a douchebag and he told on me [4/21/2011 2:04:48 PM] buckyballreaction: ouch [4/21/2011 2:05:22 PM] karamazovapy: I maintain that he was, in fact, being a douchebag, and doubly so because he was also a grass [4/21/2011 2:07:12 PM] buckyballreaction: hypothetical question: so how do we teach kids to own up to their actions? [4/21/2011 2:08:54 PM] karamazovapy: the principal's stance was that calling him was a douchebag and I should've sent him to the office. I'm generally against doing that, because then they miss the rest of the class, don't learn anything, and are behind for the next class [4/21/2011 2:09:16 PM] karamazovapy: calling him a douchebag was uprofessional [4/21/2011 2:09:24 PM] karamazovapy: hah [4/21/2011 2:09:25 PM] buckyballreaction: yeah, i think in class discipline is better [4/21/2011 2:09:56 PM] karamazovapy: yeah, I'm kind of old school as far as that's concerned. deal with your own problems [4/21/2011 2:10:03 PM] buckyballreaction: me too [4/21/2011 2:10:06 PM] karamazovapy: develop coping skills [4/21/2011 2:10:24 PM] karamazovapy: would I have said that to a seven year old? no. thirteen? yeah. [4/21/2011 2:10:52 PM] karamazovapy: tattletale [4/21/2011 2:11:16 PM] karamazovapy: I should've taught them the phrase I teach all my elementary school classes, "nobody likes a grass" [4/21/2011 2:13:13 PM] karamazovapy: I never realized how much little kids tattle until I started subbing [4/21/2011 2:15:42 PM] buckyballreaction: oh yeah, nothing's secret [4/21/2011 3:10:48 PM] karamazovapy: I'm thinking more about how little kids will tell the teacher when anyone does anything, to try to get them in trouble. "he was looking at me, but now he stopped" [4/21/2011 3:10:59 PM] karamazovapy: "he said dogs weren't good" [4/21/2011 3:11:10 PM] karamazovapy: "she was using my pencil" [4/21/2011 3:11:31 PM] karamazovapy: "I was sitting there, but now she's sitting there" [4/21/2011 3:16:14 PM] buckyballreaction: I teach a sunday school class of 7 year olds [4/21/2011 3:16:31 PM] buckyballreaction: that was a big problem until i instituted punishments for that behaviour [4/21/2011 3:16:43 PM] buckyballreaction: but it died down rapidly [4/21/2011 3:16:59 PM] buckyballreaction: not 'but' [4/21/2011 3:17:00 PM] buckyballreaction: it idid [4/21/2011 3:17:15 PM] buckyballreaction: but at that age children are more maleable [4/21/2011 3:17:34 PM] karamazovapy: they question authority less [4/21/2011 3:18:39 PM] buckyballreaction: yes, but I give them logical reasons and consequences that they can understand - 'authority' alone is rarely sufficient [4/21/2011 3:19:00 PM] buckyballreaction: i.e. "because I said so" [4/21/2011 3:19:20 PM] karamazovapy: authority and threats of bodily harm! [4/21/2011 3:19:26 PM] buckyballreaction: haha [4/21/2011 3:19:31 PM] karamazovapy: because I said so. and I'll break your legs. [4/21/2011 3:20:11 PM] karamazovapy: I told a kid I was going to throw him down a flight of stairs today. it got a pretty good laugh, and the kid shut up because he didn't know how to respond. [4/21/2011 3:20:37 PM] karamazovapy: there aren't any stairs in the school, so it was obviously an empty threat [4/21/2011 3:20:42 PM] buckyballreaction: hehe [4/21/2011 3:21:26 PM] buckyballreaction: as a kid, I always saw through empty threats in a heartbeat [4/21/2011 3:22:11 PM] karamazovapy: it was meant to be an empty threat [4/21/2011 3:22:55 PM] buckyballreaction: oh good - i grew up with lots of empty threats that were supposed to delude me into thinking they were real [4/21/2011 3:23:08 PM] buckyballreaction: made me lose respect for those people [4/21/2011 3:24:33 PM] karamazovapy: I didn't say I was going to throw him down a flight of stairs in an "angry" way [4/21/2011 3:24:41 PM] karamazovapy: of course you can't do that [4/21/2011 3:27:05 PM] buckyballreaction: nope. Is it usually 13 year olds that you teach? [4/21/2011 3:28:20 PM] karamazovapy: I sub, so I get all ages [4/21/2011 3:28:24 PM] karamazovapy: usually younger [4/21/2011 3:28:32 PM] karamazovapy: like kindergarten-5th grade [4/21/2011 3:28:43 PM] karamazovapy: I don't tease them as much [4/21/2011 3:29:00 PM] karamazovapy: I don't tease the little ones at all, because they wouldn't understand [4/21/2011 3:29:06 PM] buckyballreaction: haha [4/21/2011 3:29:10 PM] buckyballreaction: it'd be over their head [4/21/2011 3:29:17 PM] buckyballreaction: do you sub a specific subject? (I can't remember) [4/21/2011 3:29:18 PM] karamazovapy: yeah, they don't understand irony [4/21/2011 3:29:27 PM] karamazovapy: I do anything. I was math today. [4/21/2011 3:29:43 PM] buckyballreaction: cool [4/21/2011 3:29:53 PM] buckyballreaction: sarcasm is completely lost on kids [4/21/2011 3:30:07 PM] buckyballreaction: its even lost on the majority of cultures [4/21/2011 3:30:12 PM] buckyballreaction: like all of latin america [4/21/2011 10:50:20 PM] buckyballreaction: sam, is there something keeping you from moving to vc++ 2010? [4/21/2011 10:56:06 PM] buckyballreaction: i can't remember... [4/21/2011 11:37:31 PM] Chris Eykamp: I think he has a higher tier of 2007 than he could get for 2010 [4/21/2011 11:39:27 PM] buckyballreaction: i don't think i understand [4/21/2011 11:42:00 PM] Chris Eykamp: he has a choice btwn the free version of 2010 or the semi-pro version of 2007 [4/21/2011 11:42:30 PM] buckyballreaction: ahhh [4/21/2011 11:47:25 PM] buckyballreaction: i finally got 2010 express installed in a VM [4/21/2011 11:54:53 PM] buckyballreaction: hey sam - if you go to the robots server - do the quick bots behave differently now than they used to? [4/21/2011 11:56:17 PM] buckyballreaction: the default colors in vc++ 2010 make my brain feel weird [4/22/2011 12:04:25 AM] buckyballreaction: i'm losing consciousness early... good night [4/22/2011 12:15:36 AM] Chris Eykamp: night [4/22/2011 9:15:00 AM] buckyballreaction: morning [4/22/2011 10:37:18 AM] Chris Eykamp: I'm having some real doubts about this editor refactor [4/22/2011 10:37:51 AM] Chris Eykamp: though I can now actually place an item in the editor, which is some real progress [4/22/2011 10:39:13 AM] Chris Eykamp: ooh... I can move things around... that's nice! [4/22/2011 10:43:03 AM] buckyballreaction: so... doea that mean you are leaning towards keeping the refactor? [4/22/2011 10:44:24 AM] Chris Eykamp: well, I'm too far in to quit now! [4/22/2011 10:44:30 AM] Chris Eykamp: famous last words, them [4/22/2011 10:44:36 AM] buckyballreaction: of course! [4/22/2011 10:44:52 AM] buckyballreaction: I am trying as hard as I can to not touch UIEditor.* [4/22/2011 10:45:18 AM] Chris Eykamp: thanks [4/22/2011 10:45:25 AM] Chris Eykamp: I think this is a necessary step [4/22/2011 10:45:32 AM] buckyballreaction: any other classes I should be worried about? [4/22/2011 10:45:38 AM] buckyballreaction: Yes, I agree that it is necessary [4/22/2011 10:47:25 AM] Chris Eykamp: mmm.... all game objects are going to be touched [4/22/2011 10:47:36 AM] buckyballreaction: oh boy [4/22/2011 10:47:36 AM] Chris Eykamp: because current editor functionalty it being delegated to them [4/22/2011 10:48:15 AM] Chris Eykamp: haven't decided if core game objects shoul dhave editor functionality on them, or if there should be a second set that inherits from the first with the extra stuff [4/22/2011 10:49:09 AM] buckyballreaction: well, I moved out my functionality from barrier because it was storing extra data during the game [4/22/2011 10:49:13 AM] buckyballreaction: that was not needed [4/22/2011 10:49:23 AM] buckyballreaction: my botzone functionalitly.. [4/22/2011 10:51:33 AM] Chris Eykamp: yes [4/22/2011 10:51:49 AM] Chris Eykamp: I may end up subclassing the objects [4/22/2011 10:51:53 AM] Chris Eykamp: just not sure yet [4/22/2011 10:52:05 AM] Chris Eykamp: I'm trying to get one object working fully, then I can see how it looks [4/22/2011 10:52:20 AM] Chris Eykamp: I've picked, rather arbitrarily, the textitem [4/22/2011 10:52:43 AM] Chris Eykamp: maybe I should have stareted with repairItem or something simpler [4/22/2011 10:53:08 AM] Chris Eykamp: this will let me see what we actually need on the objects, and perhaps that will suggest how to structure things [4/22/2011 10:53:50 AM] buckyballreaction: so when you get to the point of merging [4/22/2011 10:54:04 AM] buckyballreaction: may i suggest you keep track of which files had conflicts [4/22/2011 10:54:15 AM] buckyballreaction: so sam and I can double check [4/22/2011 10:54:19 AM] Chris Eykamp: absolutely [4/22/2011 10:54:32 AM] buckyballreaction: becuase this is sounding like it's going to be a rather large merge [4/22/2011 10:54:38 AM] Chris Eykamp: yes, I think so [4/22/2011 10:54:58 AM] Chris Eykamp: the other drawback of this new model, is compilation takes much longer [4/22/2011 10:55:07 AM] buckyballreaction: really? [4/22/2011 10:55:11 AM] Chris Eykamp: a change in the editor can trigger massive dependencies [4/22/2011 10:55:17 AM] buckyballreaction: oh... [4/22/2011 10:55:21 AM] buckyballreaction: you mean partial compilations [4/22/2011 10:55:25 AM] Chris Eykamp: I hope to be able to reduce that somewhat [4/22/2011 10:55:36 AM] Chris Eykamp: by passing in params rather than using globals as I am now [4/22/2011 10:55:44 AM] Chris Eykamp: but it is slooooow going [4/22/2011 10:55:50 AM] Chris Eykamp: expecially on this machine [4/22/2011 10:56:00 AM] buckyballreaction: you need a beastly laptop [4/22/2011 10:56:05 AM] Chris Eykamp: right! [4/22/2011 10:56:09 AM] Chris Eykamp: I'll talk to my boss [4/22/2011 10:56:15 AM] buckyballreaction: just for bitfighter! [4/22/2011 10:56:53 AM] buckyballreaction: did i tell you that with my point.h cleanup, a full compilation went from 55 to 45 seconds on my laptop :) [4/22/2011 11:00:32 AM] buckyballreaction: a full compilation of the zap directory on my work computer just took 21 seconds [4/22/2011 11:00:40 AM] buckyballreaction: if i can make you any more jealous [4/22/2011 11:00:45 AM] buckyballreaction: i should keep my job [4/22/2011 11:01:58 AM] Chris Eykamp: indeed [4/22/2011 11:03:19 AM] buckyballreaction: 'make', however, is really bad at detecting what needs to be recompiled if you change a header [4/22/2011 11:03:27 AM] buckyballreaction: xcode and vc++ is much better [4/22/2011 11:04:00 AM] buckyballreaction: the solution is to just to a full compile everytime you change a .h [4/22/2011 11:04:12 AM] Chris Eykamp: blech [4/22/2011 11:04:24 AM] buckyballreaction: yeah... [4/22/2011 11:04:34 AM] buckyballreaction: i am actually quite impressed with the intelligence of vc++ [4/22/2011 11:06:17 AM] Chris Eykamp: microsoft has historically had some very smart employees. most of them work for google now [4/22/2011 11:14:00 AM] Chris Eykamp: all the rendering in the editor was done with S32 coords; that needs to change to f32, with each position scaled down for the current zoom level [4/22/2011 11:14:21 AM] buckyballreaction: how was it scaled before? [4/22/2011 11:14:25 AM] Chris Eykamp: cleaner when done, but icky to do [4/22/2011 11:14:42 AM] Chris Eykamp: we kept switching from rendering in level coords to screen coords and back [4/22/2011 11:14:59 AM] Chris Eykamp: I want to just set the rendering scaling once and draw [4/22/2011 11:16:00 AM] buckyballreaction: good idea [4/22/2011 11:18:36 AM] Chris Eykamp: but a pain for things that stay a fixed size relative to the screen [4/22/2011 11:18:43 AM] Chris Eykamp: like labes [4/22/2011 11:18:45 AM] Chris Eykamp: labels [4/22/2011 11:19:00 AM] buckyballreaction: ah.. now i see [4/22/2011 11:19:40 AM] Chris Eykamp: lots of dividing by drawing scale [4/22/2011 11:20:17 AM] Chris Eykamp: // If either end is selected, draw a little white box around it. Will do this on and off dock. [4/22/2011 11:20:20 AM] Chris Eykamp: oh crap [4/22/2011 11:20:29 AM] Chris Eykamp: on dock is not scaled, off dock is [4/22/2011 11:20:41 AM] Chris Eykamp: here we've got a bit of code that is supposed to work with both [4/22/2011 11:20:45 AM] Chris Eykamp: argh [4/22/2011 11:21:20 AM] Chris Eykamp: tons of issues like this [4/22/2011 12:36:35 PM | Edited 12:37:17 PM] Samuel Williams: Compressing voice, sending and decompressing voice possibly work on all systems, the problem is how to captureSound and playSound. For a voice problem (pressing R in-game), only windows can send voice because in the bottom of sfx.cpp, SFXObject::captureSamples is empty on non-windows. Linux don't seem to be able to receive voice, probably a problem in SFXObject::queueBuffer failing to work in linux. If you are in linux, players using voice may rapidly blink name, with no sound. [4/22/2011 12:38:28 PM] buckyballreaction: i have receive sound in linux once before [4/22/2011 12:38:41 PM] buckyballreaction: it was in BBB2, I think, and only briefly [4/22/2011 12:39:00 PM] buckyballreaction: couldn't get other voice after the first 5 seconds or so [4/22/2011 12:39:07 PM | Edited 12:39:13 PM] Samuel Williams: well i couldn't receive sound on my linux testing.. [4/22/2011 12:39:24 PM] buckyballreaction: yeah, i've never been able to get it since [4/22/2011 12:50:23 PM] Samuel Williams: http://en.wikipedia.org/wiki/Microsoft_Visual_Studio If you look at Visual Studio 2008, its the last version to be able to target ( run C++ code) to windows 2000. Programs compiled on Visual 2010 won't run in windows 2000. [4/22/2011 12:51:34 PM] Samuel Williams: Visual Studio 2005 is last version to be able to target windows 98 / ME / NT 4.0. [4/22/2011 12:51:45 PM] buckyballreaction: http://www.microsoft.com/downloads/en/details.aspx?FamilyID=53a27766-0168-4617-b44e-74b2886cec6d [4/22/2011 12:51:53 PM] buckyballreaction: only runs on windows vista and 7 :) [4/22/2011 12:52:39 PM] Samuel Williams: probably newer windows operating system will be x64 only.. [4/22/2011 12:52:45 PM] buckyballreaction: so i guess the quesiton is: do we want to support windows 2000? [4/22/2011 12:53:20 PM] buckyballreaction: because if watusimoto has been building with vc++ 2010 on past releases, then he already wasn't supporting it [4/22/2011 12:53:56 PM] Samuel Williams: i was probably the one that build the 015a release, in visual 2008 [4/22/2011 12:55:35 PM] buckyballreaction: http://support.microsoft.com/ph/1131#tab0 [4/22/2011 12:57:43 PM] buckyballreaction: extended support ended last year [4/22/2011 12:57:44 PM] Samuel Williams: it depends, will my computer made on 2003 brake down by 2014 or not? [4/22/2011 12:57:53 PM] buckyballreaction: haha [4/22/2011 12:58:38 PM] Samuel Williams: newer computer is probably 10 times faster then what I have.. [4/22/2011 12:59:25 PM] Samuel Williams: and newer computer may be 40 times faster then a very old windows 98.. [4/22/2011 12:59:37 PM] buckyballreaction: oh yeah [4/22/2011 1:00:36 PM] Samuel Williams: what may take 5 minutes to compile may only take 0.5 minute on 10 time faster computer. [4/22/2011 1:00:56 PM] buckyballreaction: yeah - I just did a full compile on my work computer: 21 seconds :) [4/22/2011 1:07:47 PM] Chris Eykamp: I don't think we have many players running win2000 [4/22/2011 1:08:07 PM] Chris Eykamp: that was never much of a consumer OS anyway, and is pretty darned old [4/22/2011 1:08:25 PM] Chris Eykamp: I'm perfectly happy calling our baseline Windows XP [4/22/2011 1:25:25 PM] Samuel Williams: You could search "xp vista mac market share" Vista could possibly die first then XP, based on http://www.mstechpages.com/2011/04/09/windows-7-leads-market-share/ So it appears 2000 doesn't exist.. [4/22/2011 1:26:07 PM] Chris Eykamp: xp will almost certainly outlive vista [4/22/2011 1:41:09 PM] karamazovapy: I always talk to these 18-20 year olds who seem to think OSX is at about 98% market share [4/22/2011 1:41:32 PM] Chris Eykamp: 99%, actually [4/22/2011 1:41:58 PM] karamazovapy: well everybody has a mac, so... [4/22/2011 1:42:16 PM] Samuel Williams: Not everyone have a mac... i don't have a mac [4/22/2011 1:42:37 PM] karamazovapy: I don't either, but that's what some young mac users seem to think [4/22/2011 1:43:53 PM] buckyballreaction: i have a mac VM :) [4/22/2011 1:44:11 PM] karamazovapy: hah - "Latest Tweets" - April 22nd. Judgement Day didn't come. Skynet didn't launch. But, why is my Kinect still eyeballin' me!? [4/22/2011 1:44:14 PM] buckyballreaction: why would I pay an apple tax of $2-300 dollars? [4/22/2011 1:48:19 PM] Samuel Williams: I found a no-name player (empty string?) in stats. Game ending on 13 Apr 2011 08:36:19 AM http://bitfighter.org/gamereports/ [4/22/2011 1:49:55 PM] buckyballreaction: not bad... [4/22/2011 1:50:16 PM] buckyballreaction: this will get you there: http://bitfighter.org/gamereports/?days=10 [4/22/2011 1:50:21 PM] buckyballreaction: near the bottom [4/22/2011 1:58:41 PM] Samuel Williams: Check http://bitfighter.org/gamereports/ again. [4/22/2011 1:58:55 PM] buckyballreaction: haha [4/22/2011 2:02:45 PM | Edited 2:03:11 PM] Samuel Williams: i named myself sam686 that same problem a long time ago in Current Players: stats.. [4/22/2011 2:07:01 PM] buckyballreaction: I remember we added code to strip that out somewhere... [4/22/2011 2:07:19 PM] buckyballreaction: we added escape code to the master server, but we had to do sanitizing elsewhere right? [4/22/2011 2:11:56 PM] Chris Eykamp: probably in the wrong place :) [4/22/2011 2:12:41 PM] Chris Eykamp: search for "sanitize" and "sanitizeForJSON" [4/22/2011 2:12:51 PM] Samuel Williams: master writes to mysql with < >, so it is already in the stats... The problem is displaying < > [4/22/2011 2:13:26 PM] Samuel Williams: with HTML code < is < and & is & [4/22/2011 2:14:23 PM] buckyballreaction: yeah - it needs to be sanitized in the php [4/22/2011 2:14:48 PM] buckyballreaction: not sanitized [4/22/2011 2:14:55 PM] buckyballreaction: because we want the goofy characters [4/22/2011 2:14:58 PM] buckyballreaction: needs to be escaped [4/22/2011 3:12:59 PM] buckyballreaction: i'm an id10t [4/22/2011 3:13:29 PM] buckyballreaction: i did 'hg clean' on my vc++ project and lost the directx libs [4/22/2011 3:16:52 PM] Chris Eykamp: ouch [4/22/2011 3:16:54 PM] buckyballreaction: question: are .lib files platform independent? [4/22/2011 3:17:04 PM] Chris Eykamp: I doubt it [4/22/2011 3:17:07 PM] Chris Eykamp: need the files back? [4/22/2011 3:17:19 PM] buckyballreaction: what exactly is the relation of .h -> .lib -> .dll? [4/22/2011 3:17:27 PM] buckyballreaction: i know .dll is the compiled shared object [4/22/2011 3:17:33 PM] buckyballreaction: yeah, i need the files [4/22/2011 3:17:51 PM] Chris Eykamp: .h is code, obviously [4/22/2011 3:17:54 PM] buckyballreaction: yep [4/22/2011 3:18:15 PM] Chris Eykamp: .lib might be a static liburary, where a .dll is a dynamically loaded one [4/22/2011 3:18:25 PM] buckyballreaction: ah [4/22/2011 3:18:30 PM] Chris Eykamp: any idea where can I upload the files? [4/22/2011 3:18:42 PM] buckyballreaction: sure: [4/22/2011 3:19:02 PM] buckyballreaction: ftp://ftp.novell.com/incoming/ [4/22/2011 3:20:24 PM] Chris Eykamp: files.zip [4/22/2011 3:20:59 PM] buckyballreaction: got em.. deleting from FTP [4/22/2011 3:21:01 PM] buckyballreaction: thanks~ [4/22/2011 3:21:02 PM] buckyballreaction: ! [4/22/2011 3:21:32 PM] buckyballreaction: no one can see files on that FTP server unless you're in the firewall [4/22/2011 3:27:23 PM] buckyballreaction: i've found full games in there before... [4/22/2011 3:27:41 PM] Chris Eykamp: :) [4/22/2011 3:28:00 PM] Chris Eykamp: you never know what you'll find in those open anon ftp folders [4/22/2011 3:30:16 PM] buckyballreaction: do i just open the .sln file at the root of the repo in vc++ 2010? [4/22/2011 3:30:31 PM] Chris Eykamp: yes [4/22/2011 3:30:35 PM] buckyballreaction: ok cool [4/22/2011 3:30:49 PM] buckyballreaction: i still think the color scheme make my head feel funny... [4/22/2011 3:37:59 PM] buckyballreaction: weird: c:\hg\bitfighter\zap\gameconnection.cpp(1176): error C2220: warning treated as error - no 'object' file generated c:\hg\bitfighter\zap\gameconnection.cpp(1176): warning C4101: 'gametypeName' : unreferenced local variable [4/22/2011 3:42:26 PM] buckyballreaction: looks .lib is the statically compiled variant [4/22/2011 3:43:34 PM] buckyballreaction: i wonder if we can do 64bit releases for Mac and Windows.. [4/22/2011 3:43:37 PM] buckyballreaction: I know Mac I can [4/22/2011 3:43:46 PM] buckyballreaction: but untested... [4/22/2011 3:48:15 PM] buckyballreaction: no token highlighting!!!!!!!! [4/22/2011 3:48:21 PM] buckyballreaction: !?!?!?!?!? [4/22/2011 4:20:14 PM] buckyballreaction: is there a way to have all instances of variables, methods, etc. highlight when you click on them? [4/22/2011 4:28:08 PM] Chris Eykamp: not athat I know of in vc++, but would love to have it [4/22/2011 4:31:23 PM] buckyballreaction: how do you survive?? [4/22/2011 4:31:36 PM] buckyballreaction: i think eclipse with java has totally spoiled me [4/22/2011 4:34:15 PM] Chris Eykamp: agreed, it's a much better environment [4/22/2011 4:35:13 PM] Chris Eykamp: in my current job, when I joined, everyone used emacs. I decided if I were going to learn java, I wanted a good ide to do it in. eclipse is pretty awesome in most ways. [4/22/2011 4:35:20 PM] Chris Eykamp: too bad it's not so good for c++ [4/22/2011 4:45:33 PM] buckyballreaction: eclipse has highlighting for c++ though... [4/22/2011 4:50:34 PM] Chris Eykamp: http://stackoverflow.com/questions/32494/visual-studio-identical-token-highlighting [4/22/2011 4:53:22 PM] buckyballreaction: metalscroll [4/22/2011 4:53:26 PM] buckyballreaction: gotta try that [4/22/2011 4:53:47 PM] Chris Eykamp: hopefully works with express [4/22/2011 5:03:45 PM] Chris Eykamp: let me know if you figure out how to install it [4/22/2011 5:04:49 PM] buckyballreaction: yeah still working on that... :) [4/22/2011 5:05:12 PM] Chris Eykamp: not obviuos, is it [4/22/2011 5:06:38 PM] buckyballreaction: argh [4/22/2011 5:06:43 PM] buckyballreaction: hey!: http://visualstudiogallery.msdn.microsoft.com/d0d33361-18e2-46c0-8ff2-4adea1e34fef?SRC=VSIDE [4/22/2011 5:07:47 PM] buckyballreaction: argh it doesn't install.. [4/22/2011 5:09:50 PM] Chris Eykamp: I tried that one... not in the free version! [4/22/2011 5:10:31 PM] buckyballreaction: fhk;adsjlfjdk;32r3 r*(&)#$#@41 [4/22/2011 5:12:08 PM] Chris Eykamp: indeed [4/22/2011 5:53:01 PM] buckyballreaction: ok, well... i guess i'll just stick to eclipse on linux - now i need to figure out why it won't link... [4/22/2011 6:22:16 PM] buckyballreaction: it built! [4/22/2011 8:14:13 PM] buckyballreaction: ok windows project is now good and working again... [4/22/2011 8:14:15 PM] buckyballreaction: now to mac [4/22/2011 8:16:10 PM] buckyballreaction: hey zoomber, how did you like my mac DMG with the background? [4/23/2011 12:46:45 AM] buckyballreaction: i gotta see that on the gamereports [4/23/2011 12:48:02 AM] buckyballreaction: that was crazy [4/23/2011 12:48:42 AM | Edited 12:48:45 AM] Samuel Williams: i also have stats on my side (only for my server) http://96.2.123.136/upload/1/index.php [4/23/2011 12:49:12 AM] buckyballreaction: you could kill 5 bots at once with bursts [4/23/2011 12:49:40 AM] buckyballreaction: once it was stuck in the middle of the 'school' of bots and they just kept dragging me around with them [4/23/2011 12:50:20 AM] Samuel Williams: yes, my engineer bots just circles around, and can drag and bounce other ships and objects. [4/23/2011 12:51:05 AM] Samuel Williams: in most maps it is not big enough for a full circle, so it can engineer. [4/23/2011 12:51:52 AM] buckyballreaction: did you see how much memory the server was using? [4/23/2011 12:51:56 AM] buckyballreaction: on that level [4/23/2011 12:52:13 AM] Samuel Williams: i didn't check memory usage, but i can check now.. [4/23/2011 12:53:25 AM] Samuel Williams: 53.9 MB with 50 engineerBots [4/23/2011 12:53:37 AM] buckyballreaction: did it drop back down? [4/23/2011 12:53:41 AM] Samuel Williams: 46.9 MB when my server is empty, idle. [4/23/2011 12:53:49 AM] buckyballreaction: not bad... [4/23/2011 12:54:06 AM] Samuel Williams: My computer have 1.5 GB [4/23/2011 12:54:09 AM] Samuel Williams: RAM [4/23/2011 12:54:16 AM] buckyballreaction: so just a crumb [4/23/2011 12:54:54 AM] Samuel Williams: i wonder if there is some hard to find memory leak... [4/23/2011 12:55:27 AM] buckyballreaction: i'm thinking the leak is probably static data that isn't being let go [4/23/2011 12:55:33 AM] buckyballreaction: instead of the normal leaks [4/23/2011 12:56:58 AM] Samuel Williams: probably one reason why not to use static.. [4/23/2011 12:57:10 AM] buckyballreaction: yep [4/23/2011 12:57:27 AM] Samuel Williams: when vector shrinks, it might not free the unused memory.. [4/23/2011 12:57:47 AM] Samuel Williams: but vector might keep that unused memory for later on.. [4/23/2011 12:57:56 AM] buckyballreaction: ahh [4/23/2011 12:57:59 AM] Samuel Williams: when vector grows again [4/23/2011 12:58:08 AM] buckyballreaction: yeah that's true [4/23/2011 12:59:06 AM] buckyballreaction: well - i'm heading ot bed [4/23/2011 12:59:08 AM] buckyballreaction: good night [4/23/2011 12:59:10 AM] buckyballreaction: and thanks [4/23/2011 12:59:14 AM] Samuel Williams: bye [4/23/2011 4:55:14 AM] Samuel Williams: http://bitfighter.org/forums/viewtopic.php?f=9&t=687 This appears to be spam? Any spam stays there until someone can delete it, and who can delete any spam? [4/23/2011 8:40:18 AM] Chris Eykamp: well, lucky me. A system crash has converted UIEditor.cpp into a 0 byte file [4/23/2011 8:52:55 AM] Chris Eykamp: and UIEditor.h has been overwritten with spaces [4/23/2011 8:54:28 AM] Samuel Williams: some files can get damaged when system crashes while writing files at the same time. [4/23/2011 8:56:20 AM] Chris Eykamp: yes; I am looking for a backup, because losing this file woudl be very bad [4/23/2011 8:57:53 AM] Samuel Williams: if you did commit, thats the one place you can recover, by reverting / updating.. [4/23/2011 8:58:32 AM] Chris Eykamp: yes, but I hadn't committed [4/23/2011 8:58:59 AM] Chris Eykamp: I have been experimenting with CrashPlan -- I think I found a backup fro yesterday morning [4/23/2011 8:59:17 AM] Chris Eykamp: trying to compile now [4/23/2011 9:00:46 AM] Chris Eykamp: so... are you up early, or up late? [4/23/2011 9:01:32 AM] Chris Eykamp: hopefully it was just those two files [4/23/2011 9:02:47 AM] Samuel Williams: i went sleeping during evening, and wake up at midnight.. [4/23/2011 9:03:13 AM] Chris Eykamp: that's why I'm up as well [4/23/2011 9:03:15 AM] Chris Eykamp: sadly [4/23/2011 9:04:03 AM] Chris Eykamp: ok, at least things are compiling now... now to see how much work was lost [4/23/2011 9:14:16 AM] buckyballreaction: morning [4/23/2011 9:15:25 AM] buckyballreaction: you worked through the night? [4/23/2011 9:15:34 AM] Chris Eykamp: no, up early [4/23/2011 9:15:45 AM] buckyballreaction: ah [4/23/2011 9:15:52 AM] Chris Eykamp: fell asleep very early [4/23/2011 9:16:00 AM] buckyballreaction: i hope you were able to recover most of your work [4/23/2011 9:16:20 AM] Chris Eykamp: ok, so it looks like I only lost an hour or two of work [4/23/2011 9:16:24 AM] Chris Eykamp: that's manageab;e\ [4/23/2011 9:16:52 AM] Chris Eykamp: backups saved the day! I was about to exclude the bf folder from the backups, too [4/23/2011 9:16:57 AM] Chris Eykamp: good thing I didn't! [4/23/2011 9:17:46 AM] buckyballreaction: phoew! [4/23/2011 9:18:21 AM] Chris Eykamp: lost settings in skype and vc++ [4/23/2011 9:18:31 AM] Chris Eykamp: this was a bad crash, apparently [4/23/2011 9:18:51 AM] buckyballreaction: the whole system? [4/23/2011 9:30:14 AM] Chris Eykamp: YES [4/23/2011 9:30:17 AM] Chris Eykamp: yes [4/23/2011 9:30:53 AM] buckyballreaction: maybe you can convice your boss that you need a new lappy now :) [4/23/2011 9:41:18 AM] Chris Eykamp: well 90% chance I'm quitting next week, so I don't think there is much chance [4/23/2011 9:46:40 AM] buckyballreaction: got a good offer? [4/23/2011 9:46:46 AM] buckyballreaction: in europe? [4/23/2011 9:47:16 AM] Chris Eykamp: probably good enough; good enough for my wife, anyway :) [4/23/2011 9:47:25 AM] buckyballreaction: hehe [4/23/2011 9:47:31 AM] buckyballreaction: that's good [4/23/2011 9:47:45 AM] Chris Eykamp: but don't worry -- Bitfighter was born in Germany [4/23/2011 9:48:06 AM] Chris Eykamp: it is comfortable in Europe :) [4/23/2011 9:48:55 AM] Chris Eykamp: I remember starting it on my kitchen table in my house in the village of Zemmer [4/23/2011 9:49:15 AM] buckyballreaction: ah ha! [4/23/2011 9:49:20 AM] buckyballreaction: the history of a player's name... [4/23/2011 9:49:37 AM] Chris Eykamp: after an abortive attempt to make a game from scratch that involved a tank drawn with a photo of my son's head [4/23/2011 9:49:54 AM] Chris Eykamp: yes [4/23/2011 9:50:03 AM] Chris Eykamp: still have that game somewhere [4/23/2011 9:50:17 AM] Chris Eykamp: written in BlitzBasic [4/23/2011 9:50:27 AM] Chris Eykamp: which compiles to C++ [4/23/2011 9:50:40 AM] buckyballreaction: BASIC? [4/23/2011 9:50:43 AM] Chris Eykamp: BlitzBasic [4/23/2011 9:50:56 AM] Chris Eykamp: not your grandfather's basic [4/23/2011 9:51:08 AM] buckyballreaction: haha [4/23/2011 9:51:21 AM] Chris Eykamp: GridWars is written in BB [4/23/2011 9:51:23 AM] buckyballreaction: hey... i grew up playing nibbles and gorillas written in BASIC [4/23/2011 9:56:09 AM] buckyballreaction: no semicolons! [4/23/2011 9:56:12 AM] buckyballreaction: yes! [4/23/2011 11:32:12 AM] buckyballreaction: i think i like the IM information on the forums: it's like a honeypot for the bots [4/23/2011 11:48:39 AM] Chris Eykamp: how's that? [4/23/2011 11:52:09 AM] buckyballreaction: only bots enter in their IM information into their profiles [4/23/2011 11:55:35 AM] Chris Eykamp: ah, I see [4/23/2011 12:12:14 PM] Samuel Williams: I got linux to receive voice chat, and i put a dummy SFXObject::captureSamples for non-windows to make R button work.. [4/23/2011 12:13:16 PM] Samuel Williams: Should soon put in actual sound captureing code for mac / linux in SFXObject::captureSamples [4/23/2011 12:17:05 PM] buckyballreaction: oooo [4/23/2011 12:17:30 PM] Samuel Williams: try options , voice echo = on [4/23/2011 12:18:03 PM] buckyballreaction: what is voice echo? [4/23/2011 12:18:39 PM] Samuel Williams: voice echo plays back sound captured from pressing R [4/23/2011 12:28:05 PM] buckyballreaction: so at least i hear something now... [4/23/2011 12:28:15 PM] buckyballreaction: and the name doesn't flicker anymore [4/23/2011 1:01:29 PM] Samuel Williams: i see more spam.. http://bitfighter.org/forums/search.php?author_id=732&sr=posts [4/23/2011 1:02:52 PM] Chris Eykamp: gone [4/23/2011 1:05:09 PM] Chris Eykamp: making some progress in the editor [4/23/2011 1:05:26 PM] Chris Eykamp: I've managed to comment out lots of stuff, and things still generally work [4/23/2011 1:05:34 PM] Chris Eykamp: still a ways to go though [4/23/2011 2:59:08 PM] buckyballreaction: is there anything I could do in parallel? [4/23/2011 2:59:39 PM] Chris Eykamp: there might be soon [4/23/2011 3:01:41 PM] buckyballreaction: ok [4/23/2011 3:04:05 PM] Chris Eykamp: there's going to be a lot of moving stuff around when I get the framework working [4/23/2011 3:04:16 PM] Chris Eykamp: which it almost is [4/23/2011 3:04:27 PM] buckyballreaction: that's what i'm good at :) [4/23/2011 3:04:28 PM] Chris Eykamp: but not in the next hour [4/23/2011 3:04:45 PM] buckyballreaction: no problem [4/23/2011 3:43:53 PM] buckyballreaction: meet my pet: http://96.2.123.136/upload/IMG_1344.png [4/23/2011 3:53:08 PM] buckyballreaction: i didn't mean for that to be that big a picture... [4/23/2011 5:54:32 PM] buckyballreaction: one of the problems that bots have that sam and I found last night: they'll sometimes get stuck against a forcefield [4/23/2011 5:55:01 PM] buckyballreaction: this is because they'll be targeting another projector on the other side of the FF instead of the base of the FF they are up against [4/23/2011 5:56:35 PM] buckyballreaction: i am looking at getFiringSolution [4/23/2011 5:56:45 PM] buckyballreaction: but it's a little convoluted with the LUA functions [4/23/2011 6:05:41 PM] buckyballreaction: for instance: how does this actually get the target?: GameObject *target = getItem(L, 2, type, methodName)->getGameObject(); [4/23/2011 6:06:05 PM] buckyballreaction: or has the target already been set somewhere first? [4/23/2011 10:40:08 PM] Max h: hey guys [4/23/2011 10:40:18 PM] Max h: found an idea that could give you the palmface [4/23/2011 10:40:35 PM] Max h: free for all flag games? [4/23/2011 10:40:50 PM] Max h: err, maybe that wouldnt work [4/23/2011 11:03:12 PM] Chris Eykamp: checkArgCount(L, 2, methodName); U32 type = getInt(L, 1, methodName); GameObject *target = getItem(L, 2, type, methodName)->getGameObject(); [4/23/2011 11:03:19 PM] Chris Eykamp: means there are 2 args [4/23/2011 11:03:25 PM] Chris Eykamp: first is an object type [4/23/2011 11:03:42 PM] Chris Eykamp: seond is the actual item that is being targeted [4/23/2011 11:04:15 PM] Chris Eykamp: in otherwords, the robot picks the target, and the game tells it where to aim to hit it using a method similar to that used by turrets to lead the target [4/23/2011 11:04:37 PM] Chris Eykamp: the function returns the required aim angle [4/23/2011 11:18:03 PM] Max h: On 4/22/11, at 6:15 PM, buckyballreaction wrote: > hey zoomber, how did you like my mac DMG with the background? my idea! but your pictures much better than mine :P [4/24/2011 12:17:45 AM] buckyballreaction: @ZoombeR, isn't that the definition of innovation?: take someone elses idea and improve upon it? :) [4/24/2011 12:40:56 AM] Chris Eykamp: @bbr -- I have the text item placement working pretty well now [4/24/2011 12:41:28 AM] Chris Eykamp: still a few quirks, but they are paritcular to the textitem iteself [4/24/2011 12:41:53 AM] Chris Eykamp: if you wanted, you could try to port over the teleporter and the speedzone, which should be almost the same [4/24/2011 12:42:35 AM] Chris Eykamp: (they are now all subclasses of SimpleLine, which is all our 2-point items) [4/24/2011 12:45:02 AM] buckyballreaction: ok [4/24/2011 12:45:10 AM] buckyballreaction: i am actually going ot bed right now... [4/24/2011 12:45:14 AM] buckyballreaction: so tomorrow? [4/24/2011 12:45:33 AM] Chris Eykamp: sure [4/24/2011 12:45:38 AM] Chris Eykamp: no hurry [4/24/2011 12:45:40 AM] Samuel Williams: For teleporter having multi destination, editor didn't support multi dist, but just treats it at seperate teleporter item. Level files have each multi dest teleporter as seperate teleporter.. [4/24/2011 12:45:41 AM] Chris Eykamp: pleenty of time [4/24/2011 12:45:57 AM] Chris Eykamp: correct [4/24/2011 12:45:57 AM] Chris Eykamp: they are merged at load time [4/24/2011 12:46:16 AM] Chris Eykamp: think of them as a special case of a simpleline [4/24/2011 12:46:41 AM] Chris Eykamp: In the editor I had already broken everything out by it's basic geometry type: point, simpleLine, polyLine, polygon [4/24/2011 12:47:15 AM] Chris Eykamp: I had already carried polygon through to the zone items, and am now doing the same for the other geometry types [4/24/2011 12:47:24 AM] Chris Eykamp: it helps in other ways too -- parsing params, for example [4/24/2011 12:48:02 AM] Chris Eykamp: so if you look at polygon.cpp, you'll see that all the subclasses rely on it for many operations, such as reading from level file, rendering, etc. [4/24/2011 12:48:20 AM] Samuel Williams: how many more days will you be done with editor and ready to commit / push? [4/24/2011 12:49:18 AM] Chris Eykamp: many [4/24/2011 12:49:40 AM] Chris Eykamp: I don't know.... I feel that I've crossed a threshold [4/24/2011 12:49:52 AM] Chris Eykamp: I can do a partial commit any time' [4/24/2011 12:50:02 AM] buckyballreaction: do it! [4/24/2011 12:50:12 AM] Chris Eykamp: that means I need to merge :( [4/24/2011 12:50:17 AM] Chris Eykamp: I'm very afraid [4/24/2011 12:50:17 AM] buckyballreaction: oh no... [4/24/2011 12:50:20 AM] buckyballreaction: not yet [4/24/2011 12:50:25 AM] buckyballreaction: i meant just commit, not push [4/24/2011 12:50:31 AM] Chris Eykamp: oh, I see [4/24/2011 12:50:37 AM] Chris Eykamp: yes, I probably should [4/24/2011 12:50:48 AM] Chris Eykamp: and should probably merge now before it gets totally unmanageable [4/24/2011 12:50:49 AM] buckyballreaction: don't do any merging until the end [4/24/2011 12:50:54 AM] Chris Eykamp: no? [4/24/2011 12:50:58 AM] buckyballreaction: uh... [4/24/2011 12:50:58 AM] buckyballreaction: yeah [4/24/2011 12:51:05 AM] Chris Eykamp: why do you say that? [4/24/2011 12:51:06 AM] buckyballreaction: so sam and i still have a working editor :) [4/24/2011 12:51:15 AM] Chris Eykamp: as long as I don't push, you will [4/24/2011 12:51:29 AM] buckyballreaction: then it can be one big painful experience [4/24/2011 12:51:33 AM] buckyballreaction: instead of many [4/24/2011 12:51:45 AM] Chris Eykamp: I'm going to try it now just to see how many conflicts there are [4/24/2011 12:51:50 AM] buckyballreaction: haha, ok [4/24/2011 12:51:54 AM] Chris Eykamp: then I'll back out of it [4/24/2011 12:52:22 AM] buckyballreaction: save a diff first [4/24/2011 12:53:23 AM] Samuel Williams: you can merge, commit, merge, commit, without push, until you are ready to push, so to avoid one giant merge with hundreds of conflicts. [4/24/2011 12:53:46 AM] buckyballreaction: oh yeah, that too [4/24/2011 12:53:59 AM] Chris Eykamp: yes [4/24/2011 12:54:04 AM] buckyballreaction: I hope the point.h refactor treats you nicely... [4/24/2011 12:54:12 AM] Chris Eykamp: 54 changesets to merge?!? [4/24/2011 12:54:24 AM] buckyballreaction: yeah... and all one straight line! :) [4/24/2011 12:54:46 AM] Chris Eykamp: here goes [4/24/2011 12:56:09 AM] Chris Eykamp: the editor is an unholy mess. [4/24/2011 12:56:13 AM] Chris Eykamp: mergewise [4/24/2011 12:56:23 AM] Chris Eykamp: do either of you have anything in there I should be aware of? [4/24/2011 12:56:34 AM] Chris Eykamp: or can I just blow it away [4/24/2011 12:56:38 AM] buckyballreaction: i think i only had to change one or two includes at the top [4/24/2011 12:56:42 AM] buckyballreaction: that's it [4/24/2011 12:56:47 AM] buckyballreaction: i avoided it like the plague [4/24/2011 12:56:50 AM] Chris Eykamp: good [4/24/2011 12:57:00 AM] Chris Eykamp: sam? anything there from you? [4/24/2011 12:57:48 AM] Chris Eykamp: point.h v. Point.h? [4/24/2011 12:57:55 AM] Chris Eykamp: @bbr is that yours? [4/24/2011 12:58:11 AM] Samuel Williams: all i did is some voting system changes, some robot changes, adding upload levels features, and maybe others i don't remember.. [4/24/2011 12:58:22 AM] buckyballreaction: yes- i made point.h -> Rect.h / Color.h / Point.h [4/24/2011 12:58:23 AM] Chris Eykamp: ok, sounds like nothing important in the editor [4/24/2011 12:58:31 AM] Chris Eykamp: ok, I'll keep the lc version [4/24/2011 12:58:35 AM] buckyballreaction: Rect.h includes Point.h [4/24/2011 12:58:55 AM] Chris Eykamp: oh wait, the cap versio is yours [4/24/2011 1:00:13 AM] Chris Eykamp: well, that made it easy [4/24/2011 1:00:23 AM] Samuel Williams: while windows don't care about capitals and lowercase letters in filenames, linux filenames is case sensitive and will fail with wrong case.. [4/24/2011 1:00:38 AM] buckyballreaction: I was trying to follow class-name conventions [4/24/2011 1:01:09 AM] buckyballreaction: ok, gotta go sleep [4/24/2011 1:01:12 AM] buckyballreaction: night! [4/24/2011 1:02:04 AM] Chris Eykamp: night [4/24/2011 1:03:19 AM] Chris Eykamp: merged!!!!! [4/24/2011 1:03:27 AM] Chris Eykamp: hopefully still compiles... [4/24/2011 1:08:15 AM] Chris Eykamp: phooey... doesn't [4/24/2011 1:08:38 AM] Samuel Williams: compile error or link errors? [4/24/2011 1:10:35 AM] Chris Eykamp: compile... maybe minor [4/24/2011 1:10:43 AM] Chris Eykamp: not sure yet [4/24/2011 1:15:27 AM] Chris Eykamp: odd... my EditorWallSegmentType definition is gone [4/24/2011 1:16:53 AM] Chris Eykamp: ah, found it; deleted during merge. minor [4/24/2011 1:17:53 AM] Chris Eykamp: just an enum value [4/24/2011 1:21:02 AM] Chris Eykamp: compiled [4/24/2011 1:21:12 AM] Chris Eykamp: great! [4/24/2011 4:40:12 PM] karamazovapy: [Saturday, April 23, 2011 3:43 PM] buckyballreaction: <<< meet my pet: http://96.2.123.136/upload/IMG_1344.pngnice rat - what's his name? [4/24/2011 5:22:40 PM] buckyballreaction: hi [4/24/2011 5:22:45 PM] buckyballreaction: snake is 'chompers' [4/24/2011 5:22:56 PM] buckyballreaction: we only name the rats if the snake doesn't eat them [4/24/2011 8:24:46 PM] buckyballreaction: it compiled! yay! [4/24/2011 8:25:08 PM] buckyballreaction: ok - so obviously getFiringSolution is not where the problem is... [4/24/2011 8:26:06 PM] buckyballreaction: i need to figure out how the target is acquired in the first place... and alter that function to get the proper FF projector [4/24/2011 8:26:19 PM] buckyballreaction: but that may be in LUA... not sure yet [4/24/2011 10:14:58 PM] buckyballreaction: hi [4/24/2011 10:15:01 PM] buckyballreaction: anyone around? [4/24/2011 10:15:14 PM] Max h: i am [4/24/2011 10:15:47 PM] buckyballreaction: good evening [4/24/2011 10:16:40 PM] Max h: hah...i still have artmoney from when i was using zap! [4/24/2011 10:20:03 PM] buckyballreaction: watusimoto, if you're around, I can help with grunt labor now [4/24/2011 10:20:32 PM] Samuel Williams: hi.. [4/24/2011 10:20:50 PM] buckyballreaction: hi sam [4/24/2011 10:21:00 PM] buckyballreaction: sam, regarding the bot bugs we found [4/24/2011 10:21:18 PM] buckyballreaction: i starting working on the 'shoot wrong FF projector problem' [4/24/2011 10:21:51 PM] buckyballreaction: i looked at getFiringSolution() but that doesn't seem to be were the problem is - the target is already set before that method is called [4/24/2011 10:22:55 PM] Samuel Williams: shooting at the clostest projector may not fix the problem.. The closest projector may be hidden behind another forcefield. [4/24/2011 10:23:19 PM] buckyballreaction: yes [4/24/2011 10:23:31 PM] buckyballreaction: how is the target set in the first place? is it done in LUA? [4/24/2011 10:25:48 PM] Samuel Williams: aLUA does the list of possible targets, and getFiringSolution will return NIL if not possible to attack that point.. [4/24/2011 10:26:06 PM] Samuel Williams: getFiringSolution uses calcInterceptCourse. [4/24/2011 10:26:51 PM] buckyballreaction: maybe we need some sort of 'amIStuck' method [4/24/2011 10:27:47 PM] Samuel Williams: amIStuck might not be useful... what to do when stuck? [4/24/2011 10:29:33 PM] buckyballreaction: yeah, i guess preemptive algos would be better [4/24/2011 10:31:36 PM] Samuel Williams: whats an easy way to fix firing through projectors? [4/24/2011 10:32:40 PM] buckyballreaction: well, if it gets a list of projectors to fire at - we need to come up with an algo to choose the correct one [4/24/2011 10:32:58 PM] buckyballreaction: but first - i need to find where it gets that list (if it does..) [4/24/2011 10:35:14 PM] Samuel Williams: in s_bot, there is fireAtObject that uses getFiringSolution [4/24/2011 10:36:16 PM] buckyballreaction: i see it - [4/24/2011 10:36:24 PM] buckyballreaction: where does obj come from? [4/24/2011 10:37:02 PM] buckyballreaction: i see fireAtObjects() [4/24/2011 10:37:13 PM] buckyballreaction: it uses bot:findItems [4/24/2011 10:37:21 PM] buckyballreaction: is that how LUA calls c++? [4/24/2011 10:37:44 PM] Samuel Williams: there is fireAtObjects (with an S) [4/24/2011 10:38:11 PM] Max h: windows wont ever name a service [083F7955-55D0-4A03-936E.....] will it? [4/24/2011 10:38:31 PM] buckyballreaction: that looks like a registry setting, zoomber [4/24/2011 10:40:45 PM] Max h: it shows up as a service, but has no file path, name, or setting for startup [4/24/2011 10:41:26 PM] buckyballreaction: sam, maybe in LuaRobot::doFindItems() ? [4/24/2011 10:42:52 PM] Samuel Williams: it probably starts in fireAtObjects, then findItems... [4/24/2011 10:43:02 PM] buckyballreaction: ok, i think i found the place [4/24/2011 10:43:12 PM] buckyballreaction: now to come up with an algo... [4/24/2011 10:43:21 PM | Edited 10:43:31 PM] Samuel Williams: might want to find all projectors at some points in future LUA programming.. [4/24/2011 10:45:58 PM] buckyballreaction: what if.. [4/24/2011 10:46:23 PM] buckyballreaction: what if we adjusted canSeePoint to not be able to cross FFs? [4/24/2011 10:46:29 PM] buckyballreaction: would that do it? [4/24/2011 10:47:39 PM] Samuel Williams: probably will work, that can avoids having robots trying to fire at ships and other targets through forcefirlds [4/24/2011 10:47:56 PM] buckyballreaction: yeah... [4/24/2011 10:47:58 PM] buckyballreaction: let me try that... [4/24/2011 10:50:26 PM] buckyballreaction: what was the name of that hexagonal map we found this problem on/ [4/24/2011 10:50:28 PM] buckyballreaction: ? [4/24/2011 10:50:59 PM] Samuel Williams: anything with forcefields the robots can get stuck on.. [4/24/2011 10:51:04 PM] buckyballreaction: yes [4/24/2011 10:51:13 PM] buckyballreaction: that map was perfect because it had so many [4/24/2011 10:52:15 PM] buckyballreaction: found it [4/24/2011 10:52:23 PM] buckyballreaction: honeycomb breakout [4/24/2011 10:59:17 PM] buckyballreaction: adding ForceFieldType to canSeePoint just made them jumpier - they still aim at other projectors.. [4/24/2011 11:02:04 PM] Samuel Williams: Robots use traveling paths for canSeePoints [4/24/2011 11:03:17 PM] Samuel Williams: s_bot LUA uses getFiringSolution to attack anything including forcefields, and ignores blocked forcefields which cannot be attacked anyway.. [4/24/2011 11:03:53 PM] Samuel Williams: only projectors can be attacked to take down forcefields.. [4/24/2011 11:05:05 PM] buckyballreaction: i think the solution is to make sure that the forcefield projectors that can't be shot at must first be removed from the list before getFiringSolution [4/24/2011 11:07:03 PM] Chris Eykamp: Maybe C++ can provide a funtction like getClosestFireable(list) that takes a list and returns the closest one that you can fire on... I think there is another similar function that only considers distance [4/24/2011 11:07:18 PM] Chris Eykamp: though that's an awful name [4/24/2011 11:07:34 PM] Chris Eykamp: then the bots can use that to prioritize ffs to target [4/24/2011 11:08:21 PM] buckyballreaction: my idea to exclude FF projectors was to check and see if robot canSeePoint would collide with the FF that the projector projects [4/24/2011 11:08:42 PM] buckyballreaction: but adding that to canSeePoint() proved fruitless [4/24/2011 11:10:36 PM] Samuel Williams: want to adoid this: http://96.2.123.136/bitfighter/closest_question.gif attacking the clostest projector may not work.. [4/24/2011 11:10:55 PM] buckyballreaction: yes [4/24/2011 11:11:22 PM] Max h: set force field as a search boundry? [4/24/2011 11:11:41 PM] buckyballreaction: yes, that is my idea [4/24/2011 11:11:55 PM] buckyballreaction: i just need to figure out where to do it [4/24/2011 11:11:56 PM] buckyballreaction: i'll get there... [4/24/2011 11:26:51 PM] Samuel Williams: with findItems also being used for finding the flags and where enemy is, if that get removed from list, robot won't know where to go, using getWaypoints, when it finds nothing. [4/24/2011 11:28:06 PM] buckyballreaction: explain further [4/24/2011 11:28:23 PM] buckyballreaction: i am only removing the 'unseeable' forcefield projectors [4/24/2011 11:29:30 PM] Samuel Williams: if removing unseeable stuff in findItems, it cause problems when it finds no target for getWaypoints() for robot paths to enemy ship.. [4/24/2011 11:29:40 PM] buckyballreaction: ahhh [4/24/2011 11:29:42 PM] buckyballreaction: yeah, i won't do that [4/24/2011 11:29:48 PM] buckyballreaction: only unseeable FF projectors [4/24/2011 11:31:29 PM] Samuel Williams: problem is when it targets enemy through the forcefields.. [4/24/2011 11:35:11 PM] buckyballreaction: i hadn't thought of that... good point [4/24/2011 11:36:02 PM] Samuel Williams: http://96.2.123.136/bitfighter/bitfighter-20110424-2333544.png its trying to attack ship when blocked by forcefields.. [4/25/2011 12:17:56 AM] Chris Eykamp: so textitem in editor is almost working exactly as it was before... a couple of minor rendering issues aside, it is fully ported [4/25/2011 12:18:30 AM] Chris Eykamp: however, I've more than doubled the amount of methods and fields on the object, so it's not as lightweight as it used to be [4/25/2011 12:18:47 AM] Chris Eykamp: I'm trying to decide if this bothers me [4/25/2011 12:19:16 AM] Chris Eykamp: does this bother me? [4/25/2011 12:19:31 AM] buckyballreaction: is there a performance hit? [4/25/2011 12:19:46 AM] Chris Eykamp: probably not a detectable one [4/25/2011 12:19:53 AM] buckyballreaction: or worse maintenance? [4/25/2011 12:20:06 AM] Chris Eykamp: better maintenance than before, overall [4/25/2011 12:20:24 AM] buckyballreaction: then i think we may just have to get used to it.. :) [4/25/2011 12:20:36 AM] Chris Eykamp: I think better; when modifying an object, it is good to be aware of how that impacts the editor, I think [4/25/2011 12:22:20 AM] Chris Eykamp: generally, these objects are created at the beginning of a game and last throughout [4/25/2011 12:22:27 AM] Chris Eykamp: asteroids and flags are exceptions [4/25/2011 12:29:18 AM] buckyballreaction: ugh - i almost used a goto statement [4/25/2011 12:39:13 AM] buckyballreaction: hmmm, ok [4/25/2011 12:40:11 AM] buckyballreaction: yeah a separate function is needed to determine if a target is 'fireable' [4/25/2011 12:40:58 AM] buckyballreaction: shootable, that's a better word [4/25/2011 12:41:32 AM] buckyballreaction: do all LUA methods return a 0 or 1? [4/25/2011 12:43:33 AM] Samuel Williams: LUA functions return 1 when returning something, or zero when return nothing.. [4/25/2011 12:43:51 AM] buckyballreaction: ah ok [4/25/2011 12:46:51 AM] Chris Eykamp: and all arrays are 1-indexed [4/25/2011 12:47:03 AM] Chris Eykamp: just so you know [4/25/2011 12:47:37 AM] buckyballreaction: oh yay [4/25/2011 12:47:43 AM] buckyballreaction: i love consistency... [4/25/2011 12:48:21 AM] Chris Eykamp: yes, I find that highly annoying [4/25/2011 12:55:03 AM] buckyballreaction: how do you make a hostile forcefield in the editor? [4/25/2011 12:55:17 AM] Samuel Williams: press ctrl+0 [4/25/2011 12:55:23 AM] Samuel Williams: or shift+0 [4/25/2011 12:56:01 AM] Chris Eykamp: shift-0 because GLUT can;t detect ctrl=0 [4/25/2011 12:56:50 AM] buckyballreaction: yep that worked, thanks [4/25/2011 12:57:51 AM] buckyballreaction: bah, the first part of this was a simple fix [4/25/2011 12:58:05 AM] buckyballreaction: sam, want to test on my editor server real quick? [4/25/2011 12:58:12 AM] Samuel Williams: ok... [4/25/2011 1:12:10 AM | Edited 1:12:19 AM] Samuel Williams: ok, pushed my changes.. I added a recodeSamples for using openAL 1.1 I made my own loadWAVfile, as it seems to be that my updated version of openAL 1.1 don't have alutLoadWAVFile [4/25/2011 1:12:58 AM] buckyballreaction: weird [4/25/2011 1:13:12 AM | Edited 1:13:26 AM] Samuel Williams: openAL32.lib and openAL32.dll, and some openAL .h files may need to be updated. [4/25/2011 1:13:26 AM] buckyballreaction: you put the method in pictureloader? [4/25/2011 1:13:41 AM] Samuel Williams: well, i couldn't think of a better place.. [4/25/2011 1:14:22 AM] Samuel Williams: i am sure you will remove pictureLoader when it comes to the actual stl loadpicture and loadWAV sound... [4/25/2011 1:14:46 AM] buckyballreaction: can you point me to the version of openAL that you used? [4/25/2011 1:15:05 AM] buckyballreaction: i am curious as to why it doesn't have that method [4/25/2011 1:15:21 AM] Samuel Williams: i went here for updated version.. http://connect.creativelabs.com/openal/default.aspx [4/25/2011 1:15:48 AM] buckyballreaction: i recommend here: http://kcat.strangesoft.net/openal.html [4/25/2011 1:15:58 AM] buckyballreaction: that page is the old openAL [4/25/2011 1:16:15 AM] buckyballreaction: it was forked as openal-soft [4/25/2011 1:16:24 AM] buckyballreaction: and bugfixes were applied [4/25/2011 1:17:38 AM] buckyballreaction: already has the dll for you there.. [4/25/2011 1:19:45 AM] buckyballreaction: also alut: http://connect.creativelabs.com/openal/Downloads/Forms/AllItems.aspx?RootFolder=%2Fopenal%2FDownloads%2FALUT&FolderCTID=&View={6A9700C6-7248-4CD2-83F5-268F2C176072} [4/25/2011 1:19:57 AM] buckyballreaction: that actually does come from the original source [4/25/2011 1:24:06 AM | Edited 1:24:10 AM] Samuel Williams: so which openal so i go with? [4/25/2011 1:24:28 AM] buckyballreaction: do we distribute it? [4/25/2011 1:24:47 AM] Samuel Williams: yes, /openal and /lib [4/25/2011 1:25:06 AM] buckyballreaction: openal-soft has more support and bugfixes [4/25/2011 1:25:12 AM] buckyballreaction: i would use it if possible [4/25/2011 1:25:15 AM] buckyballreaction: i moved mac to it [4/25/2011 1:25:22 AM] buckyballreaction: which fixed that mac crashing bug [4/25/2011 1:25:28 AM] Samuel Williams: ok. [4/25/2011 1:26:25 AM] buckyballreaction: i obviously don't know what .lib is anymore [4/25/2011 1:26:35 AM] buckyballreaction: the openal32.dll is bigger than the .lib [4/25/2011 1:26:49 AM] buckyballreaction: i thought .lib was static library [4/25/2011 1:26:53 AM] Chris Eykamp: yes [4/25/2011 1:27:19 AM] buckyballreaction: since when is shared library larger in size than static? [4/25/2011 1:27:36 AM] Samuel Williams: some .lib may help with the linking to .dll file at runtime.. [4/25/2011 1:28:05 AM] Samuel Williams: other .lib may have all the code to run (tnl, libtomcrypt) [4/25/2011 1:28:25 AM] buckyballreaction: so .lib is somewhere inbetween static library and compiled header? [4/25/2011 1:29:22 AM] buckyballreaction: maybe it's just how windows uses static libraries - maybe the .lib makes it pull in everything at compile time [4/25/2011 1:30:25 AM] Samuel Williams: all .lib files are included at linker. and put all together to .exe [4/25/2011 1:30:51 AM] Samuel Williams: .dll file stays seperate, and might be required to have .dll at runtime. [4/25/2011 1:31:08 AM] buckyballreaction: ah... so the .lib could just be referencing the .dll [4/25/2011 1:31:17 AM] Samuel Williams: yes [4/25/2011 1:32:53 AM] buckyballreaction: linux fails to compile now: sfx.cpp: In static member function ‘static void Zap::SFXObject::init()’: sfx.cpp:579:10: warning: deleting ‘ALvoid*’ is undefined sfx.cpp: At global scope: sfx.cpp:941:1: error: expected declaration before ‘}’ token [4/25/2011 1:34:18 AM] Samuel Williams: delete data; Not sure how else to fix it, maybe delete (char *)data; ? [4/25/2011 1:34:36 AM] buckyballreaction: seems like a header is included wrong... [4/25/2011 1:35:27 AM] Samuel Williams: probably related to me using LoadWAVFile.. [4/25/2011 1:38:22 AM] Samuel Williams: i was missing namespace Zap... #elif defined(ZAP_DEDICATED) || !defined(AL_VERSION_1_1) namespace Zap { [4/25/2011 1:38:45 AM] buckyballreaction: ha! i was right there... [4/25/2011 1:39:39 AM | Edited 1:39:51 AM] Samuel Williams: well if you get that error, you probably not using openAL version 1.1 , if you compiled without dedicated option. [4/25/2011 1:40:04 AM] buckyballreaction: 1.1 is defined on my system al.h [4/25/2011 1:40:46 AM] Samuel Williams: is it using .h files in project's openal/ ? [4/25/2011 1:41:36 AM] buckyballreaction: nope [4/25/2011 1:41:52 AM] buckyballreaction: it uses alInclude.h [4/25/2011 1:41:53 AM] buckyballreaction: wait [4/25/2011 1:41:59 AM] buckyballreaction: actually now i don't know [4/25/2011 1:42:24 AM] buckyballreaction: the makefile uses the included .h in openal/ [4/25/2011 1:42:37 AM] buckyballreaction: but i had this plan of one day migrating it to use the system' [4/25/2011 1:43:50 AM] Samuel Williams: using system's openal may be a newer version, that will enable "Press R to record your voice" [4/25/2011 1:45:29 AM] buckyballreaction: i guess linux is using the old headers.. i think i will change that to use the system's [4/25/2011 1:45:46 AM] buckyballreaction: but it'll have to wait until tomorrow - sleepy time for me :) [4/25/2011 1:46:01 AM] buckyballreaction: good nigth [4/25/2011 1:46:29 AM] Chris Eykamp: night [4/25/2011 1:46:49 AM] Chris Eykamp: making progress in editor, btw [4/25/2011 1:46:55 AM] buckyballreaction: hooray! [4/25/2011 1:47:06 AM] Chris Eykamp: hope to have teleporters and gofasts working tonight [4/25/2011 1:59:09 AM | Edited 1:59:54 AM] Samuel Williams: i see where alutLoadWAVFile somes from. openAL/alut.h and openAL/alut_win.h There could be some compatibility problem with alutLoadWAVFile, as it have this words: /* Nasty Compatibility stuff, WARNING: THESE FUNCTIONS ARE STRONGLY DEPRECATED */ ... alutLoadWAVFile ... alutLoadWAVMemory [4/25/2011 6:24:33 AM] Samuel Williams: I have updated openAL, made some changes, and tested to make it work in windows and linux, and captureSamples now works on both systems.. (not sure about mac) ALUT was only used for loading ".WAV" file, until i made my own WAV loader, ALUT is not needed anymore. With openAL, windows directsound is not needed anymore. [4/25/2011 8:02:02 AM | Edited 8:02:10 AM] Samuel Williams: http://bitfighter.org/forums/search.php?author_id=737&sr=posts spam, erase? [4/25/2011 10:12:30 AM] buckyballreaction: watusimoto - you've been a 'current player' on the forums for like two straight days [4/25/2011 10:12:45 AM] Chris Eykamp: I'm active [4/25/2011 10:13:08 AM] Chris Eykamp: I have an editor open to serve as a reference on how it is supposed to work [4/25/2011 10:14:02 AM] buckyballreaction: i just slayed three bots [4/25/2011 10:14:10 AM] buckyballreaction: i think it's getting worse... [4/25/2011 10:15:52 AM] buckyballreaction: sam, ALUT isn't required anymore? [4/25/2011 11:35:32 AM] buckyballreaction: so i just learned how to validate an e-mail address with PERL: http://www.ex-parrot.com/~pdw/Mail-RFC822-Address.html [4/25/2011 1:29:34 PM] buckyballreaction: just deleted more porn spam [4/25/2011 3:24:26 PM] karamazovapy: saw that - tried to delete from my phone, but was so turned on by the hot gay tube action [4/25/2011 3:45:51 PM] Chris Eykamp: [Monday, April 25, 2011 10:13 AM] buckyballreaction: <<< i just slayed three botsI thought you were talking about bf... only just now realized what you meant [4/25/2011 4:01:21 PM] karamazovapy: we had a lull for a while there, seemed to me [4/25/2011 4:01:29 PM] karamazovapy: it's picking up again, though [4/25/2011 9:16:44 PM] buckyballreaction: sam, i found this: http://code.google.com/p/hedgewars/source/browse/#hg%2Fmisc%2Flibopenalbridge [4/25/2011 9:17:01 PM] buckyballreaction: it's an openal library that implements vorbis and wav decoding [4/25/2011 9:17:20 PM] buckyballreaction: not decoding - bridges the decoder to openal [4/25/2011 9:23:44 PM] Samuel Williams: libopenalbridge is probably better then my way of loading WAV. [4/25/2011 9:23:51 PM] buckyballreaction: it loks really good [4/25/2011 9:24:09 PM] buckyballreaction: and we'd have a framework already set for playing in-game music [4/25/2011 9:31:34 PM] buckyballreaction: what does '#pragma pack(1)' do? [4/25/2011 9:33:04 PM] Samuel Williams: Not sure what exactly it does, but you can look here http://www.google.com/search?q=%23pragma+pack%281%29 [4/25/2011 9:33:31 PM] buckyballreaction: data alignment [4/25/2011 9:33:34 PM] buckyballreaction: whatever that means [4/26/2011 12:02:02 AM] Max h: hmm [4/26/2011 12:02:37 AM] Max h: does anyone acknowledge the little bitfighter ship chatroom icon at the top ? [4/26/2011 12:24:06 AM] Chris Eykamp: 015a editor does not play nice with gridsize setting [4/26/2011 12:51:14 AM] Chris Eykamp: I'm really starting to hate the editor [4/26/2011 12:53:01 AM] Samuel Williams: maybe a new editor could be written from scratch, if that is easier. [4/26/2011 12:53:38 AM] Chris Eykamp: well, rolling back would be easier [4/26/2011 3:45:34 AM] Chris Eykamp: I just realized a major complication -- editing and playing in different units makes everything screwy [4/26/2011 3:46:06 AM] Chris Eykamp: I think the key is to convert the editor to "game units' i.e. units * gridSize(), then divide those out when saving [4/26/2011 3:46:52 AM] Chris Eykamp: there are all kinds of wacky hoops I'm trying to jump through because I'm trying to use the same routines with different units, and it just isn't working. [4/26/2011 3:49:41 AM] Chris Eykamp: that would also ensure that the gridsize param is handled consistently btwn the editor and the game, which it is not in 015a [4/26/2011 3:52:35 AM] Samuel Williams: .. like it should not have gridsize option in the very beginning of starting first version of Zap or bitfighter.. But since is there for most levels, it needs "Gridsize" for compatibility. [4/26/2011 3:53:10 AM] Chris Eykamp: removing gridsize did cross my mind... [4/26/2011 3:53:33 AM] Chris Eykamp: I'm going to bed, but it would be interesting to know just how many levels have a non-standard gridsize. [4/26/2011 3:54:11 AM] Chris Eykamp: well, I suppose it doesn't matter... we're stuck with it for better or worse; but it hardly matters; divide it out when saving, mutliply it back in when loading [4/26/2011 3:54:20 AM] Chris Eykamp: as long as we do that consistenlty, it should work out fine [4/26/2011 3:54:37 AM] Samuel Williams: Many of my levels use different GridSize to easily resize the whole level.. [4/26/2011 3:54:48 AM] Chris Eykamp: yes, and that is a kind of nifty feature [4/26/2011 3:55:16 AM] Chris Eykamp: if you load up the editor at gs of say 500, it looks a LOT different than the game [4/26/2011 3:55:32 AM] Chris Eykamp: fixing that may be a nice side-effect of my endless refactor [4/26/2011 3:55:40 AM] Chris Eykamp: this is making botzones look fun :) [4/26/2011 3:57:32 AM | Edited 3:57:47 AM] Samuel Williams: Multiply by gridsize will probably fix giant "Caution - Slippery" when viewing it in editor.. [4/26/2011 3:58:09 AM] Chris Eykamp: yes, it would. well, bedtime... goodnight! [4/26/2011 3:58:22 AM] Samuel Williams: bye. [4/26/2011 3:58:28 AM | Edited 3:58:37 AM] Samuel Williams: see you later.. [4/26/2011 7:00:06 PM] buckyballreaction: really bad day [4/26/2011 7:01:06 PM] buckyballreaction: a server of mine had two drives under LVM (like raid 0) and one drive failed. Then I found out the backup process had failed in February [4/26/2011 7:02:50 PM] Chris Eykamp: ugh! [4/26/2011 7:04:07 PM] buckyballreaction: so what is a good way to to tell you when a cron job fails? [4/26/2011 7:04:24 PM] buckyballreaction: have a separate cron job that audit it? [4/26/2011 7:04:29 PM] buckyballreaction: on a remote machine? [4/26/2011 7:04:46 PM] Chris Eykamp: fails as in just doesn't run? [4/26/2011 7:04:51 PM] buckyballreaction: yep [4/26/2011 7:05:55 PM] buckyballreaction: maybe set up a shared database that has a timestamp, then on another machine make sure the process has run within that timestamp + cron schedule interval [4/26/2011 7:08:38 PM] Chris Eykamp: yeah, or a logfile, or a dummy file, or any of a number of similar arrangements [4/26/2011 11:40:46 PM] Max h: On 4/25/11, at 10:52 PM, Samuel Williams wrote: > maybe a new editor could be written from scratch, if that is easier. i think thats a reasonable idea. [4/26/2011 11:44:34 PM] Chris Eykamp: it's not [4/26/2011 11:51:42 PM] Chris Eykamp: alright... I have now converted part of the editor to "game coordinate" mode, and can place items there, with fewer scaling factors and stuff. I think this is the way to go. We can still present coordinates to the user in the old fashion, but now rendering seems to be cleaner. [4/27/2011 12:15:37 AM] buckyballreaction: i am just blown away at how good the movie 'how to train your dragon' is [4/27/2011 12:15:45 AM] buckyballreaction: caught me completely off guard [4/27/2011 4:22:46 AM] Chris Eykamp: though I had to redo a lot of stuff, i feel that I'm making progress again [4/27/2011 4:23:05 AM] Chris Eykamp: and there's a lot less razzmatazz required to make the editor work [4/27/2011 4:23:12 AM] Chris Eykamp: the code is getting cleaner [4/27/2011 4:23:17 AM] Chris Eykamp: more tomorrow [4/27/2011 8:02:14 PM] Chris Eykamp: what do you guys think about reading/writing to system clipboard? [4/27/2011 8:02:30 PM] Chris Eykamp: i.e. in editor, when you do copy paste, we currently store objects internally [4/27/2011 8:02:34 PM] buckyballreaction: for what purpose? [4/27/2011 8:02:42 PM] Chris Eykamp: copying levelcode ??? [4/27/2011 8:02:47 PM] Chris Eykamp: I'm not sure [4/27/2011 8:03:01 PM] buckyballreaction: i can only think of wanting it once: pasting something into chat [4/27/2011 8:03:04 PM] Chris Eykamp: I'm contemplating converting clipboard objects to levelcode anyway, to isolate a problem [4/27/2011 8:03:15 PM] Chris Eykamp: so I was thinking of taking it just one step further [4/27/2011 8:03:56 PM] Chris Eykamp: It would make it easier to see a level posted in teh forums and get it onto your system [4/27/2011 8:04:06 PM] Chris Eykamp: fire up bf, open the editor, paste the code [4/27/2011 8:04:08 PM] Chris Eykamp: voila [4/27/2011 8:04:36 PM] Chris Eykamp: without finding the level folder, creating a text file, opening that in an editor, etc. [4/27/2011 8:04:59 PM] buckyballreaction: interesting [4/27/2011 8:05:30 PM] buckyballreaction: so could conceivably take some text like: PolyWall 0 1 2 3 4 [4/27/2011 8:05:39 PM] buckyballreaction: copy it and paste in editor [4/27/2011 8:05:41 PM] buckyballreaction: and the wall show up? [4/27/2011 8:06:52 PM] Chris Eykamp: yes [4/27/2011 8:06:55 PM] Chris Eykamp: exactly [4/27/2011 8:06:59 PM] Chris Eykamp: or a whole block of text [4/27/2011 8:07:14 PM] Chris Eykamp: and when you copied an item in the editor, it would get written to the clipboard in same format [4/27/2011 8:07:48 PM] buckyballreaction: that would make collaboration between level developers way easy (if level develpers collaborated...) [4/27/2011 8:08:03 PM] Chris Eykamp: to help me figure something out, I've already started saving the undo states as vectors of strings [4/27/2011 8:08:16 PM] Chris Eykamp: where the strings are the levelcode version of the items [4/27/2011 8:08:26 PM] Chris Eykamp: so the methods are already there [4/27/2011 8:08:42 PM] Chris Eykamp: would just need to figure out how to access sytem clipboard on all platforms [4/27/2011 8:08:54 PM] buckyballreaction: oh boy [4/27/2011 8:08:59 PM] buckyballreaction: i have no clue [4/27/2011 8:09:08 PM] Chris Eykamp: probably with boost :) [4/27/2011 8:09:16 PM] buckyballreaction: oh yeah [4/27/2011 8:09:28 PM] buckyballreaction: we can really break things now... [4/27/2011 8:09:42 PM] Chris Eykamp: yes; [4/27/2011 8:10:12 PM] Chris Eykamp: ok, gotta run; think about it, and let me know if you still think it's a good idea after an hour or so. I'll do a quick search later to see how hard it would be. [4/27/2011 8:10:55 PM] buckyballreaction: ok [4/27/2011 8:21:19 PM] buckyballreaction: it'd be real easy if we used QT... [4/27/2011 8:22:36 PM] buckyballreaction: after doing some research, most people say that you should embed the openGL app in a 'real' GUI toolkit like QT / wxWidgets / AWT/ Swing [4/27/2011 8:22:58 PM] buckyballreaction: that'd easily make bitfighter a lot larger in size... [4/27/2011 8:28:54 PM] buckyballreaction: all those toolkits have a way to access clipboard [4/27/2011 8:38:12 PM] buckyballreaction: looks like SDL 1.3 will have a clipboard API [4/27/2011 10:09:56 PM] Chris Eykamp: we don't need anything else those gui toolkits offer, do we? [4/27/2011 10:10:06 PM] Chris Eykamp: given that we make no use of gui widgets and the like [4/27/2011 10:10:34 PM] buckyballreaction: i don't thinks [4/27/2011 10:12:51 PM] Chris Eykamp: may have it already [4/27/2011 10:12:52 PM] Chris Eykamp: http://wiki.libsdl.org/moin.cgi/CategoryClipboard [4/27/2011 10:13:57 PM] buckyballreaction: ooo [4/27/2011 10:13:59 PM] buckyballreaction: that's good [4/27/2011 10:14:10 PM] Chris Eykamp: it's not much, but all we need [4/27/2011 10:15:35 PM] Chris Eykamp: that's a whack way to define a cursor [4/27/2011 10:15:36 PM] Chris Eykamp: http://wiki.libsdl.org/moin.cgi/SDL_CreateCursor [4/27/2011 10:16:15 PM] buckyballreaction: hahaha [4/27/2011 10:16:25 PM] buckyballreaction: reminds me of the 'xpm' graphic format [4/27/2011 10:17:15 PM] Chris Eykamp: I wonder why... [4/27/2011 10:17:16 PM] Chris Eykamp: /* Creates a new mouse cursor from an XPM */ [4/27/2011 10:17:26 PM] buckyballreaction: ah [4/27/2011 10:17:33 PM] buckyballreaction: as you can see i didn't read anything... [4/27/2011 10:17:35 PM] buckyballreaction: :) [4/27/2011 10:18:45 PM] buckyballreaction: it's been too many days since i've worked on bitfighter - i don't remember what i was up to.. [4/27/2011 10:19:29 PM] buckyballreaction: i think i'll do a little more cleaning.. [4/27/2011 10:19:45 PM] Chris Eykamp: I know what I'm doing... editor work [4/27/2011 10:19:47 PM] Chris Eykamp: blech [4/27/2011 10:19:54 PM] Chris Eykamp: but I finally feel that I;ve gained traction [4/27/2011 10:20:06 PM] Chris Eykamp: things mostly work now [4/27/2011 10:20:07 PM] buckyballreaction: didn't you say that last week? [4/27/2011 10:20:08 PM] buckyballreaction: :) [4/27/2011 10:20:17 PM] Chris Eykamp: yes, but this time I'm right :) [4/27/2011 10:34:16 PM] buckyballreaction: i've already removed two more bots today [4/27/2011 10:34:23 PM] buckyballreaction: form the forums [4/27/2011 10:34:41 PM] buckyballreaction: it used to be only 4 or 5 a week [4/27/2011 10:34:49 PM] buckyballreaction: i've had 6 since monday [4/27/2011 10:41:24 PM] Chris Eykamp: ugh [4/27/2011 10:41:29 PM] Chris Eykamp: I need to get that fix done [4/27/2011 10:58:49 PM] buckyballreaction: there did some Mac housekeeping [4/27/2011 11:18:37 PM] Chris Eykamp: you know, it appears that vector has a big change in beavior [4/27/2011 11:19:11 PM] Chris Eykamp: before I *think* we could say newvec; newvec = oldvec [4/27/2011 11:19:15 PM] buckyballreaction: like being faster? [4/27/2011 11:19:19 PM] Chris Eykamp: and newvec would contain the same points as oldvec [4/27/2011 11:19:24 PM] Chris Eykamp: now that appears not to work [4/27/2011 11:19:30 PM] Chris Eykamp: now newvec appears to be empty [4/27/2011 11:19:37 PM] Chris Eykamp: at least in some circumstances [4/27/2011 11:19:47 PM] Chris Eykamp: need to test this [4/27/2011 11:19:52 PM] Chris Eykamp: and figure out what's going on [4/27/2011 11:20:12 PM] buckyballreaction: i remember testing that operator [4/27/2011 11:20:17 PM] Chris Eykamp: but there are other changes surrounding my observation that may account for the issue [4/27/2011 11:20:21 PM] buckyballreaction: i don't remember a problem [4/27/2011 11:20:24 PM] Chris Eykamp: the real use case is this [4/27/2011 11:20:41 PM] Chris Eykamp: class object { Vector pts }; [4/27/2011 11:20:49 PM] Chris Eykamp: object2 = object [4/27/2011 11:20:50 PM] Chris Eykamp: before pts were copied [4/27/2011 11:20:55 PM] Chris Eykamp: now we're doing this [4/27/2011 11:21:08 PM] Chris Eykamp: object *obj [4/27/2011 11:21:23 PM] Chris Eykamp: obj2 = new object(obj) [4/27/2011 11:21:30 PM] Chris Eykamp: that calls the copy constructor [4/27/2011 11:21:50 PM] Chris Eykamp: which I thought would copy pts [4/27/2011 11:21:57 PM] Chris Eykamp: but maybe the problem has nothing to do with your refactor [4/27/2011 11:22:10 PM] Chris Eykamp: now that I'm talking through it [4/27/2011 11:22:16 PM] buckyballreaction: hmmm, i'm not sure... [4/27/2011 11:22:21 PM] Chris Eykamp: maybe it's the different calling semantics [4/27/2011 11:22:58 PM] Chris Eykamp: do you at least unsderstand what I wrote? [4/27/2011 11:23:05 PM] buckyballreaction: sort of ish [4/27/2011 11:23:10 PM] Chris Eykamp: :) [4/27/2011 11:23:22 PM] buckyballreaction: i am looking at tnlVector.h [4/27/2011 11:23:33 PM] buckyballreaction: I see: template inline Vector::Vector(const Vector& p) // Copy constructor { innerVector = p.innerVector; } [4/27/2011 11:23:59 PM] buckyballreaction: so the question is if calling '=' on stl::vector does a copy [4/27/2011 11:24:39 PM] Chris Eykamp: I guess so [4/27/2011 11:24:48 PM] Chris Eykamp: I mean I guess that's the question [4/27/2011 11:24:55 PM] buckyballreaction: foudn this: /** * @brief %Vector assignment operator. * @param x A %vector of identical element and allocator types. * * All the elements of @a x are copied, but any extra memory in * @a x (for fast expansion) will not be copied. Unlike the * copy constructor, the allocator object is not copied. */ vector& operator=(const vector& __x); [4/27/2011 11:25:56 PM] buckyballreaction: that is the operator in stl::vector [4/27/2011 11:26:06 PM] buckyballreaction: soo... still not sure what it does exactly [4/27/2011 11:33:09 PM] buckyballreaction: so in the tnlVector.h copy constructor change: innerVector = p.innerVector; to innerVector = vector(p.innerVector); [4/27/2011 11:33:18 PM] buckyballreaction: that should do a proper copy [4/27/2011 11:35:39 PM] buckyballreaction: that compiles - [4/27/2011 11:36:56 PM] buckyballreaction: i'll commit that change [4/27/2011 11:37:31 PM] buckyballreaction: pushed [4/27/2011 11:43:29 PM] buckyballreaction: after studying the old operator=, i have determined that the old did a complete copy, but the new doesn't [4/27/2011 11:43:38 PM] buckyballreaction: the new does what std::vector does [4/27/2011 11:53:01 PM] Chris Eykamp: brilliant! [4/27/2011 11:53:20 PM] buckyballreaction: ? [4/27/2011 11:55:05 PM] Chris Eykamp: that you figured that all out [4/27/2011 11:55:12 PM] buckyballreaction: ah ok [4/27/2011 11:55:16 PM] buckyballreaction: will that work for you? [4/27/2011 11:55:27 PM] Chris Eykamp: I'll let you know after my recompile [4/27/2011 11:55:42 PM] buckyballreaction: when wanting copy use the Vector(otherVec) notation [4/28/2011 12:00:29 AM] Chris Eykamp: the real test is when the vector is embedded in another object that is being copied [4/28/2011 12:00:33 AM] Chris Eykamp: that's where I need it [4/28/2011 12:00:53 AM] Chris Eykamp: testing [4/28/2011 12:02:44 AM] Chris Eykamp: darn [4/28/2011 12:03:02 AM] Chris Eykamp: the object I'm copying has no meaningful inner vector of points [4/28/2011 12:03:14 AM] Chris Eykamp: I had misunderstood the issue completely [4/28/2011 12:03:24 AM] Chris Eykamp: because things are still a bit of a mishmash [4/28/2011 12:03:51 AM] Chris Eykamp: back to trying to understand the real underlying problem here... [4/28/2011 12:04:37 AM] Chris Eykamp: no wait, there is an inner vector, and it got copied [4/28/2011 12:04:52 AM] Chris Eykamp: what I don;t know is if it got copied before [4/28/2011 12:04:55 AM] buckyballreaction: at least it made me fix the copy constructor... [4/28/2011 12:05:07 AM] Chris Eykamp: but was it really broken? [4/28/2011 12:05:13 AM] buckyballreaction: i have no idea... [4/28/2011 12:05:33 AM] buckyballreaction: i don't understand the operator doc in std::vector [4/28/2011 12:05:38 AM] Chris Eykamp: what we had might have worked just fine [4/28/2011 12:05:46 AM] Chris Eykamp: well, no matter; it works now [4/28/2011 12:05:55 AM] buckyballreaction: cool [4/28/2011 12:06:03 AM] Chris Eykamp: though looking at it, I suspect it worked before as well [4/28/2011 12:06:06 AM] Chris Eykamp: sorry! [4/28/2011 12:06:19 AM] buckyballreaction: hehe, no problem - at least it's clearer in the code now [4/28/2011 12:12:59 AM] Chris Eykamp: great, working now [4/28/2011 12:13:04 AM] Chris Eykamp: totally my screwup [4/28/2011 12:13:13 AM] buckyballreaction: oh good [4/28/2011 12:13:14 AM] buckyballreaction: ... [4/28/2011 12:13:15 AM] Chris Eykamp: but now we can copy and paste multiple items again [4/28/2011 12:13:19 AM] buckyballreaction: that it works [4/28/2011 12:14:26 AM] Chris Eykamp: so how much working should this be before I check it in for you and sam to pick apart [4/28/2011 12:14:42 AM] buckyballreaction: hmmm [4/28/2011 12:14:55 AM] buckyballreaction: is all the functionality already there? [4/28/2011 12:15:22 AM] Chris Eykamp: mostly [4/28/2011 12:15:26 AM] Chris Eykamp: but only for three items [4/28/2011 12:15:35 AM] buckyballreaction: after that then [4/28/2011 12:15:36 AM] Chris Eykamp: so it's not at all a done work [4/28/2011 12:15:56 AM] Chris Eykamp: you want something mostly functional for all items before you break your editor? :) [4/28/2011 12:16:05 AM] buckyballreaction: yep :) [4/28/2011 12:16:15 AM] Chris Eykamp: I'm doing point items next, there's a lot of them, and they should go fast [4/28/2011 12:16:27 AM] Chris Eykamp: then there's walls... that;s the ugly one [4/28/2011 12:16:56 AM] buckyballreaction: oh, three item types you mean? [4/28/2011 12:18:10 AM] Chris Eykamp: yes [4/28/2011 12:18:15 AM] Chris Eykamp: go fasts, text, and teleporter [4/28/2011 12:18:27 AM] Chris Eykamp: all the simpleLine items [4/28/2011 12:18:43 AM] Chris Eykamp: but I just realized that attribute editing is broken for the gofasts [4/28/2011 12:19:01 AM] Chris Eykamp: but the larger editor issues have been sorted out [4/28/2011 12:19:09 AM] Chris Eykamp: mostly [4/28/2011 12:27:37 AM] buckyballreaction: well i'm off to bed [4/28/2011 12:27:55 AM] buckyballreaction: good night [4/28/2011 12:32:27 AM] Chris Eykamp: night [4/28/2011 3:38:15 AM] Chris Eykamp: I had to totally reimplement attribute editing in the editor -- those menus that let you set the gofast speed and snap, for example [4/28/2011 3:38:19 AM] Chris Eykamp: but [4/28/2011 3:38:26 AM] Chris Eykamp: I managed to do it using the other menu code [4/28/2011 3:38:56 AM] Chris Eykamp: so now we can add little menus to any editor item that can edit any data we have regular menu support for [4/28/2011 10:50:02 AM] buckyballreaction: neat [4/28/2011 10:50:06 AM] karamazovapy: [Wednesday, April 27, 2011 8:02 PM] Chris Eykamp: <<< what do you guys think about reading/writing to system clipboard?great idea - allows copying level elements between mulitiple instances of the editor. [4/28/2011 10:53:53 AM] buckyballreaction: i didn't think of that usage.. [4/28/2011 10:53:55 AM] buckyballreaction: good idea [4/28/2011 10:54:49 AM] karamazovapy: yeah...it's the kind of thing you think of if you've ever dug through level code to reuse something...or if you've built a level in multiple stages or piecemeal [4/28/2011 10:55:58 AM] karamazovapy: to be fair, I usually end up saving a second copy of the level file, deleting everything I don't need, re-saving, and then opening the copy in a text editor with all the extraneous code now removed [4/28/2011 10:56:51 AM] buckyballreaction: yeah this would ease that pain quite a bit [4/28/2011 10:57:43 AM] karamazovapy: and make the barriermaker-insertion style levelgens a lot easier to wrangle [4/28/2011 10:58:37 AM] karamazovapy: you had to use the same process of selective deletion for those to move the level code from the main level file to the levelgen script [4/28/2011 10:59:08 AM] buckyballreaction: yuk [4/28/2011 11:00:00 AM] karamazovapy: yeah, I found ways to make the process moderately more efficient, but it was still a pretty serious headache. you can't imagine the amount of work it took to sort out all the possibilities for that nexus levelgen of mine with all the Xs [4/28/2011 11:00:31 AM] buckyballreaction: i remember that one [4/28/2011 11:00:34 AM] buckyballreaction: that waas neat [4/28/2011 11:00:40 AM] karamazovapy: A smarter method for that level would have been to generate them mathematically, but I don't have the coding chops for that [4/28/2011 11:00:59 AM] karamazovapy: sam could probably do it in a couple hours [4/28/2011 11:01:13 AM] karamazovapy: anyway - off to teach afternoon third grade! [4/28/2011 11:02:26 AM] buckyballreaction: later [4/28/2011 12:17:21 PM] Chris Eykamp: yeah, so if we can find a way to read/write to the clipboard, the rest will be relatively easy [4/28/2011 12:17:38 PM] Chris Eykamp: maybe an hours work [4/28/2011 12:18:41 PM] buckyballreaction: should we wait until SDL? [4/28/2011 12:45:37 PM] Chris Eykamp: when do you want to start that task? [4/28/2011 12:45:43 PM] Chris Eykamp: but yes, probably [4/28/2011 12:47:23 PM] buckyballreaction: I was thinking that after the editor gets merged in I would do some housekeeping first: 1. move all sources to libraries/zap/etc. into a subfolder called 'src'; adjust all projects accordingly 2. SDL! [4/28/2011 12:47:51 PM] buckyballreaction: #1 because it's getting a bit messy in the root [4/28/2011 12:48:42 PM] buckyballreaction: would need to make sure sam doesn't have anything important going on as well.. [4/28/2011 5:34:09 PM] *** Vittorio joined. *** [4/28/2011 5:34:39 PM] Vittorio: hi! [4/28/2011 5:38:41 PM] Samuel Williams: I haven't really worked on anything much on bitfighter in a past few days, and i don't have anything big of mine that is not commited / pushed. I may go to bed very early. [4/28/2011 5:38:56 PM] buckyballreaction: hi koda [4/28/2011 5:38:58 PM] buckyballreaction: it's raptor [4/28/2011 5:39:31 PM] Vittorio: howdy [4/28/2011 5:42:54 PM] karamazovapy: welcome! [4/28/2011 5:46:22 PM] buckyballreaction: sorry, got pulled away (still at work) [4/28/2011 5:46:50 PM] Vittorio: raptor introduced me to the game [4/28/2011 5:47:09 PM] Vittorio: it's really nice [4/28/2011 5:47:23 PM] buckyballreaction: so everyone, koda (Vittorio), is one of the developers of hedgewars [4/28/2011 5:47:47 PM] buckyballreaction: he and I have been discussing the pros/cons of openal and sdl [4/28/2011 5:48:22 PM] buckyballreaction: and he agrees that we should move to IRC :) [4/28/2011 5:48:44 PM] Vittorio: yeah, it blows my mind that so many people could join development [4/28/2011 5:49:05 PM] buckyballreaction: is that hedgewars channel for dev only? [4/28/2011 5:49:28 PM] Vittorio: no, there is not enough traffic to justify two channels [4/28/2011 5:50:03 PM] karamazovapy: we don't have enough traffic either, but our in-game chat is self contained right now [4/28/2011 5:50:20 PM] Vittorio: but more people could reach you if you were on freenode (irc) [4/28/2011 5:50:28 PM] Vittorio: and could start building a community [4/28/2011 5:51:06 PM] buckyballreaction: yeah, we rely mostly on forums [4/28/2011 5:51:32 PM] Vittorio: we do as well [4/28/2011 5:51:40 PM] Vittorio: but having developers connected on irc [4/28/2011 5:51:45 PM] buckyballreaction: that's if they could get past the sign up verification... [4/28/2011 5:52:04 PM] Vittorio: has made our team gather many more people [4/28/2011 5:52:08 PM] buckyballreaction: our verification is so hard that only bots can get past it now [4/28/2011 5:52:17 PM] Vittorio: :D [4/28/2011 5:53:13 PM] buckyballreaction: well, i gotta get real work done now.. [4/28/2011 5:53:28 PM] buckyballreaction: thanks again koda [4/28/2011 11:05:34 PM] buckyballreaction: good evening! [4/28/2011 11:05:42 PM] buckyballreaction: sam, if you are around [4/28/2011 11:05:59 PM] buckyballreaction: i got permission to tinker with libopenalbridge from the hedgewars devs [4/28/2011 11:06:24 PM] buckyballreaction: they said they had problems using it on windows and linux though [4/28/2011 11:06:45 PM] buckyballreaction: which is funny because we had problems with openal on mac, but not the others [4/28/2011 11:32:20 PM] Chris Eykamp: http://www.youtube.com/watch?v=JZsIyJehtE8 [4/28/2011 11:32:23 PM] Chris Eykamp: 1:26 [4/28/2011 11:32:31 PM] Chris Eykamp: that's where the brain start shooting out the worms [4/28/2011 11:32:36 PM] buckyballreaction: hi [4/28/2011 11:32:37 PM] Chris Eykamp: those are the worms I want for bitfighter [4/28/2011 11:32:42 PM] Chris Eykamp: hi [4/28/2011 11:32:54 PM] Chris Eykamp: broke my lifetime high score today, btw! [4/28/2011 11:33:31 PM] buckyballreaction: wow, those were faster than the last ones i saw [4/28/2011 11:34:29 PM] Chris Eykamp: more at 3:44 [4/28/2011 11:34:42 PM] Chris Eykamp: not the big things, but the little thin ones [4/28/2011 11:34:50 PM] Chris Eykamp: but I had another weapon idea [4/28/2011 11:35:14 PM] Chris Eykamp: something that killed the player and replaced them with a robot (while they respawned normally) that went all psycho and hostile against his own team [4/28/2011 11:35:52 PM] buckyballreaction: haha [4/28/2011 11:36:50 PM] buckyballreaction: psychobot [4/28/2011 11:37:13 PM] Chris Eykamp: yes [4/28/2011 11:37:32 PM] buckyballreaction: so when you die, it spawns at the death location [4/28/2011 11:37:49 PM] buckyballreaction: and would essentially be another player on the map until killed? [4/28/2011 11:38:07 PM] buckyballreaction: those wormies in robotron are evil [4/28/2011 11:39:11 PM] Chris Eykamp: yes [4/28/2011 11:39:21 PM] Chris Eykamp: I imagine a turret that shoots them [4/28/2011 11:39:36 PM] Chris Eykamp: they only go n s e w and on the diagonals [4/28/2011 11:39:48 PM] Chris Eykamp: and turn randomly [4/28/2011 11:40:03 PM] Chris Eykamp: or maybe some shootable emitter [4/28/2011 11:40:12 PM] Chris Eykamp: or maybe a special kind of bot [4/28/2011 11:41:28 PM] Chris Eykamp: more worms here [4/28/2011 11:41:28 PM] Chris Eykamp: http://www.youtube.com/watch?v=5T3oUqWnjVM [4/28/2011 11:42:13 PM] buckyballreaction: wow, they last a long time [4/28/2011 11:45:32 PM] Chris Eykamp: forever, basically [4/28/2011 11:46:23 PM] Chris Eykamp: robotron totally rules [4/28/2011 11:46:43 PM] Chris Eykamp: in case you wondered if it did [4/28/2011 11:47:08 PM] Chris Eykamp: so that's what I wanted to try in bitfighter [4/28/2011 11:51:47 PM] buckyballreaction: ah ha! [4/28/2011 11:51:49 PM] buckyballreaction: http://members.allegro.cc/ThomasHarte/ [4/28/2011 11:51:53 PM] buckyballreaction: bottom of the page [4/28/2011 11:54:04 PM] buckyballreaction: except i'm not finding much in the source yet.. [4/29/2011 12:00:52 AM] Chris Eykamp: what are you looking for? [4/29/2011 12:01:01 AM] buckyballreaction: the algo for the wormies [4/29/2011 12:01:05 AM] buckyballreaction: it's not there [4/29/2011 12:01:13 AM] buckyballreaction: it was only a rudimentary clone [4/29/2011 12:01:18 AM] Chris Eykamp: ah, I see [4/29/2011 12:01:32 AM] buckyballreaction: are the wormies considered 'Cruise Missiles'? [4/29/2011 12:02:06 AM] Chris Eykamp: probably... the movement algo is pretty simple... continue moving straight for a time, then randomly shift either 45 or 90 degrees, lather, rinse, repeat [4/29/2011 12:02:50 AM] buckyballreaction: except they seemed to accelerate righter after turning [4/29/2011 12:04:10 AM] Chris Eykamp: it certainly feels that way when you play [4/29/2011 12:04:26 AM] buckyballreaction: yeah, it may be just perception.. [4/29/2011 12:07:32 AM] Chris Eykamp: I've searched for the algo before [4/29/2011 12:07:46 AM] buckyballreaction: yeah, we'll just have to write it ourselves, i think [4/29/2011 12:08:39 AM] Chris Eykamp: I do have the ROM for the game, if your assembler's any good [4/29/2011 12:14:27 AM] buckyballreaction: ha! [4/29/2011 12:14:37 AM] Chris Eykamp: well, another idea is to add some of the monsters from geometry wars; that would be easier, as the source is available, and is readable [4/29/2011 12:18:42 AM] Max h: i see we have someone new? [4/29/2011 12:19:07 AM] buckyballreaction: hi max [4/29/2011 12:19:25 AM] Max h: hi raptor [4/29/2011 12:19:34 AM] buckyballreaction: yeah - that's koda - he's a dev from hedgewars i was talking to on #hedgewars IRC [4/29/2011 12:19:51 AM] buckyballreaction: I was asking about using a sound framework he wrote to play music [4/29/2011 12:19:55 AM | Edited 12:27:44 AM] Chris Eykamp: for the record, I'd be happy moving [4/29/2011 12:19:56 AM] Max h: ooh neat another dev [4/29/2011 12:20:06 AM] buckyballreaction: told him about bitfighter - he liked it [4/29/2011 12:20:25 AM] Max h: great! [4/29/2011 12:22:21 AM] buckyballreaction: zoomber, he thought we were shooting ourselves in the foot by not having an IRC channel [4/29/2011 12:22:46 AM] Max h: we did, but only 3 of us were in there [4/29/2011 12:23:23 AM] Max h: Of course, we can go back, if everyone is willing [4/29/2011 12:24:03 AM] Max h: i think i made one just to play around with eariler, but If we go back to irc at all, I think we should at least host it from watusimoto's master server [4/29/2011 12:25:29 AM] Max h: that, giving us 100% total complete full coverage access to whatever we want to do with it. letting us chat with the bitfighter lobby, install an irc bubble on the website, or whatever other Ideas come up [4/29/2011 12:26:25 AM] Max h: again though, the only problem I see is, being offline and not being able to catch up with what everyone said while you were off [4/29/2011 12:26:45 AM] Max h: unless we have an irc server which can keep all messages within, say a week [4/29/2011 12:26:56 AM] Max h: just my 5 cents of info [4/29/2011 12:27:09 AM] buckyballreaction: i wonder if freenode has a log of some sorts.. [4/29/2011 12:27:34 AM] Max h: freenode was the server i made an irc room on i think... [4/29/2011 12:28:02 AM] Chris Eykamp: we could host it on my game server [4/29/2011 12:28:26 AM] Max h: we could always keep both the skypee room and the irc channel [4/29/2011 12:28:54 AM] buckyballreaction: if we started using IRC heavily, i would probably ditch skype [4/29/2011 12:29:18 AM] buckyballreaction: also we could embed an IRC tab on bitfighter.org and have a browser client [4/29/2011 12:29:38 AM] Max h: that was the idea i poorly described above :) [4/29/2011 12:29:46 AM] buckyballreaction: ahhh.. [4/29/2011 12:29:49 AM] buckyballreaction: :) [4/29/2011 12:29:59 AM] buckyballreaction: i guess i just didn't read right.. [4/29/2011 12:30:54 AM] Max h: the thing is, what are we gaining by using a developer channel on our front page? Spoiling all the suprises that are coming in the next update? [4/29/2011 12:31:24 AM] Max h: maybe we can move the bitfighter chat skyperoom there.. [4/29/2011 12:31:38 AM] buckyballreaction: koda made the point that community is what makes the game and having an open channel would help [4/29/2011 12:32:52 AM] Max h: this room is also an open channel, I just have no idea how to embed it in non-skype programs [4/29/2011 12:33:00 AM] buckyballreaction: haha, exactly [4/29/2011 12:34:21 AM | Removed 12:36:02 AM] Max h: This message has been removed. [4/29/2011 12:34:42 AM] Max h: something i found on the idea [4/29/2011 12:35:00 AM] Max h: they might have stopped the project though [4/29/2011 12:35:43 AM] Max h: oh wait, that links bad [4/29/2011 12:37:21 AM] Max h: they moved their project to meinskype.de. however, their primary language is in german [4/29/2011 12:38:33 AM] Chris Eykamp: das ist ein grosses problem! [4/29/2011 12:38:54 AM] Chris Eykamp: ish denke Max kann ein biscien Detusch sprechen [4/29/2011 12:39:13 AM] Chris Eykamp: ist das richtig, Max? [4/29/2011 12:39:29 AM] buckyballreaction: we could use freenode and something like this: http://moritz.faui2k3.org/en/ilbot [4/29/2011 12:39:32 AM] Max h: ja [4/29/2011 12:39:50 AM] buckyballreaction: no eakspay ermanjay [4/29/2011 12:41:31 AM] Max h: [Friday, April 29, 2011 12:40 AM] buckyballreaction: <<< no eakspay ermanjayim going to go open up google and see if they have a translation for this language of yours you are speaking I have never heard of [4/29/2011 12:42:23 AM] Max h: so google aparently thinks your speaking italian. lol [4/29/2011 12:42:52 AM] Chris Eykamp: no, that's latin [4/29/2011 12:43:05 AM] buckyballreaction: a special dialect of latin [4/29/2011 12:43:26 AM] buckyballreaction: ooo, this is nice: http://www.jibble.org/logbot/ [4/29/2011 12:43:29 AM] buckyballreaction: but java [4/29/2011 12:43:49 AM] Max h: tri di mono centi [4/29/2011 12:45:51 AM] buckyballreaction: i'm testing a log bot [4/29/2011 12:46:54 AM] buckyballreaction: so what would you guys think is better: 1. freenode + logbot 2. our own IRC server + custom logging [4/29/2011 12:47:00 AM] Max h: found this www.iinuu.eu/en/it-guru/php-skype-bot-php-skype4com/ not sure if this is for a skype bot or for skype on websites but I'm reading what it has to say as we speak [4/29/2011 12:47:06 AM] buckyballreaction: advantages to #1: no server administration [4/29/2011 12:47:08 AM] Max h: i think option 2 raptor [4/29/2011 12:48:09 AM] Max h: but i guess its not that big a difference [4/29/2011 12:49:03 AM] buckyballreaction: ideally, we would want to use the bitfighter.org domain for our custom server [4/29/2011 12:49:32 AM] buckyballreaction: that means open ports and a way install software - which means we can't use the master server server [4/29/2011 12:49:43 AM] Max h: maybe an advantage to #2 would be only having irc connect to bitfighter.org and there only being 1 server to join [4/29/2011 12:50:16 AM] Chris Eykamp: maybe we should move bitfighter.org to another server [4/29/2011 12:50:25 AM] Chris Eykamp: I haven't said that for a week or so [4/29/2011 12:50:29 AM] buckyballreaction: haha [4/29/2011 12:50:30 AM] Chris Eykamp: thought it was overdue [4/29/2011 12:50:32 AM | Edited 12:51:38 AM] Max h: I can give chris all the money im saving so he can buy up the other half of his server : p [4/29/2011 12:51:25 AM] Max h: just means I cant get the apple developer package then if we decide to pick that up [4/29/2011 12:52:08 AM] buckyballreaction: i think we are a huge ways from an iOS port [4/29/2011 12:52:37 AM] buckyballreaction: which according to koda means SDL 1.3 [4/29/2011 12:52:46 AM] Max h: not iOS, just app store on mac [4/29/2011 12:53:00 AM] buckyballreaction: ah.. right... sorry, my brain was elsewhere [4/29/2011 12:53:03 AM] Max h: no worries [4/29/2011 12:55:00 AM] Max h: Yeah, porting bitfighter to the iOS would take a lot of reorganization, before the work even starts [4/29/2011 12:55:29 AM] Max h: found something realll interesting: cleverbot.com [4/29/2011 12:57:36 AM] buckyballreaction: this logbot is perfect [4/29/2011 12:58:04 AM] buckyballreaction: except it uses 20MB of RAM [4/29/2011 12:58:09 AM] buckyballreaction: because of java [4/29/2011 12:58:29 AM] Max h: well...unless your paying 5 dollars a month for a server, thats not too bad [4/29/2011 12:58:46 AM] Chris Eykamp: I am [4/29/2011 1:00:27 AM] Chris Eykamp: for the game server, anyway [4/29/2011 1:00:40 AM] Max h: Maybe we can all chip in a bit of money twoard a better server to host? Only anyone who wants; i'd be willing. If more power is even necessary. [4/29/2011 1:00:42 AM] buckyballreaction: here, take a look at the output: http://69.169.172.147/testing/irclogs/ [4/29/2011 1:01:45 AM] Chris Eykamp: we're good for the moment; I don't think adding the master and forums would add too much load, but you never really know. [4/29/2011 1:02:05 AM] buckyballreaction: yeah.. do you have a RAM limit? [4/29/2011 1:02:16 AM] Chris Eykamp: yes [4/29/2011 1:02:16 AM] Max h: ok well i need to get myself some shuteye [4/29/2011 1:02:18 AM] buckyballreaction: constant vs 'burst'? [4/29/2011 1:02:22 AM] Max h: ill see all of you tomorrow [4/29/2011 1:02:24 AM] Chris Eykamp: not sure [4/29/2011 1:02:24 AM] Chris Eykamp: bye [4/29/2011 1:02:25 AM] buckyballreaction: ok good night [4/29/2011 1:02:28 AM] Max h: i could just fall asleep here [4/29/2011 1:02:29 AM] Max h: :) [4/29/2011 1:07:01 AM] Chris Eykamp: I love these new in-editor menus! [4/29/2011 1:07:19 AM] Chris Eykamp: and I love that they reuse the menu code [4/29/2011 1:08:32 AM] Chris Eykamp: so here is a common design issue [4/29/2011 1:08:32 AM] buckyballreaction: sounds like the editor is going to come out nice and shiny [4/29/2011 1:08:44 AM] Chris Eykamp: well, it will be more or less the same on the outside [4/29/2011 1:09:03 AM] Chris Eykamp: I have a class with a static pointer to a menu structure I need to assign with new() [4/29/2011 1:09:35 AM] Chris Eykamp: i need to delete() that when I get rid of the last instance of the class [4/29/2011 1:09:45 AM] Chris Eykamp: but I don;t know when that is [4/29/2011 1:09:52 AM] Chris Eykamp: i guess I could implement a counter [4/29/2011 1:10:02 AM] Chris Eykamp: increment in the constructor, decrement in the destructor [4/29/2011 1:10:10 AM] Chris Eykamp: and when it hits 0, destroy the editor [4/29/2011 1:10:19 AM] Chris Eykamp: or rather the edit menu [4/29/2011 1:10:36 AM] buckyballreaction: that sounds messy [4/29/2011 1:10:52 AM] buckyballreaction: do you have to use new()? [4/29/2011 1:11:07 AM] buckyballreaction: argh nevermind [4/29/2011 1:11:18 AM] buckyballreaction: i misunderstood what you ment [4/29/2011 1:11:20 AM] buckyballreaction: meant [4/29/2011 1:11:37 AM] Chris Eykamp: auto_ptr? [4/29/2011 1:11:38 AM] Chris Eykamp: http://ootips.org/yonat/4dev/smart-pointers.html [4/29/2011 1:11:49 AM] buckyballreaction: smart pointers are the way to go [4/29/2011 1:12:07 AM] buckyballreaction: except i hear the ones in stl are not that great [4/29/2011 1:12:13 AM] buckyballreaction: boost has good ones [4/29/2011 1:12:38 AM] Chris Eykamp: yes [4/29/2011 1:13:27 AM] buckyballreaction: look at tnl/tnlAlloc.h [4/29/2011 1:13:54 AM] buckyballreaction: i tried to create a smartpointer there, but I don't remember if I got it to work [4/29/2011 1:17:17 AM] Chris Eykamp: "hat can you do if you need a collection of objects from different classes" [4/29/2011 1:17:42 AM] Chris Eykamp: this section of the above article explains exactly one issue I'm facing in the editor now [4/29/2011 1:18:06 AM] Chris Eykamp: and I'm about to read how to solve it more cleanly thabn my current implementation of manually managing the pointers [4/29/2011 1:18:17 AM] buckyballreaction: read read [4/29/2011 1:18:38 AM] Chris Eykamp: maybe we can get rid of deleteAndClear() on the vector [4/29/2011 1:19:40 AM] buckyballreaction: soudns fine to me [4/29/2011 1:27:35 AM] Chris Eykamp: I'm going to try the smart container instead... the pointainer! [4/29/2011 1:27:44 AM] buckyballreaction: haha [4/29/2011 1:27:44 AM] Chris Eykamp: http://ootips.org/yonat/4dev/ [4/29/2011 1:28:03 AM] Chris Eykamp: should be an easy retrofit [4/29/2011 1:28:23 AM] buckyballreaction: haha, that's really what it's called [4/29/2011 1:29:41 AM] Chris Eykamp: what's not to love? [4/29/2011 1:29:48 AM] buckyballreaction: nothing! [4/29/2011 1:31:55 AM] Chris Eykamp: done [4/29/2011 1:31:58 AM] Chris Eykamp: that was fast [4/29/2011 1:32:04 AM] buckyballreaction: and it works? [4/29/2011 1:32:14 AM] Chris Eykamp: don't knwo [4/29/2011 1:33:46 AM] Chris Eykamp: testing is hard... need to track obj destruction [4/29/2011 1:34:52 AM] Chris Eykamp: phooey doesn't even compile [4/29/2011 1:34:55 AM] Chris Eykamp: yet [4/29/2011 1:35:10 AM] Chris Eykamp: so not done [4/29/2011 1:40:14 AM] Chris Eykamp: ah double-phooey [4/29/2011 1:40:21 AM] Chris Eykamp: we have a sort method [4/29/2011 2:03:49 AM] Chris Eykamp: the code looks uglier... [4/29/2011 2:04:03 AM] Chris Eykamp: but if it prevents memory leaks [4/29/2011 2:04:39 AM] buckyballreaction: will it be easier in the long run? [4/29/2011 2:05:08 AM] Chris Eykamp: easier than finding a memory leak [4/29/2011 2:08:28 AM] Chris Eykamp: argh! pointtainer.size() returns U32!!! [4/29/2011 2:08:36 AM] Chris Eykamp: this cannot stand! [4/29/2011 2:08:54 AM] buckyballreaction: that is in keeping with most stl classes [4/29/2011 2:09:02 AM] buckyballreaction: we cast in tnlVector [4/29/2011 2:09:43 AM] Chris Eykamp: yes, but of course it breaks everything [4/29/2011 2:37:07 AM] buckyballreaction: i've been trying to recreate my work in building openal-soft for mac [4/29/2011 2:37:13 AM] buckyballreaction: i forgot what a headache it was [4/29/2011 3:22:02 AM] buckyballreaction: good night [4/29/2011 4:52:35 AM] Chris Eykamp: night [4/29/2011 11:09:16 AM] buckyballreaction: i put a permanent ban on anyone registering from with an e-mail @vubby.com [4/29/2011 11:09:38 AM] buckyballreaction: because about 1/4 - 1/3 of all bots have come from that domain [4/29/2011 11:09:43 AM] Chris Eykamp: wow [4/29/2011 11:09:56 AM] Chris Eykamp: the pointainer works, btw [4/29/2011 11:10:00 AM] buckyballreaction: oh good! [4/29/2011 11:10:32 AM] Chris Eykamp: i'M going to use it in the editor, and later move everything else that we can to use it as well; anywhwere we keep lists of pointers to objects created with new [4/29/2011 11:10:43 AM] Chris Eykamp: maybe at some point we can merge the pointainer with Vector [4/29/2011 11:10:44 AM] buckyballreaction: sounds like a good idea to me [4/29/2011 11:10:50 AM] buckyballreaction: except [4/29/2011 11:11:06 AM] buckyballreaction: with rendering things, won't we want code that is as fast as possible? [4/29/2011 11:11:17 AM] buckyballreaction: and does the pointainer add noticeable overhead? [4/29/2011 11:11:38 AM] Chris Eykamp: I doubt it [4/29/2011 11:11:57 AM] buckyballreaction: ok [4/29/2011 11:12:06 AM] Chris Eykamp: i think it just wraps pointers in a constructor/destructor that makes sure the items get deleted [4/29/2011 11:12:25 AM] buckyballreaction: i noticed there weren't any 'inline' modifiers in there - would that help at all? [4/29/2011 11:12:26 AM] Chris Eykamp: it otherwise passes things through to an inner vector [4/29/2011 11:12:29 AM] Chris Eykamp: sound familliar? [4/29/2011 11:12:32 AM] buckyballreaction: :) [4/29/2011 11:12:35 AM] buckyballreaction: yep [4/29/2011 11:12:45 AM] Chris Eykamp: I don't really understand how inline interacts with a modern compiler [4/29/2011 11:12:53 AM] Chris Eykamp: the compiler might inline stuff anyway [4/29/2011 11:13:08 AM] Chris Eykamp: inline isn't a magic performance boost [4/29/2011 11:13:48 AM] buckyballreaction: i guess that's true - traditionally, it would put the method code directly in the code which then compiler optimizations could handle it better as well as reduce method calls [4/29/2011 11:14:00 AM] buckyballreaction: but i think modern compilers do most of that already [4/29/2011 11:14:16 AM] buckyballreaction: i think gcc naturally inlines some methods anyways if they are small enough [4/29/2011 11:14:31 AM] Chris Eykamp: exactly [4/29/2011 11:14:54 AM] Chris Eykamp: jumping is pretty fast, so it may only matter in huge loops [4/29/2011 11:18:36 AM] buckyballreaction: i need someone with a Macintosh [4/29/2011 11:18:52 AM] buckyballreaction: to test to make sure bitfighter still compiles with sound... [4/29/2011 11:26:28 AM] Vittorio: Vittorio hides [4/29/2011 11:26:54 AM] buckyballreaction: perfect! [4/29/2011 11:27:26 AM] Vittorio: i'm not at my mac now, but i'll ping you as soon as i'm there [4/29/2011 11:27:53 AM] buckyballreaction: i only would need you to test to make sure sound is working in the game... i'll have a DMG ready [4/29/2011 11:28:01 AM] buckyballreaction: thanks! [4/29/2011 11:28:08 AM] Vittorio: 'k [4/29/2011 11:28:59 AM] buckyballreaction: also, if your interested, I found this: http://kcat.strangesoft.net/alure.html [4/29/2011 11:29:07 AM] buckyballreaction: it's like ALUT reloaded [4/29/2011 11:29:25 AM] buckyballreaction: with streaming functions and everything for interfacing with vorbis/mp3/etc and openal [4/29/2011 11:29:42 AM] buckyballreaction: haven't tested it yet, though [4/29/2011 11:30:08 AM] Vittorio: oh that's the one i knw [4/29/2011 11:30:14 AM] Vittorio: knew, not openalsoft [4/29/2011 11:30:23 AM] Vittorio: i mixed the twos [4/29/2011 11:31:21 AM] buckyballreaction: the provided windows DLL is 4 MB which is ridiculous considering the source files are 160KB [4/29/2011 11:31:37 AM] Vittorio: i have to go [4/29/2011 11:31:41 AM] Chris Eykamp: will we need this with sdl? [4/29/2011 11:31:44 AM] Vittorio: cya [4/29/2011 11:31:46 AM] buckyballreaction: later [4/29/2011 11:32:06 AM] buckyballreaction: koda and the devs from hedgewars seem to think that SDL_mixer is not the way to go [4/29/2011 11:32:22 AM] buckyballreaction: it has more quirks and fewer features [4/29/2011 11:32:26 AM] buckyballreaction: less portable [4/29/2011 11:32:26 AM] Chris Eykamp: I see [4/29/2011 11:32:33 AM] Chris Eykamp: I'll follow any good advice [4/29/2011 11:32:38 AM] buckyballreaction: me too :) [4/29/2011 11:32:54 AM] buckyballreaction: but they said that SDL for io and window management is superior [4/29/2011 12:37:34 PM] karamazovapy: [Friday, April 29, 2011 1:02 AM] buckyballreaction: <<< yeah.. do you have a RAM limit?my VPS - Memory: 384 MB Burst: 512 MB Disk Space: 10 GB Bandwidth: 1000 GB [4/29/2011 12:37:55 PM] karamazovapy: $59.40USD Annually [4/29/2011 12:38:57 PM] karamazovapy: I've been with them for a year and just renewed [4/29/2011 10:47:28 PM] buckyballreaction: hi zoomber [4/29/2011 10:47:53 PM] buckyballreaction: if you are willing, i will have a test mac build i need someone to run and check to make sure the sound works OK [4/29/2011 11:46:19 PM] buckyballreaction: i gotta turn in early [4/29/2011 11:46:22 PM] buckyballreaction: good night [4/29/2011 11:47:38 PM] Chris Eykamp: night! [4/29/2011 11:47:49 PM] Chris Eykamp: back to work on the editor [4/29/2011 11:48:06 PM] buckyballreaction: how far away do you think you are? [4/29/2011 11:48:21 PM] Chris Eykamp: no idea [4/29/2011 11:48:25 PM] Chris Eykamp: but making progress [4/29/2011 11:48:31 PM] Chris Eykamp: things are working [4/29/2011 11:48:42 PM] Chris Eykamp: I can check in any time :) [4/29/2011 11:50:34 PM] buckyballreaction: i'm still doing mac audio cleanup... trying to recreate that first framework i built [4/29/2011 11:52:07 PM] Chris Eykamp: did you lose it? [4/30/2011 9:34:49 AM] Vittorio: hello [4/30/2011 9:38:39 AM] Samuel Williams: hi [4/30/2011 9:48:43 AM] buckyballreaction: good morning [4/30/2011 9:49:02 AM] buckyballreaction: sam! [4/30/2011 9:49:06 AM] buckyballreaction: you're back [4/30/2011 9:52:06 AM] buckyballreaction: say sam, we have been thinking about moving to IRC [4/30/2011 9:52:36 AM] buckyballreaction: would you prefer: 1. we run our own IRC server tied to bitfighter.org 2. we use freenode but set up some sort of logging bot [4/30/2011 9:53:00 AM] Vittorio: Vittorio would prefer 3 [4/30/2011 9:53:02 AM] Vittorio: err [4/30/2011 9:53:03 AM] Vittorio: 2 [4/30/2011 9:53:06 AM] Vittorio: sry :D [4/30/2011 9:53:10 AM] buckyballreaction: hi koda [4/30/2011 9:53:11 AM] Samuel Williams: maybe, problem with #2 is bot can fail.. [4/30/2011 9:53:24 AM] buckyballreaction: yeah... been experimenting with with log bots [4/30/2011 9:53:31 AM] buckyballreaction: a couple i've used like to time out.. [4/30/2011 9:53:42 AM] buckyballreaction: but i found another good one [4/30/2011 9:54:04 AM] buckyballreaction: it's just that freenode is *the* place for open source IRC channels [4/30/2011 9:58:10 AM] Vittorio: Vittorio nods [4/30/2011 9:58:45 AM] Vittorio: just fyi people in irc in hedgewars [4/30/2011 9:58:54 AM] Vittorio: rarely care about what happens in game chats [4/30/2011 9:59:09 AM] Vittorio: so even if bot fails i don't see it really being a problem [4/30/2011 10:05:17 AM] Vittorio: as an experiment we tied lobby chat and irc [4/30/2011 10:05:28 AM] buckyballreaction: buckyballreaction tests a perl logbot on #bitfighter at freenode [4/30/2011 10:05:42 AM] Vittorio: it created so much discontent that we had to turn it off [4/30/2011 10:05:46 AM] buckyballreaction: haha [4/30/2011 10:06:07 AM] buckyballreaction: so you say it is wise to keep the in-game lobby separate? [4/30/2011 10:06:52 AM] Vittorio: i don't know whether that's wise, i just know that people were annoyed that the chat was highlighted when someone in lobby spoke :P [4/30/2011 10:07:15 AM] buckyballreaction: ah, so people were annoyed in the IRC channel, not the lobby? [4/30/2011 10:07:38 AM] Vittorio: irc people being annoyed by lobby chat [4/30/2011 10:07:56 AM] buckyballreaction: that makes sense [4/30/2011 10:08:08 AM] buckyballreaction: that's why we thought about two channels [4/30/2011 10:08:23 AM] Vittorio: yeah [4/30/2011 10:12:43 AM] buckyballreaction: ok, here is the logging: http://69.169.172.147/testing/irclogger/ [4/30/2011 10:12:50 AM] buckyballreaction: (temp location) [4/30/2011 10:12:58 AM] buckyballreaction: tell me what you think sam [4/30/2011 10:14:55 AM] Samuel Williams: appears to work.. [4/30/2011 10:15:06 AM] buckyballreaction: i'll leave it running for a while... [4/30/2011 10:15:12 AM] buckyballreaction: see if it times out [4/30/2011 10:15:44 AM] buckyballreaction: and this PERL bot only uses half the RAM a JAVA one I tested used.. [4/30/2011 10:15:49 AM] buckyballreaction: 10MB [4/30/2011 10:16:30 AM] Vittorio: make him reconnect when it timeout? [4/30/2011 10:17:15 AM] buckyballreaction: i think the authors of the code did that already... [4/30/2011 10:17:30 AM] Vittorio: wonderful [4/30/2011 10:18:04 AM] buckyballreaction: the logging part was kind of the reason we stayed with skype [4/30/2011 10:18:43 AM] Vittorio: omg chats are logged? i'll sue you all!!! [4/30/2011 10:18:46 AM] Vittorio: :D [4/30/2011 10:20:13 AM] buckyballreaction: rats, it timed out [4/30/2011 10:26:19 AM] buckyballreaction: sam, in your IRC server tests, did the server you use allow logging to a database? [4/30/2011 10:29:28 AM] Samuel Williams: no, hard to find a IRC server that can compile in visual studio.. many don't have windows visual project files [4/30/2011 10:29:37 AM] buckyballreaction: :( [4/30/2011 10:37:53 AM] buckyballreaction: ok, i have to program this thing to respond to PING and PONG [4/30/2011 11:38:45 AM] Chris Eykamp: hi [4/30/2011 11:41:22 AM] buckyballreaction: good morning [4/30/2011 11:42:01 AM] buckyballreaction: trying to refresh my PERL a bit... [4/30/2011 11:42:28 AM] Chris Eykamp: :) [4/30/2011 11:44:32 AM] buckyballreaction: trying to get a perl IRC bot to not timeout [4/30/2011 11:45:52 AM] Chris Eykamp: i read that [4/30/2011 11:46:03 AM] Chris Eykamp: I figured this would be a mature tech by now [4/30/2011 11:46:11 AM] buckyballreaction: yeah that's the thing... [4/30/2011 11:46:25 AM] buckyballreaction: all the bots i've tried use libraries that respond to server pings immediately [4/30/2011 11:46:40 AM] buckyballreaction: but they're all still timing out on freenode #bitfighter [4/30/2011 11:47:04 AM] Chris Eykamp: odd [4/30/2011 11:47:29 AM] buckyballreaction: it's driving me crazy [4/30/2011 11:48:50 AM] buckyballreaction: ha! i think i fixed it [4/30/2011 11:49:12 AM] buckyballreaction: all i had to do was copy and paste the exact same code in the library into my script [4/30/2011 11:50:49 AM] buckyballreaction: NOooo [4/30/2011 11:50:52 AM] buckyballreaction: argh [4/30/2011 11:53:55 AM] Chris Eykamp: I somehow broke the login screen while changing something in the editor [4/30/2011 11:54:03 AM] buckyballreaction: haha [4/30/2011 11:54:04 AM] Chris Eykamp: the perils of having everything reused [4/30/2011 11:54:09 AM] buckyballreaction: they popout text? [4/30/2011 11:54:23 AM] Chris Eykamp: my bafflement is compounded by a poor choice of variable names [4/30/2011 11:54:44 AM] Chris Eykamp: reusing the menus to edit attributes like gofast speed in the editor [4/30/2011 11:55:02 AM] Chris Eykamp: the element for entering textitem text is now the same as that for entering your player name [4/30/2011 11:55:11 AM] Chris Eykamp: though it is drawn differently, so it fits in the editor [4/30/2011 12:07:09 PM] buckyballreaction: i officially hate installing perl modules once again [4/30/2011 12:34:02 PM] buckyballreaction: i can't figure out why my IRC client doesn't get disconnected but every bot i've tried does [4/30/2011 12:34:10 PM] buckyballreaction: time to get the source of the client, i guess.. [4/30/2011 3:23:23 PM] buckyballreaction: after some packet analysis, I find that my IRC client sends a PING to the server once a minute - I will try and program the bot to do the same [4/30/2011 3:50:33 PM] Samuel Williams: for IRC bot, probably should make sure it is "PING\n" (don't forget new-line) [4/30/2011 3:50:49 PM] buckyballreaction: yes [4/30/2011 3:51:59 PM] Samuel Williams: i did find a simple IRC server i can run, http://sf.net/projects/php-ircd , three source files. [4/30/2011 4:52:17 PM] buckyballreaction: fixed the log bot! [4/30/2011 4:52:21 PM] buckyballreaction: at least in java... [4/30/2011 4:53:26 PM] Samuel Williams: one possible problem is the robot's connection to IRC could go down. [4/30/2011 4:53:56 PM] buckyballreaction: yes, it has aut reconnect, too [4/30/2011 4:54:58 PM] Samuel Williams: it will be nice to have IRC auto send all un-read message to you of what you missed and haven't read due to being offline at that time. [4/30/2011 4:55:26 PM] buckyballreaction: yes [4/30/2011 4:55:44 PM] buckyballreaction: right now it just posts the logs into a directory [4/30/2011 4:56:07 PM] buckyballreaction: not sure how to do that last one... [4/30/2011 4:56:15 PM] buckyballreaction: that would require client side alterations [4/30/2011 4:56:33 PM] Samuel Williams: i made my IRC server log here http://96.2.123.136/irclog/ .. if my IRC ever get used in 96.2.123.136 : 6667 [4/30/2011 4:57:21 PM] buckyballreaction: that's the other issue: where to put the logs [4/30/2011 4:58:09 PM] buckyballreaction: we'd want bitfighter.org to point to probably keep them in a database and point to them via php script [4/30/2011 4:58:53 PM] Samuel Williams: one real question is should we keep using skype or move to IRC ? [4/30/2011 4:59:06 PM] buckyballreaction: i definitely think IRC [4/30/2011 4:59:26 PM] Samuel Williams: Which IRC to use ? [4/30/2011 4:59:48 PM] buckyballreaction: well, if we went with freenode, we wouldn't have to administrate the server [4/30/2011 4:59:54 PM] buckyballreaction: but we'd have to use the log bot [4/30/2011 5:00:19 PM] buckyballreaction: also freenode can handle lots of connections [4/30/2011 5:00:36 PM] buckyballreaction: if we added it to bitfighter.org, more connections would be required from that domain [4/30/2011 5:01:26 PM] Samuel Williams: and what if bitfighter.org goes down? so will IRC if hosted there.. [4/30/2011 5:01:31 PM] buckyballreaction: yep [4/30/2011 5:01:50 PM] buckyballreaction: that's why i think freenode is a good choice - it has lots of redundancy [4/30/2011 5:12:23 PM] buckyballreaction: so i can change the logbot to write to mysql [4/30/2011 5:12:44 PM] buckyballreaction: instead of .log files [4/30/2011 5:41:57 PM] buckyballreaction: sam, did you open a private message to the log bot? [4/30/2011 5:42:32 PM] buckyballreaction: ah yes, you did [4/30/2011 5:42:55 PM] buckyballreaction: neat, i didn't know it logged private messages like that [4/30/2011 7:08:01 PM] Vittorio: Vittorio waves [4/30/2011 7:25:33 PM] karamazovapy: ja ja hamas [4/30/2011 7:58:05 PM] buckyballreaction: logbot is up! [4/30/2011 7:58:39 PM] Vittorio: working ((dance)) [4/30/2011 8:01:22 PM] buckyballreaction: now we just need for watusimoto(chris) to come back... [4/30/2011 8:01:43 PM] Vittorio: raptor don't forget to register the channel on freenode [4/30/2011 8:01:54 PM] Vittorio: so that you can control it with chanserv [4/30/2011 8:03:30 PM] buckyballreaction: did zoomber already do that? [4/30/2011 9:01:08 PM] buckyballreaction: i think zoomber registered the channel in his name... [4/30/2011 9:01:49 PM] Vittorio: zoomber = max h? [4/30/2011 9:01:53 PM] buckyballreaction: yes [4/30/2011 9:02:23 PM] buckyballreaction: i'll need to register a nick, too... [4/30/2011 9:10:39 PM] buckyballreaction: i'll be back later - gotta watch 'Doctor Who' [4/30/2011 10:29:09 PM] Max h: the chanel bitfighter? [4/30/2011 10:29:25 PM] Max h: y [4/30/2011 10:32:08 PM] Max h: i believe i did, unless you just did? [4/30/2011 10:52:27 PM] Max h: hey vittorio, do you know if raptor is around? [4/30/2011 10:52:37 PM] Max h: seems like now that irc is up, he isnt in sight :) [4/30/2011 11:02:44 PM] Max h: hey chris, have you seen raptor lately? [4/30/2011 11:03:03 PM] Max h: in related news, we got the irc room set up [4/30/2011 11:03:21 PM] Max h: i realized, weather i made it or not, i turns out I didn't register it [4/30/2011 11:03:39 PM] Max h: the problem however, is that you need to be an operator to register the room [4/30/2011 11:03:48 PM] Max h: and i dont think any of us are, unless raptor is [4/30/2011 11:03:59 PM] Chris Eykamp: maybe it was unknownJoe? [4/30/2011 11:04:30 PM] Max h: i faintly remember hosting a room called bitfighter a while ago [4/30/2011 11:04:50 PM] Max h: but if i log in with the nickname i used then, i still dont have op privliges [4/30/2011 11:05:00 PM] Max h: not sure about unknownjoe [4/30/2011 11:08:16 PM] Max h: the only reason im concerned here, is if there are no operators, we can't do anything to the chatroom at all, including register it [4/30/2011 11:09:42 PM] Samuel Williams: why does zoomber want to be operator? when watusimoto and raptor is admin in bitfighter forums and in bitfighter google code. [4/30/2011 11:10:04 PM] Max h: ? [4/30/2011 11:10:57 PM] Samuel Williams: maybe when the channel goes empty.. [4/30/2011 11:12:44 PM] Max h: sam, i am zoomber [4/30/2011 11:13:08 PM] Samuel Williams: yes i know zoomber = max h. [4/30/2011 11:17:25 PM] Samuel Williams: Anyone, and the person who joins any empty freenode unregistered channel may be operator, and no one else can be operator, until channel go empty, that how it looks like. [4/30/2011 11:18:44 PM] Max h: correct [4/30/2011 11:19:05 PM] Max h: so raptor must be operator then [4/30/2011 11:31:36 PM] Max h: [1:14] * sam686 slaps BitfighterLogBot's bottom and grins cheekily [4/30/2011 11:31:37 PM] Max h: ? [4/30/2011 11:32:07 PM] Max h: what is that? [4/30/2011 11:32:28 PM] Samuel Williams: its the HydraIRC client, there is a "Slap" option when right clicking a list of names. [4/30/2011 11:32:37 PM] Max h: ahh, i see [4/30/2011 11:32:56 PM] Samuel Williams: not sure what that did, but i guess it just an automatic chat.. [4/30/2011 11:33:01 PM] Max h: yeah [4/30/2011 11:34:46 PM | Edited 11:35:07 PM] Max h: ok, made a short name for the bitfighter log bot page (bit chat log . tk) to make it easier to access. [4/30/2011 11:36:34 PM] Samuel Williams: Having a non-DNS names like 65.49.81.67 speeds up first time loading in your web browsers, as there is no DNS to IP conversion stuff. [4/30/2011 11:37:51 PM] Max h: oh, i didnt realize that that name could be dynamic.. [4/30/2011 11:37:57 PM] Max h: and true [4/30/2011 11:38:15 PM] Max h: however, having a dns name is easier to find / remember [4/30/2011 11:39:10 PM] Max h: oh well. it doesn't matter; .tk names expire after 40 days of inactivity [4/30/2011 11:39:27 PM] Max h: raptor! [4/30/2011 11:39:40 PM] buckyballreaction: hello [4/30/2011 11:39:44 PM] Max h: i thought you would have been done with skype for good :P [4/30/2011 11:40:14 PM] Max h: now that we have an irc room [4/30/2011 11:40:21 PM] Samuel Williams: One more thing skype have that IRC don't have, editing your own chat (maybe to correct spelling). [4/30/2011 11:40:47 PM] buckyballreaction: ah yes, no repentence in IRC :) [4/30/2011 11:40:53 PM] Max h: sam has a very good point. i like being able to correct my spelling [4/30/2011 11:51:12 PM] buckyballreaction: hi watusimoto [5/1/2011 12:11:11 AM] Samuel Williams: ok, you can return to IRC if you want.. [5/1/2011 12:11:34 AM] buckyballreaction: ok zoomber, come back [5/1/2011 12:17:01 AM] Max h: back [5/1/2011 12:17:08 AM] Max h: sorry it took so long [5/1/2011 12:21:41 AM] Chris Eykamp: hi [5/1/2011 12:21:46 AM] buckyballreaction: hi [5/1/2011 12:21:49 AM] Max h: hi chris. [5/1/2011 12:21:57 AM] buckyballreaction: we have set up and registered an IRC channel on freenode [5/1/2011 12:22:02 AM] buckyballreaction: and logbot is running [5/1/2011 12:22:12 AM] buckyballreaction: I put the log bot on the game server [5/1/2011 12:22:18 AM] Max h: yes, come on to irc.freenode.net and join #bitfighter [5/1/2011 12:22:52 AM] Max h: raptor, i gave your logbot ip adress a dns cover go to bitchatlog.tk [5/1/2011 12:23:07 AM] Max h: easy to remember because it spells "bit chat log" [5/1/2011 12:23:27 AM] Max h: but if your ip is dynamic..that was a foolish idea of mine [5/1/2011 12:23:36 AM] Samuel Williams: DNS might help when IP address unexpectedly changes. [5/1/2011 12:23:44 AM] Chris Eykamp: I have a naming question [5/1/2011 12:23:45 AM] buckyballreaction: how did you do that? [5/1/2011 12:23:51 AM] buckyballreaction: name it :) [5/1/2011 12:23:57 AM] Max h: sorry, i didnt do that [5/1/2011 12:24:04 AM] Chris Eykamp: I'm creating classes based on geometry types for things in the editor [5/1/2011 12:24:07 AM] Max h: i just basically, "shorturl'd" it [5/1/2011 12:24:15 AM] Chris Eykamp: we already have polygon and polyline, and I recently added simpleline [5/1/2011 12:24:18 AM] Max h: i didnt do anything else [5/1/2011 12:24:25 AM] buckyballreaction: the IP is the game server IP... not really hidden anyways [5/1/2011 12:24:40 AM] Chris Eykamp: now I'm moving to the point items (flags, for example). But I can't create a class called point [5/1/2011 12:24:50 AM] Chris Eykamp: what should I call the common inheritor of all point like things? [5/1/2011 12:24:58 AM] buckyballreaction: Point [5/1/2011 12:25:06 AM] buckyballreaction: ah [5/1/2011 12:25:10 AM] Chris Eykamp: great idea [5/1/2011 12:25:41 AM] buckyballreaction: i wasn't answering your question just yet... :) [5/1/2011 12:25:43 AM] Samuel Williams: Shapes? when going between point and polyline [5/1/2011 12:25:50 AM] buckyballreaction: Iota? [5/1/2011 12:26:26 AM] Chris Eykamp: the problem is that there are standard terms for these things, which I've been adhering to, but point is the standard. only it's been taken. [5/1/2011 12:26:41 AM] buckyballreaction: hmm... [5/1/2011 12:26:49 AM] Chris Eykamp: simplePoint? [5/1/2011 12:26:51 AM] Chris Eykamp: pointGeom? [5/1/2011 12:26:54 AM] Chris Eykamp: geomPoint? [5/1/2011 12:27:06 AM] Chris Eykamp: xpoint? [5/1/2011 12:27:13 AM] buckyballreaction: not xpoint [5/1/2011 12:27:20 AM] Chris Eykamp: x-point? [5/1/2011 12:27:27 AM] Chris Eykamp: x_point? [5/1/2011 12:27:31 AM] Chris Eykamp: xxpoint? [5/1/2011 12:27:33 AM] Chris Eykamp: :) [5/1/2011 12:27:37 AM] buckyballreaction: haha [5/1/2011 12:27:39 AM] Samuel Williams: crossPoint? [5/1/2011 12:28:15 AM] Chris Eykamp: I'm considering renaming everything to things like pointgeom, simplelinegeom, polygongeom [5/1/2011 12:28:22 AM] Chris Eykamp: for consistency sake [5/1/2011 12:28:28 AM] buckyballreaction: that seems ok [5/1/2011 12:28:43 AM] Chris Eykamp: that woudl at least clarify that these are geometrical classes [5/1/2011 12:28:47 AM] buckyballreaction: make them all be in a namespace of sorts [5/1/2011 12:28:52 AM] Chris Eykamp: though that's already clear [5/1/2011 12:28:58 AM] Chris Eykamp: maybe I'll put them in the zap namespace [5/1/2011 12:29:20 AM] Chris Eykamp: alright, i'll start with pointgeom for now [5/1/2011 12:29:28 AM] buckyballreaction: ok [5/1/2011 12:29:31 AM] Chris Eykamp: and worry about renaming later [5/1/2011 12:29:35 AM] buckyballreaction: want to join us on IRC? [5/1/2011 12:29:41 AM] Chris Eykamp: are you on irc? [5/1/2011 12:29:43 AM] buckyballreaction: yep [5/1/2011 12:29:46 AM] buckyballreaction: with a logbot [5/1/2011 12:29:49 AM] Chris Eykamp: sure [5/1/2011 12:29:50 AM] buckyballreaction: an everything [5/1/2011 12:30:34 AM] Chris Eykamp: the old bitfighter channel? [5/1/2011 12:30:38 AM] buckyballreaction: on freenode [5/1/2011 12:30:39 AM] buckyballreaction: nope [5/1/2011 12:30:40 AM] buckyballreaction: not old [5/1/2011 12:30:41 AM] buckyballreaction: new [5/1/2011 12:30:46 AM] buckyballreaction: #bitfighter [5/1/2011 12:30:47 AM] Max h: new channel [5/1/2011 12:30:52 AM] Max h: irc.freenode.net [5/1/2011 12:30:54 AM] buckyballreaction: irc.freenode.org [5/1/2011 12:30:58 AM] buckyballreaction: irc.freenode.net [5/1/2011 12:31:04 AM] Samuel Williams: irc.freenode.net [5/1/2011 12:31:06 AM] buckyballreaction: second one^^ [5/1/2011 12:31:25 AM] Samuel Williams: can you delete one of your message here? [5/1/2011 12:31:30 AM] Max h: yes [5/1/2011 12:31:34 AM | Removed 12:31:39 AM] Max h: This message has been removed. [5/1/2011 12:31:45 AM] buckyballreaction: haha [5/1/2011 12:32:18 AM] Samuel Williams: i guess bbr don't want to use a delete feature... [5/1/2011 12:32:49 AM] buckyballreaction: i live with my sins [5/1/2011 12:33:07 AM] Samuel Williams: hint: right click your message and you have options to edit / remove. [5/1/2011 12:33:11 AM] Max h: :O [5/1/2011 12:33:25 AM] Max h: and skype has these faces.... [5/1/2011 12:33:37 AM] Chris Eykamp: what channel? [5/1/2011 12:33:37 AM] buckyballreaction: most IRC clients to those faces [5/1/2011 12:33:43 AM] buckyballreaction: #bitfighter [5/1/2011 12:33:48 AM] Max h: chris, just do /j #bitfighter [5/1/2011 12:33:55 AM] Max h: or #bitfighter [5/1/2011 12:34:11 AM] Max h: or ctrl+j [5/1/2011 12:34:55 AM] Chris Eykamp: I'm on, but don;t see anyone [5/1/2011 12:35:13 AM] Chris Eykamp: except the bitfighterlogbot [5/1/2011 12:35:38 AM] Max h: try leaving and rejoining [5/1/2011 12:35:42 AM] Samuel Williams: what do you see? [5/1/2011 12:35:56 AM] Chris Eykamp: a notice that the channel is logged [5/1/2011 12:36:01 AM] Chris Eykamp: I'm using pidgin as my client [5/1/2011 12:36:02 AM] Max h: yes, thats normal [5/1/2011 12:36:16 AM] Chris Eykamp: someone type something there [5/1/2011 12:36:22 AM] Chris Eykamp: did you see my hellos? [5/1/2011 12:36:31 AM] buckyballreaction: nope [5/1/2011 12:36:37 AM] Max h: ok, blue logo is when you have voice. red logo is when u are op [5/1/2011 12:36:41 AM] buckyballreaction: we are all chatting away without you though... [5/1/2011 2:36:22 AM] buckyballreaction: so long skype! [5/1/2011 8:02:52 PM] Max h: so this is it then? [5/1/2011 8:03:27 PM] Max h: this is a painfull minute [5/1/2011 8:04:04 PM] Max h: well, once imean if irc fails, you know were we fall back on :) [5/1/2011 8:04:30 PM] Max h: by the way [5/1/2011 8:04:44 PM] Max h: should we make seperate rooms for bitfighter development and bitfighter chat? [5/1/2011 8:07:57 PM] Vittorio: :P [5/1/2011 8:08:02 PM] Vittorio: i don't think it's necessary [5/1/2011 8:08:08 PM] Vittorio: at least not right away [5/1/2011 8:08:19 PM] Max h: i made a chatroom here in skype called bitfighter chat [5/1/2011 8:08:38 PM] Max h: because it was getting a bit crowded when two people would be very concentrated on trying to fix a bug [5/1/2011 8:08:44 PM] Max h: while someone else is...talking about the weather? [5/1/2011 8:09:11 PM] Vittorio: yeah but it's a pleasant background noise... [5/1/2011 8:09:12 PM] Vittorio: :D [5/1/2011 8:09:34 PM] Max h: then just join both chatrooms! [5/1/2011 8:10:08 PM] Max h: plus, if we ever link an irc room to the bitfighter lobby, do we really want to spoil all the next release's features to everyone? [5/1/2011 8:10:42 PM] Vittorio: they could see the commit log if they wanted to read the upcoming features [7:34:44 PM] Max h: so empty :( [7:35:06 PM] Max h: hi watusimoto [7:38:52 PM] karamazovapy: IT IS FURBUGGY’S TURN AGAIN