code logs -> 2009 -> Sun, 15 Mar 2009< code.20090314.log - code.20090316.log >
--- Log opened Sun Mar 15 00:00:39 2009
00:29
<@Vornicus>
Der: looking at the physics I think your best bet anyway is height 3 jump 5 or something like that.
00:30
<@Derakon>
To keep things looking spacious, I'd like to have a taller jump, actually.
00:30
<@Derakon>
It gets a bit cramped if you can only jump as high as your head.
00:34 Attilla [~The.Attil@Nightstar-9147.cdif.cable.ntl.com] has quit [Connection reset by peer]
00:34 Attilla [~The.Attil@Nightstar-9147.cdif.cable.ntl.com] has joined #code
00:34 mode/#code [+o Attilla] by ChanServ
01:32 Attilla [~The.Attil@Nightstar-9147.cdif.cable.ntl.com] has quit [Quit: <Insert Humorous and/or serious exit message here>]
02:08
<@Derakon>
Mental note: don't go to #gamedev on weekends.
02:08
<@Derakon>
It seems to be filled with Tourette's Syndrome sufferers.
02:12
< GeekSoldier>
Only on weekends?
02:12
<@Derakon>
Weekdays it seems to be more rambling and less insulting.
02:12
<@Derakon>
Not that it's very useful at the best of times anyway.
02:26
<@MyCatVerbs>
Derakon: #gamedev on where?
02:26
<@Derakon>
Freenode.
02:26
<@MyCatVerbs>
Surely not Nightstar? I thought that -none- of the channels on nightstar were full of useless crazy f... ah, freenode, yes.
02:30
<@Derakon>
In any event, if you have ideas for powerups for a sci-fi Metroid/Castlevania-type game, I'm all ears.
02:30
<@Derakon>
Main things I have so far:
02:31
< GeekSoldier>
temporary platform.
02:31
<@Derakon>
Highjump, jetpack, blades (augment basic melee attack), powered boost (increase speed, attack power for a short time), rapid dash (increase runspeed)...
02:32
<@MyCatVerbs>
Every game with a physics engine needs some kind of magic throw button. :)
02:32
<@Derakon>
I should have some kind of missile attack. I like the idea of a grapple rod (you shoot it at things, it latches on, you can push or pull the target/yourself around with it) but I don't know if I can do the interface justice.
02:32
<@Derakon>
You were saying?
02:33
<@MyCatVerbs>
I wasn't saying much. I was just reminiscing about how much fun it is to throw enemies off cliffs, into lava, etc.
02:34
<@Derakon>
Heh.
02:36
<@MyCatVerbs>
Especially when said enemy is normally - without the cheap terrain trick - easily capable of kicking your arse into the stone age. :)
02:37
<@Derakon>
Combat is mainly meant to be incidental to exploration...
02:48
<@Derakon>
Anyway, ideas for more powerups?
02:49
<@Derakon>
I really like Metroid's Varia and Gravity suits but I'm not comfortable just copying them wholesale.
02:49
<@Vornicus>
Power ups: Spelunky's Climbing Gloves.
02:49
< Alek>
I'm shocked at you. remember what your schtick used to be?
02:49
<@Vornicus>
or just plain Power Grip.
02:50
< Alek>
try doing a variation on that.
02:50
<@Derakon>
Alek: hmm?
02:50
< Alek>
time control?
02:50
< GeekSoldier>
a la braid?
02:50
<@Derakon>
Oh gods no.
02:51
<@Vornicus>
Slow-Mo or Freeze would be cool but needs some really wack timestep stuff.
02:51
<@Derakon>
The only game I've seen do time control well as anything other than a plot shtick is Sands of Time.
02:51
<@Derakon>
Otherwise it basically turns into "okay, now we can throw impossible odds at you because you can slow down time to deal with them", which mostly just makes combat tedious.
02:52
< Alek>
make it have to charge up to be used.
02:52
< Alek>
or make you have to deal with an equal amount of FFW for all the slow you use.
02:52
< Alek>
or make you use FFW to charge up. :P
02:53
< Alek>
there's all kinds of variations out there.
02:53
<@Derakon>
Let's just leave time control to be my shtick, and let my protagonists have different ones, hey?
02:53
< Alek>
hehe
02:53
< Alek>
no problem.
02:53
< Alek>
jet blade, huh?
02:53
<@Derakon>
I'm not enthusiastic about bullet time as a gameplay mechanic.
02:53
<@Derakon>
Aye.
02:53
< Alek>
hm. shoot the gloves as boomerangs?
02:54
<@MyCatVerbs>
Derakon: oh, how about some whacky shit? I want magnet boots so I can walk on the ceiling.
02:54
<@Derakon>
...
02:54
<@Vornicus>
Double and triple jump, wall walk, ceiling walk...
02:54
<@Derakon>
First off, shooting gloves: I have other options for ranged combat, and I'd prefer ones that don't disable your melee combat while in use.
02:55
< Alek>
she's got jets. why ceiling walk?
02:55
<@Derakon>
Wall/ceiling-walking can be interesting...my main concern there is that...yes, she can fly, eventually.
02:55
<@Derakon>
And secondarily, I don't want to have the Blaster Master problem.
02:55
< Alek>
?
02:55
< Alek>
what problem?
02:55
<@Derakon>
(Where precise jumping off of corners becomes impossible because you keep trying to walk vertically instead)
02:56
<@MyCatVerbs>
Make it harder to shoot straight while flying than when wall/ceiling walking, and harder to shoot straight while wall/ceiling walking than when on the floor?
02:56
<@Derakon>
I wouldn't worry too much about giving powerups tradeoffs.
02:56
<@Derakon>
The player should be a lot more powerful at the end of the game than at the beginning. That's half the fun.
02:56
<@MyCatVerbs>
How about a UT99 style translocator? Or even without the ability to throw the beacon, just drop it on the floor and be able to return to it.
02:57
<@Derakon>
...now that could be handy if only to cut down on backtracking.
02:58
<@MyCatVerbs>
You'd need to be able to place, like, large numbers of them. I was just thinking about minor hijinks, like dropping a beacon, jumping over an enemy's head, shooting them in the face then offhand teleporting back and shooting them in the back of the head.
02:58
<@McMartin>
Deadly dervish dash. >_>
02:58
<@MyCatVerbs>
Also, bouncy grenades.
02:58 * Derakon facepalms.
02:58
<@McMartin>
(More seriously, "kick boots", "dash blades" that let you damage enemies by dashing/sliding through them)
02:58
<@MyCatVerbs>
A tazer that stuns enemies, and causes any attack that hits them in the *back* while stunned to do thirty times normal damage.
02:58
<@McMartin>
If combat is incidental, a "get out of my way" powerup is awesome for removing tedium.
02:59 * Derakon nods to McM.
02:59
<@Derakon>
Keep in mind, MCV, that the vast majority of enemies will be incidental wildlife.
02:59
<@Derakon>
They'll attack you, but they'll go down in 2-5 hits.
02:59
<@MyCatVerbs>
You could provide the Nethack approach to avoiding combat - wand of teleport. Sends mortal enemies to random points on the current level.
02:59
<@McMartin>
And one that lets you do so *while* going as fast as feasible is ideal.
02:59
<@Vornicus>
MCV's latest thing would be great for a... hell, what do you call it, a brawler with controls like a figher.
02:59
< Alek>
"Repellent" weapon. that takes a while to charge.
02:59
< Alek>
or that has limited charges.
02:59
<@McMartin>
Vorn: "Modern brawler"
02:59
< Alek>
or ones you have to pay for.
03:00
<@Vornicus>
McM: thank you.
03:00
<@McMartin>
If DMC gets to be a brawler...
03:00
<@Vornicus>
I think the most recent brawler I've ever played is Double Dragon 3. So that gives you some idea on my knowledge of the genre.
03:00
<@MyCatVerbs>
Vornicus: tazers like that would be so funny in multiplayer Streets Of Rage style games, heehee. :D
03:00
< Alek>
got any concept art of the character?
03:01 Rhamphoryncus [~rhamph@Nightstar-7184.ed.shawcable.net] has joined #code
03:01
<@Derakon>
Nothing that's not horribly out of date.
03:01
< Alek>
anything at all will do.
03:01
< Alek>
:P
03:01
<@MyCatVerbs>
While I'm ripping off current games, how about an antigravity bomb that lasts, say, five seconds.
03:01 * Alek blinks.
03:01
< Alek>
where's THAT in?
03:01
<@MyCatVerbs>
Provided you don't leave the ground, it'd have no effect on *you*.
03:02
<@Derakon>
Horribly, horribly out-of-date. http://derakon.dyndns.org/~chriswei/photos/modeling/walk9.gif
03:02
<@MyCatVerbs>
But if you jump while in the field, it'll accelerate you upwards pretty fast.
03:02
<@McMartin>
Vorn: Devil May Cry 3 Special Edition is basically both the first and last word.
03:02
< Alek>
so, it's 3d?
03:02
<@MyCatVerbs>
Plus enemies just get pushed into the air, helpless.
03:02
<@Derakon>
I'm leaning back towards lightweight-looking rigid armor now.
03:02
<@Derakon>
3D graphics rendered to 2D to use as sprites.
03:02
<@McMartin>
2d, 3d prerenders, IIRC.
03:02
< Alek>
ok
03:02
< Alek>
hmm.
03:02
<@McMartin>
a la Fusillade~
03:02
<@MyCatVerbs>
Alek: Mass Effect's "Lift" biotic. Using it on purpose to propel oneself isn't in ME, though. :)
03:02
<@Derakon>
(It's so weird having someone who doesn't know the history of all of my projects in this channel...)
03:02
< Alek>
MCV: haven't played it. yet.
03:03
< Alek>
hmm.
03:03
<@Derakon>
Incidentally, Vorn, if you want a semi-modern brawler, you can check out Alien Vs. Predator for the arcade (via MAME).
03:03
< Alek>
blade extensions? maybe variable?
03:03
<@Derakon>
The blades are an extension already.
03:03
<@Derakon>
Since you don't start with them, or the jetpack for that matter.
03:03
< Alek>
I was thinking something variable-sword-style.
03:03
<@MyCatVerbs>
Alek: when you get a ship, don't do the story missions right away. Explore the rest of the universe and get up to roughly l20 to l30 first, otherwise some of the story missions are just vicious.
03:03
<@Derakon>
Variable blade extensions will be necessary for kicks.
03:04
<@MyCatVerbs>
Alek: also, the Mako rules. 70 degree slopes? No problem! =D
03:04
<@MyCatVerbs>
Alek: other than that, I am sayink nozhink. People who drop spoilers should be shot. :)
03:05
<@McMartin>
My preferred spoiler for DMC3 is "It is possible to read the game as the protagonist avenging the inappropriate demise of his pizza breakfast."
03:07 * MyCatVerbs pew pew pew's at McMartin with a nerf gun, but still thinks that makes the game sound awesome.
03:07
<@McMartin>
It is awesome.
03:08
<@McMartin>
It's probably not the best brawler out there. It's certainly not the hardest or the easiest (though it has an *excellent* difficulty ramp and is easy to tune for challenges or easing off)
03:08
<@McMartin>
It is, however, beyond question the most awesome.
03:08
<@Derakon>
Idly, another map: http://derakon.dyndns.org/~chriswei/games/jbrl/accessibility/result7.png
03:08
<@McMartin>
The last time I demoed bits of the game to friends, the comment was, again and again...
03:08
<@McMartin>
"That was so unnecessary."
03:08
<@Derakon>
Hee.
03:08
<@Derakon>
I usually end up saying that about Soul Calibur.
03:09
<@MyCatVerbs>
Derakon: these are getting noticably prettier.
03:09
<@McMartin>
DMC actually grades you on unnecessariness.
03:09
<@Vornicus>
Der: turn it up!
03:09
<@Derakon>
It's not the prettiness I object to. It's the caliburs.
03:09
<@Derakon>
Vorn: turn what up now?
03:10
<@Vornicus>
Also, yes, those platforms look appropriate.
03:10
<@Vornicus>
Der: the number of corridors.
03:10
<@MyCatVerbs>
McMartin: what? You get bonuses for being especially brutal and/or stylish?
03:10
<@Derakon>
Ahh.
03:10
<@McMartin>
"Stylish" is the in-game term.
03:10
<@Derakon>
There's not really any brulatily to the game, actually.
03:10
<@McMartin>
It boils down to a function of maxing DPS *and* maxing the number of different moves you did in the past X amount of time *and* how much damage you aren't taking.
03:10
<@Derakon>
You get bonuses for racking up lengthy, non-repetitive combos, th ough.
03:10
<@McMartin>
And yeah, over half the enemies dissolve into sand.
03:11
<@McMartin>
Also, one of your weapons is an electric guitar.
03:11
<@McMartin>
You can crush your foes with the power of ROCK
03:11
<@Derakon>
Vorn: http://derakon.dyndns.org/~chriswei/games/jbrl/accessibility/result7b.png
03:11
<@McMartin>
... and also bash them with it.
03:11
<@Derakon>
A simple matter of bringing the minimum tunnel length down~
03:12
<@MyCatVerbs>
McMartin: this sounds incredible. Are the other DMC games like this too?
03:12
<@Derakon>
...mental note: making the minimum tunnel length shorter than the minimum tunnel width causes...if not an infinite loop, then at least it's hitting max retries on every single tunnel segment.
03:12
<@McMartin>
To an extent.
03:12
<@Derakon>
DMC2 is crap. We do not speak of it.
03:12
<@McMartin>
But 3 is far and away the most extreme and the most accessible.
03:12
<@Derakon>
DMC1 is an RE outgrowth, and is thus much more atmospheric.
03:13
<@McMartin>
DMC1 is much less forgiving to non-expert players, as well
03:13
<@Derakon>
This is true.
03:13
<@McMartin>
Since it's strictly level-based and anything you miss is Gone Forever.
03:13
<@Derakon>
You will die to the first boss many times.
03:13
<@MyCatVerbs>
Oooh errr.
03:13
<@McMartin>
Furthermore, if you race too fast through early levels you will find yourself without the money-equivalent to buy the moves you need later.
03:13
<@Derakon>
I wouldn't go that far.
03:13
<@Derakon>
You can always farm for orbs.
03:14
<@McMartin>
Farming is *possible* in DMC1 but it requires some abuse of the interface, and I didn't know you could do it until after I'd given up on it twice.
03:14 * Derakon nods.
03:14
<@McMartin>
In DMC3 you can revisit any level you've cleared at will.
03:14
<@McMartin>
This is Just Better.
03:14
<@Derakon>
That does kind of break the power progression, though.
03:14 * MyCatVerbs tends to play most games in a completionist manner anyway. >_>
03:14
<@Derakon>
In DMC1 you're still buying powerups in the last stages.
03:14
<@McMartin>
That's one reason it's more accessible~
03:14
<@Derakon>
In DMC3...as soon as you get a weapon you can get all the powerups for it.
03:15
<@McMartin>
Not quite true
03:15
<@McMartin>
You have to level up your styles, and if you're playing normally that will take you the whole game.
03:15
<@McMartin>
And then some - they carry over.
03:15
<@McMartin>
DMC3 is intended to be replayed.
03:15
<@Derakon>
Forgot about the styles.
03:15
<@McMartin>
Also, DMC3SE is (a) cheaper, (b) includes additional game modes, and (c) includes additional difficulty levels on both sides.
03:16
<@McMartin>
DMC3 North American Edition is actually harder than the Japanese one.
03:16
<@Derakon>
Whee Bloody Palace~
03:16
<@McMartin>
More Whee Playing As The Antagonist~
03:16
<@Derakon>
Virgil Is My Bishie?
03:16
<@McMartin>
Vergil is, to be precise, Christina's bishie, and she is insanely good with him.
03:16
<@Derakon>
(Dieu merci he doesn't have long, flowing hair~)
03:16
<@McMartin>
(No, short and spiky)
03:17
<@McMartin>
(He's Dante without the slovenliness)
03:18 * Derakon eyes result7b. "Still some inaccessible places here, all at branch points. I think I may need to do some kind of 'put a circle down, if it doesn't hit anything, put a platform in the circle' type of algorithm."
03:18
<@Vornicus>
Der: looks almost playable.
03:18
<@McMartin>
Anyway, DMC3SE has all difficulty modes from both JP and NA, as well as a Cut The Bullshit mode where you don't have to buy your continues.
03:18
<@Derakon>
(Branch points include any place where the tree lines bend, BTW, even if they don't split)
03:18
<@Derakon>
McM: more specifically, where your continues become full health restores and what used to be continues are now unlimited.
03:19
<@McMartin>
The full health restores cost 10x as much, though.
03:19
<@McMartin>
But yes
03:19
<@Derakon>
DMC3 will pretty much never startle you, though, and is not very atmospheric at all. I kinda miss that aspect of DMC1.
03:19
<@McMartin>
I loathe the Shit Jumps Through Windows genre~
03:19 * Derakon <3 Shadows. And Frosts.
03:19
<@McMartin>
Unless it's me.
03:19
<@McMartin>
I gave up on Shadows.
03:20
<@McMartin>
I couldn't clear Stage 4 because you fight two of them at once.
03:20
<@McMartin>
And I was completely, utterly incapable of dealing with this.
03:20
<@McMartin>
After beating DMC3 NA on Hard.
03:20
<@Derakon>
...no, you don't.
03:20
<@Derakon>
Stage 4 is an utter bastard, yes.
03:20
<@Derakon>
But it's Phantom refight -> Shadow -> short level segment -> Nelo Angelo.
03:20
<@Derakon>
There's only one Shadow.
03:20
<@MyCatVerbs>
There seems to be a relative paucity of games in which You Jump Through Windows At Shit.
03:20
<@McMartin>
OK, then I couldn't beat one~
03:20
<@Vornicus>
Where is "There are many like it, but this one is yours" from?
03:21
<@McMartin>
Full Metal Jacket.
03:21
<@Vornicus>
aha
03:21
<@MyCatVerbs>
Vornicus: marines. Talking about their rifles.
03:22
<@McMartin>
Basically, they can instakill you when they die, and I was completely incapable of reading that move as compared to the "it can now take actual damage", and the interaction between ranged and melee was utter shit.
03:22
<@MyCatVerbs>
Gah. What's with flash storage manufacturers and failing to give hard throughput numbers?
03:22
<@McMartin>
Flash throughput is insanely difficult to measure accurately.
03:22
<@Derakon>
I guess DMC1's big problem is that it didn't figure out how to make combat fun at all difficulty levels, so it settled for making it fun for experienced players and frustrating for newbies.
03:23
<@MyCatVerbs>
McMartin: really? Why so?
03:23
<@McMartin>
Well, its problem was that it was an RE reskin
03:23
<@McMartin>
And RE combat is a punishment.
03:23
<@MyCatVerbs>
RE1's certainly was.
03:23
<@McMartin>
In DMC, combat is supposed to be the reward.
03:23
<@Derakon>
And it is!
03:23
<@Derakon>
DMC combat is legitemately fun.
03:23
<@Derakon>
If you're good at it.
03:23
<@McMartin>
That's true for 2 and 3.
03:23
<@McMartin>
3 will punish you quite hard if you do it wrong.
03:24 * MyCatVerbs fails to understand the appeal of the first few RE games. Deliberately fucked camera angles, useless controls, etc. Why would you *want* that?
03:24
<@McMartin>
1 requires a much larger TV than I had, with better color contrast, to be able to read your opponents at all.
03:24
<@McMartin>
1 also goes out of its way to *extend* punishments.
03:24
<@McMartin>
2, 3, and 4 correctly punish errors instantly and get you back in the game.
03:25
<@Derakon>
...extend punishments?
03:25
<@MyCatVerbs>
McMartin: I mean I think I'd probably be fine with, oh, sequential read and write throughputs, and random-access read. Are those really so hard to measure?
03:25
<@McMartin>
MCV: No, but they don't measure performance.
03:25
<@McMartin>
OS caching quirks can produce order of magnitude changes in cost.
03:25 * McMartin 's company has solutions that involve running VMs off of USBs and hits this a lot.
03:25
<@McMartin>
As opposed to "Now sit on your hands while I run you through a fucking 12 second combo where we mock you for not reading that move"
03:26
<@ToxicFrog>
This reminds me, I should finish DMC3.
03:26
<@McMartin>
1 punishes your for failure, but not in the standard fighting game sense of punishment.
03:26
<@Derakon>
Outside of fatalities, the worst is a few seconds~
03:26
<@Derakon>
But I'm picking nits.
03:27
<@McMartin>
No, there are bits in the midgame where missing an attack forces you to run an entire punishment level.
03:27
<@MyCatVerbs>
McMartin: bah. Tune the operating system to do no caching whatsoever, or just test entirely without the operating system.
03:27
<@McMartin>
MCV: Now you have a meaningless number for actual use.
03:27
<@Derakon>
My big problem with DMC3 is that the enemies are not legitemately interesting to fight. They're either punching bags or you dodge them until they leave themselves open and then you have N seconds to beat on them before they start attacking again.
03:28
<@MyCatVerbs>
McMartin: no. I now have an accurate number that tells me what the maximum rate that the filesystem cache can possibly fill itself from cold is.
03:28
<@Derakon>
Whereas in DMC1 it felt much more like an actual fight instead of just exchanging blows.
03:28
<@McMartin>
That was not my experience.
03:28
<@McMartin>
MCV: That turns out to be a useless number.
03:29
<@McMartin>
Also, if you do the wrong kind of write, you can end up doing four times the work or more.
03:29
<@MyCatVerbs>
McMartin: not for cold-booting, or for when your OS turns out to Fail Hard at caching.
03:29
<@McMartin>
If it fails hard - and that can just mean "the block size on the disk and in the cache are different", then you'll have "read 16k, write 16k" for every 2k block you write.
03:29
<@McMartin>
And sometimes 32k, if it crosses a boundary somehow.
03:30
<@McMartin>
The "cold cache" numbers aren't what they're trying to optimize, because they suck and they aren't normal use.
03:31
<@McMartin>
Derakon: My objection to DMC1 is that the "you dodge them" part was functionally impossible for me.
03:31
<@MyCatVerbs>
McMartin: I believe I'm only interested in sequential writes.
03:31
<@Derakon>
Ahh, well.
03:31
<@Derakon>
I will grant that Dante's not exactly very agile in DMC1.
03:31
<@McMartin>
Either the cues were too subtle, or I was in front of them, or the camera hated me, or the controls were RE-sticky.
03:32
<@MyCatVerbs>
McMartin: and that random read, potentially over much larger areas than I can afford to cover with sheer quantity of RAM, might actually be important to me.
03:32
<@McMartin>
Yeah.
03:32
<@McMartin>
MCV: The variance on Random Read is utterly enormous.
03:33
<@MyCatVerbs>
McMartin: at the raw block layer, without the filesystem cache?
03:33
<@MyCatVerbs>
Or with a filesystem cache that rivals the size of the flash stick itself?
03:33
<@McMartin>
Our most important use case is "booting Windows off of it"
03:34
<@McMartin>
With the same install on the same disk on different machines with numerically identical specs we've seen factor of 4 or worse variance.
03:34
<@MyCatVerbs>
McMartin: ouch! Damn. Is there no smoothing that?
03:35
<@McMartin>
There is. It's one of our main competitive advantages. =)
03:35
<@McMartin>
The public name used to be "USB Sentinel" but someone apparently had that name already, so now it isn't officially anything but hides under the surface.
03:36
<@ToxicFrog>
As far as DMC1 goes, the only issue I really had was the Capcom Camera Angles of Doom
03:36
< Tarinaky>
Does anyone know a guide to the Windows registry?
03:36
< Tarinaky>
*a good guide
03:36
<@ToxicFrog>
Not I.
03:37
<@McMartin>
Have you tried searching MSDN?
03:37
<@McMartin>
MSDN's tutorials and references are pretty good IME
03:37
< Tarinaky>
I have not. I'll google it right away.
03:37
<@McMartin>
Its got its own search too, but both work.
03:37
<@McMartin>
(MSDN being their official documentation of basically everything)
03:40
< Tarinaky>
Thanks.
03:40
<@McMartin>
I mostly use it for system calls and tool reference, but I bet there's registry stuff too
03:40
<@McMartin>
If not, some of their core developers run tech blogs too
03:42 * Derakon eyes this page: http://www.girlgeniusonline.com/comic.php?date=20051209
03:43
<@Derakon>
Er, mischan.
03:43
<@McMartin>
Anyway. DMC1 and DMC3 are both very good brawlers.
03:44
<@McMartin>
3 is, however, far more refined, imo, and you can tell that the designers have had a lot of practice.
03:44
<@McMartin>
And for all the crap 2 takes, I would like to state in its defense that it lets you hover Yosemite-Sam style.
03:44
<@Derakon>
Heh.
03:45
<@McMartin>
DMC4 is decent, and tends to get ranked around whichever one whoever's talking is ranking second.
03:46
<@Derakon>
I still say, speaking as someone who has done fairly well in both games, that several DMC3 enemies are unspeakably annoying to fight. Enigmas, for example.
03:46
<@McMartin>
However, it requires a PS3.
03:46
<@McMartin>
Are those the whirling arrow dudes?
03:46
<@Derakon>
Or a 360, yes?
03:46
<@Derakon>
Yeah.
03:46
<@McMartin>
I love those guys~
03:46
<@McMartin>
They're the perfect excuse for rolls
03:46
<@McMartin>
Or the Air Trick
03:46
<@Derakon>
Enigmas, the fallen angel guys, the flying jellyfish...all very annoying enemies.
03:47
<@McMartin>
The fallen angels were very annoying because they could clip through walls and you can't.
03:47
<@McMartin>
And they would to hide back and regenerate their shields.
03:47
<@Derakon>
Yes.
03:47
<@Derakon>
And Dante's aerial combat is not the greatest.
03:47
< Tarinaky>
Hmm... I was hoping for better and fuller documentation than that.
03:47
<@McMartin>
Oh well.
03:47
<@McMartin>
I'd start googling more generally, I guess. =/
03:48
<@McMartin>
Derakon: True - though Air Trick helps with that a bit.
03:48
<@McMartin>
Since you can hammer a lot of enemies into the ground with it.
03:48
<@McMartin>
Air Trick + Helm Breaker
03:48
< Tarinaky>
It was more substantial than "Don't" but I was rather hoping for a lengthy section in more detail than what I'd managed to work just by looking at it one afternoon.
03:49
<@ToxicFrog>
(isn't there a PC version of DMC4?)
03:49
<@ToxicFrog>
Tarinaky: what are you trying to do?
03:50
<@Derakon>
There is for DMC3.
03:50
<@Derakon>
I don't think so for 4.
03:50
< Tarinaky>
Just learn all I can on the subject really.
03:50 * Tarinaky doesn't even use Windows.
03:51
<@ToxicFrog>
Derakon: skeletor disagrees, and I'm pretty sure I recall seeing it in stores, so...
03:51
< Tarinaky>
It's just whenever I troubleshoot a sick Windows box the answer is normally in deleting one or more keys in the registry.
03:52
<@Derakon>
TF: Impossible! I am never wrong~
03:52
<@Derakon>
s/Impossible/Inconceivable/
03:52
<@ToxicFrog>
Don't want to play it until I finish 3, though.
03:52
<@ToxicFrog>
I tend to get to the Obligatory Womb Level and then lose my will to play.
03:52
<@McMartin>
That particular one ends Gradius Style.
03:53
<@ToxicFrog>
Yes.
03:53
<@ToxicFrog>
I have in fact played it through once.
03:53
<@ToxicFrog>
I just don't like that level >.<
03:59
<@gnolam>
Derakon: happy to be of help. :)
04:00 * gnolam reads The Backscroll of Epic Destiny!
04:00
<@Derakon>
Heh.
04:07
<@gnolam>
(Serves me right for coming home at 0500 I guess)
04:09 * McMartin sees dead processes
04:15
<@Derakon>
To improve navigability at branches in the tree, I want to detect large open areas at those branches and put platforms in them. How would you all suggest doing this?
04:16 * gnolam ponders redirects to Goatse.cx.
04:17
<@Derakon>
I'd really rather not.
04:26
<@McMartin>
Floodfills?
04:27
<@Derakon>
Explicate?
04:28
<@McMartin>
If you can go distance X in all directions from point Y, it's too open.
04:28
<@Derakon>
Ahh, like the "plop a circle in the middle" approach I'm trying at the moment.
04:28
<@Derakon>
Which has issues if there's a large open space that isn't centered on the branchpoint, I'll grant.
04:29
<@McMartin>
You could double the necessary distance and start at a wall.
04:29
<@McMartin>
ENGINEER IS CREDIT TO TEAM
04:29
<@Derakon>
But then I have to deal with a different definition of "in all directions".
04:29 * Derakon blinks at McM.
04:30
<@McMartin>
(In office, waiting for server rev, wishing I were playing TF2)
04:30
<@Derakon>
Ahh.
04:31
<@Derakon>
...it would help if my collideCircle function returns 1 on collision and 0 on non, instead of the other way around.
04:33 * gnolam hugs his client, who provided his entire team with the Orange Box.
04:35
<@gnolam>
If only he'd actually responded to e-mails, phone calls or any other kind of attempt at communication the last month, he would've been the perfect client.
04:35
<@McMartin>
Hee
04:35
<@McMartin>
They're too busy pushing little carts.
04:37
< Alek>
:O
04:37
< Alek>
...
04:37 * Alek EYES gnolam.
04:37
<@gnolam>
Hmm?
04:37
< Alek>
you... orange... murfle...*ded*
04:38
<@gnolam>
Also: pastries.
04:39
<@McMartin>
Heh
04:39
<@McMartin>
That's less uncommon~
04:39
<@McMartin>
So, beaten Portal yet?
04:39 gnolam [lenin@Nightstar-1382.A163.priv.bahnhof.se] has quit [Quit: I hear the sun comes up in normal countries around now.]
04:40 * Derakon eyes http://derakon.dyndns.org/~chriswei/games/jbrl/accessibility/result8.png
04:41
<@Derakon>
Yeah, I'm gonna have to displace the circles from the branchpoints.
04:41
<@Derakon>
Most of the open areas are caused by two tree limbs at close angles combining their spacefill automata.
04:41
<@Derakon>
...good gravy, I sound like something out of Star Trek.
04:41
< Alek>
time to invent the warp drive.
04:41
<@Derakon>
Anyway, upshot is that the open space is usually not centered on the branch point.
04:42
< Alek>
or at least the holodeck, transporter, or replicator. :P
04:52
<@Derakon>
Never underestimate the value of visual debugging. http://derakon.dyndns.org/~chriswei/games/jbrl/accessibility/result8b.png
04:53
<@ToxicFrog>
Derakon: thought.
04:53
<@ToxicFrog>
Expand the sphere until it can't expand anymore.
04:53
<@Derakon>
I'm working on th at.
04:54
<@Derakon>
s/th at/that/
04:54
<@ToxicFrog>
That is to say: when it hits a wall, move it away from the wall and keep expanding.
04:54
<@Derakon>
Yeah.
04:54
<@Derakon>
My jitter function isn't working right, hence the visual debugging.
05:02 Syloqs-AFH [Syloq@Admin.Nightstar.Net] has quit [Connection reset by peer]
05:03
<@Derakon>
Much better. http://derakon.dyndns.org/~chriswei/games/jbrl/accessibility/result8c.png
05:03
<@Derakon>
Still not perfect, but much better.
05:04
<@Derakon>
Hm. Three points is always enough to pin a circle of fixed size, right?
05:04
<@Derakon>
Yes, because three points define a circle.
05:04
<@Derakon>
Okay, so I don't need to worry about this stuff recursing indefinitely~
05:06
<@ToxicFrog>
...what's the third point for?
05:07
<@Vornicus>
TF: Three points on the edge of the circle define a circle.
05:07
<@Derakon>
Hmm...that's only a marginal improvement. http://derakon.dyndns.org/~chriswei/games/jbrl/accessibility/result8d.png
05:07
<@Derakon>
Main problem being that it's very easy for two of the points to be nearly adjacent.
05:10
< Rhamphoryncus>
Derakon: what's that map generation for anyway?
05:11
<@Derakon>
A game project I'm working on.
05:11
<@Derakon>
Procedurally-generated exploration-driven platforming.
05:11
< Rhamphoryncus>
platforming?
05:11
<@Derakon>
Metroid/Castlevania-style gameplay.
05:11
<@Derakon>
Run and jump.
05:11
< Rhamphoryncus>
ahh, side scrolling?
05:11
<@Derakon>
Yeah.
05:12
<@Derakon>
Reducing the radius size if I hit a two-point collision gives the circles enough slipperiness to greatly improve their quality...but I hit an infinite loop with one of the circles. Time to institute a maximum retry counter. http://derakon.dyndns.org/~chriswei/games/jbrl/accessibility/result8e.png
05:14
<@Vornicus>
What circle loops?
05:15
<@McMartin>
I dig
05:15
<@Derakon>
Take the NE passage from the center, then go right, then "left" (i.e. don't go down).
05:16
<@Vornicus>
so the second one from the right, all told.
05:16
<@ToxicFrog>
Vornicus: oh.
05:16
<@ToxicFrog>
I was thinking center point + any edge point.
05:16
<@Derakon>
Vorn: yeah, that's the one.
05:17
<@Derakon>
I think the problem stems from the two collision points being almost opposite each other.
05:17
<@Derakon>
Since another circle under similar circumstances took quite a while to calm down.
05:20
<@Derakon>
Hmm...this works well in most situations, but check out that circle just NW of center.
05:20
<@Vornicus>
Seem to be stuck in the little area rather than the real branch.
05:21
<@Derakon>
Yeah.
05:21
<@Derakon>
BTW, net result of all these circles: http://derakon.dyndns.org/~chriswei/games/jbrl/accessibility/result8f.png
05:21
<@McMartin>
The one on the top center looks inaccessible
05:21
<@McMartin>
What kind of horiz do these jumps get you?
05:22
<@Derakon>
A decent amount, I'd guess.
05:22
<@Vornicus>
The recent estimate is that it goes 6 across and 3 up.
05:22
<@Derakon>
My original estimates on jump size were badly off, I now realize.
05:22
<@Vornicus>
Well, the last one I saw.
05:22
<@Derakon>
Keep in mind these blocks are 10x10px and the screen is 900x650.
05:22
<@Derakon>
Vorn: yeah, I've revised since then.
05:22
<@Derakon>
Effectively, these maps are a bit scaled down from what the actual game will be like.
05:23
<@Vornicus>
Spelunky does about, uh, 1.2 up and I think you can get something like 8 or 9 across.
05:23
<@Derakon>
...so, actually, I guess 6x3 is still vaguely plausible, assuming the scaling factor holds. But in actuality, you should be able to jump across most of the width of the screen.
05:23
<@Derakon>
Spelunky's protagonist is also 1 block high, I'll note.
05:23
<@Derakon>
And doesn't have mechanical assist~
05:24
<@Derakon>
Anyway, McM, for a more easy-to-gauge measure, assume the player should be able to jump half the width of a horizontal tunnel.
05:24
<@Derakon>
So that dip in the room in the top-center should be exitable.
05:25
<@Derakon>
However, you wouldn't be able to reach there because there's no platforms to get into that branch from the NW tunnel.
05:26
< Alek>
ahahaha
05:26
< Alek>
updating 4 games at once.
05:26 * Alek plays Minesweeper.
05:38
<@Vornicus>
Der: it seems to me that the circle thing is mostly designed for placing platforms after you've placed other platforms; what happens if you defer the circle check until you've run your usual platform placement search?
05:38
<@Derakon>
More of the circles would be too small to be worth adding platforms for. *shrug*
05:39
<@Derakon>
There's rules to keep platforms from being too close together, so either way I get a more or less equivalent density, but I think the platforms I place this way are more likely to be useful than the ones made by the wallwalker algorithm.
05:40
<@Derakon>
Incidentally, just for fun: http://derakon.dyndns.org/~chriswei/games/jbrl/accessibility/03.gif
05:41
<@Derakon>
I apologize for the size, both in resolution and in megabytes.
06:27 * Derakon fixes that "circle stuck in the wrong place" by displacing the initial circle center based on the direction of the child nodes.
06:27
<@Derakon>
I'm getting really a rather nice map now!
06:27 Rhamphoryncus [~rhamph@Nightstar-7184.ed.shawcable.net] has quit [Ping Timeout]
06:42 Rhamphoryncus [~rhamph@Nightstar-7184.ed.shawcable.net] has joined #code
06:44
<@Derakon>
Hmm...there is a practical limit to how far I can push the resolution.
06:44
<@Derakon>
These circles get really expensive as the density of the grid increases.
06:44
<@Derakon>
Mostly because I'm iterating over every space in the circle's bounding box to see if it contains a block.
06:45
<@Vornicus>
that's amazing.
06:45
<@Derakon>
Hmm?
06:45
<@Vornicus>
the thing that you made.
06:45
<@Vornicus>
the gif.
06:45
<@Derakon>
Ahh.
06:45
<@Derakon>
Thanks.
06:46
<@Vornicus>
To improve circle growing speed you may wish to figure out an efficient diff and only examine those locations that are new.
06:47
<@Derakon>
Hm...actually, cost of circles scales with width of tunnel.
06:49 * Derakon makes a map that is four times larger than the maps he's been showing, but with otherwise identical parameters (for tunnel width and length, etc.).
06:50
<@Derakon>
24 seconds to do the spacefilling...and it's been at least a minute now running the circles.
06:50
<@Derakon>
Because there's just that many more intersections.
06:51
<@Derakon>
I would be completely and utterly lost if I could only see...let's see, 1/36th of the map at any one...no, that can't be right. 1/1296th?
06:51
<@Derakon>
No, it's 1/36th. Hunh.
06:51
<@Derakon>
Sure looks a lot bigger than that.
06:52
<@Derakon>
Anyway, 238.5 seconds to make a 540x390-tile map.
06:52
<@Vornicus>
show usssss
06:52
<@Derakon>
Circles: http://derakon.dyndns.org/~chriswei/games/jbrl/accessibility/result9.png
06:53
<@Derakon>
Actual map: http://derakon.dyndns.org/~chriswei/games/jbrl/accessibility/result9b.png
06:54
<@Derakon>
Hmm...yeah, at 100% zoom these tunnels don't look very big at all. I think I may need to just upscale everything by an integer factor when I move from the mapgen grid to actual blocks.
06:54
<@Vornicus>
I /love/ it.
06:55
<@Derakon>
Hmm...yeah, I think I need about a 3x zoom to get from the actual scale to the scale I want for gameplay.
06:55
<@Derakon>
I suppose I could just literally do a 3x scale and go for the pixelated look...but enh.
06:56
<@Vornicus>
These are 10px blocks right?
06:56
<@Derakon>
Yeah.
06:56
<@Derakon>
Might want to switch to 8px just for powers-of-2 superstitions~
06:56
<@Vornicus>
on a modern system I would not go with anything less than 64x64 for your textures unless you want pixellation.
06:56
<@Vornicus>
(OpenGL only works in powers of 2 for textures /anyway/, so)
06:56
<@Derakon>
(SDL is all software rendering so no biggy there)
06:57
<@Derakon>
Anyway, four minutes to generate that map...and it's hugely complex in gross structure, doesn't have any of the game logic behind it, and is missing any specially-coded features.
06:58
<@Derakon>
Good gravy, there must be over 50 dead ends.
06:58
<@Derakon>
Hmm...over 80.
07:00
<@ToxicFrog>
Damn.
07:00
<@ToxicFrog>
Are there any plans to implement different terrain types, like straight halls?
07:00
<@ToxicFrog>
Or is it all caves, all the time?
07:00
<@ToxicFrog>
(and in either case, density tuning?)
07:01
<@Vornicus>
So far, scanning two widths worth of map, I've found 42.
07:01
<@Derakon>
I do plan to try to vary the terrain a bit.
07:01
<@Derakon>
As for tuning density, that's mostly a matter of changing the minimum tunnel length.
07:01
<@Derakon>
Longer tunnels preclude filling in internal gaps as easily.
07:02
<@Vornicus>
83.
07:04
<@Derakon>
Here's a map with identical parameters and see as the previous one, but doubled minimum tunnel length: http://derakon.dyndns.org/~chriswei/games/jbrl/accessibility/result9c.png
07:04
<@Derakon>
Took 84 seconds to make.
07:05
<@Vornicus>
This one feels more interesting.
07:05
<@Derakon>
It's not nearly so labyrinthine.
07:06
<@Derakon>
The longest path I can find out of the center is only 7 segments.
07:06
<@Derakon>
Whereas I'm nearly certain the previous one hit the maximum of 12.
07:06
<@Vornicus>
As far as the game goes: I highly recommend occluding paths that are not near the current one.
07:06
<@Derakon>
Oh, yes.
07:06
<@Derakon>
I'll need to do some LOS stuff.
07:12 Derakon is now known as Derakon[AFK]
07:23 Vornicus [~vorn@Admin.Nightstar.Net] has quit [Quit: ]
08:09 Rhamphoryncus [~rhamph@Nightstar-7184.ed.shawcable.net] has quit [Quit: Rhamphoryncus]
09:35 * jerith considers the writing of a sieve in Erlang.
10:13 gnolam [lenin@Nightstar-1382.A163.priv.bahnhof.se] has joined #Code
10:13 mode/#code [+o gnolam] by ChanServ
10:32 Attilla [~The.Attil@Nightstar-9147.cdif.cable.ntl.com] has joined #code
10:32 mode/#code [+o Attilla] by ChanServ
14:03 Attilla [~The.Attil@Nightstar-9147.cdif.cable.ntl.com] has quit [Ping Timeout]
14:05 Attilla [~The.Attil@Nightstar-9147.cdif.cable.ntl.com] has joined #code
14:05 mode/#code [+o Attilla] by ChanServ
14:41 Molgorn [~moltare@Nightstar-16368.plus.com] has joined #code
14:52
< Molgorn>
hm
14:53
< Molgorn>
When I'm doing INSERT INTO in mysql, what's the proper format of a date value? I've tried DD-MM-YYYY, "DD-MM-YYYY", DD/MM/YYYY, "DD/MM/YYYY" and the American version of each
14:53
< Molgorn>
keeps coming up null
14:54
<@jerith>
Molgorn: YYYY-MM-DD perhaps?
14:55
<@jerith>
http://dev.mysql.com/doc/refman/5.1/en/date-and-time-types.html
14:55
< Molgorn>
Tried those too ¬¬
14:56
< Molgorn>
ah, YYYYMMDD works
14:56
<@jerith>
Erm. I'm afraid I can't help you, then.
15:04 Syloqs_AFH [Syloq@Admin.Nightstar.Net] has joined #code
15:05 * Molgorn does the "Glee It Is Working" dance
15:05 Syloqs_AFH is now known as Syloqs-AFH
15:13 KBot [AnnoDomini@Nightstar-29305.neoplus.adsl.tpnet.pl] has joined #Code
15:14 AnnoDomini [~farkoff@Nightstar-29557.neoplus.adsl.tpnet.pl] has quit [Ping Timeout]
15:15 KarmaBot [AnnoDomini@Nightstar-29557.neoplus.adsl.tpnet.pl] has quit [Ping Timeout]
15:16 KBot is now known as KarmaBot
15:18 AnnoDomini [~farkoff@Nightstar-29305.neoplus.adsl.tpnet.pl] has joined #Code
15:18 mode/#code [+o AnnoDomini] by ChanServ
15:19
< GeekSoldier>
It depends on what is set for that system or database.
15:26
<@ToxicFrog>
Why would you ever try ddmmyyyy first ;.;
15:50
< Molgorn>
Because it's how dates are normally written and was therefore the most intuitive option to try
15:52
<@jerith>
Embrace ISO 8601.
15:55
< Molgorn>
The informational correctness it would provide would not make up for the funny looks I would get.
15:56
< Molgorn>
People would say "But it's the 24th of June, 2010! That's 24/06/2010! See? Sensible!" and be damned to the ISO standards.
15:56
<@jerith>
Isn't that 06/24/2010 in American?
15:57
< Molgorn>
That's even more weird, though >_>
15:57
<@jerith>
ISO 8601 is as unambiguous as it gets without writing month names.
15:57
<@jerith>
(Which don't sort.)
16:06
<@ToxicFrog>
...normally written in what world?
16:06
<@ToxicFrog>
Dates are written the same way as times: yyyy-mm-dd
16:10
< Molgorn>
In the real world. In meatspace. By people.
16:11
< Molgorn>
People will write 12/03/2008 and expect you to parse "12th of March 2008" from it.
16:11
<@jerith>
I never use dd/mm/yyyy or mm/dd/yyyy because they're ambiguous.
16:11
<@jerith>
Molgorn: Not in most of the US.
16:11
< Molgorn>
Or "December 3rd 2008" if you're American.#
16:11
< Molgorn>
Quite.
16:12
< Molgorn>
I'm not trying to claim that the way it is done is sensible, merely that it is done this way.
16:13
< Molgorn>
And it demonstrably is. And that is why I am most familiar with it, being a person first and coder a distant tenth or so, and that is why it was a mistake of intuition that I tried to use it in an SQL query.
16:18 * jerith nods.
16:19
<@jerith>
I use ISO 8601 anywhere a date is required and a format is not explicitly specified.
16:19
<@jerith>
I've never had anyone complain. :-)
16:20
<@jerith>
I've filled in many forms that specify DD MMM YYYY where MMM is APR or DEC or whatever.
16:23 Derakon[AFK] is now known as Derakon
16:31
<@Derakon>
Hmm...how to round a location in radians to increments of pi/4?
16:31
<@Derakon>
Oh, duh.
16:34
<@Derakon>
(And that should be "direction", not "location", but never mind...)
17:30 Rhamphoryncus [~rhamph@Nightstar-7184.ed.shawcable.net] has joined #code
17:54
<@Derakon>
Oooh, I like this map. http://derakon.dyndns.org/~chriswei/games/jbrl/accessibility/result9d.png
17:56 * Molgorn requests upgradeables and collectibles and customisable things, and all manner of similar unlockable ;)
17:59
<@Derakon>
Yes, yes, all in good time. :)
18:06 * ToxicFrog strangles multipart/form-data
19:06 Molgorn is now known as Moltare
19:16
< Tarinaky>
Does anyone know if it's possible in gdb to change the value of a variable?
19:16
< Tarinaky>
Answers Ideally in the for of the command's name >.>
19:16
< Tarinaky>
*form
19:17
<@Derakon>
I'm sure you can, but I don't remember the exact incantation.
19:17
<@Derakon>
Hm. Google says to try "set var foo=value"
19:18
<@Derakon>
Or possibly just "set foo=value"
19:21
< Tarinaky>
Thanks.
19:21
< Tarinaky>
Now to work out wtf is wrong with this if statement T_T
19:21
<@Derakon>
Copy the statement here?
19:23
< Tarinaky>
else if( (iYPos+pDisplay->h)==pImage->h&&(iXPos+pDisplay->w)==pImage->w) {
19:23
< Tarinaky>
iMotion == MOLEFT;
19:24
< Tarinaky>
gdb says it evaluates true when it's supposed to. And it skips the else if that follows it.
19:24
< Tarinaky>
Oh.
19:24 * Tarinaky facepalms.
19:24
<@Derakon>
So in other words, if your iterating position plus the display position equals the image position, go left.
19:24
<@Derakon>
Heh.
19:25
<@jerith>
Yay for Dog Debugging.
19:25
< Tarinaky>
Dog Debugging?
19:25
<@jerith>
You carefully explain the problem to your dog, who listens attentively.
19:26
<@jerith>
In so doing, you clarify matters enough in your head to see what's wrong.
19:26
<@jerith>
People work just almost as well as dogs, but they have a tendency to interrupt.
19:26
< Tarinaky>
Actually I just realised when I copy and pasted the two lines that I had an extra equals sign.
19:26
<@Derakon>
I solved a lot of problems in college by writing emails to my professors.
19:27
<@Derakon>
Most of them never needed to be sent.
19:27
< Tarinaky>
Heh.#
19:27
<@jerith>
The "Monologues permitted." in the topic has solved a bunch of problems people have brought us. :-)
19:57 Vornicus [~vorn@Admin.Nightstar.Net] has joined #code
19:57 mode/#code [+o Vornicus] by ChanServ
19:59 Vornicus is now known as Finerty
20:13 Pofigist [~_Znet_Pof@212.45.15.ns-25973] has joined #Code
20:17
< Pofigist>
Hello
20:17
< Pofigist>
=)
20:18 Pofigist [~_Znet_Pof@212.45.15.ns-25973] has left #Code []
20:18
< Moltare>
Good evening.
20:18
< Moltare>
>_>
20:23 * gnolam giggles at jerith's Dog Debugging.
20:32 * Derakon cuts down on map generation time by 17s through a simple optimization.
20:44
<@McMartin>
Do tell
20:45
<@Derakon>
Those circles I was using to look for large open areas?
20:45
<@Finerty>
Squares are easier?
20:45
<@Derakon>
Instead of starting their radii at 1, I start them at just below the minimum cutoff size (below which I refuse to install more platforms).
20:46
<@Derakon>
It still takes 9 seconds to do all the circles, but that's a hell of a lot better than 26.
21:24 Attilla [~The.Attil@Nightstar-9147.cdif.cable.ntl.com] has quit [Connection reset by peer]
21:24 Attilla [~The.Attil@Nightstar-9147.cdif.cable.ntl.com] has joined #code
21:24 mode/#code [+o Attilla] by ChanServ
21:26 Attilla [~The.Attil@Nightstar-9147.cdif.cable.ntl.com] has quit [Connection reset by peer]
21:27 Attilla [~The.Attil@Nightstar-9147.cdif.cable.ntl.com] has joined #code
21:27 mode/#code [+o Attilla] by ChanServ
21:28 Attilla [~The.Attil@Nightstar-9147.cdif.cable.ntl.com] has quit [Connection reset by peer]
21:28 Attilla [~The.Attil@Nightstar-9147.cdif.cable.ntl.com] has joined #code
21:28 mode/#code [+o Attilla] by ChanServ
21:36 Rhamphoryncus [~rhamph@Nightstar-7184.ed.shawcable.net] has quit [Quit: Rhamphoryncus]
21:45
<@AnnoDomini>
BTW, guys - if you see Reiv appear, poke him into posting in HDL. He's been absent and the other players are annoyed.
21:51
< Alek>
very.
21:57
<@Derakon>
Hrm. In the last week I've written some 961 lines of Python.
21:58
<@Derakon>
What's more disturbing is that it all apparently functions.
21:59
<@Finerty>
Where /else/ would you put it?
21:59
<@Derakon>
No. It functions, i.e. works, not it is functions.
22:02
<@jerith>
This weekend I've written about 250 lines of Erlang.
22:02
<@Derakon>
Does it work?
22:02
<@jerith>
Well, I've written at least three times that. I'm left with that.
22:02
<@jerith>
No, wait. I'm counting comment lines in there.
22:02
<@jerith>
Meh. They're important, or they wouldn't be there.
22:02
<@Derakon>
Ahh, I'm counting comments too.
22:03
<@jerith>
I'm also counting empty lines, but they're important too.
22:03
<@Derakon>
791 not counting comments...but yeah, still counting empty lines.
22:03
<@Derakon>
639 unique lines without comments.
22:06
<@jerith>
And I should have been in bed hours ago. :-(
22:06
<@jerith>
But p74 runs in 4.5 seconds and I can't find a way to make it faster.
22:06
<@Derakon>
Project Euler?
22:06
<@jerith>
'night all.
22:06
<@Derakon>
Night.
22:06
<@jerith>
(Yes, Project Euler.)
22:15 Attilla [~The.Attil@Nightstar-9147.cdif.cable.ntl.com] has quit [Connection reset by peer]
22:15 Attilla_ [~The.Attil@Nightstar-9147.cdif.cable.ntl.com] has joined #code
22:16 Attilla_ is now known as Attilla
22:26 Consul [~consul@Nightstar-12789.dsl.sfldmi.ameritech.net] has quit [Quit: Leaving]
22:46
<@Derakon>
Hmm...I think I may be able to eliminate the grow-circles phase of accessibility fixing altogether.
22:47
<@ToxicFrog>
Oh?
22:47
<@Derakon>
I'm modifying the wallwalker algorithm to work on local sectors of the map in segments, instead of on the entire map at once (to make it possible to tweak platform gaps depending on the player's powerup level), and as an added bonus, it treats the boundaries between sectors as walls.
22:47
<@Derakon>
And the wallwalker's very fast, to boot.
22:48 Consul [~consul@Nightstar-12789.dsl.sfldmi.ameritech.net] has joined #code
22:48 mode/#code [+o Consul] by ChanServ
22:50
<@Derakon>
Only problem is that these borders are a bit knottier than the standard borders, so the wallwalker's getting stuck sometimes. http://derakon.dyndns.org/~chriswei/games/jbrl/accessibility/result10a.png
22:50
<@Derakon>
(Red is simply a square that's been visited more than once...but that leftmost blob is a problem)
22:54 Attilla [~The.Attil@Nightstar-9147.cdif.cable.ntl.com] has quit [Connection reset by peer]
22:55 Attilla [~The.Attil@Nightstar-9147.cdif.cable.ntl.com] has joined #code
22:55 mode/#code [+o Attilla] by ChanServ
23:01
<@Derakon>
...crap. Improving my debugging UI by assigning random colors to the different tree branches changes the map, invalidating my test case. >.<
23:02
<@ToxicFrog>
Pfft
23:02
<@ToxicFrog>
Use a different entropy pool for colour assignment?
23:02
<@Derakon>
Or just hope that it happens again on a different map~
23:04
<@Derakon>
...or use a different entropy pool. ¬.¬
23:04
<@Derakon>
Ahh, or use getstate() and setstate() to leave the RNG be~
23:05
<@Derakon>
Hah, that worked.
23:17
<@Derakon>
Ah hah, I had walls and open space backwards.
23:17
<@Derakon>
Amazing it worked at all, really.
23:17
<@Derakon>
But among other things, it was traveling clockwise instead of counterclockwise, which would've put all the platforms in the wrong place.
23:19
<@Derakon>
Fixing this lets the map make it another third of the way through before running into another loop. >.<
23:26
<@Derakon>
Oh ick.
23:27
<@Derakon>
I allow tunnels to "merge" at branch points so that I don't get extremely messy-looking walls. But this means that at branch points, it's possible to get a grid square owned by one sector that's entirely surrounded by grid squares owned by another sector...which breaks the marching squares algorithm, which assumes a continuous unbroken object.
23:27
<@Derakon>
The simple way to fix this is to reassign parents for orphaned grid squares.
23:29
<@Derakon>
...but that won't fix the (rare, but possible) situation of two adjacent seeds of one parent surrounded by seeds of another parent. This calls for connectivity.
23:50
<@Derakon>
Okay, I need to break the map down into chunks owned by different sectors, identify chunks that are too small, and merge them with an adjacent chunk.
23:50
<@Derakon>
I'm thinking something like the following:
23:50
<@Derakon>
chunks = []; seenSpaces = []
23:50
<@Derakon>
foreach block in map:
23:51
<@Derakon>
if block not in seenSpaces:
23:51
<@Derakon>
chunks.append(getConnectedBlocks(block))
23:51
<@Derakon>
foreach chunk in chunks:
23:51
<@Derakon>
if len(chunk) < minimumChunkSize:
23:51
<@Derakon>
chunk.merge(adjacent chunk)
23:52
<@Derakon>
Does that seem plausible? And not horrifically slow?
23:54
<@McMartin>
That looks suspiciously quadratic
23:55
<@Derakon>
I suppose I could build up a tremendous list of every location in the grid, and then excise them from that list as I add those locations to chunks...but that involves mutating the list I'm iterating over, which always seems dicey.
23:56
<@McMartin>
Yeah, don't do that.
23:56
<@McMartin>
The two loops isn't what I'm concerned with
23:56
<@McMartin>
It's that "if block not in seenspaces" is linear.
23:57
<@McMartin>
Make seenSpaces a set or a map from keys to "true"
23:57
<@Derakon>
seenSpaces is a huge 2D array~
23:57
<@Derakon>
It could be a dict, too.
23:57
<@McMartin>
I'll use "dict" and "map" interchangably.
23:57
<@McMartin>
I blame Java
23:57
<@Derakon>
Heh.
23:58
<@Derakon>
How much is lookup time in a dict?
23:58
<@McMartin>
O(1).
23:58
<@McMartin>
It's a hash table.
23:58
<@Derakon>
Oh, right, right.
23:59
<@Derakon>
I keep thinking log(n) because I'm thinking of the dense hash tables we learned about in data structures.
--- Log closed Mon Mar 16 00:00:51 2009
code logs -> 2009 -> Sun, 15 Mar 2009< code.20090314.log - code.20090316.log >