Jim's Story
My Story
I grew up in a small suburban town near the shore in southern New Jersey. As a young student I was always one of the top performers in my class, and I especially excelled in math and science. In my younger years I was always curious about the world around me. Businesses, computers, governments, people - I wanted to know how they worked, and I wanted create my own empire. I can remember making simple websites, and playing around in Flash Professional 3 in my early teens when actionscript 3 was a hot new language. I had no idea what OOP practices were at the time and built a few games with code solely in the actions panels (boy, I am glad I don’t do that anymore!). I grew up in the golden age of Nintendo, owning a few game boys, N64, and gamecube. I was a huge fan of Mario and Zelda games, and as I grew older I got a playstation 2 and xbox. Throughout high school I worked odd jobs at restaurants and a ski shop, played varsity tennis, and worked hard in school. I had a few java classes, but mostly I focused on math and science. I was accepted in the honors program at Rutgers University, so I off went to New Brunswick. Mathematics and Calculus came naturally to me, and about halfway through my college career I found myself deciding to major in mathematics knowing I didn’t want to be a mathematician didn't want to be a math teacher. Now that’s it’s over I can say I enjoyed many of the classes I took. Not only did I take a lot of heavy math classes, but I was able to explore other disciplines and took classes in philosophy, logic, economics, nutrition, and theater among others. Of course I didn't attend college in a vacuum, and there were a lot of friendships and relationships that formed during these years. In my freshman and sophomore years I wanted to be an actuary. I was intrigued by the so-called “impossibly difficult math exams” that the Society of Actuaries had put together for certification, and I was very interested in probably and risk analysis. Speaking of difficult exams, during one summer at Rutgers I took the official supervised IQ test for Mensa, the high IQ society. I passed the test and was accepted so now I attend Mensa gatherings occasionally. Now back to actuarial stuff- the actuary exams were difficult, but after passing a few (and failing a few) I was able to get myself in the door as an intern at two highly respected insurance companies during the summers after my sophomore and junior years of college. Disillusioned by the actual day-to-day duties of actuaries, I found myself enjoying coding in VBA for Excel spreadsheets to be my favorite part of the jobs. I can remember being at work longing to have flash builder open in front of me instead of the lame reporting software I was using. I knew I could build a much better business around being flash developer than a spreadsheet developer so I went back to the platform I was already so familiar with - but this time I wanted to do it the right way. I wanted a platform that on virtually every computer, could run seamlessly in browsers, performed well, and had a fun development environment. I felt that Adobe had met all these things as if they had made the perfect tools for me. By this time I had been exposed to java and vba programming, and I was looking into design patterns for as3 so I could strategically prevent myself from noobish mistakes like writing everything in one class or avoid lagging due to bad garbage collection. Frustrated by the lack of training is this area at my school, I decided I would have to learn it on my own. I was determined to become a master flash game developer, and I absorbed everything on the subject like a sponge. I would watch hours and hours of videos and read through any and every tutorial I could find. I would go to book stores all across the state in an attempt to flip through every as3 book out there (and learned some things about other Adobe applications along the way). I would order books I couldn’t find from amazon, and became interested in theory books as well on subjects like monetization, software development methodologies, and managing employees. I would attend meet up groups and try to link up with other developers. I would even email my favorite authors and talk to them about actionscript in general or ask questions about their ideas and how to build off of the lessons in their books. I went hard learning and practicing all the as3 development that I could during my final years at Rutgers. Somewhere during this time I realized that I really loved online multiplayer games. All of my favorite games (Halo 2&3, Madden, Warcraft 3, Call of Duty, and Tetris Battle to name a few) were all online multiplayer. There was something about the competitive, social, aspects of playing with other real people that made the games that much more fun. In my opinion all the best games were mmo games, and so that was exactly the type of game I wanted to create. A was a bit intimidated by all the behind-the-scenes infrastructure and cross communication necessary for mmo games, but I never let it stop me. Then I found Electroserver. By the time I got around to using this great technology it was already being called "Electroserver 5". It was quite awesome to say the least. I bought a great book that not only explained the es5 api, but got me to think in terms of rooms and messages between client and server. This would ultimately give me the foundation for my online multiplayer development approach, and made me aware of common challenges like chat profanity filtering and challenge-your-friend implementations. I started looking through the example projects and spun up my own servers. Knowing almost nothing about bash scripting or managing linux servers at the time, I was determined to make it work. I got tons of help from the forum admins, and made a few online multiplayer projects while hacking my way through the tasks of what would probably be called 'systems engineer' at large companies. A few weeks before graduation, I secured a position as an actionscript 3 game developer for a company named Fantage, makers of the mmo browser flash game with the same name. It was a dream come true for me, and it was the beginning of my professional career as a true software developer. It was a great experience, but unfortunately I can’t really talk about it. : ) After leaving Fantage, I wanted to see more than just the client side programmer perspective. After all, if I was going to have my own company building my own games I had to understand all aspects of development from planning to distribution to monetization. I had just witnessed the tip of the iceberg in my college bedroom in terms of connecting flash to the outside world. I wanted to know the best practices, clustering, and how top corporations manage databases and servers. Shortly after I left Fantage electrotank was bought out by another company, and they pretty much shut everyone out from using Electroserver anymore! So basically, there was no future with the platform, and I was very disheartened to put it mildly. I had been playing with servers and databases. I was using basic MySQL databases with the flash application through both the java electroserver libraries also some php (amfphp). I had been so close to launching an mmo question and answer game similar to Quizup or Boxerjam, but now it was all falling apart. I remember coming to the realization that my time using electroserver.swc was over, and just as soon as I wiped the last tear from my eyes I started researching a new flash multiplayer platform. It was not about to let the saga end here. I then found HCM, a gold partner of the software superpower Oracle and leader in the installation of Oracle's server platform built for the largest scale management of users. Managing, clustering, and communicating between linux instances, databases, and directories were interesting undertakings of which I had only scratched the surface in my personal experiences. I had built my own basic username/password authentication, but these tools give extremely sophisticated control and security - to the point where banks, governments, and universities are upgrading to this platform by regulation and choice. I was very interested in web security, protection, and encryption so it was a great opportunity to figure out everything there was to know about authentication, identity stores, and secure communication on the web. Shortly after it became apparent to me what electrotank’s new owner's intentions really were, I found the 'new Player.io', now know as Yahoo Games Network. I had used the old Player.io framework for in-game payments and virtual currency, but as an indie developer I couldn’t pay for the service that wasn’t really even being used. Initially when I saw player.io was bought out by Yahoo I panicked an had flashbacks of electroserver. However, it seemed that Yahoo had completely the opposite intentions. They were making the platform more open to the public. Initially was turned off by the weak tutorials and examples available, but after experimenting with the library myself I can say that the api is just as straightforward and intuitive as electroserver (although it is a little different). Plus, it had several advantages over es5. Not only were there features completely missing from es5 like in-game payments, file hosting, Facebook/kongregate integration, and achievements, but they also did all the systems admin work for you by hosting clustered servers and NoSQL databases! For free! I was excited about this new platform, and after testing it out I decided to make a full scale game with it. By this time I was well aware of best practices in flash development. I had developed my own MVC style, experimented with starling, taken an animation class, and for the first time I was building my game with my swf state machine pattern, loading each state and destroying it with unloadAndStop. I wasn’t trying to make it not lag, I was profiling with Adobe Scout to keep the memory as low as possible at all times. It was time for me to make a real game - a game that random people would willing choose to play and become addicting to because they thought it was fun. I wanted it to be a game that I was proud of, and that I would play. I decided to go all-in, and make the game that I had been dreaming about for years. Growing up near the beaches of Atlantic City, I was exposed to casinos at a young age. I wanted to beat the system, and I found analyzing different approaches to various games an interesting puzzle of risk/reward and probability. After reading a great book on the blackjack spinoff offered near me named Spanish 21, I became very interested in the game. I learned that there was a ‘basic strategy’ which was basically a chart that explained the mathematically correct action to make in any possible situation. It also talked about card counting, and I still to this day go to Atlantic City and count cards at the Spanish 21 tables once in a while. I wanted to bring that blackjack experience to a serious online multiplayer game. I wanted my game to simulate real life, allow card counting, and attract those who were so good at blackjack they were bored of it. I had fallen in love with the Facebook game Tetri Battle, and I knew if could make that game, but just swap out tetris for blackjack, it would have the potential to be a great success. I made the actual in-game vs screen first with rudimentary graphics, guest users, and a basic c# room class with some custom messages. It was far from fun or even playable, but it was just a prototype of something great to come. I began making the other states for the game, and that was the birth of Blackjack Battles. Today, I am still at work polishing Blackjack Battles and supporting the open beta. I still live in the Rutgers area, and I’m looking for hungry programmers, designers, and artists to help me build this game to its full potential and hopefully many more thereafter. I have rolled a few of my previous websites into this one which more or less a public knowledge base of things I’ve learned about software development (especially mmo flash games), business, and other random life tips. If you’d like to work with me, need help on a project, or want me to speak at an event about flash mmo game development, feel free to contact me. I have flash on my mind, and I’m always on the grind.
|