Learn or die!

Oct 9, 2017

As a game designer, do you ever get into that rut where you have a game engine you’re comfortable with, you have your routine, and you find yourself slowly drawing the curtains on the rest of the world of gaming and programming? I’ve been using Adventure Game Studio for roughly ten years now. When I look around at what other devs are doing, I see them just throwing sprites onto the screen, adding some controls, some collision, maybe some physics, seeing what happens. Seeing where the game takes them. They think about things like game play. GAME PLAY. Adventure games don’t really have “game play,” they just have a set of familiar mechanics through which we solve puzzles and progress through the story. I’m beginning to realize that game play is becoming an alien concept to me. So is game design of any kind that isn’t directly related to point & click adventure design.

GMboxfrontIt wasn’t always this way. When I was a kid, I coded up little text games in Basic. I made countless little arcade games with the Arcade Game Construction Kit and the Shoot ‘Em Up Construction Kit for the C64.

When I got a PC, I dabbled with Borland C++ (which cost me a fortune!) but I just couldn’t find a way to transition my understanding of Basic into the world of C, with all its added layers of complexity. Had YouTube existed at the time, maybe I’d have found my on ramp. Who knows? I tried going through “Learn C Fast!” books, I tried everything, but getting anywhere in coding on a PC seemed like a distant pipe dream. I felt like I was wading through mud. Something just wasn’t clicking.

I finally caught a break when I discovered “Game-Maker” for DOS (no relation to YoYo Games’ GameMaker Studio) in a magazine and ordered a copy! It still wasn’t everything I had hoped, but like those old game making kits for the Commodore, it allowed me to get my graphics and sound into a game world and begin to develop my ideas, and that was something.


 

3D-GameStudio-A6Eventually, I began working with programmers, and finally settled on a truly amazing (for its time) German engine called Acknex3D (a.k.a. 3DGameStudio.)  I bought the full version and used it solidly from version A3 until version A6.  Believe it or not, Unity wasn’t the first of these all-purpose 3D game engines to come along. 3DGS was remarkable for its time, allowing you to create fully 3D maps, add baked in and real time lighting, colored lighting, animated textures, create characters and control everything in the game with C-like scripts. The version I began with (A3) was roughly equivalent to Dark Forces, I.E. similar to Doom with billboard style characters, but you had true room-over-room 3D and a few extra effects such as a “diaphanous” flag which gave you translucent ghost-like characters. I remember creating a spooky mansion with light rain in the courtyard, stationary sprites using a single rain drop animation which would randomly relocate each cycle. I made a dragon flight game, a medieval fighting game, an isometric dungeon miniatures-style board game, even a re-creation of the town of Britain from Ultima IV (which helped me land a job at Origin!)

pc-69723-41490810202Eventually I completed a full game and released it as shareware. It was actually a recreation of the Vectrex prototype Dark Tower, which I always thought was fantastic and that it was a shame no one outside of Vectrex super fans would ever play it. I called my version Shadow of the Lost Citadel, and it expanded the vector graphics of the original into a fully textured world.

A4 was then released with full 3D support, bringing 3DGS to the level of games like Quake, Unreal and Half-Life. I took my haunted mansion into the new 3D engine and added things like a flash light effect and 3D enemies. I recreated my dungeon board game, adding more colored and dynamic lighting effects. And I experimented with a Zelda-like action RPG with forests and dungeons to explore and colorful enemies with action figure-like special attacks, inspired by Saturday morning cartoons and games like Spyro the Dragon. I was totally on a roll.

Then Windows XP came out.

Nothing I had been working on would load in XP. I had a contract to release Shadows of the Lost Citadel into stores, and with it incompatible with XP, that contract died a quick death. It was a dark time for me, with all my games suddenly obsolete. I began to question the whole practice of game design. I longed to get into my other great passion, filmmaking.

screen-shot-2015-07-22-at-10-36-59-amYEP! That was it, I was done with game design. I called my buddy Geoff, a programmer I had been working with for a while creating RPG prototypes and such, and I said “Hey man, I’m done with this! No, I don’t want to do any game jam thing, I’m not wasting my time with this junk anymore, I’m making movies!” He was understanding about it, and went off to go do his game jam idea thing with his other buddies.

He called it “Ludum Dare,” and it is still held several times every year and enjoyed by thousands of game designers all over the world.

ANYWAY, fast forward through my 15 years of screenwriting, visual effects, cinematography, editing and general filmmaking for me.

screen-shot-2015-07-22-at-10-36-37-amWhen I returned to game design, what really drew me back in was the explosion of indie games, serious games, story combining with character, art, sound and gameplay in new and exciting ways. Designers just experimenting and finding their path through creativity like the budding comic artists of Scott McCloud’s Understanding Comics (this is a must read, btw!)

Something changed in the way I was seeing my creative path. I began to see filmmaking as a stale environment where people were desperately trying to use new technology to tell stories using an old medium. Games were just beginning to blossom into what was clearly going to be the new medium. This was current.

This was exciting!

structure

I had played around a bit with Visual Basic, tried YoYo Games’ GameMaker, and looked into the current iteration of 3DGameStudio. I played with Torque (the GarageGames engine), and contributed some 3D artwork to the new 3D Incredible Machine remake Jeff Tunnel was producing with it. And eventually Unity came out, so I checked that out, too. The engine that really spoke to me, though, was Adventure Game Studio. By now, I was less daunted by C syntax, having basically learned to understand it with 3DGS. Using their scripting language was like learning C on training wheels. AGS also used a C-like language, and I took to it immediately.

I had always fantasized about a life writing adventure games like those of Sierra and LucasArts. This seemed like a great way to make that fantasy a reality. I came up with a few ideas right away, but what really gained traction was my Han Solo fan-game, which I had been writing and carrying around since I was a teenager. Years later, I am still putting the finishing touches on that game, and I am hip deep in creating my first commercial adventure game Jack Houston and the Necronauts.

Now, having taken Jack Houston from a 1024×768 love letter to The Dig and Full Throttle, to a 1080HD science fiction world of lighting effects, fully animated backgrounds with running rivers and multiple layers of parallaxing, I know I’m really starting to strain the AGS engine beyond its capacity. It isn’t smooth. It isn’t fast. It just isn’t what it should be.

Long story short, I’ve come to the conclusion that if I don’t expand my skill set far beyond that bare minimum point that feels so comfortable, I’m going to end up trapped with another obsolete engine and no way to complete my creations. Best case scenario, I’ll end up with a clunky embarrassment to modern gaming. Worst case, no one will even be able to play my game in a few years and it will all have been for nothing. Again.

If there’s one thing I’ve learned throughout this crazy journey, it’s that you cannot get complacent. You can’t allow yourself to get comfortable with one way of doing things and let the world pass you by.

LEARN OR DIE!

SkateOrDie

So, that’s it. No more trying to get one engine to do everything I want to do. No more making do with the tools I’m comfortable with, instead of reaching out to see what else is out there. I’m taking steps. And in fact, I’m taking a multilayered approach to the whole thing.

I’m starting over in some ways, back to the beginning of the journey, trying to give myself a more solid base to work from. I went through the Lynda.com series “Programming Foundations”, which was a really excellent primer to get my head in the correct space.

I then enrolled in Harvard’s CS50 course “Introduction To Computer Science” (free via edX!) This has really helped me to reshape my thinking so that I can wrap my head around lower level coding, which comes in handy even when coding at a higher level. I’m getting comfortable with things like sorting algorithms, data encryption, program structure, encapsulation. I’m soaking up just how programming works, and becoming familiar enough to recognize patterns no matter what language they’re in.

Star Wars `81Check out my Week 0 assignment, Star Wars `81!

I’m even taking this into all my other work. Recognizing how PHP could benefit the company I work for, I began building a new framework for our back end website, restructuring how we do everything from employee training to keeping employment records and generating reports. This gives me yet another perspective on coding and helps me practice even in my non-game related work.

22279535_1422704251180496_2644459602236998975_nAnd finally, I’ve started to delve into other engines, expanding my horizons. I picked up GameMaker Studio with a bunch of export modules on the Humble Bundle, and went through the tutorials of Shaun Spaulding and Heartbeast. Overall, I really like the freedom it gives you to write your own game behaviors from scratch using C-like scripts. It’s definitely something I would have latched on to back in my early days working with those more primitive game makers.

I’ve also taken the plunge into Unity3D, and purchased the Adventure Game Creator asset. I’m currently going through Udemy training courses (download my first course project: Haunted Zombie Rush!), as well as the /Learn tutorials direct from Unity, and whatever tutorials I can find on Adventure Creator. So far, it seems that most of the great features I came to rely on in AGS have been accounted for in AC, so that’s good news!

I haven’t begun to port Jack Houston yet, but from what I can tell, it won’t be too difficult. And I know I’ll sleep better knowing that my game will be as advanced and smooth running as it can possibly be, and that with Unity3D, the most popular indie engine on the planet, it will be future proof. I won’t have to worry about AGS suddenly breaking and being abandoned just as I complete the game. I won’t have that sinking feeling of obsolescence when I load up the game to find a choppy, clunky engine driving all the content I’ve spent untold hours creating.

Is growing easy to do? No. It’s difficult. It’s time consuming. It can be confusing and frustrating. It’s like that first week of intensive exercise when you’re out of shape. It’s frankly a chore to get through it. But the next week, things get easier. And before you know it, you look forward to it. Crave it. You look out the window, with the breeze blowing through the trees, and it becomes harder and harder to sit still when you know you could be out there sprinting another mile.

Say, I wonder how Amazon’s Lumberyard engine is coming along…

Comments

Leave a Reply

You must be logged in to post a comment.