code logs -> 2009 -> Tue, 17 Mar 2009< code.20090316.log - code.20090318.log >
--- Log opened Tue Mar 17 00:00:03 2009
00:05 Reiv [~82d94c4d@Nightstar-29731.dsl.in-addr.zen.co.uk] has quit [Quit: CGI:IRC (EOF)]
00:11
<@MyCatVerbs>
Tarinaky: that error is actually still part of C. :)
00:11
< Tarinaky>
Still. I don't understand what's wrong.
00:11
<@Vornicus>
ostringstream is I think an abstract classs.
00:11
<@MyCatVerbs>
Tarinaky: it means that some code attempted to declare a struct or union (or C++ object) containing another struct or uion or C++ object whose size isn't known.
00:12
<@Vornicus>
Or that.
00:12
<@MyCatVerbs>
For example, if I write: struct foo; struct { struct foo* data; } bar;
00:12
<@MyCatVerbs>
Then that's fine, because even though the compiler doesn't yet know the size of a struct foo, but it does know how large a pointer to one will be.
00:13 Derakon is now known as Derakon[AFK]
00:14
< Tarinaky>
I think I follow. Why is a class in the standard libraries giving me this problem?
00:14
<@MyCatVerbs>
However! If you write: struct foo; struct { struct foo data; } bar; // then the compiler will throw a wobbly, because it needs to know how large a struct foo is in order to work out how much space it needs to reserve inside struct bar.
00:14
< Tarinaky>
Okay. So how do I concatenate an integer into a string?
00:15
<@MyCatVerbs>
In plain C, usually it'll be messed up header includes. Like it's possible to cause such problems around network socket code in Linux by forgetting <netinet/in.h>, for example.
00:17
<@MyCatVerbs>
In C++, I do not know. Every edge case is multiplied ten-million-fold.
00:17
<@McMartin>
That said, this should be valid:
00:17
<@MyCatVerbs>
If you're desperate then sprintf is, if not actually your friend, at least an occasionally amiable facsimile.
00:17
<@McMartin>
std::ostringstream oss;
00:17
<@McMartin>
oss << "Here's an integer, zomg: " << 3;
00:18
<@MyCatVerbs>
Yes. You can create ostreams that print to strings.
00:18
<@McMartin>
std::cout << oss.str() << std::endl;
00:18
<@McMartin>
Oh wait
00:18
<@MyCatVerbs>
McMartin: ?
00:19
<@McMartin>
Did you in fact remember to #include <sstream>?
00:19
<@McMartin>
A bunch of other headers pretend to define it but lie
00:19
< Tarinaky>
>.> no.
00:19
< Tarinaky>
Okay. Next problem.
00:19
<@McMartin>
Try that~
00:20
< Tarinaky>
Is there any way to get a c string from ostringstream without copying ostringstream.str() into a string?
00:20
<@MyCatVerbs>
Ah, messed up includes. :3
00:21 * Tarinaky tried c_str() as a vagueish hope but it didn't work :(
00:22
<@McMartin>
.str().c_str().
00:22
<@McMartin>
That str() is, IIRC, actually a fast accessor.
00:22
<@McMartin>
Not a copy.
00:23
< Tarinaky>
Doh. Thanks.
00:24
<@McMartin>
(And string copies are actually very fast anyway in most implementations, AIUI; they are copy on write)
00:24
< Tarinaky>
You can tell I should be asleep. I wanted to go string(sFileName.str() ).c_str(). Lol.
00:24
<@McMartin>
Heh. No worries.
00:24
<@McMartin>
C++ is full of pail.
00:24
<@McMartin>
pain.
00:25
< Tarinaky>
Eh. For some reason whenever I switch IDE I do silly things or get errors where I wouldn't expect them.
00:25
< Moltare>
...the bit bucket strikes again
00:26
< Tarinaky>
I discovered earlier that AnEnum|=ONEOFTHEENUMARATIONS threw errors at me about converting from an int to an enum :(
00:27
<@McMartin>
Yeah, enums are typesafe in C++, unlike in C.
00:27
<@McMartin>
You can get around it with explicit casts.
01:04
< Tarinaky>
Would (int)ONEOFTHEENUMERATIONS work?
01:05
< Tarinaky>
Sorry, I mean (EnumType)ONEOFTHEENUMERATIONS rather
01:06
< Tarinaky>
Or better yet... Could I case the left hand side of the |= operator to an int?
01:06
< Tarinaky>
Or would that make things asplode?
01:06
< Tarinaky>
*cast
01:07
< Tarinaky>
Sorry... I'm not awake at this point. Hence why I've closed my IDE, lest I fuck up beyond compare >.>
01:10 Attilla [~The.Attil@Nightstar-9147.cdif.cable.ntl.com] has quit [Quit: <Insert Humorous and/or serious exit message here>]
01:15 Derakon[AFK] is now known as Derakon
01:16
<@gnolam>
McMartin: Yeah, there is. Not entirely trivial though.
01:16
<@gnolam>
Or, well, that depends on the alignment of your billboard.
01:16
<@gnolam>
(Depending on classification, there are ~3-5 different kinds of billboards)
01:16
<@gnolam>
Rhamphoryncus: correct.
01:17
<@gnolam>
Rhamphoryncus: They're mostly used for LODing vegetation these days.
01:24
<@McMartin>
So, I had a particle system for the bits of an explosion
01:25
<@McMartin>
I was hoping to have each particle be an animation of a flame going to smoke then nothing.
01:25
<@McMartin>
So, "here's a bunch of points, each should be a quad square with the camera"
01:25
<@McMartin>
In other news, I got RedMon working.
01:25 * McMartin does The Dance.
01:26
<@McMartin>
This means that my workplace will not require me to work with Visual Basic 6.
01:50
< Tarinaky>
... "(gdb) print sin(90) " "$13 = 14880" << Wut?
01:54
<@McMartin>
Got me.
01:55
<@Derakon>
That's one evil superoctogenarian.
01:55
<@ToxicFrog>
print (double)(sin(90))?
01:55
< Tarinaky>
Heh. It's also funny because my ship rotates faster clockwise than anticlockwise.
01:55
<@Derakon>
Intentionally?
01:55
<@ToxicFrog>
Although, are you really sure you want 90 there and not pi/2?
01:56
<@Derakon>
It should still be in the range [-1,1].
01:56
<@Vornicus>
If it's interpreting as an int then it'll go Mcwtf
01:56
<@ToxicFrog>
Derakon: yeah, I'm wondering if it's interpreting the result as an int or something
01:56
< Tarinaky>
Presumably because my computer can add (clockwise) faster than take away (anticlockwise).
01:56
< Tarinaky>
(gdb) print (double)sin(90)
01:56
< Tarinaky>
$24 = -1080477152
01:57
<@Vornicus>
mcwhut
01:57
<@Derakon>
Er...you'd have to be doing this operation thousands of times per frame for the difference between addition and subtraction to be relevant.
01:57
<@ToxicFrog>
The fact that it's 90 shouldn't give those results, but it implies that you're using it incorrectly anyways
01:58
< Tarinaky>
Derakon: I'm not, at present, counting the amount of seconds. My ships rotating by 5 degrees every time it draws a frame.
01:58
<@Derakon>
Try rotating by 5 * pi / 180.0 instead.
01:59
< Tarinaky>
The rotation isn't the problem.
01:59
< Tarinaky>
The problem is acceleration.
01:59
< Tarinaky>
idXPos = sin(iHeading*5) and a similar line for idYPos.
01:59
< Tarinaky>
Whoops
01:59
<@Derakon>
X is cosine. :{
01:59
<@Derakon>
Er. :)
01:59
<@ToxicFrog>
Tarinaky: the point is, if you are passing it degrees instead of radians, you will get weird results whether it's working right or not
01:59
< Tarinaky>
idXPos += sin(iHeading*5) and a similar line for idYPos.
02:00
< Tarinaky>
Derakon: I'm measuring the angle from North.
02:00
<@Derakon>
...why?
02:00
< Tarinaky>
Because that made sense to me?
02:00
<@Derakon>
Unit circles are standard. ;.;
02:00
< Tarinaky>
ToxicFrog: Surely I'd still get a value within the definition of sine?
02:01
<@Derakon>
Tarinaky: presumably, but your implementation of sin might break if you hand it values outside of [-pi, pi]. That'd be a bad implementation, but it's conceivable.
02:01
<@ToxicFrog>
Tarinaky: yes.
02:02
< Tarinaky>
I don't remember ever having to deal with radians with the cmath functions before.
02:02
<@ToxicFrog>
However, as near as I can tell, what
02:02
<@ToxicFrog>
s happening here is:
02:02
<@ToxicFrog>
(1) rotation is not behaving as expected
02:02
<@ToxicFrog>
(2) calling sin from GDB is returning out of range values
02:02
<@ToxicFrog>
(2) could, for all we know, be a problem with GDB itself
02:02
<@ToxicFrog>
(1), however, is at least partly caused by the fact that you are not using sin properly.
02:03
< Tarinaky>
(gdb) print sin(3.141)
02:03
< Tarinaky>
$25 = -1080477664
02:03
<@ToxicFrog>
If you fix this, and the problem goes away, you no longer need to worry about (2).
02:03
<@ToxicFrog>
As for having to deal with radians - http://linux.die.net/man/3/sin
02:04
<@ToxicFrog>
Or look it up on cplusplus.com/ref
02:04
< Tarinaky>
Yeah. I just did.
02:04
< Tarinaky>
But why is print sin(3.141) still giving me garbage?
02:06
<@Derakon>
Your result is 1000000011001101100011111100000 in binary
02:06
<@Derakon>
(That's 32 bits)
02:06
<@ToxicFrog>
Tarinaky: I don't know, be more explicit with your casting or try it in the program itself
02:07 * Derakon tries to find the spec for which bits mean what in a 32-bit float.
02:07
<@Derakon>
Sign, then 8 exponent bits, then 23 fraction bits.
02:08
<@Derakon>
Of course, the expecting value is 0...
02:08
<@Derakon>
Er. Expected.
02:11
< Tarinaky>
Ah. I spotted why I was getting faster clockwise rotation than AC.
02:11
< Tarinaky>
sin(pi) is 1.
02:11
< Tarinaky>
cos(pi) is 0.
02:11
< Tarinaky>
No. Wait.
02:11
< Tarinaky>
Sorry, I'm thinking of pi/2
02:11
< Tarinaky>
>.>
02:12
<@Derakon>
And this is why you use unit circles.
02:13
< Tarinaky>
I picked North as 0 degrees because that's where you measure bearings from.
02:14
< Tarinaky>
I have no idea wtf unit circles are.
02:14
< Rhamphoryncus>
it's replacing 360 with either 1 or pi, I'm not sure :)
02:15
<@Derakon>
Tarinaky: the unit circle is a circle of radius 1 centered on the origin.
02:15
<@ToxicFrog>
And 0, if I recall correctly, is right.
02:15
<@Derakon>
More generally, you use unit circles in the context of the standard definition of sine and cosine, which involves going counterclockwise from east.
02:16
<@Derakon>
You can measure from North, but then every time you show your code to someone they're going to say "You got your sine and cosine backwards" and you're going to have to explain why you're doing it differently.
02:17 * Tarinaky isn't from a maths background.
02:18
< Rhamphoryncus>
Tarinaky: IMO, a range of 0..1 is the most useful for general programming, but should be translated into 0..2pi for much of the harder work
02:19
< Tarinaky>
Range of what sorry?
02:19
< Rhamphoryncus>
replace your 0..360 with 0..1
02:19
< Rhamphoryncus>
Don't use degrees. They're silly, archaic units :)
02:19
< Tarinaky>
The heading's stored as 0..71 because it coincides with the number of sprites I have.
02:20
<@Derakon>
It'd be more general if you mapped your heading to the number of sprites you had at draw time.
02:20
<@Derakon>
That'd let you use arbitrary numbers of sprites for your circles, e.g. if you have a sprite that doesn't need to be as precise but still needs the same rotation logic.
02:20
< Rhamphoryncus>
I'm confused, what does a direction have to do with the number of sprites?
02:21
< Tarinaky>
Because I can't draw something facing a direction I can't draw.
02:21
<@Derakon>
He has one sprite for every orientation the ship can have.
02:21
< Rhamphoryncus>
ahh
02:21
< Rhamphoryncus>
So your headings are "locked" to certain offsets
02:22
< Rhamphoryncus>
I can understand storing that way, but you should still translate into 0..1 or 0..2pi for real work
02:22
< Tarinaky>
I think I'm going to go to sleep and probably rewrite this class tomorrow >.>
02:23
<@Derakon>
Here, Tarinaky: some code I wrote to get the frame to draw given an arbitrary direction and set of surfaces: http://paste.ubuntu.com/132269/
02:24
< Tarinaky>
Changing where I measure 0 from would be a pita because I'd probably have to rename my sprites.
02:24
< Rhamphoryncus>
sin/cos/etc *require* radian arguments, so you might as well bite the bullet
02:24
<@Derakon>
You should be able to translate it to C++ without much difficulty.
02:24
<@Derakon>
And you can rename your sprites with a program, right? :)
02:24
< Rhamphoryncus>
meh, rename them as you load them, or simply as you translate from 0..71 to 0..2pi
02:25
< Rhamphoryncus>
Nothing wrong with working on disk with 0 as north
02:25
< Tarinaky>
Derakon: By program you mean I'd have to write a shellscript to do it.
02:25 * Derakon nods.
02:25
< Rhamphoryncus>
Certainly more users will be familiar with 0 as north
02:26
<@Derakon>
They'll also be familiar with directions traveling clockwise.
02:26
< Tarinaky>
I should note that the code won't see light of day so there aren't any users :P
02:26
<@Derakon>
Heh.
02:26
< Tarinaky>
In a few months I'll tidy up my home directory and lose it in an archive.
02:28 * Rhamphoryncus bets he's used radians as clockwise from north before
02:28
< Tarinaky>
Anyway. Sleep calls.
02:31
<@Derakon>
I have too, Rhamph...and then I decided it was a bad idea.
02:31
< Rhamphoryncus>
well I haven't done that much graphics :)
02:35
< Rhamphoryncus>
hee, milliturns.
02:36
<@Derakon>
?
02:39
< Rhamphoryncus>
turn, as in rotation. 0..1
02:40
<@Derakon>
I got that, was just wondering what amused about them.
03:02 * Derakon experiments with differently-dimensioned maps. http://derakon.dyndns.org/~chriswei/games/jbrl/mapgen19.png
03:25 * gnolam wonders what the hell they've done to Maxima.
03:27 somnolence [~somnolenc@Nightstar-5762.hsd1.ca.comcast.net] has quit [Quit: Leaving]
03:28 somnolence [~somnolenc@212.116.219.ns-22904] has joined #code
03:43 * Derakon eyes the Super Metroid map.
03:43
<@Derakon>
I'm rapidly coming to the conclusion that much of what makes exploration interesting is discovering the loops.
03:43
<@Derakon>
(Link: http://db.gamefaqs.com/console/snes/file/super_metroid_world_a.png )
03:44
<@Derakon>
Which tells me that I'll need to have support for loops at the game graph level, most likely, since I don't think they can be cleanly done otherwise.
03:46
<@Derakon>
Fortunately, now that I've refactored the wallwalker algorithm to work at the sector level instead of on the global map, loops in the map should no longer cause infinite loops in mapgen. However, I'll need to tweak my "remove islands" code so that it doesn't grab half the map. Simple maximum island size check should cover that.
03:50
<@Derakon>
Of course, doing this will mean turning the tree into a graph...
03:52
<@Derakon>
Hrm. I've already written a connectivity checker. How to generalize it so it operates on walls in addition to sectors?
03:59 macdjord|class is now known as macdjord
04:07 gnolam [lenin@Nightstar-1382.A163.priv.bahnhof.se] has quit [Quit: Z?]
04:20
<@Derakon>
for connnection in self.connections:
04:20
<@Derakon>
if connection.id == node.id:
04:20
<@Derakon>
return 'connection'
04:20
<@Derakon>
Can you spot the error? ¬.¬
04:20
<@McMartin>
lulz
04:21
<@McMartin>
Gotta love non-declaration-based languages
04:21
<@Vornicus>
connection connection connection connection!
04:21
<@McMartin>
For added comedy value, was there a top-level "connection" that was supposed to be getting shadowed, too?
04:21
<@McMartin>
Thus making it actually run?
04:21
<@Derakon>
Actually no.
04:22
<@Derakon>
Though I had initially made it "for node in self.connections", which would have done shadowing.
04:22 * Derakon horribly breaks map gen. http://derakon.dyndns.org/~chriswei/games/jbrl/mapgen19b.png
04:23
<@Derakon>
Man, I wonder what happened here?
04:23
<@Vornicus>
*bewm*
04:23
<@Vornicus>
That's pretty cool though.
04:23 * McMartin cues the Aquaria cave theme.
04:24
<@Vornicus>
Looks like you blew the tree builder.
04:24
<@Derakon>
I was trying to turn the tree into a mostly-tree-but-with-loops-on-the-end.
04:25
<@Vornicus>
That does not appear to have worked.
04:25
<@Derakon>
Not really, no.
04:34
<@Derakon>
Rgh...my "find nodes near this node" code is, completely naturally, finding nearby nodes that are practically siblings to the node.
04:34
<@Derakon>
I want to find nodes on different major branches of the tree.
04:37
<@Vornicus>
So sort by the number of nodes between the two given nodes when doing your heuristic, and use a... something or other.
04:37
<@Derakon>
Yeah, I need node-to-node connection distance...but that'll be a bit of a pain to calculate.
04:40 * Derakon hits max recursion depth. Whee!
04:40
<@Derakon>
I love how it gives me the stack trace anyway.
04:42
<@Vornicus>
It's originally a tree; a graph search should find all distances in quadratic time.
04:43
<@Derakon>
It's mainly the "I need to go up and down the tree simultaneously" thing, since I'm starting from deep down the tree. But I fixed that by tracking the caller in the recursive "get me nearby nodes" function.
04:44
<@Derakon>
Now I just have the problem of the map being really gung-ho about adding connections.
04:44
<@Derakon>
And the problem of making connections with open space.
04:55 ToxicFrog [~ToxicFrog@Admin.Nightstar.Net] has quit [Ping Timeout]
04:55
<@Derakon>
Argh, where the hell are these things coming from?!
04:56
<@Derakon>
There's not even anything in the logs to indicate that new objects are being added where they say they're being added! ;.;
04:57
<@Derakon>
(Where by "say they're getting added" I mean "are getting drawn")
05:01
<@Derakon>
Ahh, fixed it.
05:01
<@Derakon>
I was creating connections before the map was done being laid out, so there were a bunch of nodes ready to make children that all happened to be on the same spot.
05:02
<@McMartin>
http://stupidfilter.org/demo.php
05:02 Syloqs-AFH [Syloq@Admin.Nightstar.Net] has quit [Connection reset by peer]
05:03
<@Derakon>
It doesn't like a snippet of my code~
05:04 GeekSoldier [~Rob@Nightstar-8573.midstate.ip.cablemo.net] has quit [Ping Timeout]
05:04
<@Derakon>
So next I need for every node to know its distance to the nearest connection, so I can keep them a ways apart.
05:09 GeekSoldier [~Rob@Nightstar-8573.midstate.ip.cablemo.net] has joined #code
05:09 mode/#code [+o GeekSoldier] by ChanServ
05:10 ToxicFrog [~ToxicFrog@69.171.131.ns-20955] has joined #code
05:10 mode/#code [+o ToxicFrog] by ChanServ
05:42 macdjord is now known as macdjord|t-10
05:45
<@Derakon>
Okay, loops are getting made...and my wallwalker is broken. :\
05:46
<@Derakon>
Still, good enough for tonight, I think.
05:49
<@Vornicus>
Show us!
05:50
<@Derakon>
Well, without a wallwalker, mapgen doesn't get to finish the map, so all's you get's a debugging shot. http://derakon.dyndns.org/~chriswei/games/jbrl/loops/01.png
05:50
<@Derakon>
(Made with a smaller-than-normal map with downsized parameters to suit, since otherwise debugging's pretty slow)
05:52
<@Vornicus>
Now /that/ is pretty.
05:53
<@Derakon>
May as well post it to the ol' LJ...
06:02
<@Derakon>
Done.
06:11 macdjord|t-10 is now known as macdjord|slep
06:43 Derakon is now known as Derakon[AFK]
06:47 AnnoDomini [~farkoff@Nightstar-6915.neoplus.adsl.tpnet.pl] has joined #Code
06:47 mode/#code [+o AnnoDomini] by ChanServ
07:15 Vornicus [~vorn@Admin.Nightstar.Net] has quit [Quit: ]
08:11 * McMartin writes Windows system code using X-Code, because his Windows machine is busy playing DVDs.
09:15 Attilla [~The.Attil@Nightstar-9147.cdif.cable.ntl.com] has joined #code
09:15 mode/#code [+o Attilla] by ChanServ
09:26 Rhamphoryncus [~rhamph@Nightstar-7184.ed.shawcable.net] has quit [Quit: Rhamphoryncus]
10:07 macdjord|slep [~macdjord@Nightstar-9795.129-97-124-126.uwaterloo.ca] has quit [Ping Timeout]
10:07 macdjord [~macdjord@Nightstar-9795.129-97-124-126.uwaterloo.ca] has joined #Code
10:18 Moltare [~moltare@Nightstar-16368.plus.com] has quit [Ping Timeout]
10:21 macdjord [~macdjord@Nightstar-9795.129-97-124-126.uwaterloo.ca] has quit [Ping Timeout]
10:22 macdjord [~macdjord@Nightstar-9795.129-97-124-126.uwaterloo.ca] has joined #Code
11:24 gnolam [lenin@Nightstar-1382.A163.priv.bahnhof.se] has joined #Code
11:24 mode/#code [+o gnolam] by ChanServ
11:35 Attilla [~The.Attil@Nightstar-9147.cdif.cable.ntl.com] has quit [Connection reset by peer]
11:35 Attilla [~The.Attil@Nightstar-9147.cdif.cable.ntl.com] has joined #code
11:35 mode/#code [+o Attilla] by ChanServ
11:45 Attilla [~The.Attil@Nightstar-9147.cdif.cable.ntl.com] has quit [Connection reset by peer]
11:45 Attilla [~The.Attil@Nightstar-9147.cdif.cable.ntl.com] has joined #code
11:45 mode/#code [+o Attilla] by ChanServ
13:18 GeekSoldier [~Rob@Nightstar-8573.midstate.ip.cablemo.net] has quit [Ping Timeout]
13:22 GeekSoldier [~Rob@Nightstar-8573.midstate.ip.cablemo.net] has joined #code
13:22 mode/#code [+o GeekSoldier] by ChanServ
14:21 Attilla [~The.Attil@Nightstar-9147.cdif.cable.ntl.com] has quit [Connection reset by peer]
14:22 Attilla [~The.Attil@Nightstar-9147.cdif.cable.ntl.com] has joined #code
14:22 mode/#code [+o Attilla] by ChanServ
14:23 ToxicFrog [~ToxicFrog@69.171.131.ns-20955] has quit [Quit: Doing electrical maintenance on the house...]
14:25 Attilla [~The.Attil@Nightstar-9147.cdif.cable.ntl.com] has quit [Connection reset by peer]
14:27 Attilla [~The.Attil@Nightstar-9147.cdif.cable.ntl.com] has joined #code
14:27 mode/#code [+o Attilla] by ChanServ
14:35 ToxicFrog [~ToxicFrog@69.171.131.ns-20955] has joined #code
14:35 mode/#code [+o ToxicFrog] by ChanServ
15:03 Syloqs_AFH [Syloq@Admin.Nightstar.Net] has joined #code
15:04 Syloqs_AFH is now known as Syloqs-AFH
15:13 KBot [AnnoDomini@Nightstar-29128.neoplus.adsl.tpnet.pl] has joined #Code
15:14 AnnoDomini [~farkoff@Nightstar-6915.neoplus.adsl.tpnet.pl] has quit [Ping Timeout]
15:15 KarmaBot [AnnoDomini@Nightstar-6915.neoplus.adsl.tpnet.pl] has quit [Ping Timeout]
15:16 KBot is now known as KarmaBot
15:16
<@gnolam>
... and apparently, you can't delete Gmail accounts.
15:16
< Alek>
:O
15:17
< Alek>
why?
15:18
<@gnolam>
No wait, you could. You just had to go to a completely separate page. :P
15:21 AnnoDomini [~farkoff@Nightstar-29128.neoplus.adsl.tpnet.pl] has joined #Code
15:21 mode/#code [+o AnnoDomini] by ChanServ
15:24
<@gnolam>
Hmm. I seem to recall the webmaster@ address being defined in some RFC, but I can't find it.
15:28 Derakon[AFK] is now known as Derakon
15:30 Vornicus [~vorn@Admin.Nightstar.Net] has joined #code
15:30 mode/#code [+o Vornicus] by ChanServ
16:03 MyCatVerbs [~mycatverb@Nightstar-13709.lurkingfox.co.uk] has quit [Ping Timeout]
16:07 MyCatVerbs [~mycatverb@Nightstar-13709.lurkingfox.co.uk] has joined #code
16:07 mode/#code [+o MyCatVerbs] by ChanServ
16:55 Moltare [~moltare@Nightstar-16368.plus.com] has joined #code
16:56
<@Derakon>
The problem with giving sectors randomly-assigned colors: noticing the buggy lavendar sector in the middle of the pale rose sector. >.<
16:57
<@Vornicus>
If you finish all the sectors before coloring them you can use map-coloring to do it.
16:58
<@Derakon>
Unfortunately, I need the sector colors for the spacefilling automaton which makes the sectors.
16:59
<@Vornicus>
flergbota.
16:59
<@Vornicus>
Pick 30 or so very distinct colors and assign randomly?
16:59
<@Derakon>
Enh, I don't expect it to happen often and random colors are easier.
17:29 Rhamphoryncus [~rhamph@Nightstar-7184.ed.shawcable.net] has joined #code
17:41 Attilla [~The.Attil@Nightstar-9147.cdif.cable.ntl.com] has quit [Ping Timeout]
17:42 Attilla [~The.Attil@Nightstar-9147.cdif.cable.ntl.com] has joined #code
17:42 mode/#code [+o Attilla] by ChanServ
18:02
<@Derakon>
Victoire! http://derakon.dyndns.org/~chriswei/games/jbrl/loops/02.png
18:20
<@Derakon>
Hyooge map: http://derakon.dyndns.org/~chriswei/games/jbrl/loops/02b.png
18:20
<@Derakon>
(5686x3709)
18:20
<@Derakon>
Minor problem on the top with a room, but otherwise I really like this one.
18:26
<@McMartin>
It mentions loops, but I don't see any?
18:27
<@Derakon>
Hmm...giving directions is a bit tricky on a map this big.
18:27
<@Derakon>
Head east, then south, from the center.
18:28
<@McMartin>
Junctions have numerical coordinates
18:28
<@Derakon>
Oh, fair point.
18:28
<@Derakon>
Okay, so 3475,2946 is the base of one smallish loop.
18:29
<@Derakon>
That's SSE of the center.
18:29
<@Derakon>
An easier way to spot looks is to look at the grey space between tunnels. A contiguous gray area that doesn't connect with the edge is the interior of a loop.
18:29
<@Derakon>
Go negative space~
19:05
<@MyCatVerbs>
Derakon: that would make an epic Jump 'n' Bump map.
19:06
<@MyCatVerbs>
Either that or Abuse. :D
19:17
<@Derakon>
A good platforming-level generator should be nicely extensible to all sorts of games. :)
19:20 * Derakon writes a quick commandline script to generate batches of maps...only problem being that every time the program starts running, it steals focus. >.<
19:21
<@Attilla>
Man, uh, trying to translate how to use this weird use of GAUSSIAN is terrible, it involves ONIOM and describing the molecular structure in a pecular fashion, noting a point wherein all below use the secondary (or tertiary if necessary) modelling method
20:03
<@Derakon>
Hm...653x683 map takes a while to lay out. O_o
20:04
<@Derakon>
135s to make the map.
20:17
<@EvilDarkLord>
What game was this for?
20:18
<@Derakon>
An experiment in making randomly-generated maps for a Metroid-style platformer.
20:39
< Rhamphoryncus>
Derakon: is it possible to get stuck? Or can you jump far enough to get out of all situations?
20:39
<@Derakon>
That's the trick, isn't it? :)
20:40
<@Derakon>
I've been refining the code that adds platforms to the map; ideally it should be impossible to get stuck. However, I don't think I'm all there yet.
20:40
< Rhamphoryncus>
ahh okay
20:40
< Rhamphoryncus>
it's very cool
20:40
<@Derakon>
Thanks.
22:22
<@Derakon>
Okay, it just took 125s to make this map...now I get to remake it with debugging output turned on! That'll probably be more like 10-15 minutes.
22:23
<@Derakon>
And all because this happened: http://derakon.dyndns.org/~chriswei/games/jbrl/loops/04.png
22:24 Attilla [~The.Attil@Nightstar-9147.cdif.cable.ntl.com] has quit [Connection reset by peer]
22:24 Attilla [~The.Attil@Nightstar-9147.cdif.cable.ntl.com] has joined #code
22:25 mode/#code [+o Attilla] by ChanServ
22:53
<@Derakon>
Ahh, reproduced it on a map an order of magnitude smaller.
22:53
<@Derakon>
And it's caused by having two collinear children off the same tree. >.<
22:57
<@gnolam>
Hmm. That could be a band. "Collinear Children".
22:58
<@gnolam>
I'd say electro-industrial. Or possibly synth.
22:59
< Moltare>
I want to make a band called Colloidal Silver
22:59
< Moltare>
We'd play the blues.
22:59
< Moltare>
*rimshot*
23:00
<@Derakon>
Another bug fixed.
23:04
<@gnolam>
Moltare: Boo.
23:05
< Moltare>
gnolam: Eek.
23:16 Moltare is now known as Molgorn
23:35
< Molgorn>
...did anyone ever try a Zelda style MMO after Graal got legalled to death?
23:36
< Molgorn>
oh, I see they unlegalled it
23:37
< Molgorn>
all of 700 players
23:37 Attilla [~The.Attil@Nightstar-9147.cdif.cable.ntl.com] has quit [Connection reset by peer]
23:37 Attilla [~The.Attil@Nightstar-9147.cdif.cable.ntl.com] has joined #code
23:37 mode/#code [+o Attilla] by ChanServ
23:38 gnolam [lenin@Nightstar-1382.A163.priv.bahnhof.se] has quit [Ping Timeout]
23:39 gnolam [lenin@Nightstar-1382.A163.priv.bahnhof.se] has joined #Code
23:39 mode/#code [+o gnolam] by ChanServ
--- Log closed Wed Mar 18 00:00:15 2009
code logs -> 2009 -> Tue, 17 Mar 2009< code.20090316.log - code.20090318.log >