"I am a very creative individual with many talents. From concept to implementation, coding to debugging other programmer's code, pushing hardware and software to its limits, and creating the smallest footprint possible for a given task." -SAB

  • Project management
  • Artist, Animation Design, Layout, Computer/Freehand
  • Musician, Guitar, MIDI, Sound effects
  • Programmer, 80x86, ASM 6502, JAVA, BREW, CGI Perl
  • Electronics, Electrical engineering.
  • 2006 Infospace -

    Position: BREW programmer. Frogger, WBD Drop.
    Project Leader for Frogger.
    Dates: 2 years, August 2004 to July 2006

    2004 Atlas Mobile -

    Position: 80x86 Assembly, BoulderDash maze and
    Solitaire Golf deck generators.
    Dates: 1 year, December 2003 to August 2004

    2002 SABgames -

    Position: JAVA programmer. Sold Custom JAVA games, some with CGI web scoring, WebGammon, head- to-head backgammon with chat. Sports games, skiing, golf, bowling, card games. Created a JAVA parsed SABfx language using plain text commands.
    Dates: 7 years, September 1995 to December 2002

    1977 El Camino College - California

    Majors: Electronics/Math and Computer Science

    HOME
    Flash
    Java
    SABfx
    Resume






    THE EARLY DAYS

    I signed up for whatever computer courses that my High School had to offer. This was back in the days of room sized computers, keypunch machines, and decks of IBM cards. One "assembled" their program from a pre-coded (punched) group of cards and then placed them in the proper order to form their program. Needless to say, games were out of the question.

    Next experience was seeing this strange looking typewriter with a large roll of paper threaded through it like a typewriter and a sprocket paper tape reader on the side. You could play games with this metal chunking device. I saw the "handset" phone modem box on the bottom shelf of this, teletype. Yes, you dial up the secret number, and wait for a tone on the other side and then stuff the full sized Ma Bell 1930's handset into its box. Calling Dick Tracy!

    *Kerchunk* *chunk* LOGIN: Ok, now what? The teacher typed in his secret word and then answered the PASSWORD: question but it only showed as stars (asterisks). Then he handed the system back to me, "There you go. Type menu." He left and left me with with tons of dynamite and a BIC lighter. I entered MENU and waited for the modem to do its thing and slowly a list appeared in hard copy in front of me. I saw what I was looking for. GAMES. (This was the time I wished he would have explained how to "abort" a command or listing.) The MENU was finally done.

    COMMAND: GAMES I saw everything from Hammurabi, Towers of Hanoi, Golf, Horse Racing, Tennis and more. I opted for GOLF. I sat back and marveled at the text description of the next tee. I entered my club and percent swing and sat back as the teletype echoed in the room with detailed results on the flight of my ball and its distance traveled and yards left to the pin. I played a few holes and the teacher came back and wanted his "system" back.


    HOME
    Flash
    Java
    SABfx
    Resume



    THE HANDHELD YEARS

    After the High School rush and a brief stint in the armed services, I found myself in beauty college learning to be a hairdresser. Computers were in the background. Well, until a friend brought over a HP-25 handheld calculator. I had seen fancy calculators before, but this one was different.

    He flipped a small switch at the top and began to enter one of the programs in his handbook. Lunar Lander. I sat back and watched him enter the 49 steps and then he flipped the switch back to run. The display flashed and showed the altitude, velocity and fuel left. He said, here's where we select how much fuel to burn. We went through the game several times. Experimenting with terminal velocity and such. I was hooked. I went out and bought one the next day.

    I started making my own games. Golf, Surfing, Improved Lunar Lander, with a moon that orbits the Earth, Bowling, and many others. All in those same 49 steps. I looked at the 8-9 step random number generators that they were using in games. I found a usable RNG using the g frac and sin(x) functions. Clip to just the fraction, take the arcsin of that fraction and clip to just the fractional part again. 3 steps. You seed it. Random output from zero to .9999999. I needed those extra steps to make my games shine. My first code optimization.

    HOME
    Flash
    Java
    SABfx
    Resume








    AN APPLE A DAY

    In 1977, the world for me changed. I got a job at Computer Components near my house. Books, magazines, mainframes Imsai, Altair, Vector, I was in heaven. Needless to say I had plenty of reading material for those slow times during the workday. I learned about all the current hardware and software and was intrigued by this small 6502 system called KIM-1. Chess on a computer? In 1K RAM? You gotta be kidding me! I thought this may be my next computing machine.

    I was attending El Camino College, at the time, studying Electronics, Microprocessors and Computer Science. My 1st year I developed a new method of solving Bridge Circuit problems that cut the calculations in half. The professor started teaching it as Baker's Theorem. I also created the lesson plans for the Electronics Math course including tests, quizzes and during the 2nd semster, I was at the chalkboard, showing them step-by-step how to solve various problems.

    My 2nd year I decided to build a perfect amplifier for my final exam. I made many trips back to the parts bin to find the "perfect" part. If I needed a 1K resistor, I took 15, 1K resistors back to my desk and measured each one until I found one that was dead on. I did this with all of the parts, including the transistors. When I was done, I had made a perfect amplifier. All of the "test points" were whole volts or milliamps. Exact on, flat response from 10-200khz. The professor looked at my exam sheet and noted the readings. He then began to fiddle with the power supply and the dual-trace scope. Muttering under his breath, "No way, can't be". He said I'll give you a "B" for a final grade. What!?! He turned his head and laughed, "Excellent work". Excellent heck, it was perfect.

    Time passes and I am learning everything I can about microprocessors and these new systems like the TRS-80 and Commodore Pet. Another 652 offshoot, but its small screen made it very difficult to use along with its micro sized keyboard. Good idea, bad execution. Apple Computer announces its Apple-II Personal Computer. 6502 processor, 1mhz clock speed. Color graphics, one bit sound channel. I had to have one.

    They sold complete systems at around $1600 (less monitor or RF TV adapter) with 16K of RAM. That was a bit out of my price range, but they also sold motherboards for $600. Now we are talking. I built up a case and hardwired a TTL keyboard to work with the Apple-II and built my RF modulator. I found a surplus switching power supply that could handle the 4 voltages needed for the motherboard. I was in business. Now I could make more complex games with sound effects. SAB marches on.


    HOME
    Flash
    Java
    SABfx
    Resume

















    SOFTAPE-ARTSCI ERA

    When the Apple-II 1st came out it only had a cassette tape interface for saving or loading programs into the computer. I tried my hand at making a few integer BASIC games. One of the 1st games was Fighter Pilot. Based on Battlestar Galatica, you launched down the tube and out into space. You used the keyboard to control your craft trying to align the enemy craft into your sites. Fire and watch their ship explode into a dozen pixels. I wanted more action, but was limited to the lo-res graphics, since I did not have enough RAM to support Apple's Hi-res screen at the time.

    I started looking into 6502 assembly language. Apple had a ROM built-in assembler that was barely useable. But trying to compute the forward and backwards branches was a real bear. A friend of mine created a simple cassette based 6502 assembler, but it was full of bugs. My nickname is RAID, and I fixed the bugs and expanded it into a full blown macro assembler. It was one of 1st macro assemblers available for the 6502. I developed a 4K ROMable 6502 version of PILOT, with powerful word parsing and matching commands to control the program flow. Journey, my contribution to the text based Adventure games was written in PILOT. I was working part-time for Softape, creating more games, releasing about a dozen on cassettes or floppy disks. Quick simple Hi-res games using my macro assembler. They released a Baker's Trilogy game pack. BurnOut, Planetoids and Bubbles. NightCrawler aka Photar and Starmines were among the most popular ones.

    Frenzy was probably my best game, that never got released. This game created many addicts at Apple Computer. It had elements that one would think crazy, yet cool. A twitch game with a switch. Usually when you touch an enemy, you die. In Frenzy, collisions take on a whole new life, you still may die, but not from your own hand. I don't want to spoil the fun because I am planning on porting it from the Apple-II to Flash/ActionScript. Look for it under the Flash link.

    I was ready for more thought provoking games. Like Minature Golf and the board games, Gomoku and Microgammon 2.0. I was playing backgammon with a co-worker at Mattel Electronics while working on the Intellivision making diagnostic testing programs. He taught me the game and its various offensive and defensive strategies. I learned whatever I could and I had a simple text interface that showed the dice rolled and its moves. He would point out which moves were best and I continued to improve the move logic. It got to a point where my program would win quite a few games and would change its strategy based on the board layout. My friend was impressed. I released Microgammon through Artsci, a Softape offshoot. I created a Hi-res table in black and white with all the bells and whistles, including a doubling cube.


    HOME
    Flash
    Java
    SABfx
    Resume


















    APPLE COMPUTER

    Joe Ennis is an odd sort of fellow, one of a few that I met at Softape. He is the best hardware designer on the planet. He created Bright Pen "The intelligent light pen", hardware and software for the Apple-II to be distributed through Softape. Joe has that kind of bipolar personality that reminded me alot of myself when I was older. Don't let that warm friendly smile fool you, there is a tiger underneath with a heart as big as Montana. We would regularly argue over how to code a given routine. The results of our bickering produced the best code. He had shown me an old Dr. Dobbs paperback article on a reverse linked list that reused earlier entries as needed for amazing text compression. I took the article home with me and brought a working version for the Apple-II the next day to work. He was amazed that I did this in one night. He thought that I was the best coder on the planet. If I am into a concept or idea, I will put something together very quickly to see the results.

    He was hired by Apple Computer in the Service Engineering department. About 6 months later I got a phone call. Hey Steve? How would you like to fly up and interview for a job with Apple? Hell yeah! I was hired by Apple, they moved me and my family to Cupertino and put us up in a Hotel, while finding an home for rent. I was a happy camper. I now had access to the innermost listings. I created a Confidence Disk that contained many test programs for the Apple-II. Testing its hardware and Disk software. I wanted to make something that could help you determine if a given floppy disk was on the edge of failure. Magnetic field loss was commonplace, and sometimes hours or days worth of work would suddenly become unreadable. But what I discovered, shook Apple's assembler world.

    Apple had their own assembler, EDASM, created by John Arkley. It was disk based and I switched over from my assembler to the company's version. It worked great for many months untl my disks were failing left and right. I would make one opcode change in my code and suddenly, after assembling the code, the disk would be unreadable. I changed the faulty opcode, and the problem would go away. But I really needed the opcode that destroyed the disk. I narrowed it down to where the binary object code was written to the floppy. Using a disk sector display program, I could see that EDASM was overwriting the address marks for the following sector if a certain group of opcodes were being outputed. I was concerned and relayed my findings to John's attention along with the sample disks and the special sequence of opcodes that produced the disk error. His reply was immediate, "There is nothing wrong with the assembler, must have been an error on my part". No way John, just look at these disks and let me know later. About 2 weeks later I got a call from John, "You were right, I don't know why, but the following address marks were blown away during the binary write on the previous sector." He asked me if I would help him design, code, and debug a new assembler for Apple. That is when the ProDOS 8/16 Assembler was born.

    Joe had this brilliant idea on how to fix Apple-II motherboards down to the chip level. Reset tracing involved resetting the processor and at every clock cycle, saving the current status of the Data and Address lines. He designed and built a test fixture that could clip on the IC being traced, and tie each pin of the IC High, Low, or Open. Reset tracing tracked the IC while the computer was booting up from ROM. The GOLD trace image was compared at each clock cycle to the IC and any difference would be saved in a Fault list for that IC. This looked awesome. We could take a pin out of any IC in the computer and run this test and out would pop "IC8 - pin4 - tied high". We developed all of the Fault List Image reset tracings for every chip. Apple was very pleased and then it was time to release this to the Apple Service centers. That is when reality hit us. Most of the service centers at the time would have a few motherboards in its stock. They were handswapping the chips out until the broken system came to life again. Pretty soon, motherboards had multiple bad chips, making all of the GOLD Image and Fault lists useless. Great idea gone bad from real life technicians and the way they fix problems. But the concept was still valid for testing the customer's Apple-II computer. I was next assigned to the Parallel Printer Port test fixture using this concept and it worked like a charm.

    HOME
    Flash
    Java
    SABfx
    Resume












    OFFER I COULDN'T REFUSE

    I got a phone call from a headhunter working at Atari. The 5200 system was being released and they needed game programmers. I was happy working at Apple, and in hindsight, I should have stayed. But Atari's offer even made my co-workers and management tell me to go for it. I could work at home. I would be paid twice what I was currently earning at Apple. Every game that I released, I would get 10 cents per cartridge royality and $50K bonus when the game was released.

    My 1st project for Atari was coding Defender for the 5200/800/400 Atari systems. Atari had a PDP-11 host with scores of video terminals and one line printer. The throughput was very slow with dozens of programmers working on their own games. I decided to use my trusty Apple-II computer and a EPROM burner to create games for the 5200. I would assemble, burn EPROMs and plug them into the T-card for testing. This worked out very well for me and Atari was happy. Defender came out with flying colors. This was my 1st 5200 game using Atari's display processing system. I even got to chat a while with Eugene Jarvis, the original programmer behind the arcade game. He let me in on a little known secret. Fly past the swarmers and quickly flip around behind them and pick them off one at a time. Swarmers do NOT fire behind themselves.

    Since I had done so well on Defender, Atari wanted Stargate next. I looked deeper into the Display list functions and created a new method of using two players, single line color, and a unique twin queue for drawing objects to the screen. This combined with the bitmap graphics modes allowed me to do things that were light years beyond what the other 5200 programmers were capable of duplicating. Even the oldtimers would look at my game and say, "How in the F#@# did you do this?". Most games were limited by the number of vertically crossing players. Stargate had dozens of players crossing each other vertically. The power of my twin queue was easily apparent. When I handed Atari the final T-card with Stargate on it, the programmer turned manager asked for my badge. What? What is going on here? That was the end of Atari. They were trying to fire, by any means, all of the programmers working at Atari. Sad to say Stargate never got released, but I was happy I pushed the hardware to its limits.


    HOME
    Flash
    Java
    SABfx
    Resume


    MIDI ANYONE?

    After a brief break from working, I got a job doing MIDI sequencer software for Apple-II and Commodore 64 systems for Passport Designs. This opened up a whole new area of hardware for me to learn. I was a musician, played guitar and some keyboards. I was using the software I ported to make my own songs. MidiPlayer was similiar to a media player's skins of dancing graphics in sync with the MIDI song being played.

    Educational programs were always popular in schools. D.C. Heath found me and asked if I could do some educational programs for them. I created many programs from Simplest Living Things (software microscope), to Series and Parallel Circuits (breadboard to built circuits with lights and batteries). Green Plants, was a live simulation of how a plant works. Forces in Liquids and Gases allowed students to build a cross section of a lifting wing and then place it on their glider and test fly it. Combining the Elements brought chemistry into the mix. Teaching the students about molecular weights and the various shells that electrons would ride in. Advanced sections would allow students to combine various elements to produce a stable compound like table salt, by combining Sodium and Chlorine.

    The Apple-II computer had pretty much lived out its usefulness for me. Except now, I was being hired for my forte', debugging others code. Epyx hired me as a consultant to work on the Amiga/Lynx project for Atari. I was a little apprehensive from my past dealings with Atari, but I took the job anyway. I never got paid and the handheld poofed. I was then changed over to working on Sporting News Baseball. Of any program I debugged, this was the worst. Every year they imported new baseball stats for all of the players in the league. That was cool, but what the programmer did was stack too many random numbers in the execution of the game. This reduced the "stats" to white noise. None of the stats matched the players. For example, the player that lead the league in triples, never hit a single one. I rewrote the code to allow the stats to have more meaning and it soon started to hover around the correct stats.

    Another task was to debug Epyx's sprite generator that they used for all of their games. Its not working correctly. This was about 16K of very tight and complex code. I finally traced it down to a carry flag that was not being handled properly. I had done alot of sound work on the Apple-II one-bit speaker. They had a 3 voice sound driver that sounded ok using two voices. Three voices came out offtune and sour. More debugging, they had not counted the cycles correctly. Now I had a working 3 voice sound, but I wanted more. I used the sequencing software concepts and added a 4th voice for drums. The Drums became the filler for rests or other openings in playing the 3 voices.


    HOME
    Flash
    Java
    SABfx
    Resume


    2600 ATARI REVISITED

    Epyx asked me if I would be interested in doing some Atari 2600 work. Here we go again. But this time I _did_ get paid. I worked on Winter/Summer/California Games for the 2600. Wow. Now we are talking strange programming. The 2600 draws to the TV screen a line at a time with each line taking exactly 76 cycles. If you crossed into 77 cycles the screen would tear and stretch out past the bottom. I found out that you could use code for data. Halfpipe took advantage of that, but its the ONLY known code that did NOT tear the screen using 77 cycles for a frame or two. Why? No answer, it just works. I coded Halfpipe, Speed skating, Rowing, Biathlon Shooting, Surfing, and the sound generator used for the series.

    I had made my own sprite generator on the Apple-II for 2600 objects. This allowed me to easily make animation sequences I needed for the Halfpipe and other objects. It still amazes me how a 87 byte sound generator could have so many functions. Thanks to my work at Passport, I was the man for the job. I did the sound effects and music for the Epyx Game series. But, alas, Atari was already on the downhill slope and picking up speed. I needed something new to do.


    CALLING DICK TRACY

    Apple-II software jobs were still hanging on by a thread when I started working for Decision Development Corporation. They had a job to do a Dick Tracy game on the Apple-II. When I called, they were a bit reluctant to interview me. I was a tad arrogant when I stated, "Oh, you don't want state of the art coding, with double Hi-res screens, 3 voice sounds with a drum track and my newest 25khz PCM sound code for human voice." After a brief pause, they called me down to show them what I can do for them. I was hired and soon met David Mullich at Disney. They had a video tape of the Nintendo version of the game and a skeleton IBM version. I said its very doable on the Apple-II.

    I worked for about a year on the project. I was trained by the Disney artists and I even have a letter stating that Disney was amazed at the quality of artwork I was producing without being a professional artist. That my style was very close to their licensing guide. The mugshots were the hardest to do. I created my own camera capture routine and took the photos from the movie and digitized them for use on the Apple-II. I then went beyond the 140 horizontal pixel res and pushed it to 280 pixels and beyond. It was the only way I could "move Flattop's nose 1/2 pixel to the right".

    Now I had the original handwritten scores for Dick Tracy in hand. I quickly coded them for my 3 voice + drum driver. Now for the opening voice, "Calling Dick Tracy". After recording it from the source tape, I compressed it into the disk and all was pretty much done, or was it. During this time I met several times with David and discussed how the IBM version was doing. The Apple-II version had better sound, graphics and gameplay. David showed them the Apple-II version and wanted the IBM programmers to duplicate it. They couldn't, so Disney decided NOT to release the state-of-art Apple-II version without having the IBM version to back it up. So there goes another year of my life and having another stillborn game go unreleased.

    BACK TO EDUCATION

    Needless to say, I was heart broken after all that work I put into Dick Tracy, only to have it shelved. My next project was to recreate the Plymouth Pilgrim's crossing and settlements in the New World. I worked with a friend on this one. He was in his 60's at the time and wondered if he could handle the programming. I would do all of the graphics and hard parts for him and he would handle the historical part of the game. The project went very well, and I further dove into FM synth hardware. I created the music for the game using my own instrument tables for the Sound Blaster FM chip. I then coded the PC speaker to duplicate the music as much as it could. I created a 3D driver for the sailing across the Atlantic section and within the bay.

    Now came the "chores" section. I made a logging game where you ride a log down the river to the settlement to increase your "wood" supply for cooking. A fishing game for the food and fertilizer used for growing crops. The turkey shoot was another fun game to create for the project. If you hit the turkey with your bullet, its feathers would fly off leaving a naked turkey covering itself. The game chats had characters with moving mouths and eyes. Chatting with the ship's captain or a nearby indian chief allowed you to trade your goods for other needed supplies.

    This game went well and was followed by the earlier 1607 Jamestown simulation. More characters, a walkaround map, and more things to do, just to survive to the end of the game. Brooke, my friend also co-authored this game with me. This time we embedded video clips into the game and now you had to manage your workers (slaves) as well as doing other timely tasks in the game. Everyone in the game now could be seen speaking. PilgrimQuest and NobleQuest were in the can.

    CREATIVE INSIGHTS

    After staying with DDC for three years, I was presented with token raise and a NEW employment contract that I had to sign. After reading the contract, I declined. I wanted several paragraphs changed or eliminated. They didn't. So I drove back home and saw an ad in the paper. I thought the name looked familiar. It was an old friend from Apple days that started his own company. I gave him a call. I was unemployed for about 15 minutes. I started the next day. My 1st tasks there was to do more sound work for the Sega Genesis and Alien Legacy. I used my FM instrument creator for the Genesis, and a programmer there said its the best sounding instruments that he had heard coming from a Genesis.

    DOOM was just released on the PC. They were very interested in doing a game similar to that one. I started coding bitmap rendering routines for the IBM systems now. I had another idea. Binary Split And Pairing - B.S.A.P. Bitmap rendering used a source-stepper and a destination-stepper to draw the pixels to the screen. The source-stepper would have to check for a rollover to see if it had to advance to the next source pixel. This was done on every pixel that was to be plotted. My insight was to pre-process the source-stepper so that I knew the source would not roll to the next pixel -or- that the source would always change on the next pixel. Now I could draw a bitmap with approximately 95% accuracy but at nearly double the speed. Tests showed that I could further increase the speed by having more splits. Source steps of less than 0x8000 would require two plotted pixels before a source change. Dividing that down, less than 0x4000 would require four plotted pixels before a source change. This technique leveled off at around 0x2000 having eight uniquely coded subroutines that handled the source change only when needed. The twin split had the best rendering accuracy, but the 8 way split was alot faster. So can you really see that the bitmap is a pixel off when a spaceship is flying across the screen at warp speeds?

    Next I started experimenting with a new way to draw sprites. Since DOOM had 3D enivronments but only 2D "enemies", I started working on a method to draw 3D sprites. I like to call it "spoke" rendering. Each horizontal line of the bitmap would be wrapped around a "surface of revolution". Picture a Lathe sideways. Each line wrapped around whatever width was on that line. Rendering a pawn chess piece is a good example. Now the enemies had volume. This technique was further expanded to allow a "surface" height for each spoke. Now you could model a nose and deep set eyes into your object. Last variation was adding rotation to rendering and adding live light shading to the bitmap colors. My Earth Wrap demo is a good example of spoke rendering.

    My next task was more toward the fun side of things. ScreenToyz was a desktop toy that plugged inline into the keyboard. They had 3 characters, each with their own toy. TNT Tad had a box of dynamite with a T-handle on top. Stitch (Frankenstein) had a electrical knife switch and Latrina had her toilet. These were screensavers that did nasty things to the characters and your screen. Blowing up your desktop into fragments, watching your desktop flush itself into the center of your screen, and having the entire desktop fall like a steel plate to the bottom of your screen. Each character had its own sound effects and mini games that you could play on your desktop. I was proud to see my work on C|NET TV, a program about computers and software.

    JAVA AND SABGAMES

    The Internet was just getting popular and Java was in its 1st release. I looked at it for a bit and then decided that I could start my own Internet game arcade. Pachinko came to life in about 4 hours. It was a hit. In fact, all of the games that I released on the Internet were top rated at JARS and other Java review sites. I then proceeded to code, A-Train - A bullet train scrolling game. StarJAM - A musical puzzle game where you place various given blocks on a grid which change the direction of the ball. When the grid is close to full, it sounds like "Hey Joe" with lead notes being played whenever the ball hit a block. AirRescue - A helicopter flying game where you drop lifesaving rings to drowning people in the water. SurfH2o - a scrolling surfing game surfing Pipeline. SABgolf - A beautiful 18 hole course with a course Editor to make or edit the holes. SABbowl - An in your face bowling simulator.

    Alpine - A downhill skiing game with slalom flags. Many of the games carried along web scores for comparing yourself to others on the 'net. I marketed many of the games and continued to make custom versions of these games for clients. Webgammon - A 10 table backgammon parlor with chat and spectator "lurking" to watch others play to learn the game. Webgammon was the biggest Java game I coded. This was done using the CGI interface and Perl. Webgammon supported 5 languages. English, French, Greek, Turkish/Farsi and Spanish. Many hours were spent figuring out which CGI interface to use with Java. After many games "died" in mid-game I had had to find out why. Simple answer, sending a packet from one computer does not guarantee its arrival to another computer. I saw about 1 packet in about 100 being "lost" stopping further gameplay. I decided on a simple solution. Send two packets with the same info and let the software figure out dups. It worked like a charm and ALL games then were completed from start to finish.

    After coding all of these games and reusing all of the routines in its "bulk" form, I decided I was going to write a interpreted language using Java as a parser. SABfx was born. Simple plain text, no compiling, quick turnaround. I started coding games in SABfx and found out that I could create games quicker and with a smaller footprint. GalaxyTag, Sleeper, Tracers, and Par3 Solitaire came to life. I then added an external data file loading and parsing code to SABfx and Slot-a-Meal was born. I had the sabgames.com domain name, but it lapsed during my house remodel that left me offline for over a year. That is why you are on sabgames.net.

    MOBILE GAMING

    I was contacted by an old friend from Creative Insights for some contract work doing a golf solitaire game (modeled after my Par3 Solitaire) deck generator. These are all winnable decks for use on a mobile handheld phone. Players would compete for the fastest time solving the deck. Soon thereafter I was contracted again to do a Boulder Dash Maze generator for Atlas Mobile. This was a very large project and they wanted to have preset "modules" that could be placed on the maze grid. I created a full featured Maze editor with auto generating object placements. Likewise, all of the mazes created had to be solveable with at least one path to the exit. Maze size and level of complexity were simple keystrokes. The generator part also wrote finished mazes to a file so that they could have 100's of mazes available for the cell phones at any time.

    My next cell phone project was Water Balloon Drop for Infospace. This was my 1st exposure to BREW and its related development programs. I had to install Visual C Net on my computer along with the BREW ARM compiler. I had to make animation strips from the individual cels of animation for the various game characters. Size again became job one. Dealing with the various handset quirks, slow key response, slow blurry screens were a chore and at the same time fun, when I found a solution to each problem.

    Infospace then wanted me to do a remake of the Frogger game they had on Verizon Wireless. The game I started with was less than 1/2 done, when compared with the original arcade game. Most of the game elements were never coded. They also wanted to add a deluxe version of Frogger to the existing game. I found an arcade machine emulator online and the original Frogger arcade ROM image. I played the game back in the 80's in the arcades, so I knew what was missing. The non-scrolling flip screen Frogger was replaced with the full vertical scrolling arcade version. The missing enemies were added. The missing levels were added. I did stumble across the original arcade game bug where you would die if you jumped on the right edge of a log in the river section. The arcade game would change every 5th log into an aligator and you would be safe on the aligator's nose IF its mouth were shut. However, if the mouth was open as it scrolled offscreen to the right, the image was changed to a log BUT the unsafe area where the mouth was would become unsafe even on a log. I fixed that bug. The stock version was done and the Deluxe version with various frog powerups were now added to the game.

    BREW is a good starting point for coding games for handsets. If you structure your code properly, the conversion into J2ME becomes less of a headache. I learned my lesson from WBD and the J2ME porting of Frogger went smoothly with only a few frame rate hiccups. Turnaround time was around 10 seconds for BREW Frogger assembly and checkout. However, J2ME Frogger took well over a minute to compile the same code. For game development, timing is everything and I like to work fast.

    FLASH IN THE PLAN

    I am now actively searching for my next job. I am open to just about anything from device drivers to games. I am investigating Flash and ActionScript and I am starting to produce code. I have started reworking SurfH2o into its Flash counterpart. I was very impressed with the graphics and views in Transworld Surfing on the PS2. I think that Flash could do a pretty decent job replicating it. That's about it for now. -SAB

    Stay tuned for further resume developments. This space is available for rent or lease. ;o)








    If you have any questions, please feel free to E-mail them to me using the address shown at the top of this page. -SAB

    View Steve Baker's profile on LinkedIn

    HOME
    Flash
    Java
    SABfx
    Resume