• entries
    743
  • comments
    1924
  • views
    580362

Strip back the game

Sign in to follow this  

1389 views

sd.jpg

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.

Sign in to follow this  


7 Comments


Recommended Comments

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.

Share this comment


Link to comment
Very solid advice Ashaman73. I totally agree with restricting the awesome realistic graphics for solo. My wife looked into some voxel editors and started producing models I'm proud to have in my game. smile.png

I recently had the privilege of talking to a pro game designers/producers. I was telling them a story about how I had stopped working on my space-trader game because I was pretty far along in the features, but I still couldn't see much fun. I switched gears to a tactical dungeon crawler and after I made decent progress, I definitely saw fun potential. He told me that idea was one he tries to teach to other indie game developers at conferences, and it's also one of the toughest to do.

Share this comment


Link to comment

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.


Yeah, plan is to have scripting working in a big way in this game, similar to how it worked in an old project of mine which was quite successful at the time.

Basic idea is you add physical objects to the level in the editor called ScriptGates, which you place on the map but don't appear in the game. Each has an input and one or more outputs and can either do a simple task - negate its input to its output, pass on its input to its output after a delay etc - or actually run a full Om script with access to its inputs and outputs.

Objects then like doors, say, have an input that opens the door when it is 1 and closes the door when it is 0. Or you can have an invisible polyhedron that, when entered, sends a 1 signal to its output and a 0 when you exit.

It was quite amazing to me how easily you could then create very complex level behaviour with this visual and visceral system.

Share this comment


Link to comment
Thanks for the other comments. Makes me even more certain I'm on the correct track here now.

Much appreciate you taking the time to confirm my thoughts smile.png

Share this comment


Link to comment

Objects then like doors, say, have an input that opens the door when it is 1 and closes the door when it is 0. Or you can have an invisible polyhedron that, when entered, sends a 1 signal to its output and a 0 when you exit.

It was quite amazing to me how easily you could then create very complex level behaviour with this visual and visceral system.


That sounds really slick. It reminds me of Creatures 3 which had something similar, only the objects WERE physical objects in the game. So you could say have a gun turret that fires when it gets a signal. Then you could hook up a motion detector which would send a 1 when it detected motion. You could also wire it up to an AND gate to another component that would detect when a selected creature type was in range. Then your friendly creatures could walk around unharmed, but when an enemy creature walked up your gun turret could light them up.

Share this comment


Link to comment

Objects then like doors, say, have an input that opens the door when it is 1 and closes the door when it is 0. Or you can have an invisible polyhedron that, when entered, sends a 1 signal to its output and a 0 when you exit.

It was quite amazing to me how easily you could then create very complex level behaviour with this visual and visceral system.


That sounds really slick. It reminds me of Creatures 3 which had something similar, only the objects WERE physical objects in the game. So you could say have a gun turret that fires when it gets a signal. Then you could hook up a motion detector which would send a 1 when it detected motion. You could also wire it up to an AND gate to another component that would detect when a selected creature type was in range. Then your friendly creatures could walk around unharmed, but when an enemy creature walked up your gun turret could light them up.


Yeah, the last project I developed this system on was a mix of physical and non-physical objects, so you'd have inputs and outputs on doors, spikes, fireball shooters etc, and also a collection of non-physical gates that were shown as physical objects in the editor but not shown in the game.

The non-physicals were things like a timer that sent its signal on after a delay, or a splitter that took an input and sent it on to multiple outputs, or a not gate that just negated its signal and so on.

So you could build really complex behaviour out of collections of these. Would love to implement the same thing in a 3D world this time, previous project was a 2D sidescroller but principle is exactly the same.

Share this comment


Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now