From Power Game Factory to CAPTURE

How Jesse Simko went from game developer to data acquisition and analysis with Durridge Company

Growing up, Jesse Simko was primarily interested in drawing and video games. As a child, he used Dazzle Draw, Mario Paint, and Kid Pix, and took inspiration from the visuals of Nintendo games like Star Fox and Super Metroid. He learned the basics of HyperCard and similar authoring tools, before turning his attention to 3D modeling.

“My intent was to make a first-person shooter game, and as a Mac user this became possible with the 1997 release of Bungie Software’s pre-Halo masterpiece, Marathon Infinity, which included a full set of level creation tools,” commented Simko. “My game project bore little resemblance to the original Marathon, and my large texture sets and character graphics tested the limits of its game engine.”

“Occasionally the SyQuest drive attached to my 75 MHz Power Macintosh 7200 would conspire with the not entirely bug-free Marathon editing tools to render my project files unreadable, prompting me to start over, each time with a more grandiose and less realistic vision for the project,” said Simko.

Later Xojo would give him the opportunity to take greater control of his work.

When Simko first became aware of Xojo (then Real Studio), he immediately created a program with a clickable PushButton, and then entered the button’s Action event handler and typed “Quit.” Surprisingly, his program quit as intended and it was his first hassle-free programming experience.

“The lack of cryptic symbols and intimidating boilerplate syntax made Xojo very inviting for a beginner,” stated Simko. “Getting Xojo was an easy decision and it shaped many of my future academic and professional pursuits. Since then I’ve been repelled from other programming languages due as much to their relative inelegance as to any of Xojo’s particular strengths.”

Simko has developed two significant applications in Xojo. The first was Power Game Factory (released from his company, Sawblade Software), a tool for making side-scrolling action/adventure games on OS X. It was originally released in 2005 and started as a fairly straightforward action game called Greenland Invasion, in which the player controls an Eskimo trying to protect Greenland from a Canadian occupying force. He finished the game in about 8 months during his final years of college and after graduating he began building a level editor around the core game engine. This allowed users to design their own graphics, characters, music, and backgrounds. Greenland Invasion was included with Power Game Factory as a sample project, as was Zombie Holiday, a comedic horror themed game created by a particularly talented Power Game Factory beta tester.

The development of Power Game Factory was greatly aided by John Balestrieri’s SuperSpriteSurface control, which endowed Xojo with hardware accelerated 2D sprite graphics.

“I had met John ages ago at a New York MacWorld Expo, and was honored when he saw enough potential in my then software-rendered prototype to justify creating a code library that would permit enhanced graphical performance and effects like semi-transparency and real-time scaling and rotation,” commented Simko. “My work on Power Game Factory continued on a part-time basis through 2009 while I was employed as an artist in the game industry.”

Simko’s other big project is a data acquisition and analysis tool called CAPTURE for Durridge Company, Inc., the makers of a professional radon monitoring instrumentation. His work on CAPTURE actually began when he met Durridge’s Founder and President while attending the 2006 Real Studio Developer Conference. He began contributing on a freelance basis and has now been employed with Durridge on a full time basis for three years.

At Durridge he is responsible for ensuring that CAPTURE can obtain data from RAD7 radon monitoring devices, parse the results, render interactive graphs, and export the data for use with other software tools. This work started as a more focused development effort than his previous game related work, but CAPTURE has grown in scope and it now takes advantage of a whole host of Xojo’s capabilities, including multithreading, networking, serial communications and multilingual support.

“As the project evolved, it demanded that I refine my programming practices and adopt the use of class interfaces, enumeration, and inheritance, all of which Xojo handles wonderfully,” commented Simko. “But CAPTURE’s compatibility with both Mac OS X and Windows is probably the best testament to the power of Xojo.”

“I’m happy to report that CAPTURE has been used by scientists to perform research in some pretty exotic locales,” continued Simko. “Last month some scientists brought RAD7 systems running CAPTURE out onto Tonlé Sap Lake near Siem Reap, Cambodia, the biggest lake in South East Asia, and monitored radon in the lake water. So, it could be claimed that Xojo is waterproof as well as regime-resistant. But we've also shown that Xojo can handle truly demanding scientific tasks, such as the monitoring of conditions inside volcanos. The framework's support for Bluetooth serial communication permits such research to be carried out from a safe distance.”

Xojo has been very useful for making small applications that help Simko’s larger projects. These programs have names like "Preferences Folder Opener", "Durridge Translator", "XML Source Line Counter", and "Spectrum Def Normalizer". He has also used Xojo to make a simple painting program called Bristles and a basic accounting app for keeping track of Sawblade Software's orders and expenses.

More details on Power Game Factory and CAPTURE are available at www.sawbladesoftware.com and www.durridge.com/capture.

Code statistics:

Power Game Factory contains over 100,000 lines of code and occupies a few hundred megabytes, including all of its graphical resources. The game engine itself is about half that size. CAPTURE is considerably smaller, mainly because it is better written. Here are some code statistics:

Power Game Factory Game Engine:
Lines of actual code: 47755
Comments: 8302
Methods: 840
Properties: 2629
Constants: 29
Size of source code in XML format: 7.1 MB

CAPTURE:
Lines of actual code: 36243
Comments: 5994
Methods: 1025
Properties: 1471
Constants: 1059
Size of source code in XML format: 10.1 MB