code logs -> 2009 -> Thu, 26 Mar 2009< code.20090325.log - code.20090327.log >
--- Log opened Thu Mar 26 00:00:50 2009
01:09 gnolam [lenin@Nightstar-1382.A163.priv.bahnhof.se] has quit [Quit: Z?]
01:19 somnolence [~somnolenc@203.160.1.ns-3171] has quit [Client exited]
01:33 Derakon[AFK] is now known as Derakon
01:35 somnolence [~somnolenc@203.160.1.ns-3171] has joined #code
02:09
<@Derakon>
Hmm...thoughts on creating pools of liquid on the map: choose a location, plant a "seed" of water, and note the height of that seed.
02:09
<@Derakon>
Expand to all available cells that are not higher than the noted height.
02:10
<@Derakon>
Iterate until no new cells are made.
02:11
<@Derakon>
The big issue I have with this is that there's easily the potential to make massive pools, and it's very inefficient to simply try making a pool and then reject it if it gets too big.
02:16
<@Derakon>
An alternative approach would be to start from the floor of a region and build upwards, stopping "filling the pool" when enough cells have been made. That would make massive zones a bit less likely, but still easily possible (start filling right next to a downwards vertical shaft, for example).
02:18 Derakon is now known as Derakon[AFK]
02:37
< Finale>
quit
02:37
< Finale>
e
04:25 Derakon[AFK] is now known as Derakon
04:57 Derakon is now known as Derakon[AFK]
05:02 Syloqs-AFH [Syloq@Admin.Nightstar.Net] has quit [Connection reset by peer]
05:07 Finale [c0cb88fd@Nightstar-14595.mibbit.com] has quit [Quit: http://www.mibbit.com ajax IRC Client]
06:40 Vornicus [Vornicus@Admin.Nightstar.Net] has quit [Quit: ]
07:13 AnnoDomini [~farkoff@Nightstar-29587.neoplus.adsl.tpnet.pl] has joined #Code
07:13 mode/#code [+o AnnoDomini] by ChanServ
08:57 Rhamphoryncus [~rhamph@Nightstar-7184.ed.shawcable.net] has quit [Quit: Rhamphoryncus]
09:11 somnolence [~somnolenc@203.160.1.ns-3171] has quit [Ping Timeout]
09:20 Attilla [~The.Attil@Nightstar-9147.cdif.cable.ntl.com] has joined #code
09:20 mode/#code [+o Attilla] by ChanServ
10:03 somnolence [~somnolenc@203.160.1.ns-3171] has joined #code
10:36 Attilla_ [~The.Attil@Nightstar-9147.cdif.cable.ntl.com] has joined #code
10:36 Attilla [~The.Attil@Nightstar-9147.cdif.cable.ntl.com] has quit [Ping Timeout]
11:43 Attilla_ [~The.Attil@Nightstar-9147.cdif.cable.ntl.com] has quit [Quit: <Insert Humorous and/or serious exit message here>]
15:03 Syloq [Syloq@Admin.Nightstar.Net] has joined #code
15:04 Syloq is now known as Syloqs-AFH
15:15 KBot [AnnoDomini@Nightstar-29015.neoplus.adsl.tpnet.pl] has joined #Code
15:15 AnnoDomini [~farkoff@Nightstar-29587.neoplus.adsl.tpnet.pl] has quit [Ping Timeout]
15:16 KarmaBot [AnnoDomini@Nightstar-29587.neoplus.adsl.tpnet.pl] has quit [Ping Timeout]
15:18 KBot is now known as KarmaBot
15:22 AnnoDomini [~farkoff@Nightstar-29015.neoplus.adsl.tpnet.pl] has joined #Code
15:22 mode/#code [+o AnnoDomini] by ChanServ
15:47 Derakon[AFK] [~Derakon@Nightstar-5066.hsd1.ca.comcast.net] has quit [Client exited]
16:16 gnolam [lenin@Nightstar-1382.A163.priv.bahnhof.se] has joined #Code
16:16 mode/#code [+o gnolam] by ChanServ
16:29 Derakon [~Derakon@Nightstar-4879.hsd1.ca.comcast.net] has joined #code
16:29 mode/#code [+o Derakon] by ChanServ
16:33 * Derakon arghs as he realizes that he'll need to install Pygame (and all of its dependencies) to do development on this machine.
16:35 * jerith applies much Java-fu to this problem.
16:35
<@jerith>
We have a developer who isn't the sharpest in the world.
16:36
<@jerith>
He's not bad, but he isn't really all that creative.
16:36
<@jerith>
He wrote a bunch of code that throws streams of data around all over the place.
16:37
<@jerith>
Except this needs to be done be manually reading out of an Inputstream and writing into an OutputStream.
16:37
<@jerith>
Because such is The Java Way.
16:37
<@jerith>
This was happening one byte at a time.\
16:38
<@Derakon>
Yow.
16:38
<@jerith>
Which gave my service a request latency of about 120,000ms.
16:38
<@Derakon>
I'll bet.
16:38
<@jerith>
By rewriting that to use 1k buffers, I dropped that by two orders of magnitude.
16:41
<@Derakon>
I miss having all of my dependencies installed already. ;.;
16:42
<@Derakon>
PNG: not found. SDL_ttf: not found. SDL_image: not found. SDL_mixer: not found. smpeg: not found. SCRAP: not found.
16:42
<@Derakon>
In fact, all it *did* find was SDL and JPEG.
17:12 Rhamphoryncus [~rhamph@Nightstar-7184.ed.shawcable.net] has joined #code
18:56
<@MyCatVerbs>
jerith: why no BufferedReaders?
18:56 Gruber [lenin@Nightstar-1382.A163.priv.bahnhof.se] has joined #Code
18:57 gnolam is now known as NSGuest-158
18:57 Gruber is now known as gnolam
18:57 NSGuest-158 [lenin@Nightstar-1382.A163.priv.bahnhof.se] has quit [Ping Timeout]
19:09
<@Derakon>
Man...once I get the map generation complete (like, all features and artwork and creatures done), I'm gonna have to make a huuuuuge map and turn it into a poster.
19:12 * Derakon commences making at 18000x13000-pixel map.
19:12
<@Derakon>
We'll see if my lappy can handle it.
19:14
<@Derakon>
Hmm...maybe not. It's been several minutes now and it hasn't even finished making the tree.
19:15
< EvilDarkLord>
Do you need to keep all of it in RAM at the same time?
19:15
<@Derakon>
I do, yes.
19:15
<@Derakon>
But the tree structure is pretty minimal; just a bunch of lines.
19:16
<@Derakon>
Of course, I'm asking it to make a tree with non-intersecting lines, with depth up to 100, up to 3 children per node.
19:16
<@Derakon>
Which is, at the very most, 515377520732011331036461129765621272702107522001 nodes.
19:17
<@Derakon>
Hrm. Maybe I'll chop that down to 50.
19:17
< EvilDarkLord>
!3^99
19:17
< KarmaBot>
[EvilDarkLord] rolled 3^99: 3^99 = 171792506910670450000000000000000000000000000000.
19:17
<@Derakon>
For the more normally-sized maps I've been running, 18 seems a decent depth.
19:18
<@Derakon>
But since I'm increasing the map size by a factor of three...
19:18
<@Derakon>
My poor laptop fan. :)
19:19
< EvilDarkLord>
!3^18
19:19
< KarmaBot>
[EvilDarkLord] rolled 3^18: 3^18 = 387420489.
19:19
< EvilDarkLord>
!3^17*2
19:19
< KarmaBot>
[EvilDarkLord] rolled 3^17*2: 3^17*2 = 258280326.
19:20
<@Derakon>
What's 3^17*2 for?
19:21
< EvilDarkLord>
Node count for an 18-depth tree unless I'm thinking wrong.
19:21
< EvilDarkLord>
Actually, did you check how many nodes you *did* end up with there?
19:21
<@Derakon>
In practice a lot of the branches get truncated, since I only try once to put a child down.
19:22
<@Derakon>
It's not especially easy to count them visually, so no.
19:22
<@Derakon>
I should add that to the output once the tree does get constructed.
19:22
< EvilDarkLord>
It could be useful in predicting just how fast these bastards grow.
19:22
<@Derakon>
Heh.
19:22
<@Derakon>
Running for four minutes so far...
19:23
<@Derakon>
Okay, time to add node counts.
19:23
< EvilDarkLord>
Are you generating it depth-first?
19:23
<@Derakon>
Breadth-first.
19:23
<@Derakon>
Since I want maximal branching at the very early part of the map.
19:23
< EvilDarkLord>
Righto. Maybe add a counter for current depth if you haven't yet?
19:23
<@Derakon>
Depth-first, it's too easy for one branch to circle around the center and cut the others off.
19:24
<@Derakon>
Every node knows its current depth. It doesn't know how many children it has, though.
19:24
< EvilDarkLord>
I meant the output when you're generating these.
19:24
<@Derakon>
But, since I have a global ID that's currently only used for tree nodes, I can just track that. :)
19:24
<@Derakon>
Ahh, good point.
19:26
<@Derakon>
It took 10 seconds to create the tree at depth 21.
19:26
<@Derakon>
And it just gets slower from there.
19:29
<@Derakon>
Depth 28 took 23 seconds...and I still have 22 levels to go.
19:30
<@Derakon>
I'm gonna AFK for a bit, I think. :)
19:42
<@jerith>
MyCatVerbs: Because then I need Readers and Writers around all my Streams.
19:44
<@McMartin>
Also, Readers and Writers are only for character data.
19:44
<@McMartin>
If you're dealing with actual bytes, they are not for you.
19:46
<@jerith>
I'm dealing with bytes, because I have no idea what the data is.
19:47
<@jerith>
I'm just in charge of storing it safely.
19:51
<@McMartin>
Yeah, Readers are Not For That.
19:52
<@jerith>
I'm pretty sure I looked them up ages ago and decided they weren't useful.
19:54
<@McMartin>
(On the other hand, people who use OutputStreams where they want Writers also make me very sad)
19:54
<@McMartin>
(char and byte are *different sized types* in Java)
19:55
<@jerith>
I this case I'm dealing APIs that vary wildly.
19:55
<@McMartin>
Right. This means if they feed you characters they can bloody well specify an encoding as part of the OutputStreamWriter.
19:56
<@jerith>
One wants a byte[], another wants an InputStream and a third gives me an OutputStream.
19:56
<@McMartin>
Those at least *are* guaranteed to be losslessly transformable
19:57
<@jerith>
The one that wants byte[] annoys the hell out of me.
19:57
<@McMartin>
I wonder if it even needs the random access.
19:57
<@jerith>
Because it'll also take a File.
19:57
<@McMartin>
... going with "no", then.
19:58
<@McMartin>
This is a case where you take the InputStream and then have byte[] and File overloads that do the wrapping for you.
19:58
<@McMartin>
And then complain that Java doesn't allow mixins because they'd conceivably be handy here.
19:59
<@jerith>
I build an object that will give you an InputStream or byte[] if you ask and will write to an OutputStream sanely.
19:59
<@McMartin>
Ah, so, you *are* the overload. ;-)
20:00
<@jerith>
But I don't want to have to keep the whole thing in memory or on disk in many cases.
20:00
<@McMartin>
Which is where the guy taking byte[] as an input fails.
20:00
<@jerith>
Yeah.
20:00
<@McMartin>
If it does fit and they're handing you one, ArrayInputStream or whatever it's called should do all your work for you, though.
20:01 * jerith can't even remember which library that is.
20:01 * McMartin never remembers the IS equivalent; StringReader/Writer are the ones that are actually useful and easy to remember.
20:01
<@jerith>
ByteArrayInpuStream.
20:01
<@jerith>
+t
20:01
<@McMartin>
Right.
20:01
<@McMartin>
... java.io, it looks like.
20:02
<@jerith>
Oh, sorry - I was talking about the library I'm talking to that wants a byte[] or File.
20:03
<@McMartin>
Eheh. Right.
20:03 * McMartin is still clearly dealing with lunch instead of #code
20:03
<@jerith>
I may write my own to talk to that API, if we end up using that service at all.
20:04
<@Derakon>
Hah! Tree completed after 1923230 milliseconds!
20:06
<@McMartin>
So, a bit over a half an hour?
20:06
<@Derakon>
Something like that, yeah.
20:06
<@jerith>
About a millifortnight.
20:07
<@Derakon>
The steps after that took ~5 minutes, but now it's creating tunnel features (i.e. mazes) and after that it has to walk the entirety of the perimeter of every non-maze sector to add platforms.
20:07
<@Derakon>
Those two steps will be pretty slow.
20:07
<@Derakon>
Python's VSIZE is 654MB, RSIZE 295MB, RPRVT 287MB.
20:08
<@Derakon>
...that's going to balloon way out of control once I start instantiating block objects. I hope it doesn't die before I get my image.
20:08
<@Derakon>
For that matter, I hope SDL *supports* 18000x13000 surfaces.
20:10 Finale [c0cb88fd@Nightstar-14595.mibbit.com] has joined #code
20:10
< Finale>
Russian Roulette for Linux:
20:10
< Finale>
[ $[ $RANDOM % 6 ] == 0 ] && rm -rf / || echo "Alive"
20:11 * jerith grins.
20:11
<@McMartin>
SDL_Surfaces are just "unsigned char *" with a bunch of range and stride metadata.
20:17
<@Derakon>
Still making mazes...
20:18
<@Derakon>
Python's been running almost an hour now.
20:18
< Finale>
O_o
20:18
< Finale>
that's one big maze.
20:18
< Finale>
Python must have gotten lost.
20:21
<@Derakon>
Mazes done at 3231615!
20:21
<@Derakon>
Time for the wallwalker to kick in.
20:25
<@Derakon>
Augh! :(
20:25
<@Derakon>
pygame.error: Width or height is too large
20:25
<@Derakon>
pygame.error: Width or height is too large
20:25
<@Derakon>
Er, whoops, only meant to paste that once.
20:26
<@Derakon>
After .97 hours, it just quietly gives up the ghost. :\
20:27 gnolam [lenin@Nightstar-1382.A163.priv.bahnhof.se] has quit [Quit: Z?]
20:29
< Finale>
augh
20:40
<@McMartin>
=(
20:40
<@Derakon>
...oh, *what*.
20:41
<@Derakon>
Looks like the max size is 16500 pixels to a side.
20:41
<@Derakon>
16400, rather.
20:41
<@Derakon>
So if I'd gone just a little smaller it'd've worked!
20:41
<@McMartin>
16384, rather?
20:41
<@Derakon>
Could be, could be.
20:41
<@McMartin>
"16 bit range divided by 4"
20:42 * Derakon nods.
20:42
<@McMartin>
I'd cap it at 16000 just to make sure there aren't obnoxious corner cases.
20:43
<@Derakon>
Well, I'm setting the universe size in a global constant, but yeah, when I make the game more configurable I'll have limits on that stuff.
20:44
<@Derakon>
Right, take N+1: 16200x11700.
20:49
< Finale>
voice me please?
20:50 mode/#code [+v Finale] by McMartin
20:50
<+Finale>
thank you.
20:50
<+Finale>
http://mibbit.com/pb/68H4OC
20:52
<@jerith>
Quite.
21:26
<@Derakon>
Awright! After some 41 minutes I have a 6.8MB PNG file!
21:27
<@jerith>
:_)
21:27
<@jerith>
Oops, I broke his nose.
21:28
<@Derakon>
http://derakon.dyndns.org/~chriswei/games/jbrl/mapgen21huge.png
21:28
<+Finale>
red x
21:28
<+Finale>
dude.
21:29
<@Derakon>
Use a better browser.
21:29
<@Derakon>
One that can handle 16200x11700 images.
21:30
<@Derakon>
Heh. If I printed this at 300DPI it'd be four and a half feet long (1.37 meters).
21:44
<+Finale>
I'm at work here. on IE6.
21:45
<@Derakon>
Then I guess you'll just have to wait.
21:45
<@jerith>
:-(
22:03 ToxicFrog [~ToxicFrog@Admin.Nightstar.Net] has quit [Operation timed out]
22:20
<@Reiver>
Derakon: No chance of a slightly smaller version?~
22:21 ToxicFrog [~ToxicFrog@Admin.Nightstar.Net] has joined #code
22:21 mode/#code [+o ToxicFrog] by ChanServ
--- Log closed Fri Mar 27 00:00:02 2009
code logs -> 2009 -> Thu, 26 Mar 2009< code.20090325.log - code.20090327.log >