May 8, 2013 2:37 PM | Staff
Fifteen years before indie games gained traction, the buzzword for amateur game design, and PC games in general, was Shareware.
In the early ‘90s, PCs were the realm of the tinkerer and the white-collar professional. Thanks to the crash of ’84, they were also the only major outlet for North American game design. The problem was, PCs were built for business rather than leisure. After a decade of hacking and add-ons, the hardware reached a level where a bedroom programmer could attempt the fast-paced action of arcade and console games. Add in a growing network of dial-up boards, and you have distribution. Creativity exploded, giving rise to games like Commander Keen, Jill of the Jungle, and Doom.
In the mid-‘90s, the Internet hit the mainstream. All of those bulletin boards dried up, as did their ratio-based uploading, so there was no distribution. At the same time, 3D cards began to hit. File sizes went up, coding got more complicated, and development got more expensive. As PCs became a household appliance, competition for the glitziest showpiece went bananas. For about a decade, the bedroom developers all but vanished.
Then in the mid-2000s, thanks to the growth of social networking and the advance of boxed game design kits like Mark Overmars’ Game Maker, a new generation of bedroom developers appeared, to fill in the creative void that some felt in the mainstream industry. In early 2013, the indie scene is again one of the most vibrant regions of the development community.
That gap need not have occurred. In 1991 a company called Recreational Software Designs released its own game creation system for DOS. RSD’s Game-Maker supported VGA graphics, four-way scrolling, Sound Blaster music and effects, full-screen animations, large maps, and fully animated characters and monsters. Its editing tools were powerful and intuitive, allowing quick turnaround of sprites and background tiles, and easy assembly into full games.
Game-Maker had its glitches and its limitations, but a skilled designer could put out games comparable with the high-profile shareware of the time. Some games, such as Jeremy LaMar’s Blinky series, became cult hits. Other users, like Liight programmer Roland Ludlam and Bionic Commando associate producer James W. Morris, found their careers in game design. Still others, such as Seiklus author cly5m, graduated to become superstars of the modern indie scene.
Unfortunately RSD ceased development just before the Web became established, and right on the verge of a radical reinvention of the software. RSD never built an online presence, and aside from a few scattered users Game-Maker failed to make much of an impression on the Web – leaving a void, eventually for Mark Overmars to fill.
We caught up with lead programmer G. Andrew Stone to talk about Game-Maker and the place that it holds in indie game history.
It's good to reestablish contact! So what sort of resources do you still have around from the RSD era?
I've got it all, I'd say. A three-inch stack of letters. Source code, media, you name it!
I was thinking about the attitude in your magazine ads, and how strongly they focused on loading up and tweaking others' work. They almost suggest more of a creative collective than discrete authorship. It’s an interesting attitude.
Well at home we would show, suggest, and work on each other's games quite a bit. I mean for example there are techniques to make something look good in a 20x20 block. For example, grass. Is it one flat green color? I remember showing my mom how to speckle other colors around to make grass look like grass instead of a boring flat green field. It actually made the process more fun and the games a lot better. And of course, we realized that it would be pretty hard for a ten to twelve-year-old to do it all himself so there were practical considerations.
And growing up we were always doing projects together. Not just software or programming, everything. Totally random stuff!
I like this whole collaborative arrangement. I can envision sort of Game-Maker clubs springing up to meet on weekends, where everyone pitches ideas and shares insights – I guess not all that different from the demoscene, over in Europe.
Yes, I'll betcha that Game-Maker was used by lots of groups of friends; but of course, of all of those only a few manage to learn to work together to the point where they can come up with something!
I think that it was shared around a lot. I'm guessing that the sort of person who would buy Game-Maker is more likely to have the ability to pirate it then the average game consumer.
In fact in '94 I was hanging out on a C programming IRC room and someone offered me a hacked copy – totally unsolicited. He had no idea I wrote it. I never really minded at the time; however in retrospect I'm realizing that if some of those people actually bought it then, the financial situation might have ended up slightly differently (as we were right on the edge of making money), which would have totally changed my personal history.
So how did this whole Game-Maker project get started?
I had done quite a bit of programming which I am going to skip – for example I wrote my school's entire scheduling and grade storage system, a countries-of-the-world quiz game (in Eighth grade, I think before Carmen existed), and a vector-style graphics editor to enter maps for the previous – and start here:
In about tenth grade I got quite excited in front of the school computer, so a friend came over and asked, “What?” I said something like, “Do you see that little red dot on the upper left corner of the screen? I put that there!!” He was unimpressed. So I said, “But you don't understand, I'm putting that dot there absolutely as fast as it is possible to do so!!” I was using optimized direct write Assembly language (REP STOSB), and so one dot was actually an important edge case whereas a whole line was easy. As I'm sure you know he still looked at me like I was nuts. And he said, "So what?"
Additionally, my brother and I were fascinated with maze calculation algorithms, coming from playing NetHack – we could imagine how to do the entire game; it’s just a big database and logic engine, except for the maze calculation – and were having a bit of competition making them. I think my dad even joined in with one or two cave-like algorithms. My brother "won" with a 3D representation that he literally disappeared for about 72 hours in my dad's office to complete. it was freaking amazing since there was no 3D games at that time. In fact he did not use 3D vector math to calculate it, but sort of a complex logic engine that followed probable line of sight.
But if I could not one-up that I could certainly expand in a different direction in playability. And you couldn't bring a game into the school computer science room, but what if I wrote it? Then we would have a good excuse for playing it. So that dot became a maze solving game. This game was inspired by the Piers Anthony Proton/Phaze series. Players start at opposite ends of the maze and try to make it to each other's starting point.
Graphically it was 320x200 8-bit (like Game-Maker). It split the screen in half, putting two players’ top-down views of the maze side-by-side on the screen. In fact, although Game-Maker was one player at a time, I had always been more fascinated with what we now call P2P games. I think this stems from one night when I was literally up all night playing an RPC, and suddenly at about 4am I had this really weird sensation where I just completely divorced myself from the game’s surface interface and suddenly felt every key I typed was just meaninglessly changing bits and bytes deep in the computer. And so I felt, what was the point? If I want those bits to be a different configuration, why not just go in there and change them directly?
Anyway, one player typed madly on ASDWX, the other on JKLIM, to control a character through a much bigger block based maze with a view of about a 5x5 squares of almost Game-Maker sized blocks. In the Proton/Phaze books the floor lights up after you go through, which is sort of a great leveler because if you go the wrong way at first, your opponent could follow your tracks down the wrong path. Whereas if he makes it straight through to your path, as soon as you find his path it’s a straight shot for you to his end. Clever, I thought!
But I had a little quirk, which is that I put the maze in a natural setting with rock walls and grass. Every time someone trod over the grass, it would droop and get a little more brown until after about ten times there was a clearly defined brown path (that's why I knew how to draw good grass!). At first I knew this and no-one else did, so I'd win all the races, but I kept dropping hints and later people noticed and it got really fun!
To make all these subtle grass changes, I needed a block editor. So, BLOCEDIT was born.
And I remember having a conversation with my parents, something along the lines of "You know, I could add this and that alongside BLOCEDIT, and you'd be able to make your own games without programming... maybe no summer job this year?"
I suppose it's becoming clear where the name “Recreational Software Designs” comes from. Did the company exist before Game-Maker?
We incorporated for Game-Maker. I came up with the name. Just made it up.
So you've built up a set of tools, and you've got this concept for marketing them. How did you go about financing the project, producing the inventory, and promoting everything?
Enter my father; I was the titular CEO, but really I was flat out coding like a maniac. He did 90% of the day-to-day business stuff and kept the books. And it was his money, so really whoever holds the purse strings is really the CEO. He trusted me totally – I could write checks and all (in fact, as CEO I had the final signature) but you know, I never did that for anything expensive (without discussion) because I guess that's just the way I am.
But I did help out on stuff like images for the box, user manual (after all I was the only one who really knew how it worked), and so forth. Also, I was sixteen to twenty. I mean, it’s hard to be taken seriously at that age when trying to book advertising and so forth.
How many ads did you print? I was wondering what sort of spread you had, and for how long.
There were three ads, all done at the same time by the same guy to save money. There was a 1/3 page which I'm sure I have at least one copy of, as it is in a frame hanging over my desk. But I think I can find a better copy in a magazine or the laminated original. And I seem to remember a black-and-white 1/4 to 1/6 page with almost the content in the black-and-white box in the full page.
Do you remember which outlets? The ones I saw were in VideoGames & Computer Entertainment. I’ve also heard of ads in various PC magazines.
I'd say six or so gaming magazines for at least six months in each (at a time). But multiple iterations for the most successful ones (you saved money if you bought multiples). In retrospect, we should have tried some DIY magazines... but remember a lot of people back then did not even own a computer.
We also had a booth in the CES maybe in '94 in Chicago. That was a pretty awesome experience! I think we still use our sign as a Ping-Pong ball stop...
What sort of response did you get at the CES? How large was your booth?
We had a free-standing "sub-booth" inside a larger person's space (sub-letting space is very typical). I forget who did the subletting, probably one of our magazine contacts, but I remember that there was a flight simulator and joystick maker there as well.
I take it that direct orders formed the bulk of your business?
Yes. Direct through KD software in the US, indirect in UK and Korea. For indirect orders, the markup is prohibitive unless you are selling thousands of units through each distributor.
I wasn't aware of the Korean version. Do you recall what it was called, or who distributed it?
Well, I mean the name is in Korean probably. The whole thing was translated. They had this awesome method where they would literally go into the .EXE and hack the strings into Korean. I didn't have to do anything. You may find a lot there; we got some royalties from them and our feeling (and unfortunately you know the stereotype actually still persists today, but I work closely with a major Korean TEM today and nothing could be farther from the truth) was that since there basically were no copyrights there so if we were getting anything at all Game-Maker was probably selling 10x as much.
So you sold the game directly and ran a BBS. Both of those were outsourced, to KD Software and GameLynk respectively. How did you work out those arrangements? KD Software was local, right?
Yes, Sheldon [from KD Software] was about an hour away. Not sure how we hooked up with him. My father made the initial contact. As far as I remember, Mark [from GameLynk] was one of the first people to contact us with a professional-looking game, and in his letter he sort of said “Check out this game, and check out my BBS.” After that, my father's negotiating skills made it inevitable.
In retrospect, I should have either hosted it myself or had a friend host (I had a few with BBSes). That way I could have been involved in the community. I did a lot of BBSing at that time, and in fact wrote a quick "never-ending-story" application for a BBS, but the standard in-house rule was local numbers only.
I probably could have called Mark's BBS more often but as you might have noticed, I was generally so flat-out busy coding features that I did not even consider asking for long distance “permission” to that one BBS!
How did you settle on the price point (about US$89)? I notice that the software got cheaper over the years.
Oh, we priced it above most video games because it was not a game that you play then throw away, but not significantly higher because we needed to hit a price range. We reduced the price as the commercial video games got better and better (and 3D).
You mention that Ollie was into 3D coding. I remember that late in Game-Maker’s life your brother was excited about a 3D add-on. Did that plan ever go anywhere?
Nope! But yes, remember everyone was wowed by Wolfenstein and later Doom. Platformers were dead, and would remain so for ten years. The question on every buyer's lips was, "Does it do 3D?"
One thing to remember was that over just those few short years the capability of the hardware dramatically improved, both in RAM and in speed. Solid 3D was not feasible when Game-Maker first came out, but completely workable later (remember Wolfenstein did not have solid floors or ceilings; Doom did, so things really were moving quickly).
I mean, there was tremendous pressure for more and more features. Due to the possibility that a professional firm might pick it up and you'd actually make some real money, because every kid has their favorite game with certain features that they want to copy, and because every game has that "special" custom 5%.
As you noticed I didn't talk directly to my users that much... not only was I quite busy, but also too many conversations just devolved into a laundry list of all the features it would be great to have. And you know fifteen-year-olds are not that subtle -- quite a few were not nice about it just very demanding. You know, they get the key dev for Game-Maker on the phone and they are both scared and desperate to communicate their needs...
But at this point I've learned in my life that for every product (yes especially Apple's) you can point to another product and say that one does X and yours does not! Or does Y better! But somehow those other products don't do it all better, or yours would not be around...but when I was nineteen it was pretty depressing to hear all of GM's shortcomings from its users.
Which leads to another question. I know that the last official release was 3.0, but did you make any further progress with the code? What features, if any, were you thinking of changing or implementing?
Yes there is a “Game-Maker Pro” sitting on my drive. I forget what is in it now, but honestly I know I did not get far with it.
Tons of great stuff was planned. For example, many [users] mention the song format issue. Yes, that was an eleventh hour addition because it was easy to add. The plan was to create a song format with an editor like the Integrator where each node was a repeating clip and the lines indicated transitions that could be hooked to game events. This idea sort of deconstructs the linear format of a song, allowing endless variations, and meant that the single song could (for example) seamlessly switch to become more "creepy" or something when your character's health was low.
There was a tension between making the engine more sophisticated and catering to the twelve to sixteen-year-old current market. Hence the name, "Pro". We had also been contacted by some (small) game dev houses who would say something like, "This and that are cool, but you have to fix X, Y, Z before we can really use it." That was driving more sophisticated ideas. I think one house may have used it for quick prototyping.
So GM Pro, in some fantasy land, may have been sold to kids with game license restrictions and real dev houses for a lot more without them. I think that that time period was sort of the end of the DIY gamers for awhile – everyone was enamored of 3D games and other complex gaming, which seemed quite out of reach (aka boring) to DIYers, due to lack of standardized libraries. For example, Game-Maker itself had to individually program a dozen or more sound and graphics cards. There were no standard drivers back then, so we had to basically write our own drivers for everything! That was quite a boring chore, after the first couple.
But I was growing more sophisticated as a coder (the Integrator, with its "graph" diagram, was the last tool written) so that graph was where it was all going. In music, as I previously discussed, and in character and monster animation.
With respect to characters and monsters, Prince of Persia really opened my eyes as to what smoothness of animation should be possible. So I set myself to figuring out how it could be done.
My idea was that the edges of the graph would be animations. So if you are in a particular "node", only some animations are available. If the user hits the "up" key (vector direction 0,-10, let's say), the system would look at each possible animation and pick the one that gets closest to 0,-10). Or, you could assign a particular key ("J") to a particular edge (to jump for example).
Monsters are exactly the same as characters, but no keys assignable. The system knows that the monster wants to move to position (X, Y), so would pick the animation that gets closest, and maybe "cheat" a pixel or two, or stop the animation early (abortable flag), to hit it exactly.
What sort of song format are you talking about? Was this a tracker format, with embedded sound samples?
Yes, with respect to format I probably would have let you stitch together .MOD clips (since I had the format document). Supporting the Sound Blaster music format was a last minute thing; it was clear that the music editor would not be ready and we had this free code supplied by Creative – so we used it! My brother did that work, and he is entirely responsible for the monster editor. I did the rest.
Oh. So you had been working on the sound editor for quite a while, then?
No, I got waylaid by video driver and XFERPLAY [game engine] problems. The music was going to be completely dropped, but then my brother pulled this free code up and made it work!
That explains the odd formats it supported. Aside from the Sound Blaster code, you say that your brother Ollie coded Monster Maker. How deeply was he involved with Game-Maker? Did he design any games?
Those contributions are what I remember; we only pulled him in for a summer or two...
So, just trying to digest what you're saying. You're saying that for GM Pro, you were working on a new character tool and a new monster tool, that were based on the same node-and-path format as Integrator. And that for any given animation state, you could set a tree of potential transitions into other animation states. Is that right?
Yes, except for the "working" part -- I don't remember well, but I doubt you'd find much in there except for extremely rough skeleton code. I'm more saying that this was the top of the wish list.
So both direct activation of an animation by button press and also desired geometry. So the up button could be assigned to merely change the desired character's position to a few pixels upwards. And the system might automatically translate this to climbing up a ladder, jumping, or doing a ledge pull-up (if you were hanging from a ledge – not sure if you ever played the original Prince of Persia, but you could hang from a ledge – it was an "extreme running" game before extreme running/parkour was invented).
So what got in the way? I know you were heading off to college. I think your dad said you were looking into ATM coding.
ATM as in Asynchronous Transfer Mode – it’s a telecom protocol that carries both voice and data traffic.
Had you already been doing data transfer coding at that time?
Nope! I went in there cold. That was supposedly a high performance embedded job, but believe me I have never had to do as highly performance sensitive code as I did with Game-Maker. I mean, I was chasing the electron beam down the screen changing the pixels just behind it to provide zero-flicker animation.
What part of Game-Maker would you say was the hardest to realize, either technically or conceptually?
The XFERPLAY [game] engine. First off, it really was pushing the limits of available RAM at the time. Within XFERPLAY, [the hardest to realize was] the character monster interaction (especially solid monsters used as platforms), and the fast moving character's interaction with solid walls. The character used to get "stuck" in the walls. I finally just limited the top speed, an unfortunate compromise that I later noticed all other platformers doing. But man it was pretty fun to have the Nebula [character] drop like a rock!
Also the "replay" was tricky, because I would remember what keys the user typed and play them back, but the granularity (based on the system clock) was a little slow – which meant that the replayed keys might come in at slightly different times, which every once in a while would cause the replay to miss a jump (or something) that was successful in the real play. I eventually hit upon the idea that even though the key was pressed at a particular moment, I should not actually "accept" it until a very well-defined moment within the run loop of the program, so the replay could accept it at that exact same moment. This is actually a pretty fundamental software practice, crossing multiple disciplines.
Finally, the four-way scrolling. That was really pushing the limits of the hardware. Basically, the hardware was too primitive at the time to support buffered pages. A lot of games would put a lot of junk (status graphics, etc.) around the edges to significantly limit what really needed to be redrawn. I did not want to do that (ultimately a mistake because users thought that all that junk looked more professional – after all it looked more like professionally released games – even though it was a lot simpler), so I literally moved the video card's start address in RAM around, leaving the background for the most part untouched. This was tricky because the actual video memory was 65536 bytes (after which it would wrap back around to 0 on most, but not all, cards) but the screen showed 64000 bytes. Also, each card handled wrapping (or not) differently, using their own special-purpose registers, including one which would simply freeze until the power was reset.
So this turned into a real slog, and is the source of the monster/character flickering issues.
But the technology was moving so fast that by the time version 3.0 came out, full-screen double-buffered redraws were possible at a reasonable (but still slower) frame rate, so I finally did throw in a double-buffered implementation (to reduce the number of product returns). And as time went on, that implementation ended up being what everyone used.
So you're saying the collision issues were a factor of available RAM, and that's partially a result of your decision to write to the full screen during four-way scrolling?
No, collision and scrolling were two separate issues. And the full-screen four-way scrolling issue was not the available RAM; it was that the CPU did not have enough speed to copy the entire screen contents every frame. Well, okay. Extra RAM on the video card could be used to solve this issue also...
Would a DOS extender, like DOS4GW, have helped things?
Why were you so intent on drawing to the full screen? A matter of principle?
I suppose. I just felt that the full screen greatly increased the game quality. I guess I just hated staring at the action through a fifteen-inch monitor already when playing video games. I mean, try it in real life. Get a big piece of cardboard, cut a fifteen-inch square in it, and then walk around your house with it held at arm’s length for a day. In fact, I have always been right on the bleeding edge of multi-monitor tech.
I'll also tell you why I chose not to continue with it after college, as that question seems to be a big theme in some of your questions.
Yes, that is one of the big questions. How did the situation wind down, and why?
I guess there were multiple competing forces that simultaneously acted to encourage my decision.
First of all, Windows 95 was extremely successful. So all DOS based tools were clearly dead and so the Game-Maker tools would need a complete GUI rewrite. However, simultaneously early Windows 95 had horrible graphics performance. The "DirectX" stuff was not out yet... so its not like the OS was providing a high-performance graphics framework all ready to go. There would still be a bunch of ripping and hacking and tricking out the OS -- nasty coding.
Secondly, the 3D game Doom came out in 1993 (but took time to gain steam) and so platform-type games basically died out starting in 1995 for over a decade. Everybody wanted Game-Maker to make Doom. Doom was a technology tour-de-force; really well-optimized code, etc. I mean in 1995 a Doom quality engine would have been worth a fortune to professional game development houses -- so while the end user wanted 3D (and so would not purchase a platformer game maker) they were not going to get it. And of course adding 3D to Game-Maker would require adding a whole suite of tools.
Third, I think the DIYers were trending away from the PC, and we felt that because fewer adults used Game-Maker as time went on. The PC was transitioning from a hacker platform to an appliance. When I started college in '91 I was almost the only person in my dorm with a computer, by '95 it was practically required for incoming freshmen. I think if you could find the data, you'd also see the the average number of developers building a commercial game increased dramatically during this time. So in 1991 you could look at a game and say "I could do that". But by 1995 there was no way.
Finally, the telecom boom was on & I had an offer with a salary (that recognized my Game-Maker experience) from a startup in that field. And you know, telecom pays the biggest salaries, game development (at least back then) paid the lowest. This was important as since I was just leaving college I did not want to lean on my parents anymore. And Game-Maker did not make much money; a couple thousand bucks. But as everyone does when you have a company, we threw all reasonable expenses into RSD. You know, computers we would probably have bought anyway (and back then a computer was -- I'm guessing here -- about $8,000 in today's dollars; it was $4,000 back then). So with all that stuff, Game-Maker did not make much money; a couple thousand bucks I think.
Of course, I did not recognize that the advent of the web would allow me to have essentially free advertising and encourage far-flung communities. If I had realized that the entire ad budget could be cut out, it would have made probably a salary's worth of difference in our bottom line.
So ignoring the pending Internet explosion, to continue with Game-Maker would have required some massive changes.
Absolutely. Even with the internet explosion massive changes were required. But at least with the internet community we could have saved a huge amount of advertising dollars.
And the work had to be done without using the toolkits (like DirectX) that we knew were being created. So all the work that was done would sort of end up being transitional; thrown away when the toolkits finally matured. Basically the OS itself was in transition so it would have been like building a house on unstable ground.
It sounds like Game-Maker had already changed a lot. It started as a specific top-down maze game, and then you tweaked it to allow adventure platformers, like your game Nebula.
In fact, making something like Metroid was sort of the bar I set myself for version 1.0. Which is why I added the secret passage features, and gravity, early on.
In retrospect the Metroid influence is pretty clear, actually, but Nebula takes on very much its own identity.
Yes I've never been interested in making direct copies, and really can't understand all the copying that goes on by people on the web. I mean isn't the point to do something new, if you wanted to copy it why not just use the original?
How much did you find yourself adapting the tools for other genres? Did any other specific games influence the direction you took?
NetHack has been a constant influence, but not a particular influence for Game-Maker, in the sense that Game-Maker and NetHack-like had not converged. But I think you can see that GM could form the basis for a good graphical NetHack (which I think has always been a bit of a "holy grail" in the OSS gaming community). Of course you'd have to add a module with RPG elements; inventory system, object database, etc. But these are added modules, not rewrites of the existing Game-Maker.
So you’d like to open up the boundaries a bit? Game-Maker has some of that, but it’s more geared toward games like Zelda. By contrast, NetHack almost feels like chaos theory in action.
Yes, a good game lets the player himself be (or at least feel) creative! That is what fundamentally bugs me about many games. The fact that there was only one possible solution, where IRL there are many. Don't have a key for the goddamn door? Chop it down with an ax! Burn it! Remove the hinges. Forget about it and do something else! This is where NetHack remains an amazing game. But actually under the covers it is not so impressive. Its just a gigantic list of "if" statements – the authors spent hours thinking of everything, instead of devising independent systems that could interact in ways not anticipated by the designers.
I’ve seen users bend Game-Maker in all kinds of strange shapes that weren’t mentioned on the box. It always surprises me how flexible the software is, considering its simplicity.
Yes I think the mark of a well designed piece of software is that the interacting features create emergent behavior (additional features) that were not anticipated by the writer of the software. I think that lot of modern programs deliberately try to avoid this because it means that the user goes down untested paths. But if the features are developed well, they will work.
You refer to an added RPG module. Did you ever have plans for, say, various genre-friendly add-ons or expansions? A scrolling shooter module? One for brawlers?
Absolutely that was the plan, and the Integrator can connect them all up. First on the list would be a scene-by-scene module – that is, King's Quest style where all the action sits on one screen and made of an image, not blocks. Just like for the blocks the user would designate solid areas, gravity areas, etc., but in this case it would be done by drawing lines and filled polygons of effect. And an in-game action could overlay a new "effect" map onto the scene (to open doors, activate a trap door, etc.).
Next was the same thing, but a long, thin image for vertical or horizontal scrolling shooters (or fight-type game -- Galaga or Double Dragon), and additional "monster" stuff, to help them appear at the correct time, etc. But Double Dragon-style fighting AI would essentially always be out of GM’s reach, as that would require custom coding.
I was going to make a menu maker where you could apply full-screen animations triggered on keystrokes to traverse the same kind of Integrator graph. To replace the front "Play game" menu, and for all kinds of other in-game choices, like Myst and Dragon's Lair. Also, storefronts where you spend stuff to buy power ups, inventory screens, all that kind of stuff. And to lay the groundwork for strategy games. Like the “Risk” style (Civilization for example), where you spend half your time optimizing your cities by picking stuff from menus.
One thing that we did discover with Game-Maker is that it was quite good at implementing 99% of platformer games, but it’s often that missing 1% that really makes the game good. I mean, that 1% of custom programming is often a pivotal plot point. For example, a bomb defusing game needs a countdown timer. A platformer needs special "boss" characters. So we were envisioning in GM Pro to let people write add-on game-specific sections. Nothing was actually done, but you know its actually really easy to do; I was already dynamically loading custom software depending on what video card was detected. So all I had to do was provide a "hook" in my code that would essentially NOT do the default behavior and instead call a custom "monster" (or whatever) plug-in.
So this did not raise the bar on the minimum sophistication of our customer, but it certainly massively raised the bar on the maximum sophistication... which is exactly what GM Pro was all about.
That sounds perfect. I'm surprised things were on the verge of becoming so flexible. How far along did these plans come?
Not far, conceptual mostly. I am mostly talking about work that I would have done after college if we had chosen to continue Game-Maker.
When you say that users could write their own custom plugins, do you mean coding them from scratch? Or did you have a sort of internal scripting in mind? Or some other scheme?
Written in C, using all the Game-Maker libraries. For example, you would not have to physically animate your monster motion, just call a function to tell use where you wanted it to go. Today I would use a scripting language like Python but back then there was just not enough CPU or memory.
Was this in response to the requests you heard from professional firms?
Both professional requests and for that last 5% of game customization. Look, its the ultimate get-out-of-jail-free card. "Stop whining that the feature doesn't exist and learn enough programming to make it yourself!"
Have you thought about what to do with the source code? Do you have any plans to add to it or port it to other platforms? Otherwise, have you considered releasing the code?
Yeah, you know I should have OSSed a long time ago as I am a proponent of open source. At first there was the possibility that I might jump back into it. And later the fear that whatever startup company I worked for at the time would try to claim it. But upon mature reflection I think that is impossible.
And you know, with some interest I may also jump in again! Certainly I have lots of ideas some of which still have not been implemented AFAIK.
It is fascinating to me that after delving for 15 years into 3D twitch games (never my favorite) the culture has circled back around to casual gaming and ironically simultaneously suffered a dramatic decrease in computing hardware (on the mobile platforms), actually possibly making Game-Maker relevant again with very few changes.
I realize what a broad question this is, but what of lasting significance do you feel you learned from the whole Game-Maker experience -- the coding, the planning, the business?
First of all, it gave me a great skill, speed, and correctness at software development that has been extremely valuable through the years. I can't emphasize the last, correctness, enough. When I joined a company, I got a project to do. After some time, that project was done and I went on to other stuff. Rinse and repeat. Sure there were some bugs, but I fixed them and kept moving to new projects. I did not fear the empty page, or the huge project. Simultaneously I noticed other people still working on their original project, essentially "stuck" there. They drowned in their own bugs... and I'm sure it reflected in their review, salary etc.
Game-Maker got me a job in a startup in '95 when all other grads had to take jobs in big companies. And certainly I can't complain about working for startups during the telecom boom! Companies that I have worked for (and these were all less than 50 people) have been acquired for a cumulative amount totaling approximately a half billion dollars.
On the other hand, this skill made me quite frustrated in college; I had to listen to the criticism of grad students and even professors who literally had less actual coding experience than I did (but for the professors of course that was never their thing anyway; they were computer science researchers not coders). Since I was frustrated, I hopped into the industry thinking that it would be pretty easy to get a few years experience and then do my own startup, etc. But in fact that is not so; venture capitalists are actually extremely conservative and certainly can't look at someone and determine their coding skill or quality of idea (in fact your billion dollar idea just seems strange and foreign to a VC). So in retrospect (and this would be my advice to any young hot-shit coder graduating out there now), I probably should have entered a Ph.D. program and then gotten the backing of a professor to do a startup. It makes a good combination of energy and respectability that VC's would really like.
With respect to the planning and the business side, all I can do is give an example. A few years ago I decided to learn hardware engineering, for the fun of it. I stumbled on the Arduino platform (an open source microcontroller) and now I have a "hobby" business that sells LED driver circuit boards. I've sold 100+ boards to people all over the world. Most people who learn the Arduino build up a breadboard, move a few motors, and stop once they get something basically working. I think my Game-Maker experience allowed me (and made me want) to take that next step.[EJR Tairne wrote this post originally on sister site Gamasutra's community blogs]