Thursday, December 09, 2010

How do I make a videogame?

Someone recently mailed to ask “I’ve got an idea for a game – how do I get started making it?”

The high level of the question, implies that the asker is completely new to making games.

Games tend to require a lot of time spent programming, making artwork, and then putting it all together into a game.

First, I recommend concentrating on learning how to build games in general – instead of focusing on building your dream game. In the early days of learning, it's great if you can just build 'Asteroids' - you can build your Quake-killer later on.

If you’re ‘pretty good with computers’, then a fun and free way to get a taste of game development is to install Unity and follow this tutorial. Following the tutorial is kind of like getting an ‘Airfix’ model airplane and assembling it – most of the hard work has been done, but there’s still challenge in working through the instructions.

Going through this will show you bits of program code, and how art and animations get combined to make a game.

From there, you could go on building things with Unity, or explore the many other options available - C++, XNA, Flash, and many many more. Each of the options has a bunch of pro’s and con’s associated with it. Choosing the right one is a matter of knowing what you want to make (e.g. 2D, 3D, Networked, Web page based …), which technologies you want to use / learn (e.g. C++, Flash, Javascript …), and what platforms (e.g. Windows, iPhone, Xbox …) you are targeting.

Thursday, December 02, 2010

Developing iPhone apps in Windows, in regular C++

apple_iphone_1When the iPhone development gold-rush started, I investigated a little but was soon put off by the need to buy an iPhone, a Mac, and work in Objective C++. It would have been a lot of money and time before I could even write a Hello World app.
I just became aware of the Airplay SDK (Thanks Tim). It allows you to develop for iPhone in C++, in Visual Studio, on a PC, and comes with an emulator for PC. And it’s free!
It’s an engine with a graphics pipeline, networking, user input, sound, and other things. The things which it might be considered lacking if you were comparing with (the somewhat similar) Unity3D are a 3D editor, and a more developed physics system (I’m only getting this from a quick glance at the website, so forgive me if I’m wrong…). I’m not knocking it though – Airplay appears very exciting.
I currently lack the time to play around with it, but it looks pretty interesting to me. For a small fee, you can also target other mobile platforms like Android, without having to make changes to your code. Very cool!
Check it out – www.airplaysdk.com

Update:

  • I recently found this good roundup of many different iOS development options.

Saturday, November 27, 2010

Windows DVD Maker Review

I recently needed to create a DVD of some camcorder footage.

I used to use software which came with my camcorder to pull the video from the camera, then various tools to edit, and finally Nero (which came with my DVD drive) to build the DVD with menus etc. It was a lot of messing around – but that’s what it’s like on PC (if you’re a cheapskate).

This time, I’m running on Windows 7, and my old Nero disc is incompatible. Never mind though – Windows 7 is all Mac-like and comes with ‘Windows Live Movie Maker’ and ‘Windows DVD Maker’.

Windows Live Movie Maker

Windows Live Movie Maker 2011 worked quite nicely. It imported my video from my camera (over firewire). It created a single AVI with several internal clips. Movie Maker has nice simple editing, though the location of the clips wasn’t highlighted. Movie Maker can ‘Save as -> Burn a DVD’. This first saves a WMV file, and then starts Windows DVD Maker.

Windows DVD Maker

DVD Maker takes one or more WMV files, allows you to configure the DVD menu, and then burns to DVD.

Pros:

  • Has some nice menu templates, with animation and fun transitions. It’s not out of this world, but enough to make your amateur DVD making look quite nice.
  • Simple to use.
  • Automatically takes your clips and creates scene selections from them.

Cons:

  • If you specify one WMV it will automatically create several ‘scene selection’ clips. However, if you specify more than one WMV it will just make each video its own selection. I didn’t like this either/or option – I’d prefer an options menu which allowed me to choose.
  • For me it repeatedly failed to the burn DVD with no useful explanation. Looking online, it seems like a common problem, and driver related. It's disappointing that DVD Maker fails to burn when other programs can burn OK.
  • It only burns directly to disc, not ISO file. This is very annoying, as it failed to burn to DVD on my machine. I ended up using the trial version of ‘Virtual CD 10’ to act as a virtual DVD burner. (After trying many other virtual drive related products.)
  • The scene selections didn’t match the clips in my video – they just seem arbitrary. Pressing ‘skip’ results in jumping over one whole clip, and landing part way through the next. Very odd. The DVD is only useful in ‘play’ mode – skipping and scene selection are inaccurate. This really detracts from the usefulness of the DVD.
  • The number of scene selections is limited to a fixed maximum imposed by the menu style you choose. The highest number of clips available appears to be 18. While this is enough for most uses, it's not hard to hit the limit.

Overall I was very disappointed by the experience. The gloss of Windows 7 seems very thin in the area of DVD creation. DVD Maker was superficially pretty, but then took hours of time to work around its lack of obvious features, and ultimately produced a poor quality DVD.

And finally, burning an ISO to a disc turned into another debacle of multiple programs being downloaded and tried. I eventually used ImgBurn to do it.

I like Windows 7, but I’m disappointed that DVD authoring hasn’t improved since XP. This one facet of Windows makes me wish I was on a Mac.

Thursday, November 25, 2010

3D Math Tutorials

VectorMathI teach a game programming class at the Art Institute of Los Angeles.

I recently did a review of 3D Vector Math with my class, and thought that the slides would be good to share online. Vector math is one of those essential skills for game programmers, and a common topic in interviews.

If you’re looking to practice your vector math and learn a few new applications, enjoy…

Note: I reserve the right to be inefficient and also down-right wrong. Feedback is welcome.