--- 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 |