• Announcements

    • khawk

      Download the Game Design and Indie Game Marketing Freebook   07/19/17

      GameDev.net and CRC Press have teamed up to bring a free ebook of content curated from top titles published by CRC Press. The freebook, Practices of Game Design & Indie Game Marketing, includes chapters from The Art of Game Design: A Book of Lenses, A Practical Guide to Indie Game Marketing, and An Architectural Approach to Level Design. The GameDev.net FreeBook is relevant to game designers, developers, and those interested in learning more about the challenges in game development. We know game development can be a tough discipline and business, so we picked several chapters from CRC Press titles that we thought would be of interest to you, the GameDev.net audience, in your journey to design, develop, and market your next game. The free ebook is available through CRC Press by clicking here. The Curated Books The Art of Game Design: A Book of Lenses, Second Edition, by Jesse Schell Presents 100+ sets of questions, or different lenses, for viewing a game’s design, encompassing diverse fields such as psychology, architecture, music, film, software engineering, theme park design, mathematics, anthropology, and more. Written by one of the world's top game designers, this book describes the deepest and most fundamental principles of game design, demonstrating how tactics used in board, card, and athletic games also work in video games. It provides practical instruction on creating world-class games that will be played again and again. View it here. A Practical Guide to Indie Game Marketing, by Joel Dreskin Marketing is an essential but too frequently overlooked or minimized component of the release plan for indie games. A Practical Guide to Indie Game Marketing provides you with the tools needed to build visibility and sell your indie games. With special focus on those developers with small budgets and limited staff and resources, this book is packed with tangible recommendations and techniques that you can put to use immediately. As a seasoned professional of the indie game arena, author Joel Dreskin gives you insight into practical, real-world experiences of marketing numerous successful games and also provides stories of the failures. View it here. An Architectural Approach to Level Design This is one of the first books to integrate architectural and spatial design theory with the field of level design. The book presents architectural techniques and theories for level designers to use in their own work. It connects architecture and level design in different ways that address the practical elements of how designers construct space and the experiential elements of how and why humans interact with this space. Throughout the text, readers learn skills for spatial layout, evoking emotion through gamespaces, and creating better levels through architectural theory. View it here. Learn more and download the ebook by clicking here. Did you know? GameDev.net and CRC Press also recently teamed up to bring GDNet+ Members up to a 20% discount on all CRC Press books. Learn more about this and other benefits here.
Sign in to follow this  
Followers 0
radioteeth

Perfectionism and Programmer's Block

15 posts in this topic

I know too much as well. But about optimization. I made a game and it ran rather poorly on an Android device. I now know what to do to make it run fast on an Android device. So every time I add a feature, I ask myself beforehand:

 

-How much performance will this take?

 

It doesn't make it any better that I'm trying to make one of the more demanding 2D games, one that is fast-paced with a lot of track.

 

But programming itself isn't what's weighing me down - it's design and optimization.

 

In your case, I might recommend trying to make anything. Making things will hopefully get you in the right groove.

 

I knew a guy with similar game making experience to me. We used the same tools, etc. But the one of us doing the most productive thing came down to who was "hot" at the time. "Hot" is a term I use for continually doing something and somehow, in some unexplainable way, doing something constantly can build your mind up for a time to do it even better.

0

Share this post


Link to post
Share on other sites

I actually just signed up to throw in a 'me too' post, as when I read your post Shane I immediately thought, "Hmm, that sounds familiar." as I have that exact issue. I wouldn't say I know all the answers, but I know enough to identify red-flags and see good approaches. So I often spend a lot of time stuck in design-land not really making meaningful progress, or, I implement some pattern or another and then change my mind and refactor it, only to revert it later. Either way, the end result is not much progress. Ironically when I was starting out I made 3 game prototypes, they are fairly diabolical from a code perspective, but hey, there they are, running, working, finished.

2

Share this post


Link to post
Share on other sites

 Just getting into OpenGL 3+ has become a daunting task, trying to implement a highly versatile rendering system capable of everything I can't forsee.

Analysis paralysis hits everyone eventually. If you can't forsee the need, don't worry about accounting for it. Worry about what needs to be done, or as ApochPIQ said, focus on the actual requirements of the project. If at a later date you need something done differently, make a note in your code, and return to it in a later revision.

2

Share this post


Link to post
Share on other sites

I think that there is merit in thinking very carefully about what you do before you do it, just to stress this point. However, it is true that you cannot foresee what you will eventually ask of your code, so the most important thing is to keep to good design principles. It becomes structurally much easier to later modify the flow of execution if everything is nicely encapsulated, and even change implementation details.

 

But best choose one or the other. Either spend an inordinate amount of time planning and thinking before writing anything, or do the basic ground work, and get started - and quickly identify what might need to be changed. That way you make the best use of your time :)

1

Share this post


Link to post
Share on other sites

I will offer another suggestion.  

 

http://amzn.com/0321146530

 

And older book, but it can really help you only write what you need.  If you add some unit tests to your stuff, even if you don't test drive everything (because that's about impossible for the graphics part) you will still be able to re-factor your code when you find the design mistake.  And its probably something new to learn, so that makes it fun.

 

Honestly, once you get enough tests in there, you don't even care about making mistakes.  I find myself all the time doing something I know isn't going to work down the line, but because I've tested everything, I can fix it later. 

1

Share this post


Link to post
Share on other sites

I can relate to this. Since I also fall into this block from time to time I can't give you the perfect cure but what helped me personally in dealing with this is getting busy with other stuff. The urge to focus on secondary stuff too much can be seen as a wrong/deceitful perception of time. In the moment of coding you probably have a lot of time on your hands and there isn't a perceived deadline which ultimately causes any project to fail but in reality there always is (life changes) and you know it. Keeping you busy with various things might remind you how badly you want at least your primary functions to work and eventually it will help you to use your (now perceived as limited) time to make any progress.

 

When in a pinch you will naturally decide to (given that you actually intended to make a whole game in the first place) make a badly looking/performing but complete game with horrible code rather than a well-concepted, feature-rich ressource-management system with fast performing gl calculations that you can only use in a demo-room.

 

If you find that the program you just completed sucks you can always make another one (which will most certainly be better).

1

Share this post


Link to post
Share on other sites


You'll have to experiment to find out how you can teach yourself that definition. No-one can do it for you. For me, it works to consider each new project is a piece (not a whole) that I need to get closer to the "perfect" program. Part of that approach is to believe that perfection is avoiding mistakes;

 

Talk about profound! Life lesson here! 

 

It is so true what you say about procrastination not just being laziness. In fact, before I read this post I have been wondering why it is that I can't finish a project. And I hardly even start a project, because I have this feeling it is not going to be exactly what I want it to be, and then I am going to scrap the whole thing. So indeed, I have been doing parts here and there as the ideas come. Slow process. I mean, all my little projects end up turning into AAA game ideas. So another thing I see is lack of focus

 


I would add that you have to learn to accept that perfection is a process, not a goal.

 

Awesome quote!

1

Share this post


Link to post
Share on other sites

Same problem on hobby projects. Lots of time wasted on figuring out the perfect way and when it becomes obvious that a perfect way doesn't exist, it really kills my motivation.

 

Unfortunately at work nobody will care if you're motivated or if you're perfectly happy with your solution. Things need to get done and they need to get done in time. It tends to help on focusing on the _actual_ requirements. Look at what you really need, not at what you'd like or what somebody might find nice to have. The more complicated you make a problem in your mind, the less likely you'll ever start working on it.

 

Maybe in your case it already helps to set yourself a fixed deadline by which stuff has to work _somehow_. Most of the time, keeping in mind that your first implementation might be ugly and will be changed later can help with better design, because you want to isolate that "ugly" part from the rest as much as possible to keep it from having too much influence on the rest of the code.

0

Share this post


Link to post
Share on other sites


It is so true what you say about procrastination not just being laziness. In fact, before I read this post I have been wondering why it is that I can't finish a project. And I hardly even start a project, because I have this feeling it is not going to be exactly what I want it to be, and then I am going to scrap the whole thing. So indeed, I have been doing parts here and there as the ideas come. Slow process. I mean, all my little projects end up turning into AAA game ideas. So another thing I see is lack of focus. 

 

I feel the same thing, but i have begun to understand that it's on personal projects that i get this feeling. When there is a deadline, i forget everything and i am just developing. So what you need to do, is focus on some small projects and force yourself a deadline. 

If needed, start a blog or something public to declare your goals and update your progress. Thus, you will have another reason to keep going. Hope it helps!

0

Share this post


Link to post
Share on other sites

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
Sign in to follow this  
Followers 0