Jobe Makar is is one of the people who inspired 8bitrocket.com the most in the past 10 years. From his multiple Flash game books, to his 100's of games, Jobe has reached a level of success matched only by a very few. We caught-up with Jobe last week and tried to pick his brain to find the secret to his success.
How are you Jobe Makar?
I’m doing well now that the brutal summer heat is finally relenting!
You are one of the true pioneers of Flash game development. Can you estimate how many games you have created over the years?
That is definitely a tough number to come up with. My best guess is between 200 and 300 games, where maybe 25% of them are multiplayer. I know that is a pretty big number, but I’ve been at it for around 12 years now. I remember when I first started creating Flash games I only focused on games that I could make in a 1 or 2 day period. After years of that I felt confident enough to approach bigger games.
What is your education background?
I attended East Carolina University for 4 years of undergraduate work, and North Carolina State University for 3 years graduate school. My focus the whole way was physics. In graduate school I was pursuing a PHD. I finished the course work and moved into the research phase. After 6 months or so into that phase I was so burned out on physics and school that I left and started my career in Flash! I didn’t have any formal education in computer science or programming. Luckily for me at the time (we’re talking Flash 3 / Flash 4) the scripting was super easy to learn for anyone. As Flash grew over the years so did my programming knowledge.
You have published several books on Flash Game development. What books have you written and can you tell us about your latest book on multi-player game design?
The first book on game programming that I authored was Macromedia Flash MX Game Design Demystified, published in 2002. There were a few books on Flash games already on the market but they didn’t touch on a lot of the topics that I found interesting – like physics, collision detection, and multiplayer. In that book I tried to cover a wide variety of interesting topics. It was well received!
I updated that book in 2004 and it was released as Macromedia Flash MX 2004 Game Design Demystified. Unfortunately, the publisher wanted it out the door in an extremely short turnaround time – maybe it was 2 months, I don’t exactly recall. Due to the aggressive deadline I was forced to take on a co-author (Ben W, a good guy!) and just crank out the new version. I wasn’t happy with this release because the book was less cohesive, which is common with multiple authors that don’t have time to collaborate properly.
My latest book, ActionScript for Multiplayer Games and Virtual Worlds, was a book I really wanted to write. The publisher gave me enough time to write it and I think it turned out well. At the time, there were very few books on multiplayer available, and none that focused on Flash at all. This niche book filled that gap and has been getting excellent reviews! And in May of 2010 it won the Flash Book of the Year award at Flash and the City!
What do you like the best about working in Flash?
Over the last couple of months I started dabbling in Silverlight, XNA, Unity, and Java. While I’ve always thought Flash was easy to work with, I never really appreciated how much so until now. Jump into XNA and try making something as simple as a text field that lets you enter your name. In Flash that takes seconds, in XNA you could spend hours. So I really love how Flash identifies certain things that a developer will need to do, and makes those things easy.
Do you think Adobe has made the right choices with Flash and CS5?
That is difficult to say. I guess I have a few responses. The non-helpful response is this: I rarely use the Flash IDE anymore. I only use it to build assets that can be sucked into other projects at compile time. So in a sense, the state of Flash CS5 doesn’t affect me much.
But now I’ll comment on a few specific things. I was on the Flash CS5 prerelease and was very excited to use the iPhone packager. I fully supported Adobe’s decision to integrate it into CS5 and loved that they were creative enough to figure out a way to get Flash on the iPhone. However, with compilation times of several minutes the workflow using this feature can be debilitating. The Android packager on the other hand is pretty fast and is refreshing by comparison!
I know there are other new features in Flash CS5 but I haven’t really explored them much. Adobe has been pushing TLF but I haven’t touched it.
How do you work with Flash? Do you use the Flash IDE or do you prefer to use another development platform?
I use Flash Develop as my IDE. I think it has probably been years since I’ve been involved with a project whose code was compiled by the Flash IDE itself. Getting out of using FLAs for everything was a difficult decision for me since that was all I knew. But once I made that jump my productivity increased a lot. Compilation times are shorter and debugging is easier.
Electrotank has grown into a pretty sizable company. Do you still make single-player Flash games, or do you spend most of your time on multi-player games?
These days I’m spending a lot of time working on the ElectroServer API, documentation, and creating examples. But when I get the opportunity to work on a game it is almost always multiplayer. While I love working on multiplayer games, I’d like to work on a few single player games as a change of pace.
Electroserver 4 had been out for a couple years now. How has it been received by the Flash game industry?
Very well! It is used to power some of the most popular virtual worlds and multiplayer games out there. Since we use ElectroServer ourselves we have been able to shape it into a product that we know other developers would find useful. And they have for about 8 years now!
Can you explain what EUP is?
EUP (Electrotank Universe Platform) is platform for developing virtual worlds and social games. It is a massive system with features and flexibility that I can barely scratch the surface on here – but let me try. Imagine all of the virtual worlds out there and the features that they share – things like avatars, inventory, stores, environments/maps, questing, achievements, customizable rooms,etc. EUP makes all of these features generically available so that they can be implemented however you want for your particular game. The features can be customized and their abilities can be extended. There is an advanced system in place for easily adding client/server transactions whose code is auto-generated. If you need to add new properties to some object (like a purchasable item), the property can be added in place and it is automatically added and is accessible by client and server code. EUP even has solutions in place for creating UGC (user generated content) that can be used however you want – like by selling the content as an item, gifting it, or even having an avatar wear the custom item.
In addition to all of the above, EUP brings with it a suite of more than a dozen useful editor and content management tools – which we call the Tool Suite. The Tool Suite includes tools to do things like build and manage world maps, manage items for sale in stores, and even to manage all of the localization content for your game. In fact, we just found out this week that the Tool Suite was nominated for an Adobe MAX award!
What do you have planned for ElectroServer 5?
We’ve been working hard on the this next release. I’ll speak to two of our major new features.
1. Multiplatform APIs
Over the years our server has been focused on supporting Flash clients only. It has become clear in the last year or two that developers of other growing platforms really need a product like ElectroServer. So, we have rewritten the entire API from the ground up and have implemented it across many languages: AS2, AS3, Objective-C, Java, and C#. This allows developers of apps for Android, iPhone, Windows Phone 7, Unity, Java, and Flash to use ElectroServer! We’ve made the API identical across all platforms to make it easier for developers who develop for multiple platforms.
We’ve added UDP support for games that need to support the highest message rate. Typically UDP is used in games where position updates are sent as fast as possible, like first person shooters. If you’re creating a fast-paced twitch game, then UDP will help you get there.
There are many more new or enhanced features as well, so come check it out!
Can you give budding Flash game developers any advice about how to make a living in the industry?
It is an exciting time for game developers with some relatively new platforms to develop for. As much as a cliché as this sounds, I recommend that you work hard and continually learn. Don’t expect to be successful overnight. And while you’re starting out don’t be afraid to accept low paying jobs. They’ll help you gain experience and build your resume and portfolio. Attend conferences or developer community events. If you get yourself out there then opportunities will present themselves.
What do you think is the future of Flash and web gaming?
I think that we’ll see Flash show up on more devices and we’ll see performance gains. To have Flash run well on small devices Adobe will need to invest more in the runtime performance of the Flash player.
As far as web gaming – keep your eye on Unity. There are a lot of big brands focusing on the development of Unity games. Unity games can be played across many platforms, including Web, iPhone, Wii, and soon Android.
Do you play games yourself? What are some of your favorites?
I rarely play games. I spend most of my free time programming games, playing tennis, or watching movies. With that said, there are some games over the years that I’ve really enjoyed. Among them are Super Mario Bros, Jedi Knight, Command & Conquer: Generals, and Snood. It is kind of an odd list, but those are a few of the games I’ve really gotten into.
What's next for Jobe Makar?
While I love Flash, I’ve enjoyed branching out into some other languages and platforms recently. I think I’ll continue down this path for a while to see where it goes! I’m currently working on a first person shooter game with a Unity client. I’m programming the Java server code portion, and someone else is handling the Unity client. This is my first time as “the server guy”. And, s the server guy I need to start looking down on client programmers. J.
You can follow Jobe via Twitter here: http://twitter.com/jobemakar