--- Log opened Thu Jun 21 00:00:34 2007 |
00:34 | | gnolam [lenin@85.8.5.ns-20483] has quit [Quit: Z?] |
01:19 | | Vornicus is now known as Vornicus-Latens |
01:25 | | Chalcedon [~Chalcedon@Nightstar-15747.ue.woosh.co.nz] has quit [Ping Timeout] |
01:26 | | Chalcedon [~Chalcedon@Nightstar-15747.ue.woosh.co.nz] has joined #code |
01:26 | | mode/#code [+o Chalcedon] by ChanServ |
02:41 | | Derakon [~Derakon@Nightstar-12922.sea2.cablespeed.com] has joined #code |
02:41 | | mode/#code [+o Derakon] by ChanServ |
02:41 | | * Derakon mashes his brain against the problem of trying to algorithmically determine which areas of a chunk of terrain are accessible given a walk speed and jump height. |
02:42 | <@Derakon> | Keeping in mind that the terrain may be disconnected. |
02:45 | | Syloq [Syloq@Admin.Nightstar.Net] has joined #code |
02:47 | | Syloq is now known as Syloqs-AFH |
02:57 | <@Derakon> | Gahh... |
02:57 | <@Derakon> | JetBlade was never intended to be particularly inventive; just fun and remniscent of a gameplay style that I enjoy. |
02:58 | <@Derakon> | But this, this, if I can just pull it off, would be actually new! |
02:58 | <@Derakon> | Pulling it off is the hard part. >.< |
03:18 | <@ToxicFrog> | Hmm. Yeah, the gravity complicates thing. |
03:18 | <@ToxicFrog> | With something like Diablo it's just a simple exercise in graph theory. |
03:18 | <@Derakon> | Yeah. |
03:18 | <@Derakon> | I have some ideas, though... |
03:18 | <@Derakon> | I'll be posting one hell of an LJ post sometime this evening. |
03:18 | | * ToxicFrog considers |
03:19 | <@ToxicFrog> | It's solvable, but it's not at all trivial. |
03:19 | <@ToxicFrog> | I think I'll stick to my brain-eating OO framework~ |
03:19 | <@Derakon> | Right now I'm looking at representing the player's mobility from any given tile as a spheroid with tall radius = the player's jump height and wide radius = the player's walk speed. |
03:19 | <@Derakon> | Heh. |
03:20 | <@ToxicFrog> | I considered that, but you also have to take collisions into account; two tiles at the same height, one tile apart, but seperated by a high wall... |
03:20 | <@Derakon> | Yeah, I explicitly haven't considered walls yet. |
03:20 | | * ToxicFrog 's instinct is to treat it as a digraph, where each node is the upper surface of a tile |
03:21 | <@ToxicFrog> | If we disregard walls, the rules for reachability actually aren't that complex. |
03:21 | <@Derakon> | Right. |
03:21 | <@ToxicFrog> | (well - walls, ceilings depending on how you handle jump physics, enemies, etc) |
03:22 | <@ToxicFrog> | (it would suck to generate a room that's topologically solvable but has unsolvable enemy placement) |
03:22 | <@Derakon> | Enemies can be assumed to be killable regardless of terrain features, as a general rule. |
03:22 | <@ToxicFrog> | Aah. Okthen. |
03:22 | | * ToxicFrog fiddles with the OO framework some. |
03:22 | <@ToxicFrog> | I might even release it this week. |
03:23 | <@Derakon> | Heh. Originally I was going to just compute the potential actions a player could take from a starting tile to generate the connectivity...then I came to my senses. |
03:23 | <@ToxicFrog> | o.O |
03:23 | <@Derakon> | Nifty. |
03:23 | <@ToxicFrog> | Indeed. |
03:23 | <@ToxicFrog> | I've never done a framework like this before. |
03:25 | <@ToxicFrog> | And of course, I'll need test subjects... |
03:25 | <@Derakon> | Eep. |
03:25 | <@Derakon> | You're welcome to borrow Niobium, but I don't know if it'd necessarily be suited to your needs. |
03:26 | <@ToxicFrog> | I was thinking more of getting people to use it >.> |
03:26 | <@Derakon> | Heh. |
03:26 | <@ToxicFrog> | It is amazing how much more interesting counterstrike gets when the teams are large enough to take every path at once. |
03:27 | <@Derakon> | Is this voice-enabled counterstrike? |
03:27 | <@ToxicFrog> | Of course. |
03:27 | <@ToxicFrog> | HL (and by extension CS) has had voice support for years; CS:S had it out of the box. |
03:28 | <@ToxicFrog> | Interestingly, though, there isn't a lot of chatter; the minimap means that a lot of coordination happens automatically. |
03:29 | <@Derakon> | Okay, time to solve the walls and ceilings problem. ¬.¬ |
03:29 | <@ToxicFrog> | (you did mention, a while ago, that you were interested in converting to my latest OO framework when I released it...) |
03:30 | <@Derakon> | Yes, I did...the question is what it gains me over what I'm doing now, and how complicated it is to use. ¬.¬ |
03:30 | | * Derakon considers making a small circle as a set of 40 points at the sprite's feet, and pushing them out until they encounter barriers. |
03:31 | <@ToxicFrog> | Gains: the ability to overload any operator - overload, not fallback; user-defined type()es; the ability to easily extend Class and thus modify the behaviour of the framework. |
03:31 | <@ToxicFrog> | How complicated: well, that's one of the things I want to find out. I think it's fairly simple, myself. |
03:32 | <@Derakon> | Heh. |
03:32 | <@ToxicFrog> | However, experience has shown that I'm not the best judge of such things. |
03:32 | <@Derakon> | Currently, I'm mainly using objects in Lua to represent game objects. They don't have much of a need for operator overloading, as a general rule. |
03:32 | <@Derakon> | Also, I'm, um, distracted at the moment. ¬.¬ |
03:32 | <@ToxicFrog> | I find myself mostly overloading __len and __tostring, myself. |
03:32 | <@ToxicFrog> | ?? |
03:33 | <@ToxicFrog> | (oh, and implementing new operator overloads like __pairs) |
03:33 | <@Derakon> | I'm working more on models and actual implementation than I am on engines. |
03:33 | <@ToxicFrog> | (why yes, I love first-class functions, why did you ask?) |
03:33 | <@Derakon> | Well, and on grandiose schemes. I'm working on those, too. |
03:33 | <@ToxicFrog> | Well, who isn't working on a few grandiose schemes at any given time? |
03:33 | <@Derakon> | Heh. |
03:37 | <@Derakon> | Any thoughts on that expanding-circle technique I described? |
03:39 | <@ToxicFrog> | Not at this time of night. |
03:39 | <@Derakon> | Ahh, well. |
03:51 | <@ToxicFrog> | (also, most of my cycles are being spent on the OO framework) |
03:51 | <@Derakon> | Fair enough. |
03:51 | <@Derakon> | I will have Massive LJ Post in a minute. |
03:54 | <@Derakon> | Posted. |
03:55 | <@ToxicFrog> | I am this close {} to switching to metalua @.@ |
03:56 | <@Derakon> | Hmmm...that post I just made? 1389 words. |
03:56 | <@Derakon> | ...eep, metacoding! ¬.¬ |
03:56 | <@ToxicFrog> | Mostly I just want the ability to extend the lexer. |
03:56 | <@ToxicFrog> | It'd make the class definition syntax much cleaner. |
03:57 | <@Derakon> | Drawbacks, beyond making it more headbreaky? |
03:58 | <@ToxicFrog> | class Foo [extends Bar] ....stuff goes here... end, as a sugar for Foo = Class("Foo", Bar) ... end, as a sugar for some function calls. |
03:58 | <@ToxicFrog> | You'd need Metalua to compile it. |
03:58 | <@ToxicFrog> | The resulting bytecode would run in a standard terp, though. |
03:58 | <@Derakon> | That's not so great. |
03:58 | <@Derakon> | So basically, you'd hand everyone some totally incomprehensible Lua code you'd compiled? |
03:59 | <@ToxicFrog> | Actually, I have a better plan. |
04:00 | <@ToxicFrog> | Specifically - the metalua wouldn't be part of the OO framework itself, it's a seperate lexer extension. |
04:00 | <@ToxicFrog> | So, I wait until metalua hits 1.0, write the extension for that, and release it alongside the OO framework. |
04:00 | <@ToxicFrog> | Don't want metalua, you can use the OO interface directly; and if you have metalua, you can use the new keywords instead.l |
04:03 | <@ToxicFrog> | Anyways. I'm holding off releasing anything that requires metalua until it hits 1.0. But I may still end up using it for my own convenience. |
04:26 | | Derakon [~Derakon@Nightstar-12922.sea2.cablespeed.com] has quit [Ping Timeout] |
04:34 | | Thaqui [~Thaqui@Nightstar-11535.jetstream.xtra.co.nz] has joined #code |
04:34 | | mode/#code [+o Thaqui] by ChanServ |
04:56 | | Derakon [~Derakon@Nightstar-12922.sea2.cablespeed.com] has joined #code |
04:56 | | mode/#code [+o Derakon] by ChanServ |
05:58 | | You're now known as TheWatcher |
06:30 | | Syloqs-AFH [Syloq@Admin.Nightstar.Net] has quit [Connection reset by peer] |
07:07 | | Derakon is now known as Derakon[AFK] |
07:08 | | Raif [~corvusign@Nightstar-5406.hsd1.ca.comcast.net] has joined #Code |
08:06 | | GeekSoldier_ is now known as GeekSoldier|Sleep |
08:21 | | Thaqui [~Thaqui@Nightstar-11535.jetstream.xtra.co.nz] has quit [Ping Timeout] |
09:00 | | KBot [~karma.bot@Nightstar-29360.neoplus.adsl.tpnet.pl] has joined #Code |
09:00 | | UndeadAnno [~farkoff@Nightstar-29432.neoplus.adsl.tpnet.pl] has quit [Ping Timeout] |
09:01 | | KarmaBot [~karma.bot@Nightstar-29432.neoplus.adsl.tpnet.pl] has quit [Ping Timeout] |
09:02 | | KBot is now known as KarmaBot |
09:06 | | AnnoDomini [~farkoff@Nightstar-29360.neoplus.adsl.tpnet.pl] has joined #Code |
09:18 | | Chalcedon [~Chalcedon@Nightstar-15747.ue.woosh.co.nz] has quit [Quit: Gone] |
09:53 | | Derakon[AFK] [~Derakon@Nightstar-12922.sea2.cablespeed.com] has quit [Operation timed out] |
10:29 | | AnnoDomini [~farkoff@Nightstar-29360.neoplus.adsl.tpnet.pl] has quit [Quit: I am Yulaw! I am nobody's bitch! You - are mine.] |
10:32 | | AnnoDomini [~farkoff@Nightstar-29360.neoplus.adsl.tpnet.pl] has joined #Code |
10:32 | | mode/#code [+o AnnoDomini] by ChanServ |
12:30 | | Vornicus-Latens is now known as Vornicus |
14:10 | | gnolam [lenin@Nightstar-13557.8.5.253.se.wasadata.net] has joined #Code |
14:10 | | mode/#code [+o gnolam] by ChanServ |
14:49 | <@ToxicFrog> | <Striker> !make |
14:50 | <@ToxicFrog> | <\dev\null> beer_pump.c:335: robust error in 'traffic_cone()' - 'traffic_light' is not a budgerigar |
14:50 | <@ToxicFrog> | <ToxicFrog> |
14:50 | <@ToxicFrog> | <Striker> |
14:50 | <@ToxicFrog> | <Stelz> |
14:52 | <@AnnoDomini> | |
14:53 | <@TheWatcher> | |
14:53 | <@TheWatcher> | /what/ |
14:58 | | GeekSoldier|Sleep is now known as GeekSoldier |
14:58 | <@ToxicFrog> | A bot that generates random build errors. |
14:59 | <@ToxicFrog> | Earlier there was "error in 'Magic_the_Gathering()': 'SpiceGirls' undeclared" |
14:59 | <@ToxicFrog> | But this one was more interesting. |
14:59 | <@AnnoDomini> | Oh. I almost wanted to find out if budgerigar is a real word. |
15:02 | <@TheWatcher> | It is |
15:02 | <@TheWatcher> | They're small parrots |
15:02 | <@AnnoDomini> | !dic budgerigar |
15:02 | < KarmaBot> | [AnnoDomini] http://dictionary.reference.com/browse/budgerigar |
15:03 | <@TheWatcher> | What's vaguely scary is that I couldn't actually decide whether or not that was a real error... |
15:03 | <@TheWatcher> | Given some of the things I've seen gcc spit out.... I wouldn't have placed money on it ¬¬ |
15:04 | | GeekSoldier_ [~Rob@Nightstar-2942.pools.arcor-ip.net] has joined #code |
15:05 | | GeekSoldier [~Rob@Nightstar-6907.pools.arcor-ip.net] has quit [Ping Timeout] |
15:36 | | Vornicus [~vorn@Admin.Nightstar.Net] has quit [Connection reset by peer] |
15:43 | | Vornicus [~vorn@Admin.Nightstar.Net] has joined #code |
15:43 | | mode/#code [+o Vornicus] by ChanServ |
17:14 | | GeekSoldier_ is now known as GeekSoldier |
17:23 | | You're now known as TheWatcher[afk[ |
17:23 | | You're now known as TheWatcher[afk] |
18:30 | | You're now known as TheWatcher |
19:15 | | Chalcedon [~Chalcedon@Nightstar-15747.ue.woosh.co.nz] has joined #code |
19:15 | | mode/#code [+o Chalcedon] by ChanServ |
20:17 | | You're now known as TheWatcher[afk] |
20:18 | | GeekSoldier is now known as GeekSoldier|Sleep |
20:20 | | Vornicus [~vorn@Admin.Nightstar.Net] has quit [Connection reset by peer] |
20:30 | | Vornicus [~vorn@Admin.Nightstar.Net] has joined #code |
20:31 | | mode/#code [+o Vornicus] by ChanServ |
20:46 | | Vornicus [~vorn@Admin.Nightstar.Net] has left #code [Leaving] |
20:46 | | Vornicus [~vorn@Admin.Nightstar.Net] has joined #code |
20:46 | | mode/#code [+o Vornicus] by ChanServ |
21:29 | | Chalcedon [~Chalcedon@Nightstar-15747.ue.woosh.co.nz] has quit [Quit: brb reboot] |
21:32 | | Chalcedon [~Chalcedon@Nightstar-15747.ue.woosh.co.nz] has joined #code |
21:32 | | mode/#code [+o Chalcedon] by ChanServ |
21:34 | <@ToxicFrog> | aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaargh |
21:34 | | * ToxicFrog locates blast door, applies forehead |
21:34 | | * jerith runs around flapping ToxicFrog's arms. |
21:34 | <@ToxicFrog> | __index does not give me proper copy-on-write ;.; |
21:35 | | * Chalcedon cookies TF |
21:35 | | * jerith cooks ToxicFrog. |
21:36 | <@Chalcedon> | thats a bit mean |
21:36 | | * Vornicus gives TF a cheese. |
21:36 | <@jerith> | Nah, I boiled the water fast so he jumped out. |
21:37 | <@ToxicFrog> | It works great unless the source table has subtables. |
21:38 | <@ToxicFrog> | But if it does, then of course this no longer works. |
21:48 | <@ToxicFrog> | Ok, API question. |
21:49 | <@ToxicFrog> | Should it be: tables are static by default, and if you want per-instance tables, you create them in the constructor? |
21:49 | <@ToxicFrog> | Or: tables are deep-copied by default, and if you want to copy by reference instead, you have to put that in the constructor? |
21:50 | <@jerith> | What's the common case? |
21:50 | <@ToxicFrog> | I have no idea. |
21:50 | <@ToxicFrog> | Probably the latter. |
21:50 | <@jerith> | What's the table for? |
21:51 | <@jerith> | (I'm a bit behind on your lua magic.) |
21:51 | <@ToxicFrog> | ...holding structured data |
21:51 | <@jerith> | (This is the lua magic, right?) |
21:51 | <@ToxicFrog> | That's like asking "what's an array for" |
21:51 | <@ToxicFrog> | Aah. This isn't a specific table, it's tables in general. |
21:51 | <@jerith> | I know what the table is, I'm just asking for context. |
21:51 | <@jerith> | Ah. |
21:52 | <@ToxicFrog> | Ie, if someone creates a class definition that contains a table, when the class is instanced, does the instance get a reference to that table or a copy of it? |
21:52 | <@jerith> | Does it become a class or instance variable, you mean/ |
21:52 | <@jerith> | ? |
21:52 | <@ToxicFrog> | Yes. |
21:52 | <@jerith> | I'd say the former. |
21:53 | <@ToxicFrog> | Ok, why? |
21:53 | <@jerith> | Assuming there's a way to make instance variables as well. |
21:53 | <@ToxicFrog> | Well, anything not a table is by its nature an instance variable. |
21:53 | <@jerith> | Ah. |
21:53 | <@ToxicFrog> | Either because it can't be copied by reference, or because it's immutable. |
21:53 | <@jerith> | Is there a way to make class variables easily? |
21:54 | <@jerith> | If everything else is per-instance, then tables probably should be too. |
21:54 | <@ToxicFrog> | Yes. You just insert the reference into self inside the constructor. |
21:54 | <@ToxicFrog> | Alternately, you extend the Class class to support a static keyword or similar. |
21:55 | <@jerith> | Then instance variable it is. |
21:56 | <@ToxicFrog> | (being able to say "you extend the Class class" gives me a warm fuzzy feeling) |
22:00 | | * Chalcedon eyes TF |
22:03 | <@jerith> | So, I was reading some code the other day. |
22:04 | <@jerith> | And I saw a couple of variables with "pung" in the name. |
22:05 | <@jerith> | I thought it was a typo. Until I realised it's the non-standard past tense for "ping". |
22:05 | | * ToxicFrog blinks at Chalcedon |
22:05 | | * Chalcedon cookies TF |
22:08 | <@ToxicFrog> | Cookies! |
22:08 | | * ToxicFrog nrom |
22:08 | <@ToxicFrog> | Why did you eye me? |
22:09 | <@Chalcedon> | extend the Class class |
22:10 | <@Chalcedon> | then I read the rest of the discussion and it made sense |
22:11 | <@ToxicFrog> | Aah. |
22:11 | <@ToxicFrog> | (it gets better; not only is Class a class in its own right and an instance of itself, it's a subclass of Object. Which is an instance of Class.) |
22:12 | <@jerith> | "This is before you even take into account the double X chromosome situation." |
22:13 | <@Chalcedon> | hee |
22:26 | <@ToxicFrog> | They don't have chromosomes. |
22:26 | <@ToxicFrog> | Yet. |
22:50 | <@ToxicFrog> | ("Also, I shot them so full of magic their chromosomes turned inside-out.") |
23:18 | | You're now known as TheWatcher[zZzZ] |
23:53 | | Derakon [~Derakon@Nightstar-12922.sea2.cablespeed.com] has joined #code |
23:53 | | mode/#code [+o Derakon] by ChanServ |
--- Log closed Fri Jun 22 00:00:40 2007 |