So you want Pastels?

Imagine if you will. You walk into a room full of hard white plastic chairs, with a small group of people sitting in a circle. You take a seat and you see a man stand up, and say “Hi, my name is Christopher and I am a bad communicator.”. You have just walked into the room of the BCA (bad communicator anonymous). What would your first thoughts be? That you should not be here? These guys are a bunch of anti social losers? Or are you wondering where are the snacks and refreshments?

Like most people I thought that I was good at communicating. I did not think I was great but I thought I was at least average. It was not until a year ago did I realize how bad I was at communicating. It all happen when I told my brother that I wanted pastel colors for a game that we where working on together. I even manage to get a few images that had the colors that I wanted. He would work on art and then send it to me. I would look at it and tell him that it was not what I wanted, and he would try again. This went on for some time until he told me he could not give me what I wanted. At the time I did not think it was my communication skills, because my brother is not a skilled artist (he agrees with this statement). He does my art because he is better at it than me and can spend more time on it then I can. After that experience when ever I asked my brother to do something that he does not think he can do he will say “so you want pastel colors”. It has become a running joke with us.

It was not until several months later when I was talking to him and another person about a different project, did I realize what the problem was with the art. The pastel colors where important, but all the images that I liked had movement, depth, texture, and they where full (I understand that this is not be very descriptive, but it would take longer to explain it then I would like). When I looked at his art I would see large empty spaces, and plainness. The color was important but not as important as the complete look and feel of the background art. Unfortunately I was unable to explain this to him at the time, and we wasted a bunch of time going back and forth.

The pastel color incident was not the only thing I notice. I had a feeling that something was wrong but I could not figure out what it was. The thing that makes this event important was that it was the first time I really said to myself, maybe I am not as good at communicating as I thought. Since then I have become more aware of my problems. I would be talking to someone about a technical problem and the person would look at me like a deer in head lights. I would suggest a solution in a meeting and have it shot down. Only to have someone else suggest the same thing (or what I think is the same thing) and the the idea would be accepted. I would also have experiences where I would need someone to interpret what I was saying so that the group could understand what I was talking about.

It is surprising now as I look back, that it took me so long to realize this. I am reminded of what John Cleese said at the 2009 Creativity World Forum “To know how good you are at something, requires the same skills as it does to be good at that thing. Which mean if your are absolutely hopeless, at something. You lack exactly the skills you need to known your absolutely hopeless at it.”. I was hopeless and it was not until I started working on projects that required a lot of interdisciplinary collaboration did I really see my weakness.

How does this relate to game development? The pastel colors incident, took a few months before we decided on an art style, that to be honest neither of us are satisfied with. Poor communication cannot only make a project take longer it can also kill it, or worst you produce a substandard product that you despise. Also if you are already in the work force you have no doubt experience a situation where someone ask for a product XYZ and when you deliver it they tell you it is not what they wanted. It is so easy to think that it is the other person fault, but maybe you did not listen well enough or made sure you understood what the client really wanted. This is what good communication is all about, not only explaining yourself but also understanding what the other person is wanting.

Like any good programmer I feel that this problem is just that, a practical problem. It is my job as a programmer to solve problems, and with any good solution to a problem the first step is to recognized it and want to change it. So, if you think you might have a problem with communicating please join me in saying, “Hi, my name is your name here and I am a bad communicator”.

What should I do to get a job?

Yeah another blog post, and it is still March!

I like to give a summary of my longer articles for those who don’t care to read the whole thing.
1: Built it and they will play it.
2: Using a game engine or library is not cheating it is expected.
3: Play what you make.
4: Like most jobs in life it is who you know that will get you past the front door, after that the rest is up to you.

A while back I had a guy ask me what should he do to get hired by a game company?  The advice I gave was to make games, and because this is such simple advice and I would be surprised if he followed it.  I find that most simple advice is usually just forgotten or ignored.  So let me give more detailed and specific advice not only from my own experience, but also from people who actually do the hiring.

I am back looking for a job again, and when I get to this stage I send my resume off to several companies and see what I get.  A friend told me to apply for a particular game company even though I didn’t match the skills they where asking for.  He knew the company and they tend to not advertise when they are hiring entry or intermediate level programmers, because too many people apply.  I applied, not because I expected they would hire me, but because my main goal is to just let them get to know me and for me to get to know them.

I was surprised when I was asked for an interview.  During the interview it became apparent that I did not have the skill set they where looking for.  First I haven’t really touch C++ except for minor modification to the game engine I was using, for almost a year.  I have not programmed for the console they where looking to using, nor did I have much experience with network programming, which was one of the major requirements of the job they where looking to fill.   At the time I had focused on Objective-C and script programming which they did not need.  Because I didn’t expect to get the job, I decided to ask them directly the questions I hear most.

First, what do they look for when hiring someone?
They adamantly stated that the first thing they look at is what games the individual has made, and more importantly what have they completed.  During the interview they where very interested in what I had created and what I was selling on the App Store because I had made a finished game.

Second, what would give the individual being interviewed the best chance at getting a job?
Their answer was pretty simple, has the individual created a game that is very close to what that company is going to make.  For instance if the company is making in a platform RPG, with C++ using API X, Y, and Z, the individual being interviewed has done something very similar, then they would almost be hire on the spot.

Last question, what do you think about using games engines like Torque or Unity, and Libraries such as Box2D, and STL?
They had no problem with them, because they’ve used some of the engines in the past and still use libraries like Box2d in their current games.  Overall though, they stayed away from STL libraries such as Templates and exceptions.  I was very surprised when they told me this, but they said they usually make their own objects/systems for handling link list, queues, etc., and that the STL libraries had some issues that can be murder on a console system.

That is what I can remember in my 30 to 45 minutes interview.  Never have I had a really good time in an interview, and no I didn’t get the job. One thing that I want to stress is most of the jobs and interviews that I had came because I received glowing reviews from my past employers.  Most of the time when I go to an interview the person tells me that they talk to my old boss, and after what he said about me they had to interview me just because of what he said about me.  I highlight this aspect of my job searching because it shows how important it is to maintain good contacts with past employers, but also when you work on a project that you try your best, and don’t promise what you can’t deliver.  In my experience (in regards to small game company, large companies may be different) your boss will remember you. The game industry is small.  Very rarely will you find a market where you can meet a few people who have done so much, or know people who have.  These connections and the positive feedback from others can get you an interview.

Hopefully this is helpful to a few people, most of this advice is not anything new or ground breaking and can be found in a bunch of other places.  But when I was done with my interviewed I knew I needed to write this down so I will remember it and apply it in my life.  Also if I am ever asked again what should I do if I want to work in the game industry? I can just point them to this article.

Omelet Space Core – Postmortem

First, here is our 2009 sales data  website.  The numbers are really quite sad. To date we have not had enough sales for a paycheck from Apple, but at least we have the numbers online.  Here is a quick summary of my game Max Diamond Treasure Hunter sales.

Sales Data

Sales Data

Anyway, another year and another game release.  The new one is called Omelet Space Core or OSC. Initially we hadn’t planned on making OSC, instead we were going to work on another game featuring Max Diamond. However, with the release of iT2D 1.3 we decided it would be best to see what the new engine could do before we work on a larger project.

At the same time my business partner was adamant about building a few free apps, something I’ve been opposed to from the start.  At the very least I want to make enough money for the company to pay for itself.  In the end we decided on making free games that could be used to test new features and concepts.  We call these Quickie Games (if you have a better suggestion on what to call them, we’d love to hear it).

What is a Quickie Game?

1.    The game must be quick to build (with little to no project creep).
2.    Have small resource requirements (basic art and sound).
3.    Incorporate new code or features that will be used in larger projects later on.
4.    Includes non-intrusive advertising (we’re still trying to make some money).
5.    Easy to play.

With these 5 little rules lets see how we did with OSC.
1.    Quick to build hasn’t worked out as much as we would like.  It has taken about a month to complete the game, most of the time spent waiting for my business partner to actually work on the art. In addition we did have a little project creep jump into the game, but more on that further down.
2.    The small resource requirement has been fine.  We have basic art, a few photos, and a couple of sound effects.
3.    OSC incorporates several new ideas; we’re using iT2D 1.3, Dave Calabrese’s joystick code (with some improvements), Pinch Media’s analytics, and AdMod advertising.
4.    Included AdMod.
5.    Is the game easy to play?  We think so!

So what is Omelet Space Core?

Well, we decided to make an asteroid clone, because it seemed like a good way to test the joystick code and the game has some replay value.  It took about two weeks to get to a beta stage, and it took another two weeks before we had all the art together and finished our testing.  After my experience with Max Diamond Treasure Hunter I figure there would be a waiting period between development and the finished product, so while I waited for the art I worked on a few utilities apps for the iPhone.

Even though the game took longer to build then we planned we did have a little bit of project creep.  We love Easter Eggs and cheats, so we’ve included one.  While it may take a minute to get to the cheat, we think it is a nice touch.

Now to the issues I had developing OSC.

iT2D 1.3:
When we were testing game ideas we came across two concerns, first we discovered that iT2D has issues saving with loading particle effects and tile maps.  Second, we had issues cloning objects.  For the former issues we simple choose to eliminate most of our particle effects and tiles maps and for the latter issue we had to add a few more steps when creating objects.
Overall, 1.3 is a great improvement, and I have enjoyed using it.

Advertising:
I ended up using AdMod for the final development.  Personally it was not my first choice, but when I tried to add code from other advertisers I could never get the code to compile.  After a few hours I decided I would use something I know works.  In the future I will switch between different advertisers until I find one I prefer.

Joystick Code:
Overall I have been pleased with the joystick code even though it does still contain a few bugs.  I wasn’t able to narrow these bugs down and due to limited time and resources but I plan on posting the fixes in the future as well as the list of bugs I’ve found.

Testing:
One of the most important lessons I learned from my first game is the importance of testing game builds before you submit them to Apple.  We failed to test a distributors build only to learn the loading time was so long that the iPhone would often close the app before it loaded.
In our testing for OSC we saw some occasional performance dips with a 1st generation iPod Touch, but besides that everything else worked fine.  I just hope I didn’t miss anything and end up with another major bug like before.

Submission to Apple:
I sent OSC to Apple on 2/11/10.  5 days later Apple rejected the game because it was using Core Location with its ads.  I fixed the problem (by turning off Core Location within the AdMod code) and uploaded the update the same day.  By 2/18/10 it had been approved for sale.  In total, with a rejection, it took 7 days which is a big improvement compared to other Apps I’ve released.

Last Thoughts:
Now that I’ve finished OSC I’m asking myself, what would I do differently knowing what I know now?  I would have spent more time optimizing the code.  Particularly working on data loading and unloading as well as image types and sizes.  I didn’t think these were worth the effort at the time because this is a simple game, but I’m starting to think setting the habit of optimizing all app can only help, particularly when I’m working on larger projects.

On a funny note, when we had completed most of the game I came across the Torque Development Network’s.  I had completely forgotten about it, and this is after I had made the game from scratch.  In the end I decided to use my original code instead of using TDN’s.

Thanks for reading this, and download my game IT’S FREE! Let us know if there are any bugs or issues you come across so we can make this and other games better.

P.S.
↑ ↓ ← → A B Select Start
↑ ↓ ↑ ↓ ← → ← → A B A B Select Start

The Swimming Partner and I am sorry

First I am sorry for the one person who expected me to write more blog post then I have.  I been really busy these past few months.  I made a new year resolution to do one blog post a month, so we will see how well I do this year.

First I made a major update to my game Max Diamond and it is on iTunes, you can go to the company website for information about that.  Also I just finished another iPhone app that I am calling Swimming Partner, continue reading for more information about that.


I made the Swimming Partner for myself and I figured other people might find it useful as well, so I decided to sell it on the app store.

This app started as a dream device. When I am swimming I have a hard time remembering which lap I’m on (is this lap 41 or 42).  I’ve seen a few people use some kind of counter either on the edge of the pool like a dice, or a lap counter in a zip lock bag.  But then you have to stop swimming and do something. Some people will count to 10 and then start over, but I often forget which count I’m on.


So to try and “help” me remember I would punish myself by picking the smaller number and start from there, but this lead to issues if I swam 75 or 80 laps. So I wanted to build a device that would do the counting for me, but my lack of knowledge on how to make such a device prevented me from every moving forward on the idea.  It’s not like I have any skills when it comes to electronics, so I was left to counting my laps and this was very boring.


Then I found out about a waterproof case that lets you listen to your iPod shuffle underwater. So I bought myself a shuffle and a underwater head set and I was able to listen to a book, or podcast, or just some fast pace music. Life was good because now I wasn’t bored while swimming, but I still wanted a device that would help me keep track of which lap I was on.


Then it hit me, like when you suddenly lose all the hot water in the shower, I am an iPhone developer and I can buy an iPhone waterproof case and make an application that does what I want.  With the iPhone waterproof case I can listen to music or audiobooks and still have a lap counter.  Best part, I don’t have to worry about getting electrocuted by something I might have made. What a great Idea I said to myself. And this application was created shortly after.


For the first release of the Swimming Partner I wanted to keep the application really simple.  I’ve worried that if I add too much my users will be turned off because of the complexity of the app and in the end just never use it.  Also, I’m not sure what would be the best features to include or leave out, so I’m hoping to see some feedback from my users to help determine which new features to add. So if you have a suggestion on how to improve the app please contact me on my website: morphosisgames.com. I’m going to update the app regularly (hoping about once a month) and will be making a list of things to add.


Note as the updates are added to the app we will be increasing the price, so get it while it is cheap!

How to use the App

First Select music.

Second if you want to be notified when you reach a certain lap set it.

Third start swimming and tap the counter when you reach the end of a pool.


DISCLAIMER: The iPhone/iPod Touch are NOT waterproof! You must use a waterproof case that makes it “safe” underwater. If you do not have a waterproof case do NOT buy this app until you do. Also If your iPhone/iPod get damage or you get injured while using this app we are not at fault. Please consult the manufacture if your accessory is malfunction.

Going Fishing

Going fishing, the past time of men throughout the ages.  Time to sit in the sun, enjoy the peace and tranquility of nature, and get away from the world.

Truth is, I don’t fish.  I’ve been fishing about 3 times my entire life and I caught one fish, it was this big…

The effort involved has never really appealed to me.  I don’t like having to get up early , hooking up a boat, getting all the supplies, baiting your hook, dealing with the bugs, cleaning the fish, and storing the food. Then when you get home, you spend more time cleaning and cooking the fish.  I don’t even like eating fish!  It seems like an awful lot of work just to relax.

Don’t get me wrong, I’m not out to start a fight, because I understand the benefits.  Going somewhere either by yourself or with a close friend, enjoying a quite moment, a good drink and just relaxing.  Don’t have to worry about much, unless you actually catch that big one.

So how are fishing and programming related, well I guess there not when you look at it.

OK that was a lie, there is a relationship I wanted to talk about.  In the past few weeks I have been so busy working on my games, fixing bugs,  remodeling my house, and trying to learn and stay up to date with iPhone development.  I am tired, so I want to take a break, I want to just sit back and relax for a little bit and not worry about anything, in other words I want to go fishing.

What does this programmer do to go fishing, program.  I know that doesn’t sound different from what I’m currently doing, but it is.  I need a break from designing upcoming games, learning new coding methods and managing my small company. I want to create a game or a program that has no business application.  I don’t want to write design docs, then a technical doc, figure out all the needed assets, review tutorials, hire freelancers, or come up with some special marketing plan to help sell more copies of the program.  I don’t want to work with other people and deal with all that hassle, I want to work on a project that only needs me to do it. I want to create a game or program that has no business application.  I want to work on a project that doesn’t have any importance. Something that I always wanted to do but never had to time to do it, and its done when I am bored with it.

So here is my fishing activity.  The project is a simple Tic Tac Toe application made with OpenGL.  The code will be created using almost all originally code, no copy cut and past tutorials, expect for platform specific stuff.  When I have the prototype working I will write about it, it should be done sometime in the future, maybe in a month or a year.

Thanks for reading this, now I am off to go fishing.

Max Diamond Treasure Hunter – Post Mortem

I wrote this same post for garagegames website, but I figure I should post it here for my little bots friends, that keep visiting.
OK for those who don’t want to read this whole blog (and I understand, it’s long) here is the cliff notes version, and then read the last paragraph.

What I learned and relearn while creating Max Diamond Treasure Hunter.

First: Just start a game. Don’t try creating the awesome game that you and your friends dream about, start with something simple and easy.

Second: If your working with TGB, take advantage of what they done for you to make your life easier such as, behaviors, custom datablocks, etc.

Third: Everything in game development takes time; programming, art, sound, etc. Plan out what you need, get the people you need to do it, and give them what they need long before your deadline.

Four: Consistence work, is better then binged work.

Five: Record you time, and make notes.

Lets start with a bit of history. I purchased iTGB in November of 2008. At the time iTGB had the license restriction of only one publish game, then you would have to purchase another license. Because of this license restriction I couldn’t decide on what one of my iPhone games should I make. Do I just make a game and see how well it sell on the App Store, or do I work on a game that I know will be awesome? I decided to try and make the awesome game first; that was a mistake. After about 3 months I was no where near getting my game done.

During this time I found some contract work, and didn’t have time to work on my game. When I was done working on that contract I decided to focus on my iPhone project again. I found out that garage games just changed the licensing on iTGB, so I was no longer limited on the number of games I could make, and because of this I decided to just make a game, and see how it sells. I wanted something that would tax my torque programming knowledge, but still be easiest enough that I could get it done in a few weeks to months. That way I could learn the strength and weakness of iTGB and plan my next games accordingly.

Lesson 1, when your first creating games, start small and work up to the awesome games you’ve dreamed of.

When thinking of what game I should make, I thought of one of my favorite games on the iPhone, labyrinth. And I thought what if I combined the basic game play of labyrinth and add some moving traps, and items to collect. And I said to myself “self, I think you have an idea for your first iPhone game”. So I started writing down ideas and drawing things on paper until I got an idea of how I wanted the game to be. My docs where not the greatest. Looking back I think one of the things I could have done better was to create a complete artist asset list right away, and then find an artist. I will tell you why later.

I started 03/26/09 to work on Max Diamond Treasure Hunter (MDTH), and the game was sent to Apple on the 07/19/09. So the game took about 4 months to create, my first estimates put it about 1-2 months. Yeah, I under estimated the time line.

The first issue that I had with this project, is I did not take full advantage of the Torque Game Build editor. All the work I even done with TGB, was extending the engine to support feature X, or write a torque script module that did Y. And because of my lack of TGB editor experience, I didn’t take advantage of behaviors as much as I could have, or even custom datablocks. And at the end of the project I wished that I had.

Lesson 2, take advantage of Torque’s engine features first!

At first I was going to have the game use one “HUGE!” (tracks of land) map, but when testing the game on my 1gen itouch (using iTGB 1.0) the movement was really choppy; It is still a bit choppy on the iPhone 3GS but it is better, I haven’t check the forums about this, but I will later. So when deciding what to do about this issue, I was thinking about how Half Life handle loading using a portal system, and it hit me. Why don’t I just load a small level, and then have entrances and exits to other levels. This changed my game design significantly, but I felt that it was a change for the better. I did spend a good amount of time learning and modifying how torque load levels but it was a good learning experience.

So after about 2 months of working on the game on and off, I was ready to hire an artist and a composer. Now when I got to this point I thought I could have both the art and music done within two weeks. And boy howdy was I wrong. After talking to a few people and getting nothing from them I was really frustrated and was thinking about doing it myself (not a good idea). Fortunately I was talking to my brother about my issues, and he agreed to do some of it for me (for a cheap price). Now I wish I could say he delivered the art quickly but he didn’t, after about 2 months I got all the art from him. During this time I found another artist, and he also took longer then we both thought it would. Now let me say this, I am very happy with the art and the quality that I received, it just took longer then what I expected. Also let me say I am not an artist, so I don’t really know how long it takes for them to do things. My sound guy gave me my stuff really quickly, but he didn’t do as much as my artists did. The slow deliver of the art did cause me some annoyance, because all I was waiting for was the art to be done, so I could send the game to apple.

That is when I learned lesson 3, understand the art and sound you need upfront, then make sure you get the artists working on them sooner then later.

One thing that I did that really helped me get past the art issues, was to create a simple iPhone application. My sister ask if I would make her an application that would help her to fall asleep. I had the time so I agreed and I then created the app, and I called it “The Sleeper”. Doing this help me understand what I would expect to see when I ship MDTH out. I would recommend everyone doing iPhone games to take a day or two and create a simple iPhone app and send it to apple.

I wish I could say that I put in a solid 40 hours a week on my game. Or that I even did a consistence 10 hours a week, but I did not. What I did was worked on it for 2 to 6 hours one day and not touch it for another week or two. And what happen is I ended up spending the first hour or two just remember what I was working on and why. Also I didn’t keep a time log, or good record of what I needed to get done. Now even though I am done with MDTH I can’t give a good estimate on how long it will take me to make my next iPhone game.

There is lesson 4 and 5, work consistently on the game, even a few hours every day is better then 10 hours one day and 10 hours a week later. Either way, keep notes, it will keep you on track with the project, bugs, and anything else you’ll need.

I will now get down from my soap box. I am going to sell Max Diamond Treasure Hunter for 0.99 cents. I think the game is easily worth $1.99, but this is my first game, and people buying stuff from the App store tends to think anything over 0.99 cents is to much.

So what do I think about the game. When the game used simple programmer’s art I seriously thought about junking the app and moving on to another project. But in the final testing of the game, before I sent it to Apple, I found, to my surprise, that I enjoyed playing it. I don’t know if it because it is fun, or because I grown to love the game and hope it does well, or because I see how much progress it has made. I like to think the game is fun and that it will do well on the App Store. I don’t think it will make $100,000 or even $20,000, but I am hoping to make around $8,000. Well thanks for reading my blog. I will let everyone here know when it is release. I also plan on putting my application sales data here for everyone to see for the first 3 months. Figure you guys might like to see that.

Try not to fall asleep.

So as the blog bots may already know, I created another page to my website for my iTunes application The Sleeper.  I am counting this creation as one of my two blog post a month; because I am lazy and have a bunch of other things that I need to do.  Last Saturday night / Sunday morning I sent my game Max Diamond Treasure Hunter to Apple to get reviewed. The game is being published under my company MorphosisGames.com.  I am really excited by this, because it will be my first finished and publish game.

I decided to talk about how well The Sleeper has done on iTunes. And looking at the data for the past it did better then what I expected but not as good as I had hoped.

The Application was sent to apple 06/27/09 in the morning around 2:00 AM. It took 8 days for the application to be reviewed and published on iTunes. So the following information is from 07/05/09 to 07/19/09.  I have sold a total of 29 units of The Sleeper!  One of those sale was my sister, for whom the application was created for. I am please to also state the my application has received two 5 stars reviews. Now first let me tell all of you blog bots reading this page, I do not give my games reviews!  I don’t like it when an application is given 5 stars because I want it to sale more unit. But with that said one of the reviews belong to my sister, who is very please with the application. So even though she is family, and the application was specifically for her, I will count it as a real review because it is her honest feelings about the app.

For the most part I get about 2 sales a day, I last week I had 2 days in which I didn’t get any sales. I am going to start working on an update for the application to add a few new features that my sister and others requested. I want to see if adding updates to an application will increase the number of units sold.

So as I said I am please with the number of units sold for The Sleeper. I am told that games make more money then utilities on iTunes.  I hope this is the case because my next iPhone app is a game called Max Diamond Treasure Hunter.  I will keep you bots informed, when it is release.

To Build Or Not To Build

I think I must first apologize about this  post. I feel that I am rambling and its full of disjointed sentence. But I want to get in the habits of doing at least two blog post a month, and if I don’t do it now I won’t have time latter. Right now I am fixing up my house getting it ready to sell, I am working on a iPhone game, and hoping to have both of them on the market before the end of this month. Anyway enough with my boring life, lets talk about game development.

I been thinking about what to do for my next post and I started thinking about the age old game developer question. To build, or not to build, that is the question; Whether  ’tis nobler in the minds to suffer the pains of long hours of development, or to fear the reproaches of men and use an game engine (was that too much?).

When I was in college I felt that using an game engine was somehow cheating and did not like the idea of using them.  When I was done with my schooling, one of the companies that I worked for built their game from the ground up, and they paid a pretty penny for it.  But the problem was it wasn’t that good, and to do something really simple took a lot of work. The main problem it had, was it didn’t have any tools that made creating the game easy. Everything had to be created and added to the game by the programmers. It was very labor intensive to get things working, hence it was expensive.  They went under shortly after I started working for them.  Another company that I worked for decided to buy a game engine and train the people they hired how to use it.  It was one of the few project that I worked on that was completed.  And I think they paid much less for the engine and the training then the first company did, just to build theirs.  So after those experiences I became a lover of using game engines and the tools that come with them. I have used Garage Games game engines for the pass few years now, and I been happy with them over all (Yes, it has issue, but show me an engine that doesn’t).

Game engines are a wonderful thing when it comes to making games.  They take care of most of the boring and difficult tasks of memory management, data loading and conversion, system design, platform independence, and if they have tools for it; then you can focus on making the game and not programming it.  The game engine takes responsibility away from the programmers for creating the game and gives more of it to the artists and game designer. This isn’t a bad thing, it has allowed us to have some really awesome looking and fun games (Half life 2, portal, fallout 3 just to name a few).  In other words a good game engine lets the designers focus mainly on the game. The issue I see most people having, when using a game engines is just learning how the game engine and its tools are suppose to work.

But there is one main flaw with using an game engine.  And that is what to do when the game engine doesn’t support feature X, Y, and Z?  Three options come to my mind; first give up and go home, second use a different game engine and lastly implement the missing feature.

Give up and go home:
I think this happens very often, especially for those who are in school, creating the game as a hobby, or working with friends on a cool idea.

Getting a new engine:
This works fine and dandy, but I see two problems.  First you might end up switching between so many different engines that the game never gets made (Duke Nukem forever, anyone?).  And what if you don’t have the money to buy the new game engine, or you don’t have the time or you don’t want to spend the time learning how to use the new engine? Well only one option left.

Implement missing feature:
This is what most people do, at least those who have to complete the game or have a strong desire to finish it.  Sometime this task is really easy to do and some time its next to impossible.

Even with this main flaw, using an game engine will dramatically reduce the amount of time it will take you to make your game.

So if you have been wondering if you should use an game engine or make your game from scratch (I.E. get a game programming book, or find online tutorials). I would tell you think about why you are creating the game. If you enjoy talking with your friends about game ideas, or you have an awesome game idea, or you want to create games to make money. Then I would tell you to find a good game engine with tools, documentation, and support (community or official) and make your game. Making a game is hard, even with the best game engines, professional tools, and skilled people. Don’t let your fun / profits be slowed down by long (boring) hours of work and learning; and besides no one will think what you done is cool, because it can not compete with the latest games out there, face it.  But if your intention for making the game is for employment (I.E. to show to an employer), become a better developer, or you just love tinkering. Then by all means make you game from scratch.

So just take my advice for what it is, the ramblings of a programmer, and remember why you are creating the game, then act accordingly.

Welcome To My Site

Welcome to my blog. Lets start with my programming experience. When I was in junior high school my friends and I thought it would be cool to make our own computer games. Now I’ve always been a dreamer and not a doer. One of my friend’s, John, learn how to program in a language called Euphoria. I gave it a few attempts, but never really did anything with it. Playing computer games was more fun then making them. John, on the other hand, stuck with it and was learning how to program and making games. So whenever we would walk home from school we would talk about creating our own computer games. It was fun, but when John made a game I would generally say, “not bad, but the graphics need improvement”. (He has finally been able to seek revenge though.)

Now lets jump forwards a few years, I was thinking about what to do for college. There were several careers I was looking at, cooking, psychology, or something in the sciences. My greatest fear was getting a bachelors degree, spend at least 4 – 6 years of my life working on it, only to come out of college and not be able to make a living. So I decide to get a vocational degree instead– knowing that it could get me a good paying job. Once I had a secure income, I would work for a few years in the real world, then go back to college and get a bachelor degree, if I wanted too.

I started school at Idaho State University College of Technology from 2004 to 2007, the program that I did was Computer Software Development Technology (CDST). It gave me two associates degree, one as a language specialist, and one as a web specialist. I learned how to program in C++, Java, Visual Basic.NET, ASP.NET, PHP, Java Script, and Oracle, with a focus in database systems such as MySQL and Oracle.

My friend John was also in the CSDT program with me, and we decide to create computer games. But like most school projects, one person does most of the work while others get to take credit for it. I was the one that took credit. (In my defense, I was just learning how to program and he had several years head start on me. I did do some work, but most of the development was done by John.) While we never finished a game, our best developed project was a top down space shooter. It was written in java with the APIs jogl and joal. I created the models using blender 3d and loaded them into the game using .obj format. I also had responsibility over sound, it worked at certain times. Even though we never finished the game, for an alpha level project, it was pretty and it had network play.

Upon graduation from the College of Tech, I moved to Salt Lake City, Utah. There were several reasons I made the move. First, I knew I could find a good paying job, second, my family moved down there a few years earlier, and last, I thought my schooling would be cheaper down there. While the first two weren’t problems, I found out when I arrived that school would only be a little bit cheaper; and, I would have to start from the beginning–which meant my two associate degrees wouldn’t help me jump ahead in the program.

This is a good spot to comment about the CSDT program. Some of the students who went through the program with me felt like their degree was worthless. It wasn’t getting them jobs or they weren’t making much money. When I moved to Utah I was able to get a job in a short amount of time, and I made more money in one year then I did in the past 3 year combined. Needless to say, I feel my degree was worth the money and effort.

But as for the last two years, I’ve been lucky (or unlucky). The first programming job I found was for a start up simulator company called iWorlds. They were developing a space simulator and need programmers who knew java and the APIs John and I used to develop our games. However, with in a few months, because of some setbacks to the company, they went under. After that experience I decided that I would move back to Idaho when school started, get my bachelor degree, and maybe make a few games or programs and try and sell them–at least that was my plan. Within a few weeks of iWorlds shutting their doors, my old boss, Ontario Britton who had just started at another company called Q90, asked if I would come work for them. I will admit that I didn’t like the idea (iWorlds had left a bad taste in my mouth), but I decided to give it a try. Q90 is a web company who was asked to make a PC/MAC music game for one of their clients. They weren’t in the business of doing game development but the client really wanted them to do it. So they hired a bunch of programmers and we made a music game engine for them. Even though I was the least experienced programmer, I did really well and they where impress with my work. I worked as a game developer for Q90 a little over a year until the markets crashed and the owner told us he had no more money for game development and that he would have to layoff his game programmers and some of his web programmers.

Unfortunately game development is not as profitable as regular work. To give you an idea of difference between game and web development, most game companies charge $20 to $80 dollars an hour when doing a project, most businesses charge $40 to $200 an hour. Now game development can make a lot of money but it is a hit or miss, and most businesses cannot afford this.

So I was unemployed, again. At this time I has just finished listening to the book “How to Stop Worrying and Start Living” by Dale Carnegie. So I decide to apply what I just learned. I looked at my situation, saw that I had some money saved up, and I had a few job opportunities. So I created a game company called Morphosis Games, and started working on a game idea. As luck would have it, one of the guys I worked with at Q90 was able to get a Wii game contract and wanted to hire me. I took the job, but kept telling myself not to forget to work on my game for my company. I had experienced two job losses and didn’t want to be dependent on a pay check from an employer. I had learned that any day you may go to work and they will say “sorry guys we don’t have any money, go home”. Well, I didn’t listen to my advice, I forgot to work on my company and after a few months the Wii contract fell through and I was unemployed again.

After all this time I have to say, both professionally and personally, I never produced a finished game; well, except for the music game engine–but I don’t expect any games to come from that…in short,  I have never finished a computer game. Sure, I have a bunch that I could say are games, but they are not finished..they need better art, sound would be nice, a starting and an ending point is a must, a story line would be good, testing and removing bugs is needed. But I never got around to completing them, something comes along or I am just to busy.

That is why I decided to create this blog–to learn about game development, study areas of weakness, and just inform people about what I am doing and what I am learning. Hoping that it will make me a better developer and programmer, plus make some extra money.