--- Log opened Sat Sep 15 00:00:09 2007 |
00:06 | | Lerhir is now known as AnnoDomini |
02:13 | | Attilla [~The.Attil@194.72.70.ns-11849] has quit [Quit: <Insert Humorous and/or serious exit message here>] |
02:26 | | Attilla [~The.Attil@194.72.70.ns-11849] has joined #code |
02:46 | | gnolam [~lenin@Nightstar-10613.8.5.253.static.se.wasadata.net] has quit [Quit: Z?] |
03:08 | < MinceR> | gn |
03:44 | | Vornicus is now known as Vornicus-Latens |
04:06 | <@ToxicFrog> | Dammit, I cannot find anything in TAoCP about pathfinding, or about graphs in general for that matter. |
04:06 | <@McMartin> | Pathfinding would be Dijkstra's algorithm. |
04:06 | <@McMartin> | That may have been in Volume 4, though. |
04:07 | <@McMartin> | I tended to consult CLR for those. |
04:09 | <@ToxicFrog> | CLR? |
04:09 | <@McMartin> | Um |
04:10 | <@McMartin> | It's a big book that was my textbook for Algorithms. |
04:10 | <@ToxicFrog> | And, err, we're talking a graph with at least hundreds of vertices, and up to four times that many edges. |
04:10 | <@McMartin> | It is apparently now "CLRS". |
04:10 | <@McMartin> | http://mitpress.mit.edu/algorithms/ |
04:10 | <@ToxicFrog> | Not sure how well Dijkstra will work on that. |
04:10 | <@ToxicFrog> | Given that it needs to run in real time. |
04:11 | <@McMartin> | If I remember my Game Programming Gems, you basically do Dijkstra's occasionally and just do it a piece of a time each frame |
04:11 | <@McMartin> | Agents have to take some time to make up their minds what to do. |
04:11 | <@McMartin> | Alternately, nav meshes. |
04:13 | <@ToxicFrog> | Agents taking time is not an issue; indeed, this gives me a concrete way to figure out how long they should wait at each waypoint. |
04:14 | <@McMartin> | It's easy to be incremental as long as the terrain isn't changing. |
04:15 | <@ToxicFrog> | (they do N iterations of the pathfind each frame; when they're done, they start walking the found path until they get there, or kittens occur, or something.) |
04:16 | <@ToxicFrog> | And yeah, it's not. The graph is undirected and unweighted, too. |
04:20 | | Jeff [Computer@Nightstar-562.dsl.sndg02.pacbell.net] has joined #code |
04:21 | < Jeff> | Hi. Thought I'd join this channel seeing as how the better half of the dev team is. >.> |
04:29 | <@McMartin> | Devteam of what? |
04:33 | < Jeff> | Erm, has ToxicFrog been bringing up ideas for projects here, or not? |
04:35 | <@McMartin> | TF tends to have a half-dozen projects on tap at any given time, so. |
04:35 | < Jeff> | ...point. |
04:35 | <@ToxicFrog> | The pathfinding was WRT the project Jeff and I are working on. |
04:35 | <@McMartin> | Aha |
04:36 | <@McMartin> | I kind of figured it wasn't catgirls.i7 |
04:37 | <@ToxicFrog> | Or spellcast, or any of my libraries, yeah. |
04:38 | <@ToxicFrog> | At the moment, what we've come up with is incremental Dijkstra that examines the entire map, but only caches paths between points of interest. |
04:38 | <@McMartin> | Heh. If you've got those, make the points alone the ones computed in realtime, and pre-compute the paths between them. |
04:38 | <@ToxicFrog> | (otherwise, we end up with thousands of cache entries showing how to get from Unimportant Hallway A to Slightly Further Down Unimportant Hallway A) |
04:39 | <@McMartin> | Also, I don't think I've heard of this project |
04:39 | <@ToxicFrog> | You haven't, it's new. |
04:39 | <@ToxicFrog> | And, point. |
04:40 | <@ToxicFrog> | I just like the idea of the amount of time NPCs spend at each node being based on how long it takes them to figure out how to reach the next one~ |
04:40 | <@McMartin> | Yeah, but then how smart they are is a function of how fast the CPU is. |
04:41 | <@ToxicFrog> | Not so, because they'd run a fixed number of iterations each tick, not a fixed amount of time. |
05:02 | | ReivClass is now known as Reiver |
05:23 | | GeekSoldier|bed is now known as GeekSoldier |
06:03 | | Forj [~Forj@Nightstar-2472.ue.woosh.co.nz] has quit [Quit: Gone] |
06:07 | | Chalcedon [~Chalcedon@Nightstar-2472.ue.woosh.co.nz] has quit [Ping Timeout] |
08:45 | | GeekSoldier [~Rob@Nightstar-4803.pools.arcor-ip.net] has quit [Ping Timeout] |
09:31 | | You're now known as TheWatcher |
10:52 | | GeekSoldier [~Rob@Nightstar-5155.pools.arcor-ip.net] has joined #code |
10:57 | | Chalcedon [~Chalcedon@Nightstar-2472.ue.woosh.co.nz] has joined #code |
10:58 | | mode/#code [+o Chalcedon] by ChanServ |
10:58 | | Chalcedon is now known as ChalcyAFK |
11:36 | | gnolam [lenin@Nightstar-10613.8.5.253.static.se.wasadata.net] has joined #Code |
11:36 | | mode/#code [+o gnolam] by ChanServ |
11:56 | | * gnolam kills SQL with fire. |
11:57 | | * jerith douses it in petrol. |
12:03 | < EvilDarkLord> | SQL in general, or just some particular implementation? |
12:03 | < EvilDarkLord> | Er, RDBMS implementation that is. |
12:06 | < jerith> | Both, I suspect. |
12:08 | <@gnolam> | The latter. |
12:39 | <@gnolam> | I suspect the only good implementation is a dead implementation. |
13:29 | | ChalcyAFK [~Chalcedon@Nightstar-2472.ue.woosh.co.nz] has quit [Quit: slep] |
14:23 | | Reiver is now known as ReivZzz |
14:47 | <@ToxicFrog> | Hmm. I think we're going to need three passes per tick: object updates, collisions, and rendering. |
14:52 | <@ToxicFrog> | On the plus side, I can totally steal some optimizations from System Shock that let us do collisions in O(objectcount) space and...what's the symbol for "average case"? It's not theta, that's simultaneous upper/lower bound... |
14:55 | <@ToxicFrog> | Anyways, it's ?(objectcount) O(objectcount^2) time, with the average case being close to the lower bound. |
14:59 | <@Vornicus-Latens> | http://en.wikipedia.org/wiki/O_notation#Other_standard_computer_science_notation :_.CE.A9.2C_.CF.89.2C_.CE.98.2C_O.2C_o.2C_.C3.95.2C_.E2.88.BC |
15:03 | <@ToxicFrog> | None of those seem to express it, though. |
15:22 | <@Vornicus-Latens> | hrm |
15:41 | | Vornicus-Latens is now known as Vornicus |
15:58 | | jerithcell [~jerith@41.208.11.ns-12795] has joined #code |
16:37 | | jerithcell [~jerith@41.208.11.ns-12795] has quit [Quit: used jmIrc] |
17:41 | | Netsplit DeepThought.NY.US.Nightstar.Net <-> Troika.TX.US.Nightstar.Net quits: @Pi, @Vornicus, Raif, GeekSoldier, Attilla, jerith, @Chalain |
17:47 | | Syloq [Syloq@Admin.Nightstar.Net] has joined #code |
17:48 | | Syloq is now known as Syloqs-AFH |
18:06 | | Netsplit over, joins: Attilla |
18:18 | | AbuDhabi [AnnoDomini@Nightstar-29635.neoplus.adsl.tpnet.pl] has joined #Code |
18:19 | | AnnoDomini [AnnoDomini@Nightstar-29195.neoplus.adsl.tpnet.pl] has quit [Ping Timeout] |
18:19 | | Chalain [~chalain@Admin.Nightstar.Net] has joined #code |
18:19 | | Raif [~corvusign@Nightstar-5406.hsd1.ca.comcast.net] has joined #code |
18:19 | | Pi [~sysop@Nightstar-6875.hsd1.wa.comcast.net] has joined #code |
18:19 | | jerith [~jerith@IRCop.Nightstar.Net] has joined #code |
18:19 | | Vornicus [~vorn@Admin.Nightstar.Net] has joined #code |
18:19 | | GeekSoldier [~Rob@Nightstar-5155.pools.arcor-ip.net] has joined #code |
18:19 | | mode/#code [+o Chalain] by ChanServ |
18:19 | | mode/#code [+o Pi] by ChanServ |
18:19 | | ServerMode/#Code [+o Vornicus] by Troika.TX.US.Nightstar.Net |
18:19 | | mode/#code [+o jerith] by ChanServ |
18:20 | | mode/#code [+o Vornicus] by ChanServ |
18:21 | | AbuDhabi is now known as AnnoDomini |
18:40 | | Corra[Venusbunnygirl] [~nsJChat@137.155.195.ns-3732] has joined #code |
18:40 | < Corra[Venusbunnygirl]> | Hello, I was pointed here. |
18:42 | < Attilla> | Hello |
18:42 | < Corra[Venusbunnygirl]> | I have found C++ to be evil and illogicla :) |
18:42 | < AnnoDomini> | It is. |
18:42 | < Corra[Venusbunnygirl]> | Anyway... I'm wondering if anyone knows how to get it to compile my header file. |
18:42 | < Corra[Venusbunnygirl]> | since it believes having one is a syntax error. |
18:42 | <@McMartin> | Headers don't compile on their own. |
18:43 | <@McMartin> | What's you're #include line look like? |
18:43 | <@McMartin> | your, even |
18:43 | < Corra[Venusbunnygirl]> | within a certain Point.cc I have #include "Point.h" |
18:43 | <@McMartin> | And what error does g++ give? |
18:43 | < Corra[Venusbunnygirl]> | g++: Compilation of header file requested |
18:43 | <@McMartin> | And how are you invoking g++? |
18:44 | < Corra[Venusbunnygirl]> | after running: g++ Point.h Point.cc PointClient.cc |
18:44 | <@McMartin> | There's your problem. |
18:44 | <@McMartin> | Remove the .h file from that list. |
18:44 | <@McMartin> | #include means "copy the contents of this file into the .cc". Header files don't stand on their own. |
18:44 | < Corra[Venusbunnygirl]> | it still doesn't see Poin.h |
18:44 | <@McMartin> | Define "doesn't see". |
18:44 | < Corra[Venusbunnygirl]> | it ignores everything in the file, saying Point doesn't exist, etc. |
18:45 | <@McMartin> | But it doesn't give a "cannot find header file" error? |
18:45 | < Corra[Venusbunnygirl]> | nope |
18:45 | <@McMartin> | OK, what's in Point.h? |
18:45 | < Corra[Venusbunnygirl]> | it gives several "Parse error before '::' etc... |
18:45 | <@McMartin> | Inside Point.cc or inside Point.h? |
18:45 | < Corra[Venusbunnygirl]> | that's for Point.cc |
18:45 | < Corra[Venusbunnygirl]> | it doesn't compile Point.h |
18:46 | <@McMartin> | You don't compile header files, period. |
18:46 | <@McMartin> | They're declarations. |
18:46 | < Corra[Venusbunnygirl]> | well, it obviously didn't get those declarations before it tried compiling mine |
18:46 | <@McMartin> | However, if there's an error inside Point.h, it will report it as "In file included from Point.cc: Point.h: Whatever" |
18:46 | <@McMartin> | Your upper/lower case stuff all matches up, right? |
18:46 | < Corra[Venusbunnygirl]> | it gives no such message |
18:47 | < Corra[Venusbunnygirl]> | yes. |
18:47 | <@McMartin> | Can you paste the entire contents of point.h into the pastebin in the topic? |
18:47 | < Corra[Venusbunnygirl]> | I can... it's just a pain since I'm on a slow as crap remote desktop with netscape :P |
18:47 | <@McMartin> | Yes, well, we'll need more details than "It doesn't work" to grant any useful answers here. |
18:49 | < Corra[Venusbunnygirl]> | no, no I cannot. |
18:49 | < Corra[Venusbunnygirl]> | after Edit> Copy, there is no Edit> Paste |
18:49 | < Corra[Venusbunnygirl]> | Stupid linux. |
18:49 | <@McMartin> | It could be that you didn't handle your #ifndefs right, meaning the preprocessor annihilated the entire file. It could be you missed a semicolon in a class declaration, making it not notice the error until it got out of the .h file. |
18:49 | < Corra[Venusbunnygirl]> | #indef POINT_H |
18:49 | <@McMartin> | Select the text with the mouse, then middle-click in the appropriate window. |
18:49 | < Corra[Venusbunnygirl]> | #define POINT_H |
18:50 | < Corra[Venusbunnygirl]> | #include <iostream> |
18:50 | <@McMartin> | That should be "#ifndef". |
18:50 | < Corra[Venusbunnygirl]> | #end if |
18:50 | <@McMartin> | And #endif |
18:50 | < Corra[Venusbunnygirl]> | ifndef? that doesn;ts make any logical sense |
18:50 | < Corra[Venusbunnygirl]> | oooh.. |
18:50 | < Corra[Venusbunnygirl]> | not |
18:50 | <@McMartin> | "IF Not DEFined" |
18:51 | <@McMartin> | There should also, like, be a class declaration between those. |
18:51 | <@McMartin> | Also ensure that your class declarations have semicolons after the final closing brace. |
18:52 | < Corra[Venusbunnygirl]> | 97481 is the pastie bin |
18:52 | < Corra[Venusbunnygirl]> | they all do |
18:53 | <@McMartin> | It's certainly reading Point.h; note like 6, where it reports what it expects to see. |
18:53 | < Corra[Venusbunnygirl]> | yes I see now |
18:53 | <@McMartin> | This looks like four or five additional errors in Point.cc itself |
18:54 | <@McMartin> | Including a confusion between C++-style strings and C-style strings (const char *) |
18:54 | <@McMartin> | The latter cannot be concatenated with +. |
18:54 | <@McMartin> | (Line 15) |
18:54 | < Corra[Venusbunnygirl]> | >> |
18:55 | <@McMartin> | What's line 5? |
18:55 | <@McMartin> | Uh, actually |
18:55 | < Corra[Venusbunnygirl]> | my optional constructor |
18:55 | <@McMartin> | ... No, the actual text of line 5. |
18:55 | < Corra[Venusbunnygirl]> | to pastie!!! |
18:55 | < Corra[Venusbunnygirl]> | I hate having to use 2 desktops T_T |
18:55 | <@McMartin> | No, the pastie is your error list |
18:56 | <@McMartin> | If you're going to pastie, pastie the whole .cc file. |
18:56 | < Corra[Venusbunnygirl]> | I'll have ot make another pastie |
18:56 | < Corra[Venusbunnygirl]> | ok |
18:56 | < Corra[Venusbunnygirl]> | 97482 |
18:57 | <@McMartin> | Semicolon should be a comma on line 5, I believe |
18:57 | < Corra[Venusbunnygirl]> | ok, fixed that |
18:57 | <@McMartin> | Replace the +s in write() with <<s as per cout. |
18:57 | <@McMartin> | And write() needs an extra const in its declaration like it has in point.h |
18:58 | <@McMartin> | Also also, unless stuff from iostream is actually directly referenced in the Point declaration, I'd move the #include <iostream> from Point.h to Point.cc, but that's a style thing. |
18:59 | < Corra[Venusbunnygirl]> | it's too much trouble to close this.... open that... edit that... save that.... close that.... open this.... |
18:59 | <@McMartin> | Why can't you just keep multiple windows open? |
18:59 | < Corra[Venusbunnygirl]> | because appearently xemacs& Point.cc isn't a valid command. |
18:59 | <@McMartin> | & goes at the end of the whole line to background stuff. |
18:59 | <@McMartin> | you want xemacs point.cc & |
18:59 | <@McMartin> | Well, Point.cc |
19:00 | < Corra[Venusbunnygirl]> | hurray! |
19:00 | < Corra[Venusbunnygirl]> | thanks. |
19:02 | | * McMartin heads off to lunch and sundry adventures |
19:03 | < Corra[Venusbunnygirl]> | IT WORKS!!! |
19:03 | < Corra[Venusbunnygirl]> | thank you McMartin! |
19:03 | <@McMartin> | At your service |
19:07 | < MinceR> | hay |
19:10 | | Attilla is now known as Tryvas |
19:28 | <@TheWatcher> | Anyone know much SQL? specifically, I want a select to return distrint rows but ignoring one column in the table when determining duplicates. Is this possible, or do I need to do it the hard way? |
19:28 | <@TheWatcher> | *distinct |
19:29 | < Corra[Venusbunnygirl]> | hmm.. you may have to do it the hard way... |
19:29 | < Corra[Venusbunnygirl]> | you can use WHERE to delegate rows... but not columns, can you? |
19:48 | < MinceR> | you could use a sub-select to do the distinct part and add the column that doesn't count in the outer one |
19:49 | < MinceR> | hm... maybe you can give distinct a column name as parameter in some dialects |
19:55 | | Netsplit Blargh.CA.US.Nightstar.Net <-> Troika.TX.US.Nightstar.Net quits: @Pi, @Vornicus, Raif, GeekSoldier, @jerith, @Chalain |
19:57 | | Jeff [Computer@Nightstar-562.dsl.sndg02.pacbell.net] has quit [Ping Timeout] |
20:15 | | Netsplit over, joins: Chalain, Raif, Pi, jerith, Vornicus, GeekSoldier |
20:15 | | Jeff [Computer@Nightstar-562.dsl.sndg02.pacbell.net] has joined #code |
20:15 | | mode/#code [+o Chalain] by ChanServ |
20:15 | | mode/#code [+o Pi] by ChanServ |
20:15 | | ServerMode/#Code [+o Vornicus] by Troika.TX.US.Nightstar.Net |
20:15 | | mode/#code [+o jerith] by ChanServ |
20:15 | | mode/#code [+o Vornicus] by ChanServ |
20:16 | | Jeff is now known as NSGuest-1086 |
20:21 | | Corra[Venusbunnygirl] is now known as Corra[Coongirl] |
20:22 | < Corra[Coongirl]> | and it is finished. |
20:22 | < Corra[Coongirl]> | Phew. |
20:24 | | Corra[Coongirl] is now known as Corra[VenusAnimeCoongirl] |
20:33 | | NSGuest-1086 is now known as Jeff |
21:11 | | Forj [~Forj@Nightstar-2472.ue.woosh.co.nz] has joined #code |
21:11 | | mode/#code [+o Forj] by ChanServ |
21:12 | | Chalcedon [~Chalcedon@Nightstar-2472.ue.woosh.co.nz] has joined #code |
21:12 | | mode/#code [+o Chalcedon] by ChanServ |
22:24 | | Chalcedon [~Chalcedon@Nightstar-2472.ue.woosh.co.nz] has quit [Connection reset by peer] |
22:26 | | Chalcedon [~Chalcedon@Nightstar-2472.ue.woosh.co.nz] has joined #code |
22:27 | | mode/#code [+o Chalcedon] by ChanServ |
23:05 | | You're now known as TheWatcher[T-2] |
23:08 | | You're now known as TheWatcher[zZzZ] |
23:13 | | Tryvas is now known as Attilla |
23:44 | | Corra[VenusAnimeCoongirl] is now known as Corra[VenusAnimeCoongirl]way |
23:44 | | Corra[VenusAnimeCoongirl]way [~nsJChat@137.155.195.ns-3732] has quit [Quit: Nightstar's Java Chat http://www.nightstar.net] |
--- Log closed Sun Sep 16 00:00:15 2007 |