[Working on an indie project? The Game Prodigy author Brice Morrison gives tips on how to tell when to use free resources and engines available to you versus making your own.]
There are lots of game development tools out there. There are 2D engines, physics engines, 3D engines, Flash engines, and more. There are places where you can get sound effects for free and also pay for quality music tracks. There are programs for specific genres like RPG Maker, and there are simplified programs like Game Maker. These tools make it much easier and faster to build a game. But some people think this is being "lazy".
There are some indie game developers out there who insist on making everything from the ground up. They want to build their own game engine, their own ray tracer, their own physics engine. They want to make their own sound effects and music and carefully craft every pixel themselves. They want to own the whole process from end to end.
So which is right? When is using outside tools a good idea, and when is it a bad idea? How do you tell if your attempts are wasting your time, or if they are worthwhile?
It's All About Your Goals
Whether or not you should use outside solutions to make your life easier depends on your goals for the project and your career.
Let's take the example of a calculator. Calculators can make math very simple for us, you can instantly add, subtract, multiply, and so on. So if you just need to do some quick math, like calculate the tip for the waiter at a restaurant when you have a big group of friends, then a calculator is perfect. Whip it out, type in some numbers, and you have your answer and can go on your life.
But what if you're in a math class? What if you are learning long division yourself for the first time, because you want to go on to take more advanced math? Or better yet, you want to major in math or become a mathematician? Then you shouldn't use a calculator right away. This is why elementary school children aren't allowed to have calculators at certain parts of their curriculum, because the goal isn't to get the answer, the goal is to learn how the process works.
When to Take the Easy Route
This is the central question you should ask yourself: what is your goal? Is your goal just to make a game so that you can have fun? Is it to just put something out there to make money? Is it to enter into a game jam? If this is your goal, then using as many game tools as possible is a good thing. Make life easy on yourself and just focus on making your game.
This is why at game companies, they often use middleware or other engines to make their games. They often license music or sound effects instead of making them themselves. Because it's cheaper and faster to do it. Now if their game requires some custom functionality that middleware doesn't offer, then they will of course build their own solution. But the goal is to make something really great as quickly and cheaply as possible so they can make money.
In general this is something that I highly recommend for indie developers who are looking to make money off of their game. Using some of the great resources out there like Unity allow you to make your game in months instead of years. For some reason in our industry, there are a huge number of people making their own custom engines when they don't need them, which can often be a waste of time.
One of the things that you'll hear me say is this: the most important thing for you to do is to finish your game. Using good engines, open source artwork, music, and sound effects are yet another aspect to this, allowing you to skip ahead in your game and focus on completing it.