Old Fogeys

Apr. 25th, 2008 12:21 pm
pphaneuf: (Default)
[personal profile] pphaneuf
I've become a member of Communauto last week, and combined with getting my bike back, means that I'm at what is going to be my peak mobility for the next little while.

Used Communauto a couple of days later to go to a Quadra hackfest at Rémi's, with [livejournal.com profile] slajoie as well. I've had a surge of interest in Quadra, but it is a delicate thing to do: we need to release a new stable version before we can hack on the "next generation" version, and while we're getting very close now, there is definitely a momentum thing that can be lost just too easily. And now the kind of things left are packaging related, which isn't the most exciting (so help us out, [livejournal.com profile] dgryski!). We've got interesting ideas for future development, but we can't really do any of this for now, since it would make merging from the stable release very annoying (and it already isn't too wonderful at times)...

Getting my bike back meant going to work on bike, and that is ridiculously quick, on the order of six to seven minutes. That's faster than the metro, by a lot (that's only a bit more than the average waiting time, and I don't have to walk to Lionel-Groulx). In my opinion, that's not even good exercise, I hardly have time to break a sweat even if I go fast, so I might end up taking detours on good days (the Lachine Canal bike path is nearby).

Related to Quadra, I've been looking at SDL (which the next version of Quadra uses instead of its internal platform) and SDL_net. It's funny how game developers are so conservative sometimes! I don't know much about 3D games, but in 2D, people seem to develop more or less like they did on DOS more than 10 years ago, which was very limited back then, due to DOS not having much of a driver model. Because of that, since anything more than page flipping and waiting for the vertical retrace (using polling PIO, of course) is specific to every video chipset. A game wanting to use accelerated blits had to basically have its own internal driver model, and when a card was not supported, either the game would look bad (because it would use a software fallback), or would not work at all. In light of that, most games just assumed a basic VGA card (the "Super" part is made of vendor-specific extensions), using 320x200 in 256 colors (like Doom), or 640x480 in 16 colors (ever used Windows' "safe mode"?), with maybe a few extra extensions that were extremely common and mostly the same.

Then, DirectX appeared and all the fancy accelerations became available to games (window systems like X11 and Windows had their own driver model, but could afford to, being bigger projects than most games, and were pretty much the sole users of the accelerations, so they existed). What happened? Game developers kept going pretty much the same way. Some tests by Rémi back then found that using the video memory to video memory color key accelerated blits (with DirectDraw), getting hundreds of frames per second, where the software equivalent could barely pull thirty frames per second on the same machine. About an order of magnitude faster! You'd think game developers would be all over this, but no, they weren't. They were set in their ways, had their own libraries that did it the crappy way, and didn't bother, overall. The biggest user of 2D color keyed blitting is probably something like the Windows desktop icons.

Then, 3D acceleration appeared, and they just didn't have the choice. The thing is, this hardware still isn't completely pervasive, and especially for the target audience of a game like Quadra, who like nice little games and won't have big nVidia monsters in their machines, so using the 3D hardware for that kind of game would leave them in the dust. Nowadays, DirectDraw has been obsoleted and is now a compatibility wrapper on top of Direct3D, so oddly enough, we're back to 2D games having to avoid the acceleration.

Thankfully, in the meantime, the main CPUs and memory became much faster, so you can do pretty cool stuff all in software, but it's kind of a shame, I see all of this CPU being wasted. Think about it: Quadra pulls in at about 70% CPU usage on my 1.5 GHz laptop, so one could think it would "need" about 1 GHz to run adequately, right? Except it worked at just about full frame rate (its engine is bound at 100 frames per second) on my old 100 MHz 486DX! Something weird happened in between...

Game developers seem to be used to blocking APIs and polling so much, it spills over in SDL_net, which uses its sockets in blocking mode, and where one could easily lock up a server remotely by doing something silly like hooking up a debugger to one of the client and pausing it. Maybe unplugging the Ethernet cable would do it too, for a minute or two, until the connection timed out. How awful...

Date: 2008-04-25 11:12 pm (UTC)
From: [identity profile] skjalm.livejournal.com
Hehe, yeah, game developers can seriously be idiots. With very large egos.

One thing I've learned over the past decade or so where I've had an interest in (and been an active part of) the "gaming industry" is that a large part of the industry is driven by self-taught people who look down on people who don't think like they do. The result of that is that if you dare to recommend doing something in a different way they'll take it personally and ignore "irrelevant" things like performance and stability. Think "primadonnas"

Seriously, this has happened to me a couple of times, especially when it came to artificial intelligens and path finding. To a LOT of game developers ai IS only path finding and not only that, it's path finding with the A* algorithm. At one time I made the mistake of mentioning Dijkstra's algorithm only to have my arse chewed off by some caffeinated game developer who refused to listen to anything other than A*. He didn't even want to hear about Dijkstra's with a heuristic that let it run more efficiently... and he didn't for one second believe me when I tried to tell him how Dijkstra's and A* are related.

Then we have another fraction of game developers who really are brilliant, but who are arrogant pricks who simply look down on anyone not at their level. Problem about them is that they tend to be put in charge of assigning tasks to other people and assume everyone can do things as quickly as they can... or think they can...

So... yeah... I'm in a third group of game developers: the old, bitter people who are neither brilliant nor willing to work 12+ hours on a daily basis but simply grumble about how good things could be if only people took a step back and thought for a while ;)

Date: 2008-04-25 11:22 pm (UTC)
From: [identity profile] pphaneuf.livejournal.com
Yeah, I think I'm in that third group as well... :-)

Feel free to check out Quadra if you feel like it, by the way! We're pretty mellow, we know our code is crap and could use some help. ;-)

February 2016

S M T W T F S
 123456
7891011 1213
14151617181920
21222324252627
2829     

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Mar. 20th, 2026 07:30 am
Powered by Dreamwidth Studios