The Shawnee Days
There are certain areas of a person’s life that are naturally very full. When a lot of good things happen, or equally, when a lot of bad things happen in a short span of time. When a lot of friends are made and a lot of emotions are experienced and a lot of ambitions are aroused. When friends, game engineering, big ideas, mushroom hunting in the spring rains with your dad and learning C++ in depth all align. My experiences at Shawnee left a lasting impression on my being. I find myself thinking back on my Shawnee Days quite often, and I even have the occasional dream that I am hanging out with my peeps there. I met some amazingly talented people, made great friends, and was able to truly dive headlong into my passion for game engineering in a way that put DeVry to shame. It is one of those few times in my life, that, when I look back on, I think, “Man, I wish that wasn’t over yet.”
Shawnee also helped me discover how nice it is to have a group of people you can talk to. I don’t really share anything in common with my standard posse of friends (the ones I have been hanging with since fifth grade middle school) so our conversations and activities tend to be rather dull (or non-existent.) ‘Hanging out’ usually consists of surfing NetFlix for an hour looking for something to watch while the pizza we bought turns into this nasty cold thing. It feels really great when the people you are around are actually interested in the same thing. When a group shares a common interest the air really does have an electric feel (though it may be difficult to notice at 8:00 in the morning.) Not to say I don’t like my std::vector<friend> or occasionally enjoy their company, it’s just that Shawnee filled a gap in my friendship circle that I didn’t know I was missing until that point.*Translation for those who don’t get the C++ joke: “Standard group of friends”
So, here I was in college… again. Most people go to college so they can advance or start a career. My goal was neither of those things. As detailed in DreamForever – A Biography Part 2, my reasoning for going back to college was to buy myself more time so I could finish Didgery. The wishful thinking was that Didgery, when completed, would at least be a mild success and allow me to pay the monthly loan bills while I worked on the next greatest thing. But Didgery was suffering from the curse of game development*, my deferment from DeVry was up, and I owed a credit card company an ungodly amount of money (due to using it to fund my last trimester of DeVry.) I needed to buy myself more time. College would stave off these bills and hopefully give me enough extra to pay down the credit card. Plus there was a chance I could get a college degree. That would be an added bonus. *Curse of Game Development : It ALWAYS takes longer to complete than anticipated.
It turns out that I was able to get enough loans to both pay my first semester’s tuition and pay off the dreaded credit card debt. What a relief! But suddenly I realized I had used all my funds to pay down an old debt. I needed money to survive now. CONSTANT STRESS!
I started searching around campus for something to hold me over. Minimum wage would be good enough. As long as it didn’t involve flipping burgers or operating a cash register I could live with it. To my merriment, I discovered a job posting on Shawnee’s website that could potentially pay much better than minimum wage. It was a programming job, an iPhone game development gig to be more precise, at a place called the Cyber Center. I didn’t know anything about iPhone game development, and I had no idea what the Cyber Center was. I immediately wrote and handed in a resume at the designated coordinates. As I waited to hear back I hastily whipped together a video portfolio consisting of Nut Harvest 360, QuadTrix, and Didgery, you know, just in case the slim chance so happened that I got called in for the interview.
Somehow I did.
I vividly recall how awkward the entire interviewing process was. Now keep in mind, job interviews are always awkward. You go someplace you know little about to talk to a stranger sitting on the other side of a large expensive desk about stuff that you may or may not understand while they generally look board or disinterested and you squirm because you suddenly developed a sudden case of gastroenteritis. I assumed the Cyber Center was some special place at Shawnee. You know, like the gym or the library, except with a lot of fancy high-end workstations, flashing neon lights, and nonstop electronica music. I also assumed the interview would be a one-on-one in some sort of office. But my suspicious were aroused as I neared the location of the ‘Cyber Center.’ It was room 254…in the business building. I stood outside the door, took a few deep breaths, and went in.
I found myself at the front of a regular classroom with students. I quickly scanned the thousand of blank faces for a hint of an authority figure. Nothing. I awkwardly sat down near the front of the room as everyone stared at me in silence. Moments passed. “Are you here for the interview?” someone finally asked. “Yeah…” It turns out the interview was a sort of group interview thing and that the authority figure had ‘temporally stepped out.’ We made SmallTalk while we waited for the figurehead to reenter the room. After what felt like forever (I swear time physically slows down to a crawl in stressful situations) he came in and the group interview began. It basically consisted of them playing my demo on an iMac and asking me questions about the games. After they saw the portfolio I was asked what type of game I would make for them. I felt like a novice. I had not prepared or even thought about this question at all. In a nanosecond of incomprehensible mental clarity I devised a sprawling ingeniously unique idea and took great pains to verbally explore this idea to my interrogators: “Something like a top-down shooter.”
“How much money do you want,” the head-honcho asked.
“I don’t know, two grand?”
“That’s too low. I’ll give you three.”
I now had a job.
Now I had to make an iPhone game over a period of four months using Unity 3D. I didn’t own an iPhone and I knew nothing about the Unity 3D game engine. So I bought an iPhone3GS from WalMart, locked myself into an overpriced two-year service contract, and ordered a Unity how-to book from Amazon. Before long I was hard at work. Life was pretty smooth at this point. I was making a little over $400 every two weeks. I was able to buy gas, and pay my bills. Oh, and I could eat lunch every once in a while too.
But I soon learned that the Cyber Center was…sort of a joke. I guess a better way of phrasing is that it was falling apart by the time I got there. From what I can gather, the cyber center really wasn’t much of a center. The ‘Cyber Center’ was really just an introductory networking class that hired students to work on small scale projects so the students could gain experience. All this ‘special project stuff’ happened between regular networking classes. This is great idea, but the whole thing felt enormously disorganized. I pretty much had no idea what I was doing or who I was working for the whole time I was there. I mean, was I making the game for the Cyber Center, for the school, or was I just paid to make a game for myself? I still don’t know the answer to this question.
The Cyber Center operated on some sort of grant supplied by the government (the WIRED grant I believe) and some situation or the other caused funding to abruptly cease. I was constantly lead to believe that my pro iPhone edition of Unity was on the way (it takes the pro version of Unity in order to publish to the iPhone.) I never received the iPhone version. This meant one big big thing to me: I paid a ton of money for a phone I didn’t need and locked myself into an $80 monthly payment for naught. $80 may not seem like a lot of money if you have a solid job, but $80 is a massive burden if you are a college student with an unstable job and the best you are likely to make per hour is minimum wage.
A couple of good things did come out of those first four months at the Cyber Center though. Firstly, I learned how to use Unity and was able to build a simple top-down shooter called Project NERD.
Project NERD is a pretty simple game. The premise is that you are a disgruntled IT employee at a large firm. Everyone around you is an idiot and constantly asks of you stupid rudimentary things. The protagonist, Jim, eventually snaps and builds a deadly CD launcher to slay the idiots of the corporation before his IQ depletes to 0. Each level is an increasingly complex randomly generated maze of cubicles. You play until you die, or get bored, whichever comes first.
Project NERD isn’t my best project. Something about the Unity Editor took away from the enjoyment of building a game, and it reflects in the game itself. Perhaps it was because the Unity editor is not meant for 2D Game Development, so I was somewhat shoehorning my game design into the editor. But I think it was something else. Something about the design of Unity makes it difficult for me to use effectively. This caused me to consider the possibility that I am, at heart, much more of an engineer than a designer. I love building systems and seeing games built on those systems. That’s what I find intensely satisfying. Using drag and drop to make a game? Not so much. But I would LOVE to build the underlying system by which a person could use drag and drop to make a game. Some interesting ideas were a brewin’.
The second good thing to come from those first four months at the Cyber Center was that I was offered a min-wage job as a ‘network manager’ and assistant to the professor who headed the Cyber Center. So, while I would not be making near the money, as least I would be making some money for the foreseeable future.
CJ commented on my first Biography post and said he wanted to read the bit where our friendship started. Well, it isn’t all that grandiose, but here it is. We were on the top floor of the Game Engineering building taking a class on C programming. One day the computer I was using broke, so I moved to a new computer. That computer was sitting beside this talkative hyperactive kid. I soon learned that kid’s name was CJ. He immediately starting chatting to me, and, thanks to CJ’s social nature, we became fast friends. CJ and I work together almost alarmingly well, and we would soon go on to create some “pretty flipping cool” stuff.
Platforming Block and the Ragnarok Game Engine
One of the best ways for me to learn any new concept is to dive head deep. One of the first things we had to do at Shawnee was learn Python and PyGame. So I did the most natural thing for me: I set out to devise a Game Engine / Framework on top of PyGame that would allow me the ability to more easily build games. I called this framework the Ragnarok Game Engine.
One of the first games I wrote using Ragnarok is a game called Platforming Block. It was really more of a test than a game or assignment, but I found the frustratingly difficult level design rather enjoyable. There was also this bug I later discovered in which if you jumped off a ledge you could do a ‘late jump.’ Basically I forgot to set a variable when the player is falling to prevent him from jumping. I became fond of the idea, however, and decided to write some levels around this mechanic.
I really can’t recall perfectly how all of this played out, but I asked Greg ( and old friend of mine ) if he would be interested in helping me flesh out the idea. During spring break we took some time and built a full-fledged demo. I remember how great it all was, crafting tilemaps using nothing but a text editor and our raw wits.
We released Platforming Block and the Ragnarok Game Engine onto the pygame website to much fanfair. OK not really, but some people did like the game quite a bit. Some dude enjoyed the game enough to make a multi-part let’s play video. I love watching through it and observing how he is gradually driven mad by the increasingly impossible levels. Gnarly stuff.
To date, Platforming Block as been downloaded 573 times, and the Ragnarok Game Engine (released under the GNU LESSER GENERAL PUBLIC LICENSE v3.0) has been downloaded 1675 times. I find it interesting that the engine, which is somewhat malformed and buggy, is a great deal more popular than the game. It just goes to show how many creators are out there. I would like, perhaps in the short future, to springboard off the ideals contained in this engine to allow people to more easily create games. More on that bit when the time is right.
Anyway, the idea was that we were going to make an Xbox Live Indie Game out of it in the ‘near’ future and maybe make a few bucks. That…didn’t happen. We started (about a year later) and actually got a number of levels built using an XNA game engine I created called PixelBurst. We got quite a bit of the core stuff finished. I built a custom Content Importer in XNA to read in the Tiled .xml format, I added in pixel-perfect collision detection, and I added in a bunch of dynamic objects that make the game ever so cool. Even in its half-finished state I find the game fairly interesting. Over time, though, Greg seemingly lost interest and developed a differing vision for the game than what we originally started with… so naturally things sort of fell apart.
We occasionally go through small spurts where we both talk about it, but nothing ever gets done. Perhaps it is a combination of lack of free time, or the fact that we don’t work well together. I would work on it and finish it myself, but there is this odd drudgery feeling that I ‘share’ the idea with someone else and I should wait until he really wants to work on it. Perhaps one day soon I’ll just stop giving a care and finish it myself.
One of the fun things about Ragnarok is that it prompted CJ to develop a rival game engine in PyGame. I can’t remember what the thing was called, but it sounded cool, and I love competition (to be precise, I love crushing it.) We had a friendly battle where we would boast the amazing features of each of our engines in an attempt to belittle the other one. It was a lot of good fun. He later created this fun game using his engine that I still remember as “Chicken Run.” It was a top-down car game where you try and run over as many chickens as possible. It was some good material. It would be nice to see an HTML5 version of this game so that I can play it all day, every day.
So summer break finally arrived. I opened up Didgery’s 2008 Visual Studio solution and stared blankly at all the unfamiliar code in front of me. I figured this would happen. I’m not sure how many people reading this have worked on a large project, stopped temporally for some reason, and then resumed, but it’s pretty terrible. When a lot of time passes (or even a few weeks) the mind somehow depersonalizes itself away from the thing that was once so personal. When you go back to it you are like, “Nope.avi”
I took a few days to remarry the project. It was all confusing and didn’t make sense for a while, but gradually it came to me, and I was, after a week or two, finally back in the groove somewhat. I worked my butt off that summer break. I discovered that adding polish to a game is the most challenging and tiring part of the development cycle. You go over this area over and over and over, tweaking shaders, adding in spring physics, and adjusting sound volume and texture color. In the end everything looks and feels great, except for the guy who put all the work into it. The amount of time it takes to get one thing looking great is unimaginably draining. But hey, I thought, it will always be worth it in the end.
So here I was a couple weeks before school resumed, and Didgery still wasn’t finished. Most of it was there, but it felt to be missing some bits and pieces. The tutorial code was an absolute nightmarish swap of spaghetti code, and the game felt to be lacking something.
There is some sort of divine, mystical, and equally malign rule in the universe, and that rule is this: The closer you get to achieving something, the harder it becomes to achieve. This can be seen in the physical universe as well. Take the speed of light for instance. For every bit closer to get, that bit more is exerted against you to prevent you from reaching that magical speed. So keep this in mind friends, though you may get very very close to your vision and goals, you will never actually meet them.
I somehow was able to do a total rewrite of the tutorial code and create something elegant and easy to use. I also added in the Didgery Summon and parchments. Yes, this was during the last couple weeks of development. How I did it I honestly don’t know. I think good stress (you know, the type where it’s like “I have to get this done or I am f*cked”) really creates a sort of pressure cooker on the mind, and all the good stuff comes out at once.
By the time school was resuming I was just finishing up. Now all I had to do was show it to a couple old friends to get their opinion, push it to the indie channel for review, and write a mass amount of review requests to indie game review sites. Then I could use all the money that would hopefully flow from it to quite college and begin developing my next game.
So I invited Greg (the fellow that helped me create the Platforming Block Demo) over to get his opinion.
He played it in silence for a long time. Finally I asked, “So…what do you think.” There was a moment of silence before the truth came. “It’s kinda boring.” I’m not going to water things down here, hearing that made me feel like shit. I put every ounce of my being and intellect into this game and its boring!? As hard as it was to take, I appreciated his honesty. It’s not often that someone will actually tell the truth to your face. This fellow did. I just hoped to dear god that other people failed to share his opinion.
I invited my ‘old’ friend Brian over to give it a shot, and he enjoyed it greatly. “Oh no,” I thought, “it’s going to be one of those niche games.”
It took about a month to get the game through review. But on 9/22/2010 Didgery was released onto the indie games channel. I skipped classes that day and starting sending out review requests to various indie outlets.
The next day I wrote Didgery’s website on the whiteboard of my (I think) DirectX class to hopefully garner some attention to the game. CJ, like the jerk he can be, went to erase it. I naturally attempted to prevent him from doing so. I can’t really remember how things worked out, but It eventually led to him yelling at the room and telling them all to go to my website. That was honestly the most effective thing that could have happened. The class immediately went to the website. They were all starting intently at their computer screens and commenting/jiving on the card explosions. It was fun.
But I wouldn’t be feeling good for very long…
I remember the absolute dismay that overcame me when I saw Didgery’s miserable sale figures several days later. Didgery was supposed to be my ticket to future game development. I was hoping for at least a couple grand, but what I got was ten times lower than that. Chump change. Maybe gas money for a month or a car payment. My parents had been pulling my car payment for several months at this point as the Cyber Center job simply wasn’t cutting enough revenue. I gave the money to them. I was supposed to make enough to keep me afloat for a few months while I developed other games. But no, that wasn’t going to happen.
Keep in mind that launch sales are typically the most money you will make at once from a game, especially on the Xbox Indie Channel. If $300 was my launch sales, then I would be lucky to make $10 a month a couple months from launch.
It had all failed. My goals and dreams had been shoved in the gutter. I felt terrible. In absolute despair I drove to subway, bought a veggie sub with what few dollars I had at the time, and drove to Jackson Lake. I sat under an old shelter house and ate my sub in the cold November wind as I broke down mentally. What was I going to do now?
Shawnee 8.0 Conference
Somehow or the other I learned that Shawnee hosted a local video gaming conference in October of every year. You can tell by the number of followers that the twitter account has that this conference is rather small scale, but it would be a useful learning experience and I thought that it might even raise awareness for Didgery. It would be my first ever video game conference, and the first time ever that I would be on the ‘Otherside’ of the table.
My friend Brian went with me as a support. It was nice to have someone to talk to and sit beside that I was familiar with.
I really wanted to buy a banner to help pull the few attendees that were there towards our table, but I didn’t have enough money. I actually had go into the negative on my bank account just to buy a cheap Altec Lansing speakers set so people could play Didgery with sound (bringing my 5.1 surround sound system from home would have been impractical.) Plus I was planning on running Didgery from the Xbox, and the 5.1 speakers don’t connect to it. So yeah, I didn’t really have the necessary hardware or funds to make things work as well as they could have, but hey, sometimes you just have to use what you got.
The morning held in it that sort of pervasive autumn chill. I picked up my buddy and drove down to Portsmouth. I wanted to run the game on the Xbox 360 as it was the most/only stable build, but when we got down there we found out that they didn’t have any Ethernet ports for us to plug into. Running indie games from the Xbox requires an internet connection for authorization purposes. I was nervous about using my PC, but I didn’t have much of a choice.
So I sat the thing up and hoped nothing massively terrible happened. Besides a few bugs/crashes things went pretty well.
I recall some EA guy (proper business suite and all) coming over to our table and checking out Didgery. He seemed interested. He looked at it while Brian put on a demo for him. “So tell me about your game,” he said. I did my best to explain what was happening without sounding like a self-conceited idiot. “Do you think it could be profitable?” he asked after some time. I shrugged my shoulders. “I have it on the Xbox Live Indie channel right now. It’s not doing all that well, but I think the market is more on the PC side of things. I think it could do pretty well on the PC.” He looked at it for another minute or so and walked off. I never saw him again.
My favorite part was when some dude sat down and played Didgery for over an hour. He was seriously into it. There was this one moment when he got a column chain. In Didgery if you get a full column or row in a chain it will perform this special type of explosion on the entire column. He was going about his business making chains when he got one of these column chains. I could tell that he wasn’t expecting anything special. But suddenly there was this explosion. He shot his head back, his eyes widened, and a smile that said, “Oh my god that was cool” appeared on his face. I’m not going to lie here, seeing that reaction made me feel awesome.
He got really far to. I think he made it to level 38 or something impressive like that. He also discovered a bug just as he was about to stop playing.
We talked for short bit about the game. He said that it reminded him of chess, which made me feel good. There are at least a few people out there that ‘get’ Didgery. As I feared, Didgery turned out to be a niche game. Better than a total failure though.
I had a lot of fun at that small conference. To be honest though, it feels somewhat unreal and dreamy. I may not have made much money from Didgery, but I was doing what I really wanted to be doing. I was truly pursing my goals. I get a fond feeling when I recall that time of my life. It’s the feeling of staying up late working on a project you love while the fan in your window pulls in the chilly night air. The burdens of society have since stymied the privilege I once had to dream forever. After Didgery it was all playing it safe: working for other people to make a living. Didgery was my ticket to follow my dreams, but that ticket lead to the wrong train.
I think I have written enough for part three. Until next time.