--- 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 |