#bitfighter IRC Log

Index Search ←Prev date Next date→

IRC Log for 2012-04-09

Timestamps are in GMT/BST.

00:01:43raptorhmmm
00:06:26raptori think all the linux sites should have a single submission api...
00:07:23Watusimotocame across this
00:07:24Watusimotohttps://bitbucket.org/alexames/luawrapper/src
00:08:00Watusimotolike lunar, but solves the inheritance problem I started out this most recent odessy thinking about
00:08:03Watusimotogood night
00:08:08raptorgood ngiht
00:09:09raptorlooks simple..
00:13:19Watusimoto Quit (Ping timeout: 264 seconds)
03:11:24raptori just saved a level file and it had a line like this in it: LineItem 0 -1008442647 -0.2 -1.3 -0.3 -1.5 -0.1 -1.7 0.1 -1.7 0.3 -1.5 0.2 -1.3
03:11:33raptorthat second number looks really wrong
03:20:08koda Quit (Quit: koda)
03:50:47raptorhey sam686, look what i did: http://sam686.maxhushahn.com/upload/11111screenshot_0.png
03:50:53raptordoes it look OK?
03:52:46sam686ok, looks different... i guess that is ok
03:57:26raptorfor a bot shape...
04:30:37Zoomber has joined
04:30:37ChanServ sets mode +v Zoomber
04:30:58Zoomberhi
04:31:13Zoomberraptor: it took me about 10 tries with the same password to get me into the forums :o
04:31:30Zoomberthats why i havent posted anything in a while
04:40:57raptorhi Zoomber
04:41:03raptordo you need the pw reset?
04:42:04Zoomberi got in tonight, strangley
04:42:19Zoombernot sure what did it, but it worked now
04:43:13raptorok
04:43:29Zoombercloaker spies? a meh/no for me
04:43:36raptoryeah...
04:43:38Zoomberit seems way too overpowered
04:45:08raptorpeople want complication
04:45:15raptornot sure if that fits the game very well
04:52:08raptorZoomber: what do you think of this ship shape?: http://sam686.maxhushahn.com/upload/11111screenshot_0.png
04:52:43Zoomberwhat is that exactly suppsed to be?
04:52:47Zoombera whole new ship design?
04:52:54raptora klingon bird-of-prey
04:52:54Zoomberor like, an activated module?
04:53:06raptorfor an extra bot shape
04:53:18Zoombereh, i could probably get used to it
04:53:21Zoomberbut only if its for bots
04:53:26raptoryeah...
04:53:35raptorit's really weird as a player...
04:53:37Zoomberactually
04:54:03Zoomberif we use it, we can put it in the s_bot file, as having the "turret" weapon
04:54:16Zoomberso, this bot essentially shoots weaker, but the bullets take no energy when it shields
04:55:12Zoomberby the way, it seems like bases would look better if the outline is defined in aa white border, not a blue border hexagon
04:55:42raptorit isn't a white outline?
04:55:45raptorlooks so to me...
04:55:55raptoroh
04:55:56raptorbases
04:56:01Zoomberyes
04:56:04raptorsorry, i misunderstood
04:56:18raptoryes they were like that in 016
04:56:23Zoomberyeah
04:56:25raptornot sure why the change...
04:56:29Zoomberdoesn
04:56:31Zoomberoops
04:56:35Zoomberdoesn't seem to make that much sense
04:58:34raptorhere: http://sam686.maxhushahn.com/upload/111111screenshot_1.png
04:58:37raptorlook better??
04:58:53Zoomberon the right track
04:58:59Zoombermaybe it just needs to be a toned-down white
04:59:02Zoomberor a greyish
05:02:17raptorthis: http://sam686.maxhushahn.com/upload/11111screenshot_2.png
05:02:49raptorsame grey level as the inner circle
05:03:10Zoomberthats better
05:03:25Zoomberso, turrets can shoot through the bases now?
05:03:33raptornope
05:03:43Zoomberah ok, so just a wierd map thing
05:03:53raptoryeah - one of sam686's generated ones
05:17:03raptorsam686: what do you think of Core with grey outer shell?: http://sam686.maxhushahn.com/upload/11111screenshot_2.png
05:23:49sam686looks ok, easier to see then blue..
05:27:34raptori'm going to bed, good night
05:27:46raptor Quit ()
06:02:23Zoomber Quit (Quit: Zoomber)
07:40:17Watusimoto has joined
08:01:23Watusimoto Quit (Remote host closed the connection)
08:01:49Watusimoto has joined
08:01:51WatusimotoGood morning all -- I made an important discovery!
08:03:32WatusimotoBy simply gutting doFindItems(), having it always return nil, I was able to run up to 100 bots on Mad Cow no problem.
08:03:38WatusimotoOf course, they didn't work very well
08:03:51Watusimotobut that tells me that this one function may be our bottleneck
08:04:20Watusimotoand, perhaps, specifically the creation (and subsequent destruction) of the table that holds the search results
08:05:06Watusimotoso maybe all we need is a more efficieint way of returning results; perhaps by reusing a table in the same manner as fillVector
08:05:14Watusimotoor something
08:05:44WatusimotoAnyway, food for thought
08:05:59sam686 Quit (Ping timeout: 245 seconds)
08:27:38Watusimoto Quit (Ping timeout: 240 seconds)
09:06:00Watusimoto has joined
10:07:44Watusimotook, tried using the fillVector method as an experiment
10:07:47Watusimotodramatic improvement
10:13:09Watusimotoor at least some improvement
10:18:08Watusimotobig difference
10:18:28WatusimotoI can run with 100 bots at 40 fps if the bots are not on screen
10:18:37Watusimotorunning mad cow with /addbots 100
10:32:52Watusimotothough there is a problem with something because the bots don't do their wayfinding correctly
11:44:00Watusimotook, fixed the navigation issue, situation is less good than it was, but may still reduce memory thrashing
11:44:16WatusimotoI need to clean up some things, and I can commit for further testing
12:03:46Watusimoto_ has joined
12:05:59Watusimoto Quit (Ping timeout: 245 seconds)
12:20:14watusimoto has joined
12:20:15ChanServ sets mode +o watusimoto
13:08:25Watusimoto__ has joined
13:08:31Watusimoto_ Quit (Ping timeout: 264 seconds)
13:12:38Watusimoto__ Quit (Ping timeout: 240 seconds)
13:13:18koda has joined
13:15:28watusimoto Quit (Ping timeout: 245 seconds)
13:23:56Watusimoto has joined
13:26:58WatusimotoThe modifications you need to make the bots work my new way are here:
13:26:59Watusimotohttp://pastie.org/3755544
13:27:05WatusimotoI'm still not ready to check in
13:27:30Watusimotoyou can pass a dummy string for methodName for testing purposes
13:27:54Watusimotothere may also be some new bot stuff in the C++, not sure
13:28:14Watusimotoalso eliminates some dynamic_cast action
14:19:22Watusimotohttp://lua-users.org/wiki/OptimisingGarbageCollection
14:27:01raptor has joined
14:27:01ChanServ sets mode +o raptor
14:27:24raptorgood morning!
14:27:55Watusimotohi
14:28:01raptorreading logs...
14:29:15raptorlooking at pastie...
14:29:15Watusimotolots to read
14:29:50raptorso you create the table in the script just once?
14:30:00raptor_fillTable = {}
14:30:40Watusimotoyes, but I hate this design
14:31:06raptorhmm...
14:31:14raptorseems kind of roundabout
14:31:27raptorforcing the user to create the table
14:31:29Watusimotono different than fillVector
14:31:32raptorin the script
14:31:42WatusimotoI created a wrapper so they don't have to
14:31:54raptorah, helper function, i see it
14:33:21Watusimotostill don't like it
14:33:27raptorwhat don't you like about it specifically?
14:35:38Watusimotougly... I'll be back in a little bit
14:35:42raptork
14:40:22Watusimoto Quit (Ping timeout: 265 seconds)
15:00:25koda Quit (Quit: koda)
15:03:03koda has joined
15:03:39koda Quit (Client Quit)
15:09:09LordDVG has joined
15:29:44Watusimoto has joined
15:36:32LordDVG Quit (Remote host closed the connection)
15:37:00LordDVG has joined
15:37:15raptorWatusimoto: i had some people say that Core exterior should still be grey/white: http://sam686.maxhushahn.com/upload/11111screenshot_2.png
15:37:28raptorbecause when other colors, it's hard to see sometimes...
15:37:34raptorwhat do you think?
15:38:28Watusimotook
15:38:31Watusimotosure
15:39:02raptorbut other than that - i've gotten overwhelming positive feedback on the new Core
15:39:55Watusimotoexcellent
15:40:08WatusimotoI'm glad some of my ideas are liked!
15:46:38raptorshould I keep the panel debris color?: http://sam686.maxhushahn.com/upload/1111screenshot_6.png
15:48:50Watusimotogood question
15:48:55Watusimotohalf white, have red?
15:49:05raptorok
15:49:17Watusimotojust a guess
15:49:35Watusimotoso my robot patch relies on using ... in the function
15:49:45Watusimotoaccording to http://lua-users.org/wiki/OptimisingGarbageCollection, that triggers a table creation
15:49:57Watusimotowhich the whole enterprise was designed to avoid
15:50:07raptorugh
15:52:43raptorhere is half/half for debris: http://sam686.maxhushahn.com/upload/111screenshot_7.png
15:53:10raptorlooks better i think
16:00:43Watusimotogreat
16:08:09BFLogBot - Commit ff2eaf6edff6 | Author: buckyballreaction | Log: Make Core panels be whitish again to be easier to see
16:10:22Watusimotowe could move some "standard" functions to the c++ side... like findClosestEnemy
16:10:51raptorthat would be good
16:16:55Watusimotothe problem is we could come up with a large number of these functions, I imagine
16:17:27raptoroh yes, i'm sure...
16:19:19Watusimotoand when we have functions like this:
16:19:28Watusimotolocal enemies = findItems(RobotType, TurretType, ShipType, AsteroidType, ForceFieldProjectorType, SpyBugType, CoreType)
16:19:41Watusimotothat essentially runs find 7 times
16:19:54raptorwhat?
16:19:57Watusimotothat was the benefit of the old flag system
16:20:33Watusimotowhile(lua_isnumber(L, -1))
16:20:42WatusimotogridDB->findObjects(number, fillVector);
16:20:48raptorah
16:21:07raptori bet we could come up with a function that builds out a TestFunc for all those types on the fly
16:21:13raptorthen a find would be only done once
16:21:19Watusimotothat's an interesting idea
16:23:08Watusimotothat would help a bit
16:24:23Watusimotothough not sure how to do that right off, unless we used some static gimickery
16:25:48Watusimotoprob something like:
16:25:55raptori have an idea...
16:26:27WatusimototestFunction.reset(); testFunction.add(typeNum1); testFn.add(typeNum2);
16:26:31Watusimotoyes
16:26:34raptornah...
16:26:35raptorsimpler
16:27:00raptorbool hasItem(Vector<U8> itemArray)
16:27:07raptorthen a simple for loop inside
16:27:31Watusimotowe can't pass itemArry to the test function
16:27:44Watusimotounless we had a second test function signature
16:28:00raptordoh
16:28:03raptorthat's right...
16:28:13Watusimotothen I suppose we could pass itemAry to the findFunction, which could pass that off to the test function
16:28:15Watusimotothat would work
16:28:25Watusimotothat might be best
16:28:55raptoryeah
16:30:21Watusimotowe have 3 different finds that use testFunctions
16:30:59raptori see two in gameObject
16:31:09raptorfindObject and findObjectLOS
16:31:12Watusimotowe'd need to replicate
16:31:13Watusimotovoid GridDatabase::findObjects(TestFunc testFunc, Vector<DatabaseObject *> &fillVector)
16:31:29Watusimotoand void GridDatabase::findObjects(TestFunc testFunc, Vector<DatabaseObject *> &fillVector, const Rect &extents)
16:32:42Watusimotoat least for this use
16:33:06WatusimotoI guess we wouldn't need to pass the testFunc at all, just the vector of types, and use a dedicated testFunc
16:41:31raptori bet we could use preprocessor magic to dynamically build a TestFunc
16:46:27raptorthat's what TNL does
16:50:53WatusimotoI wrote one that looks like this:
16:51:11Watusimotobool GridDatabase::testTypes(const Vector<U8> &types, U8 objectType) const
16:51:11Watusimoto{
16:51:11Watusimoto for(S32 i = 0; i < types.size(); i++)
16:51:11Watusimoto if(types[i] == objectType)
16:51:11Watusimoto return true;
16:51:11Watusimoto return false;
16:51:14Watusimoto}
16:52:10raptorlooks good
16:52:19Watusimotocan't get much simpler
17:16:45raptorMaybe I should start a new class: ShipShapes
17:20:06Watusimotook
17:21:16raptorI'm wondering if I can put all ship shapes into similar pieces: outerHull, innerHull, healthbarSize, flameports, etc...
17:27:22WatusimotoMaybe?
17:27:38raptoror i can just clutter up gameObjectRender more...
17:31:58Watusimototesting
17:32:03Watusimotorender is already pretty cluttered
17:32:11Watusimotoanything you can do to clarify it will be good
17:32:25WatusimotoI'm not sure you can make it worse
17:34:29raptorhehe
18:00:19Watusimotowell... no discernable difference
18:00:39Watusimotothough my tests aer not very discerning
18:00:55raptorwhat are you testign?
18:01:26Watusimotocombinging multiple passes at finding items in the db into one
18:01:43Watusimotoprobably because ships generally only search one database bucket
18:01:53Watusimotoso it's really not that inefficient to start with
18:02:08raptormake sense
18:02:53Watusimotoso I added complexity, not sure if I saved anything
18:05:03Watusimotomaybe I should revert...
18:05:11Watusimotowell, I'll think about it over dinner
18:05:16Watusimotolater
18:05:16raptoryum
18:05:19raptorand I, lunch
18:05:21raptorlater
18:10:25Watusimoto Quit (Ping timeout: 260 seconds)
18:57:23Watusimoto has joined
19:15:42raptorgood that norton took our request seriously
19:20:48Watusimotowe'll see
19:23:11raptori guess that's true...
19:25:58Watusimotowell, so what should I do?
19:26:09WatusimotoI have my bot mods that I'm unsure about
19:26:24raptorwell, we need performance
19:26:26WatusimotoI want you and/or sam to try them and see if you can discern any performance improvements
19:26:33Watusimotoif so, then great
19:26:38raptorok
19:26:48Watusimotoif not, I'd rather revert because the old way was much simpler
19:26:52Watusimotoat least to my mind
19:27:13WatusimotoCan we revert a specific past checkin?
19:27:25raptorsure - hg can create a reverse diff
19:27:31raptorand then you just apply it
19:27:43Watusimotook, then I'll gather up all my scripting fixes and check it in all at once
19:28:35raptorare you saying that there still doesn't seem to be a difference compared to before you started all the LUA stuff?
19:29:24WatusimotoI can't really tell, as I don't have a good way to measure
19:29:39WatusimotoI've been looking at FPS with 100 bots on MadCow
19:29:57Watusimotobut that's a poor measure, in part because it jumps around a lot, depending on what's on screen
19:30:08raptori can do some simple profiling
19:30:12Watusimotolet me try checking that again, trying to keep all bots off screen
19:30:32raptorhow about running a dedicated, then hooking into it with another client?
19:30:43Watusimotohow would I measure then?
19:30:50Watusimotofps is my only gauge
19:31:10raptormaybe put a logprint in the dedicated?
19:31:51Watusimotomaybe
19:32:10WatusimotoI wonder if running in the debugger slows things in release mode
19:32:26raptorit sure does
19:32:31Watusimotoin release mode?
19:32:37raptoranything in the debugger slows down
19:32:37Watusimotoin debug mode, yes
19:32:46Watusimotowell, I'll try running the exe
19:33:01Watusimotooutside of vc++
19:33:07Watusimotobest possible case
19:41:41Watusimotohard to say
19:41:43raptorok, i profiled a dedicated server 10 secs with 100 bots on mad cow
19:41:46Watusimotoprobably not worse performance
19:44:01raptorwell, can you make a bundle I could import? (If you don't want to push)
19:44:05raptorhg bundle
19:44:15raptora 'changegroup'
19:45:52Watusimotohere comes
19:45:58Watusimotooops
19:46:00Watusimotopushed
19:46:20Watusimotoyou'll need the new lua scripts and the new s_bot
19:46:29Watusimototo take full advantage
19:46:30raptorthose are committed though?
19:46:33Watusimotoyes
19:46:36raptorin the resource dir
19:46:37raptorok
19:46:38Watusimotoin the resources
19:46:40Watusimotoyes
19:47:09Watusimotothere is still lots to cleanup
19:47:21Watusimotothen I need to decide if we move that new Lua binder I showed you
19:47:32WatusimotoI hope it will be an easy transition from Lunar
19:47:41raptordid you make any changes to TNL?
19:47:48Watusimotono
19:47:51Watusimotodon't think so
19:47:54Watusimototo Rect
19:48:01Watusimotobut that's not TNL
19:48:11raptorok
19:48:24raptordedicated comiled...
19:48:56raptorclient compiled..
19:49:03BFLogBot - Commit 6d570a6c5b71 | Author: watusim...@bitfighter.org | Log: IntRect class
19:49:05BFLogBot - Commit a5b48f78280a | Author: watusim...@bitfighter.org | Log: Comment
19:49:06BFLogBot - Commit 6818d68229a7 | Author: watusim...@bitfighter.org | Log: Make IntRect members public
19:49:08BFLogBot - Commit 0d44d2ae9814 | Author: watusim...@bitfighter.org | Log: Reduce code duplication
19:49:09BFLogBot - Commit dc5b5b9f9b80 | Author: watusim...@bitfighter.org | Log: Add lunar to project
19:49:11BFLogBot - Commit 07639af112e0 | Author: watusim...@bitfighter.org | Log: Fix compile issue
19:49:12BFLogBot - Commit 8df6fc46b87f | Author: watusim...@bitfighter.org | Log: Fix warning
19:49:14BFLogBot - Commit a217b41693f9 | Author: watusim...@bitfighter.org | Log: Fix warning
19:49:15BFLogBot - Commit 34463e95d370 | Author: watusim...@bitfighter.org | Log: Scripts all share a single Lua instance
19:49:17BFLogBot - Commit 998f2cacf1cf | Author: watusim...@bitfighter.org | Log: Merge
19:53:21sam686 has joined
19:53:22ChanServ sets mode +v sam686
19:54:39raptorwell, sam686's levelgen doesn't work anymore...
19:55:37Watusimotolevelgens are probably all broken
19:55:52Watusimotothat's not a surprise, nor is it alarming
19:56:01Watusimotoit will be fixed
19:56:17raptori have lots of profiled data, looks better
19:56:18Watusimotofocusing on bot performance and understanding how to improve the lua code
19:56:23raptori will try the fps test, too...
19:56:23Watusimotoyes?
19:56:30Watusimotoperformance or memory?
19:59:49raptorok, well the FPS test says performance is worse...
20:00:12raptorit was ~10 fps with new code, ~13 with old
20:03:55Watusimotough
20:04:31raptorbut
20:04:35raptori don't think it is a good metric
20:04:43raptori just separated teh server and client
20:04:52raptorran at 100 fps on the client
20:05:02raptorserver was a separate process
20:06:13Watusimotooh I see
20:06:34raptorok, here is a ton of profile data: http://sam686.maxhushahn.com/upload/profiles.7z
20:06:38Watusimotowait, how did you get 10 and 13?
20:06:46Watusimotoclient in seperaet process?
20:06:53raptorthe .out files are teh raw profiles
20:06:55raptoryes
20:07:57Watusimotohow can we guage performance? average the detlaTs on serverGame idle loop?
20:08:14raptorwell... i have good raw profile data
20:08:20raptori just need to know how to read it...
20:09:03Watusimotolooking now
20:09:23Watusimotothere are really 2 things we care about: cycles per second on server, and server memory usage
20:09:54Watusimotobase is 017a?
20:10:00Watusimotonew is my latest?
20:10:01raptorno
20:10:09raptorlatest commit of mine before the merge
20:10:17Watusimotois base
20:10:23raptorcorrect
20:12:49Watusimotowhat program did you profile with?
20:12:55raptorgprof
20:13:02raptormaybe i should do callgrind, too...
20:14:17Watusimotohttp://kprof.sourceforge.net/
20:14:57raptori ran a summary ananlysis... it's taking forever
20:15:51raptori'll do callgrind... maybe gprof is lesser known..
20:16:22WatusimotoI'm looking through the raw files, and well... there's a lot of info there
20:17:24Watusimotofinished the first 200 lines... only 126799 to go
20:21:19raptorok, getting callgrind data...
20:22:32Watusimotocould you really have racked up 36M calls to getObjectTypeNumber in the time you were running?
20:23:42raptori sat in a corner of madcow for 20 seconds, 10 seconds of which had 100 bots
20:24:34raptorok, almost have callgrind data...
20:27:05Watusimotowhat do you make of this line?
20:27:06Watusimoto1.82 1.77 0.07 39258242 0.00 0.00 std::vector<Zap::DatabaseObject*, std::allocator<Zap::DatabaseObject*> >::size() const
20:27:21Watusimotoheaders are
20:27:22Watusimoto % cumulative self self total
20:27:22Watusimoto time seconds seconds calls ms/call ms/call name
20:27:28raptor39M calls to size()
20:27:29raptor?
20:27:35Watusimotoah, to size
20:27:36Watusimotogood
20:27:44Watusimotothinking that was constructor for a second
20:27:46Watusimotorats
20:27:56Watusimotoprobably can't get rid of those calls
20:28:16koda has joined
20:28:29WatusimotofindObjects still seems to be our heavy spender
20:28:37Watusimotoprobably because bots call it so often
20:28:50Watusimotopossible savings from caching
20:28:52raptorraw callgrind data: http://sam686.maxhushahn.com/upload/callgrind.7z
20:28:57raptoryou'll need a view for sure
20:29:00raptorviewer
20:29:18Watusimotoor perhaps from running bots every 2nd frame when things get slow
20:30:51Watusimotohow did memory look for you btwn base and new?
20:32:10raptorretesting...
20:32:22raptorbase: 64.7 MB
20:34:43raptornew: ~26
20:34:48raptorbut there is a memory leak
20:35:06raptorwait...
20:35:09raptormaybe it stabilized
20:35:30raptornew: 29.4 MB
20:35:51raptorit stabilized... just took a little longer...
20:36:26Watusimotowell, that's something
20:36:34Watusimotomuch better results than I was showing
20:36:52raptorwell, i was doing dedicated_server only
20:37:03Watusimotobut still... 50% reduction
20:37:11Watusimotomore what we were expecting
20:37:37Watusimotoprobably a lot of why 100 bots is slow is because there are so many interactions
20:37:46Watusimotoso many bullets, so many things that are not bot specific
20:38:08raptorthose callgrind dumps should tell us a lot more... but i can't seem to find a viewer for windows unless you install KDE
20:38:37raptorhttp://sourceforge.net/projects/precompiledbin/files/kcachegrind.zip/download
20:38:46raptor^^ there is windows precompiled kcachegrind
20:38:59Watusimotohave it
20:39:05raptorohg ood
20:42:41raptorwow, the sha256 function sure takes a lot...
20:44:19LordDVG Quit (Quit: Leaving)
20:45:22raptorneat!
20:45:32raptoryou can see which dynamic casts are taking up the most
20:45:39raptorwith the callgrind data
20:45:44raptorin kcachegrind
20:47:12Watusimotowhere?
20:47:47raptorsort by 'Self' on teh left nav
20:48:01raptorthen select one of the most expensive 'cycle..'
20:48:12raptorlike 'cycle 6'
20:48:19Watusimotoisturrettargettype is our 2nd most called fn??!?
20:48:37raptorthen click the 'Call Graph' in the bottom tab of the viewer
20:48:42raptorwhat
20:49:01Watusimotocrash!
20:51:09Watusimotosort by called column
20:51:18raptoron new or base?
20:52:20raptorour most expensive dynamic_casts: http://sam686.maxhushahn.com/upload/11snapshot10.png
20:52:35raptoroops, that was in 'base
20:53:27Watusimotowe do do this a lot: dynamic_cast<GameType*>(theObject)
20:53:46Watusimotoif we made databaseObject instantiable, we could make those into static_casts
20:55:56raptorour most expensive dynamic_casts (in 'new'): http://sam686.maxhushahn.com/upload/11snapshot11.png
20:58:03Watusimotodo you read this as 25% of the time we're caluclating sha values??
20:58:14raptorhehe, yep
20:58:18raptorwell... cpu time
20:58:34WatusimotoMost of those dynamic casts are database_objects
21:00:19raptorif you look at cycle 6
21:00:37raptorwhich is the most expensive next to sha methods
21:07:40Watusimotowe could use c-style casts where we are sure of the type
21:08:02raptordoesn't that try a succession of casts?
21:08:40raptorneat page: http://trac.caspring.org/wiki/LuaPerformance
21:11:58WatusimotoI thought it just did it, regardless of anything
21:12:04Watusimotoletting you shoot yourself in the foot
21:13:51raptori thought they try successively less restricitve casts until it finds one that works
21:18:18Watusimotointeresting
21:19:03Watusimotohttp://cboard.cprogramming.com/faq-board/86924-faq-difference-between-c-cplusplus-style-casting.html
21:21:32Watusimotomaybe we can do the assert with dynamic_cast, then c-cast for speed
21:29:47raptor"every cast is a potential design problem"
21:29:54raptormakes me feel good
21:34:39raptori have a thought
21:34:54raptorwhat about actually reducing the bot object finds?
21:35:21raptorlike have each bot do a main objective that can only be changed every 1/2 second
21:35:39raptorso it isn't always checking for bullets everywhere...
21:41:40Watusimotoyes
21:42:04Watusimotoor just runnng the bot script every 2nd cycle
21:42:23raptoror even have a sleep?
21:42:36raptorno faster than 30 fps because humans aren't much faster
21:42:51Watusimotoyes, that would probably work
21:42:59Watusimotoand it's really easy
21:43:14Watusimotojust call ontick less frequently
21:43:29Watusimotoand don't reset the bot's move when we don't call ontick
21:43:46Watusimotoso it just continues forth on those missed cycles
21:43:56Watusimotoit would be very easy to test
21:44:48Watusimotoso do you think the bots are on the right track?
21:44:56Watusimotoi.e. move forward with new implementation?
21:46:18raptoryes
21:46:20raptori do
21:46:35raptori saw a noticeable decrease in function calls
21:46:45raptorbut still can't reliably judge performance
21:46:56raptorbut sam686's levelgen was broken... :)
21:47:04WatusimotoI know
21:51:10raptorso i was talking AI with the naev folks - they have a timer implemented with all their AI that doesn't execute the next task until it is zero
21:51:24raptorand adjust the timer according to the task the AI does
21:51:41raptorthe call it a 'control tick'
21:52:18raptorand will only change the task on that timer
21:52:57raptorok - i gotta go for a couple hours
21:53:00raptorbe back later
21:53:21raptor Quit ()
23:46:04raptor has joined
23:46:05ChanServ sets mode +o raptor
23:46:25raptorok
23:46:29raptorso i've been thinking
23:47:51raptorshould we have a default control tick of like 66 ms
23:48:02raptorand then a way to increase/decrease it with a function?
23:48:41raptorbecause it may be that the majority of our performance problems are just because we're dealing with a scripting language
23:51:19koda Quit (Quit: I used to be chatting like you. Then I took an arrow in the knee)

Index Search ←Prev date Next date→

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