code logs -> 2013 -> Sun, 20 Jan 2013< code.20130119.log - code.20130121.log >
--- Log opened Sun Jan 20 00:00:23 2013
00:44 Derakon is now known as Derakon[AFK]
00:53 You're now known as TheWatcher[T-2]
01:02 You're now known as TheWatcher[zZzZ]
01:28 * ToxicFrog determines why his code isn't working after upgrading the engine version: it's waiting 33 seconds between frames rather than 33 milliseconds.
01:33
<@gnolam>
...
01:33 himi [fow035@Nightstar-5d05bada.internode.on.net] has quit [Ping timeout: 121 seconds]
01:33 d4de [olorin@687AAB.418D22.5458BC.FC550A] has quit [Ping timeout: 121 seconds]
01:33 d4de [olorin@687AAB.418D22.5458BC.FC550A] has joined #code
01:34
<@RobinStamer>
0.0303 frames/second is best FPS
01:34
<&ToxicFrog>
gnolam: sleep() was update to take (double seconds) rather than (int milliseconds) for consistency with the rest of the timekeeping APIs.
01:35
<@RobinStamer>
You shouldn't be using sleep() to set FPS anyways
01:37
<&ToxicFrog>
RobinStamer: what should I be using?
01:38
<@gnolam>
One shouldn't use sleep() to set FPS (because, like windmills, it doesn't work that way), but sleeping between frames in general is A Good Thing. Though only the minimum time.
01:38
<@RobinStamer>
You should be time-tracking.
01:39
<@RobinStamer>
Basically something like for (;;) { if (timePassedForFrameRedraw()) { redrawFrame(); } if (tickHasPassed()) { doTickStuff() } sleep(10); /* let scheduler know it can do other things for a bit */ }
01:39
<@gnolam>
(Unless of course it's the general timekeeping thread that's sleeping, in which case sleep on)
01:39
<&ToxicFrog>
You're going to have to explain how "time-tracking" is different from "sleeping for the interframe time - frame processing time"
01:40
<@RobinStamer>
Reason being if redrawFrame() or doTickStuff() take more than a negligible portion of time any thing time-based gets screwed to hell.
01:42
<@Azash>
RobinStamer: What about doing actFrame(timeSinceLastFrame) {}
01:42
<&ToxicFrog>
RobinStamer: how so? In that case it calls sleep(0), which returns instantly, and immediately starts work on the next frame.
01:42
<@Azash>
?
01:42 d4de [olorin@687AAB.418D22.5458BC.FC550A] has quit [Ping timeout: 121 seconds]
01:42
<&ToxicFrog>
And yeah, the API here passes dt to update(). There's no assumption of a fixed timeslice, but you know how long it's been since the last update.
01:43 d4de [olorin@687AAB.418D22.5458BC.FC550A] has joined #code
01:43
<@RobinStamer>
Eh, if you code with that assumption I don't see an issue
01:43
<@RobinStamer>
It is kind of fugly to have loops all over the place for that though.
01:43
<&ToxicFrog>
What loops?
01:43 Derakon[AFK] is now known as Derakon
01:43
<@RobinStamer>
To catch up on missed events.
01:43
<&ToxicFrog>
You seem to be making a lot of assumptions that don't hold in the engine I'm using.
01:44
<@gnolam>
Azash: because delta time should be fixed. Because determinism is a good thing.
01:44
<&ToxicFrog>
(also, for this specific program, the frame limit is necessary to keep it from running at 6000fps and freaking out the video card fans)
01:44
<@Azash>
I honestly can't tell if you're sarcastic or not, gnolam
01:44
<&ToxicFrog>
(it is not graphically demanding)
01:44
<@RobinStamer>
That's fair. I'm assuming general game-programming here.
01:45
<@gnolam>
Azash: not. With the prototype you provided, one expects it to be a variable dt.
01:45
<@gnolam>
And that's a bad, /bad/ idea.
01:45
<@Azash>
How come?
01:45
<&ToxicFrog>
gnolam: so, it's better to assume fixed dt and then get fucked when something takes longer than expected?
01:45
<@gnolam>
Because suddenly, your game runs differently on different computers.
01:46
<@Azash>
Oh
01:46
<&ToxicFrog>
Er
01:46
<@Azash>
Well I would suggest things be done relative to the dt
01:46
<&ToxicFrog>
In one sense, no, it doesn't
01:46
<&ToxicFrog>
In another sense, that has been true in PC gaming since "PC" encompassed more than one hardware platform
01:46
<@Azash>
The smaller games I've done so far have worked well with it, but I don't know anything about larger projects
01:46
<&ToxicFrog>
So you're going to have to break down what you mean by "the game runs differently on different computers"
01:47
<@Azash>
ToxicFrog: I think he thought I meant the same actions would happen regardless of how long it takes between frames while I intended things to be expressin a $UNIT per second system
01:47
<@Azash>
s/sin/sed in/
01:47
<@gnolam>
Not to mention that any and all physics engines will /freak the fuck out/ if dt goes high enough.
01:48
<&ToxicFrog>
Azash: I kind of assumed that went without saying because the alternative is fucking crazy and leads to problems like what happens when you run Wing Commander on a modern computer.
01:48
<@RobinStamer>
With the algo I posted, it'll basically queue events when it gets behind, still running each one. With a sleep based one it'll end up skipping some entirely if one event takes longer than expected.
01:48
<&ToxicFrog>
(i.e. it goes from "start mission" to "game over" in about three seconds)
01:48
<&ToxicFrog>
(because it assumes constant dt but is running on a system a thousand times faster than it was written for)
01:49
<@gnolam>
ToxicFrog: assume a fixed dt, and stick by this. Have a frame skip if necessary. Frame skipping will technically make it run at slower speeds on slower computers, but at least you still have determinism.
01:49
<@RobinStamer>
With Azash's he has to loop in each part that gets timeSinceLastFrame to catch up.
01:49
<@Azash>
What?
01:49
<&ToxicFrog>
What?
01:50
<@RobinStamer>
Jesus fuck Windows let me C/P
01:50
<@RobinStamer>
<Azash> RobinStamer: What about doing actFrame(timeSinceLastFrame) {} <-- that
01:50
<@Azash>
Yeah but why would I need to do extra loops?
01:50
<@RobinStamer>
It becomes the function's responsibility to calculate and handle how many events to fire.
01:51
<@RobinStamer>
Which means loops or self-recursion.
01:52
<&ToxicFrog>
Ok, yeah, there's a lot of assumptions here that are completely irrelevant to an HTPC frontend.
01:53
<@RobinStamer>
Because normally when one wants to measure FPS it's because of a game
01:53
<&ToxicFrog>
I am in fact using a game engine to implement it.
01:53
<@RobinStamer>
But yeah, skipping on video would be fine, since you want it to be up-to-date anyways.
01:54
<&ToxicFrog>
And I don't want to measure FPS, I want to limit it.
01:54
<@RobinStamer>
What game engine?
01:54
<&ToxicFrog>
Because early versions did not limit, and since the frame drawing time is <1ms...
01:54
<&ToxicFrog>
love2d.
01:59 himi [fow035@Nightstar-5d05bada.internode.on.net] has joined #code
01:59 mode/#code [+o himi] by ChanServ
02:23
<~Vornicus>
One of the things that happens differently if you assume a varible-but-true dt in your physics engine is that anything that isn't analytic and of the same order as your simulation goes wrong.
02:24
<~Vornicus>
er, simulates differently on different computers.
02:25
<~Vornicus>
Since input isn't an analytic function, this means that the game is very different depending on the computer you're on.
02:26
<&ToxicFrog>
"analytic and of the same order as your simulation"?
02:26
<~Vornicus>
An analytic function is infinitely differentiable everywhere
02:28
<~Vornicus>
This is not true of input, which tends to be either steppy or piecewise.
02:28
<~Vornicus>
This is also not true of collision physics, which has non-analytic breaks when collisions happen
02:29
<~Vornicus>
and when I say "order" I mean the order of the polynomial (or fourier transform or what have you) that your simulation uses.
02:31
<~Vornicus>
if your program uses a constant acceleration as part of the simulation, but you have an object whose acceleration changes over time, even if the acceleration changes analytically, the program won't simulate that correctly with variable dt
02:32
<&ToxicFrog>
My math is too rusty to follow this :(
02:33
<~Vornicus>
Long story short on analytic functions is that no matter how deep you go, the position, velocity, acceleration, jerk, etc etc etc, they're all smooth.
02:34
<&ToxicFrog>
Ok.
02:34
<&ToxicFrog>
What I'm having trouble with is "if your program uses a constant acceleration as part of the simulation, but you have an object whose acceleration changes over time, even if the acceleration changes analytically, the program won't simulate that correctly with variable dt'
02:35
<@Azash>
Vornicus: Pardon me if I'm wrong, but isn't it possible to get the total distance by deriving?
02:36
<~Vornicus>
Azash: integrating, but...
02:36
<@Azash>
Well, that
02:36 * Azash has not mathed for years
02:37
<~Vornicus>
Okay so here's the deal
02:38
<~Vornicus>
Back in the day I worked on a helmet mounted display system for a military helicopter. One of the things we had to do to get this right is figure out the location and orientation of the helmet within the cockpit, so we could decide where to put things that were considered "outside" or "part of" the cockpit.
02:39
<~Vornicus>
(things that stayed in the same place relative to the helmet didn't need this, obviously)
02:39
<~Vornicus>
So, without any external instruments or reference points, the only thing an object can measure is its acceleration.
02:40
<~Vornicus>
and since this is a digital system, we'd only get to sample the acceleration at some rate.
02:42
<~Vornicus>
Turns out this isn't really good enough, very often: if your accelerations do certain very common things, the position determination system won't get it right, and will start having its simulated position drift away from the actual position of the helmet, sometimes fast enough that the simulated position leaves the cockpit in under five seconds.
02:42
<&ToxicFrog>
Ok, but I don't see how that isn't also a problem with fixed timestep.
02:43
<~Vornicus>
It is, but one that can be easily accounted for. With a variable timestep this is not true.
02:43
<&ToxicFrog>
How can it be easily accounted for?
02:45
<~Vornicus>
Depends on the situation; you can adjust the accelerations accordingly, and can use certain numerical methods for solving diffeqs, for starters.
02:46
<~Vornicus>
It's still somewhat of a problem, of course, but it's less so because at least it's consistent.
02:49
<@gnolam>
Even if the the underlying math is perfectly analytical, you'll still be screwed by e.g. floating point math.
02:50
<@gnolam>
In a deterministic system, you have "if input x happens at frame n, we will have state y". This ceases to be true with variable dt.
02:51
<&ToxicFrog>
Vornicus: AFAIK you just said "and then a miracle occurs". It seems like in either case you have to assume acceleration between samples can be accurately determined and that there wasn't, for example, a sudden spike between sample points.
02:57
<~Vornicus>
The thing that you can get for a fixed-timestep simulation is "the collision is assumed to occur at the end of the timestep", among other things.
02:58 Kindamoody[zZz] is now known as Kindamoody
03:02 thalass [thalass@Nightstar-724ec5eb.bigpond.net.au] has joined #code
03:13
<~Vornicus>
It's harder with variable timestep; you can't do simple collision cheats like "all things are big enough and move slowly enough that they won't clip through the environment
03:28 * ToxicFrog pokes gamepad handling with a stick
03:28
<&ToxicFrog>
Pad1 doesn't work at all.
03:28
<&ToxicFrog>
Pad2 works, but only the buttons, not any of the axes or the hat.
03:29
<&ToxicFrog>
oh wait fencepost error
04:07 thalass is now known as Thalass|madscientist
04:10 Attilla [Obsolete@Nightstar-9e7fa2b2.range86-162.btcentralplus.com] has quit [Ping timeout: 121 seconds]
04:14 d4de [olorin@687AAB.418D22.5458BC.FC550A] has quit [Operation timed out]
04:27 VirusJTG [VirusJTG@Nightstar-09c31e7a.sta.comporium.net] has quit [[NS] Quit: Program Shutting down]
04:33 ReivDriod [Reiver@3CF3A5.E1CD01.5A78C0.03128C] has joined #code
04:54 mac [mac@Nightstar-fe8a1f12.il.comcast.net] has joined #code
05:39 * Vornicus gets to work on disentangling some js code.
05:48 * Syk gets to work attempting to work @v@
05:54 Thalass|madscientist is now known as Thalass|omgafk
05:54
< Syk>
'omgwtfafk'?
06:02 Typherix [Typherix@Nightstar-7dc8031d.mi.comcast.net] has quit [Connection reset by peer]
06:30 ReivDriod [Reiver@3CF3A5.E1CD01.5A78C0.03128C] has quit [Ping timeout: 121 seconds]
06:46 Derakon is now known as Derakon[AFK]
06:47 mac [mac@Nightstar-fe8a1f12.il.comcast.net] has quit [[NS] Quit: This computer has gone to sleep]
06:48 Orthia [orthianz@3CF3A5.E1CD01.5A78C0.03128C] has quit [Ping timeout: 121 seconds]
06:49 Orthia [orthianz@3CF3A5.E1CD01.5A78C0.03128C] has joined #code
06:49 mode/#code [+o Orthia] by ChanServ
06:52 Vash [Vash@Nightstar-221158c7.sd.cox.net] has joined #code
06:52 mode/#code [+o Vash] by ChanServ
06:56 Vash [Vash@Nightstar-221158c7.sd.cox.net] has quit [[NS] Quit: I <lovecraft3 Vorn!]
06:56 Vash [Vash@Nightstar-221158c7.sd.cox.net] has joined #code
06:56 mode/#code [+o Vash] by ChanServ
06:57 Vash [Vash@Nightstar-221158c7.sd.cox.net] has quit [[NS] Quit: I <lovecraft3 Vorn!]
06:57 Vash [Vash@Nightstar-221158c7.sd.cox.net] has joined #code
06:57 mode/#code [+o Vash] by ChanServ
07:05 Kindamoody is now known as Kindamoody|out
07:10 * Vornicus reorganizes his in-program data, it's now easier to access and takes up 43% fewer lines.
07:13
<~Vornicus>
now I have to update the code so it knows what the hell I did to all the data
07:17 cpux [cpux@Nightstar-98762b0f.dyn.optonline.net] has quit [[NS] Quit: Well, most things get better when I kick them!]
07:28
<@froztbyte>
\o/
07:41 Typherix [Typherix@Nightstar-7dc8031d.mi.comcast.net] has joined #code
08:04 Omega [omegaboot@Nightstar-56dbba0f.in.comcast.net] has joined #code
08:04 Alek [omegaboot@Nightstar-56dbba0f.in.comcast.net] has quit [NickServ (GHOST command used by Omega)]
08:04 Omega is now known as Alek
08:04 mode/#code [+o Alek] by ChanServ
08:17 Thalass|omgafk is now known as Thalass
08:20
<&McMartin>
...man.
08:20
<&McMartin>
In all my years of BASIC Programming as a misspent youth, never once did I 10 DIM SUM(10)
08:23
<@froztbyte>
haha
08:26 Vash [Vash@Nightstar-221158c7.sd.cox.net] has quit [Client closed the connection]
08:26 Vash [Vash@Nightstar-221158c7.sd.cox.net] has joined #code
08:26 mode/#code [+o Vash] by ChanServ
08:32
<~Vornicus>
I don't think you could do that in c64 basic at least
08:40 Vash [Vash@Nightstar-221158c7.sd.cox.net] has quit [Client closed the connection]
08:41 Vash [Vash@Nightstar-221158c7.sd.cox.net] has joined #code
08:41 mode/#code [+o Vash] by ChanServ
08:48
<&McMartin>
You can but it's equivalent to SU.
08:51 Vash [Vash@Nightstar-221158c7.sd.cox.net] has quit [Client closed the connection]
08:54 Vash [Vash@Nightstar-221158c7.sd.cox.net] has joined #code
08:54 mode/#code [+o Vash] by ChanServ
08:55 Vash1 [Vash@Nightstar-221158c7.sd.cox.net] has joined #code
08:55 Vash [Vash@Nightstar-221158c7.sd.cox.net] has quit [Connection reset by peer]
08:57 Vash [Vash@Nightstar-221158c7.sd.cox.net] has joined #code
08:57 Vash1 [Vash@Nightstar-221158c7.sd.cox.net] has quit [Connection reset by peer]
08:57 mode/#code [+o Vash] by ChanServ
08:59 Vash1 [Vash@Nightstar-221158c7.sd.cox.net] has joined #code
08:59 Vash [Vash@Nightstar-221158c7.sd.cox.net] has quit [Connection reset by peer]
09:01 Vash1 [Vash@Nightstar-221158c7.sd.cox.net] has quit [Connection reset by peer]
09:01 Vash [Vash@Nightstar-221158c7.sd.cox.net] has joined #code
09:01 mode/#code [+o Vash] by ChanServ
09:02 Vash [Vash@Nightstar-221158c7.sd.cox.net] has quit [Connection reset by peer]
09:04 Vash [Vash@Nightstar-221158c7.sd.cox.net] has joined #code
09:04 mode/#code [+o Vash] by ChanServ
09:06 Vash1 [Vash@Nightstar-221158c7.sd.cox.net] has joined #code
09:06 Vash [Vash@Nightstar-221158c7.sd.cox.net] has quit [Client closed the connection]
09:36 himi [fow035@Nightstar-5d05bada.internode.on.net] has quit [Ping timeout: 121 seconds]
09:49 himi [fow035@Nightstar-5d05bada.internode.on.net] has joined #code
09:49 mode/#code [+o himi] by ChanServ
09:58 Alek [omegaboot@Nightstar-56dbba0f.in.comcast.net] has quit [Ping timeout: 121 seconds]
10:00 Alek [omegaboot@Nightstar-56dbba0f.in.comcast.net] has joined #code
10:00 mode/#code [+o Alek] by ChanServ
10:01 You're now known as TheWatcher
10:16 Alek [omegaboot@Nightstar-56dbba0f.in.comcast.net] has quit [Ping timeout: 121 seconds]
10:17 Omega [omegaboot@Nightstar-56dbba0f.in.comcast.net] has joined #code
11:01 Vash1 is now known as Vash
11:17 Thalass is now known as Thalass|afk
11:17 Vash [Vash@Nightstar-221158c7.sd.cox.net] has quit [[NS] Quit: I <lovecraft3 Vorn!]
11:25 Vornicus [vorn@ServerAdministrator.Nightstar.Net] has quit [[NS] Quit: Leaving]
11:44 Courage [Moltare@583787.FF2A18.190FE2.4D81A1] has quit [Ping timeout: 121 seconds]
11:45 Courage [Moltare@583787.FF2A18.190FE2.4D81A1] has joined #code
11:45 mode/#code [+o Courage] by ChanServ
12:28 You're now known as TheWatcher[afk]
12:34 Attilla [Obsolete@Nightstar-9e7fa2b2.range86-162.btcentralplus.com] has joined #code
13:35 VirusJTG [VirusJTG@Nightstar-09c31e7a.sta.comporium.net] has joined #code
13:56
< Shellninja>
What's equivalent to the Soviet Union?
13:56
<@froztbyte>
<McMartin> ...man.
13:56
<@froztbyte>
<McMartin> In all my years of BASIC Programming as a misspent youth, never once did I 10 DIM SUM(10)
13:56
<@froztbyte>
<Vornicus> I don't think you could do that in c64 basic at least
13:56
<@froztbyte>
<McMartin> You can but it's equivalent to SU.
13:57
< Shellninja>
I seep.
13:58
<@froztbyte>
might want to look into some watertight containers, then
13:59 Syk is now known as syksleep
14:08 thalass [thalass@Nightstar-724ec5eb.bigpond.net.au] has joined #code
14:40 Attilla [Obsolete@Nightstar-9e7fa2b2.range86-162.btcentralplus.com] has quit [Ping timeout: 121 seconds]
14:58 Kindamoody|out is now known as Kindamoody
15:01 Attilla [Obsolete@Nightstar-9e7fa2b2.range86-162.btcentralplus.com] has joined #code
15:03 You're now known as TheWatcher
15:10 Alek [omegaboot@Nightstar-56dbba0f.in.comcast.net] has joined #code
15:10 mode/#code [+o Alek] by ChanServ
15:12 Omega [omegaboot@Nightstar-56dbba0f.in.comcast.net] has quit [Ping timeout: 121 seconds]
15:38 mac [mac@Nightstar-8f454d37.emhril.sbcglobal.net] has joined #code
15:42 mac [mac@Nightstar-8f454d37.emhril.sbcglobal.net] has quit [[NS] Quit: Leaving]
16:05 thalass [thalass@Nightstar-724ec5eb.bigpond.net.au] has quit [[NS] Quit: *fzzzt*]
16:28 Thalass|afk [thalass@Nightstar-724ec5eb.bigpond.net.au] has quit [Client closed the connection]
16:31
<@iospace>
http://cafe.elharo.com/programming/java-programming/why-functional-programming-i n-java-is-dangerous/ <--- what
16:33
<@Azash>
So uh is the proof that you can't program functionally in Java because he doesn't understand how the JVM works or?
16:34
< ErikMesoy>
I think there's something about infinite lists.
16:35
<@iospace>
Azash: or someone's a total fucking idiot
16:36
<@Azash>
This is entirely possible
16:37
<@TheWatcher>
I'm going with iospace on this one.
16:39
<@TheWatcher>
That boils down to "Java is shit because I can't use it in a way it was never designed to work, in a programming paradigm it doesn't natively support, *whiiiine*"
16:39
<@TheWatcher>
That answer to which is to bitchslap the twazzock.
16:40 * iospace high fives TheWatcher while giggling madly
17:34 Derakon[AFK] is now known as Derakon
17:48 ErikMesoy1 [Erik@Nightstar-be32adc8.80-203-17.nextgentel.com] has joined #code
17:48 ErikMesoy [Erik@A08927.B4421D.FE7332.A86588] has quit [Ping timeout: 121 seconds]
17:50 ErikMesoy [Erik@Nightstar-be32adc8.80-203-17.nextgentel.com] has joined #code
17:52 ErikMesoy1 [Erik@Nightstar-be32adc8.80-203-17.nextgentel.com] has quit [Ping timeout: 121 seconds]
17:59 ErikMesoy is now known as Dainna
18:27 Dainna is now known as ErikMesoy
18:28 RobinStamer is now known as Vasi
18:33
< Shellninja>
Strange. I'm trying to import audio (or just open) an mp4 file with Audacity. In response to this attempts, it segfaults.
18:34
< Shellninja>
-s
18:36
< ErikMesoy>
Do you have the special sauce that Audacity has to tell you to get from a third party?
18:36
< Shellninja>
You mean ffmpeg?
18:37
< ErikMesoy>
I mean Lame
18:37
< Shellninja>
Why would I need lame?
18:37
< Shellninja>
It doesn't tell me I need lame. It told me it needs ffmped.
18:37
< ErikMesoy>
*shrug* I know Audacity needs it for some things.
18:37
< Shellninja>
*ffmpeg
18:37
< ErikMesoy>
And the details are lega.
18:37
< ErikMesoy>
*legal
18:50 Derakon is now known as Derakon[AFK]
19:07 VirusJTG [VirusJTG@Nightstar-09c31e7a.sta.comporium.net] has quit [Client closed the connection]
19:08 VirusJTG [VirusJTG@Nightstar-09c31e7a.sta.comporium.net] has joined #code
19:10 Kindamoody is now known as Kindamoody[zZz]
19:43 mac [mac@Nightstar-fe8a1f12.il.comcast.net] has joined #code
19:48
<@Tarinaky>
Has anyone here played Crusader Kings 2?
19:52
< ErikMesoy>
I played the tutorial. >_>
19:52
<@Tarinaky>
Not a fan?
19:54
< ErikMesoy>
No.
19:54
< ErikMesoy>
Maybe I should watch an LP.
19:54
<@Tarinaky>
It is awesome.
19:55
<@Tarinaky>
But I was going to say something about The Republic DLC has made me think about it In Spaaaaace.
20:11
< mac>
can some one give me a second opinion on this thing? I'm thinking about getting a dev kit. http://www.kickstarter.com/projects/1523379957/oculus-rift-step-into-the-game
20:13
<@Tarinaky>
It's probably the first workable 3D goggle-headset thing that'll hit the market...
20:13
<@Tarinaky>
I'm waiting for the second generation.
20:14
<@Tarinaky>
If you have something in mind, this is probably the only VR headset worth looking at.
20:14 mac is now known as Mac|Listening
20:15
<@Tarinaky>
At best, it's an unproven product (in fact there's a trail of failed products in that market already, but I'd be prepared to ignore them)
20:16
<@Tarinaky>
Which makes it a massive risk.
20:16
<@Tarinaky>
Depending on what you're looking to do with it, of course.
20:16
< Mac|Listening>
well I'm just looking at it for learning to program a stereoscopic view of some very very very basic things
20:17
<@Tarinaky>
Have you got any of those cardboard glasses you get for 3D films?
20:17
< Mac|Listening>
i've messed with 3d objects in c#, but I'm sure this would be a tad more intricate.
20:17
<@Tarinaky>
Start with that, to learn the principle.
20:18
< Mac|Listening>
3d as in polarized glasses or the stupid red blue type?
20:18 Mac|Listening is now known as mac
20:18
<@Tarinaky>
Whatever you have to hand.
20:18
<@Tarinaky>
It's only for learning.
20:19
< mac>
yeah i guess that makes more economical sense, though I'm not really stressed for money.
20:20
<@Tarinaky>
If you have enough money to be throwing it at toys I'm a poor student who wouldn't mind a UT dev license :p
20:20
<@Tarinaky>
Err *Unreal dev license
20:20
< mac>
tarinaky what do you work with (languages)?
20:21
<@Tarinaky>
Python and C++ mostly.
20:21
<@Tarinaky>
Although I've not done anything in C++ in a while.
20:21
< mac>
how far did you go in c++? (in school) last thing you learned
20:22
<@Tarinaky>
I'm self taught in C++. I'm currently at Uni, we mostly just use Java there.
20:23
<@Tarinaky>
Last thing I learned... I've been going over my notes for Mathematical Physics exam all day today - so that's pretty much the only thing I can think about atm.
20:23
< mac>
cool, Java is good. I've heard some things about java 7 having some security issues recently.
20:24
<@Tarinaky>
I am unsure whether it's one zero day or two zero day exploits.
20:24
< mac>
what is a zero day exploit?
20:24
< mac>
>.>
20:24
<@Tarinaky>
An exploit on (or before) the day of release.
20:24
<@Tarinaky>
Programmers start counting at zero.
20:26
< mac>
wasn't java 7 put out a while back?
20:27
<@Tarinaky>
Yeah, but a new version goes out at regular intervals.
20:27
<@Tarinaky>
New version, new bugs.
20:28
<@Tarinaky>
Also, looking at the FAQ on the oculus website, there's nothing that'll come in the dev kit that the consumer product won't have.
20:28
< mac>
from what i understand java is a pretty solid language, not as fast as a compiled language but very portable? That said why isn't it used for games on things like xbox ps3 and pc? (pc like major titles not including minecraft)
20:29
<@Tarinaky>
Java has some issues with Garbage Collection.
20:30
<@Tarinaky>
And if you care enough about your game engine to write your own (vs just buying one) you care enough about timing that you don't want your program stopping at an indeterminate point in the future to do reference counting.
20:31
< ErikMesoy>
"not as fast as" is a significant obstacle, and also I'd point to the existences of major engines in non-Java creating a whole lot of inertia.
20:31
<@Tarinaky>
That too.
20:31
< mac>
well how fast is "not as fast as"
20:32
<@Tarinaky>
How long is a piece of string.
20:32
<@Tarinaky>
I've seen numbers from 2x to 10x quoted depending on which compiler was given apples and which oranges.
20:32
< mac>
2x is still a huge gap.
20:32
<@Tarinaky>
Well, maybe not 2x... 3x.
20:32
< mac>
10x is like why even bother with java
20:33
< mac>
(game programming that is)
20:33
< ErikMesoy>
http://www.wolframalpha.com/input/?i=How+long+is+a+string%3F Wolfram Alpha suggests that a string is 3963 base pairs.
20:33
<@Tarinaky>
Depends on the game.
20:33
<@Tarinaky>
Minecraft was successful.
20:34
< mac>
yeah but the hardware scaling isn't that good for minecraft.
20:34
<@Tarinaky>
TIL: a fruit-fly has 3963 base pairs.
20:34
< mac>
it has one thread for the base game i believe.
20:34
< mac>
same for the server. its one thread.
20:34
<@Tarinaky>
It's 'good enough'.
20:34
< mac>
true.
20:35
<@Tarinaky>
And hey, Java has one advantage over ever other language.
20:35
<@Tarinaky>
Every year, at the same regular interval, the job market gets flooded with junior programmers with 3 years of Java.
20:36
< mac>
don't know how i feel about that.
20:36
<@Tarinaky>
It's better than not being able to hire anyone to maintain your code.
20:36
< ErikMesoy>
Tarinaky: My university is holding Python courses now! :p
20:37
< mac>
its not exactly a warm fuzzy. I was told compiled languages are the end all when it comes to performance, and I'm pretty odd about top of the line.
20:37
<@Tarinaky>
ErikMesoy: Instead or or in addition to?
20:37 Derakon[AFK] is now known as Derakon
20:37
<@Tarinaky>
The Physics dept here still teaches Fortran.
20:37
< ErikMesoy>
In addition to.
20:37
< mac>
odd not odd*
20:37
< mac>
?. OCD*
20:37
< ErikMesoy>
Physics here teaches Mathematica.
20:37
< mac>
fortran is really good for math.
20:37
< ErikMesoy>
Programming still has Java.
20:37
<@Tarinaky>
mac: Hand-written assembler is the end all when it comes to performance...
20:37 * ErikMesoy ads 1 to Cobol, giving Cobol.
20:37
<@Tarinaky>
Except when you're writing a game, when you want to push everything onto the GPU.
20:38
<@Tarinaky>
And Shader Languages are compiled Just-In-Time (because every Graphics card has its own compiler)
20:39
< mac>
i know i looked into x86 assembly, It was very confusing and i gave up, because i had only used c++ at that point
20:39
< mac>
i want to take another look at that after a few more years of school
20:39
<@Tarinaky>
As far as I can tell... Nobody should be writing x86 assembler any more.
20:39
<&ToxicFrog>
Unless you're a compiler/JIT developer, anyways.
20:40
< ErikMesoy>
If you want to take a look into something interesting, try Lisp. :p http://xkcd.com/297/
20:40
< mac>
ok well i was using z80 but still
20:40
<@Tarinaky>
If you're using some kind of Reduced Instruction Set computer for some kind of integrated or mobile device then Assembly is still handy.
20:40
< mac>
(for the ti 83 calculator).
20:41
<@Tarinaky>
And I guess if you're writing device drivers you're going to want to embed some assembly in your high level code somewhere.
20:41
<@Alek>
yes, the dev kit is the consumer product's prototype. but! you get it ahead of time, and you also get the doom 3 BFG edition, for use with the product.
20:41
<@Tarinaky>
Not sure about kernels.
20:41
<@Alek>
so basically, you get to play with it way ahead of everyone else. XD
20:42
<@Alek>
you and the 10 thousand others who sprung for a kit. XD
20:42
<@Tarinaky>
The only sensible advice, if that's your only reason for buying it, is 'wait'.
20:42 * Alek nods.
20:42
<@Tarinaky>
You don't have to be sensible of course.
20:42
<@Alek>
I'm not a hipster. >_>
20:43
<@Alek>
not to mention, it IS a prototype, not the polished final product.
20:43
<@Tarinaky>
So you'll end up buying another anyway.
20:44
<@Tarinaky>
Oculus Rift could be ground breaking and market changing... if it costs no more than ?200 at launch.
20:44
<@Alek>
and oh yeah, the kickstarter ended months ago.
20:44
<@Tarinaky>
Less than that once the factories are 'geared up'.
20:44
<@Alek>
yeah, from what I heard, $200 or $300 was the estimated entry price.
20:45
<@Tarinaky>
I suspect it'll be closer to the top end of any estimate.
20:45
<@Alek>
but considering they went over their kickstarter goal by an order of magnitude, that may help subsidize some of the price. XD
20:45
<@Alek>
may.
20:45
<@Tarinaky>
There's a law about it, but I forgot the name.
20:45
<@Tarinaky>
That projects will be overbudget even if you expect them to be.
20:46
< ErikMesoy>
Hofstadter's law? "It always takes longer than you expect, even when you take into account Hofstadter's Law."
20:46
<@Tarinaky>
That's the one.
20:46
<@Tarinaky>
There's a time-money equivalence so close enough.
20:47
< ErikMesoy>
See also the Planning Fallacy. People consistently, reliably, repeatedly, underestimate the time and cost something will take.
20:47
< ErikMesoy>
For a decent estimate of what it will actually take, your best bet is to find a similar project or two, and look at what they took.
20:48
<@Tarinaky>
This doesn't tend to work for software development though - since if someone has done your project before you'd be buying it off them :p
20:48
< ErikMesoy>
If you ever find yourself thinking "but they had stupid problems/ridiculously unlikely accidents" or "but I have a special advantage", ignore this, because these thoughts will lead to you underestimating. :p
20:49
< ErikMesoy>
Tarinaky: Well not your exact project. But find some other project with, say, the same level of graphics detail and the same number of playable characters. Or something.
20:50
<@Tarinaky>
ErikMesoy: Unlike a building though all software projects begin with the phrase "But ours will do X"
20:50
< ErikMesoy>
"But EA had their top developer leave halfway through the project!"
20:50
<@Tarinaky>
I mean more "But ours will be red."
20:51
< ErikMesoy>
Aha.
20:51
<@Tarinaky>
12 months later it turns out that X graphics card is optimised for non-red pigments.
20:51
<@Tarinaky>
:p
20:51
<@Tarinaky>
The engineers say they can give you a very very very dark orange, but it'll take another 3 months :p
20:52
< ErikMesoy>
Also, you mentioned there's a time-money equivalence.
20:52
< ErikMesoy>
This is not always the case.
20:52
< ErikMesoy>
Canonically, you can't get a baby in one month by hiring nine women. :p
20:52
<@Tarinaky>
It's not a linear equivalence.
20:52
<@Tarinaky>
Although I guess that's what equivalence means.
20:53
<@Tarinaky>
Ho-hum. You're right. There's a money-time proportionality?
20:53 cpux [cpux@Nightstar-98762b0f.dyn.optonline.net] has joined #code
20:53 mode/#code [+o cpux] by ChanServ
20:53
<@Tarinaky>
Association?
20:53
<@Tarinaky>
Meh. It is possible to buy a programmer's time for money.
20:54
< ErikMesoy>
Yes.
20:54
<@Tarinaky>
And it is possible, in many countries, to switch to flexible hours and exchange money for time.
20:54
< ErikMesoy>
My impression is that you can improve project speed by hiring up to twice as many programmers as the initial estimate. After that, the diminishing returns really start to hurt.
20:54
<@Tarinaky>
Time doesn't equal progress?
20:55
< ErikMesoy>
e.g. If you stick 5 guys working on a game, sure, they can use another 3 bugtesters and a dialogue writer and a graphics rendering guy.
20:56
<@Tarinaky>
Yeah, I'm familiar with the equations.
20:56
<@Tarinaky>
Well, actually I'm not come to think of it.
20:56
<@Tarinaky>
But I'm familiar with the principle.
20:56
<@Tarinaky>
Also: I should be revising.
20:57
<@Tarinaky>
I suggest though that the time-money equivalence should be allowed to hold and progress/time be decoupled.
20:57
<@Tarinaky>
Since that's the real issue, that more man-hours doesn't mean more progress.
20:57
< ErikMesoy>
Right.
20:58
<@Tarinaky>
Perhaps some kind of equilibrium with d Progress = Man-Hours - 'Friction' ?
20:59
<@Tarinaky>
Or is progress already a rate of change?
20:59
< ErikMesoy>
This sounds hard to formalize. How about something informal like "Incentivizing programmers to work faster is only slightly more effective than incentivizing computers to work faster."
21:00
<@Tarinaky>
"The rate of progress in a project is equal to the number of man-hours less the number of man-hours lost to context switching"
21:01
<@Tarinaky>
With a formal definition of context switching.
21:02
<@Tarinaky>
If you defined context switching right and solved it as a differential equation you might be able to coerce it into the existing equations for man-hours.
21:02
<@Tarinaky>
IIRC it's dependant itself on the number of people in the project because of 'communication time'.
21:04
<@Tarinaky>
So Communication time = k e^(man-hours)
21:04
<@Tarinaky>
Or just k man-hours.
21:05
<@Tarinaky>
I dunno. At this point I'm ranting.
21:05
<@Tarinaky>
What were we talking about again?
21:05
< ErikMesoy>
Hofstadter's law.
21:06
<@Tarinaky>
Anyway. The more hours you spend on a task the less 'quality' work gets done.
21:07
<@Tarinaky>
There's an exponential curve for how many marks you'll get in the exam against the time spent revising.
21:07 Vornicus [vorn@ServerAdministrator.Nightstar.Net] has joined #code
21:07 mode/#code [+qo Vornicus Vornicus] by ChanServ
21:08
<@Tarinaky>
Mark Percentage = 1 - e^-at
21:10
<@Tarinaky>
Assuming you aren't silly about it and burn yourself out.
21:12
<&ToxicFrog>
Tarinaky: re asm: you're much more likely to need it in a kernel than a device driver. In the latter case most platforms are polite enough to offer memory-mapped IO, so you just need a few struct casts and bitwise shenanigans.
21:12
<@Tarinaky>
I'd read somewhere that Microsoft had a research project to write an OS entirely in C#.
21:17
<@Tarinaky>
I really need help with my revision :/
21:17
<@Tarinaky>
My exam's tuesday and I still can't do any of the section B Qs.
21:24
<@Tarinaky>
I swear... I didnt't even miss any lectures and I have no idea when he went over Hydro :/
21:37 mac [mac@Nightstar-fe8a1f12.il.comcast.net] has quit [[NS] Quit: This computer has gone to sleep]
21:44 Vasi is now known as RobinSTamer
21:44 RobinSTamer is now known as RobinStamer
22:59 ErikMesoy is now known as ErikMesoy|sleep
23:28 syksleep is now known as Syk
23:53 Vornicus [vorn@ServerAdministrator.Nightstar.Net] has quit [[NS] Quit: Leaving]
--- Log closed Mon Jan 21 00:00:38 2013
code logs -> 2013 -> Sun, 20 Jan 2013< code.20130119.log - code.20130121.log >

[ Latest log file ]