#bitfighter IRC Log

Index Search ←Prev date Next date→

IRC Log for 2015-06-17

Timestamps are in GMT/BST.

00:14:24Nothing_Much has joined
01:22:27Lamp89 Quit (Remote host closed the connection)
01:34:03Lamp89 has joined
02:07:14Watusimoto has joined
02:21:11Lamp89 Quit (Read error: Connection reset by peer)
02:21:38Lamp89 has joined
03:09:36Lamp89 Quit ()
04:13:56Skybax has joined
04:30:59Skybax Quit (Ping timeout: 240 seconds)
05:46:02Watusimoto Quit (Ping timeout: 264 seconds)
06:33:20Nothing_Much Quit (Quit: Leaving)
07:48:42Flynnn Quit (Quit: This computer has gone to sleep)
08:39:56koda has joined
09:04:45Nothing_Much has joined
09:54:38Nothing_Much Quit (Remote host closed the connection)
11:25:42empyrean has joined
12:22:40Watusimoto has joined
12:43:53Watusimoto Quit (Ping timeout: 256 seconds)
13:35:23watusimoto has joined
13:35:23ChanServ sets mode +o
13:46:11raptor has joined
13:46:11ChanServ sets mode +o
13:47:11raptorman, that was a hard exam
14:27:46Lamp89 has joined
14:27:46Lamp89 Quit (Changing host)
14:27:46Lamp89 has joined
15:12:34koda Quit (Ping timeout: 264 seconds)
16:21:57Lamp89 Quit (Read error: Connection reset by peer)
16:22:23Lamp89 has joined
16:55:08Lamp89 Quit (Read error: Connection reset by peer)
16:55:34Lamp89 has joined
16:55:34Lamp89 Quit (Changing host)
16:55:34Lamp89 has joined
16:56:51Nothing_Much has joined
17:23:49Lamp89 Quit (Read error: Connection reset by peer)
17:24:15Lamp89 has joined
17:26:55Flynnn has joined
17:46:57koda has joined
18:08:28Lamp89 Quit (Read error: Connection reset by peer)
18:08:42Skybax has joined
18:08:54Lamp89 has joined
18:08:54Lamp89 Quit (Changing host)
18:08:54Lamp89 has joined
18:11:55Lamp89 Quit (Read error: Connection reset by peer)
18:12:10watusimotohey, raptor... what are you doing here? :-)
18:12:14SkybaxHello peoples
18:12:19watusimotohi Skybax
18:12:22Lamp89 has joined
18:12:33SkybaxWhat's new on the Bitfront
18:12:47watusimotoI've been working on unglamorous stuff
18:12:56watusimotofixing memory leaks
18:12:59watusimotoyay!
18:13:02watusimoto(not)
18:13:14SkybaxWell at least now we can all remember to play more often
18:13:27watusimotoI met a girl last night who did a report for her journalism class on Bitfighter
18:13:38SkybaxDid she get an A+?
18:13:45watusimotoDouble A+
18:13:58SkybaxAwesome+
18:14:03watusimotoIt turns out she was partnered with my son... which explains it
18:14:28SkybaxYeah that makes sense lol
18:25:27Skybax Quit (Read error: Connection reset by peer)
18:34:21raptorhi watusimoto
18:34:28raptori'm reviewing your memory leak fix
18:34:48raptori have one more final tomorrow, then i start a new double-paced term on Monday!
18:35:12watusimotodouble paced! awesome!
18:35:19watusimotoI do have a BF question for you
18:35:34raptorsems like we've had a LuaObject class before...
18:36:08watusimotocurrently, my memory leak work has been focused on registering objects when they are created by lua; unregestering them when they are "addedToGame" or whatever; deleting any remaining objects when the script ends
18:36:19watusimotothis works great in the editor, when script lifetime is well regulated
18:36:40watusimotorun a plugin... script runs, finishes, gets cleaned up, all is good
18:37:02watusimotoin-game it's a bit messier... you've got robots and levelgens that linger around for a long time
18:37:12watusimotosolution is to clean everything up when the game ends
18:37:16watusimotothat seems to work
18:37:26watusimotothe final situation is the messiest: console scripts
18:37:34watusimotoright now you can do x = TestItem.new()
18:37:46raptorok, i was wondering about that - if there was clean-up in the interim of a game or just at the end
18:37:51watusimotothen quit the editor, play a game, then come back to the editor, and your x variable is still there
18:38:19watusimotoso I'm thinking that with console scripts, there is no cleanup, because you never really know when the script is "finished"
18:38:38raptori didn't know we ran console scripts
18:38:46raptorjust editor/levelgen
18:38:51watusimotowell, you can type lua comands at the console prompt
18:38:55raptorah ok
18:39:16watusimotox= TestItem.new(); x.AddToGame() -- or whatever
18:39:25watusimotothat will add an item to the editor
18:39:29raptorok, yes
18:39:34watusimotoactually it won't, but somehting similar to that will
18:39:46raptoryes :)
18:39:50watusimotoyou could define x, then go play for an hour, and come back and add it to the editor
18:40:04watusimotoI guess that's just the nature of the console
18:40:23watusimotoI suppose it's not really a leak, strictly speaking
18:40:44raptoryeah - also the leak would happen so slowly if done by hand that the memory would be negligible
18:40:56watusimotounless you... wrote a loop!
18:41:01raptorunless someone wrote a function in the console... yes
18:41:05watusimotoor that
18:41:29watusimotobut even if the console were java, with no possibility of leaking, the problem would be the same
18:41:40watusimotobecause the console never ends
18:41:50watusimotowe could, I suppose, clean it up when you quit the editor
18:42:04watusimotoactually, there is one other problem
18:42:43watusimotowe only register objects in one place -- so if you create an object in the console, then play a game, then come back to the console, your x will still be available, but it will point to a deleted object
18:42:50watusimotothe game will probably crash
18:43:03watusimoto(if you try to use it)
18:43:15watusimotothat's because we only have a single object list
18:43:38watusimotoand when adding items to that list, there is no way to tell if you are coming from a console or script or whatever
18:43:47watusimotothey all just "come from lua"
18:44:21raptorah
18:44:26watusimotowhich I'm not sure how to resolve
18:44:55raptorah there it is in servergame (I was looking at where you clean up the objects)
18:44:58watusimotoif we had continued with different L instances for each script, we'd be able to tell which was which
18:45:21watusimotomaybe there is some variable within the L that would specify what is running
18:45:25raptorwe could destroy the console when loading a new level
18:45:50watusimotowell.... we have the same problem when we run a plugin
18:45:54raptorwait, but we want to rewrite the console any ways
18:46:10watusimotoyes, but this problem will remain with any console
18:46:42watusimotowe basically need to not register obejcts when created in the console, and I don't know how to determine that
18:47:07raptorah sorry, i was talking about the first issue - not the conole-play-game-back-to-console-deleted-pointer problem
18:47:26raptorthere is one solution - not let the console create objects
18:47:36watusimotoyes -- get rid of console scripting
18:48:00raptorlooking at other games - consoles seem to do client side stuff only
18:48:02watusimotoI'll need to see if I can get any info out of the L instance about what is going on
18:48:14watusimotocreating stuff in the editor is client side only
18:48:16Skybax has joined
18:49:02watusimotoI'll bet console-editor plugin-back-to-console-deleted-pointer will crash
18:49:14raptori have one other suggestion for the tracker system - call eraseAllPotentiallyUntrackedObjects() on a timer while the game is running
18:49:41watusimotothat could create a problem if a script tracks objects across timer boundaries
18:49:51raptoryeah, i bet it would... safeptr and if detected, remove it from the list
18:50:19Lamp89oh wow there's been a discussion
18:50:20raptori can't think of a use case where a script would want to create an object, say 5 seconds after calling .new()
18:50:27Lamp89*there is
18:50:41watusimotoI can't either, unless the programmer was a doofus
18:50:42raptorsorry, :addtogame()
18:50:46raptorexactly!
18:50:57watusimotobut still... I'd rather lose the memory for a bit than risk a crash
18:51:16raptorso... a friendly warning - "you tried to add an object waaaay too late. what on earth are you doing??"
18:51:20watusimotobecause if the programmer is doing it right, there will ne no leaks to clean up
18:51:38watusimotoonce the obj is added to the game, it will be handled by C++
18:51:58watusimotowe're only talking about objects that are created but never handed over
18:52:14raptorso.. this also brings up the idea of loop protection - if someone creates a 1000000 objects in a loop in a single tick(), that should be cut and cleaned up
18:52:17watusimotoso the whole thing is somewhat theoretical
18:52:29watusimotoyeah, then there's taht
18:52:33raptoryes, true
18:52:57watusimotoI don;t know how to protect against DOS scripts
18:53:06watusimotothere are ways, I'm sure
18:53:10raptorso maybe the level clean-up at the end is OK - unless someone writes another DND-like level with massive issues
18:53:31watusimotoas long as the objects get passed to C++, we're ok from the leak POV
18:53:36raptoryes - i think kaen or sam686 even found a technique for Lua somewhere
18:53:40watusimotoeven if the script goes bezerk for other reasons
18:54:15watusimotoI mean you could just add an asteroid eery tick... no DOS script would protect against that, and the game would still crash
18:54:42watusimotoor get so slow you wish it would crash
18:54:49raptoryes, i suppose we can't foolproof fools
18:55:05watusimotoI mainly want to close out tickets in the bug tracker :-)
18:55:08raptoruhh.. that was not a disparaging remark about level designers...
18:55:36watusimotoso I think my answer is to try to find a way not to track objects created in the console
18:55:38raptorthat's a legitimate motivation!
18:56:05watusimotosince we'd never clean them up in any event, because we don't knwo when the console "ends"
18:56:45watusimotoso I need to see how I can tell what's going on inside the "L"
18:57:11watusimotowhich, frankly, scares me
18:57:19raptori'm sure there's a way - but it'll be scary
19:34:01Skybaxhttps://www.google.com/search?q=mr+l&safe=off&espv=2&biw=1733&bih=901&source=lnms&tbm=isch&sa=X&ei=uwOCVaKvC8jooATf8JzgAQ&ved=0CAYQ_AUoAQ&dpr=1
19:35:39raptorit's skinny, green mario!
19:36:04SkybaxIt's M L
19:36:07SkybaxMr. L
19:47:08Lamp89Flynnn
19:48:11Lamp89how do I get flynn
20:05:08raptorjust typing his name should alert him, if he's paying attention
20:13:01Flynnn Quit (Quit: This computer has gone to sleep)
20:57:21Lamp89I've been typing his name thousands of times for weeks, I still can't get him
21:07:05Nothing_Much Quit (Quit: Leaving)
21:32:04Nothing_Much has joined
21:35:14Lamp89hai
21:47:56Nothing_Much Quit (Quit: Leaving)
21:48:11Flynnn has joined
21:50:04empyrean Quit (Remote host closed the connection)
21:50:41watusimotohey yo Flynnn... Lamp89 wants to chat!
21:50:48Lamp89Flynnn
21:50:58raptorwhat who?
21:51:10watusimotowhere when?
21:51:16watusimotoand why???? oh why????
21:51:20Lamp89I think Flynnn just has his client running with his computer or something like that so most of the time he is not actually there
21:51:30raptoris the windows upgrader really completely broke?
21:51:43watusimotois that a q for me?
21:51:49raptoryes
21:51:51raptorsorry
21:51:56raptori'm perusing the issues list
21:52:02watusimotothe part that closes the running instance is totally broken
21:52:09watusimotoother than that it works ok
21:52:16raptorah ok
21:52:57raptori wonder if there is some cross-platform way to do self-contained game updates, which could work for osx, windows, and linux standalone
21:53:26raptoroh... i remember a question i had for you
21:53:50raptorthis is a nice mind-numbing refactor i'd like to do (once you're done tinkering with Lua): https://code.google.com/p/bitfighter/issues/detail?id=314
21:54:40watusimotothat would be great
21:54:44raptorbasically instead of c++ bitfighter methods like lua_getFlagCount, or whatever, we'd rename it to something like: luaBF_getFlagCount
21:54:56watusimotoI'm basically not tinkering with anything that would conflict with that
21:54:56raptorthe question is - what should the new prefix be?
21:55:30raptorit could be none: luaGetFlagCount
21:55:35watusimotoI thought the case was get rid of the _
21:55:40watusimotoso what you wrote
21:55:45watusimotoluaGetFlagCount
21:56:01raptorah ok, yeah, i guess i interpreted it as just: something different
21:56:07watusimoto>>> I propose renaming Bitfighter lua API methods to luaFoo rather than lua_foo.
21:56:30raptoris that proposal ok, then?
21:56:36raptoror can we do better!
21:56:50watusimotoI don't really understand the purpose of the case... but maybe it's good?
21:56:56raptorluaCPlusPlusBitfighter_getFlagCount
21:57:10Lamp89https://www.youtube.com/watch?v=CBBvXth-O_g
21:57:11watusimotoyou can make that a tad longer, I think
21:57:21watusimotowhy does everything have to be so short???
21:57:42raptorthe purpose is because it messes up method completion in IDEs, and there may be a possible collision with future Lua methods since they've standardized on lua_
21:58:16watusimotoyeah, that's what the case says :-)
21:58:45watusimotois it the _ that interferes with the ide?
21:59:00watusimotoI like the current system because it is clear that these methods are somehow "other"
22:00:18raptorit's that when you want a lua_ method from the lua API, it's bundled with all the BF ones, too
22:00:31raptorif you haven't seen this: http://discuss.joelonsoftware.com/default.asp?joel.3.219431.12
22:00:43raptormaybe i shared that already (about long names)
22:01:39raptorwait, maybe that wasn't the one i was thinking about... but that's funny anyways, and describes some of my JavaEE experience quite well
22:01:45watusimotook, fine, the proposal is ok
22:01:49watusimotoI have to run
22:01:53watusimotoback on later
22:01:56raptorlater!
22:01:59watusimotogood luck with your test tomorrow!!!
22:02:06raptoryay linear algebra!
22:02:08raptorthanks!
22:02:22watusimotoLamp89: good luck finding Flynnn!!!
22:02:41watusimoto Quit (Quit: Leaving.)
22:08:56Flynnn Quit (Quit: This computer has gone to sleep)
22:11:08empyrean has joined
22:53:53koda Quit (Quit: koda)
23:02:02Lamp89 Quit (Read error: Connection reset by peer)
23:02:28Lamp89 has joined
23:13:05Nothing_Much has joined
23:18:50Lamp89hai Nothing_Much
23:18:55Nothing_MuchHowdy
23:47:12Lamp89 Quit (Read error: Connection reset by peer)
23:47:48Lamp89 has joined
23:55:52Lamp89 Quit (Remote host closed the connection)

Index Search ←Prev date Next date→

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