--- Log opened Mon Nov 26 00:00:58 2007 |
01:15 | | You're now known as TheWatcher[T-2] |
01:21 | | You're now known as TheWatcher[zZzZ] |
01:23 | | Thaqui [~Thaqui@Nightstar-13064.jetstream.xtra.co.nz] has quit [Ping Timeout] |
01:32 | | Thaqui [~Thaqui@Nightstar-26276.jetstream.xtra.co.nz] has joined #code |
01:32 | | mode/#code [+o Thaqui] by ChanServ |
02:07 | | Vornicus [~vorn@Admin.Nightstar.Net] has quit [Ping Timeout] |
02:08 | | Vornotron [~vorn@Admin.Nightstar.Net] has joined #code |
02:08 | | Vornotron is now known as Vornicus |
03:43 | <@ToxicFrog> | ... |
03:43 | | * ToxicFrog figures out how to embed control characters in his passwords |
03:53 | | ToxicFrog is now known as ToxicCommander |
03:55 | | Forj [~Forj@Nightstar-10789.ue.woosh.co.nz] has joined #code |
03:55 | | mode/#code [+o Forj] by ChanServ |
04:20 | | ReivZzz is now known as Reiver |
04:42 | | GeekSoldier|bed is now known as GeekSoldier|work |
04:44 | | ToxicCommander is now known as ToxicFrog |
05:21 | | * Vornicus fiddles with libraries, trying to get PyGame to work. |
05:29 | <@McMartin> | Pygame's pretty straightforward. |
05:30 | <@McMartin> | Then again, all I did was "yum install pygame" and it hunted down everything I needed, so. |
05:35 | <@jerith> | Vornicus: I've heard good things about pyglet too. |
05:35 | < Vornicus> | Mine is a bit hairier because there's other toys involved. |
05:35 | <@jerith> | If you want opengl. |
05:35 | < Vornicus> | No OpenGL in this one. |
05:36 | | * jerith drags himself out of bed and goes to shower. |
05:42 | < Vornicus> | agh, wtf |
05:42 | < Vornicus> | _ov_pcm_total referenced from @executable_path/../Frameworks/SDL_mixer.framework/Versions/A/SDL_mixer expected to be defined in /usr/local/lib/libvorbisfile.0.dylib |
05:44 | | Derakon [~Derakon@Nightstar-8000.hsd1.wa.comcast.net] has joined #code |
05:44 | | mode/#code [+o Derakon] by ChanServ |
05:44 | <@Derakon> | ...since when do I get ops here? |
05:45 | < Vornicus> | I wasn't aware of a time when you did not. |
05:45 | | * Derakon shrugs. |
05:45 | < Vornicus> | If you don't want them we can take them back... :P |
05:45 | <@Derakon> | Heh. |
05:45 | <@Derakon> | I just hadn't realized I had 'em. |
05:46 | <@Derakon> | So anyway, I'm thinking of ways to give players secret extra mobility in platforming games. |
05:46 | <@Derakon> | E.g. walljumping, bombjumping, and the Shinespark. |
05:46 | <@Derakon> | A non-Metroid example might be having some technique that resets your vertical velocity (e.g. MM2 pausing). |
05:47 | <@Derakon> | The trick is making them useful and graceful without making them obvious. |
05:47 | <@McMartin> | Or cheating. |
05:47 | <@McMartin> | (as per MM2) |
05:48 | <@Derakon> | Well, yes. But there are other games with similar things. |
05:48 | | * McMartin isn't really a huge fan of Secret Techniques. |
05:48 | <@Derakon> | (Hitting an enemy with the Grapple beam will stop you, for example) |
05:48 | <@McMartin> | Especially ones that are only technically not mandatory. |
05:48 | <@Derakon> | These techniques would only be mandatory for the more insane sequence breaks. |
05:49 | < Vornicus> | Ceiling spring; press up while jumping into the ceiling and you get to control the angle you leave... |
05:49 | <@McMartin> | Yeah, so another Metroid Example, this time of Non-Excellence: The Bomb-powered Morph Ball Launchers in Kraid's Lair in MZM. |
05:49 | <@Derakon> | I wasn't particularly impressed by those. |
05:50 | <@McMartin> | Totally unclued, necessary unless you're sequence breaking, produces a Shinespark effect before you get the real one, and it's the only place in the game bombs are used as a power source. |
05:50 | <@Derakon> | Then again, I got stuck for years by the statue in the Wrecked Ship in SM; it never occurred to me to morph on its hand. |
05:50 | <@McMartin> | Does Everything Wrong. |
05:50 | <@McMartin> | Yeah, that's a similar example, though at least those occasionally hold something. |
05:51 | <@McMartin> | MZM's were structures with no counterpart. Anywhere. |
05:51 | <@Derakon> | As best I can guess, they were there to clue the existence of the morphball shinespark, which debuted in MZM. |
05:51 | <@Derakon> | The fact that they themselves were not especially great is...not so good. |
05:51 | < Vornicus> | Long Fall - you do damage if you fall far enough. See for instance Kirby. |
05:51 | <@Derakon> | I'm thinking more mobility upgrades here, Vorn. |
05:52 | <@Derakon> | So the wall-spring thing could be useful; maybe if you air-dash into a wall, you can walljump off of it, too? |
05:52 | <@McMartin> | Derakon: Hence "Example of Non-Excellence". That is, "These serve only as a Terrible Example To Others, viz. you" |
05:52 | <@Derakon> | Heh. |
05:53 | <@Derakon> | I note that the Shinespark is only clued in a SM demo video you get after having beaten the game and left the title screen running...or is it in the MF/MZM manuals? |
05:53 | <@McMartin> | I'd have to check. |
05:53 | <@Derakon> | Don't worry about it if you don't know offhand. |
05:53 | <@McMartin> | Metroid is Very Much Not Newbie Friendly. |
05:54 | < Vornicus> | Shinespark is clued in SuperMetroid by that bird dude. |
05:54 | <@Derakon> | Anyway, I'm watching a Sparkster TAS here, and the protagonist has a spin-slash technique that the runner is using to more than double his jump length. |
05:54 | <@Derakon> | ...ugh, that thing. >.< |
05:54 | <@McMartin> | That was totally not a clue. |
05:54 | < Vornicus> | Then what was it? |
05:54 | <@McMartin> | Or only barely one. |
05:55 | <@Derakon> | It was a clever idea that didn't work. |
05:55 | <@McMartin> | It was "Look, I can do something." |
05:55 | <@Derakon> | The Shinespark really needs to have its controls spelled out, because it's pretty complicated. |
05:55 | <@McMartin> | It was Guess The Verb, Platformer Edition. |
05:55 | < Vornicus> | heh |
05:55 | <@McMartin> | Dash attack is straightforward: "Oh hey, I'l walk this way, la la" |
05:55 | <@McMartin> | "... I went through that wall." |
05:56 | <@Derakon> | (Return, bomb wall, "oh, that's what those symbols mean.") |
05:56 | <@Derakon> | Sadly, there are several items in Super Metroid that are unattainable without using the Shinespark (c.f. Wrecked Ship reserve tank, missiles and supermissiles in Maridia). |
05:57 | <@Derakon> | Nothing required, but still. |
05:58 | < Reiver> | Shinespark? |
05:59 | <@McMartin> | It's a very specific kind of air-dash in metroid that lets you keep your wall-destroying high-speed super run longer than otherwise permitted by the game engine. |
05:59 | <@Derakon> | A secret technique in the 2D metroid games post-Metroid II: run until you get the speed booster effect, then duck, and your next jump will send you flying in a straight line. |
05:59 | < Vornicus> | Shinespark: run until you kill things by hitting them - duck - jump. |
05:59 | <@McMartin> | Also, regarding SM, it had two places where you could get stuck without using secret techniques to escape. |
05:59 | <@McMartin> | And the hard one -- wall jumping -- would let you save before you realized you were trapped. |
05:59 | <@Derakon> | Yes, I know. One of them you could save in. |
05:59 | <@McMartin> | That ended my first and third attempts on Super Metroid. |
06:00 | < Vornicus> | Have to be standing still when you jump. Usually you go straight up; however you can aim it horizontally or diagonally. |
06:00 | < Vornicus> | You zoom in the direction you jump until you hit something. |
06:01 | < Vornicus> | It's not very well designed or cued, really. |
06:02 | <@Derakon> | It'd be fine if it was easier to control and in the manual. |
06:02 | < Vornicus> | And it's necessary if you want to get everything. |
06:02 | < Vornicus> | Really, any ability you get should either be in the manual, or described in detail in game. |
06:02 | <@Derakon> | Nah, I don't agree with that. |
06:03 | <@Derakon> | But secret abilities should be entirely optional. There only so you look more awesome. |
06:03 | < Vornicus> | Well, at least you should have opportunity to put its through its paces before you have to solve any real puzzles involving it. |
06:03 | <@Derakon> | (This does not hold for competitive games, note. No wavedashing, kthx) |
06:04 | <@McMartin> | Derakon: In A Fighting Game, Nothing Is Optional. |
06:04 | <@Derakon> | My point is that any puzzle involving the Secret Technique would be bypassable, losing nothing but time, without using it. |
06:04 | < Vornicus> | Wavedashing? |
06:05 | <@Derakon> | McM: sure, but a secret technique that propels the characters that can do it so far beyond the ones that can't is just stupid. |
06:05 | <@Derakon> | http://faqs.ign.com/articles/627/627159p1.html |
06:05 | <@McMartin> | That's why nothing is optional. |
06:06 | <@Derakon> | ...this mongoose appears to be shooting flames from his ears. |
06:06 | <@McMartin> | (Side annoyed note: the command cuing for crouching in Portal shows up in a location that it's possible to miss. It's still on the keyboard menu, and it's the same as it is in every Source game, but I got brickwalled once I needed to crouch my first playthrough.) |
06:07 | <@Derakon> | Heh. And the Platforming Game turns into Scrolling Space Shmup, which then turns into RESER. |
06:08 | < Reiver> | command cuing? |
06:08 | <@Derakon> | "Look, you can do this technique by pressing this button." |
06:08 | < Reiver> | Oh right |
06:08 | < Reiver> | ...Isn't crouch ctrl?~ |
06:09 | <@McMartin> | Reiver: Yes. |
06:09 | <@McMartin> | The other controls in Portal are all on the mouse, or are WASDE<space>. |
06:11 | < Reiver> | Ah, right |
06:11 | < Vornicus> | Note that there's a lot you can do like this - make it obvious for instance that you won't be able to get back without a particular ability (cf the big rooms with nothing in them near the Screw Attack in MP2, for instance) |
06:11 | <@McMartin> | Or the Space Jump fights in the mainline. |
06:12 | <@Derakon> | Oh, sure, you always show the player the locked door before giving them the key. |
06:12 | <@McMartin> | This is stronger than that. |
06:12 | <@McMartin> | You're locking them in, then giving them the key and blocking until they get out. |
06:12 | <@Derakon> | Okay, fair enough. |
06:12 | < Vornicus> | Not just show them - make them walk through the door and /then/ locking. |
06:13 | <@McMartin> | My least favorite part of latter-day castlevanias is walking through the entire edge of the map to figure out where my new mobility move actually gets me further. |
06:13 | <@McMartin> | (PS: CLEARLY MARK UNCONQUERED BARRIERS ON YOUR MAPS) |
06:13 | < Vornicus> | agreed. |
06:13 | <@Derakon> | This is because the latter-day Castlevanias don't have nearly the level of flow that the better Metroid games achieved. |
06:13 | <@McMartin> | A single room with the barrier in the middle of it and a critical item on the other side will map as 'fully explored' and is a cardinal sin. |
06:13 | <@Derakon> | And their maps sucked. |
06:14 | <@McMartin> | Super Metroid really was not that good at this either. |
06:14 | <@McMartin> | And MF doesn't even try. |
06:14 | <@McMartin> | My experience with the genre isn't good enough to actually produce examples of excellence. =/ |
06:14 | <@Derakon> | Super Metroid actually has a very strong flow, but it isn't well-cued. |
06:14 | < Vornicus> | MF at least you can see the dots on the map that show you places where there's an item but you haven't gotten it yet. |
06:14 | <@Derakon> | By "flow" I mean that actually surprisingly little backtracking is required, even when you don't sequence break. |
06:15 | <@McMartin> | My second game, idly, involved me being unable to deal with water after accidentally powerbombing into Maridia way too early. |
06:15 | <@Derakon> | Ahh, yes. |
06:15 | <@Derakon> | Water without Gravity is suck. |
06:15 | < Vornicus> | I don't know if I would ever have found the super missile wall to Kraid if I didn't look at a walkthrough. |
06:16 | <@Derakon> | I think your clue there is the map download earlier in Brinstar, which says "Hey look, there's something east of this location." Which is not a very strong hint since there's a gap in the map. |
06:16 | <@McMartin> | Vorn: re: MF: The compass is sufficiently handholdy that I'm not comfortable saying it's mandatory. |
06:16 | < Vornicus> | a true thing. |
06:17 | <@Derakon> | Ooh. http://antwrp.gsfc.nasa.gov/apod/image/0711/lighthouse_westcott_big.jpg |
06:18 | < Vornicus> | Really though: a good game will have 1. clear flow, and 2. decent but not handholdy clues. |
06:19 | <@McMartin> | The Portal developer commentary was interesting, re: cluing. |
06:19 | <@McMartin> | They would put in explicit clues |
06:19 | <@McMartin> | And then implicit subconscious ones. |
06:20 | <@McMartin> | Which would then be jerked away later. |
06:20 | <@Derakon> | I don't follow. |
06:20 | < Vornicus> | How so? |
06:20 | <@McMartin> | One of the things they do to cue "You need to exploit physics to hurl yourself horizontally" is to checkerboard the floor where you'll be hitting at high speed. |
06:21 | <@McMartin> | I never noticed this |
06:21 | <@McMartin> | And yet, the first flinging puzzle that stopped me for a bit was the first one where they removed that cue. |
06:21 | <@Derakon> | Ahh. |
06:21 | <@Derakon> | So by "jerked away" you mean "not inserted on repetitions of the puzzle". |
06:21 | <@McMartin> | Not inserted on the fifth repetition of the puzzle element. |
06:21 | <@McMartin> | Flinging is a basic skill. |
06:22 | < Reiver> | They jerk teh cluing away deliberately? |
06:22 | <@McMartin> | Yes, because by then you're supposed to realize that you can do it, and because the pattern is never presented as a clue. |
06:22 | <@McMartin> | Other such cues are things like "If you need to aim something fiddly, the panel that isn't flush with the wall is the one you need to hit" |
06:22 | <@McMartin> | As stated, that rule is never violated if there is one non-flush with the wall. |
06:23 | <@McMartin> | But sometimes you need to do alternate aiming strategies, and, especially later, irregularity does not mean "You'll be needing a portal here eventually". |
06:23 | | * McMartin tended to use Sentry Gun's aiming lasers for his own ends more than is typically healthy. |
06:23 | <@McMartin> | Especially since sentry guns can see and shoot through portals. =P |
06:23 | | * Derakon facepalms. |
06:24 | <@McMartin> | But they have nice little laser sights that are visible from great distances! |
06:24 | <@McMartin> | You just put your shields/counterdoom in line with it before opening that end of the portal. >_> |
06:25 | <@McMartin> | Scorch marks from the High Energy Pellet are also good for this. |
06:28 | <@Derakon> | In other news, I'm kinda considering working a devil-trigger in. |
06:28 | <@McMartin> | Overdrive modes are fun. |
06:28 | <@McMartin> | (Says the guy whose primary TF2 class is Medic) |
06:28 | <@Derakon> | The batteries to drive it would make a convenient collectable. |
06:28 | <@McMartin> | (Alles ist gut mit der ?bercharger!) |
06:29 | <@Derakon> | Heh. |
06:29 | | * Vornicus feeds Kirby a bomb with a skull on it. |
06:29 | <@McMartin> | And it actually calls it that in-game. The Medic has Cartoon German accent. |
06:29 | <@Derakon> | So this would augment your attacks and ground speed, and possibly enable an air dash. |
06:29 | <@McMartin> | (When you aren't the Medic, it's usually just "the invuln") |
06:29 | <@Derakon> | I'm trying to figure out how it would work with respects to mobility, though... |
06:30 | <@McMartin> | Sounds kind of like Super Sonic. |
06:30 | <@McMartin> | Jump higher, too. |
06:30 | <@Derakon> | I mean, if it does increase your flight capabilities, then I can't see how to make it work without letting extra batteries let you fly longer. |
06:30 | <@Derakon> | Which wreaks havoc on level design unless it's the last upgrade you get, but then what are the batteries for earlier? |
06:30 | <@McMartin> | Overdrive. |
06:31 | <@Derakon> | ...hm. So you get the overdrive in segments? |
06:31 | <@McMartin> | You can't fly longer, but you can, say, burn all battery power at once to superjump |
06:31 | <@McMartin> | One enormous impulse. |
06:31 | <@McMartin> | But there's no cornering, so Permaflight is out. |
06:31 | <@Derakon> | Yes, but then if the superjump is of constant height, why do you have to burn all your battery power? |
06:32 | <@McMartin> | OK, don't make it burn all your batt, but don't chain impulses. Have a cooldown time. |
06:32 | <@Derakon> | I just need to find some way to make this work that doesn't make collecting N batteries be required. |
06:32 | <@Derakon> | Fair enough. |
06:32 | <@McMartin> | In short, make it be "use flight power to super doublejump" |
06:32 | <@McMartin> | You could even have it be the doublejump, when flight is earlygame and weak. |
06:32 | <@McMartin> | And flight-requiring barriers then need more finesse to navigate. |
06:33 | <@Derakon> | I'm not following here... |
06:33 | <@McMartin> | So, just having something high up won't stop you much. |
06:33 | <@McMartin> | It either has to be way high up (and require lots of batteries) or be something you can't do with jumps. |
06:33 | <@Derakon> | Mmm. |
06:33 | <@McMartin> | Say, because jumps would make you fall past the entrance you need. |
06:33 | <@McMartin> | So you need to fly down a bit and then over. |
06:34 | <@Derakon> | Worth thinking about, definitely. |
06:34 | <@McMartin> | Your Huge l33t s3qu3nc3 br34k3rz might be able to exploit cooldown time and walljumps to get it anyway, but that's what makes them l33t, right? |
06:34 | <@Derakon> | Right. |
06:34 | <@Derakon> | Hell, I might not even need an actual walljump; just some way to increase the hangtime enough to enable another jump. |
06:34 | <@McMartin> | Chutes. |
06:35 | <@McMartin> | Or fold-out wings. |
06:35 | <@Derakon> | ...I'm not about to turn this into MDK. |
06:35 | < Vornicus> | ooh, chutes. |
06:35 | <@Derakon> | Good game, but...no. |
06:35 | <@McMartin> | Heh |
06:35 | | * Vornicus takes notes. |
06:35 | <@McMartin> | It wouldn't be MDK! It's 2D! And there's no sniping! |
06:35 | <@McMartin> | Or six-armed dogs. |
06:35 | | * Vornicus should play mdk. |
06:36 | <@Derakon> | I did make a model of a four-armed, two-legged robot earlier... |
06:36 | <@McMartin> | MDK is great just for the attitude problem. |
06:36 | <@Derakon> | And the dog, last I checked, is robotic. |
06:36 | <@McMartin> | The first powerup is The World's Smallest Nuclear Explosive. |
06:36 | <@McMartin> | You use it to unlock doors. |
06:36 | < Vornicus> | ...all right then. |
06:36 | <@Derakon> | It is a grenade. |
06:38 | <@McMartin> | I do wonder how you fire your Face Gun without snapping your neck, though |
06:39 | <@Derakon> | Ask Kevyn. |
06:39 | <@McMartin> | That character was named "Kurt". |
06:40 | < Vornicus> | Yes, but ask Kevyn. |
06:40 | <@Derakon> | Yes, I'm aware. Kevyn from Schlock also got a face gun. |
06:40 | <@McMartin> | Oh. |
06:40 | <@McMartin> | Idly, Vorn, how goes Project KB, henceforth referred to as Kilobyte for Obfuscation Purposes? |
06:41 | < Vornicus> | I'm having trouble installing PyGame due to some silliness with libvorbis. |
06:41 | <@McMartin> | Blargh. |
06:41 | <@McMartin> | Hmm |
06:41 | < Vornicus> | _ov_pcm_total referenced from @executable_path/../Frameworks/SDL_mixer.framework/Versions/A/SDL_mixer expected to be defined in /usr/local/lib/libvorbisfile.0.dylib |
06:41 | < Vornicus> | And six others, all from the same file. |
06:41 | <@McMartin> | Do you have libvorbisfile along with libvorbis itself? |
06:42 | <@McMartin> | They're separate libraries, for reasons that somewhat escape me |
06:42 | < Vornicus> | Yes, I do. |
06:42 | < Vornicus> | ...though, uh |
06:42 | < Reiver> | McM: One would assume it has neck bracing in there somewhere~ |
06:42 | < Vornicus> | /usr/local/lib/libvorbisfile.3.dylib |
06:42 | <@McMartin> | Oy. |
06:42 | < Vornicus> | also /usr/local/lib/libvorbisfile.3.1.1.dylib and /usr/local/lib/libvorbisfile.dylib |
06:42 | <@McMartin> | Does symlinking the 3 to a 0 make it work? |
06:42 | | * Reiver likes MDK. Wishes it had a higher resolution possible, though - the textures and models he can handle, but the 640x480 is a bit painful on a modern LCD. |
06:43 | <@McMartin> | (Does this mean you've given up on the data ripping, or that you succeeded in it?) |
06:43 | < Vornicus> | I've given up on it for now. |
06:44 | < Vornicus> | Well, not given up on it |
06:44 | < Vornicus> | Pushed it off until I have a place to put it once I've gotten it. |
06:45 | <@McMartin> | Nod |
06:45 | < Vornicus> | I have quite a bit of stuff that I already know how to handle. |
06:45 | <@McMartin> | Also, it occurs to me that there is a similar project I could undertake. |
06:45 | <@McMartin> | Though much lower-key. |
06:49 | | * McMartin came across the BASIC source for an old game his dad liked to play back in his university days. |
06:50 | | * Derakon posts to his gamedev filter, summarizing the overdrive ideas. |
06:50 | < Vornicus> | There is so much that I /do/ know that it's easier to name the stuff I don't know: namely, treasure and army generation, combat damage (but not any of the rest of combat), and the effects of exactly one artifact. |
06:51 | < Vornicus> | That seems to have worked, McM. |
06:52 | < Reiver> | You know the effects of the rest of the combat, but not damage? |
06:52 | < Vornicus> | Well, the rest of combat is movement and enemy AI, and I know how those work. |
06:54 | <@Derakon> | This is pretty badass: http://torokun.deviantart.com/art/Samus-Aran-Fan-Art-30046088 |
06:54 | <@McMartin> | Vorn: All that said, if you're doing the Macdev thing, aren't you supposed to be packing yoru libraries in an .app instead of in /usr/local? |
06:54 | < Vornicus> | A true thing, but I'll deal with that later. I do at least have a second Mac in the house, and it's my target machine. |
06:55 | <@Derakon> | McM: you can do Unix-style development or Mac-style development. |
06:55 | <@Derakon> | I'm doing Niobium Unix-style because I'm used to it. ¬.¬ |
06:55 | < Vornicus> | Now then. |
06:55 | | * McMartin thought the disadvantage of Unix-style was that it then didn't work on anyone else's Mac. Sable had that problem for awhile. >_> |
06:55 | <@Derakon> | But I believe that doing it Mac style could just be as simple as renaming the root directory to "foo.app" and putting everything else in the right place. |
06:55 | < Vornicus> | Sorry about that. |
06:56 | < Vornicus> | :) |
06:56 | <@Derakon> | Okay, T-2 all. |
06:57 | < Vornicus> | ni der |
06:57 | | * McMartin replies to the Overdrive post. |
06:57 | | * McMartin then gets back to working on this paper. |
06:57 | | * McMartin mutters |
06:57 | | * Derakon nods. "Good point." |
06:58 | <@Derakon> | Hrm...if you superjump into the ceiling, then you should get "stuck" for a moment à la Castlevania superjumps, with the exception that if you hit jump again, then you spring off. Like Vorn suggested earlier. |
06:58 | <@McMartin> | That may be the first time I've said "I don't like this; it's too hard to abuse." |
06:58 | <@Derakon> | Heh. |
06:58 | < Vornicus> | heee |
07:00 | <@Derakon> | Righty-ho. Y'all have fun. |
07:00 | | Derakon is now known as Derakon[AFK] |
07:03 | < Reiver> | McM: Wut |
07:03 | <@McMartin> | Reiver: My response to his post. |
07:03 | <@McMartin> | He likened my suggestion to MM3's "Rush Coil". |
07:04 | <@McMartin> | Which is a superjump that can only be triggered from the ground. |
07:04 | < Reiver> | right |
07:05 | <@McMartin> | And I objected to this on the grounds that Rush Coil is too hard to abuse and thus was not quite a good shorthand for my suggest |
07:05 | <@McMartin> | suggestion |
07:05 | < Reiver> | Ahh. |
08:52 | | You're now known as TheWatcher |
09:10 | | Chalcy [~Chalcedon@Nightstar-10789.ue.woosh.co.nz] has quit [Quit: Gone] |
09:13 | | Vornicus [~vorn@Admin.Nightstar.Net] has quit [Ping Timeout] |
11:02 | | Forj [~Forj@Nightstar-10789.ue.woosh.co.nz] has quit [Quit: Gone] |
11:43 | | Thaqui [~Thaqui@Nightstar-26276.jetstream.xtra.co.nz] has quit [Quit: This computer has gone to sleep] |
11:57 | | Vornicus [~vorn@Admin.Nightstar.Net] has joined #code |
11:57 | | mode/#code [+o Vornicus] by ChanServ |
14:47 | | GeekSoldier|work [~Rob@Nightstar-5218.pools.arcor-ip.net] has quit [Ping Timeout] |
15:00 | | EvilDarkLord [~jjlehto3@Nightstar-2194.vipunen.hut.fi] has quit [Client exited] |
15:17 | <@Vornicus> | Right. I can't even write code that compiles right now. |
15:18 | <@Vornicus> | Never mind code that actually does what I want. |
15:22 | | * Kyrre PatPats Vornicus. |
15:52 | | GeekSoldier|work [~Rob@Nightstar-5105.pools.arcor-ip.net] has joined #code |
16:15 | < MyCatVerbs> | I really hate this damn machine |
16:15 | < MyCatVerbs> | And wish that they would sell it |
16:15 | < MyCatVerbs> | It never does just what I want, |
16:15 | < MyCatVerbs> | But only what I tell it. :( |
16:17 | < GeekSoldier|work> | hehe. |
16:35 | | Vornicus is now known as Vornicus-Latens |
16:52 | <@ToxicFrog> | Wheee |
16:52 | <@ToxicFrog> | I'm writing a Lua compiler in Lua |
16:53 | <@ToxicFrog> | Except it actually compiles a superset of Lua, because I don't like the way metalua does things and want to implement my own. |
17:04 | | GeekSoldier|work [~Rob@Nightstar-5105.pools.arcor-ip.net] has quit [Ping Timeout] |
17:05 | | GeekSoldier|work [~Rob@Nightstar-4430.pools.arcor-ip.net] has joined #code |
17:10 | | * ToxicFrog looks at lparse.c, and goe sinsane |
17:13 | <@ToxicFrog> | MAybe this wasn't such a hot idea after all. |
17:14 | | * ToxicFrog ponders something simpler, starting with just a lexer and some token filtering rules and then ruthlessly exploiting Lua's pre-existing compiler |
17:14 | | You're now known as TheWatcher[afk] |
17:24 | | Forj [~Forj@Nightstar-10789.ue.woosh.co.nz] has joined #code |
17:24 | | mode/#code [+o Forj] by ChanServ |
17:31 | | Forj [~Forj@Nightstar-10789.ue.woosh.co.nz] has quit [Quit: Gone] |
18:27 | <@ToxicFrog> | Gnar. Tokf won't cut it. |
18:27 | <@ToxicFrog> | I need at least an AST to manipulate, so I need a lexer and parser |
18:31 | | Attilla [~The.Attil@194.72.70.ns-11849] has quit [Quit: <Insert Humorous and/or serious exit message here>] |
18:39 | | Attilla [~The.Attil@194.72.70.ns-11849] has joined #code |
18:43 | | ErikMesoy [~ejm@Nightstar-3493.bb.online.no] has joined #code |
18:43 | | ErikMesoy [~ejm@Nightstar-3493.bb.online.no] has left #code [] |
18:44 | | GeekSoldier|work is now known as GeekSoldier |
18:54 | | You're now known as TheWatcher |
19:32 | | Chalcedon [~Chalcedon@Nightstar-10789.ue.woosh.co.nz] has joined #code |
19:32 | | mode/#code [+o Chalcedon] by ChanServ |
20:04 | | GeekSoldier is now known as GeekSoldier|bed |
20:09 | | EvilDarkLord [~jjlehto3@Nightstar-2194.vipunen.hut.fi] has joined #code |
20:40 | <@ToxicFrog> | Ok. I think I have a design for an extensible lexer. |
20:40 | <@ToxicFrog> | It will probably be ass-slow, but I can live with that. |
20:41 | <@ToxicFrog> | Basically: the lexer is a list of lexing functions. These functions can be guarded; guarded functions will be called only on strings matching some initial character (or possibly small regex) |
20:41 | <@ToxicFrog> | It goes down the list, passing in the text remaining, until it gets a result. |
20:42 | <@ToxicFrog> | The result is one or more tokens, followed by the remaining text that wasn't lexed. |
20:42 | <@ToxicFrog> | It repeats the process until the remaining text is "" |
20:44 | <@ToxicFrog> | It can also simply return true followed by the remaining text to indicate that a non-token was lexed and discarded (ie, a comment) |
20:47 | <@ToxicFrog> | Thus, you can add new lexemes by registering new lexer functions, with a given priority and optionally with a guard. |
20:47 | <@ToxicFrog> | Probably some convenience would be added for, for example, adding new keywords by reconfiguring the keyword lexer rather than adding a new function or replacing the keyword lexer. |
21:03 | | Thaqui [~Thaqui@Nightstar-26276.jetstream.xtra.co.nz] has joined #code |
21:03 | | mode/#code [+o Thaqui] by ChanServ |
21:09 | | AbuDhabi [AnnoDomini@Nightstar-29598.neoplus.adsl.tpnet.pl] has quit [Ping Timeout] |
21:09 | | AnnoDomini [AnnoDomini@Nightstar-29379.neoplus.adsl.tpnet.pl] has joined #Code |
21:09 | | mode/#code [+o AnnoDomini] by ChanServ |
21:26 | <@McMartin> | TF: Doesn't flex basically actually do this? I distinctly recall you being able to implement nested comments that way. |
21:26 | <@McMartin> | Bison is full of hate and spiders, but flex and friends tend to be really nice |
21:52 | <@ToxicFrog> | I thought flex generated a pushdown automaton. |
22:10 | | mode/#code [+oooooo Attilla EvilDarkLord GeekSoldier|bed Kyrre McMartin MyCatVerbs] by Reiver |
22:11 | | mode/#code [+o Reiver] by Reiver |
22:49 | <@McMartin> | No, bison generates a pushdown automaton. |
22:49 | <@McMartin> | Flex has a state machine and a metastate machine. |
22:49 | <@McMartin> | And I think the metastate machine ends up having the same effect. |
23:44 | <@ToxicFrog> | Aah. |
23:44 | <@ToxicFrog> | Anyways, a winner is me; I now have a complete lexer or Lua 5.1.2, written inn Lua 5.1.2. |
23:45 | <@ToxicFrog> | I also have 25s ping times, so I think I'll sign off until I get home. |
23:45 | <@McMartin> | Heh |
23:45 | <@McMartin> | Hooray for metacircular evaluators |
23:46 | <@ToxicFrog> | (next step: parser, then customization functions) |
23:46 | <@McMartin> | Heh. Good luck. |
23:46 | <@McMartin> | Lexing is always easier than parsing. =/ |
23:47 | <@ToxicFrog> | (I'm not writing the code generator; I compile by traversing the token stream or AST and emitting source, then handing it off to loadstring()) |
23:48 | <@McMartin> | Aha. |
--- Log closed Tue Nov 27 00:00:05 2007 |