As a developer, I would not call myself highly experienced, but here is my take on building games.
Longer term readers will recall that I made a fairly extensive game in Second Life just after my father died. My father was a fan of Patrick McGoohan’s Prisoner, and as I knew he was dying, just when some cheeky swine was attempting to remake/ruin his legacy, I decided to make a tribute island for him in Second Life. As it turned out, he actually visited it with his grandchildren, so the creative exercise was worthwhile. The letter from the family was sufficient for me to make a full working model of the entire series, with the help of a couple of more computer savvy friends doing the scripting.
It took quite a while just to psych myself into thinking in a more linear, and yet less sequential, way to make this happen. My friends patiently waited for me to figure out that I had to drop the idea of story and concentrate on objects and what they do, and how they move you on within a game context.
So, for your first game I would advise that you do not do it alone, although at times it will feel that you are waiting forever for something very minor. The more people you can involve the better, particularly in the later stages when you need them to test your idea without bias. Some people who get involved will just appear to be sticking spokes in your wheels, but even this input is useful.
Knowledge of the following is desirable:
The games market – do not waste time following every blog and trend. It is far easier to look at the shops and reviews to see what people actually enjoy playing, and what demographic goes for what game.
Artwork – it is helpful to have more than one person on 2d artwork, and some experience of machinima, as well as photoshop; and texturemaking is useful. Do not pick a perfectionist to work with until you are bored with fiddling with your game, as they will just hold you up and waste your time. Spend some time in Second Life and practise machinima and building to get better at this yourself. It is amazing what you can do just messing about.
3d modelling – A thorough knowledge of the marketplace before you start is helpful. I recommend you spend some time in Second Life or similar, as there are alternatives to the mainstream programmes that are far easier to use and cheaper. Anyone who has spent any significant time with Blender will agree that there are much more pleasurable ways to die.
Game engines – Get to know more than one, so that you have some options. Take careful note of what they expect in the way of recompense’licensing. Look at the games job sites to see what skills are most marketable before you decide which one to learn. Again, spend some time in Second Life, since many of the skills you can learn from classes in there will stand you in extremely good stead with Unity in terms of building, texturing etc.
Scripting and Coding – If you have a friend that is good at this, bear in mind that they need very precise information to give you what you want. You need to list your requirements, not necessarily in order, and then wait for them to figure out how to make it happen. Scripters are amazing, magical people.
Game structure and dynamics – You will get better at this the more games you make. It is a bit like making films. Do not worry terribly much about your first ten. It is more important that you get something done, so that you know what you want the next time.
Animation – there are many ways to go about this, I am mediocre at best, so I will refrain from comment at this time.
Shaders and lighting – considered by many to be the difference between an amateur and professionally made game.
Music – a handy composer is always helpful
I have a very specific idea of how the game I am planning is going to work, but I plan to do it all myself this time, so it will take a while to acquire the relevant skills.
In the meantime, here is my early coding lesson for you to amuse yourself with.
Futile tribute to David Wolfe Caution – does not work in Chrome
The latter build in Second life