code logs -> 2007 -> Sat, 15 Sep 2007< code.20070914.log - code.20070916.log >
--- 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
code logs -> 2007 -> Sat, 15 Sep 2007< code.20070914.log - code.20070916.log >