One of Papervision3D contributing members, Mark Barcinski caused quite a stir even before he arrived at The Actionscript Conference (TAC) 2009. In this interview, Flashmech.net reveals more about this gamer, skater, coder.
Flashmech.net: Hi Mark! Nice to meet you. Can you share with us a little bit of your history, and also what is the main attraction point that got you into the Flash Platform?
Mark: I began working with HTML, then moved into the backend designing databases, using SQL and basically doing a lot of backend work. The main problem with it is that you can’t show what you do to anyone. Flash is one of the most perfect platform to show what you actually do, and so it got my attention. If you do a website in Flash you can go to your mother and say, “This is what I’ve made,” and you don’t even have to explain that much to see what it is.
The other thing is that I feel very comfortable working with both technical and creative people. Flash is one of the very few platforms where the separation between the coder and the designer is so small; you can be both when it comes to Flash.
I always like games, and I always wanted to make games. Again, it is almost impossible to start from the backend. If you are working with Flash, the step to making games is very easy. You can decide one day that you want to make a game, and if you know Flash, it is kind of easy to do it. That’s how I fell in love with the Flash Platform.
Flashmech.net: I think that’s something we share in common when it comes to the Flash Platform. [laughs] How did you begin programming then?
Mark: That’s the strangest story in the world. [laughs] I don’t know if I should tell because a lot of people are not going to believe me. When I was around seven years old, my father came home with a ZX Spectrum 48 Plus one day. It was an 8-bit computer, something that’s even more primitive and older than Commondore. The computer came with three games and some books about the computer. The games got boring really fast even for a seven year old.
I began playing around with the books about the computer, typing in the codes from the book, and they ran. That was when I started understanding programming. A few weeks later, my father sold the computer, so I was without a computer for a long while.
When I started working in an advertising company as a HTML coder, there was a team of ASP programmers around me. I found that a lot more interesting than HTML, so I crossed over, and started making tools for generating HTML for some really big sites. By the time Flash was introduced in the company, it was version five.
Flashmech.net: How was the transition working with the backend to working with Flash?
Mark: My introduction started with playing little animations on the timeline and reading books on how to make games in Flash. In my company where I worked however, most of my Flash projects were mainly connecting Flash with the backend.
The more I worked with Flash, the more comfortable I got with the workflow. Designs are done in Illustrator, and then got imported to Flash where the animation work begins. This will be followed by coding, like playing the right animation at the right time, checking for collisions, and stuff like that.
Flashmech.net: So when did you get into Papervision3D?
Mark: I was always interested with 3D ever since I saw a very primitive 3D animation when I was kid, which I thought was just amazing. I grew up thinking I was going to become a 3D modeler but that didn’t happen. I tried a few times but never got at it. You know how it is when you’re really good at something, in my case it was programming, and you have to learn a new skill and sometimes it takes too long, so you always fall back on what you are good at? It got to a point when I was afraid I was never going to learn coding 3D, and then when I found Papervision3D, that was my chance.
My reaction was “Wow! What is this? Why didn’t I know it existed? I have to know it!” That was when I started playing around, experimenting, and we finally started making projects with it.
Flashmech.net: We understand that you made VectorVision, so maybe you would like to share more about that?
Mark: VectorVision started out as a small add-on library to Papervision3D which enables it to render vectors. It was especially important for the text because everybody knows that text doesn’t look good when it is displayed as bitmap. At that time when I was working on it, I found this SVG import library which made it very easy to plug these two together.
VectorVision was inspired by FIVe3D; it shares the font format that FIVe3D uses. It started when we were doing a teaser for a website. It was just a small interactive 3D scene with the text, “Coming soon.” The text however, doesn’t look good in Papervision3D. The first option we had was to use FIVe3D together with Papervision3D, but it would be a lot of work to sync the perspectives, projections, and there would no way I could sort the z correctly.
I could either spend a lot of time figuring out how to merge a Papervision3D scene with a FIVe3D scene, or I could basically add FIVe3D functionalities to Papervision3D. And I did it in approximately an evening. Of course the only thing it could do was “Coming soon.” Apart from that, it was completely useless.
I spent the next few weeks to make it into a reusable library that could work with different fonts, before finally releasing it as an open source project.
Flashmech.net: Wow, that’s really cool! How was the experience of working with Papervision3D like?
Mark: What’s great for me in working with Papervision3D is that there are some really great programmers who worked on the library before me. It is really well written, and as a coder, you can learn a lot from just working with Papervision3D, going through the code, and trying to understand how it works.
I think my VectorVision is a great example. I was able to add a vector renderer that works seamlessly with the rest, without changing a single class in Papervision3D. It was a complete add-on. That’s not my achievement; it’s basically the engine’s architecture is so well written, that it is possible to add a completely new functionality that the team themselves did not expect people to add, all without changing the core.
Flashmech.net: That’s making me excited to read the codes already! Now I know of designers who are fascinated with the 3D space, but have no good resources on where to start. How would one actually go about it?
Mark: Well I think the main problem for designers is ActionScript itself. My opinion is that if you know ActionScript, it is really easy to get into Papervision3D.
There is a big misunderstanding. There are some great tools for editing ActionScript, basically my favourite is FDT, and the misunderstanding is that FDT is something for programming experts. Designers try to edit code with the Flash IDE, and to be honest, I could not program shit if I was to work with Flash IDE.
If you’re a designer, and you want to learn ActionScript, you basically need to take a crash course on FDT. With the right tools, ActionScript 3 is not any more complex than ActionScript 1, something that not so many designers are afraid of. If Flash IDE had similar functions to edit code like FDT, then it would never have been a problem.
As for Papervision3D, there’s a book now on the subject. I’ve read a few chapters and I think it contains very good information about how Papervision3D works. It is roughly how we envisioned people working with it, and describes in detail the practical approach to using Papervision3D.
Flashmech.net: Good point. I don’t think I can code well with Flash IDE either. [laughs] Any advice for people who want to learn Papervision3D?
Mark: Let me think about it… It’s easier than you think. The biggest step is learning ActionScript 3. Once you know that, adding a cube into a Papervision3D scene is just as easy as adding a new sprite to your display list.
Flashmech.net: Great advice that I can quote from now! Thank you for your time Mark, and big thanks for the great insight!
Be sure to check out Mark and his partner’s award winning website!