Thank you, Randy!
Noah Fentz: Randy, I can't tell you enough what a pleasure it is to have this interview with you. Can you tell our newer members a little about yourself and what you do?
Randy Davis: Ok - not sure how much of my life story you're looking for, but I was born in Fairbanks, Alaska, and now live in Seattle. I am a development lead at Microsoft. I have a new 5 month old son as you already know, which is currently taking up any spare time I have in my life.
Noah: Congratulations!
Randy: Thanks
Noah: Where did you go to school?
Randy: I have a BS in computer science from the University of Alaska Fairbanks.
Noah: So, what inspired you to create Visual Pinball?
Randy: Hah this is the question I'm asked a lot - I think I've given this answer quite a bit, although I can give more detail now since the products involved are so old now. I was one of the developers working the Microsoft Office Web Components, which were ActiveX controls designed for other developers to place into their own apps, and which had COM interfaces to allow them to talk to each other and to other components.
Some percentage of my brain is always devoted to turning everything into a game, so at some point it occurred to me that these Activex controls being standalone objects but communicating which each other was a lot like a pinball game where you had individual switches and lights that acted as lone objects but could communicate to each other and had logic to tie it all together. That, with a couple false starts, is exactly what VP is - a bunch of ActiveX objects you create that talk to each other via VBScript, with a fancy 3D presentation layer.
Noah: Were you a fan of pinball prior to VP?
Randy: I always loved the concept of pinball because in the end it's just you and physics that control the outcome of the game. The game creator tries to predict the sequence of events that will occur, but after it's left the factory they really have no control over where the ball goes.
Growing up in Fairbanks, I didn't have a lot of opportunity to play tons of pinball games, but I did just enough to realize they were fascinating in that way. Of course computer pinball breaks that a bit - you can fake physics as you want so the game creator is always in control. But it's pretty good.
Noah: In my interview with Gary Stern, he states there is no way to emulate pinball, since the ball is "wild". You tend to agree?
Randy: Yes; you can make it as pure physics as you can but I know game creators try to fight it. A lot of the questions that appeared in the forums during the early years of VP was how to fake physics in such-and-such a manner so that thing X would occur. But if the creator can let it go and leave it up to pure simulated physics, you can get close I think. All that is modulo the fact that computer physics, and VP physics in particular, has flaws that can make trusting it difficult.
Noah: I see.
Noah: Did you ever imagine the success and popularity VP would enjoy?
Randy: I didn't really know what I expect. I guess I always hoped that people would see it and think it was cool, but the speed at which it spread was beyond what I had imagined. I didn't even know where to announce that it was available but somehow word gets around. After releasing V1, the first table was posted a couple hours later. That totally floored me.
Noah: We VP'ers are crazy, you know.
Randy: Yes I gather that
Randy: BTW, I've always been hugely grateful to people like you who support the VP community. I've never given any real input on that and I think it's just amazing. There's too many people to thank.
Noah: Indeed. The list goes back nine years now. What do you feel is responsible for the longevity of its success?
Randy: That's a good question. Back when I first wrote it, I optimized it to run on a 100 MHz machine or better with no 3d graphics card. The fact that's it's held up at all is amazing.
When I started writing it, a friend of mine commented that computer pinball is all about the framerate. Nothing else matters. I took that to heart and therefore the graphics system of VP is 2D - up until recently even accelerated computers couldn't do 3D pinball in realtime. A lot of products tried and failed that. So I think some of the success was capitalizing on that advice and going for the lowest common denominator graphically, but making sure frame rate would work. Also, of course, allowing people to make their own tables. Anything where you can give people to chance to be creative and give real input will last long.
My original original plan was to use VP to create a package of playable tables and throw in the editor for fun. I was smart and realized that I actually suck pretty bad at making tables.
Noah: Well, there are plenty of tutorials on the site, if you ever want to try again
Randy: I think I realized I'm better at writing tools than content.
Noah: Do you ever use VP for personal use?
Randy: When you say personal use, do you mean to try to create tables for public use or for my own use with unreleased content?
Noah: Just playing pinball.
Randy: Oh, I see; yes I definitely download stuff and try it out. I fell out of the habit for the last couple years, though I occasionally go and try to see what's new. My favorite original table is the Jetsons, followed closely by a lot of others.
Noah: The Jetsons is indeed a fantastic table.
Noah: Are their fewer originals than you'd like to see?
Randy: I can comment on that, although keep in mind that I've been out of the loop for a little while so I don't know the state of things. A lot of the best content is found on the ROM-emulated games because it's all right there and you don't have to do anything, so it's not surprising that similar quality originals are more rare. I do love the originals, and yes I do secretly wish for more of them.
Noah: There has been some speculation that the integration of VPinMAME turned you off of the project. Is there any truth to that?
Randy: No; it didn't turn me off - VPinMAME is an amazing accomplishment in it's own right and it fits so well with the concept of VP I think it's great. There are 2 things about VPinMAME tables that bother me, but not in a bent-out-of-shape way.
First, VPinMAME uses up a lot of processor power and it makes the framerate stutter in VP, and as I said earlier, framerate is king. It seemed a lot of people would play a VPinMame table and decide that VP wasn't fast enough, when in fact VP takes up very little CPU at all. This all may have been fixed now that computers are so fast. I don't know if it's a problem anymore.
Secondly, since everybody wanted to recreate their own favorite table, I got a lot of requests to support feature such-and-such because otherwise table X wouldn't be right. It was always painful to see people concentrating on what VP couldn't do, rather than what it could do.
Original tables tend to express the positives about the engine, because they were natively built on it, but all my relationships with VPinMame have been great; I think it was put together by some really smart people (again, I'm not a hardware person - emulating hardware is magic to me.) At one point we tried to put our heads together to fix the framerate issues; That was where the Yieldtime feature was created - it makes VP yield some processor time at a fixed rate so the framerate is smoother
There were some times when I drew a line in the VPinMAME relationship for legal reasons. For instance, when I added the feature to put in table information, a lot of people wanted fields for original release date and original manufacturer. I didn't want to give the impression that VP was created to emulate illegally obtained ROMs so I tried as much as possible to make sure it was first and foremost an original table creator/player.
Noah: I suspect you still have some passion for it, so why the decision to stop development on VP?
Randy: It never officially stopped There's lots of little things to fix, but the next real evolution of the concept are things like a real 3D engine and managed code support - things which would force me to sit down and rewrite everything from scratch. It's things like that that make me always end up finding something else to do. I wouldn't mind doing little things here and there, if I knew what the right things were. The requested feature list got unmanageable a long time ago.
Noah: A lot of people are now building close to real size pinball cabinets with VP inside. Does this surprise you at all?
Randy: I have seen this going on; although I have yet to play one in person. I think the concept is great since it gets back to pinball being physical. I know some people have put in sensors to detect bumping the table and what-not; I think it's very cool. I'm not a hardware person so video game cabinets kinda amaze me in the first place.
Noah: What are your thoughts on NanoTech Entertainment and their VP 9 release?
Randy: That was done with my support; they asked if they could release the improvements they had made to the engine in order to support the community, and I thought that was a fine idea. They had made some changes that would break existing tables, so I worked with them to integrate the code (that's where the two physics versions come from.)
Noah: Any chance you will work with them in the future to fix a few things on VP 9, (e.g. overlapping reel transparency and ATI compatibility)?
Randy: Is there still an ATI thing? I thought that was fixed up. I need to get a bug list at some point. I haven't actually used VP9 so I don't know the state of things. Did VP 8 have those problems?
Noah: VP 8 had small ATI issues, mostly with reels, I believe.
Randy: Hmm ok something to look into. Thanks for mentioning that. At some point I rewrote all the reel stuff to make it work; in 2006 my hard drive crashed and I lost some of my latest work; I remember there was some confusion after that about what was in there or not. Let this be a lesson to have real-time backup of your hard drive.
Noah: heh...
Noah: There are many discussions on VP 9 on our forum, if you'd like to catch up.
Randy: Yes, that would probably be a good idea.
Noah: You mentioned having to rewrite VP to be rendered in 3D ... Is there an actual plan to do that?
Randy: Yes. VP is written against DirectX 7, which by modern terms means it might as well be carved on a cave wall. I'm actually in the middle of teaching myself DirectX 10, so that's a step in the right direction.
Noah: That is GREAT news!
Noah: This brings to mind Future Pinball ... Can you give us any insight on Black's viewing of VP's source code and the subsequent birth of Future Pinball?
Randy: I've only used FP a little bit; there is a lot similar, but it uses a different physics engine, different graphics; I haven't thought about it enough to have an opinion one way or the other.
Noah: Okay, fair enough.
Noah: Have you ever regretted not making VP a commercial product somewhere along the way?
Randy: I have pondered it. I got some offers and turned them down because I didn't want to dedicate the time to making a polished product. That was a crossroads where I could have made my life go in a completely different direction, I think. I don't think it was the wrong decision though; you have to draw the line in having a side project interfere with your life at some point.
Noah: Try to imagine you are a VP user for a moment and not the creator, what would your wish list for improvements or alterations to VP be? Forget any technical barriers.
Randy: Full 3D object support with full physics (being able to create any object and have the ball bounce of it realistically) - I think that would account for about half of the hacks out there. And being able to do my own light images - one for on, one for off. I think that would take care of the other half. I did start off the second one at one point, but it was part of a larger graphics update push that turned out to be too big.
Noah: When you say light images....you mean the type in VP 9 or something different?
Randy: Oh do they have that? See I don't even know.
Noah: One image for on, one for off, yes.
Randy: Yeah, ok so they did that. Or maybe they built on what I had? Guess it's been too long
Noah: Indeed, we ALL feel that way, Randy
Randy: Sorry
Noah: We all understand real-life commitments. It's been quite some time since your last post anywhere in the VP community. Is there a reason you no longer post?
Randy: I never really posted much at all, except to post updates to VP. I guess that's just part of my personality. I'm always a lurker on forums.
Noah: Have you visited our site, VPForums.org?
Randy: I have, although as I said, I've been out of the loop for awhile. It looks like such a complete experience compared to what was there in the beginning. Again, a huge testament to the input from the community.
Noah: Thanks! Do you have, or have you ever had, an alias on any of the forums?
Randy: On the old vpforums, I was just Randy.
Noah: Well, I encourage you to register here, especially since there will probably be many questions directed to you after this interview.
Randy: Yes, I will do that. This interview makes me want to go check things out again.
Noah: What was the trickiest feature or object to code?
Randy: The flippers. The flippers were the reason for some false starts in the beginning. I soon realized I had to write the flipper physics first, and then fill in the rest. Of course since then simulated physics has come a long way, and I know a lot of people aren't thrilled with the VP flipper physics.
Noah: Yes, the ball-through-the-flipper bug created quite a stir. Is there anything you can tell us that easily explains the issue?
Randy: I don't know; the problem is I can't reproduce it. Balls don't go through flippers on my machine, If I were a real company I could have a bank of computers to test it on, but as it is I am stuck with developing what I can see, That's the same reason VP doesn't have good wide-screen support.
Noah: Why hasn't GIF or PNG support ever been implemented?
Randy: When VP was first written, such things were not natively supported by the OS, so I would have had to write them myself; since then I added JPG because that seemed like the most likely thing people would want. I don't imagine gif is very interesting. Maybe PNG.
Noah: the VPPlus plugin implements GIF images for animation. Any chance for that in the future?
Randy: My understanding is that GIF is still copyright and that it is not included in Windows for that reason (correct me if I'm wrong.) PNG would be a better alternative - I had always thought about doing a native animation feature (I know people use reels for that), but there was never the killer feature for that.
Noah: I'm uncertain of the IP status of GIF, but animation of toys and such has been an important element to modern table designs.
Randy: From what I've seen, toy animation is usually done through images because it can't be done in 3D; so yes it would be an improvement but it would be so much nicer to have a real solution
Noah: In hindsight, is there anything you'd do differently in VP?
Randy: Hmm... from a technical standpoint I think I'm happy with what I did, looking at it from the year 1999 when it was written. I think the major flaw I would have like to fix is more organization on my part in keeping track of what needs to be done and what the bugs are (as you can see this is still an issue.) Keeping on top of things would probably have made it a much better app today.
Noah: Now, for the question most often asked ... Will you EVER release VP as open source?
Randy: Heh. I've asked myself this quite a bit when realizing that I'm not devoting any time to working on it. It would be nice to see it continue; I'll have to ponder this more before answering.
Noah: Take your time...
Noah: Randy, I cannot thank you enough for taking time out of your busy schedule for us. It has truly been an honor.
Randy: No problem; thank you for putting this together.
The information contained herein may not be published, broadcast, rewritten or redistributed without the prior written authority of VPForums.org.