#bitfighter IRC Log

Index Search ←Prev date Next date→

IRC Log for 2013-11-27

Timestamps are in GMT/BST.

00:06:19kumul Quit (Quit: Leaving)
00:06:38kumul has joined
00:06:54kumul Quit (Client Quit)
00:07:14kumul has joined
00:07:14kumul is now known as kumool
00:07:25kumool Quit (Read error: Connection reset by peer)
00:07:40kumool has joined
00:16:41Bob1 has joined
00:22:49sam686for some odd reason I keep wanting to spell it out "Loudout" when it should be loadout.
00:23:09Bob1 Quit (Ping timeout: 250 seconds)
00:24:48kaenok, thread's bug is pretty tricky after all
00:25:18kaenat first I thought we were just missing a null check, but I just can not get removeFromGame to behave properly during addItem
00:25:46kaenand on top of that, I can't even get removeFromGame to just throw an lua error instead
00:28:17raptordoes removeFromGame() for bots need to do extra stuff?
00:28:53kaennot currently. maybe I can override though and cook something up
00:29:42kaenlike maybe I can make the onAddedToGame call abort... good idea raptor !
00:29:52sam686in BfObject::lua_removeFromGame what if changing from true to false in removeFromGame? (note false may memory leak even more but might crash less, telling it not to delete)
00:30:21raptorremeber to make the BfObject signature virtual
00:30:43kaenalready is :)
00:30:57kaenI silently thanked whoever was here last
00:32:05watusimotook, good night all
00:32:29kaennight!
00:33:38kaenI think that would work, too, sam686. but raptor did a lot of work making lua memory-safe so far
00:33:50kaenwith one well-documented exception.
00:41:58Skybax_ Quit (Read error: Connection reset by peer)
00:49:22koda Quit (Quit: koda)
00:50:09raptorso actually I have a question - did calling TestItem.new() in 018a, then changing the level, produce a memory leak as well?
00:50:43raptoror actually, was there every a case where that exception didn't leak?
00:52:42iamtaz has joined
00:55:02sam686On Ship::setLoadout
00:55:12sam686mLoadout = loadout;
00:55:12sam686TNLAssert(mLoadout.getActiveWeapon() == loadout.getActiveWeapon(), "Delete this assert!");
00:55:28raptorheh
00:55:36sam686the most useless assert ever..
01:00:27iamtazhttp://imgur.com/HPOIwkr
01:01:33BFLogBot Commit: a4729c569ac4 | Author: sam8641 | Message: Now keep the currently selected weapon on ship's respawn. Also fixes stats mChangedLoadout counting on every respawn while using non-default loadout.
01:04:45iamtaz Quit (Ping timeout: 250 seconds)
01:27:39Kiryx Quit (Ping timeout: 272 seconds)
01:32:16watusimoto Quit (Quit: Leaving.)
01:46:06Flynnn Quit (Quit: This computer has gone to sleep)
02:53:53BFLogBot Commit: d8ff6f698ecb | Author: buckyballreaction | Message: Always select first weapon slot on loadout change
02:55:21raptorkaen: may I close out the sandbox bug?
03:09:25kaen Quit (Ping timeout: 248 seconds)
03:17:57kaen has joined
03:18:34kaenraptor, sounds good to me!
03:18:40kaenI just forgot was all :P
03:18:46raptorok ey doke
03:19:14raptorhooray!: https://code.google.com/p/bitfighter/issues/list?cursor=bitfighter%3A305&q=type%3DDefect label%3D019
03:20:20raptoranother idea - what if there was a way to detect all objects created with .new() in a single 'tick' and verify they were addToGame?
03:21:17raptormaybe that's too complicated, too...
03:22:01sam686its possible to do new() in main(), delay it a bit, and finally add it after several ticks or several events..
03:22:35raptori'm trying to think of ways to clean up the leak appropriately
03:23:11sam686however if a level changes in a middle of delayed addToGame, it never got added to game and probably memory leak
03:23:30raptorI was thinking about searching for and removing everything left in LuaWrapper cache when a script ends, but if multiple scripts are running that would be hard
03:23:51raptoryeah... delayed addToGame probably won't work
03:24:14raptorhmmm... maybe... maybe if I hijack the .new() method to keep track somehow?
03:26:46sam686maybe something like I done, http://sam6.25u.com/hg/bf019/rev/01414236b4ed but maybe something different?
03:27:48raptorI remember that - but it didn't work with the new LuaW for some reason. I should search the logs for why again..
03:32:08kaenfixed!
03:32:17BFLogBot Commit: 3fab053157fa | Author: kaen | Message: fix crash when bot:removeFromGame is called during addItem(bot)
03:33:21raptoryay!
03:34:11raptorkaen: was that test supposed to be commented out?
03:43:14Flynnn has joined
03:54:52kaenyep
03:55:02kaenit fails because I can't get the onShipSpawned to fire
03:56:13raptorah, the event system isn't hooked up very well yet?
03:56:56kaenI think I'm missing an EventManager::update call
04:51:45kaenraptor, I've got a working a lua debugger, but hooking it up to the console looks like a serious project
04:52:06raptoroh really
04:52:11raptoryeah
04:52:18kaenbecause it will need to hijack the main event loop in order for the console to receive events and render inside of dbg_read()
04:52:33kaenand then there's the case of handling it on the server
04:52:40raptorwe need to rewrite oglconsole first, i think
04:52:41kaenbut, it works great from a terminal
04:52:52kaenshould I push what I've got so far?
04:53:00raptorhmm
04:53:02Skybax has joined
04:53:16raptorhow does it work with the sandbox?
04:53:19Flynnn Quit (Quit: This computer has gone to sleep)
04:53:26kaenlocal refs to dangerous functions
04:53:30kaenjust like stacktrace
04:53:39SkybaxWindows 8.1 made my computer all wonky
04:53:46noneofmynickswor has joined
04:53:48SkybaxNow all the windows are like three times as big
04:54:17raptoroh, actually, i thought you killed stacktracer. it still works?
04:54:52kaenyep, works great
04:55:18raptorhow did i miss where you hook that up...
04:56:05kumool Quit (Ping timeout: 248 seconds)
04:56:12kaenit gets loaded into the global namespace in lua_helper_functions
04:56:22kaenwhich is what I did with debug
04:56:46kaenso lua_helper_functions is kind of the catch-all place to hook up privileged scripts
04:57:22raptorah ha
04:57:23raptorok
04:57:48raptorand you're doing the same with the debugger
04:57:54kaenright
04:57:59kaenI also ensured that you can't get to the dangerous parts through the debugger repl
04:58:11raptorso does the debugger always engage?
04:58:26kaenno, you have to put a dbg() call somewhere in your script
04:58:52raptorok, does it affect performance in the script in any way?
04:58:55kaenI chose this one: https://github.com/slembcke/debugger.lua
04:59:15raptorreading..
04:59:41kaennope, it doesn't set a hook until you set a breakpoint or something
05:00:54raptorlooks good actually
05:01:01raptorsure, push it
05:01:17raptorbut
05:01:24raptormake sure readline support is off
05:02:21kaenit only works in luajit I think
05:02:23raptoroh interesting, it support it through luajut
05:02:25raptor*jit
05:02:27raptoryes
05:02:47raptorok, i'm OK with it
05:03:02kaenit does support ctrl+w and ctrl+u though
05:07:18BFLogBot Commit: 974a88107879 | Author: kaen | Message: add working lua debugger (only works from a terminal currently)
05:07:29kaenthe project doesn't have a license yet, so I submitted an issue
05:08:51kaenhis other projects are MIT and he's still active, so I'm sure he'll be happy to oblige
05:14:44kaenthis feels like a win already
05:14:56kaena nice REPL, local viewing and stack tracing
05:14:59kaenstepping, breakpoints
05:15:37kaenmuch better than assert(false) and print()
05:16:30Skybax_ has joined
05:18:45Skybax Quit (Ping timeout: 246 seconds)
05:19:34Flynnn has joined
05:20:12sam686theres a stupid bug, if you have levchange but not admin, the server kicks you when changing levels 2 or more times for idling, immediatly after changing level
05:21:24noneofmynickswor Quit (Quit: Leaving)
05:24:06Skybax_That's happened to me a few times
05:24:21kaenok, I want to state publicly that the two remaining 019 issues on the tracker don't feel release-blocking to me
05:24:37Skybax_Release away!
05:24:41kaenthe lingering frame is minor and not frequent
05:24:55kaenthe memory leak is documented, non-fatal and a user error
05:26:00sam686I managed to get into a server side suspend bug on 018a just now.. /idle and restart level with you the only player in a server (does not happen on 019)
05:26:06kaenSkybax_, we've been about to release for like seven months
05:26:15raptorhaha
05:26:16sam686move ship it keeps lagging backwards
05:26:18kaendon't get your hopes up :P
05:27:15Skybax_ is now known as Skybax
05:27:29SkybaxSeven months until now!
05:28:07sam686I think many months of work was writing test cases that have mostly mothing to do with bitfighter itself, it only makes sure some things don't break
05:30:19kaenmany months of work? no. the tests have been pretty cheap concerning developer time
05:30:21sam686oh and, good luck reading thousands of commits for making a list of changes, if theres any...
05:30:49kaenthere was some time investment decoupling many of the classes, but that has benefits in the core codebase to
05:30:50kaentoo
05:31:04sam686although many of changes is not the gameplay itself, its the graphics changes.. something that could have done between 019 and 019a
05:31:34kaenactually the graphics stuff was very a time-consuming task
05:31:48kaenit involved replacing some core components and lots of iterating on the graphic design
05:31:58raptori'll read the commits... :)
05:32:25raptorit brings on the nostalgia
05:32:39sam686about half of network changes was from me..
05:32:51kaenthat sounds right :)
05:32:55kaensome important work there, too
05:33:01kaenif only TNL had a test battery ...
05:34:00sam686I just had a 018a server crash on me (Soccer game, multiple soccer balls + 20 s_bots), debugging, might not get much out of it with release build but I have debug symbols in it..
05:36:43Skybax_ has joined
05:38:59Skybax Quit (Ping timeout: 272 seconds)
05:40:14raptor!release
05:40:14BFLogBotTo release, follow the checklist: http://bitfighter.org/wiki/index.php?title=Release_checklist
05:40:22raptorshould we do some playtesting first?
05:40:47kaenyes
05:41:07raptornow a good time? should I host?
05:41:25Skybax_?
05:41:51raptori'll start it in gdb, too
05:43:44raptorgot my first assert: http://pastie.org/pastes/8511585/text
05:44:19sam686does skybax have the latest version of 019?
05:44:28sam686that might be part of a problem
05:44:44raptorSkybax_: did you just try to join my server with 019?
05:44:55Skybax_Yes
05:45:06Skybax_ is now known as Skybax
05:45:18raptorguilty!: w1ue9b7d8fafbe04251688dc871a0r0TheSkybaxrinjd>reOdtw
05:45:30raptorok, do you want to playtest with us?
05:45:37SkybaxYes
05:45:45raptori'll get you a new build
05:45:54SkybaxI like playing. And testing. SO playtesting would be doubly good
05:46:01raptorheh
05:46:23raptorthis'll take about 15... in the meantime please don't join the server :)
05:47:16SkybaxHahaha does it crash it?
05:47:57sam686theres a ton of TNLAssert being triggered when you try to join incompatible server,
05:48:13kaensorry was afk
05:48:24sam686normally without Assert triggering, it will either blank screen or auto kick for version mismatch
05:52:23Flynnn Quit (Ping timeout: 272 seconds)
05:54:39Flynnn has joined
05:56:38Skybax Quit (Ping timeout: 264 seconds)
05:57:00raptorsam686: you're welcome to join...
05:57:28Skybax has joined
05:57:28sam686http://sam6.25u.com/upload/bitfighter_019_rev_974a88107879.zip thats about right for windows users, for testing, right?
05:57:45raptoryou beat me! (I was already compiling...)
05:57:56Skybax:D
06:02:32SkybaxUhhh... there's no .exe file in here
06:12:34sam686oops
06:13:24sam686http://sam6.25u.com/upload/1bitfighter_019_rev_974a88107879.zip new download
06:13:33kaenSkybax, ^
06:13:59sam686it may be named bitfighter_r.exe cause bitfighter.exe is claimed be debugger and _r is a faster release build..
06:14:35raptordid you add standalone.txt?
06:14:51raptoroh, that's not needed if TNL_DEBUG is enabled
06:15:16sam686forgot to add standalone.txt too..
06:15:53sam686but if bitfighter.ini already exists (I made sure i don't give mine cause of login password) not in .zip file
06:16:11sam686it uses bitfighter.ini if exists on same directory
06:21:26kaenafk for a few
06:21:31sam686I lagged out from raptor server
06:21:39raptorassert
06:22:08raptorweird: http://pastie.org/pastes/8511630/text
06:41:37Nothing_MuchHowdy
06:51:03sam686lag, crash or halt?
06:51:14raptorNothing_Much: tried to join on old 019...
06:51:27Nothing_Muchoops
06:51:30Nothing_Muchdid I screw something up?
06:52:06raptortriggered a warning and paused my server - you have an older copy which won't work
06:52:06sam686if you not on latest 019, you need to update, changes made causing older 019 not able to connnect
06:52:16Nothing_Muchah right
06:52:23raptorso if you want to join, please recompile newest
06:52:31Nothing_Muchright
06:52:40Nothing_Muchlemme remember the command for hg
06:52:53sam686hg pull
06:53:01raptorhg up
06:53:03sam686or hg pull http(somwhere)
06:53:38sam686hg up tip usually does the trick for latest changes
06:54:06Nothing_Muchalright, next was the disabling gl shaders thing
06:54:36sam686maybe we need to bring back an ini option to disable line smooth
06:55:07Nothing_Muchyeah that, sorry
06:55:20raptoryeah...
06:55:41sam686its the VideoSystem.cpp glEnable(GL_LINE_SMOOTH); you want to remove if using faster rendering of software opengl (or lack of hardware)
06:55:48raptorbecause cheap opengl hardware is becoming popular
06:56:14sam686sadly not all the drivers available, mostly new ones
06:56:25Nothing_Muchit's that and there's no drivers that exist for Linux on this particular gpu
06:56:31Nothing_Muchbut they're in development atm
07:00:36Skybax Quit (Ping timeout: 246 seconds)
07:05:41raptorrelease bugs - http://board.net/p/bf_019_polish
07:06:52raptorI'll work on font ones
07:07:06raptoroh man, actually... i'm going to bed
07:07:08raptorgood night!
07:07:11sam686ok
07:07:32Nothing_Muchlater
07:08:41raptor Quit ()
07:09:03kaenbedtime for me too
07:09:05kaenlater guys
07:09:09Nothing_Muchlater kaen
07:17:38Kiryx has joined
07:29:37Flynnn Quit (Quit: Leaving)
07:32:55Iamtaz has joined
07:46:18Invisible has joined
07:58:05Platskies has joined
08:01:37Iamtaz Quit (Quit: Page closed)
08:08:04Darrel has joined
08:12:42koda has joined
08:20:09Skybax has joined
08:56:57Invisible Quit (Ping timeout: 272 seconds)
08:57:30Skybax Quit (Ping timeout: 246 seconds)
09:09:56Skybax has joined
09:14:20Skybax_ has joined
09:15:03Skybax Quit (Ping timeout: 272 seconds)
09:17:17watusimoto has joined
09:17:18ChanServ sets mode +o
09:19:23Skybax has joined
09:22:17Skybax_ Quit (Ping timeout: 272 seconds)
09:23:54watusimoto Quit (Quit: Leaving.)
09:29:54watusimoto has joined
09:29:54ChanServ sets mode +o
09:30:06watusimoto Quit (Client Quit)
09:37:42watusimoto has joined
09:37:43ChanServ sets mode +o
10:02:21Invisible has joined
10:17:03watusimoto Quit (Quit: Leaving.)
10:24:42watusimoto has joined
10:24:43ChanServ sets mode +o
10:28:35watusimoto Quit (Client Quit)
10:44:15Skybax Quit (Ping timeout: 272 seconds)
10:45:54Skybax has joined
10:50:50Invisible Quit (Ping timeout: 245 seconds)
10:54:19YoshiSmb has joined
11:15:17Skybax_ has joined
11:15:30Skybax Quit (Ping timeout: 240 seconds)
11:29:11YoshiSmb Quit (Ping timeout: 250 seconds)
11:36:59Invisible2 has joined
11:37:14Watusimoto has joined
11:58:38Platskies Quit (Read error: Connection reset by peer)
12:17:30Platskies has joined
12:44:57watusimoto1 has joined
12:52:49Invisible2 Quit (Ping timeout: 272 seconds)
12:55:43Watusimoto Quit (Ping timeout: 252 seconds)
13:11:56Invisible has joined
13:36:24Platskies Quit (Quit: Platskies)
13:36:53Invisible Quit (Ping timeout: 272 seconds)
13:50:19watusimoto1 Quit (Quit: Leaving.)
14:45:44kaenwell, this projectile logic is pretty pasta-like
14:46:08kaenSeeker::collide Seeker::collided Seeker::handleCollision
14:47:42kaensam686, seeker just has its impulse set to 0
14:47:44kaenon purpose
14:48:03kaen"set force to 0 here so we have no kickback"
14:48:20Skybax_ Quit (Ping timeout: 245 seconds)
14:49:13Invisible has joined
14:58:26Skybax has joined
14:59:26destroyerimo has joined
15:04:45kaenmorning all
15:09:22BFLogBot Commit: 646d80d94c56 | Author: kaen | Message: add some small knockback to seeker and reduce out blast radius
15:13:13raptor has joined
15:13:13ChanServ sets mode +o
15:14:17raptorgood morning!
15:16:59kaenworking on the one-point scoreboard thing
15:17:11raptorhi
15:17:11kaenand good morning :)
15:17:14raptorok
15:18:02raptorwe did some good play testing last night
15:18:28raptorI'm honestly shooting for friday for release - because I have the whole day to fight with packaging, etc... :)
15:19:24kaenwell that was easy
15:19:38BFLogBot Commit: c013b51c43d8 | Author: kaen | Message: remove (now counter-productive?) special alignment for scores ending in 1
15:19:51raptorinteresting...
15:20:15raptorha! oneFixFactor
15:27:03kaenI'm going to try my hand at the in-game chat wrapping
15:27:25kaenor actually, I'll focus on critical bugs now that I'm warmed up
15:27:31kaenso I'll take a look at energy mismatch
15:30:47kaenok, 300 ms simulated lag gives me reasonably accurate energy measurements
15:31:07kaenbut I'm worried it might be some subtle bug with a complex reproduction case ...
15:45:16raptorsam686: said it happened when adding lag, then placing a mine and switching weapons at the same time
15:45:33raptori couldn't reproduce, though
15:46:38kaenI'll try that just to make sure
15:53:27kaenraptor, I was able to fix the commander's map zoom issue
15:53:41kaenbut I did it by not including ships in the extents calculation
15:53:45kaenhow do you feel about that?
15:54:13raptorheh
15:54:24raptorthat's the whole reason it was added in the first place
15:54:36raptorto smoothly update extents if a ship goes out of bounds
15:54:50kaenbah. ok
15:54:51raptorwithout calculating every tick
15:54:59kaenwell at least I can confirm that ships spawning is the cause
15:55:24raptori think it has to do with coords being set to 0,0..
15:55:30kaenright
15:55:32raptorship's location, i mean
15:55:34raptorok
15:55:38kaenwhat else could we set the coords to?
15:55:45raptoryeah that's the thing...
15:55:54raptorthis architecture was possibly flawed from the start
15:56:12kaenit would make sense to include the *local* player's ship
15:56:15kaenbut not others, imo
15:56:16raptorunless there's some way to ignore a ship in a just-spawned state
15:56:23kaenI'm looking for that right now
15:56:34raptorisDestroyed?
15:56:38raptoror something like that..
15:57:09kaenmHasSpawned might be it
15:57:14raptorI like your seeker changes - the outer radius is just right for the speed of the seekers
16:00:39kaenah, thanks
16:03:39kaenok, isDestroyed() won't do it
16:03:43kaenmHasSpawned is robot-only
16:04:10raptormaybe just ignore the ship if its coords are 0,0
16:04:15raptorugly hack
16:04:21kaenI was just going to ask how you feel about that :)
16:04:27raptorheh
16:04:41raptori don't know another way at the moment... the whole thing is hacky anyways
16:05:04raptormaybe doc it as an ugly hack and call it good...
16:06:31kaenindeed
16:08:55alex_velea has joined
16:13:01alex_velea Quit (Ping timeout: 250 seconds)
16:13:10kaenuh oh
16:13:14kaenthat's not working either
16:13:24raptorwhat
16:13:27kaennor is fabs(p.x) < .1 && fabs(p.y) < .1
16:13:56raptorhuh - can you print out the coords when it spawns?
16:14:47kaensure thing
16:14:51kaenhere's my patch http://ix.io/9aL
16:15:27alex_velea has joined
16:16:00alex_veleaHello everyone :)
16:16:06kaenhello :)
16:16:09alex_veleaWhat ide do you use on linux? :)
16:16:15kaenvim ;)
16:16:24kaenotherwise, codeblocks
16:16:24alex_veleaOhh
16:16:25alex_veleaI see
16:16:34kaensometimes I go nuts and fire up eclipse-cdt
16:16:48alex_veleaeclipse for c++?
16:16:51kaenbut at that point I'm usually settling in for a few hours of broad refactoring
16:16:52kaenyes
16:17:12alex_veleaand about the compiler .. gcc-4.8 it's ok?
16:17:25kaenyep
16:17:37kaenthat's what I'm using
16:17:39raptorgcc > 4.2 should work
16:19:50alex_veleaand a sidenote .. solarized for color scheme?
16:19:55BFLogBot Commit: 44d38326476b | Author: buckyballreaction | Message: Fix long-line message wrapping issue with font in-game. This wrapping logic needs serious clean-up and consolidation
16:20:02raptorok, back in a bit..
16:21:34LordDVG has joined
16:21:39Invisible Quit (Ping timeout: 246 seconds)
16:23:09kaenI do like solarized
16:23:14kaensometimes I go with zenburn instead
16:23:21kaenalex_velea, I was mostly joking about vim
16:23:43kaenyou'll have a much better time with codeblocks/eclipse unless you're already a vim veteran
16:23:56kaenand even if you are, you should take a look at sublime text instead :)
16:26:46Skybax Quit (Ping timeout: 246 seconds)
16:26:47LordDVG Quit (Read error: Connection reset by peer)
16:28:22alex_veleai use vim for over 3 years, but i was surprised that it is used for such big projects
16:29:08kaenyou have to install a lot of plugins to make it work even a little bit
16:29:20kaenthat's why I recommend sublime text with vintage mode enabled
16:29:56kaenit does better with large projects, has jump-to-definition, a project file list, and still supports most vim motions
16:30:30kaenyou can even generate sublime-project files with cmake and build with ctrl+B
16:30:35kaenand jump to compiler errors
16:30:53alex_veleaWhen i try to cmake the project .. it says - with others errors- this.
16:30:55alex_veleaCMake Error: your CXX compiler: "CMAKE_CXX_COMPILER-NOTFOUND" was not found. Please set CMAKE_CXX_COMPILER to a valid compiler path or name.
16:31:11alex_veleaI did not found anything relevand on this error :(
16:31:51kaenhave you run:
16:31:57kaensudo apt-get install libsdl1.2-dev zlib1g-dev libpng12-dev libopenal-dev libvorbis-dev libspeex-dev libmodplug-dev cmake build-essential mercurial
16:31:59kaenyet?
16:32:10alex_veleajust install mercurial
16:32:22kaenok, you need to install all of the deps
16:32:27kaenthat line should get you going
16:33:03kaenand make sure you are running "cmake .." from bitfighter/build
16:33:10alex_veleaCan you put that in the bootstrap link?
16:33:26alex_veleabootstrap page
16:33:26kaenmost certainly
16:33:27kaen!gci
16:33:27BFLogBotGCI Students Welcome! Please see: http://bitfighter.org/wiki/index.php/GCI_Student_Bootstrap for getting started.
16:34:44alex_veleaNow it works .. thank you @kaen
16:35:58kaenyou bet :)
16:38:33Watusimoto has joined
16:40:45kumool has joined
16:42:20raptorok next bug
16:42:45raptorkaen: are you OK with me using DroidSans for global chat, as well?
16:43:47alex_velea Quit (Ping timeout: 250 seconds)
16:44:08kaenyep!
16:45:34alex_velea has joined
17:11:07BFLogBot Commit: 6b7878b5b303 | Author: buckyballreaction | Message: Use consistent font in global chat as in in-game chat
17:12:15raptorback later
17:13:29Bob1_ has joined
17:15:42Bob1_ Quit (Client Quit)
17:16:21raptor Quit (Ping timeout: 240 seconds)
17:19:15destroyerimo Quit (Read error: Connection reset by peer)
17:24:44thread_ has joined
17:25:16thread_kaen: quick, what's your favorite genre of music.
17:27:16kaenindie rock, I suppose
17:27:18kaenmaybe punk
17:27:26thread_ok, crisis averted
17:27:41kaen saves the day yet again :)
17:28:03thread_answering questions is more fun when it saves the world
17:28:08kaenwhat was the crisis, thread_ ?
17:28:14kaenalso I fixed your bug I think
17:28:30koda Quit (Ping timeout: 246 seconds)
17:28:55thread_yay!! umm... I guess the crisis was... that... Dr. Dastardly was... eating... a sandwich?
17:29:17thread_sometimes its hard to make things up
17:31:08kaenit was a hell of a bug you found
17:31:18thread_pulling and rebuilding my copy.
17:31:45kaenyou exposed a significant architectural flaw, and triggered a somewhat interesting edge case
17:32:07thread_yay?
17:32:19kaenbecause of the way events fire, you were removing the bot *before* it was fully added to the game
17:32:37kaenyay indeed, because the fix probably prevents other similar bugs beyond what you found
17:32:38thread_soooo... I broke physics
17:33:01thread_well that's good news
17:33:11kaenmore like you broke ontology
17:33:52kaendestroying something before it exists
17:34:29thread_maybe I'm a time traveler
17:34:48LordDVG has joined
17:42:25LordDVG Quit (Read error: Connection reset by peer)
17:53:55fordcars has joined
18:00:12LordDVG has joined
18:09:19kaensam686, Watusimoto, I took a crack at the remaining commander's map bug (when ships spawn on a level that doesn't cross 0,0
18:09:45kaenthe problem is that the render and actual pos are out of sync, and MoveObject::calcExtents uses one as the min and the other as the max
18:09:47LordDVG Quit (Read error: Connection reset by peer)
18:09:55kaenso I have a patch that appears to fix it: http://ix.io/9aR
18:10:10kaenbut it's ugly, so I was hoping that one of you could think of a better way
18:10:22kaenI have to step out but I'll be back in probably an hour
18:16:16raptor has joined
18:16:17ChanServ sets mode +o
18:17:50fordcarslater!
18:17:53fordcars Quit (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client)
18:19:03Watusimoto Quit (Ping timeout: 240 seconds)
18:20:27kaenraptor, http://ix.io/9aR
18:20:33kaenseems to fix it but I don't like it
18:20:59raptorhi
18:21:25raptorhmm... onGhostAdd I imagine is a virtual object eslewhere
18:21:29raptormethod
18:21:34raptorwhat don't you like about it?
18:22:05kaensetting the actualpos to the renderpos
18:22:09kaenfeels wrong
18:22:17kaenit'll get overwritten on the next update, though
18:23:05kaenalthough onGhostAdd is client-only so I guess it's harmless
18:23:11kaenI have to step out now, back soon
18:23:24raptoris renderpos in this case the control object position, or the ship position?
18:23:35kaenthe ship
18:23:49kaenwhich is the control object right?
18:24:25raptoryeah - i'm not to familiar with the weirdness of being the ship
18:24:29raptor*too
18:24:49kaenterminology collision: do you mean the TNL control object for the connection, or the object in control of the program flow during this method call?
18:24:53kaen(ship is both in this case)
18:25:23raptorTNL control object is what I thinking
18:25:37kaenbut this thing getting its position set is the ghost of the ship
18:25:54raptoryes ok, client-side only
18:25:56kaenso not the actual control object (which is the server-side antecedent of the ship)
18:26:06kaenalright, really going!
18:26:23raptorsetting the 'actualpos' to the renderpos - that means getting the death position at previous location?
18:26:48raptormaybe the client-side constructor can do the same?
18:26:52raptorok
18:26:54raptorlater
18:27:44LordDVG has joined
18:41:05alex_veleaHello guys :)
18:42:38alex_veleaDoes anyone have any ideea about how the level editor works? I work on the undo - redo project and i kinda have some questions that i could't figure it out
18:43:31thread_I think everyone that would be a help is AFK... except maybe raptor?
18:44:32alex_veleaI know that watusimoto has any ideeas about this, but he left :(
18:45:05thread_He was on earlier. You two are good at missing each other
18:45:37alex_veleaAnyway. I remember a gci task that said sth about a n point star poligon.
18:46:30alex_veleaIn the editor it's the option to drag wals with a lot of points .. and to make rectangles the are not parallel to ox and oy .. but i don't know actually how it's that coded.
18:46:57alex_veleaI did not found where it's that part.
18:48:31alex_veleaIn the /zap/gridDB.h you cand find some DatabaseObject and GridDatabase and i think that's what i'm working with in the end, but it doesn't seems to do what it actually does. Hope smbdy can help me :D
18:49:56thread_sorry, I don't do a whole lot in the source itself
18:50:19thread_I am, however, really good at bug reports
18:51:59raptorhi, i have to run, but, alex_velea - you'll want to look at the method, saveUndoState()
18:52:25raptorbasically every action is an entire copy of the GridDatabase object pointers
18:57:19alex_veleaI saw that.
18:57:33alex_veleaAnd at first i thought i had a solution for that.
18:57:47alex_veleaFor each ocject of the class to create a self 'undo' version.
18:58:13alex_veleaSo when i make a change the new object will have a copy of the old one .. sth like that :)
18:58:41alex_veleadut this does not work .. since you can delete multiple objects at once.
18:59:08alex_veleaShould i call an 'action' a set of little actions that are like i proposed up?
19:07:23kaenhi alex_velea
19:08:14kaenI want to preface this discussion with a disclaimer that the editor is hands-down the most spaghetti part of the entire engine
19:09:39kaenso the basic architecture of the editor is that it has a Game instance inside of it
19:10:06kaenso it's essentially a UI that allows manipulating objects within a Game
19:10:53kaenthe Game itself contains a gridDB, which is where all of the objects are stored (using gridded binning to make collision detection and things like that faster)
19:12:06kaenthe way undo/redo currently works is that after every action that manipulates an object, a copy of the *entire* griddb is made, then the action is performed on the new copy, then to undo the editor just changes the pointer back to the old gridDB
19:12:22kaenand the opposite is done for redo
19:13:11kaenso the core of your task is to replace that system with a new system that saves the actual actions themselves in a stack, and applies or unapplies those actions to a single gridDB
19:13:17kaenso the actions are like transformations
19:13:38kaenyou might have a MoveAction, a DeleteAction, a ChangePropertyAction, and so on
19:35:01alex_veleaThank you very much, kaen.
19:36:18alex_veleaSidenote: it's ok if i iterate over every object to see if it has changed? it's the easy way .. O(number_obj) to time but only O(actions_made) of memmory instead of O(actions * number_obj) of memmory.
19:36:37alex_veleaGood enought? or should i improve the time too. Personally i don't see that a big problem
19:38:34thread_kaen: Robot has the constructor Robot(position, teamIndex, scriptName, scriptArg), but what if I want defaults except for scriptName?
19:39:17sam686could use isSelected() for each objects selected, which is usually changed when moving/positioning selected items
19:40:02sam686thead_ you can just do "" for script name, I think it just does default bot that way
19:40:26kaenalex_velea, that's ok with me, but I think the easiest way to implement it would be to create the Action objects in the methods that are performing the logical actions
19:40:41thread_no, i want to specify bot script, its the other fields I want default
19:40:51kaenthen you could just inject the list of objects affected by that action into its constructor or something
19:41:22kaenthread_, try passing nil
19:41:36thread_I'll give it another try
19:41:37kaenactually no that won't work ...
19:41:38kaenhrm
19:42:00kaenmaybe I can add another signature for it
19:42:08thread_And here I thought I might go 24 hours without finding a bug
19:42:12kaenhehe
19:42:26kaenthis one is an "enhancement" if it makes you feel better :)
19:42:30thread_ok
19:42:37thread_better
19:43:28sam686team index could be like -100 (out of range) and I think it do the default team, which is adding bot into the smallest team
19:43:28LordDVG Quit (Read error: Connection reset by peer)
19:43:52sam686the position? try NIL? don't know
19:44:30kaenuse Robot.new() (no args), pump the point and team from that robot, then do Robot.new(pos, team, script, args)
19:44:33kaen:P
19:44:49thread_what do I do about args?
19:45:09kaensorry, that was ambiguous
19:45:20sam686if you don't want args, just don't do fourth arguments
19:45:36thread_I don't really have any need for args, but not sure what to pass through
19:45:43thread_ah
19:45:54raptorthree more commits and we bump watusimoto off the front page of 'changes'!
19:45:57sam686Robot.new(pos, team, script) should work, right?
19:47:15thread_Assert: Grid Database must not be NULL! in c:\source\bitfighter\zap\luascriptrunner.cpp line 1104
19:47:29kaen:<
19:47:50sam686trouble with getPos() without adding to game?
19:48:11kaenit's findAllObjects
19:48:29kaenthread_, is that being called from within a bot?
19:48:31sam686bot findAllObjects without addingToGame?
19:48:52thread_what? within a bot?
19:49:19sam686but how to find objects in levelgen, without bot?
19:49:24thread_bf:addItem(Robot.new(point.new(0,0), 1, "beelzebot.bot"));
19:49:31thread_this causes the error
19:49:33kaenbf:findAllObjects, sam686
19:49:49kaenok, can you pastie beelzebot.bot for me?
19:50:19thread_currently, its just a copy of s_bot
19:50:29kaenNOOOOOOOOooooooo......
19:50:51thread_so I DID find a bug
19:51:11sam686if your addItem in main() or in ontick?
19:51:57thread_umm... its actually inside of an if statement inside of onShipSpawned
19:52:08thread_(its not an infinite loop)
19:56:42kaenhmm... looks like it might be an easy fix
19:56:45kaentesting
19:58:54LordDVG has joined
20:03:48kaenactually I can't duplicate it :<
20:04:46thread_hrmm...
20:04:49kaenthread_, robot.cpp, line 295, try adding this line: mLuaGridDatabase = game->getGameObjDatabase();
20:04:59kaenjust below the line: mLuaGame = game;
20:05:38kaenalso, try running it in VS and getting a stack trace
20:07:25sam686vs? not sure if thread_ on linux, if so, more like gdb ./bitfighter in linux, start, continue, get to the bug, and: backtrace
20:07:42thread_Imma using VS. its VS 2013, does that make a difference?
20:07:48kaenthat should be fine
20:08:18sam686thats fine to, when it hit the bug, just select all of the stack and copy
20:10:23kaenman. I worked so hard to add one feature and instead I get a dozen bugs :<
20:10:49kaengood thing you're here, thread_, or I would have released a bunch of great ways to crash servers.
20:11:01thread_That's what I'm here for
20:11:52thread_umm... it worked
20:12:18thread_HE DIDN'T EVEN TOUCH IT! HE'S PURE EVIL!
20:14:15kaenadding that line worked?
20:14:25kaenor it worked without modifying the source?
20:14:56alex_veleavoid saveUndoState(bool forceSelection = false); .... here .. it's like in python? if you don't add a parameter it'll asume it's false or what's the purpose of that = ?
20:14:59thread_It worked with adding the line. commenting it back out and retrying to make sure that line was the difference.
20:15:09kaenalex_velea, correct
20:15:14alex_veleathx :)
20:15:27kaenno problem :)
20:16:28thread_yes, adding the line fixed it...
20:16:42kaenhmm ... ok
20:16:59thread_should I commit it and push?
20:17:11kaenhehe I don't think you can push just yet ;)
20:17:29thread_I don't understand why it fixes anything
20:17:31kaenI'm going to run the test suite with that line just to make it doesn't subtly break anything
20:18:03LordDVG Quit (Ping timeout: 272 seconds)
20:18:56kaenwell, basically, the whole engine is bonkers, and I hyper-bonkified this code path when I added support for Robot.new()
20:19:19kaenit *should* be pumping mLuaGame for the gridDB, but apparently somewhere in some edge case it isn't
20:19:38thread_ummm... kay
20:20:16thread_on a related note, is there a bitfighter badge for finding tons of bugs?
20:20:54kaenthere really should be
20:21:03kaenI was actually thinking about that a couple days ago
20:21:15thread_I volunteer as tribute
20:21:19kaen:)
20:24:25kaensam686, did you see my commander's map fix from earlier?
20:24:50kaenhttp://ix.io/9aR
20:25:05kaenI feel like there is a better way, but I can't grok the logic
20:26:47sam686maybe something to do with unpackUpdate (which is client side)
20:27:16kaenyeah, unpackUpdate only updates actualPos
20:27:35kaenbut if you set renderPos in unpackUpdate you thwart the interpolation
20:27:56kaenand if you only set it in onAddedToGame, you get the bug when the ships enter scope
20:28:24kaenthe root cause of the bug is that actual and render are way off on the first go-through
20:28:51kaenin my tests, one was -3000,-3000, the other was 34 34
20:29:26kaenand moveObject's extents are calculated as Rect(actual, render)
20:30:02kaenso when it loops through the objects to find the worls extents in gridDB, it sees the ship as stretching from it's real point to roughly 34, 34
20:37:09sam686I guess it wasn't the position, it was the extent in grid database, and commander map using getExtent or similar
20:37:22sam686if(positionChanged) updateExtentInDatabase(); at bottom of unpackUpdate appears to fix
20:37:39sam686in chip.cpp
20:37:42sam686ship.cpp
20:38:24kaenreally?!
20:38:27raptormmmm chips
20:38:36kaenI tried that but in the move block
20:38:55kaengood work sam686 :)
20:39:51kaenok, loadmanagement tests are failing
20:39:53kaenloadout*
20:40:00thread_hmm
20:40:22phillreeder has joined
20:41:45kaens->setLoadout(LoadoutTracker("Armor,Shield,Triple,Mine,Bouncer"), true); // Set loadout in silent mode
20:41:46kaenEXPECT_EQ(s->getActiveWeapon(), WeaponBounce);
20:41:47kaenis failing
20:42:12raptorprobably becasue we made active weapon changes
20:42:15kaenbut this passes right before it:
20:42:15BFLogBot Commit: 55a23be35fe7 | Author: sam8641 | Message: Fix commander map extent problem that was causing off-center map to zoom out.
20:42:16kaens->setLoadout(LoadoutTracker("Armor,Shield,Triple,Mine,Bouncer"), true); // Set loadout in silent mode
20:42:16kaenEXPECT_EQ(s->getActiveWeapon(), WeaponBounce);
20:42:25kaenderp
20:42:38raptoryeah, first index will always be selected on change now
20:42:42kaens->setLoadout(LoadoutTracker("Armor,Sensor,Phaser,Bouncer,Seeker"), false); // Set loadout in noisy mode
20:42:43kaenEXPECT_EQ(s->getActiveWeapon(), WeaponBounce); // Bouncer should still be active weapon
20:42:46kaenoh ok
20:42:50kaengood so it's a flake :)
20:42:55kaenour first flaky test!
20:42:58kaengood job, team
20:43:16sam686loadout might be failing, after raptor's changes "Always select first weapon slot on loadout change"
20:43:43phillreederhey guys whats goin on
20:43:54kaenlooks like it's failing exactly correctly, so I'll just update the test :)
20:43:59kaennot a lot, phillreeder
20:44:53phillreederso I just spent 3 days trying to compile pysoy from a new linux install and I want to shoot myself in the face please take me back
20:45:11raptorhahahaha
20:46:10kaenrofl!
20:46:20kaenwe missed you
20:46:38sam686simple but long and space eating solution in linux: install every single package in linux, eventually you will have everything needed to compile anything.
20:47:15phillreeder...I don't think that's right but I don't know enough about it to refute you
20:47:33kaenI wonder if apt-get install '*' would work ...
20:47:42kaenI feel like you'd get package conflicts
20:47:46raptori th ink pysoy may be one of those 'special' projects that has weird deps only gotten by compiling other weird things
20:48:39phillreederyea, I spent a day building and installing libsoy and finally got that only to discover pysoy wouldn't find it so that failed
20:48:51phillreederthat's about the time I ran away crying
20:49:18raptordeep breaths
20:49:26raptoryou'll get it eventually -
20:50:14sam686maybe you could choose a linux distro that have pysoy already in it ready to go... if such linux distro exist.
20:50:18raptoralthough I admit, i've never attempted to do pysoy
20:51:22phillreederwelp, I'm gonna take a break from that and try the scrollbar
20:51:56phillreederthis oughta be fun
20:54:21raptorother tasks should be going up today soon...
20:54:37phillreederare they fun?!
20:54:59raptorit depends on what you like to do - i'd find about 1/2 of them fun :)
20:55:03phillreederwait, no, are any of them bots?
20:55:40raptoractually, two of them are bot enhancements
20:55:48phillreederWOOP, lego I want
20:56:03thread_so kaen, what do I need to be doing about this bug?
20:58:50raptor is now known as raptor6
20:58:57raptor6#&
20:59:02raptor6 is now known as raptor
21:03:34kaenthread_, I'm just cleaning some other things before I push the fix
21:05:34sam686Theres a similar and maybe not so annoying bug: editor keeps wanting to do zoom out to see (0,0) even though theres nothing there and level off center
21:06:23sam686its when you press Z or on level load
21:09:48thread_It has behaved that way since its Zap! days. I'm actually accustomed to it now
21:10:40phillreederhey raptor, those tasks coming sooner or later tonight? I'm thinking of starting something right now
21:12:07raptorThe guy who uploads them for us just said "going up shortly". I expect this to mean sometime today
21:12:18raptorI'm sorry that's all the info I have
21:12:23phillreedermmk thanks
21:20:06BFLogBot Commit: 836086807d59 | Author: kaen | Message: fix failing loadout test
21:20:08BFLogBot Commit: ae5ff9711a73 | Author: kaen | Message: set mLuaGridDatabase in Robot::onAddedToGame to prevent an assertion when running bf:findAllObjects from the bot
21:21:46BFLogBot Commit: c5fec8660656 | Author: kaen | Message: silence annoying startup message from debugger.lua
21:38:53alex_velea Quit (Ping timeout: 250 seconds)
21:59:59kaenmaybe we need a manager manager
22:03:38thread_who's going to manage that?
22:04:00raptorhi again
22:04:22kaenhello hello
22:04:31raptorso kaen, what do you think I should adjust to bouncer? maybe lower the count for bounce-time extensions?
22:05:01kaenI think so
22:05:13raptorhere are the relevant constants:
22:05:14raptorstatic const U32 MAX_LIVETIME_INCREASES = 6;
22:05:15kaenI'm not completely decided on it yet
22:05:16raptorstatic const U32 LIVETIME_INCREASE = 500;
22:06:02raptorso that could add a theoretical 3 seconds to the life
22:06:40raptorwhich triples its lifetime
22:06:57kaenI think double would be ok
22:07:04raptoryeah, me too...
22:07:09kaenit's original lifetime is one second, right?
22:07:12raptor1.5
22:07:17kaenoh derp
22:07:41kaenanyway, I think change the increase to 250
22:07:51raptoryeah, i was thinknig that too
22:07:54raptorok will do
22:08:59BFLogBot Commit: 304f1188fd07 | Author: buckyballreaction | Message: Reduce Bouncer life increase rate
22:20:16raptori'm not sure what to do about the font assert
22:20:59raptorit happens because starting the game with 'bitfighter -dedicated' calls a fontmanager function for textitem
22:21:20raptorbut the -dedicated flag makes it so the FontManager is never initialized
22:25:30Invisible2 has joined
22:31:46sam686Assert "Pushing duplicate UI onto mPrevUIs stack. Intentional?" after pressing ESC in a middle of joining a server (but not totally joined into server) and going into server list.
22:40:41kaenraptor, what do you think of http://ix.io/9b2 ?
22:45:02Watusimoto has joined
22:46:00raptor awakens
22:46:38kaenalso, you should check out http://ix.io
22:46:48kaenit has a little python client you can wget
22:46:56raptoroooo
22:46:59thread_how do I get a bot to get it's own name in code, including the ".0" or whatever number?
22:46:59raptorlike hastebin?
22:47:08thread_bot:getName() doesn't work
22:47:08kaenumm I didn't know hastebin did that
22:47:16kaenix does syntax coloring too
22:47:57kaenthread_, bot:getPlayerInfo():getName()
22:48:07thread_ooohhh... I feel dumb
22:48:20kaenno, no
22:48:23raptorkaen: that suggestion would work - but it feels like we're working around an architectural problem
22:48:26kaenit's a dumb api
22:48:49kaenraptor, I can't disagree with that
22:49:00kaenI was in fact working around an architectural problem :)
22:49:59kaenbut, all the server needs in order to do the textitem stuff is Roman
22:50:08kaenand it really does need that
22:50:21kaenand that really should get initialized in FontManager::init
22:50:30kaenso the real architectural problem is in main.cpp
22:50:36raptorbut then fonts are needed for a dedicated server...
22:50:52kaenthat's inherent in textitems auto-calculating their length
22:51:08kaenit needs to have a font in order to do that, and roman is compiled right into the binary
22:51:19raptorah ok
22:51:28kaenand its *only* for bitfighter -dedicated
22:51:31raptorsure, apply your fix
22:51:33kaenbitfighterd doesn't have this problem
22:51:34kaenok
22:52:46raptoractually, if i were to apply a 'fix' to textitem, it would be messier
22:52:58raptorso that is fine
22:53:18BFLogBot Commit: 167375b0694c | Author: kaen | Message: initialize font manager during startup of bitfighter -dedicated. needed to load Roman font in order to do calculations for TextItem
22:54:02kaenso, boost CSP and this OGL thing
22:54:23kaenOGLConsole*
22:54:23raptorWatusimoto: we're rounding everything off for release! http://board.net/p/bf_019_polish
22:54:37raptori'll look at oglconsole piece of trash
22:54:46kaenhehe
22:55:12kaenseeing what I can do about this boost problem
22:55:33raptorI think sam686 had an idea about that. sam686 are you working on any of the issues at http://board.net/p/bf_019_polish ?
22:57:47kaenok, verified
22:59:07raptoris that in 018a?
22:59:42raptormaybe it occurs because of time-delay
22:59:48kaenhmm, haven't checked
22:59:53thread_I think I found another bug, but there is enought going on here, I'm still trying to figure out what is causing it
23:00:13kaenthread_, feel free to report it when you have that nailed down:
23:00:14kaen!bug
23:00:14BFLogBotTo enter a bug: http://tinyurl.com/bfnewbug -- To view all bugs: http://tinyurl.com/bfbugs
23:00:23raptorthread_: yes, please keep the bugs coming if you can - but also make sure you have it reproducible
23:00:40thread_That's why I haven't reported it yet
23:09:37thread_looks like it's failing when I try to send a private message to a bot
23:09:46thread_not sure why yet
23:11:33Invisible2 Quit (Ping timeout: 248 seconds)
23:11:57thread_ has left #bitfighter
23:25:50raptorok, i'm not finding what recent changes would cause this: http://imagebin.org/279252
23:26:24raptorwe have changed nothing since 018a with regards to reloading oglconsole on screen mode change
23:29:57Watusimotothat is an awesome pic!
23:31:30Watusimotowould a good student task be to do something with lua and testing? create a way to produce tests in lua like kaen has described in the past?
23:32:07raptorkaen has already suggested that - see the sandbox tests for some already useful examples
23:33:01kaenWatusimoto, that is actually already possible
23:33:20kaenalthough it would be nice to have a levelgen testing utility akin to GamePair
23:33:32kaenand maybe some syntactic sugar
23:33:49kaenbecause EXPECT_TRUE(levelgen->runString("assert(ok)"));
23:33:53kaenis a little verbose
23:34:02kaenspicey bought me a tablet!
23:35:42raptorOOoooo
23:35:57raptordroid?
23:36:16raptorshe should have waited until we released... :)
23:36:26kaenhehehe
23:36:29kaendroid indeed
23:36:57raptordroids are great because no matter how cheap the hardware you make it do neat things
23:38:31kaene.g.
23:38:36kaenrun bitfighter!
23:54:46raptoroglconsole bug doesn't happen on windows either...
23:57:08kaenwhoa
23:57:21kaenmy tablet has an "allow apps from unknown sources" option
23:57:29kaenI can unsigned binaries on this thing.
23:57:33kaencan run
23:58:07raptorsweet!
23:58:31raptorburnin' down the walls
23:58:53kaenI just installed an android c++ ide and compiled tetris in like 8 taps
23:58:57kaenthis is crazy
23:59:05raptorheh

Index Search ←Prev date Next date→

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