#bitfighter IRC Log

Index Search ←Prev date Next date→

IRC Log for 2012-01-03

Timestamps are in GMT/BST.

00:03:00Watusimotobad news... my joystick is having issues
00:10:00raptorbecause of my code? or your joystick?
00:11:00BFLogBot - Commit 630b5c61ca5f | Author: watusim...@bitfighter.org | Log: Keep track of time since last keyboard, mouse, or joystick input
00:11:00BFLogBot - Commit bbbbf4765a66 | Author: watusim...@bitfighter.org | Log: Merge
00:11:00BFLogBot - Commit 390f50e398fd | Author: watusim...@bitfighter.org | Log: Remove test logging
00:15:00Watusimotoit's a code issue
00:15:00WatusimotoI'm going to investigate a little more tomorrow
00:15:00raptornot something you can change with presets?
00:16:00Watusimotothis I don't know
00:16:00WatusimotoI'm assuming I should be able to make my stick work in 016 as it did in 015a
00:16:00raptorcorrect
00:16:00raptorbut sdl axes have changed compared to GLUT
00:17:00Watusimotoaxes actually seem to work
00:17:00Watusimotothe 9 and 10 buttons are non-functional
00:17:00sam686joystick name?
00:17:00Watusimotoand the graphics are all wrong
00:17:00raptorsounds like a preset problem
00:17:00Watusimotocan't tell at the moment
00:17:00Watusimoto(broke my code again!)
00:17:00sam686press F7 and see?
00:17:00raptorha
00:17:00raptorok, i'll be patient
00:18:00WatusimotoI;m going to play with it and we can discuss tomorrow
00:18:00raptorokey doke
00:18:00Watusimotoas I'm heading for bed soon
00:18:00raptori think i documented the joystick_presets.ini pretty well
00:18:00raptorhopefully it makes sense
00:19:00Watusimotonot too worried
00:45:00raptor ok, now i segfault when hosting a game
00:47:00raptorneeded 'make clean'
00:56:00BFLogBot - Commit c14bb75b1dd6 | Author: watusim...@bitfighter.org | Log: access elapsed time
01:00:00Watusimoto Quit (Ping timeout: 248 seconds)
01:00:00karamazovapyokay - so I've created the audio I think should go on the main menu
01:03:00karamazovapyhttp://www.mediafire.com/?lkocrsgdrgowmhi
01:03:00raptoroooo
01:04:00karamazovapyit's obviously not original, but it's my own arrangement
01:04:00karamazovapyand it's meant to be looped
01:08:00raptorgood job on the looping
01:08:00raptoris that static in the middle intentional?
01:09:00karamazovapythe noise at 15" is
01:09:00raptoryes that
01:09:00raptorok
01:09:00raptorwere you able to export as a midi or mod file?
01:10:00karamazovapy(everything is a C64-based sound)
01:10:00karamazovapylet me see what my export options are
01:10:00raptori'm curious if it can me saved to a module format
01:11:00raptorbe
01:11:00karamazovapymidi is obviously available
01:12:00karamazovapyit assigns everything to piano, though, so the percussion sounds are dissonant
01:13:00raptorinteresting
01:14:00karamazovapyI mean, it's done with samplers, so it's not suprising everything is set to instrument 1 at export
01:19:00karamazovapyfor what it's worth, that "static" you heard is a C64 explosion
01:20:00karamazovapyI hear it as something between an explosion and a roar
01:21:00raptorwhat software are you using?
01:21:00karamazovapyreason 5
01:21:00karamazovapythe sounds were C64 refills
01:22:00raptordoes that wav file sound the same as your project?
01:25:00karamazovapyyep
01:25:00raptorok
01:25:00karamazovapyideally, I'd like to adjust some of the individual note dynamics, but it's been a long time since I used this software
01:26:00karamazovapy...and I'm too lazy to figure it out
01:34:00raptorhow many instruments did you use?
01:36:00karamazovapyfour
01:36:00karamazovapybass, lead, percussion, and a bass harmony track
01:38:00raptorso the dilemma that watusimoto and i see is the filsize problem of music
01:38:00raptorfilesize
01:38:00karamazovapywell at 40 seconds, this could be a pretty small OGG file
01:38:00raptorand one way to address it was use module files
01:38:00karamazovapyah, I see
01:39:00raptori wonder how easy it would be for you to do the same thing in openmpt
01:39:00karamazovapywell there's also processing on all the sounds
01:40:00karamazovapyI can download it and see what it can do
01:40:00raptori just converted to 112 kbps vorbis: it's 529KB
01:41:00karamazovapyI could start with higher compression settings in the export
01:43:00raptoryeah - but i could just as easily adjust the compression with vorbis encoding
01:43:00raptorlossless module seems the best, but I don't have the hook-ins in the code for that...
01:43:00raptorso we have lots of options...
01:43:00karamazovapyI think even with recompression, a smaller starting file will produce a smaller end file
01:44:00karamazovapyhttp://www.mediafire.com/?zujm4b83iv1kp4f
01:45:00raptorwell, vorbis can adjust the sampling/bitrate/channel count which is all that matters for size
01:45:00karamazovapyI have a superstitious belief that file compression is actually voodoo
01:45:00raptorit totally is
01:46:00raptorlooks like you cut the sample rate in half
01:47:00raptorthe vorbis file is exactly 1/2 the size
01:47:00raptorwhich could have been done on my end, too :)
01:47:00raptorbut, the question
01:47:00raptordoes it sound as good?
01:48:00raptoractually no, it doesn't
01:48:00raptorweird
01:48:00karamazovapythe wav sounds nearly as good
01:49:00sam686what that BITFIGHTER_THEME_medium.wav does is it cuts the sample rate in half..
01:49:00karamazovapyyes, I am the one who encoded it
01:49:00sam686that is uncompressed WAV file...
01:51:00raptoryeah, better let the final compression step be the one that reduces things like sample rate
01:51:00karamazovapyyes, I am the one who encoded it
01:51:00raptorhehe
01:52:00karamazovapyI am also wearing pants and typing on a keyboard, as long as we're giving stats
01:53:00raptorthat reminds me, they always say 'no shirt, no shoes, no service'
01:53:00raptorthey always fail at no pants
01:54:00karamazovapyI remember seeing a commercial that exploited that
01:54:00raptorhaha, really?
01:54:00karamazovapyyeah, a beach guy isn't wearing his shirt, so he turns his swim shorts into a tee
01:55:00raptorwonderful..
01:57:00karamazovapywhat if we hosted audio files on the master server and included a Music tab in the Options menu
01:57:00karamazovapypeople could download packs directly from the client
01:57:00karamazovapyto their music folder
01:58:00raptoroh yeah - that was another suggestion by watusimoto
01:58:00raptorwe'd build in some sort of download option
01:58:00raptoror ability
01:59:00karamazovapyhonestly, I won't even use music if I care about the game I'm playing
01:59:00karamazovapyI want to be able to hear cloakers bump into things
01:59:00sam686here how bad the quality can get when a WAV file have a reduced quality, 78.2 KB, http://sam686.maxhushahn.com/upload/BITFIGHTER_THEME_VERY_SMALL_FILESIZE.wav
02:00:00sam6862000 samples per second, mono, 8 bit
02:00:00raptorblech
02:01:00karamazovapyrealize that I was encoding directly from the hi-def source, as opposed to dumping something from an already-dumped file
02:01:00sam686it will still be the same bad quality no matter what, at 2000 samples per second, mono, 8 bit
02:02:00karamazovapythat's not entirely true
02:02:00sam686WAV is lossless format, MP3 and Vorbis is lossy compression format
02:02:00raptorWAV is very lossy
02:02:00karamazovapywav is not lossless
02:02:00sam686wav only get lossy when reducing sample rate, changing to Mono, to 8 Bit..
02:03:00karamazovapywav is still compressed audio
02:03:00raptorby definition any digital audio format is lossy
02:04:00raptorbut we can of course sample so high and so wide that the human ear has no way of telling the difference
02:04:00sam686then the filesize is too big
02:05:00karamazovapyhave either of you read my thesis?
02:05:00raptori read the first 10 pages or so
02:05:00sam686there is lossy compression and lossless compression, WAV with PCM has no compression at all
02:06:00karamazovapyaudio is kind of my thing
02:07:00sam686and there another thing, cheap speaker, especially on laptops, often can't produce low frequency sounds, around less then 50 Hertz
02:07:00raptoryes - i don't mean to contradict anything you say or elevate myself as more knowledgeable
02:07:00raptorbut i have plenty of experience with compression algorithms
02:08:00raptorbut I'm not so good with actual music creation
02:08:00raptoranyways - would it be worth it to cut out the vorbis libraries and use modules? it would mean we could distribute music with the game
02:08:00sam686ZIP compress the audio files is basically like a lossless compression, but might not compress very good.
02:09:00karamazovapysam, everyone here understands the difference
02:09:00karamazovapyexcept maybe BFLogBot
02:09:00raptor!BFLogBot
02:09:00raptorBFLogBot
02:09:00BFLogBotI'm a real boy.... I think?
02:10:00raptorbut i agree that when i'm really focused on playing - music would get in the way
02:10:00sam686Zooomber don't under stand it yet (until that person reads this)
02:11:00sam686oh, then what happens when someone holds down R, and play music of their own?
02:12:00raptorwe are serenaded
02:12:00raptor(if that's a word)
02:15:00raptorok, i think i got it: http://sam686.maxhushahn.com/upload/screenshot_17.png
02:15:00raptorif you're in first, then second place shows below you now
02:34:00raptor /settime 0 doesn't work anymore
02:42:00raptoradded it to the bug page
03:32:00raptorfinally got it sorted
03:33:00raptorok leaderboard should be more to every one's liking now
03:34:00raptorsam686: did we still want /settime 0 to set unlimited time?
03:34:00sam686probably yes
03:35:00sam686http://sam686.maxhushahn.com/bitfighter/sam_sfx_for_bitfighter.zip Try using that sound affects that I have made myself...
03:36:00raptordid you make a new SFX pack?
03:36:00sam686well, try it first!
03:37:00raptorhahaha
03:37:00BFLogBot - Commit b293b3d71119 | Author: buckyballreaction | Log: Leaderboard UI changes - looks better now
03:37:00BFLogBot - Commit b38ca82fa22e | Author: buckyballreaction | Log: If you are leading player, show second place player below you on leader board
03:37:00raptoris that your voice?
03:37:00sam686yes
03:37:00sam686all i said is the file name of the sound name, for each sound
03:38:00raptor16bit at 22050 - that means it must sound close to your real voice?
03:38:00sam686yes
03:40:00raptorif you don't mind my asking, were you born in the United States?
03:42:00raptoractually you don't have to answer that here - it may be a bit personal on the public channel :)
03:50:00raptorok, working on /settime
03:57:00BFLogBot - Commit 0b61816249ea | Author: sam8641 | Log: Fix compiling dedicated, use new Circle() instead of dynamic_cast(TNL::Object::create("Circle"))
03:57:00raptorfound a logical problem with settime
03:57:00raptori think i got it
04:07:00BFLogBot - Commit a7cf49a6f61a | Author: buckyballreaction | Log: Fix /settime 0
04:14:00raptorsam686: how come that Circle change was needed?
04:14:00sam686it wasn't needed, but it helps reduce compile size and speed up runtime..
04:15:00raptorreally? how does it do that?
04:15:00raptori still consider myself new at c++...
04:16:00sam686TNL::Object::create(level_line_first_arg) is only meant to be used when reading a string from a level which could be anything
04:16:00sam686but may be slow due to having to search for the right class, and comparing strings.
04:16:00raptorahh, and Circle isn't supposed to be added through a level file, just CircleSpawn, right?
04:17:00sam686yes, but then CircleSpawn just spawn one thing only, Circle
04:17:00raptorok
04:17:00raptori get it
04:17:00raptorthanks
04:17:00sam686so, TNL::Object::create("Circle") (one string that never changes), try to avoid that and instead just use a New Circle()
04:18:00raptorgood idea
04:21:00raptoralright i'm going to try and fix individual score
04:21:00raptorscores
04:21:00raptorerr, ratins
04:21:00raptorratings
04:32:00BFLogBot - Commit 661307fecb72 | Author: sam8641 | Log: This speeds up runtime: More of changing TNL::Object::create("Asteroid") to new Asteroid()
04:35:00sam686well, there the problem why allow map uploads is stuck at "No"
04:35:00sam686settings->getIniSettings()->allowGetMap = (getMenuItem(OPT_GETMAP)->getValue() == "yes")
04:35:00sam686getMenuItem(OPT_GETMAP)->getValue() returns "Yes"
04:35:00raptorhaha
04:36:00sam686"Yes" does not equal "yes"
04:36:00sam686caps sensitive
04:36:00raptorthese little bugs will be the death of us
04:36:00sam686i prefer getIntValue() != 0 instead, faster then string.
04:37:00raptorsounds good
04:47:00BFLogBot - Commit 28c85a1a4449 | Author: sam8641 | Log: Fix allowGetMap option, "Yes" doe not equal "yes", use getIntValue() != 0 for speed
05:00:00raptorI found something with the ratings: GameConnection::getCumulativeRating()
05:00:00raptormCumulativeScore is always 0
05:00:00raptorit is never added to anywhere
05:02:00raptori'm going to note it on the wiki and move on - i'm not sure what watusimoto intended
05:12:00BFLogBot - Commit e713c16c7229 | Author: buckyballreaction | Log: Fix for leaderboard when you score negative points (like suicide on bitmatch)
05:14:00raptorsam686: did you ever figure out why non-team games scores are carried over?
05:17:00sam686Game::mClientInfos probably doesn't get cleared when level changes..
05:21:00raptorwell, i'm getting sleepy and can't diagnose this properly
05:21:00raptorgood night!
05:21:00sam686ok, night
05:23:00raptor Quit (Remote host closed the connection)
05:32:00BFLogBot - Commit 8e9e51550df7 | Author: sam8641 | Log: Reset non team score to zero when level changes, no more carry over score.
06:12:00sam686 Quit (Quit: Bye, i am heading to bed, see you later, bye, i am sleeping.)
06:24:00CrazyLinuxNerd has joined
09:13:00CrazyLinuxNerd Quit (Quit: Rebooting)
09:17:00CrazyLinuxNerd has joined
09:41:00zoomber_mbp has joined
09:41:00zoomber_mbpour server list has been restored!
09:42:00zoomber_mbp Quit (Client Quit)
10:17:00LordDVG has joined
10:58:00LordDVG Quit (Quit: mjuza, better way for listening to music: sf.net/projects/mjuza/)
11:00:00LordDVG has joined
11:14:00watusimoto has joined
11:14:00ChanServ sets mode +o watusimoto
12:19:00Watusimoto_ has joined
12:19:00LordDVG Quit (Ping timeout: 240 seconds)
12:27:00LordDVG has joined
12:51:00koda Quit (Quit: koda)
13:41:00koda has joined
13:44:00karamazovapy Quit (Read error: Connection reset by peer)
13:45:00karamazovapy has joined
15:51:00CrazyLinuxNerd Quit (Quit: Leaving)
15:52:00CrazyLinuxNerd has joined
16:08:00CrazyLinuxNerd Quit (Quit: Leaving)
16:15:00CrazyLinuxNerd has joined
16:29:00raptor has joined
16:29:00ChanServ sets mode +o raptor
16:29:00raptorgood morning!
16:29:00karamazovapyavast ye
16:31:00CrazyLinuxNerd Quit (Quit: Leaving)
16:32:00raptorbuenos dias?
16:33:00CrazyLinuxNerd has joined
16:37:00LordDVG Quit (Ping timeout: 260 seconds)
16:39:00LordDVG has joined
16:45:00raptori like your 'personal stance' post, karamazovapy
17:07:00karamazovapythe little_apple/blackbird crew has decided that I'm automatically against any idea, no matter how good it is or how the idea changes
17:08:00CrazyLinuxNerdEh.. I'm pretty sure i've seen you agree to ideas before..
17:08:00karamazovapyyeah but none of the awsum ones
17:09:00CrazyLinuxNerdthat depends how you define awsum ;-)
17:09:00karamazovapylike...totally radical?
17:10:00LordDVG Quit (Ping timeout: 240 seconds)
17:10:00raptorkaramazovapy: did you see the latest revisions of the leaderboard?
17:10:00CrazyLinuxNerdhaha.. tbh some of their ideas i'd class more as "lame" while others are good.
17:11:00raptorhere so you don't have to search: http://sam686.maxhushahn.com/upload/screenshot_17.png
17:23:00LordDVG has joined
17:55:00watusimoto Quit (Ping timeout: 268 seconds)
18:25:00BFLogBot - Commit 1ee68b581511 | Author: buckyballreaction | Log: Start the mac clean-up now that mercurial can handle soft-links safely on all platforms: Remove libpng sources; add in compiled framework; adjust xcode project to compile with it
18:33:00sam686 has joined
18:33:00ChanServ sets mode +v sam686
18:37:00raptorgood day sam686
18:41:00BFLogBot - Commit b3dabea26387 | Author: watusim...@bitfighter.org | Log: Comments
18:41:00BFLogBot - Commit 475377f0a03b | Author: watusim...@bitfighter.org | Log: Merge
19:17:00Watusimoto_ Quit (Ping timeout: 276 seconds)
19:21:00BFLogBot - Commit 651bd02eeb5c | Author: buckyballreaction | Log: Update ALURE to 1.2
19:58:00Watusimoto has joined
20:27:00raptorhi Watusimoto
20:27:00raptori tried to do #44 here: http://bitfighter.org/wiki/index.php?title=Buglist_016
20:27:00raptorbut i was confused at how you
20:28:00koda Quit (Ping timeout: 244 seconds)
20:28:00raptorrenamed the rating variables
20:28:00Watusimotohi
20:28:00raptori made a note on that page about how far i got
20:28:00raptorhi
20:28:00Watusimotook
20:28:00Watusimotoso
20:29:00Watusimotowhat's confusing? that mCumScore is never incremented?
20:29:00Watusimotoor something more fundamental
20:29:00raptorwell yes, also
20:29:00LordDVG Quit (Ping timeout: 276 seconds)
20:29:00Watusimotois this related to clinetinfos?
20:29:00raptori don't really know what that variable is for - the comment didn't make sense for some reason
20:29:00CrazyLinuxNerd Quit (Quit: Leaving)
20:30:00WatusimotomCumScore?
20:30:00raptormTotalCumulativeScore <-- that sort of makes sense
20:30:00Watusimotototal for all players'
20:30:00Watusimotomcumscore must be total for given client
20:30:00raptorok, then mCumulativeScore? it probably didn't make sense because it wasn't actually used anywhere
20:31:00Watusimotomaybe that's why ratings are broken?
20:31:00karamazovapyanyone have a preference regarding domain registration companies?
20:31:00raptorfor sure :)
20:31:00Watusimotorating = mCumScore / mTotCumScore
20:31:00Watusimotok: I use namecheap.com
20:31:00Watusimotok: DON'T USE GODADDY
20:32:00Watusimotobut we may have changed rating since I last checked
20:32:00karamazovapydefinitely not using godaddy...those traitorous bastards...
20:32:00raptori hear http://www.gandi.net/ is pretty good
20:32:00raptorbut i have little experience
20:34:00raptorha! gandi even discounts for the US because of SOPA
20:35:00Watusimotoit's good business to capitaize on the misfortunes of others (godaddy)
20:35:00raptorhehe, yep
20:38:00karamazovapyyou only get discounts on transfers
20:39:00karamazovapyI'm registering my business domain - stage517 - do you think it's worth getting .org and .net as well as .com?
20:40:00raptoryou probably should if you are planning on becoming popular - otherwise scammers will take those
20:41:00raptorwhich makes me think the DNS system has big flaws
20:41:00WatusimotoI wouldn't bother, but if the cost is low, the risk is low
20:42:00karamazovapyI hate comparison shopping web services
20:51:00sam686don't misspell youtube.com by leaving out the E
20:51:00karamazovapyis it tubgirl?
20:52:00sam686seems to be some kind of survey...
20:55:00sam686a message says "WAIT! click the cancel botton to..." but i only see a "Leave this Page" or "Stay on this Page" buttons
20:55:00Zoombergodaddy isnt that bad, it has trial pay, so when i wanted to get something else good, i just bought the godaddy domain name and got it for free
20:55:00karamazovapyTHEY ONLY HAVE 2 BEST BUY GIFTCARDS LEFT!!!
20:55:00karamazovapyI BETTER FILL OUT THIS SURVEY FAST!
20:55:00raptori'd leave the site and clear your browser cache
20:56:00ZoomberNONONO dont select the card the COMPUTERS WORTH MORE
20:56:00sam686i wonder if that is fake, or i wonder if they won't send you a gift card...
20:56:00karamazovapygodaddy is supporting the online piracy provisions in congress that threaten to break the internet
20:56:00raptorof course it is
20:56:00sam686or it might just be a 1 penny gift card or smaller...
20:56:00Zoomberwhat raptor said
20:57:00karamazovapyyou'll never actually get to the point where you could redeem for a card
20:57:00Zoombersam686: actually, they're quite real, but you have to read the fine print
20:57:00Zoomberwhat karamazovapy said
20:57:00karamazovapyI did enough of those stupid things back when I was 12 or 13
20:57:00Zoomberlol me too
20:57:00karamazovapybut when I did it, internet fraud was a bright new horizon!
20:57:00Zoomberdid you ever help someone transfer funds from nigeria?
20:58:00karamazovapyno, but I played several internet lottery games
20:58:00karamazovapythat were free, of course
20:58:00Zoomberlol
20:58:00sam686oh i wonder why the survey home page is blank?
21:08:00raptori wonder if there is a way to use precompiled headers for boost to speed compiling in Linux
21:14:00Watusimotoraptor: did you get what you need from me?
21:15:00raptorI still don't understand what/where is needed to be added to mCumulativeScore
21:15:00raptori figure a setter method is required
21:15:00raptorbut where to use it... no idea
21:15:00Watusimotoyes, probably.
21:15:00Watusimotook, well maybe we should determine if that's the problem
21:16:00Watusimotois mcumscore read anywhere (i.e. gotten)
21:16:00Watusimoto?
21:16:00raptoronly in GameConnection::getCumulativeRating()
21:16:00Watusimotooh good, this should be easy
21:17:00WatusimotoI would first thing try replacing mCumulativeScore in that fn with 20
21:17:00Watusimotoor something
21:17:00Watusimotoand see if that makes the ratings better
21:17:00raptorok
21:17:00Watusimoto(they'll still be wrong)
21:17:00Watusimotoand if so, we'll be sure that's the problem
21:17:00raptorcompiling...
21:18:00raptoryay, my rating is 0.50
21:19:00Watusimotoperfect
21:19:00Watusimotojust guessing, but look at this fn
21:19:00Watusimotovoid ClientInfo::addScore(S32 score)
21:19:00Watusimoto{
21:19:00Watusimoto mScore += score;
21:19:00Watusimoto}
21:19:00WatusimotoI'm guessing that it also needs a mCumScore += score
21:19:00Watusimotoline in it
21:19:00sam686 Quit (Ping timeout: 245 seconds)
21:19:00raptoroh good, and the rating is changing as bots kill me
21:21:00raptorthere is also a LocalClientInfo::addToTotalScore
21:21:00raptorthat isn't used anywhere
21:21:00raptorwaiit, it is
21:24:00Watusimotocould also add a few lines above where it's used:
21:24:00Watusimotoplayer->addToTotalScore(points);
21:24:00Watusimotoinstead of chanigng addScore()
21:24:00Watusimotoadd just after player->addScore(points);
21:25:00Watusimotonot sure which would be better
21:25:00Watusimotocan see it both ways
21:25:00LordDVG has joined
21:25:00Watusimotobut I'm feeling pretty confident that either of these will fix the problem
21:25:00raptorok, i added: GameConnection::addToCumulativeScore()
21:25:00raptorbut, in ClientInfo::addScore, there is no access to a gameConnection object
21:26:00raptorlike there is in LocalClientInfo
21:27:00Watusimotowhere did you add addTocumscore()?
21:27:00Watusimotoinside of addScore()?
21:27:00raptori created the method in gameConnection.cpp
21:27:00raptorI have not used it yet because I have no access to GameConnection in ClientInfo
21:28:00Watusimotohow about this?
21:28:00Watusimoto if(points != 0)
21:28:00Watusimoto {
21:28:00Watusimoto player->addScore(points);
21:28:00Watusimoto player->addToTotalScore(points);
21:28:00Watusimoto newScore = player->getScore();
21:28:00Watusimoto for(S32
21:28:00WatusimotogameType.cpp line 1708ish
21:28:00Watusimotoor
21:29:00Watusimotoinside of player->addScore(points)
21:29:00Watusimotoadd addToTotalScore(points);
21:29:00Watusimotoeither of those solutions shoudl work, both should compile
21:29:00raptorthe confusion I'm having is why is one of these: addScore(), addToTotalScore() on ClientInfo and the other on LocalClientInfo
21:30:00Watusimotoyes, this is confusing
21:30:00Watusimotowhich is a bad sign
21:31:00Watusimotonoth are on ClientInfo
21:31:00Watusimotoboth
21:31:00raptorone is virtual on ClientInfo
21:31:00raptorone is not
21:31:00Watusimotowhich one is virtual?
21:31:00raptoraddToTotalScore()
21:31:00Watusimotook
21:32:00Watusimotoso localClientInfo (LCI) and remoteClientInfo (RCI) both implement addScore
21:32:00raptorthey implement addToTotalScore()
21:32:00Watusimotoonly remoteClientInfo implements addToTotal...
21:32:00Watusimotodid I get that backwards?
21:32:00raptoryep
21:32:00WatusimotoLCI and RCI implement addToTotalScore
21:32:00sam686 has joined
21:32:00ChanServ sets mode +v sam686
21:32:00raptorcorrect
21:32:00Watusimotoonly LCI implements addScore
21:33:00raptornope
21:33:00Watusimototherefore, server does not keep track of clients scores! voila!
21:33:00raptoronly CI (the parent) implements addScore
21:33:00Watusimotook, so that means addScore is available on both LCI and RCI
21:33:00LordDVG Quit (Ping timeout: 276 seconds)
21:34:00Watusimotoso LCI and RCI both have a addScore and an addTotalScore, right?
21:34:00raptorno
21:34:00raptorwell, yes - but not defined for LCI and RCI
21:34:00WatusimotoCI implements addScore()
21:34:00raptoryes
21:34:00Watusimotoso it is available for all children, including LCI and RCI
21:34:00raptoryes
21:35:00Watusimotoso LCI and RCI both have a addScore and an addTotalScore, right?
21:35:00Watusimotohave as in have available
21:35:00raptoryes, we are minds are one now
21:35:00Watusimotoexcellent
21:35:00raptoralso RemoteClientInfo::addToTotalScore() has this:
21:35:00raptorTNLAssert(false, "We don't track total score in these parts...");
21:35:00raptorwhich is another confusing part
21:36:00Watusimotook, so, for our purposes, RCI does not have addToTotalScore
21:36:00raptorhaha yep - and all this is why I didn't get too far
21:36:00Watusimotoso... LCI and RCI both have addScore, and only LCI has addTotalScore
21:36:00Watusimotobefore we go any further, did we change the way ratings are done?
21:36:00raptorif has = an implementation that does something; then yes
21:37:00raptori didn't change anything
21:37:00raptori did some comparisons to 015a and it looks like the getRating() piece in GameConnection does use different logic now
21:37:00Watusimotowe were discussing making them a ratio of something else a while back, in a discussion with k and maybe sam
21:37:00Watusimotoin 016, rating = 0; it's a very simple algorithm
21:38:00raptorhehe
21:38:00raptormaybe i need a different question answered first:
21:39:00raptorwhy do we keep track of score on ClientInfo (and children) and on GameConnection?
21:40:00Watusimotoserver needs to track scores for all players, right?
21:40:00Watusimotoso that's why it's on ClientInfo
21:40:00Watusimotowe haev one CI per player
21:40:00raptoryes that makes sense
21:40:00Watusimotobut we also haev one GC per player
21:40:00Watusimotoso we track it there too
21:40:00Watusimoto:-)
21:40:00raptorha
21:41:00Watusimotoit may be something that got refactored but not completely
21:41:00raptorsee, i think i'm missing an explanation on that one...
21:41:00Watusimoto(hence the bug)
21:42:00Watusimotothe way it shoudl work is that the server keeps track of a score for each player, as well as a running total of how many points were scored in a game while that player was playing
21:42:00Watusimotoso server needs 2 nums for each player; points scored by player and points scored by all players
21:42:00Watusimotofrom that rating can be calculated by dividing
21:43:00Watusimotolooks like mCumulativeScore is stored only on GC
21:44:00raptorso it looks like were in the middle of moving it off of GC onto ClientInfo
21:44:00Watusimotowhere as mScore and mTotalScore are stored on ClientInfo
21:44:00Watusimotoquite possible
21:45:00WatusimotomScore = score in current game
21:45:00WatusimotomCumScore = score in current game + score in all previous games
21:45:00WatusimotomTotalScore = cum scores of other players
21:45:00sam686there is only one GameConnection on client side
21:45:00Watusimotoyes
21:45:00Watusimotoclient is only connected to one game
21:45:00raptori just have one word for all of this: wacky
21:46:00WatusimotoI refer you to the following comment:
21:46:00Watusimoto... Right now this is rather bogus -- any improvements welcomed!!!
21:46:00Watusimotoso, perhaps this would be best
21:47:00raptorok ok, I think i can understand the need for a per-connection tally and a per-game tally
21:47:00koda has joined
21:47:00Watusimotomove mCumulativeScore onto clientInfo for consistency
21:47:00raptorhowever, is ClientInfo meant to be a per-game thing?
21:47:00Watusimotomake sure that mCumScore is updated properly (currently it stays at 0)
21:47:00Watusimotobask in the glow of a job well done
21:48:00Watusimotoserver has 1 remoteClientInfo for each player
21:48:00raptorand ignorance is bliss!
21:48:00Watusimotoclient has 1 remoteClientInfo for each player (including self)
21:48:00Watusimotoclient has 1 localClientInfo for self (with more info than remoteClientInfo)
21:49:00Watusimotoin 015a, I think the same object (ClientInfo) was used for what we now call RCI and LCI -- splitting them was an attempt to clarify
21:50:00Watusimotoit's still confusing, but maybe better than before
21:50:00raptorha!
21:50:00raptorok, i have another idea
21:50:00raptorarchitectural change for teh score
21:50:00raptorinstead of addScore and addToTotalScore
21:50:00Watusimotobring it
21:50:00raptorwe have addToCurrentGameScores and addToConnectionScores
21:50:00raptoror similar
21:51:00raptorwe keep current game scores in ClientInfo
21:51:00raptorand the connection-based ones in GC
21:51:00Watusimotowait a sec
21:51:00raptorbut!
21:51:00Watusimotowe only keep mcumscore in gc, no others
21:51:00Watusimotocontinue
21:52:00raptorfurther refinement: we have to separate the totalscore and currentScore
21:52:00raptorbecause every player shouldn't get points for mScore AND mTotalScore
21:52:00raptorso starting from scratch again:
21:52:00Watusimotokaramazovapy -- around?
21:53:00WatusimotoI wish I remmebered the discussion we had about this before -- we decided we wanted to change the way ratings were handled,
21:53:00Watusimotoit might make this whole issue moot
21:53:00karamazovapyish
21:54:00Watusimotoquick question: do yu remember a conversation about changing the way player ratings were calculated?
21:54:00Watusimotowe came up with a simpler scheme, like wins/losses or something
21:54:00karamazovapykill/death ratio, with an exception for suicides
21:54:00Watusimotoah yes
21:55:00Watusimotoso raptor, why not do this?
21:55:00karamazovapybut with possible bonuses for achievements like killing streaks
21:55:00Watusimotoget rid of cumulative scores altogether
21:55:00Watusimotoand total scores
21:55:00Watusimotoleaving only current score, which works nicely
21:55:00raptorok
21:56:00raptorbut don't we want the score to be persistent across a connection? i.e. multiple games?
21:56:00Watusimotoand replace rating with a ratio of kills / deaths
21:56:00Watusimotoscore?
21:56:00Watusimotoonly rating
21:56:00raptoryes, rating
21:56:00karamazovapyyou can keep counting K/D across multiple games
21:56:00Watusimotothe only use for total score and cum score is to calcualte the bogus rating
21:56:00Watusimotoyes, exactly
21:56:00raptorok, then i should decouple the rating piece from the score
21:57:00Watusimotoand we may already be tracking those
21:57:00Watusimotoyes
21:57:00Watusimotorating becomes a function of some unrelated items
21:57:00raptorso now the question: is totalScore used for the current game at all?
21:58:00Watusimotothat will also simplify the drek that is the scoring
21:58:00WatusimotoI don;t think so
21:58:00WatusimotoI think only for the rating
21:59:00raptorso on GameConnection, I should track kills/deaths? or just the rating?
21:59:00WatusimotomTotalScore only used in rating calucations
21:59:00Watusimototrack the kills and deaths
21:59:00raptorbut not Totals of those for all players?
21:59:00raptorjust the one player?
22:00:00Watusimotoyes
22:00:00raptoryay, less vars
22:00:00Watusimotomy rating becomes independent of any totals for anyone but me
22:00:00Watusimotoand we may already track kills and deaths
22:00:00Watusimotoin statistics
22:00:00raptorwe do
22:00:00raptorok, good
22:00:00Watusimoto U32 mKills; // Enemy kills
22:00:00Watusimoto U32 mDeaths; // Times died
22:00:00Watusimoto U32 mSuicides; // Self kills
22:00:00Watusimoto U32 mFratricides; // Tammate kills
22:01:00raptori think i have something to go on now
22:01:00raptorhaha, fratricides
22:01:00raptorforgot about that
22:01:00Watusimotoso, if those are on the server, and you can grab them, the job will mostly be deleting stuff
22:01:00raptordelete delete
22:01:00Watusimotoso rating = mkills / (mdeaths - msucicides)
22:03:00karamazovapyare we going to include achievement bonuses?
22:03:00raptorfeature creep!!!
22:03:00karamazovapythis was already on the list!
22:03:00raptoroh
22:04:00karamazovapyhttps://code.google.com/p/bitfighter/issues/detail?id=137
22:04:00raptorwould i need to track suicides on GameConnection?
22:04:00raptorprobably...
22:05:00Watusimotonot on the list for 016!
22:05:00karamazovapyfine fine fine
22:05:00WatusimotomSuicides?
22:05:00Watusimotowe have it on stats
22:06:00Watusimotoassigned case 137 to 016a
22:08:00raptorok got GameCOnnection clean-ed up - now
22:08:00raptorhmmm...
22:08:00raptoractually
22:09:00raptorshould I move addToTotalScore to CI instead of having it be virtual and implement in RCI and LCI?
22:09:00Watusimotodo we need it at all?
22:10:00raptorexactly
22:10:00raptorok
22:10:00Watusimotosince we don't care about totalScore, kill it!
22:10:00Watusimotobut the larger answer is yes, if the implementations are the same
22:12:00Flynnn has joined
22:14:00raptor Quit (Ping timeout: 252 seconds)
22:15:00raptor has joined
22:15:00ChanServ sets mode +o raptor
22:16:00karamazovapyfor anyone interested, the show Fat Fighters is not about obese mixed martial arts practitioners.
22:16:00raptorargh, i lost my questions
22:16:00raptorok about the ratings
22:17:00karamazovapy10 is hot, 1 is not
22:17:00karamazovapyso like, "she's an 8" would mean she's pretty attractive
22:23:00raptorIf i use SignedFloat to transmit scores between -1 and 1, how many bits should I use?
22:23:00raptor8?
22:23:00Watusimotooh my
22:24:00Watusimotohow many "gradations" do you want
22:24:00Watusimoto?
22:24:00Watusimoto255?
22:24:00raptorwell ratings are transmitted to 2 decimals
22:24:00Watusimotoso sure, 8 bits
22:24:00raptordecimal places, I mean
22:24:00raptor8 bits OK?
22:24:00Watusimotocould do 7 bits, but that's just silly
22:24:00Watusimotoyes, 8
22:25:00Watusimotowhy not unsigned float between 0 and 2, then sub 1?
22:25:00Watusimotowiat, that makes no sense
22:25:00Watusimoto8 bits
22:25:00raptorhaha
22:25:00Watusimotoand don;t listen to me
22:27:00raptorhow to find where the deaths are kept track of...
22:30:00raptorwait wait wait - stats are kept on GameConnection
22:31:00Watusimotoso easily availab;e
22:31:00raptorbut they're reset after each round
22:31:00raptorcool
22:32:00Watusimotokills and deaths are reset?
22:33:00Watusimotooh, because (perhaps) we only report per-game stats?
22:33:00sam686they reset, so stats don't accumulate and add up forever..
22:33:00raptorok whatever, i'm going to work within it ...
22:34:00raptordo we count fratricides in the rating?
22:35:00raptorkaramazovapy: what do you think?
22:41:00raptorhow about: return F32(mKills - mFratricides) / F32(mDeaths - mSuicides);
22:42:00raptorlooks like fratricides are already excluded in kills
22:42:00raptorso that would reduce your rating if you kill a teammate
22:43:00Watusimotoyes
22:43:00Watusimotosounds good
22:43:00raptorok, let's see if this compiles and works
22:43:00Watusimotogreat
22:44:00Watusimotothen we can accumulate those stats (in separate vars) to track stats session-long?
22:44:00Watusimotofor ratings purposes (not reporting)
22:50:00raptorthis is the first usage of TNL SignedFloat
22:50:00raptorand it's borken
22:53:00Watusimoto:-)
22:53:00Watusimotomaybe that's why no one has used it!
22:53:00raptori think i need a little help with this error: http://pastie.org/3121360
22:55:00Watusimotoah, if you're in tnlMethodDispatch, something went way wrong
22:56:00Watusimototurn off your computer and back up slowly
22:58:00WatusimotoI have no idea about that bug... is tha from using TNLSignedFloat?
22:58:00raptoryes
22:59:00raptori gotta stop digging myself in deeper
22:59:00raptorsam686: any idea of why: no matching function for call to ‘read(TNL::BitStream&, TNL::SignedFloat<8u>*)’
23:00:00raptorin tnlMethodDispatch.h
23:00:00Watusimotonever implemented?
23:00:00raptori clearly see the method on line line 264
23:01:00raptorwow, this tnl header is nuts
23:04:00raptorok forget this - i guess i'll just have to convert to an int
23:05:00raptorbut it will always nag me
23:05:00sam686i don't know...
23:06:00Watusimotomultiply by 256, send as an int, divide on other end
23:06:00Watusimotostill 8 bits
23:07:00raptortemplate of a template of a templat
23:07:00raptoris how i describe that header
23:08:00Watusimotosee? using an int isn't so bad
23:08:00sam686how are you adding SignedFloat?
23:08:00sam686this works for me: SignedFloat<8> test1; Types::read(*stream, &test1);
23:09:00raptorah ha! I might need to down convert to SignedFloat from F32
23:09:00raptorso i have: Vector<SignedFloat<8> > GameType::mRatings
23:09:00raptorand I do mRatings.push_back(F32)
23:10:00raptorwhich may be the problem - should I cast the F32 to a SignedFloat?
23:10:00sam686i don't know unless i see your code
23:11:00raptortada!: http://sam686.maxhushahn.com/upload/fix_ratings.diff
23:12:00raptorit is being used on gameType.cpp:3232
23:13:00sam686gameType.cpp compiles without errors...
23:13:00raptorwhat
23:13:00raptorGCC!!
23:15:00raptoroh myg oodness
23:15:00raptori move the template up 100 lines in tnlMethodDispatch.h and it compiled
23:15:00raptorwhat on earth
23:16:00raptorWHAT THE CRAZY
23:17:00sam686maybe there is too many templates...
23:18:00raptorso nuts
23:19:00sam686maybe i think i know, gcc haven't read the whoel thing yet, and tries to read a Vector<SignedFloat<BitCount>> but haven't read SignedFloat template yet
23:21:00sam686maybe move read(TNL::BitStream &s, TNL::Vector<T> *val) and write (Vector related stuff) to the bottom?
23:22:00sam686at the bottom while inside the namespace Types
23:24:00raptorthat doesn't work - what does is what I'm about to commit...
23:25:00sam686ok
23:25:00raptorpushed
23:26:00BFLogBot - Commit a278ca419207 | Author: buckyballreaction | Log: Moving the templates higher in the header file lets GCC compile for some reason
23:27:00raptorok, so the ratings are working - sort of
23:27:00raptorbut they never go below zero
23:27:00raptorkills/death should never go below zero, right?
23:28:00sam686well, i think suicide only makes the score -1, but no negative for kills?
23:29:00raptorfratricide is negative
23:29:00raptorwe ignore suicide
23:31:00sam686gameStats.h, i made anything that cannot be negative, U32
23:31:00sam686the only thing that seem to be able to be negative is score
23:31:00raptorthat makes sense
23:31:00Watusimotoraptor: 4 billion kills!
23:31:00WatusimotoU32!
23:31:00raptorso what do i do with 4 billion / 0 deaths?
23:31:00Watusimotonone of this java rubbish, with it's 2 billion kills
23:32:00Watusimoto0 deaths, 1+ kills =>> rating = 1.0
23:32:00raptorrating should still be 1.0, right?
23:32:00Watusimotoyes
23:32:00sam686U32 kills = -1 doesn't work or it will underflow and wrap around to 4294967295
23:32:00raptorkils is always postive
23:32:00Watusimoto1+ death, 0 kills = 0 rating
23:33:00Watusimotook, so rating now goees from 0 to 1
23:33:00WatusimotoI don't think that will break anything
23:33:00Watusimotoall that matters is comparative values anyway, for creating teams
23:33:00sam686oh and 1 kill / 0 deaths, kill death ratio = what number? infinity?
23:33:00Watusimotoor mult. by 2 and subtract 1
23:33:00raptorhow's this evil logic?: http://pastie.org/3121535
23:34:00Watusimoto1 kill, 0 deaths = 1.0 rating
23:34:00raptorbasically you can only go negative if you kill teammates more than you die...
23:34:00sam686F32(mKills - mFratricides) / F32(mDeaths - mSuicides) what happens when mDeaths=2 and mSuicides = 2 ?
23:35:00sam686infinity?
23:35:00raptoroops
23:35:00raptor>=
23:35:00sam686what if mFratricides = 200 ?
23:35:00raptorok, abs()
23:36:00Watusimotohttp://pastie.org/3121548
23:37:00Watusimotohooold up here
23:37:00sam686what if mKills = 100, mDeaths = 100, and mSuicide = 99,
23:37:00Watusimoto3 kills, 2 deaths, gives you rating of 1.0, highest possible?
23:38:00sam686F32(mKills - mFratricides) / F32(mDeaths - mSuicides)
23:38:00sam686F32(100 - 0) / F32(100 - 99)
23:38:00sam686== 100
23:38:00sam686suicides may game you higher rating
23:39:00sam686want to try: F32(mKills - mFratricides - mSuicides) / F32(mDeaths)
23:39:00sam686or not sure..
23:39:00Watusimotobreaking out my spreadsheet
23:40:00sam686does mSuicides also count as mDeaths?
23:41:00raptoryes
23:41:00sam686what if multiple players have rating of 1.0 ?
23:42:00sam686that won't help with team sorting when several players have 1.0
23:43:00sam686in existing 015a, no 2 players can have 1.0, i think
23:44:00raptorkills - deaths / kills + deaths
23:44:00raptoryes?
23:44:00Watusimotojust plotted that
23:45:00Watusimotoit gets negative
23:45:00raptorgreat!
23:45:00Watusimoto10 kills, 10 deaths, rating = 0
23:45:00raptori still handle negative
23:46:00Watusimotosome random values
23:46:00Watusimoto6 4 -0.2
23:46:00Watusimotodeaths kills calculation
23:46:00sam686suicide?
23:46:00Watusimoto9 6 -0.2
23:46:00Watusimotoassuming d-s and k-f
23:46:00Watusimoto2 10 0.67
23:46:00Watusimoto9 9 0
23:47:00Watusimoto5 9 0.29
23:47:00Watusimotothese seem goog
23:47:00Watusimotogood
23:47:00Watusimoto6 7 0.08
23:47:00Watusimoto5 5 0
23:47:00Watusimoto8 3 -0.45
23:47:00Watusimoto7 1 -0.75
23:48:00Watusimotoso when 0 d and 0 k, rating is 0
23:48:00Watusimotowhich is neutral
23:48:00raptoryes
23:49:00raptorwhich algo?
23:49:00Watusimotokills - deaths / kills + deaths
23:49:00raptorand that seems good?
23:50:00sam686seems like that kind of good
23:52:00raptorok, how about this: http://pastie.org/3121630
23:53:00raptorwait, i forgot to ignore suicides
23:54:00sam686S32 new_Death = mDeath - mSuicides; ?
23:54:00Watusimotowhat does this mean?
23:54:00Watusimoto(mSuicides are included)
23:54:00sam686or, death coount without suicide
23:54:00raptorok updated: http://pastie.org/3121640
23:55:00raptorwhy are simple algos so hard some times
23:55:00sam686mKills=0 mDeaths=1 mSuicides=1 mFratricides=0
23:55:00sam686divide by zero?
23:56:00Watusimotosame code, different formatting
23:56:00Watusimotohttp://pastie.org/3121648
23:56:00Watusimotodiv by 0 trapped by first if
23:56:00Watusimoto if(mKills == 0 && mFratricides == 0 && mDeaths == 0)
23:57:00sam686not when mDeaths=1 and mSuicide=1
23:57:00sam686if(0 == 0 && 0 == 0 && 1 == 0)
23:57:00raptorok oke, fixt that:
23:57:00sam686if(true && true && false)
23:58:00Watusimotodeaths != 0, F32((mKills + mFratricides) + (mDeaths - mSuicides) != 0
23:58:00Watusimotooh, wait!
23:58:00sam686maybe you want a if(mKills == 0 && mFratricides == 0 && mDeaths - mSuicides == 0)
23:58:00Watusimotoif mDeaths = 1, and that death was a sucide... div by 0
23:59:00raptorpastie is being slow.....
23:59:00Watusimotowe're gumming it up
23:59:00Watusimotojust as a note, I hate this format:
23:59:00raptorthere we go: http://pastie.org/3121661
23:59:00Watusimotoif(something)
23:59:00Watusimoto //comment here
23:59:00raptorok
23:59:00Watusimoto do_this()
23:59:00raptori like it above the if

Index Search ←Prev date Next date→

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