Thursday, January 20, 2011

Step 2: The Right Engine



First off, what needs to be said about choosing a video game engine is that there are so many out there and that doesn't include the fact that you could make your own. I mean will you be making a game within the bounds of a specific game engine or is it the other way around, an engine within the bounds of a game? The title for this post "The Right Engine" means that I will be helping you figure out what to consider when looking at engines. I won't really be comparing game engines out in the video game world, and I will try even harder to be strictly unbiased if I do. I will just try to give you some good advice and what to keep in mind when you are considering a game engine.

I asked a question at the top of the post whether or not you'd be making a game within the bounds of a game engine or are you doing it the other way where you have a game engine working within the bounds of a video game. In the real world people make a Game Idea first (the majority do, see Step 1: A Game Idea). So usually people would say that their game idea is more concrete and would rather find an engine to match it. Then again some people have enough money to buy a license for the engine they like. The majority don't :(. How a lot of independent developers work around this is that they either spend some time creating their own engine, and others look for what engines are free or really cheap. I know a couple people who have made their own engines. Although it may sound like it would be tedious and take a long time and you'd need to know your physics and low level graphics processes very well. That usually isn't the case. To prove that point I made my own engine last year and it was no more then 300 lines of code. It didn't do much besides draw shapes onto the screen, but it was cool and the best part was, I could control the shapes!!!! What I'm getting at is that you can do what you want, but you need to be willing to put time into it. All indie developers have to sacrifice a lot of time for their work to progress. The two guys that I know who made their own engines, their engines didn't do a whole lot as well. One was bought out by a company and that company made a game on it. The other, I don't think my friend has done anything with it.

Whether or not you have money, I believe the best place to start is looking at all things free. It may take you 5 minutes or 5 days to figure out if you like the particular engine or not, but the point is, is that in the end you knew that it wasn't the right one. At work what we did was we made tech demos to see if what our game needed to accomplish could be possible with the game engine we chose to use. Out of our three candidates, only one allowed us to do what we wanted, and that was because our tech demos proved it. That process took a few weeks. So like I said it may or may not be a quick decision.

A good example of that would be if you planned to make a 2D side-scroller. Considering what you can get really cheap or for free, your first two options would be Microsoft's XNA studio, and Unity. When you compare the 2 on paper they both are pretty similar. Both can use C#, both can port over to the PC, Xbox 360, and mobile devices, both have a large following and because of that they both have fantastic community support. So on paper, they both look pretty good. Now to be honest on paper some differences between the two I would say could lead to favoring Unity over XNA. If you wanted access to professional developer-made demos in XNA it would cost $99 and that is a yearly subscription which also gains you access to debugging on the Xbox, and deploying your game over to it through the community website. On the other hand, Unity has a lot of demos out on the internet and 99% of them are free. Debugging can be done in the Unity editor, which XNA doesn't have, but Unity users couldn't access the indie developer community for Xbox only because that is for XNA developers only. After all of the discussions that you have amongst your team or with yourself you could still be hung up over which one to choose because they both have pros and cons, and both have a lot of similarities. So what do you do next? Make some tech demos. That is exactly what I did, and for every time that I have done that, I did make a final decision on what engine to use. Every time you'll find that either with the work flow, the user interface, image/model/world editors, languages supported, depth of engine control, you'll find that it is something you like for your specific agneda or it isn't.

The last thing I should say is that it is also really good to change things up and don't always use the same engine for each game. Especially if you're just starting out. The fact they you can work with more than 1 game engine not only tells a potential employer that you know how to work with more than 1 game engine, it also tells them that they can trust in the fact that you can learn a 3rd, 4th, and 5th game engine also.

So a quick review, how do you choose the right game engine?

  1. Ask yourself, are you willing to make an engine from scratch? 
  2. Are you planning on spending more than $0 for you engine? 
  3. Then you go find the engines that fit your price range, or start making one if you chose to do that. 
  4. When you have narrowed your list based on how the engine looks on paper, make some tech demos. 
  5. Make tech demos, see if you can cover the majority of the topics that you need for you game to work the way you intended (import/export support, quality of graphics, specific platform pipeline and debugging capabilities). 
After all of this, if you still aren't down to 1 engine then go with the one that feels the best for you to work on. A gut feeling. If you follow all of that then you should be left with a game engine to your liking, and now you're ready to start making a game. Next time I'll be discussing game flow and other things you should cover before you dive into the game.

No comments:

Post a Comment