#bitfighter IRC Log

Index Search ←Prev date Next date→

IRC Log for 2011-07-28

Timestamps are in GMT/BST.

00:00:00watusimotook, only have a couple of minutes
00:00:00watusimotolet'ts get the bot thing figured out
00:01:00ZoomberOK
00:01:00raptoryay
00:01:00watusimotothe idea is that, like the getName()
00:01:00watusimotothere would be a onSpawn() fn that gets called (if it exists) when the bot is about to spawn
00:01:00raptorso setNextSpawnPoint()
00:02:00watusimotoif the bot didn't implement this fn, they would spawn as they do now -- at a randomly assigned spawn point
00:02:00watusimotoif they did, they could set the spawn point to any x,y
00:02:00watusimotoyou could get the coords from a hostile spawn if you wanted
00:03:00watusimotoso ifyou wanted a bot-only spawn, you could create a hostile spawn, then implement onSpawn() and set the spawn to the coords of the hostile spawn
00:03:00raptorok
00:03:00watusimotoI was proposing that the function pass an argument, which is the coords or id of the spawn point that had been randomly selected
00:03:00watusimotoso you could check what the game would assign if you did nothing
00:04:00raptorso the function has more than one use: no arguments, it returns the next spawn point, with arguments, it sets one?
00:04:00watusimotoso the sig would look like onSpawn(Point proposedSpawn)
00:04:00raptori guess I don't really understand the architecture you have in mind with the bots..
00:05:00watusimotosorry... the function would return the location of the spawn
00:05:00watusimotoso if the bot liked the proposed spawn, the fn might look like this:
00:06:00watusimotoonSpawn(Point spawnPoint)
00:06:00watusimotoreturn spawnPoint
00:06:00watusimotoend
00:06:00watusimotomy Lua is waaay rusty
00:06:00watusimotoor maybe
00:06:00raptormine is non-existent..
00:06:00watusimotoonSpawn(Poiint spawnPoint)
00:06:00watusimotoreturn(getSuperCoolPoint())
00:06:00watusimotoend
00:07:00watusimotoand the game would try to spawn the bot at whatever getSuperCoolPoint() returns
00:07:00raptorok, maybe i'm misunderstanding how bot code is run
00:07:00watusimotoand, if onSpawn() was implemented, we would note that the bot cheats, somehow
00:07:00watusimotoonSpawn is the wrong name
00:07:00watusimotobtw
00:08:00watusimotoshould be, perhaps getSpawnPoint()
00:08:00watusimotoBitfighter will call getSpawnPoint() function in the Lua code
00:08:00watusimotojust like it calls the getName() function
00:09:00raptorok, bot code parsing for dummies
00:09:00Zoomberis sam686 on?
00:09:00raptorthe bot is parsed and then each function is run once per tick?
00:09:00watusimotono
00:10:00watusimotoonly getMove()
00:10:00raptori'm looking at this simple example: http://96.2.123.136/bitfighter/timer.bot
00:10:00watusimotogetName() is only run when the bot is first instantiated
00:10:00watusimotogetSpawnPoint() would be run once each time the bot spawns
00:10:00watusimotosorry -- we renamed getMove to onTick
00:10:00watusimotoonTick gets run once per cycle
00:11:00raptorwhere are the rules to which functions get called?
00:11:00raptorah ok
00:11:00watusimotogetName() gets run once, when Bitfighter is trying to figure out what to call the bot
00:11:00watusimotomain() is run once, when the bot is first instantiated
00:11:00watusimotoso in that case, rate gets set once
00:12:00watusimotothe bot calls itself Timer Test
00:12:00watusimotoon OnTick() gets called every time Bitfighter updates the game
00:12:00watusimotoeach frame, essentially
00:12:00watusimotoor each tick
00:12:00raptorah, i found it
00:12:00raptorok good
00:13:00watusimotoso does that make sense?
00:13:00raptoryes
00:14:00raptorexcept i still don't see getName anywhere in robot.cpp
00:14:00raptoras pertiaining to the lua code, that is
00:15:00raptori found it!
00:15:00raptorok, how come some functions are like this: _main
00:15:00raptorand others are just: getName
00:15:00watusimotorobot.cpp line 1550
00:15:00watusimotowhere do you see _main?
00:16:00raptor1602
00:16:00watusimotoso that block checks if the fn has been defined by the bot, and runs getName if it has
00:16:00raptor1609, i mean
00:17:00Zoomber hey karamazovapy, i am curious how you were able to make barriers so fine they formed cursive letters
00:17:00watusimotodon't remember! maybe indicates a global?
00:17:00raptorhaha
00:17:00raptoryeah - sorry if i'm completely ignorant on this...
00:17:00raptorwilling to learn, though because we could make the bots more useful
00:17:00Zoomberraptor and watusimoto: check out _k's letters on kserv right now
00:19:00raptorplaying as your son?? :)
00:19:00Zoomberhow brilliant is that?
00:19:00watusimotonice!
00:19:00watusimotowhatever name came up by default
00:19:00raptorok, so
00:20:00raptornow curious about karamazovapy's comment about how hard it is to feed a list of waypoints to the bot
00:21:00raptorwas that by design?
00:21:00raptori guess i'm asking if you had a definite design plan to how bots operate - like only on events
00:21:00raptorbut maybe that's the nature of lua
00:22:00watusimotomaybe the _main is a typo?
00:22:00raptor_onTick
00:22:00raptoris the same
00:23:00raptorthat's it, though - threw me off a bit..
00:23:00watusimotobut why is it not _getName?
00:24:00watusimotomaybe there's some renaming stuff going on in one of the helper function bodies
00:24:00watusimotooh, wait
00:24:00watusimotoI have an idea
00:24:00raptoronMsgSent is like getName
00:25:00raptorthere is already a onShipSpawned
00:25:00watusimotofunction _main()
00:25:00watusimoto if _declared("main") and type(main) == "function" then
00:25:00watusimoto main()
00:25:00watusimoto end
00:26:00watusimotoend
00:26:00watusimotothat's in robot_helper_functions.lua
00:26:00watusimotonot sure why we did it that way
00:27:00watusimotomaking a note in the code
00:27:00raptorweird
00:27:00raptorso that lua script is always included?
00:28:00watusimotofunction _onTick(self, deltaT)
00:28:00watusimoto Timer:_tick(deltaT) -- Really should only be called once for all bots
00:28:00watusimoto if _declared("onTick") and type(onTick) == "function" then
00:28:00watusimoto onTick(self, deltaT)
00:28:00watusimoto end
00:28:00watusimoto -- TODO: Here for compatibility with older bots. Remove this in a later release
00:28:00watusimoto if _declared("getMove") and type(getMove) == "function" then
00:28:00watusimoto getMove(self, deltaT)
00:28:00watusimoto end
00:28:00watusimotoend
00:28:00watusimotoyes
00:28:00watusimotorobot.cpp :: 1518
00:29:00raptorwas that just a way to guarantee those methods are always there?
00:30:00watusimotomust have been
00:30:00watusimotonot sure why we do getName() differently
00:30:00watusimotothat one we check to see if it exists in the c++ code, and call it, or not
00:31:00raptori guess i just need to get used to the goofiness...
00:31:00raptornow tell me about the EventManager (if you still have time)
00:31:00raptorline 1208 has some methods
00:32:00watusimotook, so those are events that can happen
00:32:00raptorit looks like it wasn't completed or not implemented fully
00:32:00watusimotoI think it's working
00:32:00watusimoto1239
00:32:00raptoroh wait, i found an implementation
00:32:00watusimotofireEvent
00:34:00raptorok, looks like i have some research and analysis to do before I can start coding..
00:34:00raptori'll have to program a bot or two to get used to it
00:34:00watusimoto:-)
00:34:00watusimotois my eliza bot in the forums?
00:34:00watusimotothat uses some events, I think
00:34:00raptorit's in the source
00:35:00Zoomber hey watusimoto, would it be possible to set a server to always play a specific map when players join it if its on /suspend mode? I'd like to have a welcome, please selct level map
00:35:00Zoomberlike that of kserv
00:36:00karamazovapy is back
00:37:00karamazovapyof course, the levelchangepass for kserv might not be 'newlev' right now
00:37:00raptorit isn't
00:37:00watusimotohow would you want to specify that?
00:38:00karamazovapyI'm testing to see if my crash rate was at all related to people adding bots
00:38:00karamazovapywell before /suspend came along, mine was more or less default because of its infinite time limit
00:39:00karamazovapyyeah, that edwardian script is pretty, though
00:41:00watusimotoI can't find eliza.bot!
00:41:00karamazovapyshe doesn't know where you leave the car keys, does she?
00:42:00raptorresource/robots/
00:42:00raptori'll be back in a bit
00:42:00watusimotoah, looking for *.lua
00:42:00watusimotothx!
00:53:00zoomber_laptop has joined
00:53:00Zoomberkaramazovapy, i have a question in binary code for you
00:54:00zoomber_laptop010110010110111101110101001000000111011101100101011100100110010100100000011100110111000001100101011000010110101101101001011011100110011100100000011011110110011000100000011011010110000101101011011010010110111001100111001000000111010001101000011001010010000001100011011101010111001001110011011010010111011001100101001000000110110001100101011101000111010001100101011100100111001100101100001000000110010001101001011001110110
00:54:00zoomber_laptop110100011000010110110001101100011110010010111000100000010101110110111101110101011011000110010000100000011110010110111101110101001000000110001001100101001000000111011101101001011011000110110001101001011011100110011100100000011101000110111100100000011100000110111101101001011011100111010000100000011011010110010100100000011010010110111000100000011101000110100001100101001000000110010001101001011100100110010101100011011101
00:54:00zoomber_laptop0010110111101101110001000000110111101100110001000000110100001101111011101110010000001111001011011110111010100100000011001000110100101100100001000000111010001101000011010010111001100111111
00:54:00zoomber_laptopthat is all
00:54:00zoomber_laptop Quit (Client Quit)
01:04:00Zoomberserver bob_saget
01:05:00Zoomberhas karamazovapy ever gone to bobsaget.com?
01:05:00karamazovapyhas not
01:43:00Zoomber Quit (Ping timeout: 264 seconds)
01:50:00Zoomber has joined
02:17:00raptorok, back
02:17:00raptorwhole wheat french toast is yummy
02:21:00karamazovapyhigh five
02:22:00raptorwho is Furbuggy, and why did make that kate level??
02:24:00karamazovapyhaha...furbuggy has been around kind of forever
02:24:00karamazovapyhe was doing something experimental with the kate level, but it was definitely a girl he knew
02:25:00karamazovapyI always thought it was disturbing
02:25:00raptorthat level drives me bonkers
02:25:00karamazovapyhow so?
02:26:00raptorjust with the tons of asteroids and i never know where i'm going while being chased by evil other-teams
02:26:00raptoroh and the faces are creepy
02:27:00karamazovapyyeah
02:27:00karamazovapyyeah
02:28:00karamazovapyIVAN!
02:30:00karamazovapyI'm excited for this contest
02:37:00raptori'm glad dr spacebar is an active mapper
02:38:00karamazovapyyeah...I dunno about the quality, but he's sure cranking stuff out!
02:48:00raptorwell, i think he's getting better
02:49:00karamazovapyyeah, I think that's true
02:53:00watusimoto@r
02:53:00watusimotoso
02:53:00watusimotoI checked the events, looks like they aer all working
02:53:00raptorhi
02:54:00raptorok
02:54:00watusimotois this really an event though?
02:54:00raptornot sure - depends on how you want it done...
02:55:00watusimotowe have the onSpawn(); if we want to make spawn point selection part of an event, it would be... onAboutToSpawn()
02:55:00raptornot sure how you want the bot architecture... mostly event driven, or data driven?
02:55:00watusimotothat seems kind of icky
02:55:00raptoror doesn't matter
02:55:00watusimotoI think event driven makes sense
02:55:00watusimotopeople understand that
02:55:00watusimotobut I think a getSpawnPoint() method would be ok, too
02:56:00raptoralso, do you favor methods that can alter bot attributes directly?
02:56:00watusimotoif we did an onAboutToSpawn(), the user would need to explicityly set a spawn point
02:56:00watusimotogetSpawnPoint() seems to be easier to understand what needs to happen
02:56:00watusimotoyou return your spawn point
02:57:00watusimotoso I'm leaning towards that
02:57:00watusimotobut the design is supposed to be easy for people to understand and implement
02:57:00watusimotoas for your question -- what does tha tmean?
02:58:00raptori'm just trying to categorize the various methods that can be called in my head
02:58:00raptorlike what functions can be set up at the same level as getName and onTick, etc.
02:59:00raptorand other functions that just grab data when you need it
03:00:00raptoryou are suggesting a method on the same level as getName() called getSpawnPoint()?
03:00:00raptorthen when a death even occurs, it will look for that
03:00:00raptorif it isn't found, just do a normal spawn, otherwise spawn at what is provided... correct?
03:06:00karamazovapysoccer is unique in that it's the only gametype where you have to control something outside your own ship
03:15:00watusimotoyou are suggesting a method on the same level as getName() called getSpawnPoint()?
03:15:00watusimotoyes
03:15:00watusimotonot on death, just before spawn
03:16:00raptorcorrect
03:16:00raptorok
03:38:00karamazovapywe didn't celebrate the 1 year anniversary of the forums
03:39:00watusimotook, back in a bit
03:41:00karamazovapyalso, over 100 topics in Bitfighter Features!
03:54:00karamazovapylooks like a ton of servers have sprung up
04:00:00karamazovapynormally when you play, your ship stays stationary in the center of the window and the entire world moves around you
04:00:00karamazovapyin command view, you're rarely in the center of the screen, and you move around the map
04:02:00sam686i would like to be able to see bullets and explosions while in command view map..
04:03:00karamazovapyyou can, if you equip enhanced sensor
04:06:00karamazovapyI think sensor should have a lower energy cost
04:07:00karamazovapyyou can't strobe it effectively, and the perspective shift is disorienting enough to be a handicap to using it
05:12:00raptorwhat is this command view?
05:13:00sam686pressing C in-game..
05:13:00sam686to view whole map
05:14:00raptoroh duh
05:40:00watusimotothere's a case for making sensor somewhat passive
05:45:00karamazovapystars appear to get "brighter" when you use sensor, because everything else changes size, but they don't
05:54:00raptor Quit (Remote host closed the connection)
06:04:00BitfighterLogBot - Commit 47794ddb3ba4 | Author: sam8641 | Log: More stats added to keep track of, but needs mysql database.cpp stats tracking
06:19:00sam686Why does getTeamColor return white in gServerGame? it causes server stats recording to have all teams have white color..
06:24:00Zoomberim getting private messages from players asking me to port bitfighter to the android market
06:25:00sam686android is kind of too small it seems like...
06:25:00Zoomberkaramazovapy : sorry i couldn't talk and it looked like i just joined and did nothing; I wasn't at home and got really caught up with something
06:26:00Zoomberduring game 2 hours ago..
06:26:00karamazovapyno worries
06:27:00sam686maybe we need some spectator mode, and auto-leave server, but still connected to server, spectating..
06:27:00Zoomberi set up ssh on a remote computer there, but did a user-import, and have to figure out what i set the password as
06:27:00Zoomberbut at least i can cnonect through it now, via telnet and ssh
06:29:00Zoomberi guess i could be getting the username wrong too..
06:33:00watusimoto>>> Why does getTeamColor return white in gServerGame?
06:34:00watusimotoit had to return something by default, and that seemed unused
06:34:00watusimotoso I made it return white
06:34:00watusimotowhere does server game use color?
06:34:00sam686it is used in serverGame for saving stats and sending stats to master
06:34:00watusimotoah, because it needs to send the actual color of the team
06:35:00watusimotocan it use the same thing that gClientGame uses?
06:35:00sam686otherwise you may see this: http://96.2.123.136/upload/gamereports/index.php (can't see white text)
06:36:00sam686it seems like EditorGame have a gametype when loading existing levels..
06:36:00watusimotoeditorGame is gone (or will be as of next checkin)
06:37:00watusimotowe're back to only clientGame and serverGame
06:37:00sam686ok, good..
06:37:00watusimotomakes some things easier, some harder
06:37:00watusimotobut, we could move the clientgame version of get team color to game, and not have either override
06:37:00watusimotothat would probably work
06:38:00watusimotoCurrent versino of clientGame's gtc:
06:38:00watusimoto{
06:38:00watusimoto // In editor:
06:38:00watusimoto // return Game::getBasicTeamColor(this, teamIndex);
06:38:00watusimoto GameType *gameType = getGameType();
06:38:00watusimoto if(!gameType)
06:38:00watusimoto return Parent::getTeamColor(teamId); // Returns white
06:38:00watusimoto return gameType->getTeamColor(teamId); // return Game::getBasicTeamColor(mGame, teamIndex); by default, overridden by certain gametypes...
06:38:00watusimoto}
06:38:00sam686serverGame::getTeamColor can be the same as ClientGame::getTeamColor, or just use a Game::getTeamColor
06:38:00watusimotomove client's version to game
06:38:00watusimotoand get rid of the cg and sg versions
06:38:00sam686yes
06:39:00watusimotoI don't see any reason that would be a problem
06:39:00watusimotoso please do that
06:39:00watusimotoor I can
06:39:00sam686looks like EditorGame always have a gameType even on new empty maps..
06:39:00watusimotoyes, it needs one
06:39:00watusimotoexcept it doesn't exist any more
06:40:00watusimotoall games always need a gameType to avoid crashing
06:40:00sam686could instead of returning white, can do this: if(!gameType) return getBasicTeamColor(this, teamId); // for editor, which might not have gameType
06:41:00watusimotosure
06:41:00watusimotobut editor will always have a gametype
06:41:00watusimotoby default it;s bitBash
06:41:00sam686ok..
06:42:00watusimotomaybe you can assert that gameType alwasys exists.
06:42:00watusimotoI'd like to know how we get there with a null gametype
06:42:00watusimotoif we ever do
06:43:00sam686yes, i might look at how gameType might get NULL in testing, might be possible in client...
06:44:00watusimotowe check for it fairly often, not sure if it ever happens
07:03:00Zoomberok what on earth..
07:04:00Zoomberi havent been touching zap for hours on this computer, and i get back and its in editor testing a level
07:17:00zoomber_laptop has joined
07:17:00zoomber_laptopStatus: Connecting to 71.130.8.182:23...
07:17:00zoomber_laptopStatus: Connection established, waiting for welcome message...
07:17:00zoomber_laptopStatus: Invalid character sequence received, disabling UTF-8. Select UTF-8 option in site manager to force UTF-8.
07:17:00zoomber_laptopResponse: ÿûÿþ"ÿþ
07:17:00zoomber_laptopThis is how my remote computer welcomes me
07:17:00sam686try without SSH if using port 23
07:18:00sam686port 23 is usually telnet
07:18:00zoomber_laptopit is
07:20:00zoomber_laptopwhen doing telnet 71.130.8.182 26, i get ssh-2.0-WeOnlyDo 2.1.3
07:20:00zoomber_laptopbut when doing the samething without specifying port 26, i get asked to authenticate
07:20:00zoomber_laptopprobably because default port is port 23
07:20:00zoomber_laptopand second port i have is port 26
07:20:00zoomber_laptopport 26 should be port with user imports
07:24:00zoomber_laptop Quit (Quit: zoomber_laptop)
07:24:00Zoomberi must brb
07:24:00Zoombergood night if i fall asleep on the way back..:)
07:24:00sam686ok
09:53:00watusimoto Quit (Ping timeout: 264 seconds)
13:58:00watusimoto has joined
14:20:00BitfighterLogBot - Commit 885ed61e8496 | Author: sam8641 | Log: TNL RPC's *_test is not needed, removing it can reduce compile / linker memory usage
16:54:00raptor has joined
16:54:00ChanServ sets mode +o raptor
16:54:00raptori'm here!
16:55:00sam686looks like S32 LuaObject::returnPlayerInfo(lua_State *L, Ship *ship) crash on level that have "Ship 0 0 0" in level line...
16:55:00sam686most likely, a null getControllingClient()
16:55:00raptorthat's weird
16:56:00sam686several times, while debugging, i set it to skip return, and robot error..
16:59:00sam686also, in 016, there is extra stats that are halfway done (serverGame tracks more stats, sent to master, but needs extra mysql stats logging)
17:01:00raptorso many things to do
17:02:00sam686too many to do for, maybe too little time?
17:02:00raptorthe time thing is a big issue for me - seems like every time i get a change to actually code - i only have about 1/2 hour or less before an interruption
17:03:00sam686ok..
17:04:00sam686my computer is slow, i am sure you won't want to compile it on my computer waiting 5 minutes...
17:04:00raptorhaha
17:04:00raptoryeah - i do have that advantage
17:09:00raptorbitfighter compiles in 20 seconds on my computer at work
17:09:00raptor40 on this laptop
17:09:00sam686mine is like 6 minutes..
17:09:00raptordo you use SMP?
17:09:00raptori can't remember if you have more than one CPU..
17:10:00sam686so your laptop is 9 times faster then my year 2003 desktop..
17:10:00raptorhaha
17:10:00raptorit's not really mine, either... on loan from work..
17:10:00sam686mine is pentium 4, single core, but does have hyperthreading (that looks like 2 CPU)
17:11:00raptori heard those first hyperthreading P4s were buggy..
17:11:00sam686i do have a tiny laptop (netbook), but is equally slow due to intel Atom processor..
17:12:00sam686well, my pentium 4 seems ok..
17:13:00sam686i could disable typerthreading in computer startup bios options..
17:14:00raptori remember working with some intel xeon server that had hyperthreading - we had to disable it after a while because it would start to randomly crash
17:15:00sam686i guess hyperthreading can mess with the cpu instruction timings a bit, slowing down execution speed..
17:22:00raptor Quit (Remote host closed the connection)
17:37:00raptor has joined
17:37:00ChanServ sets mode +o raptor
17:38:00raptorsorry, had to take off abruptly
17:38:00raptornow i'm at work... all day
17:39:00sam686ok.. i might stay up for about 1 or 2 hours..
17:40:00raptorstill need to go to bed??
17:40:00raptor!
17:40:00sam686i woke up at midnight..
17:41:00raptor!!
19:05:00raptorso i finished listening to beethoven's nine symphonies here at work
19:05:00raptori think i like 3,5, 9
19:30:00raptorI actually like them all - but I'd appreciate them more if I didn't have to listen to sounds of work at the same time..
20:35:00karamazovapysupposedly, the 74 minute CD was created to accomodate beethoven 9
20:39:00raptori heard the same thing - it had to do with a sony executive or something, and the fact that they could never fit it on an existing technology without splittin up the movements somewhere
21:07:00karamazovapyno equally compelling rumors for the size of a bluray disc
21:19:00Zoombersecret genetic information for extinct blue colored sting rays lies in each disc?
21:21:00karamazovapyhey zoomber - blackbird is pooping his pants because he thinks you said contest levels don't need to be anonymous
21:36:00Zoomberi dont know what to say. im sorry, i was in way in over my head right yesterday, and would have appreciated it if he didn't constantly bug me about the rules to the contest. I told him over and over to just read the whole thread. I don't know why he had a single question to me when there was a whole thread filled of answers. I may have been able to be a good help if he would even give me a minute of patience, but on top of tha
21:36:00Zoomberam busy with a whole bunch of other things.
21:36:00Zoomberstill, that doesn't justify that I what I did say was wrong, and I was not intending to mislead him.
21:37:00karamazovapymistakes happen
21:37:00karamazovapyhe should've read the thread...I linked to it
21:38:00Zoomberit seems a lot of players are just uploading their maps and showing everyone anyways,..several people joined and shared their maps without warning, using sam and my servers' upload/vote features
21:38:00raptorthen my map might have a chance!
21:38:00raptorif everone else is disqualified... :)
21:50:00karamazovapyhaving level owners public ruins voting
21:50:00raptori agree
21:50:00karamazovapyif you made yours public, it's DQ'ed too
21:50:00raptorno way
21:50:00raptori don't want the hate yet...
21:50:00karamazovapyI mean zoomber
21:51:00raptoroh ok
21:51:00raptorjust thought i'd make it a non-one-way conversation...
22:01:00Zoomberi uploaded that level i spent 5 minutes on, but i only intended that one as a "filler"
22:14:00karamazovapycan somebody tell me which levels have been spoiled already?
22:14:00raptorno clue
22:44:00Zoomberplenty of room
22:44:00Zoomber@ the hotel california
22:45:00Zoomberyou can find it right here, any time of the year!
22:52:00karamazovapyemailintervention.com
22:53:00raptorand here i am trying to take back control of my e-mail...
23:04:00ZoomberHeh, i feel so cool playing music out of nothing but a subwoofer
23:09:00raptor Quit (Remote host closed the connection)

Index Search ←Prev date Next date→

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