Dan Potter's interview
B00B! Dreamcast Research: Can you tell us where were you born, where you live, your family details, etc.?
Dan Potter: I was born in Dallas, TX and lived there for 16 years until I moved out for college in Denton (also TX) and then Austin (again, TX). My dad's a geek of sorts himself, working as a machinist for engineers at design shops, and occasionally doing a bit of design work himself. His hobby now is making wind chimes and selling them at various weekend markets =). He's probably responsible in large part for me getting into computers and technology at all, I've got two older sisters who harrass me incessantly about how much of a geek I am. In a good natured way of course =). My step-mom's always asking when I'll strike it rich in my game development work so they can retire to Colorado but I suppose for the near future I'll have to keep saying "soon", hehe =)
I have lived in Austin, TX since 1996, where I've been going to college. I recently lived in Tucson, AZ for 9 months and will move back there once I finish my degree. Can't beat the scenery, hiking/biking, amazingly dark sky for astronomy geeks, etc... just a great place. I guess Jessica (the girlfriend) moving back there helps to make that decision as well =)
B00B: What qualifications do you have? What made you get into computers?
DP: I'm kind of combining these two because they're quite related.
Hmm... where do I start? (I did warn you about that head inflation thing ^_^;). When I was 4 years old, my father brought home a Speak and Spell from TI (where he was working at the time). Employee store, good discounts, etc. I think from that moment on it was too late for me to get interested in anything else for quite a while =). I got a TI-99/4A home computer when was 5 or so, and it grew from the simple console with Basic and Logo to a home computer workstation (lol). Basic console had extra RAM and a speech synth hacked into it, new cooler power supply, expansion box with a persistent RAM disk, two floppy drives, all those goodies! =D On that thing I learned 9900 assembly, and we bought a PC not too long after that.
I guess it went from there: I spent most of my waking hours at school or on the computer. I wrote a tracker called "Farandole Composer" which some of you may remember with curses =). I participated somewhat as a side in the PC demo scene of the time, but we never really made much in the way of demos, and did a lot of talking. =\ Ah well, I got a few friends from that time. I had a BBS called Programmer's Oasis (it was 214-328-6142, if anyone remembers better by that =).
I participated in a competition programming team in high school. It was a geeky high school (Science/Engineering Magnet) so we were like the football stars of the school. That was pretty damned cool, for a change =). I left there after two years to go to the Texas Academy of Math and Science, in Denton, where they shut you in a dorm with 399 other smart (and mischeivious) people for two years... man was that a riot! =) I got my high school diploma and two years of college there and moved to Austin, to finish a CS degree at UT. I'm still trying, but I've almost got it =).
I'll stop there before I bore everyone, but suffice to say I've been sitting in front of a keyboard for a large part of my life since 5, and I'm 23 now. I've got a strong interest (probably thanks to school) in understanding computational science and how things _should_ work rather than just getting them working, but just kicking back and coding is quite enjoyable as well =)
B00B: What projects/coding have you done previous to any Dreamcast programming?
DP: I listed a few above, but of interest to the DC community are of course the demos; I also worked on several (abortive) game project attempts with a friend of mine from Science/Engineering (hi Matt! =). These started with a simple overhead tile map and progressed over the years to a full Quake-style engine with source lighting and a custom scripting engine.
Also of trivia value is that KallistiOS/DC was not the first incarnation of KallistiOS. Most people probably don't know this =). KOS was originally a project for the PC. I had a book called "Advanced 386 Programming" (I think that was it) that introduced me to protected mode, multitasking, etc. I had to sit down and write one =). I did all of that from that book and manuals I found on the net, so it proves you don't need a bunch of official devkit materials nor a degree to do this sort of thing. Just a keen interest and a lot of determination.
B00B: What made you get into Dreamcast Development?.
DP: It was almost an accident, quite literally. My roomate Phil invited us over to play Soul Calibur a long time ago, and I was so floored by the amazingness of that game (and obviously the system underneath it) that I added it to near the top of my "acquire when money arrives" list =). Soon after I bought the DC, they sent me an image for the CDX. Now, this was fantastic because I could play imports and all of that, but it got the gears turning in my head: if I can burn a normal CDR and run it on the DC with THEIR code, why not replace the code and burn my own anyway? I started hacking on the CDX and eventually found Marcus Comstedt's site. I didn't have a "Coder's cable" at the time so Tursi helped me out by running my test program and sending a screen shot.
I got on the mailing list and started being more active with it, and a few weeks later I couldn't stand the suspense any longer: me and Jordan ordered the parts and built two cables, and I bought a SCSI CD-R to burn DC CDs with (since the one at work didn't do the job).
Tursi and I worked on what was to become libdream for a little while, and eventually that did morph into libdream. I later got to discussing the idea with Jordan of writing a real embedded OS for the DC, and that was when KallistiOS/DC was born. It shares the name and some of the concepts of the original KOS/i386 but none of the code. Things just kind of went from there.
B00B: Was Ghetto Pong a good learning step onto bigger things and how complex was it to code and get running nicely?
DP: Oh yeah. [[Ghetto Pong]9 was Jordan's baby actually. He wanted to write a Pong clone for the DC just to play around with the coding aspects of it, so the original Ghetto Pong was actually just a red square moving across the screen with green block paddles. That's why it's "Ghetto"! =D I took that work of his and added menus, background music (thanks El Mobo! =), and sound effects, and his brother Kyle added some graphics. The result is the Ghetto Pong you see today.
'B00B: How did you start and what programs did you use to start coding?
DP: I think I managed to answer this above during my lengthy discussion of my start with computing =). I'll add to it, though, that I used:
- TI Basic, then
- TI Logo, then
- TI Extended Basic, then
- TI 9900 assembler, then
- GW Basic, then
- Power Basic, then
- Turbo Pascal for DOS, then
- Turbo C for DOS, then
- Watcom C for DOS, then
- GCC for Linux
That pretty much brings it up to modern =). I've had stints with Haskell, Python, Scheme, and a number of others that I don't use for "mainstream" work now.
DP: I guess I'll give an anecdote about KallistiOS that is kind of amusing, which I've talked about previously only in a translated Spanish interview. When we started KOS, we were trying to decide on a name. The original suggestion was actually "HuevOS", believe it or not. Our mascot was an egg, wearing a sombrero, and riding a surf board! (just consider all the puns for a minute =). Eventually, though, KallistiOS was chosen as the name because of the high interest among the authors in Discordianism =)
I didn't know that it would eventually be looked upon as one of the most significant pieces of hobbyist software, when I started (or rather, when we started =). I guess it started the same way as any free software / open source project: there was a need to be filled, I wanted it filled, and I worked towards doing so. I guess the DC is complex enough that once there was a base and someone was working hard on it, no one else wanted to take the effort. The exceptions I know of are great work too, but they seem not to have caught on very much.
I guess to me it became "truly significant" when I realized that people high up inside Sega were looking at it for more than a glance. =) Not for usage in anything official, just that they had added it to their map. Everyone on the dcdev list is probably familiar with this story though.
B00B: What plans for the future do you have for KOS and KosWin?
DP: I'll answer the second first since it's easiest =). I don't have any plans for KosWin because it was just something I did on a whim to try to help out some people who were having troubles. It seems on retrospect that the idea was well placed, but I'm kind of a fish out of water in the Windows world. ^_^; So I'm hoping other people will pick up the idea and go with it, and it seems that is happening. I'll be happy to host a good one on SourceForge's behalf (HEH).
For KOS itself, I am basically hoping that it will grow to fill every need for hobbyists that was filled by Katana for official developers. This sounds a bit presumptuous, but I feel like we're already there to a large degree. I can't name any names, but a developer at SEGA told me once that my tools were easier to use than theirs for some things! With the addition of KGL, an unencumbered MP3 player (working on it =), and the re-integration of things like lwIP and OS mode, it could go just about anywhere. I guess we'll just see what happens.
B00B: What programs have helped you on the Dreamcast and how significant is a hardware OpenGL driver and to what programs/emus would be made accessible with it?
DP: I guess as far as what _programs_ have helped, the major one has been dc-load and dc-load-ip. Marcus Comstedt's tools have always come out as a sort of first pass to get people going, and then Andrew's tools come out and perfect the process. That has really helped things along.
On the hardware OpenGL driver, be careful on terminology here. I'll be quick to point out (and so would SGI's lawyers! =) that what we have isn't an OpenGL implementation, but an OpenGL-like library. This is an important distinction, because I want to make GL programmers feel at home (and have something easier than raw TA for myself!). But it's not really OpenGL.
I think the GL driver, though, is VERY significant. I didn't realize until I started using it myself just how convienent it is. With a few more mapping modes (e.g., ortho) and some glu functions, it could easily cut development time for DC things in half or more. I've definitely become a believer of GL at this point =)
What could be made with it? Your imagination's the limit!(tm) Once lwIP gets re-integrated (and I've potentially got some SMB code coming from someone else) you could spend an afternoon writing an MP3 jukebox with fantastic visualizations. Games, demos, and even emulators. Who knows. The same things are possible that were before, they are just much easier.
On emulators, I don't really know. I guess it's up to the emulator authors to be ingenious enough to use the 3D at all. This is not a simple problem since most earlier systems assume very low level control over the output (like SNES's HDMA).
B00B: What programs/apps/emus would you most like to see come out on the Dreamcast?
DP: I'm looking forward to JamDu coming out, if for no other reason than to see what came of that late-night inspiration almost a year ago =). Something else I always thought would be pretty nifty is a Dreamcast tracker. Why not?? You've got 64 channels of wave table sound, hardware accelerated 3D for any sort of inteface you want, a keyboard, a mouse, and space to save files (BBA, mainly). Even though Farandole was my last, I have still maintained an interest in trackers. Emulators.. I'd like to see a SNES emulator finished with full frame rate and sound quality. I'd love to pull out some old classic games and play them on a console again, since the original machines tend to decay and break over time.
Beyond that, I'm always interested to see demos and games. Delicious was a very cool surprise that I've shown all my friends to say "here, this sort of thing is why I've been slaving over this box!" =)
B00B: What's your opinion of the new super consoles like Xbox, Gamecube, Game Boy Advance, and the Playstation 2?
DP: Oh man. You could fill a whole interview with this. =) But I'll refrain since I've got to run to class in about 15 minutes.
- Xbox: Microsoft owns it, they're gonna do it wrong. I've seen some things on this machine that look VERY cool, like Jet Set Radio Future, and Dead or Alive 3. I've heard that the Microsoft titles are really looking up too, but the ones I saw at E3 were pretty disappointing. Guess time will tell. One thing I will say, it's HUGE. Way too big. For that reason alone it will probably fail in Japan.
- Gamecube: Looks nifty, well put together, solid company behind it as usual. This will be a "safe" console to get for some fun games. The Star Wars game looked outstanding (again, at E3) but most of the others were not so super looking. Again, I guess time will tell. Integration with the GBA will definitely help the 'cube.
- GBA: High on the cool factor, and it's great to have a real console to play a lot of old games being ported up. I'm guessing this thing hasn't even remotely been fully tapped for potential, and it's already got some amazing 3D-looking titles (like that tunnel game, can't remember the name now!), a DivX player (slow, but it's there), etc.
- PS2: This is a really great machine processing power wise, but Sony has made the same mistake that they killed Sega for on the Saturn: the box has amazing processing capabilities, but it's extremely hard to code for. I don't even want to think about what they had to do to that thing to get GT3 out of it =). And I have to comment on one other aspect that always irritated me about it: whole lotta hype, normal amount of substance. Sony's PS2 marketing probably killed the DC, even though the majority of the released games for DC are far superior in game play and enjoyability to the PS2 titles out. This may change over time but I'm not keeping my hopes up.
B00B: Which console looks the best for dev'ing on?
DP: Still the DC. Except of course that your audience is quickly waning. I'd say next in line behind that are GBA and probably Xbox (it's a PC, it can't be that hard to get into =). Last I heard PS2 is still a major pain to dev for but this may improve in the near future.
B00B: What are your favourite games for every system you have owned?
DP: Ahh, well this one is easy! I've only owned two systems -- PS1 and DC.
For PS1 I've like a lot of games on it, but I'd have to say one of the "good but unknown" titles is N2O. If you haven't played it, do so. It's cheap, and it's like concentrated Crystal Method (the band) stuffed into a game =)
For DC, I basically haven't disliked any of the games =). They are almost all fantastic, at least the major ones. I've had a lot of fun with Evolution (3D Nethack, I like to call it), and a lot of team play fun with Phantasy Star.
B00B: Your thoughts on the Dreamcast Emulation/Development Scene and how can it be improved?
DP: I've probably said enough above already, but the one thing that could really help the scene is the one thing that's never gonna happen now: continued support for the hardware. I had glittery dreams of a hobbyist section in ODCM (which is now dead), some sort of hobbyist area on Sega's DC site (slowly dieing), who knows. That whole dialogue with John on the dcdev list was very promising. Suddenly, overnight, it became the "console that could have been". A truly regrettable state of affairs, but I guess a company's gotta do what it's gotta do to stay alive.
At least Sega has continued making games! Their games have almost always been trend setters and it's good to see they will continue to be. See here, Tecmo already has a Space Channel 5 clone =). Anyway, I digress...
B00B: Thank you for your time; it has been a honour for the scene. - wraggster