I have very bad news for some of you: video games are nothing more than colorful software with funny things like zombies, but at the end every videogame is nothing more than a complex software project.
What I’m writing about today? Why all those bad news? Today I’m going to talk about something boring for almost every developer, something necessary that all of us tried to avoid at least once, what must not be named!: Software documentation
Write words before code
When someone has an idea, the first impulse is to code it as soon as possible, sometimes after some sketches and rough draws in any sort of paper (blocs, tissues, toilette paper, who knows). In case of being a dev team, is absolutely necessary to write down some design documentation before starting with the code or the game assets. Things usually go wrong, and it’s nice to keep a reference handy when the fire starts. Even for lonely indies, is better to have a plan not to get blown off center after a few months.
Things that worth writing down
Lots of design documentation templates can be found around the web , but there are some important topics that are a must:
A little presentation about the project. It usually contains information about the document structure and what can be found on it.
A large description of all the aspects of the project, including genre of the videogame, functionality (yes, every functionality expected), hardware and software tools needed, people assigned to each task…
This is, in my opinion, the worst part of the software design process by far. All the requirements that the software must fulfill have to be in this document and explained as clear as possible. Yes, ALL of them.
The main char must be able to move forward, backward, up and down? That’s a requirement
The game must work on Android 4.0? That’s another requirement.
Take care of the most common error: “the game should work well in older pcs” is not a specific requirement. Nobody can measure what is good, or older in this case, and requirements must be fulfilled.
We already have an entire article about this one, but remember: a videogame is the best piece of software you can create with the available resources in the available amount of time.
For task and time management, Gantt diagrams are quite useful, and GanttProject is a good and free alternative for anyone who wants some iron discipline on his team.
Design: Diagrams and mockups
Code can be built using diagrams as reference, like class diagrams for object oriented languages. These kinds of structures are a complex enough to deserve an entire article in the future.
Other useful diagrams are called mockups. They represent the size and position of every GUI object, being a preliminary vision to the graphic designers and a guide for the developers. Nowadays there are lots of web apps ready to create simple mockups fast an easy, like MockupBuilder or MockFlow.
Well, it’s enough for now! If any of you is not used to write some documentation for his projects, I recomend you to try it next time.
I’ll might be back someday with some more information about diagrams and code arquitecture, but next article is going to be full of fun and colours.
See you soon!