code logs -> 2012 -> Wed, 06 Jun 2012< code.20120605.log - code.20120607.log >
--- Log opened Wed Jun 06 00:00:16 2012
00:02
< Rhamphoryncus>
Wrote out my vertex indices one way, get 0..46. Try another way and get 0..44 x_x
00:03
< Rhamphoryncus>
Oh, I see. Off by 2 early in the first one :/
00:15
<~Vornicus>
man I get crazy ideas.
00:17
<~Vornicus>
a minecraft texture pack editor with "preview"
00:19
< Rhamphoryncus>
ahaha. std::cout << somevector gives an error. And a note about every possible overloading of <<
00:20
<&McMartin>
Oh, C++
00:22
< Rhamphoryncus>
unfortunately
00:23 io|voting is now known as iospace
00:24
<&McMartin>
That was in the same tone of voice one uses to exasperatedly reprove someone from whom you expect no better.
00:26
< Rhamphoryncus>
heh
00:26
< Rhamphoryncus>
Well I did try haskell :/
00:27
<~Vornicus>
http://weknowmemes.com/2012/03/oh-you-dog/ ?
00:27
<&McMartin>
C++ really is the best choice overall for a goodly number of use cases.
00:28
< Rhamphoryncus>
yeah
00:28
<@ToxicFrog>
Sadly, there's also a very large set of use cases for which it's a terrible choice but which people insist on using it for. >.<
00:29
< Rhamphoryncus>
"overall" being the key word
00:29 Derakon[AFK] is now known as Derakon
00:29
< Rhamphoryncus>
If pypy ever gets a good threading model worked out and implemented I might be able to use it instead
00:30
<&McMartin>
I kind of want to try performance testing the stock Java Canvas.
00:38
< RichyB>
Rhamphoryncus, I take it that you don't consider "multi-process plus an IPC clusterfuck" to be a good threading model? :)
00:39
< Rhamphoryncus>
no :)
00:40
< Rhamphoryncus>
Especially not with python objects that, even with mmap, would requires serializing/deserializing
00:40
< RichyB>
Mmmm.
00:41 RichyB [MyCatVerbs@Nightstar-86656b6c.cable.virginmedia.com] has left #code ["Leaving"]
00:41 RichyB [MyCatVerbs@Nightstar-86656b6c.cable.virginmedia.com] has joined #code
00:41
< RichyB>
Wrong button again.
00:41
< Rhamphoryncus>
heh
00:41
< RichyB>
I need to recompile xchat with control-W rebound to control-backspace, and "close window" bound to some other key.
00:42
< Rhamphoryncus>
hrm. My vertices are correct. My indices are correct. They work together with a subdivision of 2. However, they somehow fail when I use a subdivision of 1 or 3
00:42
< RichyB>
For some reason that keybinding is completely hardcoded.
00:48
< Rhamphoryncus>
how the heck do I manage to screw up a subdivision of 1. That's *1* triangle. 3 vertices, 3 indices. I'm printing them, they look fine
00:49
<&McMartin>
"I don't want you to pray to the duck. I want you to ASK THE DUCK YOUR QUESTION."
00:58
< RichyB>
McMartin, you're using a rubber duck to get people to solve their own problems by putting their questions into words? :)
00:58
<&McMartin>
It came to mind for some reason
00:59
< RichyB>
"Pray to the Duck" has to be a good name for something.
01:00
< RichyB>
Maybe a band name, more likely a tiny platform shooter or something.
01:00
<&McMartin>
SOMEBODY GET THIS DUCK AWAY FROM ME
01:00 * RichyB blinks. Uh...?
01:01
< RichyB>
Ooh, actually, "SOMEBODY GET..." would be a very good band name indeed.
01:01
< Rhamphoryncus>
woot got it
01:01
< RichyB>
oh that reminds me
01:01
< RichyB>
http://pleasingfungus.com/Manufactoria/
01:02
< RichyB>
The whole of #code needs to be playing this.
01:02
< Rhamphoryncus>
Can't just replace sizeof(myarray) with sizeof(myvertex). myvertex.size() is wrong too.
01:02
< RichyB>
Really fun game about making tiny Turing machine things. :)
01:02
< Rhamphoryncus>
myvertex.size() * sizeof(myvertex[0]) is right though
01:03
<&McMartin>
Oh god, Manufactoria
01:03
<&McMartin>
Been there, did that, long ago.
01:03
< RichyB>
Popped up on reddit a day or so ago
01:03
< RichyB>
someone claimed that the authors had not actually completed the latter challenges, merely proved them possible with queuing theory. ;)
01:04
<&McMartin>
I'm pretty sure I solved through Metatron.
01:04
<&McMartin>
It may have expanded since I last played.
01:05
< RichyB>
I'm through about half the levels at the moment.
01:05
< RichyB>
So, about 10% of the way through in terms of effort. :)
01:10
< Rhamphoryncus>
ah, finally started to feel sluggish. I think that's a personal record on triangle counts
01:11
<&McMartin>
?
01:11
< Rhamphoryncus>
turned the subdivision up to 1024.
01:11
< Rhamphoryncus>
half a million vertices
01:13
< Rhamphoryncus>
Even that is probably just input lag. The software end is only sending 3 glDrawElements() commands per frame
01:14
< Rhamphoryncus>
half a million vertices, each is used 6 times, each triangle uses 3, so a million triangles. I do that 3 times so 3 million triangles/frame
01:15
< Rhamphoryncus>
screen has 1764000 pixels so 2 triangles/pixel :D
01:18
<~Vornicus>
what craziness is this.
01:20
< Rhamphoryncus>
heh, double the subdivision (4x the triangles) and it feels like single digit fps
01:21
<&McMartin>
Just Use A Fragment Shader
01:21
< Rhamphoryncus>
Naw, this is just me screwing around
01:22
< Rhamphoryncus>
I have the map format in mind so I want a specific triangle tessellation to match it. This generates the tessellation for me rather than hardcoding it
01:23
< Rhamphoryncus>
All I have to do is change one number to go from 12 triangles to millions. Wouldn't you play with that knob?
01:24
<~Vornicus>
12 triangles?
01:24
<~Vornicus>
What shape are you using?
01:24
< Rhamphoryncus>
1 triangle chopped into 4, with 2 friends
01:28 McMartin_ [mcmartin@Nightstar-3a3f32ba.pltn13.sbcglobal.net] has joined #code
01:29 himi [fow035@D741F1.243F35.CADC30.81D435] has joined #code
01:29 mode/#code [+o himi] by ChanServ
01:30
< Rhamphoryncus>
http://i.imgur.com/DnHFz.png
01:30
< Rhamphoryncus>
Something that awesome has to be seen to be believed
01:31 McMartin [mcmartin@Nightstar-703e232b.pltn13.sbcglobal.net] has quit [Ping timeout: 121 seconds]
01:32 McMartin_ [mcmartin@Nightstar-3a3f32ba.pltn13.sbcglobal.net] has quit [Ping timeout: 121 seconds]
01:33 McMartin [mcmartin@Nightstar-3a3f32ba.pltn13.sbcglobal.net] has joined #code
01:33 mode/#code [+ao McMartin McMartin] by ChanServ
01:40 Noah [nbarr@Nightstar-8f3ee3b6.pools.spcsdns.net] has quit [Ping timeout: 121 seconds]
01:46 You're now known as TheWatcher[T-2]
01:51 You're now known as TheWatcher[zZzZ]
02:02 iospace is now known as io|nervous
02:32 Kindamoody[zZz] is now known as Kindamoody
02:32 celticminstrel [celticminst@Nightstar-5d22ab1d.cable.rogers.com] has joined #code
02:35 * celticminstrel is wondering if there is any way to get cout, cerr, and clog to all output in different colours in Xcode's console window.
02:39 Attilla [Obsolete@Nightstar-5f81180b.as43234.net] has quit [Ping timeout: 121 seconds]
02:49 RichyB [MyCatVerbs@Nightstar-86656b6c.cable.virginmedia.com] has quit [Ping timeout: 121 seconds]
02:49
< Rhamphoryncus>
hypothetically.. redirect them to separate programs to add on the colour to each line
02:50
< Rhamphoryncus>
Although that could also break if they interleave wrong.
02:51
< Rhamphoryncus>
Only way they wouldn't break is if the console itself used 3 different fd's and did its own
02:51
< Rhamphoryncus>
oh, a separate program to serve that purpose too
02:52
< Rhamphoryncus>
rather, make a single program that collects the 3 as different fd's, then adds colour and outputs to a single fd
02:59
< Rhamphoryncus>
spawn subprocess, select on the 3 fd's, read from whichever one, print colour, print what you read, print reset to base colour, go back to select
03:03
< celticminstrel>
...sounds insanely complicated. :P
03:04
< celticminstrel>
What I'd like are iostream mannipulator functions like endl, but I imagine those are pretty unlikely.
03:05
< celticminstrel>
I don't even know if Xcode's console supports any kind of colour.
03:25
<&McMartin>
*yes*
03:26
<&McMartin>
Clojure: Now more comfortable to me than scheme, becuase map, filter, take, etc. are all lazy.
04:12
<&McMartin>
Also, (range) defaults to returning all the natural numbers
04:12
<~Vornicus>
...nick
04:12
<~Vornicus>
nice
04:13 Noah [nbarr@Nightstar-8f3ee3b6.pools.spcsdns.net] has joined #code
04:31
< Rhamphoryncus>
Only the natural? If it was really good it'd return all the integral numbers ;)
04:31
<&McMartin>
Ehn, that's just another map.
04:58 Rhamphoryncus [rhamph@Nightstar-5697f7e2.abhsia.telus.net] has quit [Client exited]
05:09 io|nervous is now known as io|blargh
06:08
<~Vornicus>
arg! Why am I so damn afraid to change code
06:10
< Noah>
Vornicus: Because you're aren't using a versioning system
06:10
<~Vornicus>
except I am.
06:11
< Noah>
Then change your code pansy
06:12
<~Vornicus>
WHy do you think I'm complaining about my mentality?
06:15
< Noah>
Need more and/or less medication?
06:15
<~Vornicus>
Probably.
06:32 Derakon is now known as Derakon[AFK]
06:34 * Vornicus pokes around pygame looking for a vsync setting or something.
06:35
<&McMartin>
SDL_Flip should autovsync.
06:36
<~Vornicus>
Okay, does it block on that, or is my framerate unlimited?
06:36
<~Vornicus>
("unlimited" in the sense that I can flip as often as it lets me and I'll only get the last frame before vsync hits, that is)
06:37
<&McMartin>
Trying to pull this up now
06:37
<&McMartin>
I believe each call to Flip waits for vsync and clears your background though
06:38
<~Vornicus>
Okay. That makes my life so much easier, I can do things without manual waits.
06:39
<&McMartin>
My statement is, I think, specific to SDL 1.2 and SDL_DOUBLEBUF
06:39
<&McMartin>
Which you want, for serious
06:40
<&McMartin>
libsdl.org is being insanely slow >_<
06:40
< celticminstrel>
I'm not actually using double buffering.
06:40
<&McMartin>
UQM doesn't either, but most circumstances will want it.
06:41
< celticminstrel>
I think I didn't only because it's slightly more work. I can't remember though; I made that decision a year or two ago.
06:42
<&McMartin>
UQM inherited this crazy triple-buffered monstrosity and it was easier to use updaterect with it than to try to change the engine to be double-buffered right.
06:45
< celticminstrel>
I suppose I could make that change. I don't think I have any reason not to.
06:45
<&McMartin>
I can't reach http://www.libsdl.org/cgi/docwiki.cgi/SDL_Flip
06:45
<~Vornicus>
I can.
06:45
< celticminstrel>
I can't, I think.
06:46
<&McMartin>
There it goes.
06:46
< celticminstrel>
Changing to double buffering just means replacing SDL_UpdateRect(s) with SDL_Flip?
06:46
<&McMartin>
It looks like you have to have the DOUBLEBUF bit set *and* have made your video a hardware surface.
06:46
< celticminstrel>
Oh.
06:46
< celticminstrel>
Maybe that's why I didn't do it.
06:46
< Noah>
No load for me
06:46
< celticminstrel>
I set it as a software surface.
06:46
<&McMartin>
SDL_Flip is short for SDL_UpdateRect(NULL) if you don't have various things set, though.
06:47
<&McMartin>
Well, for SDL_UpdateREct(screen, 0, 0, 0, 0)
06:47 Reiver [reiverta@5B433A.F67240.51130B.1334CB] has joined #code
06:48
<&McMartin>
ISTR there was a way to wait for vertical retrace though.
06:48
<~Vornicus>
Oh, I see
06:48
< celticminstrel>
Blah, it's 2am.
06:49
<~Vornicus>
Okay: I need to call display.setmode(resolution, FULLSCREEN | DOUBLEBUFF | HWSURFACE), apparently
06:50
< celticminstrel>
Hm? What's this?
06:50
< celticminstrel>
.
06:50
<~Vornicus>
because I need fullscreen to get a hardware surface, and only hardware surfaces with double buffering get flip to work like that.
06:52
< celticminstrel>
No, I mean the part where it doesn't look like an SDL call.
06:52
<~Vornicus>
it's pygame
06:52
< celticminstrel>
Ah.
06:53
<~Vornicus>
technically it's pygame.display.setmode(resolution, pygame.FULLSCREEN | pygame.DOUBLEBUF | pygame.HWSURFACE)
06:54 Netsplit *.net <-> *.split quits: @McMartin, @PinkFreud
06:54
<~Vornicus>
yay
06:54 * Vornicus beats kak with a stick
06:58
< Noah>
:\
06:58
< Reiver>
ey Vorn
06:58
<~Vornicus>
ey Reiv
07:00 celticminstrel [celticminst@Nightstar-5d22ab1d.cable.rogers.com] has quit [[NS] Quit: And lo! The computer falls into a deep sleep, to awake again some other day!]
07:07 * Vornicus pokes at the various convolutions you need in order to get fullscreen to not blow goats.
07:09
<~Vornicus>
Okay, 1: the display -- and the surface -- go away when you tab out; This means that when you tab out you can't blit, so you need to make sure that you drop out of the render loop.
07:12
<~Vornicus>
THis means you have a tabbed-away event loop where you pick up active events, quits, and probably user events, and handle those appropriately, waiting for the world to come back.
07:15 Netsplit over, joins: &McMartin, @PinkFreud
07:15 Netsplit *.net <-> *.split quits: Reiver, Tarinaky, Vornicus, franny, jerith, io|blargh, @rms
07:16
< Noah>
Anyone tried Smuxi?
07:16 Reiver [reiverta@5B433A.F67240.51130B.1334CB] has joined #code
07:16 franny [fran@Nightstar-e67f9d08.com] has joined #code
07:16 jerith [jerith@ServerAdministrator.Nightstar.Net] has joined #code
07:16 rms [rstamer@genoce.org] has joined #code
07:16 io|blargh [Alexandria@Nightstar-e67f9d08.com] has joined #code
07:16 Tarinaky [tarinaky@Nightstar-dd7e4a05.net] has joined #code
07:16 Vornicus [vorn@ServerAdministrator.Nightstar.Net] has joined #code
07:16 ServerMode/#code [+aoooq jerith jerith rms Vornicus Vornicus] by *.Nightstar.Net
07:17
<~Vornicus>
well that was fun.
07:17
<~Vornicus>
Anyway.
07:18
< Noah>
Welcome back, so
07:18
< Noah>
Anyone tried Smuxi?
07:18 * Vornicus repeats his last few lines for McM at least.
07:18
<~Vornicus>
Okay, 1: the display -- and the surface -- go away when you tab out; This means that when you tab out you can't blit, so you need to make sure that you drop out of the render loop.
07:18
<~Vornicus>
THis means you have a tabbed-away event loop where you pick up active events, quits, and probably user events, and handle those appropriately, waiting for the world to come back.
07:19
<~Vornicus>
You probably also want to Pause The Game when this happens.
07:19
<~Vornicus>
But that I think can wait until I have, uh. A pause screen?
07:19
<&McMartin>
Hrm
07:19
<&McMartin>
I was under the distinct impression that SDL handled most of that stuff for you.
07:19
< Reiver>
Vorn: What are you doing?
07:20
<~Vornicus>
Reiver: making a game.
07:20
< Reiver>
Vorn: What are you making?
07:20
<~Vornicus>
Vornda.
07:20
<~Vornicus>
Possibly followed by Vornblo.
07:20
<~Vornicus>
or concurrent with.
07:20
<~Vornicus>
Anyway.
07:20
<~Vornicus>
The difficulty right now is that trying to blit to a screen that's been tabbed away blows up.
07:21
< Reiver>
Vornda? Vornblo?
07:21 * Vornicus is not creative with names, okay
07:21
< Reiver>
da? blo?
07:21
<@Tamber>
Vornda, as opposed to Vornyet?
07:21
<~Vornicus>
..tamber wins
07:21
<~Vornicus>
no, Zelda, Diablo
07:22
<~Vornicus>
other things I have in my head are Vornlink (uplink) and Vorns Ahoy (ducks ahoy)
07:22
< Reiver>
... you plan to make a diablo
07:22 io|blargh is now known as iospacedout
07:22
< Reiver>
why do you plan to make a diablo
07:22
<~Vornicus>
Because it's in there
07:22
<~Vornicus>
and for the love of god it needs to get out.
07:22
< Reiver>
huh.
07:22
< Reiver>
I am curious how Your DIablo Is Different.
07:24
<~Vornicus>
Aside from taking significant advice from the original Diablo - randomly chosen plot quests, most skills are universal, total persistence - I intend on having procedurally generated level sequence, not just procedurally generated level.
07:25
<~Vornicus>
s.
07:29
<~Vornicus>
Other things I was thinking about: "ability scores" might be replaced entirely with passive skilloids like Torchlight has (except that instead of how Torchlight does it, you'd have passive skill points and active skill points)
07:31
< Reiver>
Diablo 1 had largely universal skills?
07:31 * Reiver likes that idea
07:32
< Reiver>
Though actual stats have their place too.
07:32
< Reiver>
And I do like how Torchlight did theirs, actually
07:32
<~Vornicus>
Aside from disarm, field repair, and field recharge, everything that a character in diablo 1 could do, any other character could do as well.
07:32
< Reiver>
"Your STR is a +X% bonus to melee"
07:32
< Reiver>
huh, classes were D2? DIdn't even realise that.
07:33
<~Vornicus>
-- it's just that all of these added skills were spells, and the wizard was the only one who could really take advantage of it.
07:33
< Reiver>
One other system I've rather enjoyed has been Dungeons of Dredmor.
07:34
< Reiver>
Wherein a character can pick (or randomly determine) half a dozen linear skill paths at chargen.
07:34
<~Vornicus>
no, D1 had classes - they dictated 1. your maximum in the four ability scores, 2. which of the three class-specific skills you got, 3. your attack rates with various weapons, 4. how your int and con affected your mp and hp, 5. the model and voice actor.
07:34
< Reiver>
Each point is something new, or at least a buff of the old.
07:34
< Reiver>
aha. So... preferences or biases, rather than Totally New And Unique.
07:35
<~Vornicus>
Basically, yeah.
07:35
<~Vornicus>
The only thing that was truly different and not Just A Number was that rogues got disarm and warriors and wizards got shitty field-recharge and field-repair abilities.
07:36 * McMartin eyes this code, which is impossibly efficient.
07:36
<~Vornicus>
Perhaps it's not being run.
07:36
<&McMartin>
I think the compiler is secretly memoizing this function.
07:36
<~Vornicus>
...I was joking, man
07:37
<~Vornicus>
What I dislike about Torchlight's passive skills is that in some sense they're "lost levels" - they're not so significantly powerful, often, that it feels good to take them.
07:38
<&McMartin>
Vornicus: No, seriously, it's a brute-force search, on the problem Problem Euler says should take until the heat death of the universe
07:38
<&McMartin>
And it's taking a millisecond
07:38
<~Vornicus>
Wait, the giant number pyramid?
07:39
<&McMartin>
Yes
07:39
<&McMartin>
This code is clearly a raw recursive search
07:39
<&McMartin>
And it just *finishes*.
07:39
<&McMartin>
It's NOT ALLOWED TO DO THAT.
07:39
<~Vornicus>
and, I presume, prints the answer
07:39
<~Vornicus>
What language?
07:39
<&McMartin>
C++
07:39
<~Vornicus>
What the shit
07:40
<&McMartin>
YEs
07:40
<&McMartin>
I do not understand
07:40
< Reiver>
McMartin: Clearly you need more cout >>
07:41
<~Vornicus>
What compiler?
07:41
<&McMartin>
gcc 4.7
07:42 * McMartin makes the function impure.
07:42
<&McMartin>
Oh, hm
07:42
<&McMartin>
This is smaller.
07:42
<&McMartin>
OK.
07:42
<&McMartin>
Freakout over.
07:43 * McMartin abbreviated the triangle. -_-
07:43
<~Vornicus>
-_-
07:43
< Reiver>
snrk
07:43
< Reiver>
triangle?
07:44
<&McMartin>
It's a function on a Bunch Of Numbers, arranged in a triangle.
07:44
<&McMartin>
Linear with dynamic programming techniques, exponential without.
07:44
<&McMartin>
I *did* see some optimizations naming pure vs. impure, though.
07:44
<~Vornicus>
http://projecteuler.net/index.php?section=problems&id=67
07:46
<~Vornicus>
pure vs impure?
07:49
<&McMartin>
A pure function has no side effects and doesn't depend on anything outside of context
07:50
<&McMartin>
In particular, that means that if you call it twice with the same arguments, you get the same result.
07:51
< Reiver>
... isn't that fairly standard for a function?
07:52
<&McMartin>
Not really.
07:52
<&McMartin>
getX() tends to return different values a lot.
07:52
<&McMartin>
Anything that's a function of your fields is usually not the same on each call
07:52
< Reiver>
...aha, right.
07:53
<~Vornicus>
So a pure function is a const function, and if it's a method, on a const object.
07:58
<~Vornicus>
Also I like how you called it Problem Euler.
08:00
<~Vornicus>
Reiver: anyway I was also thinking (among other things) about an explicit level system for equipment (in the sense that equipment is generated with a particular level and its numbers are based directly on that), some sort of crafting, uh...
08:05 Vash [Vash@Nightstar-241cb5d4.wlfrct.sbcglobal.net] has quit [[NS] Quit: I lovecraft Vorn!]
08:07
<~Vornicus>
(an explicit level system, perhaps as opposed to an actual mundane/magical divide)
08:08
< Reiver>
hn
08:08
< Reiver>
Why the leveling? Just to ensure you don't get crap at high levels?
08:09
<~Vornicus>
Partly that
08:09
<~Vornicus>
Partly, one of the things I hate about Diablo is that I can't tell how good the mundane stuff is compared to "lower tier" magical stuff
08:09
< Reiver>
Just be sure to avoid the Borderlands approach.
08:09
<~Vornicus>
Consider a really kitted out leather armor, compared to full plate
08:10
< Reiver>
... do you mean in that you have to check how good the mundane is?
08:10
<~Vornicus>
In a large sense, yes.
08:11
< Reiver>
Idea I always toyed with there: The stuff can be mundane/magic/etc, sure, whatever
08:11
<~Vornicus>
Whereas, sensibly balanced, I can tell just by the level number approximately how it stacks up.
08:11
< Reiver>
But the shade thereof changes based on relative value/awesome to you.
08:11
< Reiver>
... which may well be 'level number, but hidden'
08:12
<~Vornicus>
slep
08:12
< Reiver>
ni!
08:14 himi [fow035@D741F1.243F35.CADC30.81D435] has quit [Operation timed out]
09:06
<&McMartin>
Hm.
09:06
<&McMartin>
I guess I'll have to save this one for some other time.
09:10 You're now known as TheWatcher
09:11
<@TheWatcher>
Reiver: re Unity and "How many of those are required for the initial development?"
09:12
< Reiver>
yah?
09:13
<@TheWatcher>
That's a tricky one, but it's also a question that doesn't really make much sense
09:13
<@TheWatcher>
I'm writing something free, open source, etc.
09:13
< Reiver>
aha, right then
09:13
< Reiver>
So you can't play with the baseline then go commercial engine later for polish features.
09:14
<@TheWatcher>
Even if they aren't needed for 'initial dev', I'd still be $1500 out of my own pocket the minute I wanted to go beyond that... as would anyone wanting to use the code
09:16
< Reiver>
Yeah, not good for that
09:16
< Reiver>
But then this is not terribly surprising given that Unity is intended to be a commercial product.
09:16
< Reiver>
A bit like the Microsoft Game Maker (except not being pathetic)
09:17
< Reiver>
Or the Unreal engine, etc.
09:17
<@TheWatcher>
Yeah, I was mainly looking at it for the platform neutrality
09:18
< Reiver>
Yeah
09:18
< Reiver>
There /isn't/ a decent, solid, platform-agnostic free and open source game engine
09:19
< Reiver>
If there was Unity wouldn't be making inroads~
09:33 RichyB [MyCatVerbs@Nightstar-3b2c2db2.bethere.co.uk] has joined #code
10:26 * TheWatcher eyes this
10:27
<@TheWatcher>
How is this even possible? I have the graphics driver set up to force vsync on, and yet here is this game running at Insaneo FPS because it's not got vsync on
10:35 * TheWatcher tries to dig up which registry key controls vsync in direct3d
10:48 * TheWatcher tries to get his head back into this code
10:49
<@TheWatcher>
It should not be this hard; it's only been 4 days since I last worked on it, sheesh
10:54 Attilla [Obsolete@Nightstar-5f81180b.as43234.net] has joined #code
11:12 Attilla [Obsolete@Nightstar-5f81180b.as43234.net] has quit [[NS] Quit: ]
--- Log closed Wed Jun 06 11:19:29 2012
--- Log opened Wed Jun 06 11:19:37 2012
11:19 TheWatcher [chris@Nightstar-3762b576.co.uk] has joined #code
11:19 Irssi: #code: Total of 22 nicks [5 ops, 0 halfops, 0 voices, 17 normal]
11:19 mode/#code [+o TheWatcher] by ChanServ
11:20 Irssi: Join to #code was synced in 38 secs
11:39 iospacedout is now known as io
11:50 cpux [cpux@Nightstar-c5874a39.dyn.optonline.net] has quit [Ping timeout: 121 seconds]
12:04 himi [fow035@Nightstar-5d05bada.internode.on.net] has joined #code
12:04 mode/#code [+o himi] by ChanServ
12:11 Attilla [Obsolete@Nightstar-5f81180b.as43234.net] has joined #code
12:34
<&McMartin>
It turns out that designing meaningful and useful unit tests for an assembler is kind of interesting.
12:37
<&McMartin>
Also, go me
12:38 * McMartin hits a brick wall due to bad spec, discovers he already did all of the infrastructure needed to do it Actually Right 10 years ago.
12:38
<&McMartin>
Now all I have to do is extend a few tables.
13:01 io is now known as io|gone
13:02
< Reiver>
... 10 years ago is quite the achievement, what are you /doing/
13:03
<&McMartin>
Modernizing the old project I wrote to teach myself Python ten years ago, to turn it into a utility Worthy Of Being Out There.
13:03
< RichyB>
Mad props.
13:03
< Reiver>
Hunh.
13:03
< Reiver>
Python is old now~
13:03
<&McMartin>
I wanted a compiler switch to turn off the "collapse" pass during instruction selection.
13:03
<&McMartin>
This is a tremendously bad idea - many instructions relied on this for proper behavior.
13:03
< RichyB>
Python has been old for ages.
13:04
<&McMartin>
The right thing to do is to have new pseudoinstructions that are basically "don't collapse this instruction", but that requires being able to map multiple opcodes to a single binary point.
13:04
<&McMartin>
Turns out I planned for that 10 years ago when I wrote the script that builds the Opcode tables out of the instruction set description, even though I never used it. ^_^
13:04
<&McMartin>
And it worked! I must have tested it back then.
13:05
<&McMartin>
(The project: https://github.com/michaelcmartin/Ophis )
13:18
<&McMartin>
SUCCESS.
13:18
<&McMartin>
Ophis 2 is now feature-complete.
13:18
<&McMartin>
Up next: testing, documentation
13:19
< RichyB>
Bonus. :)
13:19
<&McMartin>
Though now it's time to head to work.
13:19
<&McMartin>
Boo, hiss.
13:20
< RichyB>
Ah well.
13:20
< RichyB>
Good luck, travel safely.
13:24
<&McMartin>
Things that are awesome: a <10min commute entirely on surface streets
13:25 * TheWatcher applies vast jealousy
13:25
<&McMartin>
TheWatcher: It is 0530. :/
13:26
<@TheWatcher>
(that said, my normal 'commute' tends to be 'change virtual desktop', unless I actually need to go into the office for meetings)
13:26
<@TheWatcher>
(in the latter case, it's an hour and 40 minutes each way >.<)
13:28
<@TheWatcher>
Hopefully you don't need to do that one too often?
13:31 celticminstrel [celticminst@Nightstar-5d22ab1d.cable.rogers.com] has joined #code
13:42 Kindamoody is now known as Kindamoody|afk
13:47
<&McMartin>
No, not really
13:47
<&McMartin>
On the other hand, huh, sun is already up
14:26 io|gone is now known as iofficspace
14:28 Reiver [reiverta@5B433A.F67240.51130B.1334CB] has quit [Client closed the connection]
14:38 Orthia [orthianz@ServerAdministrator.Nightstar.Net] has quit [Ping timeout: 121 seconds]
14:39
<@TheWatcher>
Bleegh, why can I never find code snippets when I need them....
14:39
< iofficspace>
ctrl+f?
14:39
< iofficspace>
/?
14:43
<@TheWatcher>
Uh, I mean a single line of code in 18 projects, totalling something like 100k lines of code. And some are on a second server.
14:48 Orthia [orthianz@3CF3A5.E1CD01.C6689C.33956A] has joined #code
14:54
< iofficspace>
...
14:54
< iofficspace>
god fuck \ vs / in file systems
14:55 Rhamphoryncus [rhamph@Nightstar-5697f7e2.abhsia.telus.net] has joined #code
14:58
< iofficspace>
... oh right, windows decided to do something smart and make \ and / interchangable...
14:58
< iofficspace>
SOLVES MY PROBLEM
14:58
< iofficspace>
:D
14:59
< RichyB>
Yes, Microsoft fixed their own manufactured problem by making / work too. :)
14:59
< RichyB>
(Apparently history says that it's IBM's fault and MS wanted to go with / originally.)
15:00
< RichyB>
(But some goons from IBM with chainsaws made them use \ instead.)
15:03 * TheWatcher mutters vile curses against all the blithering lunatics who came up with RFC821, 822, 2821, 2822, 5321, and 5322
15:03
< iofficspace>
which are?
15:03
<@TheWatcher>
I swear they're actually a sick joke perpetuated by a group of people whose sole intention is to drive you absolutely fucking insane.
15:04
< iofficspace>
RFCs for what then
15:04
<@TheWatcher>
SMTP and email message format specs
15:05
< iofficspace>
ah
15:06
<@TheWatcher>
821/822 aren't too bad, in a "this is a bit of a mess, but can be dealt with" way, but later ones are shining examples of the sort of madness that would make Azathoth himself utter "I say, steady on now..."
15:17
< RichyB>
This is what happens when you try to layer rich-media crap and unicode and everything else in the world on top of a single protocol while also keeping it backwards-combatible with 20 year old installations of sendmail.
15:17
< RichyB>
and also with 20 year old installations of trn.
15:21
<@TheWatcher>
Partly. Partly it seems that they've just taken whichever whacked-out ideas they cam up with while high on PCP and shoved them in
15:32 * Rhamphoryncus mumbles about PEBKAC errors
15:33 * iofficspace giggles at Rhamphoryncus
15:34
< Rhamphoryncus>
Was testing to figure out if texture objects really are separate from texture image units and thus retain their state. I was doing this by setting up the state on GL_TEXTURE1 and at render time binding it to GL_TEXTURE2
15:35
< Rhamphoryncus>
Wasn't working though. Because I was still telling my shader to use GL_TEXTURE0
15:51
< Rhamphoryncus>
hmm. Next up is to form them into a map structure. Either I write a python program for editing maps or I figure out how to apply perlin noise and generate on the fly
15:53
< celticminstrel>
Hm. I wonder what C++'s regex does if an optional subpattern isn't matched.
15:54
< celticminstrel>
Wait, actually i have a better way.
15:56
< iofficspace>
not using C++?
16:10
<@TheWatcher>
Indeed. A much better way would be to embed a perl 'terp in the program, and use the perl regexp engine for it!~
16:10 * TheWatcher flrrrrd
16:13
< celticminstrel>
No, I switched to the iterator form.
16:13
< celticminstrel>
And tweaked the pattern accordingly.
16:32 * Rhamphoryncus reads up on simplex noise
16:33
< RichyB>
TheWatcher, PCRE, yo.
16:33 * McMartin returns from phase one of meeting
16:33
<&McMartin>
That went relatively well, I think.
16:33
<@TheWatcher>
\o/
16:34
<&McMartin>
Nothing like doing kernel debugging on-site from 3000 miles away through, I think, four layers of virtualization. -_-
16:34
<&McMartin>
<wulfenbach>AND IT WORKED.</wulfenbach>
16:35
<@TheWatcher>
Awesomeness.
16:35
< RichyB>
You don't need to bold anything in between <wulfenbach> tags.
16:36
<&McMartin>
I didn't.
16:36
<&McMartin>
It did it to itself.
16:36
< RichyB>
Hahahahahaha
16:36 * McMartin wird alles mit Wissenschaft zerst?ren
16:39
<@TheWatcher>
SCIENCE!
16:45
< Rhamphoryncus>
okay, perlin and simplex noise are both way too complex for my immediate needs
17:11
< Rhamphoryncus>
hmm so the main trick seems to be that by giving each grid location a gradient rather than a direct value you make the peaks be irregularly spaced
17:12
<&McMartin>
Rhamphoryncus: Hey, you know a bunch about Python internals.
17:12
<&McMartin>
I notice that generators signal that they're done by throwing exceptions. How efficient is Python about exception handling?
17:13
<@TheWatcher>
Hrm. Anyone know of any way to tell whether something is intercepting timeGetTime() calls?
17:14
<&McMartin>
Some kind of agent!
17:14
<&McMartin>
bondJamesBond()
17:14
<&McMartin>
I guess strace?
17:18 Attilla [Obsolete@Nightstar-5f81180b.as43234.net] has quit [Ping timeout: 121 seconds]
17:18
< Rhamphoryncus>
McMartin: reasonable efficient. It's still more expensive than a plain return, but it's not an issue unless you're doing a really tight loop
17:19
<&McMartin>
But not the "hundreds of times slower" that Java/C++ have, clearly
17:19
< Rhamphoryncus>
yeah
17:20
< Rhamphoryncus>
Just entering/exiting a generator for the .next() is going to be more expensive for any non-trivial length
17:20
<&McMartin>
nog
17:23 Attilla [Obsolete@Nightstar-ab0ca881.as43234.net] has joined #code
17:25
< iofficspace>
and back to testing =/
17:49
< Rhamphoryncus>
haw, C++ is funny. The C++11 random module provides a variety of RNGs, but most of the functions to operate on them (such as uniform_int_distribution) are provided separately and must have the rng passed in. Why? Because they need some sort of mixin scheme and all they have is inheritance
17:52
< RichyB>
McMartin, Python's pretty efficient about exception handling.
17:52
< RichyB>
At least, compared to everything *else* in the slow-assed language.
17:53
< RichyB>
Oh Rhamphoryncus already gave a better answer, never mind.
17:53
< RichyB>
Perils of reading backscroll top-down, sorry.
18:01
< Rhamphoryncus>
Good to see I'm not the only one who does that
18:02
< Rhamphoryncus>
I take offence to python being called a slow-assed language. It *is* a slow-assed language, but I take offence to it ;)
18:08
< Noah>
Woah now
18:09
< Noah>
I took take offense too that
18:11
< Rhamphoryncus>
I take offence to your misspelling of "to"
18:12
< Noah>
and too
18:12
< Noah>
that was suppose to come out as "I too take offense to that"
18:13
< Noah>
But at least I got offense correct
18:13
<@TheWatcher>
Bah, only in your odd American spelling of it ;)
18:14
< Noah>
Whatever, at least I also don't stick a u in "colour"
18:22
< Noah>
1963 of 2930 songs downloaded :\
18:34 Vash [Vash@Nightstar-241cb5d4.wlfrct.sbcglobal.net] has joined #code
18:34 mode/#code [+o Vash] by ChanServ
18:43 RichyB [MyCatVerbs@Nightstar-3b2c2db2.bethere.co.uk] has quit [[NS] Quit: Leaving]
18:58 Kindamoody|afk is now known as Kindamoody
19:09 Kindamoody is now known as Kindamoody[zZz]
19:15
< celticminstrel>
I'm still using rand() for my random numbers. Is there really any reason to switch?
19:16
< celticminstrel>
It's not like I care about the distributions or anything.
19:18
<~Vornicus>
Mersenne Twister has a much larger state space; there are many things where the space is too large to handle nicely.
19:20
<~Vornicus>
Shuffling a deck of cards, for instance, you want twister, not your standard rand()
19:21
<~Vornicus>
Also, see what your value for RAND_MAX is
19:21
< celticminstrel>
I'm just using a few random numbers to select a random location or direction in some situations.
19:22
< celticminstrel>
RAND_MAX is 0x7fffffff
19:22
<~Vornicus>
Okay so that's reasonable
19:22
<~Vornicus>
(some implementations I've found use 0x7fff)
19:26 * Vornicus pokes at pygame. Okay, how to do this.
19:27
<~Vornicus>
I'm getting crashes quitting from fullscreen too.
19:29
< celticminstrel>
I think one cause I had of a crash when quitting was calling TTF_CloseFont after TTF_Quit and SDL_Quit.
19:30
<~Vornicus>
I haven't even really done anything yet
19:30
< celticminstrel>
Oh.
20:04
< Rhamphoryncus>
ingenuity: 1, DRM: 0
20:04
< Rhamphoryncus>
"What's that? A random printer you just added in "print to file" mode that just happens to have the word PS in the name? Why sure, I'll print to that!"
20:05
<&McMartin>
I declare today over - by the time I were to get back from lunch it would have been 8 hours
20:06
<&McMartin>
Instead, I will go home, sip soup, and go to sleep
20:06
< Rhamphoryncus>
celticminstrel: I prefer MT on principle since rand() has pretty much no specs on what algorithm it uses and old ones were pretty abysmal. That's largely academic though, as new ones are better
20:08
< Rhamphoryncus>
oh, if you want your PRNG to be repeatable (save the seed and regenerate the results later) you need your own, or if you want to avoid global state (multiple seeds for different uses or across threads)
20:09
< celticminstrel>
I suppose the repeatable argument is based on the fact that the implementation is unspecified, since I'm pretty sure rand() is repeatable.
20:10
<@ToxicFrog>
rand() is repeatable by specification; a non-repeatable rand() is nonconformant.
20:10
<@ToxicFrog>
That said, there are no requirements that it be repeatable across platforms.
20:10
< celticminstrel>
That's what I thought he meant.
20:10
<@ToxicFrog>
And indeed rand() on linux actually forwards to random(), which is decent, whereas rand() on windows uses the old, terrible algorithm.
20:11
< celticminstrel>
It says Mersenne is "slower"; it's not really a significant difference, is it?
20:34
< Rhamphoryncus>
Yeah, I meant across implementations
20:34
< Rhamphoryncus>
celticminstrel: it might be 10x slower but for many applications that's fine
20:35
< Rhamphoryncus>
maybe 100x compared to some algorithms
20:44 * Rhamphoryncus tries to understand UV/UVW vs XYZ coordinates
20:45
< Rhamphoryncus>
it sounds like UV is a latitude/longitude system implicitly using a flattened projection of the 3d model
20:50
< Rhamphoryncus>
What I'm actually looking for is names for barycentric coordinates but it doesn't look like there are any conventions. sometimes ABC, others A?A?A?
20:50
< Rhamphoryncus>
Which are generic conventions
21:00 Attilla [Obsolete@Nightstar-ab0ca881.as43234.net] has quit [Ping timeout: 121 seconds]
21:05 Attilla [Obsolete@Nightstar-e3792f18.as43234.net] has joined #code
21:29
<~Vornicus>
I've only heard of UVW in terms of texture mapping, but that can be sensible.
21:29 iofficspace is now known as io|pissedoff
21:31
< Rhamphoryncus>
Tessellation or texture coordinates of a triangle are barycentric, sometimes described as UVW, but GLSL only provides vector attributes of xyzw or rgba
21:32
<~Vornicus>
oh, that's what you're doing
21:32
< Rhamphoryncus>
xyz is already used in multiple contexts so I was hoping I could disambiguate it with different naming
23:06 * TheWatcher laughs at this vaguely
23:07
<@TheWatcher>
I apparently have an "Ominous XP Install"
23:07
< Noah>
ToxicFrog: What language were we talking about on rand?
23:07
<~Vornicus>
C/C++
23:07
<@TheWatcher>
(because QueryPerformanceCounter is returning unreliable values)
23:08
< Noah>
What does Python use?
23:08
<~Vornicus>
Mersenne twister is the default on anything recent
23:32 cpux [cpux@Nightstar-c5874a39.dyn.optonline.net] has joined #code
23:56 himi [fow035@Nightstar-5d05bada.internode.on.net] has quit [Ping timeout: 121 seconds]
--- Log closed Thu Jun 07 00:00:32 2012
code logs -> 2012 -> Wed, 06 Jun 2012< code.20120605.log - code.20120607.log >

[ Latest log file ]