Strip back the game

Published February 06, 2016
Advertisement

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.

9 likes 7 comments

Comments

tnovelli

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.

February 06, 2016 09:14 PM
Ashaman73
If it only has a few features but they are implemented well, it will be fun. Simple as that.

I always refer to Antoine de Saint-Exupery:

"Perfection is Achieved Not When There Is Nothing More to Add, But When There Is Nothing Left to Take Away"

It is so true, but although very hard to get rid of all the stuff and ideas. But once you have overcome the desire to protect your time investement (it is a ugly trap), your project will get better biggrin.png

And if my implementation of a feature can't feel great, it gets dumped.

It is interesting to see, that you run through the same decision I made for my game. I don't remember who said it (I think it was the designer of original Sim City ): If it is fun, double it, if it not fun, half it.

since I'm bored of looking at coloured polygons now.

Maybe you should reconsider this biggrin.png Early game developer were able to create games solo or in really small teams due to massive restrictions. Restrictions will help you to find interesting ways to define content. Once you add texturing, normal mapping, complex materials etc. you will have the problem of generating content.

At some stage of my project we had it all in our game: normal mapping, displacement mapping etc. and suddenly we weren't able to generate content in satisfying quality and in time any longer. I dumped this approach and we do only simple textured models now.

Look at this low-poly art: http://kingpolygon.tumblr.com/

So, your approach has lot of potential, with some interesting technical improvement (pre-backed AO, SSAO, GI) your art will improve over night without improving the content creation at all.

Good luck, you are on the right track biggrin.png

February 07, 2016 04:06 AM
Eck
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.
February 07, 2016 05:43 AM
Aardvajk

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.
February 07, 2016 08:05 AM
Aardvajk
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
February 07, 2016 08:05 AM
Eck

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.
February 08, 2016 03:38 AM
Aardvajk

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.
February 08, 2016 10:48 AM
You must log in to join the conversation.
Don't have a GameDev.net account? Sign up!
Profile
Author
Advertisement
Advertisement