I decided the other day to completely strip my game back to basics. Well, I actually started a new project and gradually moved the code I wanted over because I'm obsessive like that and wanted to keep the old code untouched for reference, but I read a very wise article about game design recently and it made the following point which rang loud bells for me.
If your game has lot of badly implemented features, it won't be fun. If it only has a few features but they are implemented well, it will be fun. Simple as that.
Now, a 3D platformer needs to be fun with just running, jumping, maybe using a weapon. I can get that stuff as good as I want by fiddling and fiddling until it is right, but my edge grabbing, edge walking, all the Tomb-Raider style stuff I was doing is never going to be great. There is too much work involved for a sole developer who isn't particularly good at 3D art and animation and it's always going to be sub par.
So I've dumped all the Tomb-Raider stuff and am aiming more for 3D Mario than Lara Croft. Edge grabbing and walking are gone, no fixed distance jumps are in, completely unrealistic free air controls are back and it feels really nice as a result. I'm going to stay focused on getting the core running and jumping feeling as tight as possible until I'm happy, then think very carefully about the next new features to add.
And if my implementation of a feature can't feel great, it gets dumped. This is the new philosophy. Have a very simple set of core gameplay that can be done absolutely right, and dump anything that can't be due to either my own limitations, time/work limitations and so on.
Nice to know I have the scripting system ready to drop it when I'm ready. One large job I have been putting off for years now is adding in texturing support to Charm, my 3D model editor, so am going to force myself to start to tackle that fairly soon, maybe in a very simple way at first. Need to get some inspiration from other 3D software to decide how to proceed on that, but would be nice to spend a bit of time working on the graphics in this incarnation since I'm bored of looking at coloured polygons now.
I have all the tech ready for diffuse and normal mapping, just a case of defining the UVs on the vertices in some interactive way in the editor.
So that's the current state of play. Game is alive, simplified and kicking and plenty planned for the future.
Thanks, as always, for stopping by. Hopefully a more interesting post next time.
Good decision. Fun > realism.
Is scripting definitely coming back? I ask because I've made enough games in Javascript (where "real code" and scripts are the same thing) to realize that too much scripting freedom tends to make a mess of things. In my current game I only have "fixed functions" coded in C++, and my scripts are just declarative data in a simple text format.