Jump to content
  • Advertisement
Sign in to follow this  
mrpeed

Getting over game programming perfectionism

This topic is 614 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

So I find "perfectionism" lately hindering me in my game dev endeavors. Sometimes, I often spend too much time reworking a working solution if feel it is inadequate or if I'm aware of a better way to do it. I get carried away trying to learn the "best" way to do something instead of rolling with the punches and learning as I go along (which is probably a better approach). I also get carried away with language specific detail (is this implemented in the most "pythonic" way, for example). Basically, it boils down to a fear of doing things the "wrong" way. Is there any advice you would give to get over this mindset when it comes to developing a game? I only ask because I find my current approach a hinderance to me actually finishing a project. Thanks!

 

Share this post


Link to post
Share on other sites
Advertisement

Set yourself realistic goals for each day you're working on the project. Write a little todo list. Whenever you finish a point on the list: strike it out. This an important aspect because it boosts the feeling that you actually achieved something (therefore I recommend to do the daily todo list on a paper or whiteboard).

In the beginning you'll probably notice that you tend to put too much stuff on the list. Maybe you'll not even finish a single point in a satisfying way if you over engineer or rework too much. Don't worry, that's part of the process. You'll become better at this because you'll feel good when you strike out something and you'll feel bad if you don't manage to do all the stuff on your list.

Of course it's important that you actually put stuff on your list which helps you to progress.

Stuff like "refactor x", "rework y", "improve z" should only appear on your list if it's absolutely crucial (e.g. if it's a base system and you need to build a lot of stuff on top of it next). In most cases such improvements are not even required. They can be done later when the actual game is "done"/playable as an optimization.

Always keep in mind: Perfect, highly optimized and cleanly engineered code is more or less useless if you never finish the game which uses it.

Edited by Peter S

Share this post


Link to post
Share on other sites

Set yourself realistic goals for each day you're working on the project. Write a little todo list. Whenever you finish a point on the list: strike it out. This an important aspect because it boosts the feeling that you actually achieved something (therefore I recommend to do the daily todo list on a paper or whiteboard).

 

This is great advise. To keep yourself from going back to code chunks to perfect, great a list of acheivable goals that your code must do. This will get you to a working state as well as (magically) give you test cases. What I recommend is something similar to "agile user stories". They essential state a feature that your product must have, then there is a list of what must be done in order to mark that feature achieved. This will help you not only get away from perfectionism, but also write code that meets what you need and nothing more. 

Share this post


Link to post
Share on other sites

Its odd but bugs in our own code annoy us much more than i.e a AAA game we play. For example, knowing my application has some memory corruption or leak somewhere would really irritate me. However so long as I could run i.e Morrowind for at least a couple of hours at a time, I didnt really care. I even saw the crash to desktop bugs as "charming" haha.

 

Self critique can certainly help you improve but know that other people rarely care unless they literally cannot play your game.

Share this post


Link to post
Share on other sites
Its odd but bugs in our own code annoy us much more

Not at all, we strive for high quality results, and we know our code down to the last bit, including all the little corner cases that might arise if you start thinking about it.

This is very much why I can't be bothered to play games where I know the source code in detail, as there is nothing to explore anymore.

 

My approach to avoid perfectionism is to consider all code temporary. It's not perfect, but it does the job sufficiently currently, so it will do for now. There is other code that needs me more than this code, so let's do that first.

Edited by Alberth

Share this post


Link to post
Share on other sites
Yep. Ive also come increasingly aware of this problem I have, as it leaves me feeling I've not achieved much at the end of the day. Then feeling nothing's gonna get finished then so on and so on.

Share this post


Link to post
Share on other sites

One nice way is to design a interface/API for some underlaying library or tools in such a way that you can optimize the hell out of it... later.

 

Just make the interface really nice. The backend code can be the most horrible piece of shit as long as at works reasonable enough for now.

Share this post


Link to post
Share on other sites
I know the feeling of dissatisfaction upon the codes, the feeling of "is this right? would it be a problem later?".
I usually remember that it's not about the code I'm doing, but the result. So I'll focus on the result. When things get slower or tangled, that's when I try to solve it.
If it's about architecture, it has to be designed/thought up first and not during coding (whether it's the whole program or features), until I hit a real problem because of it.

When I'm done, and the code that I worried about is actually not a problem, I'll confidently write it again in later time without hesitation.
This is where colleagues can really help. For example in a project, you and I may face different code problem at the same time, but may have each other's problem in the future.
We can correct this together without trying to solve it ourselves so we don't wander around asking ourselves whether this is okay or not.
It could be just a simple confident booster to keep moving on sometimes. Edited by away2903

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!