#bitfighter IRC Log

Index Search ←Prev date Next date→

IRC Log for 2013-01-06

Timestamps are in GMT/BST.

00:00:02Watusimotoeven though one is dead
00:00:24Watusimotoso probably it's not being removed from the db before it's being accessed
00:00:46Watusimotoraptor: I did not do a count of how many times the cache was accessed
00:00:49sam686it could be BfObject::deleteObject changing type number
00:01:39sam686and then it thinks not to remove the mSpyBugs cause it is no longer SpyBugTypeNumber
00:01:45YoshiSmb_ has joined
00:01:53Watusimoto mGame->getGameObjDatabase()->findObjects(SpyBugTypeNumber)
00:01:57Watusimotooops!
00:02:01Watusimotowrong window!
00:02:36YoshiSmb Quit (Ping timeout: 272 seconds)
00:02:46YoshiSmb_ is now known as YoshiSmb
00:02:49Watusimotosam686: or a delayed delete
00:03:02Watusimotothough then the object would still be valid
00:03:09Watusimotoeven if exploded
00:03:38Watusimotolet me put a breakpoint in spybug destructor
00:03:47raptoroh kaen, cache test is over: 975 cached paths ~400K memory
00:04:06sam686the problem is delayed delete changing type number + GridDatabase::removeFromDatabase checking for specific type (deleteType is not Spybug type)
00:04:41Watusimotothe 400k is just a guess
00:04:56kaenI've been wondering about the delayed delete thing
00:04:59Watusimotoit assumes 50 points per path, which is a number I just made up
00:05:12kaenthose are the best kinds of numbers.
00:05:28kaenbut, is there a rule for the deletion delay to use?
00:05:31Watusimotodelayed delete is so you can rid yourself of an object but still have it stick around to do its explodey thing
00:05:35kaenI've seen 500 a lot
00:05:42kaenoh alright
00:05:52amgine1234567890 has joined
00:05:58kaenand just disable collision once it sholdn't physically exist right?
00:06:04Watusimotoexactly
00:06:13kaenis that just server side?
00:06:17raptorexplodey things are cool! especially teleporter...
00:06:26Watusimotommmm I think it;s mostly client side
00:06:37Watusimotoserver doesn't have explodey things
00:06:52Watusimotobut I'd have to look at the code to be sure
00:07:07kaenhmm alright
00:07:11amgine1234567890watissimo
00:07:15raptorair ducts are clean... loads of dust, colored pencils, old food, etc...
00:07:19amgine1234567890 did oyu see my cursor link
00:07:44kaenamgine1234567890 my friend, do you know what tab complete is?
00:08:21YoshiSmbServer: Super Bit Fighter Bros / Accepting arraged connection from IP:66.219.237.77:49501
00:09:09Watusimotohmmm.... spybug destructor calls remove from database
00:09:35Watusimotoamgine1234567890: ???
00:09:55amgine1234567890wattisimo a few days a go i made a bitfighter ship cursor i was wondering itf it would be possible to implement in game
00:10:20raptorhaha
00:11:04amgine1234567890what oyu said i could ask XD
00:11:37Watusimotoamgine1234567890: what is this cursor? do you ahve a screenshot or somethign?
00:13:03raptorhttp://www.filedropper.com/bfshipcursorbeta1
00:13:22raptor^^ that was it.. he made a bitfighter-themed cursor for windows
00:14:06Watusimotohow about a screenshot?
00:15:19amgine1234567890i dont know how actully the traditional print screen doesnt show the screen cursor
00:15:29Watusimotooh
00:15:33Watusimotogood point
00:15:42Watusimotook, I'll see it somehow
00:15:56raptorhere, i parsed it: http://sam6.25u.com/upload/1BF%20ship%20cursor%20beta%201.cur
00:17:25amgine1234567890ty raptor
00:18:41raptori just realized something...
00:18:41Watusimotosam686: you;re right
00:18:56raptori'm never going to learn all i want to before i die
00:19:05Watusimotothe typenumber is set to DeletedTypeNumber so the database doesn't remove it from the specialized lists
00:20:09Watusimotothat parsed file is just the sam as he upoaded, no?
00:20:14raptorthat probably sounded bad... what i meant: i want to learn lots and lots about different subjects but i may be unable...
00:20:29raptorWatusimoto: yes, can you not view it normally?
00:20:47Watusimotowhat do you mean by normally?
00:20:50raptormy leet Linux system can...
00:20:59Watusimotoah, like a graphics file?
00:21:07raptoryes
00:21:39Watusimotoit opens in notepad
00:21:43raptorhaha
00:21:56Watusimotobut I'm sure I can read it
00:22:14Watusimotothere we go, DirectoryOpus displays it
00:22:36raptorwhat on earth is directoryopus..
00:22:39WatusimotoI think it would just be confusing to have that in the game
00:22:48YoshiSmbkaen
00:22:55Watusimotodopus is the awesomest windows file manager
00:23:04Watusimotoreplacement for explorer
00:23:14kaenYoshiSmb
00:23:26Watusimotohttp://www.gpsoft.com.au/
00:23:39raptorsupports tabs?
00:23:51YoshiSmbwhy you joined the server 190.96.113.66
00:24:04Watusimotoof course
00:24:12Watusimotothough I don;t use them
00:24:21kaenbecause I thought people were playing.
00:24:25raptorit looks a bit like konqueror in KDE3
00:24:33YoshiSmbwell. i was there.
00:24:36kaenI saw that
00:24:41YoshiSmbwhy you dont play a little there?
00:24:59kaenbecause you were idle
00:25:01kaensilly.
00:25:14YoshiSmbsorry. i was doing something else
00:25:24raptori just started blizzard control on the contest server... the levelgen didn't run
00:25:33raptorupon /restart, it ran
00:25:44raptormaybe levelgens don't load coming out of suspend?
00:29:33Watusimotosam686: I think I have a fix
00:29:57sam686ok.
00:30:39sam686though I made a stupid fix that only changes BfObject::deleteObject (remove from database, change type, add to database)
00:31:40WatusimotoMy fix is to save the typenumber before setting it to deleted, then restoring it in the bfObject destructor so the database can find it
00:33:50sam686I will just use http://sam6.25u.com/upload/text1301/130105_18-01-16.txt for my server (for now)
00:35:40YoshiSmbkaen i was cheking my port of my server
00:35:54kaenI've got work on some stuff for now. sorry bud
00:36:05sam686... minus that extra if(mGame) on my fix..
00:36:07YoshiSmbsam686 what udp i need to use to allow the ping of my server?
00:36:08YoshiSmbok
00:36:15YoshiSmbany way good game kaen
00:36:21sam686default is UDP 28000
00:36:31Watusimotosam686: that might cause expllding objects to not render
00:36:46YoshiSmbok
00:36:49YoshiSmbthanks sam
00:37:00Watusimotoif you remove from the database early, they won't be found at render time
00:37:05Watusimotomayeb
00:37:15sam686it don't work if it is stayed removed from database..
00:37:43sam686but, removing and adding the same object has an effect of not being un-scoped by TNL at all..
00:38:31Watusimotoha, sorry, didn;t see you were adding it back
00:38:33amgine1234567890anyways back oto the cursor discusiion
00:39:00Watusimotoyeah, that looks pretty hacky! :-)
00:39:29sam686at least that will prevent my server from crashing with this hack..
00:39:34Watusimotoyes
00:39:42amgine1234567890lol what hack?
00:39:42Watusimotomy way isn't totally clean either
00:39:58Watusimotothis one: http://sam6.25u.com/upload/text1301/130105_18-01-16.txt
00:41:43sam686edited the text on that link (press F5 on this link) (removed extra if(!mGame) )
00:42:08amgine1234567890ok maybe im being stupid but i dont see the add curves commands in the editor instrucitons
00:47:19raptorlook harder - page 5
00:48:59kaenthese doxygen call graphs are delicious
00:49:47YoshiSmbsome help. i need to configure my udp for the server im hosting now.
00:52:03BFLogBot Commit: 43faa45cc12e | Author: watusimoto | Message: Whitespace
00:52:05BFLogBot Commit: e4a5e9e26a70 | Author: watusimoto | Message: Hacky fix to problem of database not removing certain objects after they have been deleted
00:52:07BFLogBot Commit: 95f94df75665 | Author: watusimoto | Message: Streamline a little
00:52:08BFLogBot Commit: cde885e085bc | Author: watusimoto | Message: Merge
00:52:45WatusimotoYoshiSmb: not sure what you mean -- you should not need to do any firewall config for hosting
00:53:03YoshiSmbto allow the client's to ping my server
00:53:15Watusimotois your server up now?
00:53:25YoshiSmbyes
00:53:35YoshiSmbim configurating it.
00:53:48YoshiSmbso i need to restart it
00:54:04raptorhacky fix!
00:54:17Watusimotoyou might need to open port 28000
00:54:28Watusimotobut I don't think so
00:56:54amgine1234567890lol my cursor idea got dropeed XD oh well.
00:57:14YoshiSmbIP 190 . 96 . 113 . 66 and instead of showing port 28000 show a random port
01:00:41Watusimotothe first server you host will go on port 28000
01:00:44WatusimotoI think
01:16:33amgine1234567890lol what heppened about my cursoir XD
01:33:12amgine1234567890 Quit (Ping timeout: 245 seconds)
02:30:15raptorquestion for anyone still around
02:30:56raptorif i set up a connection from a client to master, can i disconnect that connection on the master side?
02:31:00raptorwith TNL?
02:36:30Watusimoto Quit (Ping timeout: 272 seconds)
02:53:55sam686you could disconnect that connection from master side, but sometimes the client will only just auto-reconnect to master..
02:55:29sam686for server/client, either the server can disconnect the client (kick) or the client can disconnect from server (quit)
02:56:08sam686for master/client or server/client, same thing, (master can disconnect such as wrong username/password)
03:04:08raptorok thanks
03:22:36YoshiSmb Quit ()
03:43:18amgine1234567890 has joined
03:45:44amgine1234567890so any consesus on hte cursor idea
03:45:56amgine1234567890and sorry bout that my netowrk crashed
05:45:27bobdaduck has joined
05:46:52bobdaduckhaigaise
05:52:40bobdaduckbaiguise
05:52:58bobdaduck Quit (Quit: Page closed)
06:03:06raptorhi
06:03:58raptoramgine1234567890: i think watusimoto was of the same opinion I was - that the cursor doesn't really fit in-game. You may want to share it in the forums as a fun thing for desktop usage
06:18:07raptorwell good night all!
06:18:09raptor Quit ()
06:41:01amgine1234567890gtg all bye
06:41:05amgine1234567890 Quit (Quit: Page closed)
06:54:29Fordcars has joined
07:36:53Darrel has joined
07:48:37Fordcars Quit (Ping timeout: 245 seconds)
07:53:23Darrel Quit (Read error: Connection reset by peer)
09:26:27LordDVG has joined
10:51:15Watusimoto has joined
13:59:49BFLogBot Commit: 7038a64868d6 | Author: watusimoto | Message: Comments
13:59:51BFLogBot Commit: 71b2e24cdb21 | Author: watusimoto | Message: Typo in comment
13:59:52BFLogBot Commit: 0439c7b9ee02 | Author: watusimoto | Message: Formatting
13:59:54BFLogBot Commit: ca64c37514b5 | Author: watusimoto | Message: Formatting
13:59:55BFLogBot Commit: fdcfac0ed421 | Author: watusimoto | Message: Formatting
13:59:59BFLogBot Commit: d3ad8aab70a7 | Author: watusimoto | Message: Formatting, comments
14:00:01BFLogBot Commit: 38b8ee6c6994 | Author: watusimoto | Message: Send flag to master signifying whether a server is a debug build or not. Master currently makes no use of this info.
14:00:02BFLogBot Commit: 1cd5e8c711c0 | Author: watusimoto | Message: Stop looking after we find the client. Is it safe to assume that this list will not have repeated entries? If not, this will need to be reverted.
14:00:04BFLogBot Commit: f0fa6a5bba4b | Author: watusimoto | Message: Formatting
14:00:05BFLogBot Commit: 669daf4f9055 | Author: watusimoto | Message: Formatting
14:00:07BFLogBot Commit: 962758fd51e1 | Author: watusimoto | Message: Formatting, trivial
14:00:08BFLogBot Commit: d016b14b856c | Author: watusimoto | Message: Formatting
14:00:10BFLogBot Commit: ba97d252d8e4 | Author: watusimoto | Message: Formatting, minor code changes for readability, comments
14:00:11BFLogBot Commit: 9ebb9023721e | Author: watusimoto | Message: Formatting
14:00:13BFLogBot Commit: 1b4e8dcf3547 | Author: watusimoto | Message: Disambiguate stoi, needed on VC++ 10
14:00:14BFLogBot Commit: 26a32107cc3e | Author: watusimoto | Message: Formatting
14:00:16BFLogBot Commit: 475171e88fc7 | Author: watusimoto | Message: Include boost in VC++ project --> still doesn't build on VC++, linker errors
14:00:18BFLogBot Commit: a637ca4a19f1 | Author: watusimoto | Message: Formatting
14:00:19BFLogBot Commit: 75c457a78ead | Author: watusimoto | Message: Formatting
14:00:21BFLogBot Commit: c113a23d2e57 | Author: watusimoto | Message: Formatting
14:00:22BFLogBot Commit: 1f6bdd9cfba9 | Author: watusimoto | Message: Add support for checking whether client is running in debug mode, and, if so, excludes them from the json feed. This requires sending an extra flag while connecting to the master. The code for doing this has been commented out, and marked with "<<<< raptor >>>>" because I want to confer with raptor about his changes to the master server before we enable this. Without uncommenting these two lines, the code *should* be fully compatible with the existing master protocols. Note that I have compi
15:15:44YoshiSmb has joined
15:24:29Watusimoto Quit (Ping timeout: 260 seconds)
15:37:58YoshiSmb_ has joined
15:40:39YoshiSmb Quit (Ping timeout: 240 seconds)
15:44:13Watusimoto has joined
15:52:10YoshiSmb_ is now known as YoshiSmb
16:06:51BFLogBot Commit: f0c0e58a4485 | Author: watusimoto | Message: Rejiggered most recent checkin a little -- will now send 8 flags instead of 1 (so we can add more in the future without changing the protocol). Also made both client/master start sending/receiving after we tick up the MASTER_PROTOCOL_VERSION to 6. Still untested.
16:09:54raptor has joined
16:09:54ChanServ sets mode +o raptor
16:10:47raptorgood day
16:10:50YoshiSmb Quit (Ping timeout: 248 seconds)
16:13:08raptormaster changes to merge...
16:17:59raptorok merged..
16:28:42raptorWatusimoto: sam686 has master building in his vcproj file i think, if you're having trouble..
16:29:40Watusimotohi
16:29:53Watusimotohe's using a different version of vc++, I think
16:29:55raptorhi, i can check out the debug changes...
16:34:49Watusimotook
16:35:05WatusimotoI think everything is ready to go once we increment the MASTER_PROTOCOL_VERSION
16:35:32raptoryes - i had actually already done that with my anonymous protocol changes...
16:35:57raptorso there will be a check in two different places in MasterSErverConnection::readConnectRequest()
16:37:55raptorWatusimoto: with your changes, the JSON has:
16:37:57raptor"players": ["raptor"],
16:38:04raptor"playerCount": 0
16:38:20Watusimotonow... that's strange
16:38:29WatusimotoI assume you are playing with debug engabled
16:38:46Watusimotoso, if anything, I would expect playerCount to be 1 with an empty list
16:39:07raptoryes debug enables, connecting with non-debug client now...
16:39:43raptorok, so i connected with an 018 client: "players": ["raptor2", "raptor"],
16:40:03raptor"playerCount": 0
16:40:22raptortwo clients connected 019 debug, 018 release
16:40:59Watusimotook, I see why playerCount is wrong, but I don;t see how it is 0
16:41:08Watusimotooh wait
16:41:10Watusimotoyes I do
16:41:21Watusimotoit is the sum of all players connected to any registered servers
16:41:38Watusimotoand if your server is running in debug mode, it is not listed
16:41:51Watusimotoso the total number of players connected to them is 0
16:41:53raptorjust server? how about the player itself?
16:41:57Watusimotook
16:42:07raptorwait wait
16:42:16raptorwhat are we trying to accomplish with this?
16:42:20Watusimotoand raptor is not flagging itself as a debug mode client, so player is being listed
16:42:50raptori thought it was, to not show player names in the JSON if they are connected via debug build
16:43:00Watusimotoexactly
16:43:08Watusimotoand that's what's happening
16:43:08raptori figured we'd still show servers, that way we can test with each other...
16:43:20Watusimotoyou can still see the server on the join menu
16:43:26Watusimotoit's just not listed in the json feed
16:43:34raptorok, that's fine
16:43:36Watusimotothis is only about the json feed
16:43:38Watusimotonothing else
16:43:42raptorso... am i doing something wrong?
16:43:52Watusimotono, I think it is working properly
16:44:09WatusimotoplayerCount = 0 because there aer no non-debug servers with players
16:44:23Watusimotoplayers: raptor because that one is not a debug client
16:44:32raptorit was compiled with TNL_DEBUG
16:44:40raptorfull recompile
16:44:45Watusimotono
16:44:50Watusimotoraptor was a 018 client
16:45:03Watusimotoraptor2 was debug client, did not show up in list
16:45:06raptori am testing on my local master
16:45:32raptori will connect again..
16:46:15Watusimoto[[[ motivation for this: when people start using these player notifiers that we have (one for windows, one for mint), it is extrememly annoying to see test servers turning on and off ]]]
16:46:32raptoryes, i fully support this endeavor
16:46:34raptorok
16:46:41raptornow i see in the JSON: "players": ["raptor_debug_019", "raptor_release_018"],
16:46:55Watusimotoare you using a new master build?
16:46:58raptoryes
16:47:12raptori just compiled everything fresh at tip
16:47:15Watusimotoand new client build
16:47:17Watusimotoobviously
16:47:19raptoryes full recompile
16:48:39Watusimotoin master.cpp, line 615, you'll see this line:
16:48:47Watusimotoif(client->mIsDebugClient)
16:49:07Watusimototry putting a printf statement in that if clause to see if that is being triggered... though it probably isn't
16:49:31Watusimotoor, maybe in master.cpp line 1217
16:49:33Watusimotother is this:
16:49:43Watusimoto mIsDebugClient = flags & ClientDebugModeFlag;
16:49:47Watusimotomaybe try printing flags there
16:50:23Watusimotooh, did you increase the MASTER_PROTOCOL version to 6?
16:51:04WatusimotoI left it at 5 to avoid breaking connections to the master until we got a new one up
16:52:18raptorlet me do that....
16:53:16Watusimotoif it was still at 5, that explains everything
16:53:32Watusimotoas it explicitly tests the versions to avoid breaking things
16:56:29raptorit works!
16:56:37raptorboth clients connected fine
16:56:49Watusimotoand the json looks good?
16:56:49raptorbut only 018 release showed up
16:56:53raptoryes
16:56:58Watusimotogood!
16:57:22WatusimotoI think we can push that out then to master
16:57:41WatusimotoI also included the possibility of 7 more cleint flags, though I have no idea what they would be
16:57:57raptorthe evil bit
16:58:02Watusimoto:-)
16:58:11raptorthe troll bit
16:58:36Watusimotomaybe a little bit
16:58:40Watusimotoor a tidbit
16:58:45raptorhaha
16:58:54raptorwant me to update the protocol?
16:59:01raptorand i can then push the change to master
16:59:08Watusimotoyes
16:59:14Watusimotodo you want do to that or shoud I?
16:59:46raptori can
16:59:57Watusimotoactually if you want to, you should because I'm in the middle of a big debug session
17:00:08raptorok
17:00:10Watusimototrying to fix the stupid timers
17:00:10raptorwill do now
17:01:42raptorWatusimoto: you reverted the version.h change? can i put it back to 019?
17:01:58Watusimotosam put it to 018
17:02:07raptoroh, ok, i put it back, then
17:02:07Watusimotothis does not need an upgrade to 019
17:02:16raptorwait wait -
17:02:19raptorwe're still on 018?
17:02:24Watusimotoapparently so!
17:02:30raptorwhen did that happen??
17:02:34Watusimotolast night
17:02:48raptori feel like the codebase has run away without me..
17:02:58WatusimotoI know the feeling :-)
17:03:51BFLogBot Commit: 3f33d038def8 | Author: buckyballreaction | Message: Update master protocol since testing client-debug changes were successful
17:04:44raptor Quit ()
17:04:54raptor has joined
17:04:54ChanServ sets mode +o raptor
17:05:04Watusimotothanks!!!
17:05:26raptorlet's see if that script still works..
17:11:40raptorok, master updated!
17:16:34Watusimotoexcellent
17:16:39Watusimotothanks for doing that
17:21:46raptorargh!
17:21:54raptor3 maps have the same number of votes...
17:25:49raptorWatusimoto: did you see that another patch was submitted for the /announce bit?
17:26:01Watusimotooh from donny?
17:26:03WatusimotoI did see it
17:26:04raptoryes
17:26:09WatusimotoI wanted to ask you about that
17:26:21Watusimotoit looks like an "inverse" patch, and wasn;t sure how to apply it
17:26:28raptoryes, let me reformat it...
17:26:34Watusimotois there a tool for that?
17:26:44Watusimotoor do you manually edit?
17:26:54raptornot really, just force apply it inversely, then make a new proper diff
17:27:19Watusimotook, not sure how that works, but whatever
17:30:04raptorthis patch is weird...
17:30:47raptorok Watusimoto, here is the fixed patch: http://sam6.25u.com/upload/donimicov-task-patch2-fixed.patch
17:30:54raptornow it's time for french toast...
17:31:06Watusimotolaters
17:43:21raptorok
17:43:37raptorso what am i going to do if there is a tie for level voting tomorrow?
17:45:32Watusimoto Quit (Ping timeout: 264 seconds)
18:18:54kaenfight to the death.
18:31:11LordDVG Quit (Remote host closed the connection)
18:36:11raptorinteresting proposal...
18:44:56Watusimoto has joined
19:07:39Watusimotomy reply to donny mitsov:
19:07:40Watusimotohttp://www.google-melange.com/gci/task/view/google/gci2012/8025216
19:08:53BFLogBot Commit: ea97e5f7c4a3 | Author: watusimoto | Message: Supress errors when traveling back in time. We don't handle this situation well in any event.
19:08:55BFLogBot Commit: e5e3dd24272c | Author: watusimoto | Message: Add explicit argument checking to ensure timers are only passed functions
19:08:57BFLogBot Commit: abec99bfcbc8 | Author: watusimoto | Message: Whitespace
19:08:58BFLogBot Commit: 33e769192f9d | Author: watusimoto | Message: Merge
19:09:03BFLogBot Commit: 94cfd408dd85 | Author: watusimoto | Message: Take a look at /announce command by Donny Mitsov s
19:09:04BFLogBot Commit: d59f9739f119 | Author: watusimoto | Message: Formatting -- mostly but not entirely related to Donny Mitsov code
19:09:06BFLogBot Commit: 220bca7c3f0f | Author: watusimoto | Message: Formatting
19:09:07BFLogBot Commit: fc3f52f9d2f9 | Author: watusimoto | Message: Remove extraneous junk from beginning of announcement
19:09:09BFLogBot Commit: 1eceafbf3251 | Author: watusimoto | Message: Formatting
19:09:39raptorcommits!!
19:09:42raptorok, reading...
19:09:45Watusimotothe /announce command does not currently work; I merged it into the codebase because it's close, and it seemed the best way to move forward with him. You can checkout a revision pre-94cfd408dd85 and work from there if you do not want to include his stuff
19:10:12Watusimotoit occurs to me that this probably does break compatibility with 018
19:10:18raptornooooooooooooo
19:10:48raptorin your opinion, would there be a better way to close an anonymous connection than I am attempting here: http://pastie.org/5632021
19:10:58raptorit's the commented out 'disconnect' line
19:11:00Watusimotoso we'll need to decide whether to include this our bugfix release and advance to 019, or comment some of the code out and stick with 018
19:11:29raptorthe reason being - everytime i call disconnect there, the connection is detected as not established, so the client gets no TerminationReason
19:11:52WatusimotoWell, disconnect is right, no?
19:12:18Watusimotodoes the client need a reason? it should be expecting a disconnect
19:13:05Watusimotodidn't you rename anonymousConnection? or is that what you renamed it to?
19:14:10Watusimotook, I think I see a better way, perhaps
19:14:30WatusimotoreadConnectRequest() is receiving the connectino request
19:15:48Watusimotowhy not read the protocol version, then read a flag saying "just here for the motd/or here for a real connection
19:15:58Watusimotoif here just for the motd, send that, and disconnect
19:16:17Watusimotono need to get into the question of client v. server
19:16:39Watusimotothen you can break the logic out a little differently
19:16:57Watusimotoor perhaps you can send a 0 for client, 1 for server, 2 for motd only connection
19:17:23Watusimotoinstead of mIsGameServer = bstream->readFlag();
19:18:39raptorok
19:18:41raptorso
19:18:55raptoranonymousConnection <-- wasn't that what we said was a better name?
19:19:25raptor>>> why not read the protocol version, then read a flag saying "just here for the motd/or here for a real connection
19:19:34raptorthat's exactly what i'm doing...
19:19:51raptorunless you mean to do it ahead of time, outside the block of if(isServer...)
19:24:21raptori gues that's what you mean... maybe that's a good idea..
19:26:11raptori think my problem will still exist, though... the client needs to know it was disconnected so ClientGame can then turn off the anonymous flag for the connection
19:26:23raptorbe back in a few..
19:30:21Watusimotoyes, what you wrote is all true
19:30:46Watusimotoit just seems odd to decide between client and server, then basically ignore that decision
19:31:12kaenwow. apparently I successfully refactored all of that stuff...
19:31:45kaenthe last few hours is just a blur of compiler errors
19:32:32kaennow... to raise the courage to merge
19:41:26kaennow... to back out of this merge and learn how to resolve conflicts in vim...
19:41:34kaenbecause I clearly do not know how.
19:45:10YoshiSmb has joined
19:50:17Watusimotofirst rule of resolving conflicts in vim:
19:50:24Watusimotodon't resolve conflicts in vim
19:53:06YoshiSmbQuote: <Watusimoto> first rule of resolving conflicts in vim:
19:53:07YoshiSmb<Watusimoto> don't resolve conflicts in vim
19:53:13YoshiSmbwhat is vim?
19:53:45Watusimotosatan incarnate
19:53:47Watusimotoor
19:53:48Watusimotohttp://en.wikipedia.org/wiki/Vim_(text_editor)
20:03:54YoshiSmb Quit (Ping timeout: 252 seconds)
20:11:02YoshiSmb has joined
20:13:05kaenit was super easy in git
20:13:18kaenin hg it opens up three files and all this jazz
20:21:15raptorback!
20:23:10raptorkaen: I have this in my .hgrc:
20:23:12raptor[merge-tools]
20:23:13raptorkdiff3.args = $base $local $other -o $output
20:23:49raptorand it opens it up in the three-view piece
20:23:55raptormake sure you have kdiff3 installed
20:24:16raptoroh oops, and this needs to be in the .hgrc beforehand:
20:24:18raptor[extdiff]
20:24:19raptorcmd.kdiff3=
20:24:41raptoroh and you need to enable the 'extdiff' extension
20:24:50raptorok, that's it... for reals...
20:25:31raptorbut if there is tortoiseHG for Linux, that may be easiest
20:25:47YoshiSmb Quit (Ping timeout: 244 seconds)
20:30:00raptorso Watusimoto, what we can do is pass a U8 for connection type, and right now we'd have 3: fromClient, fromServer, anonymous
20:30:13raptoris that what you were thinking?
20:30:19Watusimotoyes
20:30:32raptorok
20:30:43WatusimotoI think that is cleaner than two bools
20:30:48raptoryes, me too
20:30:55Watusimotothen let's do it!
20:31:09YoshiSmb has joined
20:31:09raptorok, i'll work on that...
20:31:11WatusimotoYou could, I suppose, pass a rangedInt from 0-4
20:31:20raptorah yes, that's a good idea
20:31:27raptor256 connection types seems unlikely
20:31:34Watusimotothat would let us expand by one more option before changing the protocol
20:33:02raptorsam686 will probably want to jimmy rig these latest commts back to 018 somehow
20:33:13Watusimotoha
20:35:10raptorwhere was that file with these type of enums...
20:35:21WatusimotosharedConstants?
20:35:25raptorah, SharedCons.... yes
20:37:11raptorenum MasterConnectionType sound OK?
20:50:03BFLogBot Commit: 6c3222428233 | Author: sam8641 | Message: Make compatible to older 018 client/server while keeping the new RPC commands.
20:50:14raptorha!
20:51:18sam686hint, it is the last argument number "1" on my changes that does the versioning system, like the master connection..
20:51:49raptorthat's it?
20:51:53raptorneat...
20:54:17WatusimotoMasterConnectionType --< great!
20:56:09Watusimotoclever
20:56:26Watusimotoyou are telling TNL that the new methods are of a newer generation than the existing ones
20:56:36Watusimotoso it doesn't break compatibility
20:56:41Watusimotois that basically right, sam686
20:56:41sam686yes..
20:56:42Watusimoto?
20:56:45Watusimotogreat
20:56:48raptorwe can stay on 018 indefinitely!
20:56:51Watusimotoha
20:57:01sam686newer version will simply be ignored by older server or older clients
20:57:19Watusimotoso older clients can't use or recieve /announce
20:57:59raptorcoding practice question: when we have an enum, and we want a value of that enum as a member to a class, should we define it as the enum name or as a U32/S32/whatever?
20:59:15raptorso for instance, in master.h, should I say it has a member: MasterConnectionType mConnectionType; OR U32 mConnectionType
21:00:29WatusimotoMasterConnectionType mConnectionType unless that's a tremendous pain
21:00:33Watusimoto(as it is on occasion)
21:00:38raptorit makes sense to use the enum name... but we have it the other way in places
21:00:46raptorok
21:00:52Watusimotothat gives better type safety, better readbilty, and is just nicer
21:01:27Watusimotobut enums are kind of broken in C++
21:01:39Watusimoto(should be better in c00x++x+)
21:02:16BFLogBot Commit: 6eba1c63a2b6 | Author: watusimoto | Message: Remove unused var
21:02:18BFLogBot Commit: 8ca0e0335d1d | Author: watusimoto | Message: Fix (some) problems associated with errors in levelgens; improve lua stack trace; provide a way for a misbehaving levelgen to kill itself.
21:02:19BFLogBot Commit: 0c699b6956b8 | Author: watusimoto | Message: Merge
21:02:30raptorhaha, your c++ standard string makes no sense, yet anyone would know exactly what you meant...
21:02:52Watusimotoyup
21:03:04WatusimotoI thnk they should have just called it c+=2
21:03:07Watusimotoor c++++
21:03:18Watusimotothe name they chose is just silly
21:04:17raptori think it was renamed to c++11 ?
21:04:20raptori don't even know..
21:07:45sam686int c=0; c = c+++11; looks strange, but compiles fine (it adds 12 to "c")
21:17:15kaenI knew I would enter merge hell shortly... but I could not prepare for the evils I would see here.
21:17:32raptorkaen, there has been some real evil
21:17:38raptorsam686, you crack me up...
21:18:35kaenit doesn't help that I haven't merged in almost two weeks.
21:20:01raptori've had 3 merge conflicts with my changes in the last 2 days alone... but i've been keeping up..
21:22:35Watusimotokaen, are most of your edits in robot.cpp, or elsewhere?
21:22:55Watusimoto(at least the parts that you have to merge with existing code)
21:24:18raptordoes game server need the MOTD?
21:25:01raptori'm ripping up the guts of readConnectRequest in master.cpp; may I ask that no one touch it for a while...
21:30:15raptorWatusimoto: should I log anonymous connections on master?
21:30:38raptorwe do: SERVER_INFO or CLIENT_INFO
21:30:43raptorwhen a connection is made..
21:30:50WatusimotoI don't think that would be useful, unless someone is trying to swamp the server... and even then...
21:30:58raptoryeah, ok
21:31:00Watusimotowhat would we do if they were?
21:31:19Watusimotowe'd still have to listen for the packets and do something
21:31:29Watusimototo decide if they were DOS packets or other
21:31:40kaenmostly in robot.cpp, but the formatting changes coincidentally conflicted with my refactoring and some of the stuff I had to do for the swarming stuff
21:31:46raptori think there is flood control already build in...
21:31:48Watusimotoso the best is probably to give them what they want and get rid fo them
21:32:22Watusimotokaen, are your probelms focused on robot.cpp, or everywhere?
21:32:45Watusimotomost of the widescale changes I know of involve removing the UserInterface:: prefix off a slew of rendering methods
21:33:08kaenalmost exclusively in robot
21:33:31kaenthere was a lot of whitespace conflict... it sounds like that's something I introduced
21:34:47Watusimotowell, if you're unusure of anything, don't be shy about asking
21:35:33Watusimotoevery one of us feels your pain
21:36:05raptorit burns!
21:37:22sam686umm one problem. since when do you do a renderAnnouncement from only inside a s2cDisplayAnnouncement? (/announce doesn't display at all)
21:41:45kaenyup. just confirmed that I have been working this whole time with automatic whitespace removal on in code blocks, and have been committing this minute changes mixed in with all of my real ones, and the difficulty of that merge was due almost entirely to that.
21:41:59raptor!!
21:42:10kaenso...
21:42:32kaenI honestly don't even know how to procede. it sounds like I'd be better off making a diff and starting from scratch
21:42:54raptori'd go back to your previous changes and auto-format all the whitespace properly
21:43:07raptorthen attempt the merge again
21:43:26kaenall of the corrections are... correct. they're just littering my local commits
21:43:46kaenI was able to merge to a working state, but only realized all of this afterwards.
21:44:33kaenso I guess it's almost a non-problem, but isn't including those whitespace changes considered a bad thing?
21:45:13raptorif it's a change that brings it in line to our coding style, then no (e.g. 3 spaces indent
21:45:15raptor)
21:46:19sam686The only thing that doesn't really produce merging hassles is line ending changes, everything else could cause merge problems..
21:46:58kaenit's pretty much entirely line-ending whitespace getting trimmed
21:47:32sam686whitespace trimming is what can cause merging problem..
21:48:53raptormy ide auto trims whitespace on anyline you've edited/changed
21:49:08kaenwell it's really just an experiment anyway. I'll cross the merge bridge when I come to it
21:49:20Watusimotosam686: /announce doesn't work; we're going to let donny fix it if he can
21:49:49kaenraptor, mine too. but I have a bad habit of editing, backspacing, and then saving
21:49:58sam686ok, maybe don't auto trim (get rid of extra spaces at end of line) every single line, just the one edited..
21:49:58kaenrather than simply undoing.
21:50:37kaensam686 that's a good idea
21:50:42kaenyou should make IDEs
22:01:54raptorWatusimoto: maybe for anonymous connection I can future-proof it a little? like send an enum for an AnonymousConnectionAction or something...
22:04:59Watusimotowhat sorts of actions would we use currently?
22:05:09raptorMotdAction
22:05:14raptortada!
22:05:31raptormaybe GeneralHighScores?
22:05:43raptoror, DosMasterServer
22:06:37Watusimotohow about Shutdown
22:06:43raptor?
22:06:51WatusimotofetchRootPassword
22:06:56raptorexactly!
22:07:05raptorall perfectly anonymous to us!
22:07:07WatusimotosendViagraSpam
22:07:17raptoranonymity is secure, right!
22:07:22raptoroh wonderful
22:07:49Watusimotoyou could send an enum, but you will need to reserve a certain number of "slots" (i.e. bits) to pass the largest enum you envision
22:08:16raptorthat was the plan... but i'm more asking if it would be smart to do so...
22:08:48raptorin your expert opinion - although we may never use it for anything ever again
22:09:31Watusimotoright now we have 1 or possibly 2 potential actions; we could save room for, say 8
22:09:50Watusimotowe could always use the last one to mean another batch of 8 are coming in the next byte
22:10:07raptor?
22:10:16raptorthat sounds like extended partitions...
22:10:22Watusimotokind of
22:10:29Watusimoto1 = get scores
22:10:32Watusimoto2 = get motd
22:10:34Watusimoto...
22:10:45Watusimoto7 = read another byte with 8 more actions
22:11:03Watusimotoor rather another 3 bits
22:11:04Watusimotoor whatever
22:11:08raptori think you're thinking further ahead than me...
22:11:29Watusimotoor just reserve a whole byte's worth! 256 is pretty future proof
22:11:51raptori have altered the connection to first send mConnectionType, then based on that it'll read the bitstream accordingly
22:12:22raptorso for ConnectionTypeAnonymous, i can then send an enum of actions
22:12:55raptorthat all the future i'm thinking of..
22:15:04raptor*that's
22:19:01Watusimotohow many enum values?
22:19:11raptori was thinking 4 or 8
22:19:38raptorbecause I cannot (at this moment) conceive of many anonymous actions...
22:19:44Watusimotothat's fine
22:19:49Watusimotogo with 8
22:19:56Watusimotowe can afford the extra bit!
22:20:13Watusimotoremember how much data a typical http connection sends, just to set up
22:20:20raptorso you *do* think it's OK to send an action?
22:20:42Watusimotosure; this is not in-game connection; this is a connection to the master server while not playing
22:21:00raptorOK
22:21:05Watusimotoyou'll use a rangedInt?
22:21:11raptorsendEnum
22:21:16Watusimotoperfect
22:21:27WatusimotoI think that is just a wrapper around rangedInt
22:21:34raptoryes
22:22:01Watusimotowhy can't I find that function?
22:22:47raptorwriteEnum
22:22:48raptorsorry
22:22:59raptorbitStream->writeEnum(...)
22:24:13Watusimotonice function, that one
22:24:19raptoryes
22:24:19Watusimotosimple, clean, elegant
22:24:22raptori like it
22:29:49kaen Quit (Read error: Connection reset by peer)
22:29:57masterkaen has joined
22:38:06masterkaen Quit (Changing host)
22:38:07masterkaen has joined
22:38:10masterkaen is now known as kaen
22:38:27kaenso I got the pathing behavior into my swarmers :)
22:39:36raptorgreat!
22:40:45kaenhmm. what to do next.
22:41:38kaenI think it's close to being play-testable. maybe I should work towards that for now.
22:42:41kaenreally all of the structural stuff is in place now that the pathing is in. I just have to flesh out the actual gameplay (i.e. more enemies)
22:45:37Watusimotosounds awesome!
22:46:02Watusimotois your refactor stuff worth checking in?
22:49:49raptori think kaen is rewriting the game...
22:53:54raptorWatusimoto: i'm running into the disconnect problem again - i cannot seem to be able to actually call disconnect from within MasterServerConnection::readConnectRequest()
22:54:05raptorand have the client receive the message
22:54:36Watusimotook
22:54:43Watusimotolooking
22:55:10raptorsoo... does it have something to do with queueing the action on a thread and running it after the connection is considered established?
22:55:51kaenWatusimoto, I would say it's not. there's no real reason to have it unless you plan on having something do pathfinding other than robots.
22:56:17Watusimotook; was just thinking of easing future merges
22:56:45kaenI thought about that too, but at the very least it needs some polishing before checking in
22:57:41Watusimotoraptor: I doubt it... I'm thinkint that by using a m2c the connection might need to be established beofre it gets run... or rather, maybe that's what you meant, in which case, it might well be
22:59:14raptormaybe sam686 would know. sam686: would you know why calling disconnect() in MasterServerConnection::readConnectRequest() doesn't seem to work?
23:00:18sam686disconnect() doesn't work on readConnectRequest, because it is not fully connected... instead, return false to refuse connection..
23:01:20sam686and optionally set reason = something just before "return false;"
23:01:53Watusimotojust for fun, try skipping the m2c and try writing the string directly to the connection
23:02:27Watusimotoso you need to fully establish the connection, then shut it down
23:02:30sam686careful with version compatibility stuff..
23:03:05Watusimotowhich suggests that, maybe, it can't be used in the super lightweight manner we've been looking at?
23:05:16sam686if you look at gameNetInterface.cpp, there is some networking code "ping" stuff that can send more information, without connecting.
23:06:46raptorhmm
23:06:55raptorok, so what i wish to do:
23:07:15raptoropen anonymous master connection, do an action, close connection
23:07:51raptorso i've been trying to make it so master closes the connection immediately after doing an action
23:07:56raptorlike sending MOTD
23:08:21raptorthen the client would pick up that it has isn't connected anymore
23:08:34raptormaybe there is a different way?
23:08:53sam686maybe don't make the master close connection, instead just make the client close connection (client could sent multiple commands)
23:10:11raptorso instead of sending an action on opening an anonymous connection, just open one connection and wait for the client to explicitly request MOTD?
23:10:37raptorshould i just keep anonymous connection open no matter what? then change it to Client connection when needed?
23:10:46sam686how about a seperate "class A_Seperate_Connection : public EventConnection" ?
23:12:30sam686that is what kindof was done with DataConnection (zap/dataConnection.cpp)
23:25:28Watusimoto>>> instead just make the client close connection (client could sent multiple commands) <<< I kind of like this
23:27:19kaenI have a Ship* that I dereference in the idle loop of an object. is there way to check that the Ship is still valid (beyond null checking?)
23:29:00kodaws has joined
23:29:40Watusimotowhere do you get it from? i.e. could be available wrapped in a SmartPtr<>?
23:30:01Watusimotosorry, that might be SafePtr
23:30:21WatusimotoSafePtr is a TNL smart pointer that turns to NULL when the underlying object is deleted
23:31:26Watusimotoabsent that, check for NULL, and if it's not NULL, check mHasExploded which, if it's set, the object is essentially dead but not yet deleted
23:32:10raptorWatusimoto: what if the anonymous connection persisted, then the client terminated it when it wanted to connect as a client?
23:32:27Watusimotohere is a block that shows how we do it elsewhere:
23:32:28Watusimoto Ship *ship = static_cast<Ship*>(hitObject);
23:32:28Watusimoto // We've hit a ship or robot (remember, robot is a subtype of ship, so this will work for both)
23:32:28Watusimoto // We'll need to make sure the ship is a valid entity and that it hasn't exploded
23:32:28Watusimoto if(ship->hasExploded)
23:32:30Watusimoto return false;
23:32:56Watusimotoraptor: why persist it?
23:32:59raptorand no actions were sent upon connect, rather requested via c2m or whatever
23:33:31Watusimotooh, persist it until client depersisted it
23:33:46raptoryes
23:33:49WatusimotoI think that could work
23:34:01Watusimotothough I would haev the client grab what it needs and go
23:34:15raptorso, connect... stay connected... request motd, disconnect (from client)
23:35:47Watusimotosure
23:35:50Watusimotothat seems sane
23:35:53Watusimotoorderly
23:36:04Watusimotobuilds on our existing ways of doing things
23:36:09raptorbut the request would be outside of the connection bitstream
23:36:18Watusimotoa little less hacky than what I was suggesting earlier
23:36:39Watusimotomeaning a c2m?
23:36:43raptoryes
23:36:54Watusimotowell, that's fine
23:37:26raptoror anything you think would be better...
23:37:28Watusimotoso maybe the client shoudl first declare whether they are logging in or just coming for anon stuff
23:37:46Watusimotothen, if loggging in, would declare themselves as a client or server
23:37:48raptorwell, i have mConnectionType being sent in the connection request
23:38:00raptorso client, server, anon
23:38:00Watusimotoyes
23:38:12Watusimotoyes
23:38:14Watusimotoyes
23:38:25Watusimotostick with that
23:38:28sam686one possible problem with not logging in, is... might not want to have just about anyone changing or running commands that might want to be limited...
23:38:54Watusimotosam686: there would only be one or two commands available
23:38:56raptorwe already let anyone
23:39:04raptorthey just need a non-registered name
23:39:09Watusimotooh right!
23:39:51kaen>>> where do you get it from? <<< It comes from a call to findObjects()
23:40:22sam686for what? a program that reads number of players and reads motd, and possibly alert if anything changes?
23:41:31kodawsgreetings from the west coast!
23:41:38raptorhi kodaws
23:41:42raptorin the US?
23:41:58raptorif so, welcome!
23:46:48Watusimotokaen: is that coming from the database?
23:47:18kaenI'm not sure how to tell: findObjects((TestFunc)isShipType, fillVector, Rect(getActualPos(), 1200));
23:47:20Watusimotoif so, you don;t need to do NULL check -- database objects should always be valid. Just check the deleted flag
23:47:26kaeninside of VelocityItem::idle
23:47:29Watusimotoyou're good
23:47:36Watusimotothat;s a call to the database
23:48:08Watusimotoyou can rely on the database to be a source of good, solid, meaty objects
23:48:19Watusimotounless you are a vegetarian, of course
23:48:25kaenheh
23:48:28kaennot even a little
23:48:47WatusimotoI am, a little
23:49:20kaenokay, maybe a little
23:49:30Watusimotoso I am using meaty to draw a picture, not as a literal dietary entity
23:49:49kaenI don't know why but that made me laugh audibly.
23:49:51Watusimotodon't eat objects from the database
23:50:26raptornom nom
23:58:17kaenokay so it's not apparent to me how to "check the deleted flag"
23:58:27kaenare you talking about SafePtr::isValid() ?
23:58:37Watusimotono
23:58:48Watusimotoif(ship->hasExploded)
23:58:53kaenoh alright
23:58:58Watusimotosorry; sloppy in my verbiage
23:59:05kaenno problem
23:59:18Watusimotoand, as I think about it, I doubt that will ever come back true
23:59:32Watusimotobut I'm not sure about that
23:59:36Watusimotoso check it

Index Search ←Prev date Next date→

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