Home > Articles > Interview with Dave Baranec
Interview with Dave Baranec
Master of the seas and ass-rockin programmer, Dave Baranec leads the Volition
programming sea-dogs on a mission to make you forget Luke Skywalker and that guy from Sliders.
Drop us a little info on yourself: what did you do for FS1, and what's your
role on FS2?
Well, I came into Freespace 1 about halfway through the project. I did a
little bit of everything on it, interface (esp multiplayer interface), some
PXO work, main hall screen, the realtime voice system (network layer), and
assorted misc items. On Fs2, I'm the lead programmer.
What's an average day like for you?
Typically I'll get in between 9 and 9:30, check up on email, newsgroups,
and the todolist, which is our big bug/task database application. More
recently, I'll come in and fire off some responses for people with demo
problems, and catch up on the forums.
What kind of cool perks do you get at Volition that us plebeians with real
jobs only dream of?
There are lots of things which are very out of the ordinary. No dress code,
free food and drinks. With the addition of a pool table and a ping pong
table we now have more space in our conference room for games than we do
for actual conferency stuff.
What improvements have been made to the Freespace engine in FS2?
Several things have been changed. We've revamped the core of the bitmap and
texture manager so that everything internally to us is 16 bits. This keeps
things nice and flat and easy to manage. It also speeds up interface
screens considerably and makes texture uploads a wee bit faster. We've also
shaken out a lot of D3D related bugs which were in FS1. Adding 32 bit
support helped the nebula effect really sparkle (the alpha blending is so
much nicer). And finally, we added the hardware fogging for the nebula effect.
How does a 3d engine tailored for a game like Freespace 2 compare to, say,
the Unreal, Quake 2, or Quake 3 Engines?
They're quite different. An FPS typically relies on heavy use of
precalculated lighting, multitexturing, poly rendering reduction (via a
cool method like Quake's vis structure), etc. A game like Freespace poses
(in my opinion) many more technical challenges. Absolutely nothing is
static. Everything is moving all the time, so right up front everything is
dynamic lighting, which can be pretty expensive. Plus, you pretty much see
50% of everything in the mission at any given time. 10 fighters at 300
poly's apiece starts to add up real fast. There's very little clever
culling of objects you can do except at the "in-front-or-behind" level.
Sure games like Quake get 70 fps on a V2. But try getting 15 quake guys in
one room at the same time and watch where your framerate goes :) All in
all, its pretty much night and day.
Do you have a favorite 3d accelerator? If so, what and why?
Well, I don't really know if I can officially endorse anything, but my
favorite card that I've seen so far has a letter between 'f' and 'h' in it,
and a number between 300 and 500.
What do you think of this T-buffer stuff 3dfx is yammering about?
I dunno. It sounds like they're using a whole lot of extra horsepower to
render poly's more than once and then blend them together to give the
illusion of smooth edges. Kind of like simple ray-tracing antialiasing.
Although, I haven't really had a lot of time to look into it - FS2 is
keeping me plenty busy.
What kind of impact do you think adding T&L capabilities to the video card
I'll take T&L to mean "transformation and lighting". [Ed: I actually meant
"Tuna and Lambchops," but I didn't want to embarrass him.] If anything, the
transformation is more valuable than hardware lighting. Lighting tends to
be really game and engine specific, and hence generally requires some
pretty custom code. At the same time though, having hardware
transformations would kind of tie the hands of programmers since they would
likely have to arrange their vertex/vector structures just so, which
would likely make tons of nice stable code obsolete. Volition's library of
vector and matrix math routines is quite extensive, but if you even changed
the structure of a vector slightly, it would bust everything. We'll see though,
maybe hardware developers can be clever and produce something highly flexible
and yet still fast.
If you had your choice of 3D APIs do work in, which would it be?
Glide. It poses the fewest problems, and has 0 compatibility problems. Its
also the smallest (and yet most complete), and cleanest API.
If Matt Kresge challenged your position as Pirate Lord, in what dastardly
way would you deal with him?
He be strapped to the yard-arm, flogged, then keel hauled,
tar-and-feathered, and then made to walk the plank. He actually tried this
once, and believe me, this is an effective deterrent.