Timestamps are in GMT/BST.
| 00:03:00 | Watusimoto | bad news... my joystick is having issues |
| 00:10:00 | raptor | because of my code? or your joystick? |
| 00:11:00 | | BFLogBot - Commit 630b5c61ca5f | Author: watusim...@bitfighter.org | Log: Keep track of time since last keyboard, mouse, or joystick input |
| 00:11:00 | | BFLogBot - Commit bbbbf4765a66 | Author: watusim...@bitfighter.org | Log: Merge |
| 00:11:00 | | BFLogBot - Commit 390f50e398fd | Author: watusim...@bitfighter.org | Log: Remove test logging |
| 00:15:00 | Watusimoto | it's a code issue |
| 00:15:00 | Watusimoto | I'm going to investigate a little more tomorrow |
| 00:15:00 | raptor | not something you can change with presets? |
| 00:16:00 | Watusimoto | this I don't know |
| 00:16:00 | Watusimoto | I'm assuming I should be able to make my stick work in 016 as it did in 015a |
| 00:16:00 | raptor | correct |
| 00:16:00 | raptor | but sdl axes have changed compared to GLUT |
| 00:17:00 | Watusimoto | axes actually seem to work |
| 00:17:00 | Watusimoto | the 9 and 10 buttons are non-functional |
| 00:17:00 | sam686 | joystick name? |
| 00:17:00 | Watusimoto | and the graphics are all wrong |
| 00:17:00 | raptor | sounds like a preset problem |
| 00:17:00 | Watusimoto | can't tell at the moment |
| 00:17:00 | Watusimoto | (broke my code again!) |
| 00:17:00 | sam686 | press F7 and see? |
| 00:17:00 | raptor | ha |
| 00:17:00 | raptor | ok, i'll be patient |
| 00:18:00 | Watusimoto | I;m going to play with it and we can discuss tomorrow |
| 00:18:00 | raptor | okey doke |
| 00:18:00 | Watusimoto | as I'm heading for bed soon |
| 00:18:00 | raptor | i think i documented the joystick_presets.ini pretty well |
| 00:18:00 | raptor | hopefully it makes sense |
| 00:19:00 | Watusimoto | not too worried |
| 00:45:00 | raptor | ok, now i segfault when hosting a game |
| 00:47:00 | raptor | needed 'make clean' |
| 00:56:00 | | BFLogBot - Commit c14bb75b1dd6 | Author: watusim...@bitfighter.org | Log: access elapsed time |
| 01:00:00 | | Watusimoto Quit (Ping timeout: 248 seconds) |
| 01:00:00 | karamazovapy | okay - so I've created the audio I think should go on the main menu |
| 01:03:00 | karamazovapy | http://www.mediafire.com/?lkocrsgdrgowmhi |
| 01:03:00 | raptor | oooo |
| 01:04:00 | karamazovapy | it's obviously not original, but it's my own arrangement |
| 01:04:00 | karamazovapy | and it's meant to be looped |
| 01:08:00 | raptor | good job on the looping |
| 01:08:00 | raptor | is that static in the middle intentional? |
| 01:09:00 | karamazovapy | the noise at 15" is |
| 01:09:00 | raptor | yes that |
| 01:09:00 | raptor | ok |
| 01:09:00 | raptor | were you able to export as a midi or mod file? |
| 01:10:00 | karamazovapy | (everything is a C64-based sound) |
| 01:10:00 | karamazovapy | let me see what my export options are |
| 01:10:00 | raptor | i'm curious if it can me saved to a module format |
| 01:11:00 | raptor | be |
| 01:11:00 | karamazovapy | midi is obviously available |
| 01:12:00 | karamazovapy | it assigns everything to piano, though, so the percussion sounds are dissonant |
| 01:13:00 | raptor | interesting |
| 01:14:00 | karamazovapy | I mean, it's done with samplers, so it's not suprising everything is set to instrument 1 at export |
| 01:19:00 | karamazovapy | for what it's worth, that "static" you heard is a C64 explosion |
| 01:20:00 | karamazovapy | I hear it as something between an explosion and a roar |
| 01:21:00 | raptor | what software are you using? |
| 01:21:00 | karamazovapy | reason 5 |
| 01:21:00 | karamazovapy | the sounds were C64 refills |
| 01:22:00 | raptor | does that wav file sound the same as your project? |
| 01:25:00 | karamazovapy | yep |
| 01:25:00 | raptor | ok |
| 01:25:00 | karamazovapy | ideally, 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:00 | karamazovapy | ...and I'm too lazy to figure it out |
| 01:34:00 | raptor | how many instruments did you use? |
| 01:36:00 | karamazovapy | four |
| 01:36:00 | karamazovapy | bass, lead, percussion, and a bass harmony track |
| 01:38:00 | raptor | so the dilemma that watusimoto and i see is the filsize problem of music |
| 01:38:00 | raptor | filesize |
| 01:38:00 | karamazovapy | well at 40 seconds, this could be a pretty small OGG file |
| 01:38:00 | raptor | and one way to address it was use module files |
| 01:38:00 | karamazovapy | ah, I see |
| 01:39:00 | raptor | i wonder how easy it would be for you to do the same thing in openmpt |
| 01:39:00 | karamazovapy | well there's also processing on all the sounds |
| 01:40:00 | karamazovapy | I can download it and see what it can do |
| 01:40:00 | raptor | i just converted to 112 kbps vorbis: it's 529KB |
| 01:41:00 | karamazovapy | I could start with higher compression settings in the export |
| 01:43:00 | raptor | yeah - but i could just as easily adjust the compression with vorbis encoding |
| 01:43:00 | raptor | lossless module seems the best, but I don't have the hook-ins in the code for that... |
| 01:43:00 | raptor | so we have lots of options... |
| 01:43:00 | karamazovapy | I think even with recompression, a smaller starting file will produce a smaller end file |
| 01:44:00 | karamazovapy | http://www.mediafire.com/?zujm4b83iv1kp4f |
| 01:45:00 | raptor | well, vorbis can adjust the sampling/bitrate/channel count which is all that matters for size |
| 01:45:00 | karamazovapy | I have a superstitious belief that file compression is actually voodoo |
| 01:45:00 | raptor | it totally is |
| 01:46:00 | raptor | looks like you cut the sample rate in half |
| 01:47:00 | raptor | the vorbis file is exactly 1/2 the size |
| 01:47:00 | raptor | which could have been done on my end, too :) |
| 01:47:00 | raptor | but, the question |
| 01:47:00 | raptor | does it sound as good? |
| 01:48:00 | raptor | actually no, it doesn't |
| 01:48:00 | raptor | weird |
| 01:48:00 | karamazovapy | the wav sounds nearly as good |
| 01:49:00 | sam686 | what that BITFIGHTER_THEME_medium.wav does is it cuts the sample rate in half.. |
| 01:49:00 | karamazovapy | yes, I am the one who encoded it |
| 01:49:00 | sam686 | that is uncompressed WAV file... |
| 01:51:00 | raptor | yeah, better let the final compression step be the one that reduces things like sample rate |
| 01:51:00 | karamazovapy | yes, I am the one who encoded it |
| 01:51:00 | raptor | hehe |
| 01:52:00 | karamazovapy | I am also wearing pants and typing on a keyboard, as long as we're giving stats |
| 01:53:00 | raptor | that reminds me, they always say 'no shirt, no shoes, no service' |
| 01:53:00 | raptor | they always fail at no pants |
| 01:54:00 | karamazovapy | I remember seeing a commercial that exploited that |
| 01:54:00 | raptor | haha, really? |
| 01:54:00 | karamazovapy | yeah, a beach guy isn't wearing his shirt, so he turns his swim shorts into a tee |
| 01:55:00 | raptor | wonderful.. |
| 01:57:00 | karamazovapy | what if we hosted audio files on the master server and included a Music tab in the Options menu |
| 01:57:00 | karamazovapy | people could download packs directly from the client |
| 01:57:00 | karamazovapy | to their music folder |
| 01:58:00 | raptor | oh yeah - that was another suggestion by watusimoto |
| 01:58:00 | raptor | we'd build in some sort of download option |
| 01:58:00 | raptor | or ability |
| 01:59:00 | karamazovapy | honestly, I won't even use music if I care about the game I'm playing |
| 01:59:00 | karamazovapy | I want to be able to hear cloakers bump into things |
| 01:59:00 | sam686 | here 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:00 | sam686 | 2000 samples per second, mono, 8 bit |
| 02:00:00 | raptor | blech |
| 02:01:00 | karamazovapy | realize that I was encoding directly from the hi-def source, as opposed to dumping something from an already-dumped file |
| 02:01:00 | sam686 | it will still be the same bad quality no matter what, at 2000 samples per second, mono, 8 bit |
| 02:02:00 | karamazovapy | that's not entirely true |
| 02:02:00 | sam686 | WAV is lossless format, MP3 and Vorbis is lossy compression format |
| 02:02:00 | raptor | WAV is very lossy |
| 02:02:00 | karamazovapy | wav is not lossless |
| 02:02:00 | sam686 | wav only get lossy when reducing sample rate, changing to Mono, to 8 Bit.. |
| 02:03:00 | karamazovapy | wav is still compressed audio |
| 02:03:00 | raptor | by definition any digital audio format is lossy |
| 02:04:00 | raptor | but we can of course sample so high and so wide that the human ear has no way of telling the difference |
| 02:04:00 | sam686 | then the filesize is too big |
| 02:05:00 | karamazovapy | have either of you read my thesis? |
| 02:05:00 | raptor | i read the first 10 pages or so |
| 02:05:00 | sam686 | there is lossy compression and lossless compression, WAV with PCM has no compression at all |
| 02:06:00 | karamazovapy | audio is kind of my thing |
| 02:07:00 | sam686 | and there another thing, cheap speaker, especially on laptops, often can't produce low frequency sounds, around less then 50 Hertz |
| 02:07:00 | raptor | yes - i don't mean to contradict anything you say or elevate myself as more knowledgeable |
| 02:07:00 | raptor | but i have plenty of experience with compression algorithms |
| 02:08:00 | raptor | but I'm not so good with actual music creation |
| 02:08:00 | raptor | anyways - 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:00 | sam686 | ZIP compress the audio files is basically like a lossless compression, but might not compress very good. |
| 02:09:00 | karamazovapy | sam, everyone here understands the difference |
| 02:09:00 | karamazovapy | except maybe BFLogBot |
| 02:09:00 | raptor | !BFLogBot |
| 02:09:00 | raptor | BFLogBot |
| 02:09:00 | BFLogBot | I'm a real boy.... I think? |
| 02:10:00 | raptor | but i agree that when i'm really focused on playing - music would get in the way |
| 02:10:00 | sam686 | Zooomber don't under stand it yet (until that person reads this) |
| 02:11:00 | sam686 | oh, then what happens when someone holds down R, and play music of their own? |
| 02:12:00 | raptor | we are serenaded |
| 02:12:00 | raptor | (if that's a word) |
| 02:15:00 | raptor | ok, i think i got it: http://sam686.maxhushahn.com/upload/screenshot_17.png |
| 02:15:00 | raptor | if you're in first, then second place shows below you now |
| 02:34:00 | raptor | /settime 0 doesn't work anymore |
| 02:42:00 | raptor | added it to the bug page |
| 03:32:00 | raptor | finally got it sorted |
| 03:33:00 | raptor | ok leaderboard should be more to every one's liking now |
| 03:34:00 | raptor | sam686: did we still want /settime 0 to set unlimited time? |
| 03:34:00 | sam686 | probably yes |
| 03:35:00 | sam686 | http://sam686.maxhushahn.com/bitfighter/sam_sfx_for_bitfighter.zip Try using that sound affects that I have made myself... |
| 03:36:00 | raptor | did you make a new SFX pack? |
| 03:36:00 | sam686 | well, try it first! |
| 03:37:00 | raptor | hahaha |
| 03:37:00 | | BFLogBot - Commit b293b3d71119 | Author: buckyballreaction | Log: Leaderboard UI changes - looks better now |
| 03:37:00 | | BFLogBot - Commit b38ca82fa22e | Author: buckyballreaction | Log: If you are leading player, show second place player below you on leader board |
| 03:37:00 | raptor | is that your voice? |
| 03:37:00 | sam686 | yes |
| 03:37:00 | sam686 | all i said is the file name of the sound name, for each sound |
| 03:38:00 | raptor | 16bit at 22050 - that means it must sound close to your real voice? |
| 03:38:00 | sam686 | yes |
| 03:40:00 | raptor | if you don't mind my asking, were you born in the United States? |
| 03:42:00 | raptor | actually you don't have to answer that here - it may be a bit personal on the public channel :) |
| 03:50:00 | raptor | ok, working on /settime |
| 03:57:00 | | BFLogBot - Commit 0b61816249ea | Author: sam8641 | Log: Fix compiling dedicated, use new Circle() instead of dynamic_cast(TNL::Object::create("Circle")) |
| 03:57:00 | raptor | found a logical problem with settime |
| 03:57:00 | raptor | i think i got it |
| 04:07:00 | | BFLogBot - Commit a7cf49a6f61a | Author: buckyballreaction | Log: Fix /settime 0 |
| 04:14:00 | raptor | sam686: how come that Circle change was needed? |
| 04:14:00 | sam686 | it wasn't needed, but it helps reduce compile size and speed up runtime.. |
| 04:15:00 | raptor | really? how does it do that? |
| 04:15:00 | raptor | i still consider myself new at c++... |
| 04:16:00 | sam686 | TNL::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:00 | sam686 | but may be slow due to having to search for the right class, and comparing strings. |
| 04:16:00 | raptor | ahh, and Circle isn't supposed to be added through a level file, just CircleSpawn, right? |
| 04:17:00 | sam686 | yes, but then CircleSpawn just spawn one thing only, Circle |
| 04:17:00 | raptor | ok |
| 04:17:00 | raptor | i get it |
| 04:17:00 | raptor | thanks |
| 04:17:00 | sam686 | so, TNL::Object::create("Circle") (one string that never changes), try to avoid that and instead just use a New Circle() |
| 04:18:00 | raptor | good idea |
| 04:21:00 | raptor | alright i'm going to try and fix individual score |
| 04:21:00 | raptor | scores |
| 04:21:00 | raptor | err, ratins |
| 04:21:00 | raptor | ratings |
| 04:32:00 | | BFLogBot - Commit 661307fecb72 | Author: sam8641 | Log: This speeds up runtime: More of changing TNL::Object::create("Asteroid") to new Asteroid() |
| 04:35:00 | sam686 | well, there the problem why allow map uploads is stuck at "No" |
| 04:35:00 | sam686 | settings->getIniSettings()->allowGetMap = (getMenuItem(OPT_GETMAP)->getValue() == "yes") |
| 04:35:00 | sam686 | getMenuItem(OPT_GETMAP)->getValue() returns "Yes" |
| 04:35:00 | raptor | haha |
| 04:36:00 | sam686 | "Yes" does not equal "yes" |
| 04:36:00 | sam686 | caps sensitive |
| 04:36:00 | raptor | these little bugs will be the death of us |
| 04:36:00 | sam686 | i prefer getIntValue() != 0 instead, faster then string. |
| 04:37:00 | raptor | sounds good |
| 04:47:00 | | BFLogBot - Commit 28c85a1a4449 | Author: sam8641 | Log: Fix allowGetMap option, "Yes" doe not equal "yes", use getIntValue() != 0 for speed |
| 05:00:00 | raptor | I found something with the ratings: GameConnection::getCumulativeRating() |
| 05:00:00 | raptor | mCumulativeScore is always 0 |
| 05:00:00 | raptor | it is never added to anywhere |
| 05:02:00 | raptor | i'm going to note it on the wiki and move on - i'm not sure what watusimoto intended |
| 05:12:00 | | BFLogBot - Commit e713c16c7229 | Author: buckyballreaction | Log: Fix for leaderboard when you score negative points (like suicide on bitmatch) |
| 05:14:00 | raptor | sam686: did you ever figure out why non-team games scores are carried over? |
| 05:17:00 | sam686 | Game::mClientInfos probably doesn't get cleared when level changes.. |
| 05:21:00 | raptor | well, i'm getting sleepy and can't diagnose this properly |
| 05:21:00 | raptor | good night! |
| 05:21:00 | sam686 | ok, night |
| 05:23:00 | | raptor Quit (Remote host closed the connection) |
| 05:32:00 | | BFLogBot - Commit 8e9e51550df7 | Author: sam8641 | Log: Reset non team score to zero when level changes, no more carry over score. |
| 06:12:00 | | sam686 Quit (Quit: Bye, i am heading to bed, see you later, bye, i am sleeping.) |
| 06:24:00 | | CrazyLinuxNerd has joined |
| 09:13:00 | | CrazyLinuxNerd Quit (Quit: Rebooting) |
| 09:17:00 | | CrazyLinuxNerd has joined |
| 09:41:00 | | zoomber_mbp has joined |
| 09:41:00 | zoomber_mbp | our server list has been restored! |
| 09:42:00 | | zoomber_mbp Quit (Client Quit) |
| 10:17:00 | | LordDVG has joined |
| 10:58:00 | | LordDVG Quit (Quit: mjuza, better way for listening to music: sf.net/projects/mjuza/) |
| 11:00:00 | | LordDVG has joined |
| 11:14:00 | | watusimoto has joined |
| 11:14:00 | | ChanServ sets mode +o watusimoto |
| 12:19:00 | | Watusimoto_ has joined |
| 12:19:00 | | LordDVG Quit (Ping timeout: 240 seconds) |
| 12:27:00 | | LordDVG has joined |
| 12:51:00 | | koda Quit (Quit: koda) |
| 13:41:00 | | koda has joined |
| 13:44:00 | | karamazovapy Quit (Read error: Connection reset by peer) |
| 13:45:00 | | karamazovapy has joined |
| 15:51:00 | | CrazyLinuxNerd Quit (Quit: Leaving) |
| 15:52:00 | | CrazyLinuxNerd has joined |
| 16:08:00 | | CrazyLinuxNerd Quit (Quit: Leaving) |
| 16:15:00 | | CrazyLinuxNerd has joined |
| 16:29:00 | | raptor has joined |
| 16:29:00 | | ChanServ sets mode +o raptor |
| 16:29:00 | raptor | good morning! |
| 16:29:00 | karamazovapy | avast ye |
| 16:31:00 | | CrazyLinuxNerd Quit (Quit: Leaving) |
| 16:32:00 | raptor | buenos dias? |
| 16:33:00 | | CrazyLinuxNerd has joined |
| 16:37:00 | | LordDVG Quit (Ping timeout: 260 seconds) |
| 16:39:00 | | LordDVG has joined |
| 16:45:00 | raptor | i like your 'personal stance' post, karamazovapy |
| 17:07:00 | karamazovapy | the 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:00 | CrazyLinuxNerd | Eh.. I'm pretty sure i've seen you agree to ideas before.. |
| 17:08:00 | karamazovapy | yeah but none of the awsum ones |
| 17:09:00 | CrazyLinuxNerd | that depends how you define awsum ;-) |
| 17:09:00 | karamazovapy | like...totally radical? |
| 17:10:00 | | LordDVG Quit (Ping timeout: 240 seconds) |
| 17:10:00 | raptor | karamazovapy: did you see the latest revisions of the leaderboard? |
| 17:10:00 | CrazyLinuxNerd | haha.. tbh some of their ideas i'd class more as "lame" while others are good. |
| 17:11:00 | raptor | here so you don't have to search: http://sam686.maxhushahn.com/upload/screenshot_17.png |
| 17:23:00 | | LordDVG has joined |
| 17:55:00 | | watusimoto Quit (Ping timeout: 268 seconds) |
| 18:25:00 | | BFLogBot - 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:00 | | sam686 has joined |
| 18:33:00 | | ChanServ sets mode +v sam686 |
| 18:37:00 | raptor | good day sam686 |
| 18:41:00 | | BFLogBot - Commit b3dabea26387 | Author: watusim...@bitfighter.org | Log: Comments |
| 18:41:00 | | BFLogBot - Commit 475377f0a03b | Author: watusim...@bitfighter.org | Log: Merge |
| 19:17:00 | | Watusimoto_ Quit (Ping timeout: 276 seconds) |
| 19:21:00 | | BFLogBot - Commit 651bd02eeb5c | Author: buckyballreaction | Log: Update ALURE to 1.2 |
| 19:58:00 | | Watusimoto has joined |
| 20:27:00 | raptor | hi Watusimoto |
| 20:27:00 | raptor | i tried to do #44 here: http://bitfighter.org/wiki/index.php?title=Buglist_016 |
| 20:27:00 | raptor | but i was confused at how you |
| 20:28:00 | | koda Quit (Ping timeout: 244 seconds) |
| 20:28:00 | raptor | renamed the rating variables |
| 20:28:00 | Watusimoto | hi |
| 20:28:00 | raptor | i made a note on that page about how far i got |
| 20:28:00 | raptor | hi |
| 20:28:00 | Watusimoto | ok |
| 20:28:00 | Watusimoto | so |
| 20:29:00 | Watusimoto | what's confusing? that mCumScore is never incremented? |
| 20:29:00 | Watusimoto | or something more fundamental |
| 20:29:00 | raptor | well yes, also |
| 20:29:00 | | LordDVG Quit (Ping timeout: 276 seconds) |
| 20:29:00 | Watusimoto | is this related to clinetinfos? |
| 20:29:00 | raptor | i don't really know what that variable is for - the comment didn't make sense for some reason |
| 20:29:00 | | CrazyLinuxNerd Quit (Quit: Leaving) |
| 20:30:00 | Watusimoto | mCumScore? |
| 20:30:00 | raptor | mTotalCumulativeScore <-- that sort of makes sense |
| 20:30:00 | Watusimoto | total for all players' |
| 20:30:00 | Watusimoto | mcumscore must be total for given client |
| 20:30:00 | raptor | ok, then mCumulativeScore? it probably didn't make sense because it wasn't actually used anywhere |
| 20:31:00 | Watusimoto | maybe that's why ratings are broken? |
| 20:31:00 | karamazovapy | anyone have a preference regarding domain registration companies? |
| 20:31:00 | raptor | for sure :) |
| 20:31:00 | Watusimoto | rating = mCumScore / mTotCumScore |
| 20:31:00 | Watusimoto | k: I use namecheap.com |
| 20:31:00 | Watusimoto | k: DON'T USE GODADDY |
| 20:32:00 | Watusimoto | but we may have changed rating since I last checked |
| 20:32:00 | karamazovapy | definitely not using godaddy...those traitorous bastards... |
| 20:32:00 | raptor | i hear http://www.gandi.net/ is pretty good |
| 20:32:00 | raptor | but i have little experience |
| 20:34:00 | raptor | ha! gandi even discounts for the US because of SOPA |
| 20:35:00 | Watusimoto | it's good business to capitaize on the misfortunes of others (godaddy) |
| 20:35:00 | raptor | hehe, yep |
| 20:38:00 | karamazovapy | you only get discounts on transfers |
| 20:39:00 | karamazovapy | I'm registering my business domain - stage517 - do you think it's worth getting .org and .net as well as .com? |
| 20:40:00 | raptor | you probably should if you are planning on becoming popular - otherwise scammers will take those |
| 20:41:00 | raptor | which makes me think the DNS system has big flaws |
| 20:41:00 | Watusimoto | I wouldn't bother, but if the cost is low, the risk is low |
| 20:42:00 | karamazovapy | I hate comparison shopping web services |
| 20:51:00 | sam686 | don't misspell youtube.com by leaving out the E |
| 20:51:00 | karamazovapy | is it tubgirl? |
| 20:52:00 | sam686 | seems to be some kind of survey... |
| 20:55:00 | sam686 | a message says "WAIT! click the cancel botton to..." but i only see a "Leave this Page" or "Stay on this Page" buttons |
| 20:55:00 | Zoomber | godaddy 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:00 | karamazovapy | THEY ONLY HAVE 2 BEST BUY GIFTCARDS LEFT!!! |
| 20:55:00 | karamazovapy | I BETTER FILL OUT THIS SURVEY FAST! |
| 20:55:00 | raptor | i'd leave the site and clear your browser cache |
| 20:56:00 | Zoomber | NONONO dont select the card the COMPUTERS WORTH MORE |
| 20:56:00 | sam686 | i wonder if that is fake, or i wonder if they won't send you a gift card... |
| 20:56:00 | karamazovapy | godaddy is supporting the online piracy provisions in congress that threaten to break the internet |
| 20:56:00 | raptor | of course it is |
| 20:56:00 | sam686 | or it might just be a 1 penny gift card or smaller... |
| 20:56:00 | Zoomber | what raptor said |
| 20:57:00 | karamazovapy | you'll never actually get to the point where you could redeem for a card |
| 20:57:00 | Zoomber | sam686: actually, they're quite real, but you have to read the fine print |
| 20:57:00 | Zoomber | what karamazovapy said |
| 20:57:00 | karamazovapy | I did enough of those stupid things back when I was 12 or 13 |
| 20:57:00 | Zoomber | lol me too |
| 20:57:00 | karamazovapy | but when I did it, internet fraud was a bright new horizon! |
| 20:57:00 | Zoomber | did you ever help someone transfer funds from nigeria? |
| 20:58:00 | karamazovapy | no, but I played several internet lottery games |
| 20:58:00 | karamazovapy | that were free, of course |
| 20:58:00 | Zoomber | lol |
| 20:58:00 | sam686 | oh i wonder why the survey home page is blank? |
| 21:08:00 | raptor | i wonder if there is a way to use precompiled headers for boost to speed compiling in Linux |
| 21:14:00 | Watusimoto | raptor: did you get what you need from me? |
| 21:15:00 | raptor | I still don't understand what/where is needed to be added to mCumulativeScore |
| 21:15:00 | raptor | i figure a setter method is required |
| 21:15:00 | raptor | but where to use it... no idea |
| 21:15:00 | Watusimoto | yes, probably. |
| 21:15:00 | Watusimoto | ok, well maybe we should determine if that's the problem |
| 21:16:00 | Watusimoto | is mcumscore read anywhere (i.e. gotten) |
| 21:16:00 | Watusimoto | ? |
| 21:16:00 | raptor | only in GameConnection::getCumulativeRating() |
| 21:16:00 | Watusimoto | oh good, this should be easy |
| 21:17:00 | Watusimoto | I would first thing try replacing mCumulativeScore in that fn with 20 |
| 21:17:00 | Watusimoto | or something |
| 21:17:00 | Watusimoto | and see if that makes the ratings better |
| 21:17:00 | raptor | ok |
| 21:17:00 | Watusimoto | (they'll still be wrong) |
| 21:17:00 | Watusimoto | and if so, we'll be sure that's the problem |
| 21:17:00 | raptor | compiling... |
| 21:18:00 | raptor | yay, my rating is 0.50 |
| 21:19:00 | Watusimoto | perfect |
| 21:19:00 | Watusimoto | just guessing, but look at this fn |
| 21:19:00 | Watusimoto | void ClientInfo::addScore(S32 score) |
| 21:19:00 | Watusimoto | { |
| 21:19:00 | Watusimoto | mScore += score; |
| 21:19:00 | Watusimoto | } |
| 21:19:00 | Watusimoto | I'm guessing that it also needs a mCumScore += score |
| 21:19:00 | Watusimoto | line in it |
| 21:19:00 | | sam686 Quit (Ping timeout: 245 seconds) |
| 21:19:00 | raptor | oh good, and the rating is changing as bots kill me |
| 21:21:00 | raptor | there is also a LocalClientInfo::addToTotalScore |
| 21:21:00 | raptor | that isn't used anywhere |
| 21:21:00 | raptor | waiit, it is |
| 21:24:00 | Watusimoto | could also add a few lines above where it's used: |
| 21:24:00 | Watusimoto | player->addToTotalScore(points); |
| 21:24:00 | Watusimoto | instead of chanigng addScore() |
| 21:24:00 | Watusimoto | add just after player->addScore(points); |
| 21:25:00 | Watusimoto | not sure which would be better |
| 21:25:00 | Watusimoto | can see it both ways |
| 21:25:00 | | LordDVG has joined |
| 21:25:00 | Watusimoto | but I'm feeling pretty confident that either of these will fix the problem |
| 21:25:00 | raptor | ok, i added: GameConnection::addToCumulativeScore() |
| 21:25:00 | raptor | but, in ClientInfo::addScore, there is no access to a gameConnection object |
| 21:26:00 | raptor | like there is in LocalClientInfo |
| 21:27:00 | Watusimoto | where did you add addTocumscore()? |
| 21:27:00 | Watusimoto | inside of addScore()? |
| 21:27:00 | raptor | i created the method in gameConnection.cpp |
| 21:27:00 | raptor | I have not used it yet because I have no access to GameConnection in ClientInfo |
| 21:28:00 | Watusimoto | how about this? |
| 21:28:00 | Watusimoto | if(points != 0) |
| 21:28:00 | Watusimoto | { |
| 21:28:00 | Watusimoto | player->addScore(points); |
| 21:28:00 | Watusimoto | player->addToTotalScore(points); |
| 21:28:00 | Watusimoto | newScore = player->getScore(); |
| 21:28:00 | Watusimoto | for(S32 |
| 21:28:00 | Watusimoto | gameType.cpp line 1708ish |
| 21:28:00 | Watusimoto | or |
| 21:29:00 | Watusimoto | inside of player->addScore(points) |
| 21:29:00 | Watusimoto | add addToTotalScore(points); |
| 21:29:00 | Watusimoto | either of those solutions shoudl work, both should compile |
| 21:29:00 | raptor | the confusion I'm having is why is one of these: addScore(), addToTotalScore() on ClientInfo and the other on LocalClientInfo |
| 21:30:00 | Watusimoto | yes, this is confusing |
| 21:30:00 | Watusimoto | which is a bad sign |
| 21:31:00 | Watusimoto | noth are on ClientInfo |
| 21:31:00 | Watusimoto | both |
| 21:31:00 | raptor | one is virtual on ClientInfo |
| 21:31:00 | raptor | one is not |
| 21:31:00 | Watusimoto | which one is virtual? |
| 21:31:00 | raptor | addToTotalScore() |
| 21:31:00 | Watusimoto | ok |
| 21:32:00 | Watusimoto | so localClientInfo (LCI) and remoteClientInfo (RCI) both implement addScore |
| 21:32:00 | raptor | they implement addToTotalScore() |
| 21:32:00 | Watusimoto | only remoteClientInfo implements addToTotal... |
| 21:32:00 | Watusimoto | did I get that backwards? |
| 21:32:00 | raptor | yep |
| 21:32:00 | Watusimoto | LCI and RCI implement addToTotalScore |
| 21:32:00 | | sam686 has joined |
| 21:32:00 | | ChanServ sets mode +v sam686 |
| 21:32:00 | raptor | correct |
| 21:32:00 | Watusimoto | only LCI implements addScore |
| 21:33:00 | raptor | nope |
| 21:33:00 | Watusimoto | therefore, server does not keep track of clients scores! voila! |
| 21:33:00 | raptor | only CI (the parent) implements addScore |
| 21:33:00 | Watusimoto | ok, so that means addScore is available on both LCI and RCI |
| 21:33:00 | | LordDVG Quit (Ping timeout: 276 seconds) |
| 21:34:00 | Watusimoto | so LCI and RCI both have a addScore and an addTotalScore, right? |
| 21:34:00 | raptor | no |
| 21:34:00 | raptor | well, yes - but not defined for LCI and RCI |
| 21:34:00 | Watusimoto | CI implements addScore() |
| 21:34:00 | raptor | yes |
| 21:34:00 | Watusimoto | so it is available for all children, including LCI and RCI |
| 21:34:00 | raptor | yes |
| 21:35:00 | Watusimoto | so LCI and RCI both have a addScore and an addTotalScore, right? |
| 21:35:00 | Watusimoto | have as in have available |
| 21:35:00 | raptor | yes, we are minds are one now |
| 21:35:00 | Watusimoto | excellent |
| 21:35:00 | raptor | also RemoteClientInfo::addToTotalScore() has this: |
| 21:35:00 | raptor | TNLAssert(false, "We don't track total score in these parts..."); |
| 21:35:00 | raptor | which is another confusing part |
| 21:36:00 | Watusimoto | ok, so, for our purposes, RCI does not have addToTotalScore |
| 21:36:00 | raptor | haha yep - and all this is why I didn't get too far |
| 21:36:00 | Watusimoto | so... LCI and RCI both have addScore, and only LCI has addTotalScore |
| 21:36:00 | Watusimoto | before we go any further, did we change the way ratings are done? |
| 21:36:00 | raptor | if has = an implementation that does something; then yes |
| 21:37:00 | raptor | i didn't change anything |
| 21:37:00 | raptor | i did some comparisons to 015a and it looks like the getRating() piece in GameConnection does use different logic now |
| 21:37:00 | Watusimoto | we were discussing making them a ratio of something else a while back, in a discussion with k and maybe sam |
| 21:37:00 | Watusimoto | in 016, rating = 0; it's a very simple algorithm |
| 21:38:00 | raptor | hehe |
| 21:38:00 | raptor | maybe i need a different question answered first: |
| 21:39:00 | raptor | why do we keep track of score on ClientInfo (and children) and on GameConnection? |
| 21:40:00 | Watusimoto | server needs to track scores for all players, right? |
| 21:40:00 | Watusimoto | so that's why it's on ClientInfo |
| 21:40:00 | Watusimoto | we haev one CI per player |
| 21:40:00 | raptor | yes that makes sense |
| 21:40:00 | Watusimoto | but we also haev one GC per player |
| 21:40:00 | Watusimoto | so we track it there too |
| 21:40:00 | Watusimoto | :-) |
| 21:40:00 | raptor | ha |
| 21:41:00 | Watusimoto | it may be something that got refactored but not completely |
| 21:41:00 | raptor | see, i think i'm missing an explanation on that one... |
| 21:41:00 | Watusimoto | (hence the bug) |
| 21:42:00 | Watusimoto | the 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:00 | Watusimoto | so server needs 2 nums for each player; points scored by player and points scored by all players |
| 21:42:00 | Watusimoto | from that rating can be calculated by dividing |
| 21:43:00 | Watusimoto | looks like mCumulativeScore is stored only on GC |
| 21:44:00 | raptor | so it looks like were in the middle of moving it off of GC onto ClientInfo |
| 21:44:00 | Watusimoto | where as mScore and mTotalScore are stored on ClientInfo |
| 21:44:00 | Watusimoto | quite possible |
| 21:45:00 | Watusimoto | mScore = score in current game |
| 21:45:00 | Watusimoto | mCumScore = score in current game + score in all previous games |
| 21:45:00 | Watusimoto | mTotalScore = cum scores of other players |
| 21:45:00 | sam686 | there is only one GameConnection on client side |
| 21:45:00 | Watusimoto | yes |
| 21:45:00 | Watusimoto | client is only connected to one game |
| 21:45:00 | raptor | i just have one word for all of this: wacky |
| 21:46:00 | Watusimoto | I refer you to the following comment: |
| 21:46:00 | Watusimoto | ... Right now this is rather bogus -- any improvements welcomed!!! |
| 21:46:00 | Watusimoto | so, perhaps this would be best |
| 21:47:00 | raptor | ok ok, I think i can understand the need for a per-connection tally and a per-game tally |
| 21:47:00 | | koda has joined |
| 21:47:00 | Watusimoto | move mCumulativeScore onto clientInfo for consistency |
| 21:47:00 | raptor | however, is ClientInfo meant to be a per-game thing? |
| 21:47:00 | Watusimoto | make sure that mCumScore is updated properly (currently it stays at 0) |
| 21:47:00 | Watusimoto | bask in the glow of a job well done |
| 21:48:00 | Watusimoto | server has 1 remoteClientInfo for each player |
| 21:48:00 | raptor | and ignorance is bliss! |
| 21:48:00 | Watusimoto | client has 1 remoteClientInfo for each player (including self) |
| 21:48:00 | Watusimoto | client has 1 localClientInfo for self (with more info than remoteClientInfo) |
| 21:49:00 | Watusimoto | in 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:00 | Watusimoto | it's still confusing, but maybe better than before |
| 21:50:00 | raptor | ha! |
| 21:50:00 | raptor | ok, i have another idea |
| 21:50:00 | raptor | architectural change for teh score |
| 21:50:00 | raptor | instead of addScore and addToTotalScore |
| 21:50:00 | Watusimoto | bring it |
| 21:50:00 | raptor | we have addToCurrentGameScores and addToConnectionScores |
| 21:50:00 | raptor | or similar |
| 21:51:00 | raptor | we keep current game scores in ClientInfo |
| 21:51:00 | raptor | and the connection-based ones in GC |
| 21:51:00 | Watusimoto | wait a sec |
| 21:51:00 | raptor | but! |
| 21:51:00 | Watusimoto | we only keep mcumscore in gc, no others |
| 21:51:00 | Watusimoto | continue |
| 21:52:00 | raptor | further refinement: we have to separate the totalscore and currentScore |
| 21:52:00 | raptor | because every player shouldn't get points for mScore AND mTotalScore |
| 21:52:00 | raptor | so starting from scratch again: |
| 21:52:00 | Watusimoto | karamazovapy -- around? |
| 21:53:00 | Watusimoto | I wish I remmebered the discussion we had about this before -- we decided we wanted to change the way ratings were handled, |
| 21:53:00 | Watusimoto | it might make this whole issue moot |
| 21:53:00 | karamazovapy | ish |
| 21:54:00 | Watusimoto | quick question: do yu remember a conversation about changing the way player ratings were calculated? |
| 21:54:00 | Watusimoto | we came up with a simpler scheme, like wins/losses or something |
| 21:54:00 | karamazovapy | kill/death ratio, with an exception for suicides |
| 21:54:00 | Watusimoto | ah yes |
| 21:55:00 | Watusimoto | so raptor, why not do this? |
| 21:55:00 | karamazovapy | but with possible bonuses for achievements like killing streaks |
| 21:55:00 | Watusimoto | get rid of cumulative scores altogether |
| 21:55:00 | Watusimoto | and total scores |
| 21:55:00 | Watusimoto | leaving only current score, which works nicely |
| 21:55:00 | raptor | ok |
| 21:56:00 | raptor | but don't we want the score to be persistent across a connection? i.e. multiple games? |
| 21:56:00 | Watusimoto | and replace rating with a ratio of kills / deaths |
| 21:56:00 | Watusimoto | score? |
| 21:56:00 | Watusimoto | only rating |
| 21:56:00 | raptor | yes, rating |
| 21:56:00 | karamazovapy | you can keep counting K/D across multiple games |
| 21:56:00 | Watusimoto | the only use for total score and cum score is to calcualte the bogus rating |
| 21:56:00 | Watusimoto | yes, exactly |
| 21:56:00 | raptor | ok, then i should decouple the rating piece from the score |
| 21:57:00 | Watusimoto | and we may already be tracking those |
| 21:57:00 | Watusimoto | yes |
| 21:57:00 | Watusimoto | rating becomes a function of some unrelated items |
| 21:57:00 | raptor | so now the question: is totalScore used for the current game at all? |
| 21:58:00 | Watusimoto | that will also simplify the drek that is the scoring |
| 21:58:00 | Watusimoto | I don;t think so |
| 21:58:00 | Watusimoto | I think only for the rating |
| 21:59:00 | raptor | so on GameConnection, I should track kills/deaths? or just the rating? |
| 21:59:00 | Watusimoto | mTotalScore only used in rating calucations |
| 21:59:00 | Watusimoto | track the kills and deaths |
| 21:59:00 | raptor | but not Totals of those for all players? |
| 21:59:00 | raptor | just the one player? |
| 22:00:00 | Watusimoto | yes |
| 22:00:00 | raptor | yay, less vars |
| 22:00:00 | Watusimoto | my rating becomes independent of any totals for anyone but me |
| 22:00:00 | Watusimoto | and we may already track kills and deaths |
| 22:00:00 | Watusimoto | in statistics |
| 22:00:00 | raptor | we do |
| 22:00:00 | raptor | ok, good |
| 22:00:00 | Watusimoto | U32 mKills; // Enemy kills |
| 22:00:00 | Watusimoto | U32 mDeaths; // Times died |
| 22:00:00 | Watusimoto | U32 mSuicides; // Self kills |
| 22:00:00 | Watusimoto | U32 mFratricides; // Tammate kills |
| 22:01:00 | raptor | i think i have something to go on now |
| 22:01:00 | raptor | haha, fratricides |
| 22:01:00 | raptor | forgot about that |
| 22:01:00 | Watusimoto | so, if those are on the server, and you can grab them, the job will mostly be deleting stuff |
| 22:01:00 | raptor | delete delete |
| 22:01:00 | Watusimoto | so rating = mkills / (mdeaths - msucicides) |
| 22:03:00 | karamazovapy | are we going to include achievement bonuses? |
| 22:03:00 | raptor | feature creep!!! |
| 22:03:00 | karamazovapy | this was already on the list! |
| 22:03:00 | raptor | oh |
| 22:04:00 | karamazovapy | https://code.google.com/p/bitfighter/issues/detail?id=137 |
| 22:04:00 | raptor | would i need to track suicides on GameConnection? |
| 22:04:00 | raptor | probably... |
| 22:05:00 | Watusimoto | not on the list for 016! |
| 22:05:00 | karamazovapy | fine fine fine |
| 22:05:00 | Watusimoto | mSuicides? |
| 22:05:00 | Watusimoto | we have it on stats |
| 22:06:00 | Watusimoto | assigned case 137 to 016a |
| 22:08:00 | raptor | ok got GameCOnnection clean-ed up - now |
| 22:08:00 | raptor | hmmm... |
| 22:08:00 | raptor | actually |
| 22:09:00 | raptor | should I move addToTotalScore to CI instead of having it be virtual and implement in RCI and LCI? |
| 22:09:00 | Watusimoto | do we need it at all? |
| 22:10:00 | raptor | exactly |
| 22:10:00 | raptor | ok |
| 22:10:00 | Watusimoto | since we don't care about totalScore, kill it! |
| 22:10:00 | Watusimoto | but the larger answer is yes, if the implementations are the same |
| 22:12:00 | | Flynnn has joined |
| 22:14:00 | | raptor Quit (Ping timeout: 252 seconds) |
| 22:15:00 | | raptor has joined |
| 22:15:00 | | ChanServ sets mode +o raptor |
| 22:16:00 | karamazovapy | for anyone interested, the show Fat Fighters is not about obese mixed martial arts practitioners. |
| 22:16:00 | raptor | argh, i lost my questions |
| 22:16:00 | raptor | ok about the ratings |
| 22:17:00 | karamazovapy | 10 is hot, 1 is not |
| 22:17:00 | karamazovapy | so like, "she's an 8" would mean she's pretty attractive |
| 22:23:00 | raptor | If i use SignedFloat to transmit scores between -1 and 1, how many bits should I use? |
| 22:23:00 | raptor | 8? |
| 22:23:00 | Watusimoto | oh my |
| 22:24:00 | Watusimoto | how many "gradations" do you want |
| 22:24:00 | Watusimoto | ? |
| 22:24:00 | Watusimoto | 255? |
| 22:24:00 | raptor | well ratings are transmitted to 2 decimals |
| 22:24:00 | Watusimoto | so sure, 8 bits |
| 22:24:00 | raptor | decimal places, I mean |
| 22:24:00 | raptor | 8 bits OK? |
| 22:24:00 | Watusimoto | could do 7 bits, but that's just silly |
| 22:24:00 | Watusimoto | yes, 8 |
| 22:25:00 | Watusimoto | why not unsigned float between 0 and 2, then sub 1? |
| 22:25:00 | Watusimoto | wiat, that makes no sense |
| 22:25:00 | Watusimoto | 8 bits |
| 22:25:00 | raptor | haha |
| 22:25:00 | Watusimoto | and don;t listen to me |
| 22:27:00 | raptor | how to find where the deaths are kept track of... |
| 22:30:00 | raptor | wait wait wait - stats are kept on GameConnection |
| 22:31:00 | Watusimoto | so easily availab;e |
| 22:31:00 | raptor | but they're reset after each round |
| 22:31:00 | raptor | cool |
| 22:32:00 | Watusimoto | kills and deaths are reset? |
| 22:33:00 | Watusimoto | oh, because (perhaps) we only report per-game stats? |
| 22:33:00 | sam686 | they reset, so stats don't accumulate and add up forever.. |
| 22:33:00 | raptor | ok whatever, i'm going to work within it ... |
| 22:34:00 | raptor | do we count fratricides in the rating? |
| 22:35:00 | raptor | karamazovapy: what do you think? |
| 22:41:00 | raptor | how about: return F32(mKills - mFratricides) / F32(mDeaths - mSuicides); |
| 22:42:00 | raptor | looks like fratricides are already excluded in kills |
| 22:42:00 | raptor | so that would reduce your rating if you kill a teammate |
| 22:43:00 | Watusimoto | yes |
| 22:43:00 | Watusimoto | sounds good |
| 22:43:00 | raptor | ok, let's see if this compiles and works |
| 22:43:00 | Watusimoto | great |
| 22:44:00 | Watusimoto | then we can accumulate those stats (in separate vars) to track stats session-long? |
| 22:44:00 | Watusimoto | for ratings purposes (not reporting) |
| 22:50:00 | raptor | this is the first usage of TNL SignedFloat |
| 22:50:00 | raptor | and it's borken |
| 22:53:00 | Watusimoto | :-) |
| 22:53:00 | Watusimoto | maybe that's why no one has used it! |
| 22:53:00 | raptor | i think i need a little help with this error: http://pastie.org/3121360 |
| 22:55:00 | Watusimoto | ah, if you're in tnlMethodDispatch, something went way wrong |
| 22:56:00 | Watusimoto | turn off your computer and back up slowly |
| 22:58:00 | Watusimoto | I have no idea about that bug... is tha from using TNLSignedFloat? |
| 22:58:00 | raptor | yes |
| 22:59:00 | raptor | i gotta stop digging myself in deeper |
| 22:59:00 | raptor | sam686: any idea of why: no matching function for call to ‘read(TNL::BitStream&, TNL::SignedFloat<8u>*)’ |
| 23:00:00 | raptor | in tnlMethodDispatch.h |
| 23:00:00 | Watusimoto | never implemented? |
| 23:00:00 | raptor | i clearly see the method on line line 264 |
| 23:01:00 | raptor | wow, this tnl header is nuts |
| 23:04:00 | raptor | ok forget this - i guess i'll just have to convert to an int |
| 23:05:00 | raptor | but it will always nag me |
| 23:05:00 | sam686 | i don't know... |
| 23:06:00 | Watusimoto | multiply by 256, send as an int, divide on other end |
| 23:06:00 | Watusimoto | still 8 bits |
| 23:07:00 | raptor | template of a template of a templat |
| 23:07:00 | raptor | is how i describe that header |
| 23:08:00 | Watusimoto | see? using an int isn't so bad |
| 23:08:00 | sam686 | how are you adding SignedFloat? |
| 23:08:00 | sam686 | this works for me: SignedFloat<8> test1; Types::read(*stream, &test1); |
| 23:09:00 | raptor | ah ha! I might need to down convert to SignedFloat from F32 |
| 23:09:00 | raptor | so i have: Vector<SignedFloat<8> > GameType::mRatings |
| 23:09:00 | raptor | and I do mRatings.push_back(F32) |
| 23:10:00 | raptor | which may be the problem - should I cast the F32 to a SignedFloat? |
| 23:10:00 | sam686 | i don't know unless i see your code |
| 23:11:00 | raptor | tada!: http://sam686.maxhushahn.com/upload/fix_ratings.diff |
| 23:12:00 | raptor | it is being used on gameType.cpp:3232 |
| 23:13:00 | sam686 | gameType.cpp compiles without errors... |
| 23:13:00 | raptor | what |
| 23:13:00 | raptor | GCC!! |
| 23:15:00 | raptor | oh myg oodness |
| 23:15:00 | raptor | i move the template up 100 lines in tnlMethodDispatch.h and it compiled |
| 23:15:00 | raptor | what on earth |
| 23:16:00 | raptor | WHAT THE CRAZY |
| 23:17:00 | sam686 | maybe there is too many templates... |
| 23:18:00 | raptor | so nuts |
| 23:19:00 | sam686 | maybe 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:00 | sam686 | maybe move read(TNL::BitStream &s, TNL::Vector<T> *val) and write (Vector related stuff) to the bottom? |
| 23:22:00 | sam686 | at the bottom while inside the namespace Types |
| 23:24:00 | raptor | that doesn't work - what does is what I'm about to commit... |
| 23:25:00 | sam686 | ok |
| 23:25:00 | raptor | pushed |
| 23:26:00 | | BFLogBot - Commit a278ca419207 | Author: buckyballreaction | Log: Moving the templates higher in the header file lets GCC compile for some reason |
| 23:27:00 | raptor | ok, so the ratings are working - sort of |
| 23:27:00 | raptor | but they never go below zero |
| 23:27:00 | raptor | kills/death should never go below zero, right? |
| 23:28:00 | sam686 | well, i think suicide only makes the score -1, but no negative for kills? |
| 23:29:00 | raptor | fratricide is negative |
| 23:29:00 | raptor | we ignore suicide |
| 23:31:00 | sam686 | gameStats.h, i made anything that cannot be negative, U32 |
| 23:31:00 | sam686 | the only thing that seem to be able to be negative is score |
| 23:31:00 | raptor | that makes sense |
| 23:31:00 | Watusimoto | raptor: 4 billion kills! |
| 23:31:00 | Watusimoto | U32! |
| 23:31:00 | raptor | so what do i do with 4 billion / 0 deaths? |
| 23:31:00 | Watusimoto | none of this java rubbish, with it's 2 billion kills |
| 23:32:00 | Watusimoto | 0 deaths, 1+ kills =>> rating = 1.0 |
| 23:32:00 | raptor | rating should still be 1.0, right? |
| 23:32:00 | Watusimoto | yes |
| 23:32:00 | sam686 | U32 kills = -1 doesn't work or it will underflow and wrap around to 4294967295 |
| 23:32:00 | raptor | kils is always postive |
| 23:32:00 | Watusimoto | 1+ death, 0 kills = 0 rating |
| 23:33:00 | Watusimoto | ok, so rating now goees from 0 to 1 |
| 23:33:00 | Watusimoto | I don't think that will break anything |
| 23:33:00 | Watusimoto | all that matters is comparative values anyway, for creating teams |
| 23:33:00 | sam686 | oh and 1 kill / 0 deaths, kill death ratio = what number? infinity? |
| 23:33:00 | Watusimoto | or mult. by 2 and subtract 1 |
| 23:33:00 | raptor | how's this evil logic?: http://pastie.org/3121535 |
| 23:34:00 | Watusimoto | 1 kill, 0 deaths = 1.0 rating |
| 23:34:00 | raptor | basically you can only go negative if you kill teammates more than you die... |
| 23:34:00 | sam686 | F32(mKills - mFratricides) / F32(mDeaths - mSuicides) what happens when mDeaths=2 and mSuicides = 2 ? |
| 23:35:00 | sam686 | infinity? |
| 23:35:00 | raptor | oops |
| 23:35:00 | raptor | >= |
| 23:35:00 | sam686 | what if mFratricides = 200 ? |
| 23:35:00 | raptor | ok, abs() |
| 23:36:00 | Watusimoto | http://pastie.org/3121548 |
| 23:37:00 | Watusimoto | hooold up here |
| 23:37:00 | sam686 | what if mKills = 100, mDeaths = 100, and mSuicide = 99, |
| 23:37:00 | Watusimoto | 3 kills, 2 deaths, gives you rating of 1.0, highest possible? |
| 23:38:00 | sam686 | F32(mKills - mFratricides) / F32(mDeaths - mSuicides) |
| 23:38:00 | sam686 | F32(100 - 0) / F32(100 - 99) |
| 23:38:00 | sam686 | == 100 |
| 23:38:00 | sam686 | suicides may game you higher rating |
| 23:39:00 | sam686 | want to try: F32(mKills - mFratricides - mSuicides) / F32(mDeaths) |
| 23:39:00 | sam686 | or not sure.. |
| 23:39:00 | Watusimoto | breaking out my spreadsheet |
| 23:40:00 | sam686 | does mSuicides also count as mDeaths? |
| 23:41:00 | raptor | yes |
| 23:41:00 | sam686 | what if multiple players have rating of 1.0 ? |
| 23:42:00 | sam686 | that won't help with team sorting when several players have 1.0 |
| 23:43:00 | sam686 | in existing 015a, no 2 players can have 1.0, i think |
| 23:44:00 | raptor | kills - deaths / kills + deaths |
| 23:44:00 | raptor | yes? |
| 23:44:00 | Watusimoto | just plotted that |
| 23:45:00 | Watusimoto | it gets negative |
| 23:45:00 | raptor | great! |
| 23:45:00 | Watusimoto | 10 kills, 10 deaths, rating = 0 |
| 23:45:00 | raptor | i still handle negative |
| 23:46:00 | Watusimoto | some random values |
| 23:46:00 | Watusimoto | 6 4 -0.2 |
| 23:46:00 | Watusimoto | deaths kills calculation |
| 23:46:00 | sam686 | suicide? |
| 23:46:00 | Watusimoto | 9 6 -0.2 |
| 23:46:00 | Watusimoto | assuming d-s and k-f |
| 23:46:00 | Watusimoto | 2 10 0.67 |
| 23:46:00 | Watusimoto | 9 9 0 |
| 23:47:00 | Watusimoto | 5 9 0.29 |
| 23:47:00 | Watusimoto | these seem goog |
| 23:47:00 | Watusimoto | good |
| 23:47:00 | Watusimoto | 6 7 0.08 |
| 23:47:00 | Watusimoto | 5 5 0 |
| 23:47:00 | Watusimoto | 8 3 -0.45 |
| 23:47:00 | Watusimoto | 7 1 -0.75 |
| 23:48:00 | Watusimoto | so when 0 d and 0 k, rating is 0 |
| 23:48:00 | Watusimoto | which is neutral |
| 23:48:00 | raptor | yes |
| 23:49:00 | raptor | which algo? |
| 23:49:00 | Watusimoto | kills - deaths / kills + deaths |
| 23:49:00 | raptor | and that seems good? |
| 23:50:00 | sam686 | seems like that kind of good |
| 23:52:00 | raptor | ok, how about this: http://pastie.org/3121630 |
| 23:53:00 | raptor | wait, i forgot to ignore suicides |
| 23:54:00 | sam686 | S32 new_Death = mDeath - mSuicides; ? |
| 23:54:00 | Watusimoto | what does this mean? |
| 23:54:00 | Watusimoto | (mSuicides are included) |
| 23:54:00 | sam686 | or, death coount without suicide |
| 23:54:00 | raptor | ok updated: http://pastie.org/3121640 |
| 23:55:00 | raptor | why are simple algos so hard some times |
| 23:55:00 | sam686 | mKills=0 mDeaths=1 mSuicides=1 mFratricides=0 |
| 23:55:00 | sam686 | divide by zero? |
| 23:56:00 | Watusimoto | same code, different formatting |
| 23:56:00 | Watusimoto | http://pastie.org/3121648 |
| 23:56:00 | Watusimoto | div by 0 trapped by first if |
| 23:56:00 | Watusimoto | if(mKills == 0 && mFratricides == 0 && mDeaths == 0) |
| 23:57:00 | sam686 | not when mDeaths=1 and mSuicide=1 |
| 23:57:00 | sam686 | if(0 == 0 && 0 == 0 && 1 == 0) |
| 23:57:00 | raptor | ok oke, fixt that: |
| 23:57:00 | sam686 | if(true && true && false) |
| 23:58:00 | Watusimoto | deaths != 0, F32((mKills + mFratricides) + (mDeaths - mSuicides) != 0 |
| 23:58:00 | Watusimoto | oh, wait! |
| 23:58:00 | sam686 | maybe you want a if(mKills == 0 && mFratricides == 0 && mDeaths - mSuicides == 0) |
| 23:58:00 | Watusimoto | if mDeaths = 1, and that death was a sucide... div by 0 |
| 23:59:00 | raptor | pastie is being slow..... |
| 23:59:00 | Watusimoto | we're gumming it up |
| 23:59:00 | Watusimoto | just as a note, I hate this format: |
| 23:59:00 | raptor | there we go: http://pastie.org/3121661 |
| 23:59:00 | Watusimoto | if(something) |
| 23:59:00 | Watusimoto | //comment here |
| 23:59:00 | raptor | ok |
| 23:59:00 | Watusimoto | do_this() |
| 23:59:00 | raptor | i like it above the if |