Timestamps are in GMT/BST.
| 00:01:26 | | BFLogBot Commit: 7e2be134bd97 | Author: kaen | Message: working updated sandbox |
| 00:03:37 | raptor | YES |
| 00:06:44 | | Skybax has joined |
| 00:10:54 | thread_ | raptor: has there been a change to how ship:setEnergy() works? things seem to be different |
| 00:11:39 | raptor | that is a broad question - but I haven't changed anything... |
| 00:12:04 | watusimoto | I need to get to bed... looks like I'll have at least some connectivity tomorrow... hasta manana |
| 00:14:19 | raptor | night |
| 00:14:38 | thread_ | It appears to be a bug when you call setEnergy on a ship when they have just spawned and still have their invulnerability state. |
| 00:15:00 | thread_ | I think that's what is going on... |
| 00:15:17 | raptor | what happens with the bug? |
| 00:16:11 | thread_ | If I trigger the bug, it seems like I can't set energy for any other values other than the starting value, even after they loose invulnerability... |
| 00:17:12 | thread_ | wait no... |
| 00:17:44 | sam686 | Lua NIL (C++ NULL) ship? |
| 00:18:34 | thread_ | it works again once I get energy below the line (where modules cant be activated) |
| 00:19:13 | thread_ | ----This is a really weird bug---- |
| 00:19:26 | kaen | there might be some logic behind setEnergy that's failing |
| 00:19:41 | kaen | not all get/sets are trivial reads and writes |
| 00:20:03 | thread_ | I can send you the levelgen that's causing this if you want |
| 00:20:12 | kaen | ok sounds good |
| 00:20:24 | sam686 | or it could be a bug with client/server energy level mismatch |
| 00:20:30 | kaen | ^ I'm thinking this |
| 00:20:58 | thread_ | http://pastie.org/8508599 |
| 00:21:13 | thread_ | bug dissappears if you comment out line 280 |
| 00:21:39 | thread_ | (thats where I call the function when a player spawns) |
| 00:22:42 | sam686 | if you hold down the shield button and your shield repeatedly blinks, than thats a server/client energy level mismatch. |
| 00:22:54 | thread_ | ok, yes that is happening too |
| 00:23:16 | thread_ | but like I said, it seems to fix itself once the energy goes to 0 |
| 00:23:50 | kaen | sam686, are you looking at this bug? I'm still writing tests for the lua environment |
| 00:25:10 | sam686 | I will look at it after a few minutes... |
| 00:30:41 | | Little_Apple has joined |
| 00:32:58 | kaen | I need a break @_@ anyone want to play? |
| 00:43:13 | thread_ | I wish I did |
| 00:43:18 | thread_ | *had time to I mean |
| 00:45:23 | sam686 | im making a somewhat a big, mostly GameType, commit, this time I tested a lot more things to make sure my changes doen't break anything with my new GameType timing system.. |
| 00:45:35 | | BFLogBot Commit: b01acf4b7ea2 | Author: sam8641 | Message: Changes to timing system in GameType, sync more accurately using packUpdate, Nexus timing is now MilliSeconds. Cleanup some unused code. |
| 00:45:37 | | BFLogBot Commit: 5f2327337861 | Author: sam8641 | Message: SpeedZone no longer constantly send data on rotating SpeedZone. |
| 00:47:56 | sam686 | It always used to bother me when the core just unpredictly rotates 180 degrees when changing time limit, or nexus timing goes 1 second faster the moment time limit changes. That should not happen after my latest commit |
| 00:50:35 | thread_ | headed out. cia guys! |
| 00:50:53 | Little_Apple | bye! |
| 00:51:10 | | thread_ has left #bitfighter |
| 00:56:54 | | watusimoto Quit (Quit: Leaving.) |
| 01:14:01 | | Platskies has joined |
| 01:14:04 | raptor | kaen: did the sandbox.lua actually make it into the repo? |
| 01:17:16 | | HylianSavior Quit (Quit: Leaving) |
| 01:18:56 | raptor | For all OSX beta testers: http://sam6.25u.com/upload/Bitfighter-019-beta-OSX-64bit-8687-5f2327337861.zip |
| 01:19:02 | raptor | this means you Little_Apple |
| 01:21:42 | Little_Apple | got it! |
| 01:21:58 | raptor | please test your joystick with that |
| 01:25:34 | Little_Apple | is the second row supposed to be there? |
| 01:27:37 | raptor | where? |
| 01:28:15 | | HylianSavior has joined |
| 01:28:26 | Little_Apple | http://i.imgur.com/dRMQ5vx.png |
| 01:28:32 | raptor | yeak kaen the sandbox.lua script is missing |
| 01:28:36 | raptor | *yeah |
| 01:28:55 | raptor | Little_Apple: that;s part of the debug build |
| 01:29:00 | raptor | so ignore it |
| 01:29:00 | Little_Apple | kk |
| 01:29:05 | Little_Apple | it works then! |
| 01:29:13 | raptor | excellent |
| 01:29:23 | raptor | so no changes to your profile? |
| 01:29:25 | Little_Apple | i can send another pastie |
| 01:29:32 | raptor | ok |
| 01:30:28 | Little_Apple | http://pastie.org/8508697 |
| 01:30:42 | Little_Apple | that should be good |
| 01:34:23 | | BFLogBot Commit: 844f3ee19ad3 | Author: buckyballreaction | Message: Add new joystick profile 'Gigaware USB Wired Controller'. Built on OSX. Thanks Little_Apple! |
| 01:34:45 | Little_Apple | aw yea! |
| 01:39:26 | raptor | sam686: give me an overview of the new game timer - it looks like you converted the entire class GameTimer to be a couple of U32 |
| 01:39:48 | sam686 | only 2 U32 used now |
| 01:39:53 | sam686 | for timing |
| 01:39:54 | raptor | I remember watusimoto working a lot on that thing, especially with making sure Nexus works with all the cases... |
| 01:40:04 | raptor | and how does it end up being more accurate? |
| 01:40:15 | raptor | constant counter instead of wrapping around? |
| 01:40:17 | sam686 | but there was already one U32 timer, used for game reports, timer of game played |
| 01:41:59 | sam686 | mTotalGamePlay, that existed all the way back to 018 maybe before, that only counts up game played, starting 0 from level change/ new level |
| 01:42:18 | sam686 | mTotalGamePlay was a great place to sync to clients for global timing |
| 01:43:01 | sam686 | mEndingGamePlay is game over when basically mTotalGamePlay >= mEndingGamePlay, unless mEndingGamePlay==0 thats unlimited time limit |
| 01:43:49 | raptor | do you changes handle the unlimited cases, including with respect to Nexus game type? |
| 01:44:00 | raptor | ahh |
| 01:44:16 | sam686 | It got tricky when it comes to Nexus, where before my today's commits, changing time limit causes nexus timing to skip or go fast for only one second |
| 01:44:51 | sam686 | now, in nexus and CoreItem, changing time limit have totally no effect on timing on those.. |
| 01:46:27 | sam686 | it just became a bigger problem when I was changing speedZone rotation to no longer constatly send data and instead use gametype game played timer. |
| 01:46:27 | raptor | how often does game time sync? |
| 01:46:27 | raptor | ah |
| 01:46:55 | sam686 | Whatever mGameTimeUpdateTimer is, that how often it sync, maybe every 30 second |
| 01:47:03 | raptor | ok, so youddint' change that |
| 01:47:41 | | Little_Apple Quit (Ping timeout: 250 seconds) |
| 01:47:42 | sam686 | packUpdate is now used for syncing, because it doesn't matter how delayed packUpdate runs, it even runs packUpdate again in case of dropped packet. |
| 01:47:45 | kaen | oops sorry! |
| 01:47:56 | sam686 | with updated timing of cource |
| 01:48:20 | raptor | does that add much network overhead? how often does packUpdate occur here? |
| 01:49:01 | | BFLogBot Commit: 1b0cedde8020 | Author: kaen | Message: add sandbox.lua |
| 01:49:02 | sam686 | RPC events, and packUpdate have just about equal overhead. |
| 01:49:58 | sam686 | the difference is how it handles dropped packet, RPC events retransmit a bit outdated information, but packUpdate runs again with the added mask with updated information. |
| 01:50:50 | raptor | i thought packUpdate can happen several times a second |
| 01:50:52 | sam686 | you won't want to send slightly outdated information like ship Position would you? |
| 01:51:09 | raptor | so i'm worried that in GameType it'll add significant overhead... |
| 01:51:11 | sam686 | yes, except when there is no changes to it. like LineItem |
| 01:51:47 | sam686 | send events multiple times, it has to send it all. |
| 01:51:53 | raptor | because I don't see any UPdateMask things for GameType... |
| 01:52:03 | raptor | so I don't know how it'll behave |
| 01:52:18 | sam686 | use setMaskBits multiple times, it may only need to run packUpdate only once or twice per client. |
| 01:52:40 | sam686 | GameType is ghosted like any other objects, and the first to be ghosted. |
| 01:52:59 | sam686 | was like that pretty mych all the way back before 015 too. |
| 01:54:06 | sam686 | it works just fine, go ahead and put a logprintf in packUpdate if you want to test it.. |
| 01:54:15 | raptor | ok yes |
| 01:54:24 | raptor | will it send pack Update again at end of game? |
| 01:55:02 | | Skybax Quit (Ping timeout: 265 seconds) |
| 01:55:04 | sam686 | it automatically sends packUpdate as mask 0xFFFFFFFF for any new objects created, like Ship, GameType, and other objects |
| 01:55:27 | sam686 | it doesn't actually send the mask through the network, remember that.. |
| 01:55:46 | raptor | yes |
| 01:57:02 | sam686 | and on 015 and earliear, GameType was also in a gridDatabase (dumb) at position (0,0) causing levels to be centered incorrectly for levels that is away from (0,0) |
| 01:57:49 | kaen | I'm getting linker errors sam686 |
| 01:57:53 | kaen | CMakeFiles/bitfighter.dir/CoreGame.cpp.o:(.rodata._ZTVN3Zap12CoreGameTypeE[_ZTVN3Zap12CoreGameTypeE]+0x138): undefined reference to `Zap::GameType::s2cSetNewTimeRemaining_remote(unsigned int, bool, int)' |
| 01:58:02 | kaen | etc. |
| 01:58:13 | kaen | I'll clean and try again though |
| 01:58:27 | kaen | also I'm kind of concerned about adding packUpdate to gametype, too |
| 01:58:37 | sam686 | s2cSetNewTimeRemaining is there on gameType.cpp line 2416 |
| 01:59:09 | kaen | ghostConnection.cpp:358 is where the updates get packed it seems |
| 01:59:21 | kaen | and I don't see it bailing in that loop, regardless of maskbits |
| 01:59:28 | sam686 | one advantage of packUpdate is, being able to send the most up to date information, it matters for syncing the timing. |
| 02:00:12 | kaen | certainly |
| 02:00:49 | kaen | but can you turn on UDP and ghostConnection logging and verify that the packupdate only happens once or twice? |
| 02:00:56 | kaen | I have two major concerns with this: |
| 02:00:59 | kaen | 1. bandwidth |
| 02:01:04 | kaen | 2. subtle bugs |
| 02:01:28 | kaen | it looks correct, but if you missed a * 1000 somewhere I'd hate to ship an avoidable core bug |
| 02:02:13 | sam686 | RPC events can get delayed and delayed from dropped packets and resending guaranteed events with outdated information... so the event bandwidth would be maybe more then packUpdate, now that we have so many events now. |
| 02:03:24 | kaen | well packupdates can get delayed themselves. there's no guarantee that transmission is timely either way :) |
| 02:04:02 | sam686 | if a packUpdate get dropped, it runs packUpdate again for updated information |
| 02:04:26 | kaen | right, but what I'm saying is you can have *latency* either way |
| 02:04:27 | sam686 | same goes with Ship ResourceItem and pretty much all other objects |
| 02:05:08 | kaen | which is the main factor in timer synchronization |
| 02:05:10 | sam686 | latency is one problem, that I guess can't entirely be solved, espically with jitter. |
| 02:05:36 | kaen | right, so that means that the deciding factor should be bandwidth (whether to use an RPC or packupdate) |
| 02:05:57 | kaen | since you can use a guaranteed and ordered RPC just as well as a packupdate |
| 02:06:36 | kaen | so it's really important to know how often it is packupdate()ing |
| 02:06:45 | sam686 | A bunch of other guarenteed events running first can delay other guaranteed events. |
| 02:07:21 | kaen | but there's no guarantee that a packupdate will always arrive on time either |
| 02:07:22 | sam686 | but packUpdate only runs when TNL is ready to send that information. (setMask won't immediately run packUpdate) |
| 02:07:52 | kaen | so I'm saying you can potentially get a delay either way |
| 02:08:13 | sam686 | if TNL detects dropped packet, it will retry sendPacket again for next packet after its known to be dropped. |
| 02:08:16 | kaen | (and both are subject to the most common cause of latency: network conditions) |
| 02:09:12 | sam686 | one thing is, sending a bunch of events at the same time, like sending all the barrier walls, gets delayed, even when hosting. |
| 02:09:42 | raptor | i'm going to logprintf it, because I'm curious... |
| 02:10:00 | raptor | kaen: you didn't alter my sandbox.lua script? |
| 02:10:57 | sam686 | the event RPC method of syncing can severely be delayed up to 1 or 2 seconds if there is a bunch of other events to send first (sending walls through RPC events). |
| 02:11:11 | raptor | oh wow - i keep forgetting how many RPC GameType has... |
| 02:11:31 | | Skybax has joined |
| 02:11:45 | sam686 | things like sending score limit doens't matter if delayed by a few second.. |
| 02:12:27 | sam686 | sure we could have RPC events in Ship or other objects.. |
| 02:12:36 | raptor | so you think packUpdate will be more accurate than RPC for time-keeping? |
| 02:13:29 | sam686 | yes, especially since packUpdate have direct access to packet stream, compared to RPC events that has to rely on only the data it was called. |
| 02:14:18 | sam686 | and packUpdate is pretty much guaranteed to all be sent in cast of dropped packets. (you didn't see any missing LineItem, did you?) |
| 02:15:07 | sam686 | oh and you can test with /lag (delay) (% loss) |
| 02:17:40 | kaen | logprint says it's only packing every 30 seconds. so, packupdate is ok :) |
| 02:17:42 | raptor | ok kaen, sam686, i tested the pack - it only got sent at the start of the level, when i changed game time, and like every 30 seconds |
| 02:17:46 | raptor | haha |
| 02:18:02 | raptor | ok, sam686, i believe you now... :) |
| 02:18:24 | kaen | definitely a good thing to quantify though |
| 02:18:56 | raptor | yes, because I think we need to be *really* miserly on network usage... |
| 02:19:54 | kaen | I'm still edgy about subtly breaking something, but it's working for my testing so far |
| 02:20:59 | sam686 | can look at GameConnection::setConnectionSpeed |
| 02:21:36 | sam686 | many people's internet connection often have bigger download then upload though.. |
| 02:24:31 | sam686 | and it appears like if waturimoto hates letting users set their connection speed in option menu, at one time I added as option menu, watusimoto removed it. |
| 02:25:27 | raptor | i think it was because our menus were gettting too big and that was a more advanced option |
| 02:25:36 | raptor | but now we have sub-options menus... |
| 02:25:49 | | Skybax Quit (Ping timeout: 246 seconds) |
| 02:27:25 | sam686 | could be possible to, auto slow down connection speed whenever you start lagging a lot or have too many dropped packets, but what if that LAG was caused by downloading sonething, you get even more LAG if game slows down connection speed... |
| 02:30:18 | | Skybax has joined |
| 02:35:25 | | raptor Quit (Ping timeout: 252 seconds) |
| 02:38:45 | | raptor has joined |
| 02:38:45 | | ChanServ sets mode +o |
| 02:40:57 | raptor | neat level kaen! |
| 02:51:59 | | kumool has joined |
| 03:05:22 | Skybax | Hey raptor, the BitTown server isn't showing up |
| 03:05:36 | Skybax | Did it crash? |
| 03:05:47 | raptor | argh! they moved the master server, let me check |
| 03:06:11 | sam686 | more like, master server restarted? |
| 03:07:08 | raptor | ok, showing up now? |
| 03:07:13 | Skybax | Yep! |
| 03:08:14 | sam686 | part of the problem, bittown is CPU heavy... |
| 03:09:02 | sam686 | well only with bots.. |
| 03:17:48 | kaen | raptor, which? |
| 03:19:26 | | amgine123 has joined |
| 03:19:48 | amgine123 | sup everyone |
| 03:19:53 | amgine123 | hey kaen you afk ? |
| 03:20:27 | Nothing_Much | Howdy |
| 03:20:31 | Nothing_Much | everyone |
| 03:22:12 | raptor | umm... it was curvy one... symmetrical, on sam test |
| 03:22:18 | kaen | oh ok |
| 03:22:31 | kaen | I made that in like thirty minutes before a game night |
| 03:22:35 | kaen | ... and no one showed up |
| 03:22:52 | raptor | awww |
| 03:23:09 | raptor | that was the best level i played tonight - there were 7 of us and it was crazy - crazy good |
| 03:23:29 | amgine123 | anything new in regards to BF ? |
| 03:23:44 | | Platskies Quit (Quit: Platskies) |
| 03:25:53 | kaen | thanks :) |
| 03:26:38 | raptor | also.. those circley zone pies were great bouncer traps |
| 03:27:04 | raptor | hi amgine123, nothing at the moment, getting close to release though |
| 03:27:23 | raptor | oh kaen - did you say you altered teh sandbox.lua i gave you any? |
| 03:28:25 | raptor | sam686: did you fix this?: https://code.google.com/p/bitfighter/issues/detail?id=315 |
| 03:28:45 | sam686 | no not yet.. |
| 03:29:02 | raptor | ah ok, i thought it made it in with the speedzone/gametype changes |
| 03:33:09 | | kumool Quit (Ping timeout: 246 seconds) |
| 03:37:02 | | GEOFBOT Quit (Read error: Connection reset by peer) |
| 03:37:56 | Skybax | Having a lot of spybugs on one team makes shots and turrets disappear while on that team xD |
| 03:38:19 | raptor | yes - the age-old too-many game objects bug |
| 03:38:36 | raptor | i think that limit is being increased for 019... right sam686? |
| 03:38:44 | sam686 | just wait till 019 |
| 03:38:51 | raptor | it was 1024, but i think it's up to 4096? |
| 03:39:19 | sam686 | the limit been increased, a lot, about 100 times more object when needed, or tiny memory usage when having only small number of objects |
| 03:40:03 | sam686 | more like up to 65536 i think.. |
| 03:40:16 | raptor | oh my, that's right |
| 03:42:23 | Skybax | Nice |
| 03:42:30 | Skybax | NEARLY-INFINITE SPYBUGS |
| 03:43:17 | sam686 | theres also a CPU slowdown problem with too many spybugs - searching all of them to check if nearby.. |
| 03:43:55 | sam686 | LineItem, they don't really have any CPU slowdown at all |
| 03:45:40 | sam686 | but all objects except Barriers PolyWalls count towards the limit of objects (1024 on 018a) |
| 03:46:53 | sam686 | turrets, asteroids, and resourceItem might not count toward the limit if you or all your spybugs are away from it |
| 03:47:09 | sam686 | (and not or) |
| 03:52:15 | amgine123 | kaen are you there |
| 03:55:35 | amgine123 | guess he is afk |
| 03:56:18 | amgine123 | sam or raptor can you help me with a small part of my code im making for my lua program im not sure how to program this one part but i want to learn how |
| 03:59:53 | sam686 | program what? |
| 04:01:23 | amgine123 | working on my lua code |
| 04:01:50 | amgine123 | thing is i dont want to to get the answer exactly i want to learn |
| 04:01:57 | amgine123 | to the answer |
| 04:02:23 | sam686 | ok |
| 04:03:53 | amgine123 | http://pastie.org/8508883#14-15 |
| 04:04:08 | amgine123 | moving group of obhects by there center =p |
| 04:04:43 | amgine123 | somehow i have to find coordintes of each object find the average to get the center then move that cetner to coordintes X,Y |
| 04:07:27 | sam686 | how about adding all the points up, and divide by #objects (number of objects) |
| 04:08:15 | sam686 | or maybe that won't work the best.. |
| 04:09:08 | amgine123 | hmm well first how would i get the objects coordintes |
| 04:09:11 | sam686 | maybe the better way is find the min_x of all points, max_x of all points, min_y, max_y, and take the middle: middle_x = (min_x + max_x_ / 2 |
| 04:09:39 | sam686 | i mean middle_x = (min_x + max_x) / 2 |
| 04:09:42 | sam686 | same for y |
| 04:10:59 | sam686 | however there a problem in your pastie's code. the "end" is at wrong place |
| 04:11:58 | amgine123 | ill fix thaqt later |
| 04:12:20 | amgine123 | is there a command for getting a objects coordintes |
| 04:13:05 | sam686 | objects[i]:getPos() |
| 04:13:17 | sam686 | objects[i]:getPos().x ? (i think) |
| 04:13:42 | sam686 | oh more like you missing "end" for your first "for" loop |
| 04:14:46 | amgine123 | im to stupid to understand sam kaen makes it so easy to understand XD |
| 04:25:10 | | kumul has joined |
| 04:25:25 | amgine123 | bbl piano |
| 04:25:50 | amgine123 | or not |
| 04:28:20 | amgine123 | bbl piano |
| 04:32:05 | raptor | got weird assert with /next a few times in a row: http://pastie.org/pastes/8508915/text |
| 04:32:48 | | kumul Quit (Quit: Leaving) |
| 04:32:55 | sam686 | might be something with Zap::Ship::writeControlState |
| 04:33:43 | sam686 | #0 TNL::BitStream::writeRangedU32 (this=0x7fffffffc750, value=1091348080, rangeStart=0, rangeEnd=3) |
| 04:33:46 | sam686 | weard value.... |
| 04:35:07 | sam686 | stream->writeRangedU32(mLoadout.getActiveWeaponIndex(), 0, ShipWeaponCount); |
| 04:35:33 | sam686 | LoadoutTracker::mActiveWeapon not set to zero on constructor? |
| 04:35:35 | raptor | oh... |
| 04:35:37 | raptor | oops |
| 04:35:39 | raptor | that's myfault |
| 04:35:52 | raptor | i had mActiveWeaponIndex commented out somewhere... |
| 04:35:55 | raptor | in a constructor |
| 04:36:01 | raptor | false alarm... |
| 04:43:53 | sam686 | we been compiling fine without linker errors? (ship.h have "void checkForSpeedzones();" but is missing from ship.cpp ) |
| 04:44:23 | sam686 | been that way from a long time.. |
| 04:44:35 | sam686 | but 018a have checkForSpeedzones on both .cpp and .h |
| 05:18:25 | raptor | i wonder if there is a way to clean those up... find all the unimplemented declarations |
| 05:30:52 | amgine123 | back |
| 05:43:51 | | amgine123 Quit (Ping timeout: 250 seconds) |
| 05:48:09 | | raptor Quit () |
| 05:48:27 | | destroyerimo has joined |
| 06:04:50 | sam686 | cannot open scripts/sandbox.lua: No such file or directory |
| 06:05:00 | sam686 | no wonder levelgen won't work |
| 06:05:27 | sam686 | one problem, where is sandbox.lua? |
| 06:07:32 | sam686 | kaen it appears that your sandbox thing is not working, complaining it can't find sandbox.lua. And I don't see sandbox.lua in any of the recent commits.. |
| 06:16:57 | | Flynnn has joined |
| 06:22:10 | sam686 | or I just forgot to pull.. |
| 06:23:23 | | BFLogBot Commit: 9a8b626eeae4 | Author: sam8641 | Message: Make SpeedZone work while not moving, usually when spawned on top of SpeedZone. |
| 07:10:20 | | alex_velea has joined |
| 07:16:22 | | HylianSavior Quit (Read error: Connection reset by peer) |
| 07:44:49 | | Invisible has joined |
| 07:49:35 | | alex_velea Quit (Quit: Page closed) |
| 07:56:53 | | Skybax Quit (Ping timeout: 248 seconds) |
| 08:03:43 | | koda has joined |
| 08:42:52 | destroyerimo | hey guys! |
| 08:59:35 | | Skybax has joined |
| 09:12:55 | | Skybax Quit (Ping timeout: 245 seconds) |
| 09:16:02 | | Skybax has joined |
| 09:40:28 | | Skybax_ has joined |
| 09:40:40 | | Skybax Quit (Ping timeout: 264 seconds) |
| 09:45:12 | | Flynnn Quit (Quit: This computer has gone to sleep) |
| 09:55:26 | | Platskies has joined |
| 10:05:57 | | Skybax has joined |
| 10:08:19 | | Skybax_ Quit (Ping timeout: 272 seconds) |
| 10:26:30 | | Invisible Quit (Ping timeout: 246 seconds) |
| 10:39:08 | | Skybax_ has joined |
| 10:41:31 | | Skybax Quit (Ping timeout: 272 seconds) |
| 10:59:58 | | Skybax_ Quit (Ping timeout: 246 seconds) |
| 11:08:00 | | Skybax has joined |
| 11:35:27 | | Skybax Quit (Ping timeout: 272 seconds) |
| 11:40:52 | | Platskies Quit (Read error: Connection reset by peer) |
| 12:12:59 | | Darrel has joined |
| 12:55:05 | | destroyerimo Quit (Ping timeout: 251 seconds) |
| 13:04:10 | | Watusimoto has joined |
| 13:05:28 | | Invisible has joined |
| 13:09:25 | | watusimoto1 has joined |
| 13:28:05 | | watusimoto1 Quit (Quit: Leaving.) |
| 13:38:13 | | Invisible Quit (Ping timeout: 272 seconds) |
| 13:43:47 | | Watusimoto Quit (Ping timeout: 246 seconds) |
| 14:00:02 | | GEOFBOT has joined |
| 14:00:03 | | Geoffrey has joined |
| 14:03:28 | | koda Quit (Ping timeout: 264 seconds) |
| 14:19:03 | | koda has joined |
| 14:38:55 | | Invisible1 has joined |
| 14:47:58 | | GEOFBOT Quit (Read error: Connection reset by peer) |
| 14:58:00 | | kumool has joined |
| 15:01:33 | | Geoffrey is now known as GEOFBOT |
| 15:06:58 | | LordDVG has joined |
| 15:14:52 | | Invisible1 Quit (Ping timeout: 264 seconds) |
| 15:38:31 | | noneofmynickswor has joined |
| 15:41:30 | | kumool Quit (Ping timeout: 246 seconds) |
| 16:15:32 | | thread_ has joined |
| 16:22:52 | kaen | hmmm... looks like luaWrapper leaves Class.metatable.__extends mutable |
| 16:34:24 | | Invisible has joined |
| 16:47:26 | | kumool has joined |
| 16:50:39 | | noneofmynickswor Quit (Ping timeout: 265 seconds) |
| 16:51:49 | | HylianSavior has joined |
| 16:58:02 | thread_ | I added another class to BCL! |
| 16:59:43 | | alex_velea has joined |
| 17:00:20 | alex_velea | Any ideeas when watusimoto will come online? |
| 17:00:45 | Nothing_Much | alex_velea: I think on Wednesday he said he'll be back to normal |
| 17:01:55 | alex_velea | From where is he? |
| 17:02:26 | kaen | he's from Luxembourg |
| 17:02:41 | kaen | can I help you with something, alex_velea ? |
| 17:03:28 | alex_velea | He said on the gci page for my task that he has some ideas about the implementation of the task and that i should talk to him first :) |
| 17:03:34 | alex_velea | Before i start doing it |
| 17:03:44 | kaen | ah, I see |
| 17:05:18 | kaen | ok, looks like you're doing redo/undo? |
| 17:06:16 | kaen | I think the central focus of his ideas was the notion of an "action" interface, which should have a redo() and undo() methods |
| 17:07:01 | kaen | and then the editor will keep a stack of actions, and redo/undo in the editor boils down to moving the stack pointer, and call action.undo() or action.redo() as appropriate |
| 17:07:49 | kaen | the invariant of the class is that redo() and undo() are exactly inverse operations, and one followed by the other should return the editor to its original state. |
| 17:07:56 | | raptor has joined |
| 17:07:56 | | ChanServ sets mode +o |
| 17:08:28 | alex_velea | I have a question about this |
| 17:08:32 | kaen | ok |
| 17:08:43 | alex_velea | My ideea was to create a class named action |
| 17:08:43 | raptor | hi |
| 17:08:54 | alex_velea | and to split in the type of action .. to use less space |
| 17:08:57 | alex_velea | w/e |
| 17:09:02 | alex_velea | But .. if i have a stack |
| 17:09:07 | raptor | actually, the main issue is that every action makes an entire copy of the object pointer database |
| 17:09:29 | kaen | currently, yes it does |
| 17:09:32 | alex_velea | and the user does 5 undo's .. i will go 5 steps deep in that stack |
| 17:09:43 | alex_velea | and if he does 2 redo's i will 'go up' 2 steps in the stack |
| 17:09:48 | kaen | but the notion of an "action" solves that, raptor :) (and good day) |
| 17:10:04 | kaen | alex_velea, correct |
| 17:10:06 | alex_velea | but after that if he does sth else should i clear the rest of the stack (the other 2 actions?) |
| 17:10:16 | kaen | clear everything above it, yes |
| 17:10:17 | alex_velea | If u get my ideea |
| 17:10:21 | alex_velea | Ok than :) |
| 17:10:24 | alex_velea | It seems ok |
| 17:10:59 | kaen | let me know if you have any questions |
| 17:10:59 | alex_velea | What's the cap limit for the actions? |
| 17:11:05 | kaen | umm you pick :) |
| 17:11:10 | alex_velea | 50 it's ok? |
| 17:11:28 | kaen | 50 sounds fine, just make it a constant somewhere that can be easily tweaked |
| 17:11:36 | alex_velea | Ok :) |
| 17:11:52 | raptor | alex_velea: is this task algorithmic-intensive enough for you? :) |
| 17:12:12 | | koda Quit (Quit: Leaving) |
| 17:12:23 | raptor | noooo... i missed koda again |
| 17:12:23 | kaen | I think the hard part will be encoding editor actions as objects |
| 17:12:31 | kaen | there's a name for this pattern... maybe command pattern? |
| 17:13:39 | raptor | dterministic vs state saving (like with a replay system) ? |
| 17:16:05 | alex_velea | It's a fun task raptop, but usually i deal with ioi / acm style of problems, but thx for thinking of me |
| 17:17:15 | kaen | algorithmically, pretty simple. architecturally interesting to me, though |
| 17:19:00 | alex_velea | True that |
| 17:32:53 | | raptor Quit () |
| 17:51:25 | | alex_velea Quit (Ping timeout: 250 seconds) |
| 17:52:35 | | fordcars has joined |
| 17:54:38 | fordcars | We are still getting close to release? |
| 17:55:26 | thread_ | in the course of eternity... yes, we are close |
| 17:55:45 | fordcars | :) |
| 17:55:55 | thread_ | relatively speaking |
| 18:05:56 | | HylianSavior Quit (Read error: Connection reset by peer) |
| 18:22:55 | fordcars | laterguys! |
| 18:22:58 | | fordcars Quit (Quit: http://www.kiwiirc.com/ - A hand crafted IRC client) |
| 18:28:04 | | Watusimoto has joined |
| 18:29:57 | | Invisible Quit (Ping timeout: 248 seconds) |
| 18:41:51 | | Flynnn has joined |
| 18:45:43 | | Skybax has joined |
| 18:52:13 | | Watusimoto Quit (Ping timeout: 252 seconds) |
| 18:54:22 | | Flynnn Quit (Quit: This computer has gone to sleep) |
| 18:57:23 | | Bob1 has joined |
| 18:58:07 | | kumul has joined |
| 18:58:43 | | kumool Quit (Ping timeout: 265 seconds) |
| 19:01:39 | | Flynnn has joined |
| 19:06:32 | | Canseco has joined |
| 19:09:36 | | Canseco Quit (Client Quit) |
| 19:11:53 | | Canseco has joined |
| 19:20:49 | | Skybax Quit (Ping timeout: 246 seconds) |
| 19:23:00 | | Bob1 Quit (Quit: Page closed) |
| 19:25:35 | | Canseco Quit (Quit: http://quassel-irc.org - Bye) |
| 19:26:05 | | Canseco has joined |
| 19:28:52 | | Canseco Quit (Remote host closed the connection) |
| 19:31:00 | thread_ | kaen: do bots run their main function when they spawn or only at the start of the match, when they "join" the game? |
| 19:31:12 | | Skybax has joined |
| 19:38:27 | | Canseco has joined |
| 19:41:09 | kaen | only when they join, I believe |
| 19:41:55 | kaen | you can test if the current bot is spawning by doing info:getShip() == bot, I believe |
| 19:42:03 | kaen | not positive, though |
| 19:42:22 | kaen | actually no, that wouldn't work |
| 19:42:28 | | Invisible has joined |
| 19:43:02 | thread_ | hrmm... |
| 19:44:42 | | Skybax Quit (Read error: Connection reset by peer) |
| 19:45:51 | | Skybax has joined |
| 19:52:10 | | Canseco Quit (Remote host closed the connection) |
| 19:54:50 | | Canseco has joined |
| 19:58:17 | thread_ | kaen: is it possible for me to declare, in a levelgen, what bot script is preferred for a level/ |
| 19:58:44 | thread_ | if not, can it be declared in the .level file? |
| 19:59:17 | | Flynnn Quit (Quit: This computer has gone to sleep) |
| 19:59:18 | kaen | for use with /addbot ? no. |
| 19:59:37 | kaen | 019 lets you add bots, and Robot.new takes a script name |
| 19:59:40 | | Canseco Quit (Remote host closed the connection) |
| 20:00:04 | thread_ | Its the fact that I'm trying to write a bot that works with my class system |
| 20:00:20 | kaen | you could try this: |
| 20:00:24 | thread_ | I don't want to have to quit bit fighter and change the .ini |
| 20:00:47 | kaen | catch ship spawn events, check if it's a bot, if it is a bot, but not your bot, kick the bot and add one of yours |
| 20:01:12 | thread_ | how do I add a bot in levelgen? how do I check if it's a bot? |
| 20:01:29 | kaen | bf:addItem(Robot.new()) |
| 20:01:33 | kaen | 019 only |
| 20:01:37 | thread_ | ooohhh |
| 20:01:55 | thread_ | do I check type similarly to zone types? |
| 20:02:29 | kaen | obj:getObjType() == ObjType.Robot |
| 20:02:32 | kaen | like that? |
| 20:02:36 | thread_ | yea |
| 20:03:12 | kaen | how to check if it's your bot ... |
| 20:03:39 | thread_ | check the player name? |
| 20:03:47 | thread_ | I suppose I could do that |
| 20:04:39 | kaen | oh, good idea :) |
| 20:04:46 | kaen | I was thinking of something way too complicated |
| 20:05:17 | thread_ | I realized I do define what the name is, so I can check that |
| 20:05:25 | | Invisible Quit (Ping timeout: 245 seconds) |
| 20:05:30 | | GEOFBOT has left #bitfighter |
| 20:06:56 | kaen | I'd advise using string.find instead of name == "blah |
| 20:07:02 | kaen | for the .0 case |
| 20:13:26 | | Flynnn has joined |
| 20:19:01 | | Skybax Quit (Read error: Connection reset by peer) |
| 20:20:22 | | Skybax has joined |
| 20:20:23 | thread_ | of course |
| 20:22:54 | | BFLogBot Commit: d007602a4251 | Author: kaen | Message: tighten down sandbox a bit more and add some more tests |
| 20:25:52 | | LordDVG Quit (Remote host closed the connection) |
| 20:26:16 | | LordDVG has joined |
| 20:29:40 | kaen | for the logs: I have some negative results that are worth reporting |
| 20:29:54 | kaen | I tried recursively making _G immutable, but ran into several problems |
| 20:30:21 | kaen | cyclical references require memoization, which I did using the tables themselves as keys in a history |
| 20:31:03 | kaen | but protect_module actually returns a new table, not just the modified old one, so memoization can fail there by counting a protected table as unvisited |
| 20:32:24 | kaen | additionally, luaW reuses metatables for the userdata, meaning that protecting a table only the first time it is encountered will leave later occurrences of that table unprotected |
| 20:32:52 | kaen | beyond the memoization problems, there are some tables which actually must be mutable |
| 20:33:05 | kaen | Timer for example, requires Timer.time to be mutable |
| 20:34:33 | kaen | Also, freezing the environment tables themselves makes function main() end through an error during its definition (can't create a key on _G after it's frozen), so freezing the environments would require rewriting runMain and friends to search for locals, as well as break every script ever written for bitfighter |
| 20:34:59 | kaen | my final attempt was to implement a deep copy to be run on _G while preparing script environments |
| 20:35:36 | kaen | this appeared to have worked, but due to luaW's (to me indecipherable) reuse of some metatables but not others, it caused segmentation faults during setSelf |
| 20:35:50 | kaen | in light of these facts, I have left the current implementation as follows: |
| 20:36:08 | kaen | script environments are shallow copies of LUA_GLOBALSINDEX |
| 20:36:30 | kaen | only a select number of tables are frozen in sandbox.lua |
| 20:37:16 | kaen | this means that, while the sandbox appears to prevent system-damaging exploits via os and friends, it is still possible for scripts to mess with each other |
| 20:37:44 | kaen | </soliloquy> |
| 20:49:50 | thread_ | one more question, how do I kick a bot from levelgen? |
| 20:49:59 | kaen | bot:removeFromGame() |
| 20:50:11 | thread_ | uhhh... nope |
| 20:50:19 | kaen | err, sorry |
| 20:50:41 | kaen | you need to get a reference to the bot in the levelgen |
| 20:50:51 | kaen | probably in the levelgen's onShipSpawned |
| 20:50:56 | thread_ | Assert: Too many disabled collisions in c:\source\bitfighter\zap\bfobject.cpp line 1107 |
| 20:51:02 | kaen | ok, that's a bug :) |
| 20:51:15 | kaen | how old is your build? |
| 20:51:23 | thread_ | ummm... this week |
| 20:51:28 | thread_ | sometime this last week |
| 20:51:37 | kaen | oh no. that's bad news. |
| 20:51:52 | kaen | ok, can you give me your levelgen? |
| 20:52:16 | thread_ | http://pastie.org/8510849 |
| 20:52:25 | thread_ | dying line is on 359 |
| 20:53:39 | thread_ | did I break the universe? |
| 20:56:26 | kaen | nope, probably just another subtle bug I missed |
| 20:56:42 | kaen | or who knows, maybe an obvious one :) |
| 20:57:10 | thread_ | I seem to be good at finding the obscure bugs that really have no business being found |
| 20:57:56 | kaen | that's because you're always in uncharted territory |
| 20:58:00 | kaen | a levelgen pioneer |
| 20:58:03 | kaen | an innovator |
| 20:59:43 | thread_ | Or a crazed scientist wannabe |
| 21:08:06 | kaen | cool! I get a segfault when I add a bot |
| 21:08:26 | thread_ | umm... your welcome? |
| 21:09:08 | thread_ | anyways, gonna dissappear for a bit. chow |
| 21:09:11 | | thread_ has left #bitfighter |
| 21:09:43 | kaen | ciao |
| 21:11:10 | | Skybax_ has joined |
| 21:13:09 | | Skybax Quit (Ping timeout: 248 seconds) |
| 21:17:02 | | LordDVG Quit (Remote host closed the connection) |
| 21:21:48 | | Invisible has joined |
| 21:35:46 | | Skybax_ Quit (Ping timeout: 240 seconds) |
| 21:40:10 | | Bob1 has joined |
| 22:04:49 | Bob1 | hahaha kaen |
| 22:04:52 | Bob1 | i dig it |
| 22:10:07 | | Invisible Quit (Ping timeout: 265 seconds) |
| 22:14:11 | | raptor has joined |
| 22:14:11 | | ChanServ sets mode +o |
| 22:14:20 | raptor | howdy folks |
| 22:14:34 | kaen | hi! |
| 22:15:16 | kaen | raptor, long and short of the lua sandbox effort: you can't start a bindshell anymore, but you can screw up someone's Timer |
| 22:15:28 | raptor | haha |
| 22:15:35 | kaen | I gave a little monologue about the difficulties of fulling locking down the sandbox |
| 22:15:46 | kaen | about two hours ago |
| 22:16:53 | raptor | let me see... |
| 22:16:59 | raptor | looking at the sanbox changes now... |
| 22:17:27 | kaen | not very much, because I had to give up my high aspirations. |
| 22:20:02 | raptor | ok well - i think it's OK for now |
| 22:20:29 | kaen | I think so too |
| 22:20:55 | raptor | I mean, it's the best we've ever had, actually |
| 22:21:32 | raptor | you removed the 'smt = nil' ? |
| 22:21:40 | raptor | i supopsed that was unnecessary because it was a local |
| 22:21:49 | raptor | *suppose |
| 22:22:26 | kaen | correct |
| 22:22:50 | kaen | I wanted to allow use of protect_module after the sandboxing |
| 22:23:01 | kaen | so that reference has to stay valid |
| 22:23:11 | raptor | I was going through LuaW last night again - trying to find a way to clean-up all objects that were called with .new() but never with bf:addItem() |
| 22:23:23 | raptor | and I got overwhelmed |
| 22:23:30 | kaen | I haven't tried that one yet |
| 22:23:38 | kaen | I was looking at luaW last night, too |
| 22:23:44 | kaen | and was also overwhelmed |
| 22:24:14 | raptor | my idea is that when the LuaScriptRunner destructor is called, we could go through LuaW's cache tables, find all the BfObjects and clean them up |
| 22:24:31 | raptor | but.... |
| 22:25:20 | raptor | I'm not sure how bad it will be with differentiating one object from one script and another object from another script |
| 22:25:38 | raptor | or even if that idea will work - as LuaW I think has *one* cache for the entire game... |
| 22:25:53 | kaen | I believe so |
| 22:27:53 | sam686 | luaL_dostring(L, #include "sandbox.lua"); (wished that worked) |
| 22:27:54 | sam686 | But would it be better to compile those LUA scripts (like sandbox.lua) instead of loading at program start? |
| 22:29:09 | raptor | Goo time |
| 22:32:52 | kaen | sam686, LuaScriptRunner::loadCompileRunHelper("sandbox.lua") |
| 22:32:56 | kaen | something like that |
| 22:33:40 | kaen | I like keeping as much lua outside of cpp as possible because then it's faster to tweak it since you don't need to recompile |
| 22:34:12 | sam686 | but then that means other people could mess around with it.. |
| 22:35:18 | kaen | to me that's a good thing :) |
| 22:35:31 | kaen | you're allowed to shoot yourself in the foot |
| 22:36:50 | sam686 | The other problem, as I sometimes do, is keeping multiple version of .exe on the same folder, but if newer exe relys on newer scripts, the older .exe might totally fail on LUA with too-new of LUA scripts |
| 22:40:32 | kaen | the same could be true for any other resource like fonts or dlls |
| 22:44:50 | kaen | I can't figure out why ShipSpawned isn't firing here: http://pastie.org/8511048 |
| 22:45:04 | sam686 | the problem is mostly if it changes, older .exe don't care about new stuff added, it just get ignored. |
| 22:45:25 | kaen | I'm trying to write a test for thread_'s new bug (removing a bot during its first onshipspawned callback) |
| 22:46:49 | | Skybax has joined |
| 22:46:51 | kaen | the bot gets added, but EventManager::fire never happens. same if you use Robot.New() instead |
| 22:48:20 | | Bob1 Quit (Quit: Page closed) |
| 22:56:55 | sam686 | http://sam6.25u.com/upload/screenshot_136.png renamed font |
| 22:58:30 | raptor | i think robots are piped to shipSpawnedEvent |
| 22:58:35 | raptor | are *not*, i mean |
| 23:00:36 | raptor | kaen: I think it was a conscious decision to never fire that event with bots |
| 23:01:19 | raptor | i don't remember why, though |
| 23:02:10 | | watusimoto has joined |
| 23:02:11 | | ChanServ sets mode +o |
| 23:03:26 | sam686 | the chat is not wrapping to new line correctly with the new font (a bunch of "i" doesn't wrap and goes off screen) (a bunch of "W" wrap a bit too short) |
| 23:03:29 | kaen | here's thread's levelgen: http://pastie.org/pastes/8510849/text |
| 23:03:43 | raptor | haha, i like your warnings at the top of the sandbox, kaen |
| 23:03:55 | kaen | it listens for a robot to be added with /addbot, the removes it and tries to Robot.new() a different bot |
| 23:04:00 | raptor | "especially under someone else's directions" |
| 23:04:07 | kaen | but crashes during ship:removeFromGame() |
| 23:05:36 | kaen | I felt like it needed a seatbelt :) |
| 23:06:50 | raptor | oh my that is a big script |
| 23:07:08 | raptor | bobdaduck and thread must be trying to set new standards... |
| 23:07:19 | kaen | yeah, it can be trimmed down quite a bit to reproduce the bug |
| 23:07:26 | kaen | on a side note, I think it's really cool! |
| 23:07:28 | kaen | and almost easy to use |
| 23:07:48 | kaen | (if you know to type "help") |
| 23:22:10 | raptor | kaen: are you saying that onShipSpawned is returning nil for ship with Robots? |
| 23:24:09 | kaen | nope, I'm saying it's working fine as far as I can tell, except that ship:removeFromGame() causes a segfault |
| 23:28:21 | raptor | ouch - a segfault like that is bad news |
| 23:28:34 | kaen | I'm almost done with the segfault |
| 23:28:44 | kaen | I just wanted to add a test for it too :/ |
| 23:29:22 | raptor | ah ok, I won't delve into it, then |
| 23:30:21 | kaen | so... do you think we can still do that thing we talked about this week? |
| 23:30:44 | raptor | yes! |
| 23:30:47 | kaen | cool! |
| 23:31:09 | raptor | i mean, we should get in a good round of playtesting - and convince sam686 and watusimoto not to do any more refactors... :) |
| 23:31:11 | sam686 | I guess my mistake was running the levelgen as a BOT! no wonder it didn't crash on me.. |
| 23:31:49 | watusimoto | no more refactors for be before the release! |
| 23:32:03 | sam686 | although it did auto prevent more bots from joining until I kick the bot-kicking bot |
| 23:32:15 | raptor | oh goodie, you're here! |
| 23:32:33 | watusimoto | just an interesting side note -- I spent this afternoon tromping around in Antwerp's sewers, in big rubber boots and a protective suit |
| 23:32:44 | raptor | now i just have to remember my questions for you... |
| 23:32:49 | raptor | watusimoto: oh really? |
| 23:33:03 | watusimoto | yes, it was quite interesting. and a little gross |
| 23:33:04 | raptor | that's interesting - work or... play? |
| 23:33:36 | watusimoto | it was for work, but was essentially... not play exactly, but not essential duty either |
| 23:34:12 | watusimoto | I am attending a meeting for a project I work on trying to reduce the energy consumption of sewage treatment |
| 23:34:25 | watusimoto | so it was a bit of an educational trip |
| 23:34:56 | raptor | energy consumption of sewage treatment... hmmm... let it sit out in the sun? |
| 23:35:00 | | Skybax_ has joined |
| 23:35:51 | watusimoto | You need to use up the "food" in the water so the bacteria that eat it don't suck up all the oxygen in whatever body of water it gets discharged into and kill all the fish |
| 23:36:18 | watusimoto | that's a big part of what sewage treatment does |
| 23:36:50 | raptor | reminds me of that one quote: "there are two types of people in the world: those that poop in their water supply, and those that don't" |
| 23:37:09 | | Skybax Quit (Ping timeout: 248 seconds) |
| 23:37:48 | raptor | maybe that was some arab cultural quote my wife brought back from the middle-east |
| 23:38:01 | raptor | anyways, that sounds very educational |
| 23:38:21 | raptor | and excuse my potty mouth - I have 3 children under 5 years old |
| 23:39:48 | watusimoto | almost all of us poop into someone else's water supply.... certainly anyone living on a river does |
| 23:40:16 | | BFLogBot Commit: 50a994a07003 | Author: sam8641 | Message: Fix linker error master build |
| 23:40:17 | | BFLogBot Commit: 513985db3706 | Author: sam8641 | Message: Might help if instruction Core don't animate backwards. |
| 23:40:33 | raptor | nothing is more enlightening about civilization than following the sewage... |
| 23:40:54 | watusimoto | I've always thought cities should be required to discharge their sewage upstream from their drinking water intake pipes... it would properly align the incentives |
| 23:41:05 | raptor | hahaha |
| 23:41:05 | | koda has joined |
| 23:42:09 | sam686 | except many fresh water pipes have anti-backflow protection.. |
| 23:42:21 | | Darrel Quit (Quit: IRC client killed.) |
| 23:42:50 | raptor | oh i remember my questino for you watusimoto - this bug: https://code.google.com/p/bitfighter/issues/detail?id=316 is confusing to follow, so here is the short of it |
| 23:42:55 | watusimoto | that would keep the water from flowing back into the river :-) |
| 23:43:17 | raptor | basically you have phaser selected, change to a new loadout with phaser in it, but in a different slot; phaser is still selected |
| 23:43:38 | raptor | sky_lark wants it so new loadout changes reset to whatever is in slot 1 |
| 23:43:46 | watusimoto | that behavior is intentional |
| 23:43:53 | raptor | that's what I thought |
| 23:43:59 | watusimoto | maybe it shouldn't work that way, but it's not a bug |
| 23:44:08 | raptor | yes, ok |
| 23:44:15 | sam686 | I seen that, I set triple as first weapon, phaser as second weapon, it always selects phaser even after multiple deaths and I didn't even had phaser selected on ship death.. |
| 23:44:31 | watusimoto | I actually remember making that design decision and writing the code, way back in the early days of Bitfighter |
| 23:44:37 | raptor | so then my question is: does it make sense to reset to index 1? |
| 23:44:56 | watusimoto | to me, no, but I don;t feel strongly about it |
| 23:45:08 | watusimoto | I can see arguments either way |
| 23:45:20 | raptor | i admit to getting lost a few times with my loadout when changing it, expecting to have the first one selected |
| 23:45:24 | sam686 | or maybe its a side effect of keeping your current weapon after changing loadout, if your new loadout still have that weapon on a different slot |
| 23:45:28 | raptor | like when you respawn |
| 23:45:42 | watusimoto | in fact, I would say that my feelings about this particular issue are nearly 0 |
| 23:46:07 | watusimoto | I think we should do whatever is least disorienting |
| 23:46:56 | watusimoto | regardless of how it works, it has no real impact on game play |
| 23:47:02 | watusimoto | so we can make it work however |
| 23:47:48 | watusimoto | if it were my decision right now I'd say leave it; but I would also not veto someone who feels stronger than 0 overriding me |
| 23:48:03 | raptor | well that's sky_lark |
| 23:48:18 | raptor | i don't think i play enough to find it a huge issue |
| 23:50:23 | watusimoto | actually, in the new right now, I'm leaning the other way, though my conviction is still near 0 |
| 23:50:52 | raptor | which other way? |
| 23:53:58 | sam686 | Ship::setLoadout |
| 23:54:31 | sam686 | well similar problem is getClientInfo()->getStatistics()->mChangedLoadout++; keeps counting on ship's death/respawn when a player uses the same non-default loadout... |
| 23:55:14 | watusimoto | skylar's way |
| 23:57:09 | sam686 | part of the problem is we delete "Ship" and create new "Ship" everytime a player's ship die, which is why no existing "ship" data exists on ship's spawn. |
| 23:57:31 | sam686 | but robot doesn't delete/new like ship does. |
| 23:58:48 | watusimoto | robot doesn't delete because we don;t want to reinitilaize the bot every time. It's a lot cheaper to do that now than it was when bots were first created |