I am a great supporter of Indie game development, and love to see what small games people make in their free time.
After creating a small game many people try to make a larger one, and then feel that they need a small team to help them along. This Ible covers trips and tricks that I've picked up from my own computer game, DEEP Space, that I've been working on for more than a year.
This does not only apply to computer games, but also to other web-based team projects.
Making a game is a big task, that takes a lot more time that you think. A professional, paid company takes over a year to produce a good game, so don't expect you to produce an amazing title in a month.
Also, people often drop out of un-paid projects, so be prepared to do everything yourself.
Step 1: Make Initial Decisions
- What game engine are you going to use, or will you code one from scratch?
- What will attract people to your game?
- Who is your target audience?
You choice of engine may be influenced by things like:
- Programming languages you know
- Licencing of published games
- Game-play type. (ie Spring is for RTS only)
When you create a game you have to think about who will play it and how they will find out about it. As I found out, making a game is 10% developing and 90% promoting.
- Most game projects have a website, for consumers and developers.
- Publish WIP versions of your game on the web.
- Make posters and distribute them on the web.
Make sure you have an audience.
Step 2: Planning (story/style)
A name is an important thing to chose. I chose badly, picking "Defender" as my initial name. 4 months later someone told me that "googling defender.exe produces a virus." I then spent the next couple months deciding wether to change the name. It was a big task, as you have to re-brand everything, from script headers to posters to forum thread titles to website domain names. So pick a name that tells people about the game, isn't ambiguous, then, Google it to see if it has been taken by another company, or represents something you don't wish it to.
You must also come up with a story time.
Make sure you make the story-line believable and detailed. It will be the base for everything later in the game. Once you have set a story, don't change it either, unless there is a serious objection for it. It's not quite as bad to change as the name, but it is still an effort.
Creating a consistent style is rather important. No-one would dream of mixing 16x16 pixel textures with very good 3D models, simply because the effect would be so weird. The same applies for smaller things. Pick an overall style and communicate this to any concept artists. Styles can be things like:
- Dark industrial
- Fairly tale
Step 3: Detailed Planning
One of these was the filing system.
When you buy a game you don't see hundreds of images, textures and sounds in the same folder as the executable. Rather they are sorted neatly into folders with sensible names like "Textures" or "Sounds" Planning this is key to good developing. As is planning how you get models from data files into the game files.
Be specific and make a document that communicates this clearly to team members. Have a look at my sheet to see what detail I went into. Things like:
- Folder names
- Contents of data files
Also plan out communication with your team members. IRC is a good system, as is file-syncing with a system like dropbox. Setting up a website is a good idea about now.
The next three steps should be done at roughly the same time. With you doing the third, as bits of the other two are done by others.
Step 4: Concept Time
There is a lot for your concept artists to do. These include:
- Menu's (including high-scores, in-game menu's)
- Player character(s)
- Levels (I feel I need more than one word for this, it is a large challenge)
- Game-play features (HUD's, props)
Anything from pencil sketches to publisher vector graphics, to 2D painting works. Text documents along with the concepts help explain.
Concepts should be approved to fit with the style before they are able to be included in the project.
Step 5: Model and Textures
Time to get modelling. Get those concepts into 3D models, or sprites depending on what sort of game you are making.
You can have specific people doing modelling and texturing. People have different areas of skill, so let people do what they are good at.
Myself I can model and code well, but had to give the texturing up to some-one else.
There are a lot of models, so it pays to get started on this early. Don't worry about levels at this stage. Menu's too, can be ignored unless they require complex modelling.
Step 6: Assembly Time
Time to code and put everything together.
It's best that one person does this, probably you, as the person running it. This helps prevent confusion.
You take all the models, put them all together in a logical file-structure. Separate out textures.
Start coding. Get user/game interactions right, start working on the menu's (they are more coding than modelling you see, that's why they fall under this category)
Use a blank level for testing, or add obstacles for testing AI, collisions and such, but don't fuss with proper levels yet.
This is one of the hardest parts of the game, as it takes lots of motivation from you.
Step 7: Level Making
Here's where your prior planning really comes in useful.
If you coded and planned well, adding levels should be a breeze.
For my game, the level-select menu auto-detects new levels in a level folder, and since the levels know all about themselves (logic and all) it's just a case of putting the levels in the right folder and hitting play.
Step 8: Distribute
I'm not here yet, so from here on it is just what I hear and think. If you know better than me, let me know.
Hopefully you have got a website set up, as well as spread those posters around. Now it's time to go back to all those sites, and post a download link (or if you are selling it (pah), a buying link). If there are forums of people who play your style game, then post links there. Put a link in your signature. Do your best to let people know about it.
Sites like sourceforge offer free hosting for projects like this. Chose a place that doesn't require signup to download, and uses as few-er clicks as possibly to actually download it.
Make the executable file available in as many formats as is possible. Some game engines (like XNA) only allow windows, and this restricts your audience. Try to keep everything as cross-platform as possible.
Some more detail on creating computer games can be found here