code logs -> 2009 -> Wed, 04 Feb 2009< code.20090203.log - code.20090205.log >
--- Log opened Wed Feb 04 00:00:22 2009
00:57 Bob_Work [c6b3e33a@Nightstar-14595.mibbit.com] has joined #Code
01:08 You're now known as TheWatcher[T-2]
01:12 You're now known as TheWatcher[zZzZ]
01:12 Attilla [~The.Attil@Nightstar-9469.cdif.cable.ntl.com] has quit [Quit: <Insert Humorous and/or serious exit message here>]
02:12 gnolam [lenin@Nightstar-1382.A163.priv.bahnhof.se] has quit [Quit: Z?]
03:16
<@Derakon>
Finally starting to get a menu screen that looks reasonable. http://derakon.dyndns.org/~chriswei/temp/bulletmlscreen24d.png
03:17
<@Derakon>
Now if I can just figure out buttons that make me happy.
03:19
<@Derakon>
Heh. Idea for verifiable scores: the player uploads the course and a recording of their key inputs. The server plays it back and checks the result.
03:19
<@Derakon>
Would Not Scale.
03:19
<@Derakon>
But it'd work~
03:19
<@Vornicus>
Heh
03:20
<@Derakon>
The main problem with a verifiable highscores table for Fusillade is that the game does a fixed amount of work per frame, which means that players with slow computers (artificially or otherwise) have an advantage.
03:20
<@Derakon>
I suppose I could invalidate computers running at less than 25 FPS, but that seems...wrong.
03:24
< Bob_Work>
Funny, I was just thinking of how wrong it is that there are still computers out there that run less than 25fps.
03:24
<@Reiver>
Derakon: Is there any way to decouple framerate from work?
03:24
<@Derakon>
Reiver: sure. Plenty of games do that.
03:25
<@Reiver>
Else I fear for the poor bastard that tries to play the game on his Super Ultra 9000 PC.
03:25
<@Derakon>
But it means that when the computer gets bogged down, things stutter.
03:25
<@Reiver>
It'll be like trying to play Frogger all over again~
03:25
<@Derakon>
Oh, no, the framerate maxes out at 25FPS.
03:25
<@Reiver>
... that's a very slow framerate.
03:25
<@Vornicus>
Reiver: http://gafferongames.com/game-physics/fix-your-timestep/ <--- recently posted on this channel.
03:25
<@Derakon>
It's plenty fluid enough, and it's much better than having 40FPS but regularly dipping lower.
03:26
<@Vornicus>
Describes decoupling framerate from physics rate in a way that lets you keep the nice friendly stable physics rate.
03:26
<@Reiver>
Vorn: I meant, uh
03:26
<@Reiver>
I know it can be done, it's a Very Common Thing to have done
03:26
<@Vornicus>
For Der in particular? His physics rate is 25 fps.
03:27
<@Reiver>
I more meant "Can Derakon do it with a practical amount of workload so that the game doesn't become horribly dated according to hardware capabilities?".
03:27
<@Vornicus>
and he's using a framerate limiter.
03:27
<@Reiver>
Hum. Have you got a windows version working yet, Der?
03:27
<@Derakon>
The problem I have with a decoupled framerate is that it means that on the hairy patterns, where you need to navigate in a space 10x10px, the odds of you holding down the key for too long through no fault of your own greatly increase.
03:27
<@Derakon>
Reiver: no, I still need to get the box I bought set up.
03:27
<@Reiver>
Pity. I would have liked to give it a shot, just to see whether it gives me a headache.
03:27
<@Derakon>
Let me get the menu stable, then that's next on the list.
03:28
<@Derakon>
Heh.
03:31
<@Vornicus>
Reiv: it should be noted that feature films go at 24fps.
03:32
<@Derakon>
Feature films alse blur from one frame to the next, which smooths out transitions.
03:32
<@Derakon>
But the game looks plenty smooth IMO.
03:33
<@Derakon>
And the framerate's consistent except under extreme load, which it wouldn't be if I went for 40 or 50FPS.
03:33
<@Derakon>
A consistent framerate is, IMO, far more desirable than a variable but high framerate.
03:34 * Derakon remembers, back in college, trying to play Diablo II and run an MP3 decoder at the same time. Bad idea.
03:34
<@Vornicus>
If he really wants a higher framerate step 1 would be "convert the bulletml routing to c"
03:34
<@Derakon>
Heh. Yeah.
03:35
<@Reiver>
... hm. Would you gain speed boosts for simply writing a parser that compiled it all to c, or would you need to scratchwrite it?
03:35
<@Derakon>
...I'd rewrite it. It'd be a fairly simple port job.
03:35
<@Reiver>
(Pure curiosity; I tend to forget what C does a lot.)
03:35
<@Derakon>
Might even be a 2.0 feature if the game's successful.
03:36
<@Vornicus>
Psyco does give major performance improvements for certain things; however, psyco also doesn't work on anything but win32 right now.
03:36
<@Reiver>
Hm. Therein lies an idea pro game registration/etc: Discount for upgrading from 1.0 to 2.0.
03:36
<@Reiver>
'course this means you need to know who the customers were~
03:36
<@Derakon>
...okay, by "version 2.0" I really mean "version 1.1".
03:37
<@Derakon>
Upgrades would be free in any case.
03:37
<@Reiver>
Ah. I thought you meant Fullisade II.
03:37
<@Derakon>
Ahhh, no.
03:37
<@Derakon>
Fusillade II would be a totally different game, doing who knows what.
03:37
<@Reiver>
Fair. :)
03:37
<@Reiver>
Well, put an option for 1.1 being allowing user-specified framerates, perhaps. In a year or two's time, you may be thankful for this~
03:38
<@Derakon>
...heh. You've just given me an idea.
03:38
<@Derakon>
Challenge mode: framerate locked to 50FPS instead of 25FPS. Same amount of work per frame.
03:38
<@Reiver>
*snrk*
03:39
<@Reiver>
With a framerate tracker to ensure stuttering isn't happening?
03:39
< Bob_Work>
hehehe
03:39
<@Derakon>
There's not much I can do even if it does happen without rewriting my update logic, Reiver.
03:39
<@Reiver>
I more meant "So the stutter can be recorded along with the high score".
03:39
<@Reiver>
>_>
03:40
<@Derakon>
Ah.
03:41
<@McMartin>
19:25 <@Reiver> ... that's a very slow framerate.
03:41
<@McMartin>
25 FPS is PAL.
03:42
<@McMartin>
(50 Hz, two scans per frame)
03:42
<@Reiver>
McM: And yet the difference between 30FPS and 40FPS is quite noticable when playing reflex-dependant games.
03:45
<@McMartin>
By which you mean "Mouse-driven FPS"
03:45
<@Reiver>
Granted.
03:45
<@Derakon>
Yeah, there's a difference between "reflex" and "twitch".
03:45
<@Reiver>
It's going to be less of a concern in a keyboard driven one?
03:45
<@McMartin>
Very.
03:45
<@McMartin>
In fact, it will be less of a concern in a gamepad-driven one.
03:45
<@Reiver>
Okay then.
03:45
<@Derakon>
You have way more than 10ms to react to threats in Fusillade.
03:45
<@McMartin>
The key here is that mouse control is analog and needs to track your muscle motion.
03:45
<@Reiver>
Given that you are a far better twitch gamer than I, I will take your word for it~
03:46
<@McMartin>
With keyboard, the only question is "is this button down or not"
03:46
<@McMartin>
Well, you've played UQM, right?
03:46
<@Reiver>
Yes.
03:46
<@McMartin>
The framerate for battle is 25 and for planet landers is 35.
03:46
<@McMartin>
The only people who have ever noticed this are people who were hacking the code.
03:46
<@Reiver>
... I noticed it
03:47
<@Reiver>
And was about to say it'd always felt a little jerky in the space battles.
03:47
<@Derakon>
Okay, Fusillade at 50FPS is cruel.
03:47
<@Reiver>
Did it stutter?
03:47
<@McMartin>
That may have more to do with the fact that there are only 16 possible orientations.
03:47
<@Derakon>
I barely made it to loop 1!
03:47
<@Derakon>
Reiver: patterns in the first few loops won't stutter since they're too easy~
03:47
<@Reiver>
Fair~
03:49
<@McMartin>
(UQM mostly does the accumulator-timestep approach, with a few wrinkles)
03:49
<@Derakon>
My update functions have an implied accumulator argument of 1, since the display update is coupled to the physics update.
03:49
<@Derakon>
It's simple. I like that.
03:49
<@McMartin>
(Though it also has the stutter effect.)
03:50
<@McMartin>
(But latency is death.)
03:50
<@Derakon>
Yeah.
03:50
<@ToxicFrog>
"accumulator-timestep"?
03:50
<@McMartin>
See fix-your-timestep link above.
03:51
<@McMartin>
Essentially, you have a variable that is "how many frames it's supposed to have been" vs. how many it actually has
03:51
<@McMartin>
You render whenever the physics catches up to the renderer, and the physics is on a fixed clock.
03:51
<@McMartin>
This produces stutter if the video refresh rate and the physics refresh rate are not multiples of one another.
03:51
<@ToxicFrog>
Aah.
03:52
<@McMartin>
UQM however is actually sending a continuous stream of draw commands to a buffer that is conceptually never cleared.
03:52
<@McMartin>
So a physics step is actually a new batch of commands, which is sometimes only a few dozen pixels.
03:52
<@Vornicus>
But you can then use interpolation and a bit of lag - one physics frame - to make the stutter sort of go away.
03:52
<@McMartin>
This is also rarely an issue in UQM because such motion would essentially always be subpixel
03:53
<@McMartin>
s/UQM/Sprite Games/
03:56
<@Vornicus>
Though it's not always subpixel.
03:56
<@Vornicus>
In fact, very often it is not.
03:56
<@Derakon>
Depends on how fast things are moving.
03:57
<@Derakon>
If it's more than 1px/frame, then it's noticeable.
03:57
<@Vornicus>
Mario in Super Mario Brothers 1 moves through 128 pixels in 30/60 frames.
03:57
<@Vornicus>
In a jump.
03:59
<@McMartin>
The model has to be subpixel, yes.
03:59
<@McMartin>
But unless the speed is above about 8 pixels/frame it'll blend into angles.
04:20
<@ToxicFrog>
Tribes 2: still totally fucking awesome.
04:32
<@Reiver>
TF: I assume that the few gamers still playing it are Totally Hardcore Badasses?
04:37
<@ToxicFrog>
Few?
04:38
<@ToxicFrog>
We have a full 64-man and lots of 32-man servers running.
04:39
<@Reiver>
... oh.
04:39
<@Reiver>
Hm. Maybe I should try it again.
04:39
<@Reiver>
Though, uh, I've not played an FPS properly for years, so suspect I would die rather quickly~
04:41
<@ToxicFrog>
If anything I'd say the skill level has gone down somewhat, most of us are terribly out of practice~
04:42
<@Reiver>
http://www.moddb.com/games/goliath - I remember that game when it was first released.
04:42
<@Reiver>
So terribly sad it was a school project, and thus never got further development ;_;
04:45 * ToxicFrog screams through enemy airspace in the wake of a friendly Havoc, exploiting the flare scatter to get an enemy rocketeer extremely intimate with the front of his Shrike
07:32 Derakon is now known as Derakon[AFK]
07:55 Vornicus [~vorn@Admin.Nightstar.Net] has quit [Quit: ]
08:27
< Tarinaky>
I'm trying to get to grips with gdb. When I print a backtrace I get "#1 0x0804bf41 in Palette::GetFrame (this=0x0, iFrameIndex=1) at art.cxx:75". What does this=0x0 mean?
08:35
< Bob_Work>
bad memory location?
08:35
< Bob_Work>
(that's all I've got)
08:39
< Tarinaky>
Oh. 'this' is the address of the 'this' pointer? Right?
08:40
< Bob_Work>
I think
08:50 Roonaky [Roogle@Nightstar-25590.hsd1.co.comcast.net] has joined #code
08:51 RooWeazel [Roogle@Nightstar-25590.hsd1.co.comcast.net] has quit [Ping Timeout]
09:00
<@McMartin>
Yeah
09:00
<@McMartin>
And specifically...
09:00
<@McMartin>
It means you've called x->GetFrame where x is a Palette *, and x is also NULL.
09:00
<@McMartin>
Cue :gonk:
09:09 You're now known as TheWatcher
09:13 * Tarinaky keeps going over the code. I don't see -why- it's a NULL pointer.
09:15
< Bob_Work>
What are you feeding into the pointer?
09:23 Rhamphoryncus [~rhamph@Nightstar-7184.ed.shawcable.net] has quit [Quit: Rhamphoryncus]
09:25 Attilla [~The.Attil@Nightstar-9469.cdif.cable.ntl.com] has joined #code
09:25 mode/#code [+o Attilla] by ChanServ
--- Log closed Wed Feb 04 10:29:09 2009
--- Log opened Wed Feb 04 10:29:14 2009
10:29 TheWatcher [~chris@Nightstar-29731.dsl.in-addr.zen.co.uk] has joined #code
10:29 Irssi: #code: Total of 21 nicks [8 ops, 0 halfops, 1 voices, 12 normal]
10:29 mode/#code [+o TheWatcher] by ChanServ
10:30 Irssi: Join to #code was synced in 49 secs
10:36 * TheWatcher readsup, notes to Tarinaky that ddd is your friend
10:36
<@TheWatcher>
ddd makes the process of using gdb (and others) vastly less infurating and considerably more informative.
10:44 * Bob_Work reads that sentence several times and shrugs
10:44
< Bob_Work>
I have no idea with either ddd or gdb stands for.
10:45
<@Consul>
ddd is a bra size, I think.
10:46
<@Consul>
Anyway, shower time!
10:47
<@TheWatcher>
gdb = gnu debugger. A rather arcane and complex piece of software used to debug c/c++/modula-2 programs. ddd = data display debugger, a graphical debugger that wraps gdb and some other debuggers in a fairly sane UI that makes setting breakpoints, watches, tracing execution, and graphically displaying variable cotents much easier
10:49
<@TheWatcher>
ddd isn't the easiest program to get to grips with either, but it has less of a learning curve than gdb, and it provides many features that make debugging a lot easier on folicle retention
10:50
< Bob_Work>
Ah.
10:50
< Bob_Work>
ty
10:50 * Bob_Work hugs his bloodshed.
10:51
<@TheWatcher>
ddd makes the debugger in dev-cpp look like a duplo toy ;)
10:52 * Bob_Work will take that into consideration.
10:53
< Bob_Work>
Now, if you'll excuse me, I have to speed home
10:53 Bob_Work [c6b3e33a@Nightstar-14595.mibbit.com] has quit [Quit: http://www.mibbit.com ajax IRC Client]
11:20 KBot [AnnoDomini@Nightstar-29470.neoplus.adsl.tpnet.pl] has joined #Code
11:21 KarmaBot [AnnoDomini@Nightstar-29470.neoplus.adsl.tpnet.pl] has quit [Connection reset by peer]
11:23 KBot is now known as KarmaBot
11:26 UndeadAnno [~farkoff@Nightstar-29470.neoplus.adsl.tpnet.pl] has joined #Code
11:26 mode/#code [+o UndeadAnno] by ChanServ
11:53 C_tiger [~cheng@Nightstar-5625.hsd1.ca.comcast.net] has quit [Ping Timeout]
13:35 gnolam [lenin@Nightstar-1382.A163.priv.bahnhof.se] has joined #Code
13:35 mode/#code [+o gnolam] by ChanServ
15:26 You're now known as TheWatcher[afk]
16:29 You're now known as TheWatcher
16:39 KBot [AnnoDomini@Nightstar-29737.neoplus.adsl.tpnet.pl] has joined #Code
16:40 KarmaBot [AnnoDomini@Nightstar-29470.neoplus.adsl.tpnet.pl] has quit [Ping Timeout]
16:41 UndeadAnno [~farkoff@Nightstar-29470.neoplus.adsl.tpnet.pl] has quit [Ping Timeout]
16:42 KBot is now known as KarmaBot
16:48 UndeadAnno [~farkoff@Nightstar-29737.neoplus.adsl.tpnet.pl] has joined #Code
16:48 mode/#code [+o UndeadAnno] by ChanServ
17:11 You're now known as TheWatcher[afk]
17:33 Vornicus [~vorn@Admin.Nightstar.Net] has joined #code
17:33 mode/#code [+o Vornicus] by ChanServ
18:02 Derakon[AFK] is now known as Derakon
18:24 You're now known as TheWatcher
19:27 * Derakon combines the bigspiral pattern with a mobile emitter. It is glorious!
19:57 Attilla [~The.Attil@Nightstar-9469.cdif.cable.ntl.com] has quit [Connection reset by peer]
20:10 * gnolam blarghs at Trac.
20:22
<@gnolam>
CamelCase is evil. Requring manual line breaks even more so.
20:26
<@TheWatcher>
Trac?
20:27
<@TheWatcher>
The project management/bug tracker thingy?
20:37
<@gnolam>
Yah.
21:11 * UndeadAnno wonders if there's an interactive novel adaptation of PWAA. Pointless, I know, but. :P
21:13
<@gnolam>
The Polish Womens Alliance of America?
21:13
<@gnolam>
Anyway, Trac is really neat. But its wiki markup is awful.
21:19 Rhamphoryncus [~rhamph@Nightstar-7184.ed.shawcable.net] has joined #code
21:26
<@Derakon>
I'm sad that I'm keeping track of what day it is by the timestamps on my backups...
21:27
<@Derakon>
"This is the first backup I've made today, and, oh, the most recent is for the 3rd, so this must be the 4th."
21:32
<@UndeadAnno>
gnolam: Phoenix Wright: Ace Attorney.
21:37
<@Derakon>
How's this look for a main menu layout? http://derakon.dyndns.org/~chriswei/temp/bulletmllayout.png
21:38
<@UndeadAnno>
The white burns.
21:38
<@Derakon>
I'm sorry?
21:40
<@UndeadAnno>
http://i44.tinypic.com/pybv8.jpg
21:40
<@Derakon>
Okay, yes, the background's white.
21:48
<@gnolam>
Derakon: are all those buttons?
21:49
<@Derakon>
The stuff on the bottom is all buttons.
21:49
<@Derakon>
The bigger rectangles are monitors, and "Fusillade" is a stand-in for the logo.
21:56
<@gnolam>
Ah. In that case, I guess it works.
22:30 UndeadAnno [~farkoff@Nightstar-29737.neoplus.adsl.tpnet.pl] has quit [Quit: What can change the nature of a man?]
23:09
<@Derakon>
As I feared, I've not enough room for the high scores. >.< http://derakon.dyndns.org/~chriswei/temp/bulletmlscreen26.png
23:13
<@TheWatcher>
Dera: hm. how about showing one high score at a time, scrolling one in after the other? that way you don't need to have it in one big table?
23:14
<@Derakon>
It's more the width than the height that's the problem.
23:14
<@TheWatcher>
Yeah
23:14
<@TheWatcher>
you could do somehting like
23:14
<@TheWatcher>
Score
23:14
<@TheWatcher>
<score>
23:14
<@TheWatcher>
Time
23:14
<@TheWatcher>
<time>
23:15
<@Derakon>
Ahh.
23:15
<@TheWatcher>
and so on
23:15
<@Derakon>
Hmm...
23:15
<@TheWatcher>
scroll them in with some fancy effects....
23:15
<@TheWatcher>
*shrug*
23:15
<@Derakon>
That's the big problem with the multiline approach -- I can't have a single set of column headers.
23:15
<@Derakon>
I'd rather avoid scrolling, and I have plenty of vertical space here.
23:15
<@Derakon>
But something like what you suggested might work.
23:15
<@Derakon>
Thanks.
23:38
<@Derakon>
How irksome. I have enough room to print nine highscores.
--- Log closed Thu Feb 05 00:00:16 2009
code logs -> 2009 -> Wed, 04 Feb 2009< code.20090203.log - code.20090205.log >