Page 2 of 2

Re: I am an unfortunate victim of perfectionism.

Posted: Mon Mar 28, 2016 3:52 am
by Sulunia
Welp, my problem is actually different.

I begin coding a game... Everything looks good. After a while, things begin to look weird. Finally, the code looks like a spaghetti mess. And, hey the game works right? But it's a shame i can't develop anything else for it, since codewise everything looks messy.

I mean, last time i looked into a source code i made there were even unused vars, wtf?
This pisses me off to the point i just abandon it.. Until i begin another project.. And so on.

Re: I am an unfortunate victim of perfectionism.

Posted: Mon Mar 28, 2016 11:09 am
by MachineCode
Part of the problem may be that the design process is probably a steeper learning curve that actual programming. If anyone sits down at their computer and starts trying to design a big project like a game, they will almost certainly run off the rails. It is just too big a job to succeed at with just a top-down monolithic process.

Design can be top-down, bottom-up, middle-out and various combinations in between. Sometimes you can't see the big picture, so rather than banging your head, you should go down and work at the bottom or middle for a while. Any game or software project is made up of lots of parts, tools, libraries etc. They all need getting under your belt, so you need to do them sometime. Fortunately, Lua and Love2d is one of the best prototyping platforms around, so it's easy to spend a few hours and test a prototype idea. This actually fits in with the attention span problem - open lua in a terminal and load a library and poke around with it. It is instant and you actually learn a lot.

The next idea you might find a bit of heresy. Regardless of how much you know about programming and computers, the best design tool is a pad of 5mm graph paper and a pencil. It is absolutely immediate - no delay - and you can draw ideas, blocks whatever. You can try out as many ideas as you like and it is almost free. If you have any ideas for any program, try drawing a sketch of what a few screens would look like. You can weed out bad ideas really quickly. It is not good to spend time on bad ideas, so you need to work out a way to eliminate dead ends with the least amount of grind.

Re: I am an unfortunate victim of perfectionism.

Posted: Mon Mar 28, 2016 7:15 pm
by bobismijnnaam
MachineCode wrote:Design can be top-down, bottom-up, middle-out and various combinations in between. Sometimes you can't see the big picture, so rather than banging your head, you should go down and work at the bottom or middle for a while. Any game or software project is made up of lots of parts, tools, libraries etc. They all need getting under your belt, so you need to do them sometime. Fortunately, Lua and Love2d is one of the best prototyping platforms around, so it's easy to spend a few hours and test a prototype idea. This actually fits in with the attention span problem - open lua in a terminal and load a library and poke around with it. It is instant and you actually learn a lot.
I especially second the bottom-up part (at least as I understand it). A great example is Casey's/Jon's "Semantic Compression": http://mollyrocket.com/casey/stream_0019.html. I don't have a full grasp of it, but from what I've gathered it basically says this: Make it work, then take a step back to find patterns. If there are (and they are repeated many times, like at least 5 or 6 times), formalize them (refactor into a function/class/data/macro or some other construct). Rinse and repeat. I've tried to gamedev like this the past year and while it is not always applicable I think it manages to reduce my urge for perfectionism by promising to make it perfect later on. It's a nice balance of making things perfect on one hand and arriving at a functioning end-result on the other hand.

Re: I am an unfortunate victim of perfectionism.

Posted: Mon Mar 28, 2016 11:55 pm
by Robin
I know that perfectionism feel.

Some other ideas that might work for you:
  • Make a lot of small games. Set yourself a really short time limit for each of them so that you can't get sucked in too much with the perfectionism. Get in the habit of releasing things because you want to release them, even if they're not perfect.
  • Make something deliberately as bad as possible. Use globals. Leave in things that will probably cause bugs later. Make it a game to make it as bad as possible.
  • When you're making something, set a deadline. Before that, you can be as perfectionistic as possible. After that, you make a list of things you want to add or make or improve or whatever, and you pick three of them. You do those three things, and then you release your game.