I am an unfortunate victim of perfectionism.

General discussion about LÖVE, Lua, game development, puns, and unicorns.
User avatar
Sulunia
Party member
Posts: 203
Joined: Tue Mar 22, 2016 1:10 pm
Location: SRS, Brazil

Re: I am an unfortunate victim of perfectionism.

Post 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.
Don't check my github! It contains thousands of lines of spaghetti code in many different languages cool software! :neko:
https://github.com/Sulunia
MachineCode
Citizen
Posts: 70
Joined: Fri Jun 20, 2014 1:33 pm

Re: I am an unfortunate victim of perfectionism.

Post 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.
User avatar
bobismijnnaam
Prole
Posts: 18
Joined: Thu Mar 17, 2016 5:18 pm
Location: Netherlands
Contact:

Re: I am an unfortunate victim of perfectionism.

Post 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.
taart
lc = love.timer -- love.chrono :-)
User avatar
Robin
The Omniscient
Posts: 6506
Joined: Fri Feb 20, 2009 4:29 pm
Location: The Netherlands
Contact:

Re: I am an unfortunate victim of perfectionism.

Post 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.
Help us help you: attach a .love.
Post Reply

Who is online

Users browsing this forum: slime and 246 guests