Timestamps are in GMT/BST.
| 00:00:06 | | YoshiSmb Quit (Ping timeout: 245 seconds) |
| 00:23:29 | | YoshiSmb_ is now known as YoshiSmb |
| 00:30:37 | | YoshiSmb_ has joined |
| 00:33:57 | | YoshiSmb Quit (Ping timeout: 246 seconds) |
| 00:42:18 | | sam686 has joined |
| 00:42:18 | | ChanServ sets mode +v sam686 |
| 00:44:01 | | raptor Quit () |
| 01:00:08 | | YoshiSmb has joined |
| 01:00:13 | YoshiSmb | hi sam |
| 01:03:31 | | YoshiSmb_ Quit (Ping timeout: 255 seconds) |
| 01:12:19 | | raptor has joined |
| 01:12:20 | | ChanServ sets mode +o raptor |
| 01:31:55 | sam686 | ohh boy, a crash on almost everyone's client on my sam test right now.. |
| 01:32:34 | sam686 | but seem to only happen on "Fast Nexus" level.. |
| 01:38:42 | raptor | Fast Nexus is our bane |
| 01:55:26 | | kaen Quit (Read error: Operation timed out) |
| 01:59:42 | | YoshiSmb_ has joined |
| 02:01:27 | | YoshiSmb Quit (Ping timeout: 246 seconds) |
| 02:27:51 | | YoshiSmb_ is now known as YoshiSmb |
| 02:28:11 | YoshiSmb | not on me. |
| 02:28:22 | YoshiSmb | i was out. doing something else |
| 02:29:13 | YoshiSmb | (waiting bobdaduck enter my dedicated server) |
| 03:39:58 | | koda has joined |
| 03:40:16 | | koda Quit (Client Quit) |
| 03:47:48 | | amgine1234567890 has joined |
| 03:50:17 | amgine1234567890 | raptor go back to yesterday or was it hte day before i posted a link here for omsthing i made for the site |
| 03:50:31 | raptor | hi amgine1234567890, i saw the cursor |
| 03:50:59 | amgine1234567890 | was the cursor ok raptor? |
| 03:52:21 | raptor | it seemed fine to me, but if you're thinking it could be added to the game itself, i'm not sure we can support it verywell on all platforms |
| 03:52:44 | raptor | watusimoto has done cursor stuff, i'd ask him |
| 03:53:01 | amgine1234567890 | maybe ill ask him if we can implement it? |
| 03:54:27 | raptor | sure, you can ask him, but i don't want to get your hopes up |
| 03:54:41 | raptor | we like to keep the game user interface pretty simple |
| 03:55:02 | amgine1234567890 | well still maybe ill post it to the forums if we cant its still cool im my opinon |
| 03:55:24 | amgine1234567890 | i used the picture on hte website as a bases for the cursor |
| 03:55:38 | raptor | i think it's cool, but i'm not sure how it'd fit for the game itself - maybe it could be a desktop cursor for people to use regularly (for fun) |
| 03:56:52 | amgine1234567890 | yeah thats what i made it for i use it as my cursor on windows |
| 03:57:20 | amgine1234567890 | but i was kinda hoping maybe we can implement it somhow maybe for the menus. |
| 04:01:11 | | YoshiSmb_ has joined |
| 04:02:56 | | YoshiSmb Quit (Ping timeout: 264 seconds) |
| 04:14:34 | | YoshiSmb_ Quit () |
| 04:47:44 | raptor | sam686: are you around? |
| 04:52:35 | amgine1234567890 | hes afk |
| 04:52:57 | amgine1234567890 | btw whne your ready for the next version to start testing let me know |
| 05:33:33 | | amgine1234567890 Quit (Quit: Page closed) |
| 05:47:39 | | raptor Quit () |
| 08:04:08 | | sam686 Quit (Ping timeout: 245 seconds) |
| 10:52:06 | | Watusimoto has joined |
| 11:20:38 | | LordDVG has joined |
| 12:24:06 | | Darrel has joined |
| 14:44:24 | | BFLogBot Commit: 3be6ae8d1a4b | Author: watusimoto | Message: Comment |
| 14:44:26 | | BFLogBot Commit: 2d266ea64eb7 | Author: watusimoto | Message: Add some functions that will make code more readable |
| 14:44:27 | | BFLogBot Commit: 3388b6f1304c | Author: watusimoto | Message: Try applying new function to see if code really is more readable. It is! |
| 14:44:29 | | BFLogBot Commit: f75577986d67 | Author: watusimoto | Message: Move methods up to TNL library so all children will get benefit |
| 14:49:27 | | LordDVG Quit (Remote host closed the connection) |
| 14:52:22 | | raptor has joined |
| 14:52:22 | | ChanServ sets mode +o raptor |
| 14:54:35 | raptor | good morning! |
| 14:57:41 | Watusimoto | hi |
| 14:57:50 | raptor | hello |
| 14:58:28 | raptor | so your latest commit |
| 14:58:37 | raptor | with isClient/isServer |
| 14:58:51 | raptor | does using isGhost() match 1 to 1 with ClientGame? |
| 14:59:26 | Watusimoto | I hope so! |
| 14:59:38 | Watusimoto | I can't think of how it wouldn't |
| 14:59:45 | Watusimoto | and it's used that way throughout |
| 14:59:59 | Watusimoto | I just find isGhost always makes me stop and think about what the heck is that |
| 14:59:59 | raptor | because I've had this idea in the back of my head that isGhost() is something not quite what we think it is |
| 15:00:11 | raptor | ha |
| 15:00:29 | Watusimoto | isGhost means that the item in question is not the "real" item, but a client representation of such |
| 15:00:32 | raptor | but i haven't studied TNL enough to grasp a good understanding of everythime... |
| 15:00:41 | raptor | everything |
| 15:00:44 | Watusimoto | the real items live on the server, the ghosts live on the client, so I think it's accurate |
| 15:01:28 | Watusimoto | and like I said, it's how it's used, so if it were for some reason innaccurate, well, we'd be screwed long ago |
| 15:01:54 | raptor | does it deprecate the need for Game to have isServer() then? |
| 15:06:00 | Watusimoto | Game is not a netObject, is it? |
| 15:06:27 | raptor | hmmm no |
| 15:06:31 | Watusimoto | Gametype is, but I think game is not |
| 15:06:38 | raptor | so it would still be needed |
| 15:06:39 | raptor | ok |
| 15:06:45 | Watusimoto | yes |
| 15:07:01 | Watusimoto | I do like having a consistent way of testing for client across all methods |
| 15:07:14 | Watusimoto | I think isClient/isServer should work everywhere, even if the mechanism is different |
| 15:07:19 | Watusimoto | it will make the code more readable |
| 15:09:48 | raptor | and i would support code that is more readable |
| 15:11:24 | Watusimoto | I am still wrestling with that thorny knot I checked in last night |
| 15:12:00 | raptor | nooooo |
| 15:15:55 | Watusimoto | not to worry -- not making it more tangled |
| 15:16:08 | Watusimoto | just trying to work my way through sam's logic |
| 15:16:15 | Watusimoto | I'm starting to like some of it :-) |
| 15:16:32 | raptor | ha |
| 15:16:44 | Watusimoto | though I found a minor bug, which I'm fixing now |
| 15:17:13 | raptor | i started working on master protocol 6 - where we have a 'basic' connection that doesn't send any info (like username, etc.) |
| 15:20:21 | raptor | but ii have to figure out to terminate it |
| 15:25:08 | Watusimoto | return; |
| 15:25:21 | Watusimoto | or, more likely, return; } |
| 15:25:27 | Watusimoto | that usually works for me! |
| 15:25:35 | Watusimoto | sometimes just } |
| 15:30:47 | raptor | also, i found an architectural difference |
| 15:30:56 | raptor | we have the master.h |
| 15:31:07 | raptor | sorry, masterInterface.h |
| 15:31:56 | raptor | but we implement client/server side of functions in a different class in zap/ (masterInterface.cpp); BUT we implement the master side functions in master/ (master.cpp) |
| 15:32:55 | Watusimoto | is this where we use that TNL_XXX_OVERRIDE_XXX stuff? |
| 15:32:56 | raptor | like MasterServerConnection::readConnectRequest() is in one .cpp but writeConnectRequest() is in the other |
| 15:33:18 | raptor | oops, i gave the wrong header again: i meant masterConnection.h |
| 15:33:28 | Watusimoto | it's been a looong time since I really looked at the master |
| 15:33:44 | raptor | yeah... i spent an hour wrapping my head around it last night |
| 15:34:11 | raptor | but what i mean to highlight is the difference of having 1 header, but 2 classes in the case of master |
| 15:34:28 | raptor | but with zap/ we only have 1 header/1 class and mix client/server stuff a lot |
| 15:35:50 | Watusimoto | in zap stuff, we need to mix as much of the code is the same for cleint-side prediction stuff |
| 15:36:41 | | BFLogBot Commit: 743b52a11477 | Author: watusimoto | Message: Do not provide default value |
| 15:36:42 | | BFLogBot Commit: c30e4bd5c44a | Author: watusimoto | Message: Comments |
| 15:36:44 | | BFLogBot Commit: 47a62f8884d3 | Author: watusimoto | Message: Make method name consistent with similar methods |
| 15:36:45 | | BFLogBot Commit: 329ee7e7db39 | Author: watusimoto | Message: Change enum to make it more clear, and change signature to pass reason for dismount to gameType |
| 15:36:47 | | BFLogBot Commit: c9febf13dabf | Author: watusimoto | Message: Rename enum from Dismount_Mode to DismountMode |
| 15:36:48 | | BFLogBot Commit: f5bc590d8090 | Author: watusimoto | Message: Make sure we run updateWhichTeamsHaveFlags when a flag is dropped |
| 15:36:50 | | BFLogBot Commit: eaae4f7fdacd | Author: watusimoto | Message: Whitespace |
| 15:36:51 | | BFLogBot Commit: 41fb3e447e71 | Author: watusimoto | Message: Don't call this twice (once in parent, once here) |
| 15:36:53 | | BFLogBot Commit: 67768356a85d | Author: watusimoto | Message: Ditto! |
| 15:36:54 | | BFLogBot Commit: 0323478b5c8e | Author: watusimoto | Message: Comments |
| 15:37:47 | raptor | ok phoew still mergeable.. |
| 15:42:15 | raptor | ok, now i need to compile master and run my own local instance... |
| 15:42:39 | Watusimoto | ok, so I may have a major problem here |
| 15:42:46 | Watusimoto | what happens if I do hg forget * |
| 15:42:52 | raptor | uhhh |
| 15:42:53 | Watusimoto | can I undo that? |
| 15:43:11 | Watusimoto | actually, let me look at tortoise and see what it says |
| 15:43:31 | Watusimoto | maybe ok??? |
| 15:43:47 | Watusimoto | I interruppted the command, and refreshing tortoise suggests nothing is amiss |
| 15:44:00 | raptor | uhh.. is that the way of excluding from version control? |
| 15:44:23 | raptor | ah ok |
| 15:44:43 | raptor | it's just 'hg remove -Af' |
| 15:44:44 | Watusimoto | looks ok, actually |
| 15:44:53 | raptor | so you can do an 'hg revert' |
| 15:44:59 | Watusimoto | I was trying to remove some files I had just added |
| 15:45:00 | raptor | on the same files and it'll bring them back |
| 15:45:08 | Watusimoto | I didn't think it woudl try to remove everything! |
| 15:45:26 | raptor | you used a glob! |
| 15:45:39 | raptor | nothing minor happens with glob usage... |
| 15:46:44 | raptor | if you used 'forget' the files are left, but they are removed from the .hg tree |
| 15:46:55 | raptor | left on the filesystem i mean |
| 15:47:06 | raptor | so when you commit next, pay close attention... |
| 15:51:33 | | Darrel_ has joined |
| 15:51:35 | | Darrel Quit (Read error: Connection reset by peer) |
| 15:51:57 | raptor | Dismount_Mode? with an underscore |
| 15:52:14 | raptor | ah, ok, rename.. |
| 15:57:34 | Watusimoto | yes |
| 16:00:59 | raptor | this is how i'm feeling right now: https://xkcd.com/292/ |
| 16:10:09 | Watusimoto | ha |
| 16:18:38 | | BFLogBot Commit: 184535cc120c | Author: watusimoto | Message: Resolve TODO by creating a MathUtils file, though its kind of lonely in there right now! Also removed duplicate definition of min/MIN and max/MAX |
| 16:18:53 | raptor | MathUtils! |
| 16:30:04 | | Darrel_ is now known as Darrel |
| 17:02:14 | | YoshiSmb has joined |
| 17:04:23 | raptor | Watusimoto: can you breifly review my basic connection changes and tell me what you think? |
| 17:04:26 | raptor | here: http://pastie.org/5627198 |
| 17:04:43 | raptor | if you have time... there may be some debug stuff mixed in.. |
| 17:06:22 | Watusimoto | ok |
| 17:06:35 | Watusimoto | so what is mBasicConnection ? |
| 17:06:45 | raptor | just a flag on MasterServerConnection |
| 17:06:53 | Watusimoto | right, but what does it mean? |
| 17:06:56 | raptor | if set, then it skips sending name/password/etc. |
| 17:07:07 | Watusimoto | so an anon connection |
| 17:07:17 | raptor | yes |
| 17:07:30 | raptor | maybe that's a better name for it... |
| 17:07:36 | raptor | i like that anonymousConnection |
| 17:07:41 | Watusimoto | me too |
| 17:08:37 | Watusimoto | ok, so you'll be creating a full on connection just to send the motd? |
| 17:09:04 | Watusimoto | why not just bstream->write(MOTD)? |
| 17:09:27 | raptor | i could do that.. but here is already an m2c |
| 17:09:32 | raptor | i could do that.. but there is already an m2c |
| 17:09:46 | raptor | i'm open to ideas and major changes |
| 17:09:54 | Watusimoto | I guess I'm not sure if there would be any savings in doing that, anyway... |
| 17:10:00 | raptor | because right now, the connection doesn't terminate |
| 17:11:28 | Watusimoto | you'll need rename setBasicConnection(), obviously |
| 17:12:05 | raptor | yes, done just now |
| 17:12:38 | raptor | i guess i'm wondering if there is a better way than just toggling a flag on the MasterServerConnection class.. |
| 17:14:21 | Watusimoto | to do what, track if it's anon connection? |
| 17:14:52 | raptor | well, no, it's just that our current implementation of having a master connection is to make it persistent |
| 17:15:04 | raptor | so, if i start a basic connection, it's persistent |
| 17:15:31 | raptor | and i'll have to explicitly close it somehow |
| 17:15:38 | Watusimoto | well, the purpose of the anon connection is to get the motd and go home, right? |
| 17:15:54 | Watusimoto | (and maybe get some server data, who knows( |
| 17:16:10 | raptor | right, and maybe anything in the future.. |
| 17:17:02 | Watusimoto | is there any purpose for client ot be connected to master besides on the join menu? |
| 17:17:16 | Watusimoto | and validating name/pw? |
| 17:18:20 | raptor | host game, and lobby chat |
| 17:19:08 | raptor | our current method of connecting to master is in CLientGame::idle... constantly checking to make sure we have a connection |
| 17:23:17 | Watusimoto | yeah, I'm just wondering if that's really the best model |
| 17:23:29 | raptor | exactly... |
| 17:23:45 | Watusimoto | when you host game, you are no longer a client |
| 17:23:49 | raptor | i was hoping to avoid you having to dive too deep |
| 17:24:05 | raptor | master sees clients as clients and game servers as clients |
| 17:24:11 | Watusimoto | maybe you won't have to; just trying to understand what we're really trying to do here |
| 17:24:23 | Watusimoto | because it ties in with the UI conversation we were having yesterday |
| 17:24:55 | Watusimoto | what do you think about getting rid of F5 chat from the main menu |
| 17:25:03 | Watusimoto | and only allowing it from the join screen |
| 17:25:17 | raptor | it's currently allow in UIGame and UIEditor, too |
| 17:25:37 | Watusimoto | what if we got it out of the editor as well? |
| 17:26:00 | Watusimoto | where I'm going with this is perhaps client could make persistent connection to master only when entering the join menu |
| 17:26:08 | raptor | we could... this is shifting the paradigm of the game always being connected |
| 17:26:10 | Watusimoto | that would let us do the user validation there |
| 17:27:18 | Watusimoto | if the user enters a name/pw earlier, like from options menu, we could validate then and just keep the connection open |
| 17:27:42 | Watusimoto | so join would check if the connection exists, and create one if it is missing |
| 17:28:11 | Watusimoto | but... on the other hand, I would like to be able to add to the high scores screen and show the user any acheivements they've had |
| 17:28:26 | Watusimoto | that would require a connection to master, and also a validated username/pw |
| 17:29:20 | Watusimoto | but, to answer the question you were really asking, one way to solve the open connection issue is to just write the motd and have the server close the connection |
| 17:29:38 | raptor | yes... well, maybe i'll just continue on my road for now, and figure out how to turn off the anonymous connection; then, when it's needed we'll do a normal connection |
| 17:30:38 | raptor | game run time is tied with the credentialed connection to master - if you want to change credentials you have to exit the game |
| 17:30:51 | raptor | i mean to say - that's what we are doing now... |
| 17:31:00 | raptor | we will be changing that, for better or worse |
| 17:32:41 | Watusimoto | what is game run time? a stat? |
| 17:32:56 | raptor | just runnign the game... maybe ignore that last statement |
| 17:33:11 | Watusimoto | ok |
| 17:34:47 | YoshiSmb | raptor. |
| 17:35:19 | raptor | hi YoshiSmb |
| 17:36:25 | YoshiSmb | want a quick match on the server? |
| 17:36:38 | raptor | sorry, i'm working on some coding right now |
| 17:36:50 | YoshiSmb | ok. |
| 17:36:53 | YoshiSmb | Any way. Good day! |
| 17:37:25 | raptor | Watusimoto: i think you changed the line endings of my Makefile, now it hates me |
| 17:37:52 | Watusimoto | argh! |
| 17:38:04 | Watusimoto | could it be not line endigns, but rather a tabs to space conversion? |
| 17:38:45 | raptor | oh wait - it looks like you added a backslash accidentally |
| 17:39:25 | raptor | ok fixed |
| 17:39:47 | | BFLogBot Commit: 16f4ef6de191 | Author: buckyballreaction | Message: Fix accidental Makefile change |
| 17:41:47 | Watusimoto | there's another change coming... |
| 17:42:01 | Watusimoto | but if the linenedings and such are ok, it should be fine |
| 17:42:21 | raptor | ok |
| 17:43:04 | raptor | would you want to include the: #include <math.h> |
| 17:43:11 | raptor | in the MathUtils.h instead of the .cpp? |
| 17:43:30 | raptor | (that would some compile errors in Linux) |
| 17:43:35 | raptor | *would fix |
| 17:50:22 | | BFLogBot Commit: 4df26d873c09 | Author: watusimoto | Message: Remove temp code |
| 17:50:23 | | BFLogBot Commit: a9e2bac99c77 | Author: watusimoto | Message: Welcome to the world, Mr. RenderUtils! |
| 17:50:25 | | BFLogBot Commit: 0b1eed9144b9 | Author: watusimoto | Message: Merge |
| 17:50:40 | Watusimoto | ah, yes, I think so |
| 17:51:07 | Watusimoto | my google friend tells me to always include everything needed by a particular .h in the .h, rather than rely on includes, but I like to declutter! |
| 17:51:20 | Watusimoto | oh wait |
| 17:51:23 | Watusimoto | I misunderstood |
| 17:51:32 | Watusimoto | yes, do what you need to do to fix |
| 17:51:41 | raptor | ok |
| 17:52:58 | Watusimoto | so the basic idea with this last checkin is that our basic rendering functions now have their own home, and can stop mooching off of the hostpitality of UI |
| 17:53:05 | raptor | oh yay |
| 17:53:08 | Watusimoto | ok, dinner time |
| 17:53:11 | raptor | ok |
| 17:53:15 | Watusimoto | back later |
| 17:58:56 | | Watusimoto Quit (Ping timeout: 260 seconds) |
| 18:06:33 | | BFLogBot Commit: f8c6580de040 | Author: buckyballreaction | Message: Fix compiling in Linux |
| 18:06:34 | | BFLogBot Commit: a0c4546c538b | Author: buckyballreaction | Message: Performance improvements with radian/degree conversions |
| 18:08:05 | | BFLogBot Commit: d868dfaebc3d | Author: buckyballreaction | Message: Minor fix to FloatInverse360 |
| 18:15:00 | | LordDVG has joined |
| 18:19:03 | | BFLogBot Commit: 9b0a9d609b36 | Author: buckyballreaction | Message: Use new degrees/radians methods in other classes for performance boost |
| 18:21:29 | | kaen has joined |
| 19:21:55 | | sam686 has joined |
| 19:21:56 | | ChanServ sets mode +v sam686 |
| 19:39:06 | | LordDVG Quit (Quit: Leaving) |
| 19:54:27 | | YoshiSmb Quit (Ping timeout: 245 seconds) |
| 20:37:00 | | YoshiSmb has joined |
| 21:09:48 | | YoshiSmb_ has joined |
| 21:11:21 | | YoshiSmb Quit (Ping timeout: 248 seconds) |
| 21:11:44 | | YoshiSmb_ is now known as YoshiSmb |
| 21:17:26 | kaen | ooookay. |
| 21:18:31 | kaen | so after slamming my head against compiler errors since last night, I've decided a mixin is not feasible for the pathing logic without significant dependency injection. |
| 21:19:16 | kaen | it needs (at least, I've stopped looking) a game, a position, and a radius of the ship |
| 21:19:26 | kaen | for most of the functions |
| 21:19:51 | kaen | and declaring MoveObject as a virtual base class of Pather causes covariant return types in Robot |
| 21:19:59 | kaen | *invalid covariant return types |
| 21:20:28 | kaen | from Ship to Robot which is based indirectly on MoveObject in that case |
| 21:20:55 | kaen | and even declaring Ship as a virtual parent class of Pather causes errors in building TNL |
| 21:21:06 | kaen | because of SafePtr's templatey stuff |
| 21:21:46 | kaen | so, no way to inherit the dependencies, and ridiculous function signatures with injection. |
| 21:23:36 | kaen | hmm... unless maybe I can have a pointer to the pathing object within the Pather mixin rather than this crazy inheritance-based idea |
| 21:24:10 | kaen | thank you, silence of an empty channel! you've once again solved my difficult programming dilemma. |
| 21:24:36 | YoshiSmb | and? |
| 21:24:44 | YoshiSmb | Hi kaen |
| 21:25:00 | YoshiSmb | the other's i think they are idle |
| 21:36:21 | | Watusimoto has joined |
| 21:36:58 | YoshiSmb | hi watusimoto |
| 21:37:11 | Watusimoto | hi all |
| 21:37:21 | YoshiSmb | they are idle. exept me. |
| 21:37:38 | YoshiSmb | so. Welcome back to the irc bitfighter chat. |
| 21:38:59 | YoshiSmb | watusimoto. wanna hear what Kaen say before you entered? |
| 21:39:06 | Watusimoto | sure |
| 21:39:26 | YoshiSmb | ok. |
| 21:39:28 | YoshiSmb | here is it |
| 21:39:29 | YoshiSmb | <kaen> ooookay. |
| 21:39:29 | YoshiSmb | <kaen> so after slamming my head against compiler errors since last night, I've decided a mixin is not feasible for the pathing logic without significant dependency injection. |
| 21:39:29 | YoshiSmb | <kaen> it needs (at least, I've stopped looking) a game, a position, and a radius of the ship |
| 21:39:29 | YoshiSmb | <kaen> for most of the functions |
| 21:39:29 | YoshiSmb | <kaen> and declaring MoveObject as a virtual base class of Pather causes covariant return types in Robot |
| 21:39:29 | YoshiSmb | <kaen> *invalid covariant return types |
| 21:39:30 | YoshiSmb | <kaen> from Ship to Robot which is based indirectly on MoveObject in that case |
| 21:39:30 | YoshiSmb | <kaen> and even declaring Ship as a virtual parent class of Pather causes errors in building TNL |
| 21:39:31 | YoshiSmb | <kaen> because of SafePtr's templatey stuff |
| 21:39:31 | YoshiSmb | <kaen> so, no way to inherit the dependencies, and ridiculous function signatures with injection. |
| 21:39:32 | YoshiSmb | <kaen> hmm... unless maybe I can have a pointer to the pathing object within the Pather mixin rather than this crazy inheritance-based idea |
| 21:39:33 | YoshiSmb | <kaen> thank you, silence of an empty channel! you've once again solved my difficult programming dilemma. |
| 21:39:45 | YoshiSmb | that all |
| 21:39:46 | raptor | hi |
| 21:39:51 | YoshiSmb | hi raptor |
| 21:40:08 | raptor | YoshiSmb: we have an IRC log.. |
| 21:40:16 | YoshiSmb | true |
| 21:41:04 | | kaen Quit (Ping timeout: 260 seconds) |
| 21:41:08 | YoshiSmb | im playing the next game http://sc2.sourceforge.net/ |
| 21:41:17 | YoshiSmb | The Ur-quan Master |
| 21:42:36 | YoshiSmb | The game: The Ur-quan Master is for Windows , MacOS X & Linux (Ubuntu,Debian,Gentoo,Fedora & Mandriva Linux) |
| 21:42:57 | raptor | hmm looks like it needs to be packages for openSUSE! |
| 21:43:31 | YoshiSmb | who's kaen say? |
| 22:01:06 | Watusimoto | YoshiSmb: looks like you've been playing a lot! |
| 22:01:13 | Watusimoto | 3rd top player this week, and last |
| 22:04:54 | Watusimoto | sigh... back to the running bug list |
| 22:07:12 | YoshiSmb | heeeheee. |
| 22:12:39 | sam686 | hi |
| 22:13:50 | | Darrel Quit (Quit: Leaving) |
| 22:14:48 | Watusimoto | hi |
| 22:14:58 | Watusimoto | does anyone know what kaen was trying to do? |
| 22:15:02 | raptor | hi |
| 22:15:04 | raptor | sort of |
| 22:15:07 | Watusimoto | with the pather class? |
| 22:15:21 | raptor | he is building his own gametype and wanting to improve on the path finding |
| 22:15:47 | Watusimoto | he wanted to get it out of robot? or have other things do pathfinding as well? |
| 22:16:04 | raptor | or at least create more methods that use the path finding so he can arbitrarily control various units |
| 22:16:35 | Watusimoto | I'm not sure I understand that |
| 22:18:03 | raptor | like take a robot and always make it follow a specific path |
| 22:22:59 | raptor | argh, brb |
| 22:22:59 | | raptor Quit () |
| 22:30:52 | | raptor has joined |
| 22:30:52 | | ChanServ sets mode +o raptor |
| 22:35:17 | Watusimoto | raptor: so he wanted to have the gametype direct the bots, as opposed to a script? |
| 22:38:04 | | BFLogBot Commit: 80a8278d7750 | Author: watusimoto | Message: Remove dead code |
| 22:38:06 | | BFLogBot Commit: abb411c53352 | Author: watusimoto | Message: Make these constants static |
| 22:38:07 | | BFLogBot Commit: a6bfe3ad337c | Author: watusimoto | Message: Fix bug in renderUnboxedMessageBox that misclaculated box size if message had embedded empty lines |
| 22:38:09 | | BFLogBot Commit: 19facd36fc36 | Author: watusimoto | Message: Make Zones work via standard item loading -- no longer a special case in pseudo-item handler (reduces possibility of bugs by using standard handlers) |
| 22:38:10 | | BFLogBot Commit: be0ada5fd374 | Author: watusimoto | Message: Merge |
| 22:43:02 | raptor | Watusimoto: i think yes... not sure exactly |
| 22:43:18 | raptor | he hasn't given away much about what he's doing... |
| 22:43:30 | Watusimoto | ok; was looking at your performance enhancement with d->r conversions |
| 22:43:33 | Watusimoto | what was that about? |
| 22:43:47 | Watusimoto | I mean, where did the enhancement come in? |
| 22:44:10 | raptor | ah, removal of divide by float |
| 22:44:29 | Watusimoto | those were 2 constants, right? |
| 22:44:47 | raptor | previously it was tau / 360 |
| 22:44:52 | Watusimoto | I'd bet a lot that the compiler optimized that divide away |
| 22:44:56 | raptor | now it is tau * inverse360 |
| 22:45:06 | raptor | it doesn't |
| 22:45:15 | Watusimoto | it doesn't? |
| 22:45:19 | | BFLogBot Commit: 066ce6318bc9 | Author: sam8641 | Message: Fix laggy forcefield, fix possible client side crash, remove useless code, update my project |
| 22:45:20 | | BFLogBot Commit: 6643ac0eae48 | Author: sam8641 | Message: This fixes spybug scoping ships too early that can crash clients. |
| 22:45:22 | | BFLogBot Commit: 465347867788 | Author: sam8641 | Message: Go back to version 018 - Want my scoping fix on existing 018 server. |
| 22:45:23 | | BFLogBot Commit: 78af7ece3f26 | Author: sam8641 | Message: Merge |
| 22:45:28 | raptor | compilers don't optimize dividing by floats |
| 22:45:40 | sam686 | sorry for going back to 018... but there was barely nothing changed that breaks 018 compatibility.. |
| 22:45:42 | Watusimoto | they don't? |
| 22:45:48 | raptor | *maybe* divide by integers... |
| 22:45:54 | sam686 | also want to update my server with the scoping fix.. |
| 22:46:02 | Watusimoto | sam686: ok |
| 22:46:12 | raptor | it's the whole reason there is floatInverse2Pi |
| 22:46:18 | raptor | so you can multiply a float |
| 22:46:22 | raptor | instead of divide |
| 22:46:27 | Watusimoto | sam686: but I might have to break it again to fix some of the bugs on the buglist |
| 22:46:54 | sam686 | nothing seems broken as of my latest merge.. |
| 22:47:37 | sam686 | also did one fix on bug list that can be crossed off now.. |
| 22:47:54 | sam686 | bug number 36 fixed.. |
| 22:47:58 | raptor | oh yeah, my changes merged... i get more and more scared when you both commit stuff... |
| 22:50:54 | Watusimoto | sam686: oh, excellent... I was going to to do that one next. I'll remove it from the list |
| 22:51:32 | Watusimoto | so that's two items off the list in the last 10 minutes |
| 22:52:06 | Watusimoto | unfortunately, the rest of the items are starting to really suck |
| 22:53:07 | sam686 | i don't know if bug number 17 exists - you are forced as unique names for duplicates, and stats already sent as unique names. |
| 22:54:10 | sam686 | though, the master doesn't check to make sure all names is only there at most once in stats... |
| 22:54:20 | Watusimoto | you don't know, or you know it;s not a problem? |
| 22:54:42 | Watusimoto | hell, lets find out |
| 22:55:05 | sam686 | its currently not a problem, I saw one of my game reports as sam686, sam686.1 even though I was using the same name.. |
| 22:55:36 | Watusimoto | ah, ok. then I'll cross that one off too |
| 22:55:40 | sam686 | http://bitfighter.org/stats/ oh and there is bobdaduck.0 |
| 22:56:06 | Watusimoto | but no bobdaduck |
| 22:56:34 | Watusimoto | why is he underlined? |
| 22:56:44 | sam686 | wonder if it would be better to auto kick duplicate authenticated names (preferably the one existing in game that may be lagged out) |
| 22:56:53 | Watusimoto | can a .0 player be registered? I suppose so |
| 22:57:09 | Watusimoto | Maybe rather than auto kick, we could auto correct |
| 22:57:11 | sam686 | maybe its because the master doesn't check everything.. |
| 22:57:35 | Watusimoto | when bobdaduck.o is playing, and bobdaduck becomes available, we could reassign his name to bobdaduck |
| 22:57:49 | sam686 | auto-correct can result of duplicate names that wasn't before... |
| 22:58:29 | sam686 | for example, bobdaduck.0 and bobdaduck.1 both underlined but no bobdaduck.. |
| 22:59:05 | Watusimoto | maybe then only the .0 would autocorrect |
| 22:59:20 | sam686 | maybe auto rename in server side, yes.. |
| 22:59:54 | Watusimoto | I think that would be better than leaving them at .0 until they restart |
| 23:01:16 | Watusimoto | wow -- someone played a game with 38 elizabots |
| 23:01:35 | Watusimoto | on the POOP FART FART FART server |
| 23:01:50 | Watusimoto | YoshiSmb was there |
| 23:02:11 | YoshiSmb | yea. |
| 23:02:34 | YoshiSmb | and some one use the Elizabot to say me. hmmmm. something. (i forgot it) |
| 23:05:00 | raptor | i'm having our airducts cleaned right now... |
| 23:05:08 | raptor | hope to find all of our spoons... |
| 23:05:39 | | kaen has joined |
| 23:06:06 | Watusimoto | ha |
| 23:06:14 | YoshiSmb | P.S. bitfighter.org/ (irclogs or stats) there is another more to put) |
| 23:06:34 | kaen | stats isn't fit to be linked to yet |
| 23:06:36 | Watusimoto | we did that once... big truck with vacuum bags and some sort of duct agitator? |
| 23:06:51 | Watusimoto | hi kaen |
| 23:06:55 | kaen | hi Watusimoto |
| 23:07:08 | Watusimoto | I was trying to understand what you were doing with the pathfinding thing and why it was so difficult |
| 23:08:11 | Watusimoto | were you trying to make pathfinding work for a broader array of objects that just bots? |
| 23:09:28 | kaen | yes. |
| 23:09:32 | kaen | via a mixin |
| 23:09:41 | kaen | but the mixin has some dependencies |
| 23:09:56 | kaen | and using virtual base classes won't work because of the template stuff in SafePtr |
| 23:10:20 | raptor | i still don't know what you mean by 'mixin' other than country dancing.. |
| 23:10:25 | kaen | Pathing depends on the game's object db, the position of the ship, it's radius |
| 23:10:36 | sam686 | latest code for server (my sam test) in 018 + old released 018 client works well together - no more client crashes on "Fast Nexus" level like it used to on old 018 server.. |
| 23:10:37 | Watusimoto | raptor: like m&ms in icecream! |
| 23:11:03 | kaen | a class that provides a certain functionality to be inherited or just reused by a subclass, while not meant for instantiation |
| 23:11:15 | kaen | a Pather mixin |
| 23:11:25 | Watusimoto | kaen: there's probably another factor to consider too -- multiple zonesets will likely need to be built to accomodate multiple diameter objects |
| 23:11:35 | kaen | ooph |
| 23:11:38 | kaen | indeed |
| 23:12:00 | kaen | but one static zoneset per object size would suit, and there is only one object size per class |
| 23:12:09 | Watusimoto | yes |
| 23:12:13 | kaen | but that's further down the road. |
| 23:12:14 | raptor | m&ms + ice cream... broken teeth? |
| 23:12:24 | Watusimoto | big tummy |
| 23:12:42 | Watusimoto | kaen: it's just that it;s an expensive operation |
| 23:12:58 | kaen | I should only need to path once on a static level I believe |
| 23:13:03 | Watusimoto | but there might be some optimizations possible if you are building two sets -- maybe partial results could be cached |
| 23:13:14 | kaen | because the AI mindlessly swarms to a single given point |
| 23:13:19 | kaen | until it just sees a player |
| 23:13:25 | Watusimoto | the pathfinding isn;t too bad |
| 23:13:32 | Watusimoto | anyway |
| 23:13:57 | Watusimoto | so the mixin approach just grew too ugly |
| 23:14:00 | kaen | generating the zonesets is the expensive part then? that makes sense really |
| 23:14:11 | Watusimoto | raptor: we use a mixin approach somewhere in bf, I think |
| 23:14:29 | Watusimoto | kaen: it's one of the expensive parts :-) |
| 23:14:40 | Watusimoto | though it goes pretty fast now |
| 23:15:05 | kaen | the other approach I came up with is just keeping an object pointer (like mSelf) in the Pather "mixin" |
| 23:15:15 | Watusimoto | we use this awesome library that's like 80000 lines of C code that makes triangles out of anything |
| 23:15:37 | raptor | ugh Triangle |
| 23:16:09 | kaen | I am honestly mystified by the pathfinding and zone making stuff. I wouldn't hope to understand it beyond the interface... |
| 23:16:23 | raptor | me too! |
| 23:16:58 | Watusimoto | the pathfinding is a pretty straightforward applicaiton of a well known algorithm (A-star) |
| 23:17:22 | kaen | I do understand Astar well enough; I've written a couple of implementations for stuff |
| 23:17:31 | Watusimoto | the zone generation is voodoo black magic that none of us understand, though we wrote the thing from scratch |
| 23:17:39 | kaen | wow |
| 23:17:42 | Watusimoto | well, so that;s the pathf inding then |
| 23:18:15 | Watusimoto | so, as an example, you might want testitems to be able to go from point A to point B through a level |
| 23:18:23 | raptor | crazy! |
| 23:18:32 | kaen | pretty much exactly what I'm doing |
| 23:18:50 | kaen | (trying to do) |
| 23:18:53 | Watusimoto | ok... let me look at the robot code and see if any great ideas pop up |
| 23:20:12 | raptor | also, i may or may not have told kaen about the Circle object... |
| 23:20:50 | Watusimoto | it doesn;t really do pathfinding... |
| 23:21:01 | kaen | The-Class-Which-Shall-Not-Be-Named |
| 23:21:12 | Watusimoto | but one thing we did learn with circle is that having a lot of objects kills performance |
| 23:21:28 | Watusimoto | or at least a lot of objects in one aera |
| 23:21:40 | Watusimoto | (clients only get updates of things in their vicinity) |
| 23:21:59 | Watusimoto | not sure if that is at all relevant |
| 23:22:22 | kaen | absolutely; it is one of things I intended to test |
| 23:22:49 | kaen | I keep fatfingering this semicolon key. I promise I'm not such pedantic grammarian. |
| 23:24:03 | Watusimoto | well, one possibility is to just give every moveObject or moveItem path finding abilitiies as a native thing, rather than as a mixin |
| 23:24:17 | kaen | I was trying to avoid that |
| 23:25:06 | kaen | but I guess it really wouldn't be so bad... |
| 23:25:46 | Watusimoto | so what methods do you think you need? |
| 23:25:47 | kaen | not as bad as mixin with a mSelf member, or functions with a half dozen arguments |
| 23:26:12 | Watusimoto | getWaypoint for sure -- that's where your objects will be headed towards |
| 23:27:56 | Watusimoto | ok, another possibility is to create a standalone object, say a wayfinder, that individual objects that want to navigate around a level can call and get directions |
| 23:29:35 | kaen | I think that's the best solution. |
| 23:29:55 | Watusimoto | it kind of makes sense |
| 23:30:01 | Watusimoto | there is just one level |
| 23:30:19 | Watusimoto | and therefore one set of zones (per object radius) |
| 23:30:59 | kaen | per-radius zonemaps are starting to sound pretty cool to me, btw |
| 23:31:15 | kaen | like smaller swarmers sneaking in through little holes that the big ones can't fit through. |
| 23:31:20 | Watusimoto | (they solve the problem of fitting through tight areas) |
| 23:31:38 | kaen | makes sense. |
| 23:31:41 | Watusimoto | and an object can call the FlightController and as for a FlightPlan -- basically the solution to an a-star path from A to B |
| 23:31:50 | Watusimoto | and ask for |
| 23:32:24 | Watusimoto | the FlightController can cache flight plans if they are likelty to be repeated |
| 23:33:37 | kaen | true, but for this experiment I won't need such a thing. the path could just be cached in the GameType |
| 23:34:18 | Watusimoto | I think for robots, there is no caching |
| 23:34:49 | Watusimoto | though we do have this... cachedBotFlightPlans |
| 23:34:59 | Watusimoto | which suggests my previous statement was false |
| 23:35:31 | Watusimoto | Bots do cache them already |
| 23:35:50 | kaen | groovy |
| 23:36:02 | kaen | wow I imagine that cache can get pretty big |
| 23:36:27 | kaen | maybe not. I don't know how many zones make up a usual level |
| 23:36:37 | Watusimoto | I was just checking if there are any limits on growth |
| 23:37:08 | Watusimoto | remember that a lot of what bots do is fly from A to B and back |
| 23:37:15 | raptor | i added teh bot cache |
| 23:37:24 | raptor | and i don't now remember how it works |
| 23:37:26 | Watusimoto | they may get in a skirmish along the way, but they don;t need pathfinding for that |
| 23:37:49 | raptor | but, i remember performance testing it and it is faster than using A* over and over |
| 23:37:55 | Watusimoto | it basically maps a zone pair to a set of points (the flight plan) |
| 23:37:58 | | YoshiSmb Quit () |
| 23:38:08 | Watusimoto | which is exactly what you'd expect |
| 23:38:13 | | YoshiSmb has joined |
| 23:38:36 | Watusimoto | no real upper limit on size |
| 23:40:23 | Watusimoto | going to play in a largish level with several bots and see how big it gets |
| 23:40:34 | raptor | ctf1! |
| 23:40:39 | Watusimoto | ok |
| 23:40:40 | raptor | was my test map... |
| 23:40:43 | raptor | with 50 bots |
| 23:40:46 | raptor | i remember |
| 23:40:48 | Watusimoto | I;ll play with 8 bots |
| 23:40:54 | raptor | but i don't remember the size the cache got.. |
| 23:40:58 | raptor | maybe 1MB? |
| 23:41:03 | Watusimoto | what is your prediction for the number of cached flightplans? |
| 23:41:12 | raptor | 10000 |
| 23:41:24 | Watusimoto | ok, I;ll bet 200 |
| 23:41:33 | raptor | oh wait... 8 bots.. |
| 23:41:35 | raptor | hmm |
| 23:41:45 | Watusimoto | they'll be filying all over fighting one another |
| 23:41:49 | Watusimoto | big level 2 teams |
| 23:41:52 | raptor | ok, i reduce mine to 1000 |
| 23:41:57 | Watusimoto | :-) |
| 23:42:11 | kaen | I'll say 5000 then |
| 23:42:39 | Watusimoto | sam686? |
| 23:43:40 | Watusimoto | phooey, I have to find ctf1 somewhere |
| 23:44:04 | kaen | actually 1000 sounds pretty close to me |
| 23:44:30 | Watusimoto | got it |
| 23:44:43 | kaen | highlight me when you finish :) |
| 23:44:57 | YoshiSmb | I forgot something to tell you raptor,Watusimoto & Sam686! |
| 23:46:20 | sam686 | hi |
| 23:46:24 | YoshiSmb | in rabbit the bot's shot betwen them instead of try to co-op. |
| 23:47:51 | Watusimoto | after 2 mins we're up to 545 |
| 23:47:57 | Watusimoto | 587 |
| 23:49:11 | Watusimoto | 790 |
| 23:49:15 | Watusimoto | 802 |
| 23:50:49 | Watusimoto | 975 when my team won |
| 23:51:19 | Watusimoto | so if each flightplan is what... 50 points? |
| 23:51:56 | raptor | i win! |
| 23:52:04 | Watusimoto | then that's 100 floats at 4 bytes each... 400 bytes * 1000 plans that's... 400000 bytes or 400K |
| 23:52:05 | raptor | unless overshooting disqualifies... |
| 23:52:22 | Watusimoto | sorry, did I write 975? I meant 200 |
| 23:52:29 | Watusimoto | talk about fat fingers! |
| 23:52:32 | raptor | ha! |
| 23:53:04 | raptor | 400K for the cost of ?? 50 |
| 23:53:07 | raptor | % cpu reduction? |
| 23:53:18 | Watusimoto | 400k isn't bad |
| 23:53:36 | Watusimoto | hell, even 4MB isn't bad |
| 23:54:54 | Watusimoto | but we could put an upper bounds on the number of cached items, and cycle out the oldest ones |
| 23:55:24 | Watusimoto | or not cache really small ones (on the theory that they're cheapest to compute) |
| 23:55:30 | sam686 | something is wrong with levels with spybugs, destroy spybugs with bullets and crash.. |
| 23:55:32 | Watusimoto | or... pick your favorite strategy |
| 23:55:46 | Watusimoto | will test |
| 23:56:25 | Watusimoto | I created a leve with 2 spybugs, one blue, one red |
| 23:56:32 | Watusimoto | I killed both with bullets |
| 23:56:34 | Watusimoto | no crash |
| 23:56:47 | sam686 | it crashes soon after fineObjects_fast(SpyBugsTypeNumber) with pointers going to invalid objects.. |
| 23:57:07 | Watusimoto | really? |
| 23:57:46 | Watusimoto | if that's true, then a spybug is dying but not being removed from the database |
| 23:58:10 | sam686 | do with with hundreds of spybugs and it will eventually crash on repeaded level restart and shooting at spybugs |
| 23:58:19 | Watusimoto | got it -- crash! |
| 23:58:32 | Watusimoto | it probably requires 2 |
| 23:58:48 | Watusimoto | one to trigger the fault, the second to use the code that gets broken |
| 23:59:26 | Watusimoto | yup |
| 23:59:42 | raptor | i remember it took 3-5 ms for cache look up, but 20-80 for A*... |
| 23:59:54 | Watusimoto | after killing, findObjects_fast returns 4 objects |