Sunday, March 6, 2011

Concept Drawing


Are you an artist? Maybe? Well I'm not. I could do what that baby can do. I can even choose nice colors, like Green!! If you're an artist, you most likely already have your tricks of the trade. Like what tools you prefer. If you're not the artìste then I would suggest starting off on paper. At least for me, I have more control and freedom when I draw on paper than how I feel drawing pictures on my computer. For a lot of people ideas feel more fresh when they are recorded with a pencil and paper. I sometimes do my psuedo-code on paper too. It is like the diner napkin cliché. Some person down on their luck had a great idea one day and they first wrote it on a napkin so they wouldn't forget it. Buy a sketchpad and draw what you're thinking onto it. After you have made a drawing the next thing would be to scan the paper onto the computer. From there you can draw over your images and save the copy. The next step would be to invest in a tablet. If you're not doing a lot of the drawing for your game then don't worry about buying one. I don't have an expensive one. Mine was $70 I think. It is a Wacom tablet, but it is the small one (around 4" x 2"). Wacom's come with nice pens with digital erasers and they seem to be the top tablet brand. I also have a copy of Sketchbook Pro from Autodesk. I started off using Photoshop, but I realized that Sketchbook Pro felt a lot more natural to use. So after I brought over my scanned pictures, I had a nice program that allowed me to draw in layers and sketch over my drawings. The finished product usually came out a lot nicer compared to the first draft.

Concept drawing is the ideal way to show your team what you pictured in your head but couldn't easily put it into words. I know that seems more like common sense, but a lot of people don't think visually like that. Take 10 people and give them all a pen and paper. Tell them to tell you their favorite car using the pen and paper, 9 people will give you a written description and 1 will have drawn a picture. As adults we tend to rely more on our left/logical side of our brain compared to using the right/visual side. The reason is because when you were a kid you didn't know how rockets worked. So you used your imagination until you learned the truth.

So the next time your boss, teacher, professor, business partner, or whomever asks you for a new idea or to rehash an old one. Give them a concept drawing, put some work into it, and make it show off your imagination. A picture is worth a thousand words. 

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.

Tuesday, December 28, 2010

Step 1: A Game Idea

Pretty much there is no great way to come up with a game idea. For me, I end up lying in bed listening to music trying to find some inspiration, and then think how I can turn that into a game. I like to think that my ideas are top notch, and are more valuable than anyones else's, lol, but that is just me. I feel that what I bring to the game development table day-in and day-out is worth someone's time to hear me out.

That comes with experience, and from building up you own confidence. If you're convinced that your idea isn't ready to pitch, or you feel that someone may have a better idea. Most likely don't mention it, but it is always good to even throw out bad ideas. As long as your team knows that the idea isn't the best, they can either work off of it, or they stay away from ideas like it. It will sting a little, the rejection, but you will learn from it, and next time you'll be ready.

So here is how I do this. Just recently I was asked by our technical lead at work to come up with a game idea. This was on our way to the airport, he asks me to pitch him a game idea. Now I usually have 2 or 3 idea floating in my head. Of course I may sometimes have just 1, or none, or a million, but usually I try to have enough to keep me thinking about new ways to make a game. So while we were driving to the airport, I had 2 well thought out ideas, and 1 idea that wasn't smoothed out yet. So I told my technical lead Mark "yeah I got this one idea. It was similar to a game I had made using XNA a couple years ago". So I go over a brief summary of the game. Saying that it is a zombie game, of course, and that the main character is trying to save his loved ones who are trapped in the middle of the city. Now the game isn't a AAA FPS with a $200 Million budget, but it would be a cool iPhone / Android / iPad game. So I gave him my pitch in the car, he liked it, and he gave me a few pointers for what he thinks needs to be smoothed out some more. Mark said he'd get back to me, and when I can be ready to pitch the idea to the whole team I'll pitch it. Simple as that. Whether or not you're an intern, a team lead, a indie developer who lives in a dorm, you should always have a second party to bounce ideas off of. It will keep you leveled out.

Now after mentioning XNA, iPhone, Android, etc... I think a good thing to always keep in mind is what you're building for. Sometimes my best ideas I can only vision as that "AAA title FPS with a $200 Million budget", and some of my ideas have been called out for feeling that way (if only I had tons of money like $200 Million to make a kick ass game), but that never deters me from throwing away a good idea. Like I said at the top "I think my ideas are more valuable than anyone else's". So I store all of my ideas that I think are good. I have a copy of Microsoft OneNote, and that works very well if you want to jot down notes quickly, but there's also no shame in makings notes in .txt's. 

Honestly, even if your going into development with a AAA idea that requires millions and you only have pennies because you don't have a job and are making games from home, what you can't develop you'll know about as you get into choosing your game engine. I'll get into that in my next post, about the game engines out there, and I'll give some examples of ideas where a lot of that game can't be developed because of either time, money, or the engine itself.

Wednesday, December 22, 2010

Author's First Post

Hello blog readers!

Hopefully you're reading this blog expecting to gain insight into VIDEO GAME DEVELOPMENT (yeah, lol). First a brief explanation about me and what this blog will be about.

I have a bachelor's degree in Software Engineering, and I went to school to with a dream to be a game developer. Honestly my dream is to end up owning and running my own game company, but I believe I still have a long road ahead of me before I ever get there. I've created several small games using Unreal Engine 3, Torque Gaming Engine, DirectX windows programming, Torque 3D, and TorqueX, which uses Microsoft's XNA game studio.

My future and current plans are gaining 2 masters degrees. One in either computer science, or software engineering, and the second will be for my MBA (so I'm prepared for handling my own business).

I also love all things zombies, and I love just about every single game genre.

That is pretty much it when it comes to me. Not much maybe, but the future posts to come will at least add more to my character so you guys can put a face to the author.

Okay for every post from here on out my aim will be trying to explain my current projects and helping those in the gaming community understand how games are made, and what goes on inside a game company and the gaming industry.