Beginner developers wonder the first step to game development: What language to pick? Should they learn C++? Should they build their own engine? Where can you find good books? The list continues.
I personally think that I wouldn’t plan so much about the first step. Naturally I would look for choices, but I think with game development it’s better to jump in the lake, and test whether you hit into a rock or not (No I don’t recommend jumping into lakes or selling your house or taking debts to jump into game business – I’m talking about the very first steps after you’ve got your “grand game idea” and think what to do now).
With that being said – I really don’t think it’s necessary to spend much or any money when starting your game development. In fact, much of what you need is either free or inexpensive.
I started my game development using Commodore 64 and writing lines of code (those were the days) and the first programming tool that had graphics was Multimedia Fusion (we had the first version, not the 2nd edition). It was bit pricey, but it worked fine on those days.
Some people recommend becoming top notch programmers and building their own engine. I personally don’t think that’s a good choice for game developer: if you spend your time on building the engine then you are more like an “engine developer” rather than a “game developer”. I really think that any indie game producer needs to learn programming – I would see it as a requirement. We all have great ideas, but ideas are worth nothing if they aren’t produced any further.
Instead of trying to make your own engine, pick some ready made. There’s a great advanced search available at Devmaster.net where you can choose price range and features you need.
Here’s some of my picks:
- Ogre3D: Proven, stable graphics engine with loads of tools, add-ons available. (See also Irrlicht)
- Panda3D: C++ engine – design emphasis is on supporting a short learning curve and rapid development.
- Torque Game Engine: Good for network gaming – You can mod the engine free before buying
- Blitz3D / BlitzMax: I’ve been using Blitz3D in my products and it’s worked fine so far.
- TrueVision: Fast & simple 3D game development.
There’s plenty of more choices, so make some research and then pick one. I don’t recommend taking a very complex tools in the beginning. It’s much better to start with something simple – and if the tools start to feel too easy, you can always move to more advanced stuff in the future.
For example: I know nothing about DirectX programming and have never programmed stencil shadows or dealt with antialiasing functions. Some really top notch programmers I’ve talked have sometimes mentioned me how “They just managed to get Anisotropic filtering work by tweaking the module” and I’m like “Huh?”. Then I’ve googled for a second and found out what it means. I really don’t need to know how Anisotropic filtering is programmed in an engine – I know there’s people much smarter than me who do know – and do that work. Many times these guys do all completely free, and sometimes it might cost very little. Why should I spend weeks programming Anisotropic filtering to an engine, if I can buy that feature (and many other features) with little costs and focus on game development? And if some features are too expensive – I can simply find out another way to deal with them.
I think programming an engine from a scratch is a great if that’s what you want to do. I’m simply saying that I’d rather spend some bux on tested engine and focus on producing the game, rather than the engine.
- Check out modding tools – there’s plenty of games that can be modded
- Check out Devmaster.net – there’s plenty of engines that can help you to build your dream game.
- Check out Experimental Gameplay – these guys make games in 7 day periods, and they are doing a great job.
If you are just starting game development, pick some engine and build from small. Take the first steps. Get a box rendered on a screen – move that box using arrow keys. Program it little by little – but it’s really important to start as soon as possible. Don’t spend too much time on planning or thinking of what you should do – jump in the development. If things don’t work out – try something else.