#bitfighter IRC Log

Index Search ←Prev date Next date→

IRC Log for 2013-01-05

Timestamps are in GMT/BST.

00:00:06YoshiSmb Quit (Ping timeout: 245 seconds)
00:23:29YoshiSmb_ is now known as YoshiSmb
00:30:37YoshiSmb_ has joined
00:33:57YoshiSmb Quit (Ping timeout: 246 seconds)
00:42:18sam686 has joined
00:42:18ChanServ sets mode +v sam686
00:44:01raptor Quit ()
01:00:08YoshiSmb has joined
01:00:13YoshiSmbhi sam
01:03:31YoshiSmb_ Quit (Ping timeout: 255 seconds)
01:12:19raptor has joined
01:12:20ChanServ sets mode +o raptor
01:31:55sam686ohh boy, a crash on almost everyone's client on my sam test right now..
01:32:34sam686but seem to only happen on "Fast Nexus" level..
01:38:42raptorFast Nexus is our bane
01:55:26kaen Quit (Read error: Operation timed out)
01:59:42YoshiSmb_ has joined
02:01:27YoshiSmb Quit (Ping timeout: 246 seconds)
02:27:51YoshiSmb_ is now known as YoshiSmb
02:28:11YoshiSmbnot on me.
02:28:22YoshiSmbi was out. doing something else
02:29:13YoshiSmb(waiting bobdaduck enter my dedicated server)
03:39:58koda has joined
03:40:16koda Quit (Client Quit)
03:47:48amgine1234567890 has joined
03:50:17amgine1234567890raptor go back to yesterday or was it hte day before i posted a link here for omsthing i made for the site
03:50:31raptorhi amgine1234567890, i saw the cursor
03:50:59amgine1234567890was the cursor ok raptor?
03:52:21raptorit 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:44raptorwatusimoto has done cursor stuff, i'd ask him
03:53:01amgine1234567890maybe ill ask him if we can implement it?
03:54:27raptorsure, you can ask him, but i don't want to get your hopes up
03:54:41raptorwe like to keep the game user interface pretty simple
03:55:02amgine1234567890well still maybe ill post it to the forums if we cant its still cool im my opinon
03:55:24amgine1234567890i used the picture on hte website as a bases for the cursor
03:55:38raptori 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:52amgine1234567890yeah thats what i made it for i use it as my cursor on windows
03:57:20amgine1234567890but i was kinda hoping maybe we can implement it somhow maybe for the menus.
04:01:11YoshiSmb_ has joined
04:02:56YoshiSmb Quit (Ping timeout: 264 seconds)
04:14:34YoshiSmb_ Quit ()
04:47:44raptorsam686: are you around?
04:52:35amgine1234567890hes afk
04:52:57amgine1234567890btw whne your ready for the next version to start testing let me know
05:33:33amgine1234567890 Quit (Quit: Page closed)
05:47:39raptor Quit ()
08:04:08sam686 Quit (Ping timeout: 245 seconds)
10:52:06Watusimoto has joined
11:20:38LordDVG has joined
12:24:06Darrel has joined
14:44:24BFLogBot Commit: 3be6ae8d1a4b | Author: watusimoto | Message: Comment
14:44:26BFLogBot Commit: 2d266ea64eb7 | Author: watusimoto | Message: Add some functions that will make code more readable
14:44:27BFLogBot Commit: 3388b6f1304c | Author: watusimoto | Message: Try applying new function to see if code really is more readable. It is!
14:44:29BFLogBot Commit: f75577986d67 | Author: watusimoto | Message: Move methods up to TNL library so all children will get benefit
14:49:27LordDVG Quit (Remote host closed the connection)
14:52:22raptor has joined
14:52:22ChanServ sets mode +o raptor
14:54:35raptorgood morning!
14:57:41Watusimotohi
14:57:50raptorhello
14:58:28raptorso your latest commit
14:58:37raptorwith isClient/isServer
14:58:51raptordoes using isGhost() match 1 to 1 with ClientGame?
14:59:26WatusimotoI hope so!
14:59:38WatusimotoI can't think of how it wouldn't
14:59:45Watusimotoand it's used that way throughout
14:59:59WatusimotoI just find isGhost always makes me stop and think about what the heck is that
14:59:59raptorbecause I've had this idea in the back of my head that isGhost() is something not quite what we think it is
15:00:11raptorha
15:00:29WatusimotoisGhost means that the item in question is not the "real" item, but a client representation of such
15:00:32raptorbut i haven't studied TNL enough to grasp a good understanding of everythime...
15:00:41raptoreverything
15:00:44Watusimotothe real items live on the server, the ghosts live on the client, so I think it's accurate
15:01:28Watusimotoand 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:54raptordoes it deprecate the need for Game to have isServer() then?
15:06:00WatusimotoGame is not a netObject, is it?
15:06:27raptorhmmm no
15:06:31WatusimotoGametype is, but I think game is not
15:06:38raptorso it would still be needed
15:06:39raptorok
15:06:45Watusimotoyes
15:07:01WatusimotoI do like having a consistent way of testing for client across all methods
15:07:14WatusimotoI think isClient/isServer should work everywhere, even if the mechanism is different
15:07:19Watusimotoit will make the code more readable
15:09:48raptorand i would support code that is more readable
15:11:24WatusimotoI am still wrestling with that thorny knot I checked in last night
15:12:00raptornooooo
15:15:55Watusimotonot to worry -- not making it more tangled
15:16:08Watusimotojust trying to work my way through sam's logic
15:16:15WatusimotoI'm starting to like some of it :-)
15:16:32raptorha
15:16:44Watusimotothough I found a minor bug, which I'm fixing now
15:17:13raptori started working on master protocol 6 - where we have a 'basic' connection that doesn't send any info (like username, etc.)
15:20:21raptorbut ii have to figure out to terminate it
15:25:08Watusimotoreturn;
15:25:21Watusimotoor, more likely, return; }
15:25:27Watusimotothat usually works for me!
15:25:35Watusimotosometimes just }
15:30:47raptoralso, i found an architectural difference
15:30:56raptorwe have the master.h
15:31:07raptorsorry, masterInterface.h
15:31:56raptorbut 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:55Watusimotois this where we use that TNL_XXX_OVERRIDE_XXX stuff?
15:32:56raptorlike MasterServerConnection::readConnectRequest() is in one .cpp but writeConnectRequest() is in the other
15:33:18raptoroops, i gave the wrong header again: i meant masterConnection.h
15:33:28Watusimotoit's been a looong time since I really looked at the master
15:33:44raptoryeah... i spent an hour wrapping my head around it last night
15:34:11raptorbut what i mean to highlight is the difference of having 1 header, but 2 classes in the case of master
15:34:28raptorbut with zap/ we only have 1 header/1 class and mix client/server stuff a lot
15:35:50Watusimotoin zap stuff, we need to mix as much of the code is the same for cleint-side prediction stuff
15:36:41BFLogBot Commit: 743b52a11477 | Author: watusimoto | Message: Do not provide default value
15:36:42BFLogBot Commit: c30e4bd5c44a | Author: watusimoto | Message: Comments
15:36:44BFLogBot Commit: 47a62f8884d3 | Author: watusimoto | Message: Make method name consistent with similar methods
15:36:45BFLogBot Commit: 329ee7e7db39 | Author: watusimoto | Message: Change enum to make it more clear, and change signature to pass reason for dismount to gameType
15:36:47BFLogBot Commit: c9febf13dabf | Author: watusimoto | Message: Rename enum from Dismount_Mode to DismountMode
15:36:48BFLogBot Commit: f5bc590d8090 | Author: watusimoto | Message: Make sure we run updateWhichTeamsHaveFlags when a flag is dropped
15:36:50BFLogBot Commit: eaae4f7fdacd | Author: watusimoto | Message: Whitespace
15:36:51BFLogBot Commit: 41fb3e447e71 | Author: watusimoto | Message: Don't call this twice (once in parent, once here)
15:36:53BFLogBot Commit: 67768356a85d | Author: watusimoto | Message: Ditto!
15:36:54BFLogBot Commit: 0323478b5c8e | Author: watusimoto | Message: Comments
15:37:47raptorok phoew still mergeable..
15:42:15raptorok, now i need to compile master and run my own local instance...
15:42:39Watusimotook, so I may have a major problem here
15:42:46Watusimotowhat happens if I do hg forget *
15:42:52raptoruhhh
15:42:53Watusimotocan I undo that?
15:43:11Watusimotoactually, let me look at tortoise and see what it says
15:43:31Watusimotomaybe ok???
15:43:47WatusimotoI interruppted the command, and refreshing tortoise suggests nothing is amiss
15:44:00raptoruhh.. is that the way of excluding from version control?
15:44:23raptorah ok
15:44:43raptorit's just 'hg remove -Af'
15:44:44Watusimotolooks ok, actually
15:44:53raptorso you can do an 'hg revert'
15:44:59WatusimotoI was trying to remove some files I had just added
15:45:00raptoron the same files and it'll bring them back
15:45:08WatusimotoI didn't think it woudl try to remove everything!
15:45:26raptoryou used a glob!
15:45:39raptornothing minor happens with glob usage...
15:46:44raptorif you used 'forget' the files are left, but they are removed from the .hg tree
15:46:55raptorleft on the filesystem i mean
15:47:06raptorso when you commit next, pay close attention...
15:51:33Darrel_ has joined
15:51:35Darrel Quit (Read error: Connection reset by peer)
15:51:57raptorDismount_Mode? with an underscore
15:52:14raptorah, ok, rename..
15:57:34Watusimotoyes
16:00:59raptorthis is how i'm feeling right now: https://xkcd.com/292/
16:10:09Watusimotoha
16:18:38BFLogBot 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:53raptorMathUtils!
16:30:04Darrel_ is now known as Darrel
17:02:14YoshiSmb has joined
17:04:23raptorWatusimoto: can you breifly review my basic connection changes and tell me what you think?
17:04:26raptorhere: http://pastie.org/5627198
17:04:43raptorif you have time... there may be some debug stuff mixed in..
17:06:22Watusimotook
17:06:35Watusimotoso what is mBasicConnection ?
17:06:45raptorjust a flag on MasterServerConnection
17:06:53Watusimotoright, but what does it mean?
17:06:56raptorif set, then it skips sending name/password/etc.
17:07:07Watusimotoso an anon connection
17:07:17raptoryes
17:07:30raptormaybe that's a better name for it...
17:07:36raptori like that anonymousConnection
17:07:41Watusimotome too
17:08:37Watusimotook, so you'll be creating a full on connection just to send the motd?
17:09:04Watusimotowhy not just bstream->write(MOTD)?
17:09:27raptori could do that.. but here is already an m2c
17:09:32raptori could do that.. but there is already an m2c
17:09:46raptori'm open to ideas and major changes
17:09:54WatusimotoI guess I'm not sure if there would be any savings in doing that, anyway...
17:10:00raptorbecause right now, the connection doesn't terminate
17:11:28Watusimotoyou'll need rename setBasicConnection(), obviously
17:12:05raptoryes, done just now
17:12:38raptori guess i'm wondering if there is a better way than just toggling a flag on the MasterServerConnection class..
17:14:21Watusimototo do what, track if it's anon connection?
17:14:52raptorwell, no, it's just that our current implementation of having a master connection is to make it persistent
17:15:04raptorso, if i start a basic connection, it's persistent
17:15:31raptorand i'll have to explicitly close it somehow
17:15:38Watusimotowell, the purpose of the anon connection is to get the motd and go home, right?
17:15:54Watusimoto(and maybe get some server data, who knows(
17:16:10raptorright, and maybe anything in the future..
17:17:02Watusimotois there any purpose for client ot be connected to master besides on the join menu?
17:17:16Watusimotoand validating name/pw?
17:18:20raptorhost game, and lobby chat
17:19:08raptorour current method of connecting to master is in CLientGame::idle... constantly checking to make sure we have a connection
17:23:17Watusimotoyeah, I'm just wondering if that's really the best model
17:23:29raptorexactly...
17:23:45Watusimotowhen you host game, you are no longer a client
17:23:49raptori was hoping to avoid you having to dive too deep
17:24:05raptormaster sees clients as clients and game servers as clients
17:24:11Watusimotomaybe you won't have to; just trying to understand what we're really trying to do here
17:24:23Watusimotobecause it ties in with the UI conversation we were having yesterday
17:24:55Watusimotowhat do you think about getting rid of F5 chat from the main menu
17:25:03Watusimotoand only allowing it from the join screen
17:25:17raptorit's currently allow in UIGame and UIEditor, too
17:25:37Watusimotowhat if we got it out of the editor as well?
17:26:00Watusimotowhere I'm going with this is perhaps client could make persistent connection to master only when entering the join menu
17:26:08raptorwe could... this is shifting the paradigm of the game always being connected
17:26:10Watusimotothat would let us do the user validation there
17:27:18Watusimotoif the user enters a name/pw earlier, like from options menu, we could validate then and just keep the connection open
17:27:42Watusimotoso join would check if the connection exists, and create one if it is missing
17:28:11Watusimotobut... 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:26Watusimotothat would require a connection to master, and also a validated username/pw
17:29:20Watusimotobut, 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:38raptoryes... 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:38raptorgame run time is tied with the credentialed connection to master - if you want to change credentials you have to exit the game
17:30:51raptori mean to say - that's what we are doing now...
17:31:00raptorwe will be changing that, for better or worse
17:32:41Watusimotowhat is game run time? a stat?
17:32:56raptorjust runnign the game... maybe ignore that last statement
17:33:11Watusimotook
17:34:47YoshiSmbraptor.
17:35:19raptorhi YoshiSmb
17:36:25YoshiSmbwant a quick match on the server?
17:36:38raptorsorry, i'm working on some coding right now
17:36:50YoshiSmbok.
17:36:53YoshiSmbAny way. Good day!
17:37:25raptorWatusimoto: i think you changed the line endings of my Makefile, now it hates me
17:37:52Watusimotoargh!
17:38:04Watusimotocould it be not line endigns, but rather a tabs to space conversion?
17:38:45raptoroh wait - it looks like you added a backslash accidentally
17:39:25raptorok fixed
17:39:47BFLogBot Commit: 16f4ef6de191 | Author: buckyballreaction | Message: Fix accidental Makefile change
17:41:47Watusimotothere's another change coming...
17:42:01Watusimotobut if the linenedings and such are ok, it should be fine
17:42:21raptorok
17:43:04raptorwould you want to include the: #include <math.h>
17:43:11raptorin the MathUtils.h instead of the .cpp?
17:43:30raptor(that would some compile errors in Linux)
17:43:35raptor*would fix
17:50:22BFLogBot Commit: 4df26d873c09 | Author: watusimoto | Message: Remove temp code
17:50:23BFLogBot Commit: a9e2bac99c77 | Author: watusimoto | Message: Welcome to the world, Mr. RenderUtils!
17:50:25BFLogBot Commit: 0b1eed9144b9 | Author: watusimoto | Message: Merge
17:50:40Watusimotoah, yes, I think so
17:51:07Watusimotomy 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:20Watusimotooh wait
17:51:23WatusimotoI misunderstood
17:51:32Watusimotoyes, do what you need to do to fix
17:51:41raptorok
17:52:58Watusimotoso 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:05raptoroh yay
17:53:08Watusimotook, dinner time
17:53:11raptorok
17:53:15Watusimotoback later
17:58:56Watusimoto Quit (Ping timeout: 260 seconds)
18:06:33BFLogBot Commit: f8c6580de040 | Author: buckyballreaction | Message: Fix compiling in Linux
18:06:34BFLogBot Commit: a0c4546c538b | Author: buckyballreaction | Message: Performance improvements with radian/degree conversions
18:08:05BFLogBot Commit: d868dfaebc3d | Author: buckyballreaction | Message: Minor fix to FloatInverse360
18:15:00LordDVG has joined
18:19:03BFLogBot Commit: 9b0a9d609b36 | Author: buckyballreaction | Message: Use new degrees/radians methods in other classes for performance boost
18:21:29kaen has joined
19:21:55sam686 has joined
19:21:56ChanServ sets mode +v sam686
19:39:06LordDVG Quit (Quit: Leaving)
19:54:27YoshiSmb Quit (Ping timeout: 245 seconds)
20:37:00YoshiSmb has joined
21:09:48YoshiSmb_ has joined
21:11:21YoshiSmb Quit (Ping timeout: 248 seconds)
21:11:44YoshiSmb_ is now known as YoshiSmb
21:17:26kaenooookay.
21:18:31kaenso 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:16kaenit needs (at least, I've stopped looking) a game, a position, and a radius of the ship
21:19:26kaenfor most of the functions
21:19:51kaenand declaring MoveObject as a virtual base class of Pather causes covariant return types in Robot
21:19:59kaen*invalid covariant return types
21:20:28kaenfrom Ship to Robot which is based indirectly on MoveObject in that case
21:20:55kaenand even declaring Ship as a virtual parent class of Pather causes errors in building TNL
21:21:06kaenbecause of SafePtr's templatey stuff
21:21:46kaenso, no way to inherit the dependencies, and ridiculous function signatures with injection.
21:23:36kaenhmm... unless maybe I can have a pointer to the pathing object within the Pather mixin rather than this crazy inheritance-based idea
21:24:10kaenthank you, silence of an empty channel! you've once again solved my difficult programming dilemma.
21:24:36YoshiSmband?
21:24:44YoshiSmbHi kaen
21:25:00YoshiSmbthe other's i think they are idle
21:36:21Watusimoto has joined
21:36:58YoshiSmbhi watusimoto
21:37:11Watusimotohi all
21:37:21YoshiSmbthey are idle. exept me.
21:37:38YoshiSmbso. Welcome back to the irc bitfighter chat.
21:38:59YoshiSmbwatusimoto. wanna hear what Kaen say before you entered?
21:39:06Watusimotosure
21:39:26YoshiSmbok.
21:39:28YoshiSmbhere is it
21:39:29YoshiSmb<kaen> ooookay.
21:39:29YoshiSmb<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:29YoshiSmb<kaen> it needs (at least, I've stopped looking) a game, a position, and a radius of the ship
21:39:29YoshiSmb<kaen> for most of the functions
21:39:29YoshiSmb<kaen> and declaring MoveObject as a virtual base class of Pather causes covariant return types in Robot
21:39:29YoshiSmb<kaen> *invalid covariant return types
21:39:30YoshiSmb<kaen> from Ship to Robot which is based indirectly on MoveObject in that case
21:39:30YoshiSmb<kaen> and even declaring Ship as a virtual parent class of Pather causes errors in building TNL
21:39:31YoshiSmb<kaen> because of SafePtr's templatey stuff
21:39:31YoshiSmb<kaen> so, no way to inherit the dependencies, and ridiculous function signatures with injection.
21:39:32YoshiSmb<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:33YoshiSmb<kaen> thank you, silence of an empty channel! you've once again solved my difficult programming dilemma.
21:39:45YoshiSmbthat all
21:39:46raptorhi
21:39:51YoshiSmbhi raptor
21:40:08raptorYoshiSmb: we have an IRC log..
21:40:16YoshiSmbtrue
21:41:04kaen Quit (Ping timeout: 260 seconds)
21:41:08YoshiSmbim playing the next game http://sc2.sourceforge.net/
21:41:17YoshiSmbThe Ur-quan Master
21:42:36YoshiSmbThe game: The Ur-quan Master is for Windows , MacOS X & Linux (Ubuntu,Debian,Gentoo,Fedora & Mandriva Linux)
21:42:57raptorhmm looks like it needs to be packages for openSUSE!
21:43:31YoshiSmbwho's kaen say?
22:01:06WatusimotoYoshiSmb: looks like you've been playing a lot!
22:01:13Watusimoto3rd top player this week, and last
22:04:54Watusimotosigh... back to the running bug list
22:07:12YoshiSmbheeeheee.
22:12:39sam686hi
22:13:50Darrel Quit (Quit: Leaving)
22:14:48Watusimotohi
22:14:58Watusimotodoes anyone know what kaen was trying to do?
22:15:02raptorhi
22:15:04raptorsort of
22:15:07Watusimotowith the pather class?
22:15:21raptorhe is building his own gametype and wanting to improve on the path finding
22:15:47Watusimotohe wanted to get it out of robot? or have other things do pathfinding as well?
22:16:04raptoror at least create more methods that use the path finding so he can arbitrarily control various units
22:16:35WatusimotoI'm not sure I understand that
22:18:03raptorlike take a robot and always make it follow a specific path
22:22:59raptorargh, brb
22:22:59raptor Quit ()
22:30:52raptor has joined
22:30:52ChanServ sets mode +o raptor
22:35:17Watusimotoraptor: so he wanted to have the gametype direct the bots, as opposed to a script?
22:38:04BFLogBot Commit: 80a8278d7750 | Author: watusimoto | Message: Remove dead code
22:38:06BFLogBot Commit: abb411c53352 | Author: watusimoto | Message: Make these constants static
22:38:07BFLogBot Commit: a6bfe3ad337c | Author: watusimoto | Message: Fix bug in renderUnboxedMessageBox that misclaculated box size if message had embedded empty lines
22:38:09BFLogBot 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:10BFLogBot Commit: be0ada5fd374 | Author: watusimoto | Message: Merge
22:43:02raptorWatusimoto: i think yes... not sure exactly
22:43:18raptorhe hasn't given away much about what he's doing...
22:43:30Watusimotook; was looking at your performance enhancement with d->r conversions
22:43:33Watusimotowhat was that about?
22:43:47WatusimotoI mean, where did the enhancement come in?
22:44:10raptorah, removal of divide by float
22:44:29Watusimotothose were 2 constants, right?
22:44:47raptorpreviously it was tau / 360
22:44:52WatusimotoI'd bet a lot that the compiler optimized that divide away
22:44:56raptornow it is tau * inverse360
22:45:06raptorit doesn't
22:45:15Watusimotoit doesn't?
22:45:19BFLogBot Commit: 066ce6318bc9 | Author: sam8641 | Message: Fix laggy forcefield, fix possible client side crash, remove useless code, update my project
22:45:20BFLogBot Commit: 6643ac0eae48 | Author: sam8641 | Message: This fixes spybug scoping ships too early that can crash clients.
22:45:22BFLogBot Commit: 465347867788 | Author: sam8641 | Message: Go back to version 018 - Want my scoping fix on existing 018 server.
22:45:23BFLogBot Commit: 78af7ece3f26 | Author: sam8641 | Message: Merge
22:45:28raptorcompilers don't optimize dividing by floats
22:45:40sam686sorry for going back to 018... but there was barely nothing changed that breaks 018 compatibility..
22:45:42Watusimotothey don't?
22:45:48raptor*maybe* divide by integers...
22:45:54sam686also want to update my server with the scoping fix..
22:46:02Watusimotosam686: ok
22:46:12raptorit's the whole reason there is floatInverse2Pi
22:46:18raptorso you can multiply a float
22:46:22raptorinstead of divide
22:46:27Watusimotosam686: but I might have to break it again to fix some of the bugs on the buglist
22:46:54sam686nothing seems broken as of my latest merge..
22:47:37sam686also did one fix on bug list that can be crossed off now..
22:47:54sam686bug number 36 fixed..
22:47:58raptoroh yeah, my changes merged... i get more and more scared when you both commit stuff...
22:50:54Watusimotosam686: oh, excellent... I was going to to do that one next. I'll remove it from the list
22:51:32Watusimotoso that's two items off the list in the last 10 minutes
22:52:06Watusimotounfortunately, the rest of the items are starting to really suck
22:53:07sam686i 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:10sam686though, the master doesn't check to make sure all names is only there at most once in stats...
22:54:20Watusimotoyou don't know, or you know it;s not a problem?
22:54:42Watusimotohell, lets find out
22:55:05sam686its 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:36Watusimotoah, ok. then I'll cross that one off too
22:55:40sam686http://bitfighter.org/stats/ oh and there is bobdaduck.0
22:56:06Watusimotobut no bobdaduck
22:56:34Watusimotowhy is he underlined?
22:56:44sam686wonder if it would be better to auto kick duplicate authenticated names (preferably the one existing in game that may be lagged out)
22:56:53Watusimotocan a .0 player be registered? I suppose so
22:57:09WatusimotoMaybe rather than auto kick, we could auto correct
22:57:11sam686maybe its because the master doesn't check everything..
22:57:35Watusimotowhen bobdaduck.o is playing, and bobdaduck becomes available, we could reassign his name to bobdaduck
22:57:49sam686auto-correct can result of duplicate names that wasn't before...
22:58:29sam686for example, bobdaduck.0 and bobdaduck.1 both underlined but no bobdaduck..
22:59:05Watusimotomaybe then only the .0 would autocorrect
22:59:20sam686maybe auto rename in server side, yes..
22:59:54WatusimotoI think that would be better than leaving them at .0 until they restart
23:01:16Watusimotowow -- someone played a game with 38 elizabots
23:01:35Watusimotoon the POOP FART FART FART server
23:01:50WatusimotoYoshiSmb was there
23:02:11YoshiSmbyea.
23:02:34YoshiSmband some one use the Elizabot to say me. hmmmm. something. (i forgot it)
23:05:00raptori'm having our airducts cleaned right now...
23:05:08raptorhope to find all of our spoons...
23:05:39kaen has joined
23:06:06Watusimotoha
23:06:14YoshiSmbP.S. bitfighter.org/ (irclogs or stats) there is another more to put)
23:06:34kaenstats isn't fit to be linked to yet
23:06:36Watusimotowe did that once... big truck with vacuum bags and some sort of duct agitator?
23:06:51Watusimotohi kaen
23:06:55kaenhi Watusimoto
23:07:08WatusimotoI was trying to understand what you were doing with the pathfinding thing and why it was so difficult
23:08:11Watusimotowere you trying to make pathfinding work for a broader array of objects that just bots?
23:09:28kaenyes.
23:09:32kaenvia a mixin
23:09:41kaenbut the mixin has some dependencies
23:09:56kaenand using virtual base classes won't work because of the template stuff in SafePtr
23:10:20raptori still don't know what you mean by 'mixin' other than country dancing..
23:10:25kaenPathing depends on the game's object db, the position of the ship, it's radius
23:10:36sam686latest 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:37Watusimotoraptor: like m&ms in icecream!
23:11:03kaena class that provides a certain functionality to be inherited or just reused by a subclass, while not meant for instantiation
23:11:15kaena Pather mixin
23:11:25Watusimotokaen: there's probably another factor to consider too -- multiple zonesets will likely need to be built to accomodate multiple diameter objects
23:11:35kaenooph
23:11:38kaenindeed
23:12:00kaenbut one static zoneset per object size would suit, and there is only one object size per class
23:12:09Watusimotoyes
23:12:13kaenbut that's further down the road.
23:12:14raptorm&ms + ice cream... broken teeth?
23:12:24Watusimotobig tummy
23:12:42Watusimotokaen: it's just that it;s an expensive operation
23:12:58kaenI should only need to path once on a static level I believe
23:13:03Watusimotobut there might be some optimizations possible if you are building two sets -- maybe partial results could be cached
23:13:14kaenbecause the AI mindlessly swarms to a single given point
23:13:19kaenuntil it just sees a player
23:13:25Watusimotothe pathfinding isn;t too bad
23:13:32Watusimotoanyway
23:13:57Watusimotoso the mixin approach just grew too ugly
23:14:00kaengenerating the zonesets is the expensive part then? that makes sense really
23:14:11Watusimotoraptor: we use a mixin approach somewhere in bf, I think
23:14:29Watusimotokaen: it's one of the expensive parts :-)
23:14:40Watusimotothough it goes pretty fast now
23:15:05kaenthe other approach I came up with is just keeping an object pointer (like mSelf) in the Pather "mixin"
23:15:15Watusimotowe use this awesome library that's like 80000 lines of C code that makes triangles out of anything
23:15:37raptorugh Triangle
23:16:09kaenI am honestly mystified by the pathfinding and zone making stuff. I wouldn't hope to understand it beyond the interface...
23:16:23raptorme too!
23:16:58Watusimotothe pathfinding is a pretty straightforward applicaiton of a well known algorithm (A-star)
23:17:22kaenI do understand Astar well enough; I've written a couple of implementations for stuff
23:17:31Watusimotothe zone generation is voodoo black magic that none of us understand, though we wrote the thing from scratch
23:17:39kaenwow
23:17:42Watusimotowell, so that;s the pathf inding then
23:18:15Watusimotoso, as an example, you might want testitems to be able to go from point A to point B through a level
23:18:23raptorcrazy!
23:18:32kaenpretty much exactly what I'm doing
23:18:50kaen(trying to do)
23:18:53Watusimotook... let me look at the robot code and see if any great ideas pop up
23:20:12raptoralso, i may or may not have told kaen about the Circle object...
23:20:50Watusimotoit doesn;t really do pathfinding...
23:21:01kaenThe-Class-Which-Shall-Not-Be-Named
23:21:12Watusimotobut one thing we did learn with circle is that having a lot of objects kills performance
23:21:28Watusimotoor at least a lot of objects in one aera
23:21:40Watusimoto(clients only get updates of things in their vicinity)
23:21:59Watusimotonot sure if that is at all relevant
23:22:22kaenabsolutely; it is one of things I intended to test
23:22:49kaenI keep fatfingering this semicolon key. I promise I'm not such pedantic grammarian.
23:24:03Watusimotowell, one possibility is to just give every moveObject or moveItem path finding abilitiies as a native thing, rather than as a mixin
23:24:17kaenI was trying to avoid that
23:25:06kaenbut I guess it really wouldn't be so bad...
23:25:46Watusimotoso what methods do you think you need?
23:25:47kaennot as bad as mixin with a mSelf member, or functions with a half dozen arguments
23:26:12WatusimotogetWaypoint for sure -- that's where your objects will be headed towards
23:27:56Watusimotook, 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:35kaenI think that's the best solution.
23:29:55Watusimotoit kind of makes sense
23:30:01Watusimotothere is just one level
23:30:19Watusimotoand therefore one set of zones (per object radius)
23:30:59kaenper-radius zonemaps are starting to sound pretty cool to me, btw
23:31:15kaenlike smaller swarmers sneaking in through little holes that the big ones can't fit through.
23:31:20Watusimoto(they solve the problem of fitting through tight areas)
23:31:38kaenmakes sense.
23:31:41Watusimotoand 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:50Watusimotoand ask for
23:32:24Watusimotothe FlightController can cache flight plans if they are likelty to be repeated
23:33:37kaentrue, but for this experiment I won't need such a thing. the path could just be cached in the GameType
23:34:18WatusimotoI think for robots, there is no caching
23:34:49Watusimotothough we do have this... cachedBotFlightPlans
23:34:59Watusimotowhich suggests my previous statement was false
23:35:31WatusimotoBots do cache them already
23:35:50kaengroovy
23:36:02kaenwow I imagine that cache can get pretty big
23:36:27kaenmaybe not. I don't know how many zones make up a usual level
23:36:37WatusimotoI was just checking if there are any limits on growth
23:37:08Watusimotoremember that a lot of what bots do is fly from A to B and back
23:37:15raptori added teh bot cache
23:37:24raptorand i don't now remember how it works
23:37:26Watusimotothey may get in a skirmish along the way, but they don;t need pathfinding for that
23:37:49raptorbut, i remember performance testing it and it is faster than using A* over and over
23:37:55Watusimotoit basically maps a zone pair to a set of points (the flight plan)
23:37:58YoshiSmb Quit ()
23:38:08Watusimotowhich is exactly what you'd expect
23:38:13YoshiSmb has joined
23:38:36Watusimotono real upper limit on size
23:40:23Watusimotogoing to play in a largish level with several bots and see how big it gets
23:40:34raptorctf1!
23:40:39Watusimotook
23:40:40raptorwas my test map...
23:40:43raptorwith 50 bots
23:40:46raptori remember
23:40:48WatusimotoI;ll play with 8 bots
23:40:54raptorbut i don't remember the size the cache got..
23:40:58raptormaybe 1MB?
23:41:03Watusimotowhat is your prediction for the number of cached flightplans?
23:41:12raptor10000
23:41:24Watusimotook, I;ll bet 200
23:41:33raptoroh wait... 8 bots..
23:41:35raptorhmm
23:41:45Watusimotothey'll be filying all over fighting one another
23:41:49Watusimotobig level 2 teams
23:41:52raptorok, i reduce mine to 1000
23:41:57Watusimoto:-)
23:42:11kaenI'll say 5000 then
23:42:39Watusimotosam686?
23:43:40Watusimotophooey, I have to find ctf1 somewhere
23:44:04kaenactually 1000 sounds pretty close to me
23:44:30Watusimotogot it
23:44:43kaenhighlight me when you finish :)
23:44:57YoshiSmbI forgot something to tell you raptor,Watusimoto & Sam686!
23:46:20sam686hi
23:46:24YoshiSmbin rabbit the bot's shot betwen them instead of try to co-op.
23:47:51Watusimotoafter 2 mins we're up to 545
23:47:57Watusimoto587
23:49:11Watusimoto790
23:49:15Watusimoto802
23:50:49Watusimoto975 when my team won
23:51:19Watusimotoso if each flightplan is what... 50 points?
23:51:56raptori win!
23:52:04Watusimotothen that's 100 floats at 4 bytes each... 400 bytes * 1000 plans that's... 400000 bytes or 400K
23:52:05raptorunless overshooting disqualifies...
23:52:22Watusimotosorry, did I write 975? I meant 200
23:52:29Watusimototalk about fat fingers!
23:52:32raptorha!
23:53:04raptor400K for the cost of ?? 50
23:53:07raptor% cpu reduction?
23:53:18Watusimoto400k isn't bad
23:53:36Watusimotohell, even 4MB isn't bad
23:54:54Watusimotobut we could put an upper bounds on the number of cached items, and cycle out the oldest ones
23:55:24Watusimotoor not cache really small ones (on the theory that they're cheapest to compute)
23:55:30sam686something is wrong with levels with spybugs, destroy spybugs with bullets and crash..
23:55:32Watusimotoor... pick your favorite strategy
23:55:46Watusimotowill test
23:56:25WatusimotoI created a leve with 2 spybugs, one blue, one red
23:56:32WatusimotoI killed both with bullets
23:56:34Watusimotono crash
23:56:47sam686it crashes soon after fineObjects_fast(SpyBugsTypeNumber) with pointers going to invalid objects..
23:57:07Watusimotoreally?
23:57:46Watusimotoif that's true, then a spybug is dying but not being removed from the database
23:58:10sam686do with with hundreds of spybugs and it will eventually crash on repeaded level restart and shooting at spybugs
23:58:19Watusimotogot it -- crash!
23:58:32Watusimotoit probably requires 2
23:58:48Watusimotoone to trigger the fault, the second to use the code that gets broken
23:59:26Watusimotoyup
23:59:42raptori remember it took 3-5 ms for cache look up, but 20-80 for A*...
23:59:54Watusimotoafter killing, findObjects_fast returns 4 objects

Index Search ←Prev date Next date→

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