code logs -> 2009 -> Tue, 21 Jul 2009< code.20090720.log - code.20090722.log >
--- Log opened Tue Jul 21 00:00:22 2009
01:05
<@Derakon>
Hmph. It takes about 3.5s just to read a small map file and initialize everything...
01:05
<@Derakon>
That's no mapgen; just loading all the stuff needed to run the gameplay aspect.
01:07
< SmithKurosaki>
:(
01:07
<@Derakon>
Ehh, it's not too bad. Just gets a bit annoying when I'm testing.
01:07
< SmithKurosaki>
Yea
01:13 * gnolam blarghs some more at Systems Hungarian.
01:26
<@ToxicFrog>
The evil!
01:26
< SmithKurosaki>
?
01:28
<@Phas>
Systems Hungarian: putting the internal type of a variable into the variable's name.
01:30
< SmithKurosaki>
o.0
01:30
<@Phas>
In a compressed format.
01:30
<@Phas>
iFoo for instance is an integer.
01:30
<@Phas>
ipFoo is a pointer to an integer.
01:31
<@ToxicFrog>
http://mindprod.com/jgloss/unmainnaming.html - scroll down to 30 and 31
01:32
<@Phas>
a_crszkvc30LastNameCol is a const, reference, function argument that was holding information from a database column of type Varchar[30] named "LastName" which was part of the tables primary key.
01:33
< SmithKurosaki>
:gonk:
01:35
<@gnolam>
There are times regular Hungarian is more readable. :P
01:36
<@gnolam>
The whole issue of decent IDE's making it completely redundant aside.
01:36
<@ToxicFrog>
There's also the much more sensible Apps Hungarian, where the prefix encodes the variable's conceptual type; for example, us for Unsafe String or r/c for Row/Col
01:40 Orthia is now known as Reivthia
01:44
<@McMartin>
Incidentally, the fact that you get things like "crszkvc" is why it's called "Hungarian" in part~
01:45
<@McMartin>
The best part of Systems Hungarian is that when you go from 16- to 32-bit in your API, the function names start to lie.
01:45
< SmithKurosaki>
whaaaat?
01:45
<@ToxicFrog>
I thought it was because it was invented by a Hungarian programmer.
01:46
<@Derakon>
SK: because all your ints have their bit depth encoded in their names.
01:46
<@ToxicFrog>
SmithKurosaki: everything still says that it's, say, a 16-bit int, because changing the names will break everything.
01:46
<@ToxicFrog>
But since it's now a 32bit system, they're actually twice as wide as the name says.
01:46
< SmithKurosaki>
Who the hell uses this?
01:46
<@McMartin>
The official Windows APIs. -_-
01:47
< SmithKurosaki>
:gonk:
01:47
<@McMartin>
On the other hand, these days it's only in the arguments and the structure names, and they've been mostly switching to Apps Hungarian.
01:47
<@McMartin>
They also aren't mortally terrified of vowels the way POSIX is, nor do they put the names of all their arguments into the function names the way Apple does.
01:48
<@McMartin>
It's really more :scigonk: at the system level no matter who you're targeting.
01:48
<@gnolam>
Well, a single WinAPI function call usually takes up a few pages, so putting the names of arguments into the function names themselves would probably break the compiler. ;)
01:49
<@McMartin>
After writing a few files using CoreFoundation, gnolam, I found myself wishing mightily for the Win32 API's brevity.
01:49
<@gnolam>
Heh.
01:49
<@ToxicFrog>
CoreFoundation?
01:49
<@McMartin>
Since MS at least will use constant names like INFINITE_WAIT instead of kIPCFrameworkWaitTimeNoLimitRequired.
01:50
<@McMartin>
TF: CoreFoundation is the C library that underlies the data types that the Mac OSes use for everything.
01:50
<@McMartin>
CFDictionary, CFString, CFArray, etc.
01:50
<@McMartin>
CFString is an opaque type that is not a C string, but you can sort of make one with CFStringCreateCFStringWithCStringWithEncoding ("....", kCFStringEncodingUTF8) or what have you
01:51
<@McMartin>
(It's worth noting that it's *doing* most of this by having you hand-mangle the Objective-C functions.)
01:51
<@McMartin>
(And the CF structures are directly castable to Objective-C NeXTStep objects, even across link boundaries)
01:52
<@ToxicFrog>
o.O
01:53
<@McMartin>
Despite having Smalltalk/Python method semantics, ObjC is actually much closer to C than C++ is.
01:55
<@McMartin>
http://developer.apple.com/documentation/CoreFoundation/Reference/CFStringRef/Re ference/reference.html
01:55
<@McMartin>
Oh, right. CFStringCreateWithFileSystemRepresentation. That's the one I usually needed to see whether or not a POSIX pathname matched something from LaunchServices or some other high-level OS X facility.
02:04
<@McMartin>
Having now down "man 2" level programming on all three of the major OSes, I find that modern Win32-level stuff and POSIX are different but basically peers, where I'd prefer one over the other depending on problem domain, and non-POSIX OS X is a very distant third.
02:04
<@McMartin>
(Regarding problem domains, I like Windows Named Pipes more than UNIX domain sockets, because they do a lot of the tedious bookkeeping automatically.)
02:10
< SmithKurosaki>
What's up with posix and the lack of vowels anyways?
02:10 Thaqui [~Thaqui@121.98.166.ns-22683] has joined #code
02:10 mode/#code [+o Thaqui] by ChanServ
02:10
<@McMartin>
I'm mostly just making fun of "creat"
02:11
<@McMartin>
But really, it ends up being "AT&T's programmer culture vs. MS vs. NeXT"
02:11
<@McMartin>
If your style is telegraphic, your APIs will be too.
02:12
<@McMartin>
Once they moved away from Hungarian in function names, MS's API is the closest to "this function is named as a description of what it does", with a few extra bits of wonkiness to be back-compatible with old non-Unicode versions of Windows
02:13
<@McMartin>
If you're reading code and see a call to CreateProcessAsUser, you know basically what it does
02:13
<@McMartin>
If you want to write it though, you need to look it up to see what all 17 of its arguments mean
02:13
<@McMartin>
Both of those probably have more to do with Windows NT being designed by the VMS guys.
02:21 gnolam [lenin@Nightstar-1382.A163.priv.bahnhof.se] has quit [Quit: Z?]
02:26 * SmithKurosaki sighs
02:41
<@Derakon>
Ha-HA! http://derakon.dyndns.org/~chriswei/games/jbrl/actions/kick1.gif
03:06
<@Derakon>
Phew. There. All reviewed and checked in.
03:06
<@Derakon>
Did you know that the Jetblade project has some 2094 files?
03:08 Attilla [~The.Attil@92.1.54.ns-25924] has quit [Quit: <Insert Humorous and/or serious exit message here>]
03:12
<@McMartin>
I think you mentioned something similar a while back
03:12
<@Derakon>
Yeah, well, the scope of this project continues to surprise me.
03:15 Thalass [~thalass@Nightstar-8070.sud-cable-cmts2-69-60-245-73.vianet.ca] has joined #code
03:15
< Thalass>
arr
03:16
< Thalass>
it's a python script to allow google earth to see a gps, but it doesn't work out of the box with gpsd
03:16
< Thalass>
I don't know what I'm doing, just fiddling around and googling. I'm sure it's been done before
03:17
<@Derakon>
Is it the Python that's giving you trouble, or the integration with Google Earth?
03:18
< Thalass>
what I'm trying to do is documented here: http://devslab.blogspot.com/2008/02/playing-with-freedom-keychain-gps-2000_22.ht ml
03:19
< Thalass>
but when I run the script, I get "Import error: no module named serial"
03:20
<@Derakon>
Then you either don't have the serial module installed, or it's not in your path.
03:20
< Thalass>
I wouldn't have to edit the modules thingo to add "serial", would I/
03:21
< Thalass>
ah. perhaps it's not in the path. I'm running the script from desktop
03:21
<@Derakon>
Do you know where the module is?
03:24
<@Derakon>
Here's a bit of documentation on Python's module search path: http://www.python.org/doc/1.5.1p1/tut/searchPath.html
03:25
< Thalass>
I have no idea. My code-fu is nearly nonexistant :P
03:27
<@Derakon>
...oh, whoops, I was counting the Mercurial files when I spouted off that 2094 number. It's actually 784 files. :)
03:28
<@Derakon>
Thalass: okay, I'd bet you don't have the module installed, then.
03:28
<@Derakon>
You can get it here: http://pyserial.wiki.sourceforge.net/pySerial
03:28
< Thalass>
hrm. I may not have it. locate serial.py turns up nothing
03:28
<@Derakon>
Try following the default installation process for whatever system you're using.
03:28
< Thalass>
thanks :)
03:30
<@Derakon>
...dude. Jetblade is the third (or second, depending on how you count) result on Google for "procedurally generated code".
03:30
<@Derakon>
Despite the fact that it doesn't generate any code itself...still, awesome.
03:32
< Thalass>
woo. That seems to have fixed it... now for the next error haha
03:33
<@Derakon>
Heh.
03:38
<@ToxicFrog>
Derakon: sweet.
03:40
<@ToxicFrog>
Sigh. Why is it so hard to find a decent Linux audio player?
03:40
<@ToxicFrog>
XMMS was great ten years ago, but XMMS2 is still in development and nothing seems to have stepped up to fill the gap.
03:41
<@Derakon>
Because audio players are basically all about UI and audio decoders, both of which are full of spiders?
03:42
<@ToxicFrog>
Well, yes.
03:43
<@ToxicFrog>
But there's no shortage of audio players; it's just that all of them are going the itunes route - huge, bloated things that manage your collection of music and download album art and sort things by release date and might, somewhere in there, have a feature to actually play the music.
03:43
<@ToxicFrog>
Whereas I want something like Winamp. Or XMMS, only, you know, working reliably on modern system.
03:46
< Tarinaky>
ToxicFrog: mplayer? mpd/mpc?
03:46
<@Derakon>
Linux doesn't get Media Player.
03:46
< Tarinaky>
No. mplayer.
03:47
< Tarinaky>
It's a program.
03:47
<@ToxicFrog>
mplayer is a video player. It's great for playing videos. It's less great at managing playlists of tens or hundreds of thousands of music files.
03:47
<@Derakon>
I was referring to MPD/MPC.
03:47
<@ToxicFrog>
In particular, I require playlist persistence, queuing, and jumping.
03:47
< Tarinaky>
ToxicFrog: mpd.
03:48
< Tarinaky>
http://mpd.wikia.com/wiki/Music_Player_Daemon_Wiki
03:48
<@ToxicFrog>
What client would you recommend for it?
03:48
< Tarinaky>
I use gmpc.
03:48
<@Derakon>
Ahh. I interpreted that as "Media Player Deluxe".
03:48
<@Derakon>
I'll just stop talking now~
03:49
< Tarinaky>
I expect there's a kde equivalent if GTK bothers you.
03:49
< Tarinaky>
s/kde/Qt
03:50
< SmithKurosaki>
I also heard about exaile being decent from Zom
03:52
< Tarinaky>
I also use mpc to a lesser extent (invoking it using keyboard shortcuts).
03:53 * ToxicFrog throttles MPD
03:54
< Tarinaky>
What's up?
03:54
<@ToxicFrog>
MPD is a daemon, runs as 'mpd'.
03:54
<@ToxicFrog>
My music is sshfs-mounted and thus accessible only to 'ben'
03:54
<@ToxicFrog>
Note that due to the way sshfs works even root can't get at it.
03:54
< Tarinaky>
No problem.
03:55
<@ToxicFrog>
So I start up mpd and it goes "aughwtf I can't read the music directory, streaming mode only mate"
03:55
< Tarinaky>
I run mpd as my user account, lemme pull out my config.
03:55
<@ToxicFrog>
Aha, I think I see what I need to do
03:56
<@ToxicFrog>
The /etc/mpd.conf has all the entries for running in user mode, just commented out
03:56
< Tarinaky>
Add the line 'user "ben" ' to your /etc/mpd.conf
03:56
< Tarinaky>
Yeah.
03:58
<@ToxicFrog>
Let's see if I can get it to use pulseaudio at the same time.
03:58
< Tarinaky>
Should be able to.
03:59
< Tarinaky>
http://mpd.wikia.com/wiki/PulseAudio
04:00
<@ToxicFrog>
Yeah, the config file already had a block for it, just commented out.
04:00
<@ToxicFrog>
...hmm. Now it needs to scan the music directory.
04:00
< SmithKurosaki>
That will be fun
04:00
<@ToxicFrog>
Yeah, might take a while, especially over ssh.
04:01
<@ToxicFrog>
What with it containing ~36000 files.
04:02 TarinakyKai [~Tarinaky@Nightstar-16638.plus.com] has joined #code
04:04
<@ToxicFrog>
The DDR stuff is confusing it a bit because there's lots of non-music files in there.
04:04
< SmithKurosaki>
Heh
04:05 Tarinaky [~Tarinaky@Nightstar-16638.plus.com] has quit [Ping Timeout]
04:16
<@Derakon>
DesArt?
04:16
<@Derakon>
Mischan.
04:20
< Consul>
I'm waiting for the really embarassing mischan to happen on of these days.
04:21
< Consul>
one*
04:21
< SmithKurosaki>
That would be funny
04:21 Thaqui [~Thaqui@121.98.166.ns-22683] has quit [Client exited]
04:22 Derakon is now known as Derakon[fud]
04:22
< Consul>
Yeah, it's really hard right now.
04:22
< Consul>
Oops, mischan
04:22
< Consul>
Something like that. :-P
04:39
<@McMartin>
Oh hey, new Septerra Core updates
04:40
< SmithKurosaki>
haha
04:40
< SmithKurosaki>
Reading TF's thread>
04:40
< Consul>
No kidding?
04:40 * Consul has that game and loved it.
04:40
< SmithKurosaki>
Getting the lava boss vid was a bitch
04:41
<@ToxicFrog>
Yeah, I ended up doing that fight three times to get a decent recording
04:41
<@ToxicFrog>
And needed screenshots from all three of them
04:41
<@ToxicFrog>
Consul: yeah, same here. I've been doing a Let's Play of it.
04:43
<@ToxicFrog>
Currently halfway through Shell 7.
04:43
< Consul>
It's been too long since I've played it, so I can't remember much, I'm afraid.
04:43
<@McMartin>
SmithKurosaki: Yeah, I mostly read the gamebook threads but SC is on the list.
04:44
< SmithKurosaki>
:p
04:44
< Consul>
I remember unlocking the tower by rescuing all the birds.
04:44
< Consul>
That seemed a but anticlimactic, but there were some nice items.
04:45
< Consul>
bit*
04:45
<@ToxicFrog>
Yep, that's going in
04:45
<@McMartin>
Birdseed is, in fact, the key to ultimate power?
04:45
<@ToxicFrog>
Although it'll be quite some time, we don't even have all the party members yet.
04:45
<@ToxicFrog>
McMartin: feeding all ten birds gets you the local Infinity Plus One gear.
04:46 Thaqui [~Thaqui@121.98.166.ns-22683] has joined #code
04:46 mode/#code [+o Thaqui] by ChanServ
04:46
< SmithKurosaki>
Ahh, that's what you get
04:47
< SmithKurosaki>
I thought you got a shiny thing that goes boom from it
04:49
<@ToxicFrog>
No, the Sphere module is dungeon loot~
04:49 Derakon[fud] is now known as Derakon
04:49
< SmithKurosaki>
:p
04:50
< Consul>
Okay, so when McMartin said "update to Septerra Core", he wasn't referring to new game elements from the publisher?
04:50
<@Derakon>
He was probably referring to Let's Play Septerra Core.
04:50
< SmithKurosaki>
http://forums.somethingawful.com/showthread.php?threadid=3080042
04:50
<@ToxicFrog>
Consul: no; the last patch was in 2007.
04:50
< SmithKurosaki>
This
04:50
<@ToxicFrog>
Fixed the crash bugs on win2k/XP.
04:51
< SmithKurosaki>
Was it just the sonic boom boss that crashed the game on 2k and xp?
04:52
<@ToxicFrog>
Ahahahahahahahano
04:52
<@ToxicFrog>
Far from it.
04:52
<@ToxicFrog>
It was just the first one that would crash the game consistently.
04:53
<@ToxicFrog>
Some of Led's attacks (the ones that emit a ring of light - notice a pattern?) would crash it sometimes.
04:53
<@ToxicFrog>
Pretty sure the Big Bang spell would as well.
04:53
< SmithKurosaki>
heh
04:53
< SmithKurosaki>
Have I seen Big Bang yet?
04:54
<@ToxicFrog>
Nope
04:54
<@ToxicFrog>
We don't have any of the required cards.
04:55
< SmithKurosaki>
(I meant outside of the LP :p)
04:56
<@ToxicFrog>
You haven't seen me play it when not recording the LP, so.
06:04 Syloqs-AFH [~Syloq@ServicesAdmin.Nightstar.Net] has quit [Connection reset by peer]
06:30 Phas is now known as Vornicus
06:42 Consul_ [~Consul__@Nightstar-2425.dsl.sfldmi.ameritech.net] has joined #code
06:43 Consul [~Consul__@Nightstar-2425.dsl.sfldmi.ameritech.net] has quit [Ping Timeout]
06:47 Derakon is now known as Derakon[AFK]
07:08 S_Kurosaki [~Smith@Nightstar-7213.cpe.net.cable.rogers.com] has joined #code
07:08 You're now known as TheWatcher
07:08 SmithKurosaki [~Smith@Nightstar-10671.dsl.teksavvy.com] has quit [Killed (NickServ (GHOST command used by S_Kurosaki))]
07:08 S_Kurosaki is now known as SmithKurosaki
07:10 AgentIchiro [~Smith@Nightstar-10671.dsl.teksavvy.com] has joined #code
07:14 mode/#code [+o SmithKurosaki] by ChanServ
07:15 AnnoDomini [~farkoff@Nightstar-29296.neoplus.adsl.tpnet.pl] has joined #Code
07:15 mode/#code [+o AnnoDomini] by ChanServ
07:52 * ToxicFrog ponders chunk creation.
07:53
<@ToxicFrog>
It may be easiest if I just load the entire resfile into memory on open().
07:54
<@ToxicFrog>
Hmm. Actually, should a Chunk know anything about its representation on disk, or should that be entirely up to the ResFile?
07:56
<@ToxicFrog>
It occurs to me that it is (should be) possible to create chunks entirely in memory, without a file backing them.
07:56
<@ToxicFrog>
Ok, new policy.
07:57
<@ToxicFrog>
The Chunk class stores only information which is not relevant to its representation on disk.
07:57
<@ToxicFrog>
In particular it doesn't know about the compressed flag or how big it is when packed.
07:57
<@ToxicFrog>
It's up to the ResFile to worry about actually serializing the chunks it owns.
07:58 * Vornicus wonders what TF is building.
07:58
<@ToxicFrog>
ss1edit.
07:58
<@ToxicFrog>
Now that the libraries I need to write the libraries I need to write the program are done.
08:02
<@Vornicus>
Ah, so.
08:02
<@Vornicus>
wh..
08:02
<@Vornicus>
You needed to write libraries to write libraries?
08:03
<@ToxicFrog>
The libraries for manipulating SS1 data files, like ss1.ResFile, require a library for generic manipulation of binary data.
08:03
<@ToxicFrog>
That would be vstruct.
08:03
<@SmithKurosaki>
That's why you did vstruct...
08:03
<@ToxicFrog>
Yep.
08:04
<@SmithKurosaki>
Sneaky bastard :p
08:04
<@ToxicFrog>
Neither of the existing struct libraries supported 24-bit integers or 24.8 fixed point rationals.
08:04
<@SmithKurosaki>
Night all
08:04
<@ToxicFrog>
(or repetitions or named fields, but those are bonuses)
08:04
<@ToxicFrog>
...huh.
08:04
<@ToxicFrog>
Ok, I pretty much have to either:
08:04
<@ToxicFrog>
- load the entire resfile into memory on open()
08:05
<@ToxicFrog>
- or, disallow commit(), and permit data writes only with close()
08:05
<@ToxicFrog>
Of those, the former is probably better.
08:05
<@Vornicus>
These files are small.
08:05
<@Vornicus>
Like, itty.
08:06
<@Vornicus>
We're talking "can be loaded entirely into RAM on a machine that is also doing software 3d"
08:06
<@Vornicus>
"in 1994"
08:06
<@ToxicFrog>
Apart from stuff like the 50MB audio logs file.
08:07
<@ToxicFrog>
The "real" version of SS1 is the version on CD for a reason.
08:08
<@ToxicFrog>
But yeah, apart from that, all the resfiles are <16MB
08:09
<@ToxicFrog>
Not small enough for SS1 to load the entire file into memory by any means, but small enough that a modern machine could load the game's entire dataset without difficulty.
08:10
<@ToxicFrog>
Now I'm wondering if open/commit/close should be renamed load/save/delete
08:10
<@ToxicFrog>
Because there's no longer any reason for it to hold an open file handle.
08:10 * ToxicFrog upshifts to find out by writing a library that uses this API
08:12
<@ToxicFrog>
...ok, that doesn't help at all, ss1map doesn't actually need to use anything but the constructor.
08:13
<@ToxicFrog>
Well, in that case, I'll write the constructor and fill in the rest as I need it.
08:14
<@Vornicus>
TF: so anyway, Vorn in Space was me looking at EV and Transcendence and saying "Both of these have pieces of the depth I want but not all of it" and then at EVE and saying "This has economics! But also bad crazy."
08:15 * ToxicFrog nods
08:15
<@ToxicFrog>
I'm drawing pretty much entirely on X2 for the gameplay here
08:16
<@ToxicFrog>
Since my impression of X2 after something like ten hours of gameplay (and three hours of mod installation and two hours of struggling with the game's inexcusably terrible in-game script editor) was "this would be a kickass game if I could play it"
08:16
<@ToxicFrog>
Oh god I can't hate on that script editor enough
08:17
<@ToxicFrog>
It's like someone decided that what the world really needed was the ability to write mods for a huge, complex game using a TI-83 graphing calculator
08:17 You're now known as TheWatcher[afk]
08:18
<@TheWatcher[afk]>
I think that sums up the whole X series, actually
08:18
<@TheWatcher[afk]>
They'd be good games, if they were developed by people who had a fucking clue
08:18
<@TheWatcher[afk]>
But, anyways
08:18
<@Vornicus>
One of the things I wanted to do with VornLink is have a script editor that you could run three ways: as a macro device, as a... flowcharty thing, and as an actual text script, which you could even open in YTEOC
08:19
<@ToxicFrog>
TW: they're like Dwarf Fortress, except where DF has "I'll do it after the important stuff is finished" scrawled under "user interface", the X series has "huh?" and a stick figure drawing.
08:20
<@ToxicFrog>
"macro device"?
08:22
<@Vornicus>
macro recording
08:25
<@ToxicFrog>
Aah.
08:37 Vornicus [Vornicus@Admin.Nightstar.Net] has quit [Quit: ]
08:38 Vornicus [~vorn@ServicesOp.Nightstar.Net] has joined #code
08:38 mode/#code [+o Vornicus] by ChanServ
08:43
<@ToxicFrog>
...hmm.
08:43
<@ToxicFrog>
I need to do more analysis, but vstruct may be slower than I thought it was. :(
08:46
<@ToxicFrog>
If I don't have it unpack the TOC entries, and instead just read the data and discard it, it loads ARCHIVE.DAT in around 0.05s.
08:46
<@ToxicFrog>
If I have it unpack the TOC entries, it takes 20s.
08:54
<@Vornicus>
Also I couldn't get X2 running so I don't even know how it plays. :(
08:57
<@ToxicFrog>
It plays like Sid Meier's Galactic Empire Construction Game, if you were playing it from the cockpit of a TCF P-64 Ferret.
08:57
<@Vornicus>
Pffff
08:57
<@ToxicFrog>
Note that this applies even if you are commanding a kilometers-long supercarrier.
08:58
<@ToxicFrog>
Oh hey. That's the bottleneck.
08:58
<@Vornicus>
Tell me more!
08:58
<@ToxicFrog>
So, it turns out that it suddenly goes a lot faster if I read() the entire TOC into memory and unpack it from there.
08:58
<@Vornicus>
Yes.
08:58
<@ToxicFrog>
Because then it's a bunch of substring operations, rather than several thousand one-byte calls to read(2).
08:58
<@Vornicus>
Pffffff
08:59
<@ToxicFrog>
Implementing that change caused it to go from 20s to 1s.
08:59
<@Vornicus>
Which is more sensible; how big is ARCHIVE.DAT?
08:59
<@ToxicFrog>
Which is still twenty times slower than it would be without unpack, but I can live with that.
08:59
<@ToxicFrog>
200k.
09:00 * Vornicus nods.
09:00
<@ToxicFrog>
Although a more useful metric (since chunk info management is now dominating over IO) is number of chunks in the file
09:01
<@ToxicFrog>
Which is around 900, I think
09:01
<@ToxicFrog>
832.
09:01
<@ToxicFrog>
(16 maps * 52 chunks/map)
09:02
<@ToxicFrog>
So figure it can load 800 chunks/s less IO time.
09:02 * Vornicus counts. actually 16 maps? ...10 decks, 3 groves, and a couple of cyberspace zones. I guess so!
09:04
<@AnnoDomini>
CYBERSPACE.
09:07
<@Vornicus>
It seems like more thanthat.
09:08
<@ToxicFrog>
10 decks, 3 groves, SHODAN C/space, and the rest of the C/space areas are packed several to a map.
09:08
<@Vornicus>
I knew the latter.
09:09
<@ToxicFrog>
And yeah, it does feel larger.
09:09
<@ToxicFrog>
The devs are good at that.
09:09
<@ToxicFrog>
Interesting tidbit: the SS1 engine has a max render distance of 14 tiles.
09:09
<@ToxicFrog>
I have so far found exactly one place in the entire game where it's possible to actually see this.
09:09
<@ToxicFrog>
Even on Deck 8.
09:09
<@Vornicus>
I know of several.
09:10
<@Vornicus>
Deck 3, looking between the elevators.
09:10
<@ToxicFrog>
Oh? The one I found is on Deck 1 - turn right after exiting the medical recovery rooms and have both doors open.
09:11
<@ToxicFrog>
(which requires you to have completed the deck, move quickly down the hall opening the doors, and then turn around)
09:11
<@Vornicus>
The view distance may be shorter on mac.
09:11
<@ToxicFrog>
Let's ask shockmap!
09:11
<@ToxicFrog>
(the hacked-together C program I am working on replacing)
09:11
<@ToxicFrog>
http://www.funkyhorror.net/toxicfrog/projects/shockmap/03_Maintenance.html
09:12
<@ToxicFrog>
The central area of Deck 3 appears to be just inside the limit, so yeah, open a few doors and you could exceed it.
09:12
<@Vornicus>
It's from an alcove on the north end to an alcove on the south end. 15 to the 2-deep alcove there.
09:13
<@ToxicFrog>
The 2-deep alcove there is actually a small crawlspace near the ceiling and is pitch-black anyways.
09:13
<@Vornicus>
Huh.
09:13
<@Vornicus>
The east-west passages in the southern one also do it, but I think that's dark.
09:14
<@ToxicFrog>
Yeah, most of the central area is dark.
09:14
<@ToxicFrog>
The better for invisible mutants to sneak up on you in.
09:14
<@Vornicus>
The southern maintenance tunnels, I mean
09:14
<@ToxicFrog>
Even in the endgame, I go through Deck 3 at a dead run from elevator to elevator, stopping for nothing.
09:15
<@Vornicus>
I think the Very Radioactive straight zone in R is long enough.
09:15
<@Vornicus>
Or I thought that area was Very Radioactive, I see Rad: no on it
09:16
<@Vornicus>
(west center, it goes east-west and is 2 units wide)
09:17
<@ToxicFrog>
That's actually not, although everything around it is; it's the shielded tunnel you take to get to the shield safety override control
09:17
<@Vornicus>
The north side of the hub corridor in 5 should be long enough.
09:18
<@ToxicFrog>
Looks like it, yeah.
09:18
<@Vornicus>
As should the corridor that goes past the escape pods, along with those two hangars.
09:18
<@ToxicFrog>
That hall is damn dark in game, though.
09:18
<@Vornicus>
Though I don't know if you can see that.
09:19
<@ToxicFrog>
The one that goes past the escape pods definitely would be, but getting both doors open at the same time is AFAIK impossible.
09:19
<@ToxicFrog>
Or at least, getting them open at the same time while far enough away.
09:19
<@ToxicFrog>
Maybe with maxed-up JET ROLLERSKATES.
09:19
<@Vornicus>
Similarly there's crawlspaces on 6...
09:20
<@ToxicFrog>
The crawlspace is dark and filled with rollerbombs, I think, although I'd have to go back there to check.
09:20
<@ToxicFrog>
(fuck Rollerbombs)
09:21
<@Vornicus>
Alpha Grove, looking south from the northeast corner... may have overhangs.
09:21
<@ToxicFrog>
Oh hey. So, I said it was down to 1s?
09:21
<@ToxicFrog>
That's with the profiler enabled.
09:21
<@ToxicFrog>
Without profiling it's more like 0.3s.
09:21
<@Vornicus>
Wheeee
09:22
<@Vornicus>
Delta Grove, looking east from the westernmost room...
09:22
<@Vornicus>
The CSpaces have many places where it happens.
09:25
<@Vornicus>
Indeed you can hardly avoid it in CSpace, seeing as the walls are seethrough.
09:32
<@ToxicFrog>
True.
09:32
<@ToxicFrog>
Heh. "This doesn't make sense...the data it's getting for tocbuf is complete garbage! It's like it's reading from a different part of the file!"
09:32
<@ToxicFrog>
Some fiddling around in the debugger later, I realize what I'm looking at:
09:33
<@ToxicFrog>
local tocbuf = fin:read(nrof_chunks * 10)
09:33
<@ToxicFrog>
fin:seek("set", data_offs)
09:33
<@ToxicFrog>
...bunch of debugging code and whatnot goes here...
09:33
<@ToxicFrog>
local tocbuf = fin:read(nrof_chunks * 10)
09:33
<@Vornicus>
Um
09:33
<@Vornicus>
Yep.
09:33
<@ToxicFrog>
Yeah, that would do it.
09:35
<@Vornicus>
It's not quite as fun as class Foo { ... Foo foo = new Foo(); ... } though
09:52 AnnoDomini [~farkoff@Nightstar-29296.neoplus.adsl.tpnet.pl] has quit [Ping Timeout]
09:55 You're now known as TheWatcher
09:59 AnnoDomini [~farkoff@Nightstar-28935.neoplus.adsl.tpnet.pl] has joined #Code
09:59 mode/#code [+o AnnoDomini] by ChanServ
10:53 You're now known as TheWatcher[d00m]
10:58 Rhamphoryncus [~rhamph@Nightstar-7168.ed.shawcable.net] has quit [Quit: Rhamphoryncus]
11:21 Consul_ [~Consul__@Nightstar-2425.dsl.sfldmi.ameritech.net] has quit [Ping Timeout]
11:24 Consul [~Consul__@Nightstar-2425.dsl.sfldmi.ameritech.net] has joined #code
11:24 mode/#code [+o Consul] by ChanServ
11:32 Reivthia [~Orthianz@Nightstar-22340.xdsl.xnet.co.nz] has quit [Ping Timeout]
12:08 You're now known as TheWatcher
13:00 gnolam [lenin@Nightstar-1382.A163.priv.bahnhof.se] has joined #Code
13:01 mode/#code [+o gnolam] by ChanServ
13:03 Thaqui [~Thaqui@121.98.166.ns-22683] has quit [Client exited]
13:11 gnolam [lenin@Nightstar-1382.A163.priv.bahnhof.se] has quit [Ping Timeout]
13:14 gnolam [lenin@Nightstar-1382.A163.priv.bahnhof.se] has joined #Code
13:14 mode/#code [+o gnolam] by ChanServ
13:34 Attilla [~The.Attil@92.1.54.ns-25924] has joined #code
13:34 mode/#code [+o Attilla] by ChanServ
14:41 gnolam [lenin@Nightstar-1382.A163.priv.bahnhof.se] has quit [Ping Timeout]
14:43 gnolam [lenin@Nightstar-1382.A163.priv.bahnhof.se] has joined #Code
14:43 mode/#code [+o gnolam] by ChanServ
14:53 Tarinaky_ [~Tarinaky@Nightstar-16638.plus.com] has joined #code
14:54 TarinakyKai [~Tarinaky@Nightstar-16638.plus.com] has quit [Ping Timeout]
15:08 You're now known as TheWatcher[afk]
16:07 Syloqs_AFH [~Syloq@Admin.Nightstar.Net] has joined #code
16:08 Syloqs_AFH is now known as Syloqs-AFH
16:09 Derakon[AFK] is now known as Derakon
16:34 You're now known as TheWatcher
17:44 Namegduf [namegduf@82.25.200.ns-12231] has joined #code
18:11
<@SmithKurosaki>
Windows conversation, see here: http://xkcd.com
18:20 Namegduf [namegduf@82.25.200.ns-12231] has quit [Quit: More partitioning...]
19:13
<@gnolam>
Arrrgh
19:14
<@gnolam>
Testing 10 minute averages isn't fun. :P
19:16
<@gnolam>
Step 1: Compile. Step 2: Set up the test. Step 3: Go and do something interesting for 10 minutes. Step 4: Check the result, go back to step 1. :P
19:16
<@Derakon>
Hey, it's better than 10 minute compiles, where you come back ten minutes later to "Missing semicolon on line 1523".
19:24
<@gnolam>
If it takes 10 minutes to get to that point, I'd say there's something wrong with your build setup.
19:24
<@Derakon>
The "something wrong" would probably be that you're working with two-decade-old hardware.
19:39 GeekSoldier [~Rob@Nightstar-8573.midstate.ip.cablemo.net] has joined #code
19:39 mode/#code [+o GeekSoldier] by ChanServ
19:50 * Derakon amuses himself with his first "AI" object in Jetblade. http://derakon.dyndns.org/~chriswei/games/jbrl/actions/spawn1.gif (warning: 1MB GIF)
19:52
<@TheWatcher>
But hey, at least 10 minute builds would give time for office chair swordfights
19:52
<@SmithKurosaki>
^5 TW
20:13
<@Vornicus>
Arg, who the fuck decided that Excel should error when given arguments of different signs to floor?
20:20
<@gnolam>
It takes more than one argument?
20:21
<@Vornicus>
Yes.
20:22
<@Vornicus>
And considering that I can write it unambiguously in one line of code and have it /not/ throw an error, there's something wrong here.
20:24
<@Vornicus>
As it is, to get the same behavior, for negative inputs I have to switch to ceiling.
20:28 Rhamphoryncus [~rhamph@Nightstar-7168.ed.shawcable.net] has joined #code
20:37
< simontwo>
obviously... ;)
20:45 * TheWatcher ponders these image save functions
20:45
<@TheWatcher>
To patch SDL_image or to not patch SDL_image... hmmm.
21:01 * TheWatcher eyes the SDL_image code
21:01
<@TheWatcher>
... yeah, I'll not be patching that
21:43
<@McMartin>
heh
21:43
<@McMartin>
sidelib~
21:53
<@ToxicFrog>
What's the contract there, anyways? floor(x,y,z) -> ?x?,?y?,?z??
21:56
<@Vornicus>
floor(x,y) = (x // y) * y
21:57
<@Vornicus>
It's the highest multiple of y such that x is no smaller than it
22:00
< Thalass>
huzzah. I got the google earth gps .kml file thingy working. Only it's incorrect by about a kilometre. But whatever. :P
22:03
<@gnolam>
Thalass: what's it for?
22:04
< Thalass>
so i can use google earth as a gps program thingo.
22:04
< Thalass>
I had to learn a little bit of python fiddling but it seems ok so far. Good enough for me anyway :P
22:04
< Thalass>
My code-fu is now at about level 0.02
22:05
<@McMartin>
Floating-point instability gets that up to 0.020000000000199999999
22:22
< Thalass>
whee
22:22 * Derakon facepalms.
22:24 NamegPartitioning [namegduf@82.25.200.ns-12231] has joined #code
22:26 NamegPartitioning is now known as Namegduf
22:30 * gnolam stabs Valve for making everything in Source unicode-aware... except for Hammer.
22:30 * McMartin <?> Unicode
22:55 NSGuest-1445 is now known as EvilCaliforniaLord
--- Log closed Wed Jul 22 00:00:36 2009
code logs -> 2009 -> Tue, 21 Jul 2009< code.20090720.log - code.20090722.log >