# Despondent

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

## Recommended Posts

Hey,

What do you guys do when you've been working for months on a game demo and you still can't run it because you suck as a programmer and can't even get moving bitmaps right which should be the first thing that any decent game writer can do?

Do you just scrap your project when it gets too complicated for you to understand? Or do you just push through? I mean, spend all day staring at the screen level push through, with no support because you work at home type push through... I'm very curious.

I'm literally trying to code, trying to think now, but I can't. Because I can't see the way to solve my problems. How do I make a menu? How do I animate bitmaps and use sprite atlases? How do I maximize performance by minimizing D3D11 draw calls? How do I structure my subsystems to better encapsulate them? How should I implement events? Do I use callbacks? Oh no, my D3D resources are leaking...wait, I haven't even been able to display a bitmap with my program for over a week. I just learned how to use source control for this project so I don't know how to back up to where it used to work, but i don't understand it anymore, so would it be better just to start over?

I have so many other questions, I just want to know what you guys do when you see that you have a LONG, LONG way to go before you can make a game and it is very .... frustrating.?

-Dave

##### Share on other sites
Whoa, there, you need to relax a bit. It sounds like you're overwhelming yourself with too much.

First of all, why are you bothering with source control right now? Source control is great, but when you're just learning it's not necessary. At this moment, you need to learn how to program, and there is simply no need for you to worry about learning to use source control at the same time.

Any time you face complexity, the only thing you can do is to break it down into more simple pieces, and work on them one at a time. Trying to take it all on at once will just lead to frustration.

##### Share on other sites
I guess I'm just going to sleep it off and take it one problem at a time tomorrow. Programming ain't for sissies!

##### Share on other sites
[quote name='JTippetts' timestamp='1352731776' post='5000247']
Any time you face complexity, the only thing you can do is to break it down into more simple pieces, and work on them one at a time. Trying to take it all on at once will just lead to frustration.
[/quote]

In the words of Pólya: "If you can't solve a problem, then there is an easier problem you can solve: find it."

##### Share on other sites
My problems may be more complex, but i'm completely stuck every day
Every day I wonder if I'm ever going to get over [this], so I can move on to something else...
And every other day/week/month I figure out a way
Many years ago simply getting the sprite to show up was such a problem... Everyone starts somewhere
More than anything, once you know how to program, it's all about knowledge, gritting your teeth, and not giving up!
Unfortunately you never stop having to learn something new, and each day is a (new) struggle

To me, the only requirement of being a good programmer is never giving up.. Otherwise I'd be a horrible, terrible programmer

##### Share on other sites
Thank you for those words of advice Mr. Kaptein. I really appreciate them. I will continue to strive towards a solution to the problem (of the day).

##### Share on other sites
Software development is hard, game development is even harder. There is so much to learn, so much complexity to understand.
This is what makes it so appealing, for me anyway. It is the ultimate challenge. When I get bored with my 9-5 developer job, I go home and build games and it makes me happy - even when I am infinitely frustrated with my lack of skills in this area.
Don't give up, keep grinding away, every failure is a lesson learned, and you're improving your knowledge (even if it doesn't feel like it at the time).
You can do it! I believe in you!

##### Share on other sites
I'm not an expert. I'm learning, just like you. I keep bouncing back and forth between pulling my hair out and doing a happy dance around my living room when I figure something out. lol

What always helps me when I get stuck is to write out the steps I need to take. In English. Forget the code. Just jot down what you need the code to do and then translate it into code. If you can explain the steps with words, you can figure out how to code it.

What you'll often discover is you didn't really understand the solution to the problem like you thought you did. So you can go learn how to do that one thing you didn't understand and bam ... the rest becomes clear.

And don't be afraid to play around with paper and physical objects. I couldn't figure out pixel perfect collision detection until I drew a grid on a couple of index cards and physically overlapped them to figure out what I really needed my code to do.

Roy

##### Share on other sites
The trick, for me, has been knowing that there are many ways to go about accomplishing any given task. Perhaps starting over is the key, and doing everything 'different' for once.. Sometimes I find myself wanting to implement so much functionality and so many features that programming itself becomes overwhelming. Take it easy, one step at a time. Make a basic prototyping program for each thing you want to accomplish - like drawing a bitmap, playing a sound, etc... Figure each thing out independently and integrate the solution you devise into your actual project as you go along. Some of us tend to overcomplicate things by intending to do things 'properly'. I hate the majority of available software because all I ever see is what's wrong with it and what I would have done different to make it better, but we are all just humans trying to create machines, and not machines making machines (yet). If your code/project doesn't meet your standards, lower your standards, because you (we) won't be able to do any better until you (we) are able to meet a lower standard first. If you're not enjoying yourself, then you're doing it wrong.

##### Share on other sites
[quote name='KingofNoobs' timestamp='1352729989' post='5000239']
Do you just scrap your project when it gets too complicated for you to understand?
[/quote]

Yes.

If I get to the point where I don't even have an [b][i]idea [/i][/b]of how to solve the problem, I stop. The problem is way above my head and I need to learn/practice more in order to deal with it.

##### Share on other sites
[quote]
What do you guys do when you've been working for months on a game demo and you still can't run it because you suck as a programmer and can't even get moving bitmaps right which should be the first thing that any decent game writer can do?
[/quote]

If your focus is to ship a game, I'd switch to simpler development tools. With Unity3d, Panda3d, Torque, or UDK you can have a sprite moving in hours.

Alternatively, consider picking up a book on developing with the game or graphics engine of your choice that includes a chapter on moving sprites. That way, you'll know that when you reach chapter N, you'll be able to do that, and likely develop many helpful skills along the way.

[quote]
Do you just scrap your project when it gets too complicated for you to understand? Or do you just push through?
[/quote]

Neither. I simplify it using tools like modularity, documentation, and loops until it's easy to understand. I strive for objects and methods that are so simple I could (and do!) explain them to non-programmers. Simplification is precisely why I've successfully assumed projects where others gave up and produced something marketable from them. Edited by CuriosityKills

##### Share on other sites
Thank you all for your support. I just want to let you know what I plan to do. I have decided to devote several hours a day to learning Unity, so I can learn a high level approach together with a low-level one. But I have had some epiphones in the mean time and Im going to try to fix up my C++ implementation. One of the problems that I was having was not knowing where to place assets, and now that I have learned a bit about RTTI, reflection, and serialization, I have decided to just use simple LoadAtlas() and LoadEntities() functions in the Enter() function of my applications state machine. This should just automatically load up the needed bitmaps and I can focus the rest of my energy perfecting the input subsystem to get these things moving as well.

Easier said than done, but through reading some good books and doing some deep introspective thinking, I think I can have my cake and eat it too! I`ll let you know when this stage of the project is complete, and will upload code and/or binaries for your use/perusal.

Thanks again.

-Dave

##### Share on other sites
I have to second CuriosityKills's suggestion. What is your desire? Do you really want to make the engine, or do you want to make a game. There are too many tools available, and in general they do things for you so you don't have to. For example, Game Maker(silly name, but works great) handles all of the sprites, etc... You don't have to do any loading, drawing, collision tests, any of that, and instead you program the game's logic, which saves tons of time.

##### Share on other sites
Wait, you learned about C++ RTTI and somehow missed the entire thing where it's completely broken/useless?

##### Share on other sites
LOL Telastyn. (So true.)

OP, it sounds like you're just getting too far ahead of yourself. In my experience it's better to pick up a new concept and get completely comfortable with it, then move on to the next one. Don't distract yourself with implementation madness while you're trying to learn something new. Create a new project and use the new tool/concept in a small program that focuses on just that one thing. Once you're done with it just zip it and put it in your archive as a reference on that subject for later use. A year from now when you feel downcast again just thumb through the old archives and you'll be able to see how very far you've come.

##### Share on other sites
times like these you stop for a few days or a week and hang out with friends..
Works for me.