# Losing interest in game development...

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

## Recommended Posts

The real trick is to avoid throwing everything out and starting over, and instead learn to apply refactoring rules to your existing code base. When you become a professional developer you refactor code about 10 times for every 1 time you write something totally new (and usually you are refactoring someone else's work).  This should also help keep you motivated, because by doing this, you'll always have something working to look at and tweak. Nothing sucks more than working for 3 weeks straight just to draw a triangle on screen.

This brings me to the next point, always try to get whatever your working on up and running as quickly as possible. This way, you always know if what you're doing is worth the effort (plus you actually have something to show off). In the industry, I believe this is called "Vertical Slicing".. correct me if I'm mistaken.

Lastly, the reason why programmers are paid so well is because we use our heads. Before you start blindly typing away in your IDE of choice, take a minute to conceptualize the system you're developing, what pieces make it up and more importantly how they fit together. See the pieces, see their relationships and then the implementation takes care of itself. Weigh the pros and cons and contrast the different ways of building the application to find the one that fits your needs best. You don't have to know every single way to design an application, just be aware that there is more than one, three or even fifty ways.

##### Share on other sites
Being able to finish projects, however, is an important skill in life, and you should try to get that under control. Don't try to finish all the projects in your list: Finish a single one, and then think of what the next one should be. I probably suffer from some version of adult ADD, which I fight by making to-do lists, putting entries in Google calendar, setting up cell-phone alarms... Oh, and I also married a woman with a very good attention span. You should find what works for you.

I have finished programming projects before, but there's always that stage of when you think of a new feature and you want to put that in there because it will make it better. Or just general maintenance of keeping everything up to date, i.e. better ways of doing things, new language features that you want to implement in a library, etc.

About programming with someone else's code, that's what programming is about. I didn't realize this when I was 17, but programming almost anything in the real world involves several people. Knowing how to code is not a big deal; knowing how to work together to get something built, that's where the real skill is. You should try to find someone to collaborate with in a project.

Oh I would actually love to, but no one around my age (where I live) knows how to program. Some of my friends have programmed before, but I wouldn't call them actual programmers, plus they don't take is as serious as I do.. I guess I could find someone online, not sure... or I could participate in an open source project.

I believe the unemployment rate for programmers is low. Unless you need the money in a rush, I wouldn't worry too much about it: It will come.

I know money will eventually come, I'm just a little bit impatient when it comes to money. Plus, I've noticed that I get things done faster without money as a factor, which is odd (you'd think money would be "motivational"). I've been trying to make my games for iOS for quite some time, but I've made plenty of other projects (at school, specifically, with C# and Unity)

Peter Norvig (head of research at Google) has some good advice on how to go about learning programming, at a level of detail similar to this conversation. Perhaps you can get something out of it.

I've seen this link on the ##c++ channel on IRC before, but thanks for the reminder about it.

You aren't failing. This is all totally normal for programmers. We don't get good at planning until we've written tons and tons of code, most of which must be rewritten.

Do you know why we rewrite code? Because we've learned things which allow us to envision better solutions. If you're rewriting your code, it's because you're improving your skills.

Along the way, you're learning things about a ton of different facets of games - rendering, input handling, gameplay flow, object organization, etc. You're also developing better general programming skills. Think about everything you know now that you didn't when you started. Think about how many different pieces you've learned to put together at once. This is a sign of success.

Don't get depressed if you think you aren't progressing; Game programming is probably the single most complicated thing a single person could possibly achieve.

Thanks for that, seriously.

##### Share on other sites
The real trick is to avoid throwing everything out and starting over, and instead learn to apply refactoring rules to your existing code base. When you become a professional developer you refactor code about 10 times for every 1 time you write something totally new (and usually you are refactoring someone else's work).  This should also help keep you motivated, because by doing this, you'll always have something working to look at and tweak. Nothing sucks more than working for 3 weeks straight just to draw a triangle on screen.

This brings me to the next point, always try to get whatever your working on up and running as quickly as possible. This way, you always know if what you're doing is worth the effort (plus you actually have something to show off). In the industry, I believe this is called "Vertical Slicing".. correct me if I'm mistaken.

Lastly, the reason why programmers are paid so well is because we use our heads. Before you start blindly typing away in your IDE of choice, take a minute to conceptualize the system you're developing, what pieces make it up and more importantly how they fit together. See the pieces, see their relationships and then the implementation takes care of itself. Weigh the pros and cons and contrast the different ways of building the application to find the one that fits your needs best. You don't have to know every single way to design an application, just be aware that there is more than one, three or even fifty ways.

Rushing sometimes always backfires on me, depending on how fast I "rush" it. Typically if I rush after realising I've spent the whole day doing nothing... but, of course if I actually work on my project(s) then perhaps that wouldn't happen.

##### Share on other sites

Heck yeah I know how you feel :)

Best advice I can give is to start a new project, and make it small. Not Hello World small, but like, Tetris small. But probably not Tetris, because that's just so overdone as a beginner project that it would feel like a chore to make.

My first real completed project was a demo on GBA, in the old 80's demoscene style. Tons of fun, and great because it's more of a collection of micro-projects (each individual effect) strung together, so it's easier than a game, where all the code has to work together at the same time. I was 19 at the time, and I took my first programming class at a local community college when I was 16, I think, so that might tell you something about my own ability to choose appropriate sized projects before then

Due to a lucky confluence of events, I landed a job at a GBA/DS development studio a few months after that. Wonderful experience. Great people, and fast timelines. Pretty much a game a year, so I quickly learned how large projects get done... which is mostly a matter of not fizzling out in the mid-game. Just keep working 8 hours every weekday, week after week, and eventually it starts to look like something. Then for the final stage, spend every waking hour tracking bugs and devising brilliant solutions, stopping only to eat and sleep so you can get your mental strength back

But eventually I got tired of making other peoples' games, quit, and moved back home where simple survival is cheap, so I can focus on the artwork and not the money. Unfortunately, it turned out that despite my awesome code (and art) skills, I'm still not very good at game design, and my own project didn't get all that far. Plus I was still kind of frazzled from the physical strain of sitting in an office chair for 8 hours a day for 5 years, so I took up acoustic guitar building as something more physical to do, and have been enjoying that for the past few years.

But now my body and programming brain are fully recovered and hungry for action, so I've been writing up a story for a quick and dirty FF1-style RPG, which I'll be making this summer when guitar building season is over (that is, winter, when the humidity is low). Making an RPG has always been my dream, and even though this won't be the epic story I've been plotting on since the beginning, it should be a lot of fun as a learning project. And making simple maze-like RPG maps is something I have done before, so there shouldn't be too much risk of design fizzlage. With luck, I'll be able to make the necessary modifications to my map editor and whip up most of the game code in a couple months, and then spend the next year making all the art, maps, and music :)

So... that's my story so far. 13 years in, and I still haven't finished a large scale game project of my own design. But I'm very happy with my life, have no regrets, and the future remains bright.

But there are lots of things to do in life other than video games, if you're honestly bored of it. And if you want to have a wife and kids, you'll pretty much have to work at a medium/large studio on other peoples' games to make enough money, especially if you have a college loan to pay off. So it really depends on what your core personality desires out of life.

##### Share on other sites
Do you know why we rewrite code? Because we've learned things which allow us to envision better solutions. If you're rewriting your code, it's because you're improving your skills.

This person gets it completely. Coding is about constantly evolving your product.

Has anyone ever felt some-what of what I'm feeling? Does anyone have advice for me? Should I be in such a rush to get things done at my my age? Or Should I just give up, and move onto something else? Such as: programming applications with Qt, web programming, or perhaps security penetration testing (i.e. ethical hacking), or whatever else. I'm just not sure what I want to do when I'm actually a programmer, I love low-level stuff, but I'm not sure.

People get depressed, tired, lose morale... it's all pretty common. Here's some advice:

• Stick it out,
• Put in a constant effort (do something every day, even something small).
• Keep a notebook of your ideas
• Play games! (See what others do right, learn from their mistakes and also take the time to relax)
• Have a life outside gamedev! (remember to have friends and keep other people around you)

It sounds patronising, and I shudder to say it but you're young! At 17, you're still young enough that you should just be powering along and building up your skills. The general consensus is that it takes 10,000 hours of an activity to make someone into an expert - that's a lot of hours!

Edited by Noble Kale

##### Share on other sites
Heck yeah I know how you feel

Best advice I can give is to start a new project, and make it small. Not Hello World small, but like, Tetris small. But probably not Tetris, because that's just so overdone as a beginner project that it would feel like a chore to make.

Would working on multiple projects at the same time be a good idea?

My first real completed project was a demo on GBA, in the old 80's demoscene style. Tons of fun, and great because it's more of a collection of micro-projects (each individual effect) strung together, so it's easier than a game, where all the code has to work together at the same time. I was 19 at the time, and I took my first programming class at a local community college when I was 16, I think, so that might tell you something about my own ability to choose appropriate sized projects before then

The main problem I have is just getting all the niffy details in my code to be completed. e.g. font rendering, which is a pain in the ass to do (still haven't actually implemented it).

But there are lots of things to do in life other than video games, if you're honestly bored of it. And if you want to have a wife and kids, you'll pretty much have to work at a medium/large studio on other peoples' games to make enough money, especially if you have a college loan to pay off. So it really depends on what your core personality desires out of life.

I'm not sure if I'm entirely bored of it, it's just I feel like I can be doing other things that might lead to me being more successful. I want to try art/design as well, I have done graphics design previously, although I'm not really that great of an artist. Thanks by the way. And if I were to do a programming project that's not really related to video games, I'm not sure what I'd do, other than remake music players, browsers, etc.

People get depressed, tired, lose morale... it's all pretty common. Here's some advice:
• Stick it out,
• Put in a constant effort (do something every day, even something small).
• Keep a notebook of your ideas
• Play games! (See what others do right, learn from their mistakes and also take the time to relax)
• Have a life outside gamedev! (remember to have friends and keep other people around you)

It sounds patronising, and I shudder to say it but you're young! At 17, you're still young enough that you should just be powering along and building up your skills. The general consensus is that it takes 10,000 hours of an activity to make someone into an expert - that's a lot of hours!

I don't really play games as much as I used to. Perhaps I should play a little here and there just to get my mind off of things, but not too much of it. Thanks for the advice.

##### Share on other sites
Would working on multiple projects at the same time be a good idea?

This probably isn't good idea, in a sense that you may neglect on of the projects. But then again you might learn more by doing this if projects are different in more then one way.

I would also advise to play games. This helped me many times to get my motivation back. Not exactly latest AAA games, more of those that introduce nostalgia. Those games could probably make you motivated to make you own but better game.

##### Share on other sites

I think you should completely abandon game development forever... and you will be back sooner or later. I did that once due to lack of inspiration, and three months later I had new ideas, recovered all my inspiration, and I found the fun in game development again.

##### Share on other sites
I'm not sure if I'm entirely bored of it, it's just I feel like I can be doing other things that might lead to me being more successful.

Your brain says: "This guy have been doing this stuff for X year, he has put in huge amounts of energy and time but still its not getting us anywhere. Im gonna give him bad feelings while hes doing this stuff so hes gonna move onto something more productive eventually."

-you need to finish things. Writing an engine and all your own stuff is just a little portion of making a game.

-scale down your projects. Not after youve finished your current projects!! Start a new one right now. Something you can finish in 2-3 months completely. The menus, the audio, sounds, physics, art, gameplay, levels ....everything. It doesnt have to be perfect, it doesnt need a stable engine ....it just have to be finished.

(If at first it feel like that game would be a huge regression compared to what you expect from yourself and what you are capable of ....thats normal. Do it anyway)

the wanting to do everything from scratch when it comes to gamedev with C++ doesn't really help me with getting things done quicker

-now you know this already. so you dont have to keep doing it. Now you need to get your motivation back so do the necessary and fun parts from scratch and for everything else get prewritten stuff. Dont keep saying: "Yes but I trust my own more. I want to understand and know exactly how it works.  My own would be more flexible. I feel like Im cheating with this. etc"(or maybe you are doing it for other reasons. Im just guessing)

-you said you are not good at planning. Planning and managing your time and projects is fun ...but you cant choose big projects and you have to enjoy the little victories.

-maybe instead of creating the tools and stuff that make the game possible, work more on the game itself, ...like the levels and the art.

-dont focus on money and success. If you dont enjoy making games now, you wont enjoy it when you are making money and "success" with them.

-yes, you are in a rush. You cant make all those great games + write your own everything in 2 years. Im not saying you need 5 more years of hard work then youll be able to do bla-bla-bla. Have fun with it now. Scale down your projects and finish them ....that way youll see your own progress.

-you shouldn give up gamedev but maybe you need a little rest from it and/or a huge change in how you`re seeing and doing it

You didnt say what are your longterm plans with gamedev. Do you want to get a gamedev job after the university or do you want to make money from your own games?(Not that I knew that when I was 17, Im just asking:D)

Read these articles, they might help + they have great info:

##### Share on other sites

I can relate to this topic very well, and I can share bits of my story:

Game programming has interested me ever since I got my first computer. At the beginning of high school, many years ago, I started learning OpenGL and more advanced graphics techniques. With a few friends, we started a very ambitious first person shooter project with very little experience. I thought I could implement all the fancy stuff I read about, such as per-pixel lighting, dynamic shadows and so on, even though these were emerging techniques at the time and robust implementation was very challenging. The focus started shifting more and more towards making a 3D engine, not a game. I wrote a lot of code. Not having a good idea of how things will eventually connect, I often ended up with a bloated and non-inspiring code base. Then I rewrote all. Then I rewrote all again. And again.

There were many times when I just fed up with not completing the engine or a game and I decided to stop. Designing and programming games, however, always kept lingering in my head, and eventually I have returned to the topic.

Two years ago, after having some break again, I decided that I will start a new 3D game project and I will keep it small and finish it. I wanted to have something complete to show that I can do game programming. The project is still under active development, but I managed to keep it graphically very simple at the beginning, and actually wrote a lot of game related stuff. Then I succeeded in having a playable version running, before starting to add fancy graphics. This is what I should have done many many years ago. But I think I learned a huge amount of stuff and I learned what it will take to implement certain techniques. So when I started this particular project from scratch, I had a pretty good idea how things work.

I guess that the thing about game programming and programming in general, that keeps me being interested in it, is that you can be creative. You can come up with some cool idea, design it, code it and when you get to see your creation, the feeling can be very satisfying.

The other thing, that pinebanana also brought up, is deciding the level to work on. There are so many game and graphics engines, that making your own from scratch can be difficult to justify. Of course, if the aim is to learn and if the game does not need that much technology, making most of the stuff yourself can still be reasonable. But to me it seems that saying "I made this game all by myself" might carry a different weight depending on just how many libraries I used or if I used an existing engine.

I'm not sure If it is a problem for any of you guys, but to me it has started to be increasingly important that a code and a program is usable after, say, 10 years. It seems that 3D graphics schemes and API:s evolve at a huge pace, so ensuring future compatibility can be difficult. If I doubt that the code might not compile or  the program might not run in the near future, this is a major discouragement.

##### Share on other sites

I think it would help if you were to do a project in which you're not taking the lead. A project with a leader.

From what it sounds like, you're setting your own goals and projects, then being disappointing when you don't have the motivation to complete it. If you were to take part in more projects where other people tell you what to do, where you have clear goals given to you and you KNOW what you have to achieve, where you can see the end result you will be getting from the project, then you may have some solid work to your name and will not have the motivation issues you are having because you will be more dependent on other people. Particularly at your age, you will learn a lot more this way and be much more efficient.

So for now, leave it to someone else to worry about all the details you mentioned, and just enjoy being in a game dev' team instead of dumping all the pressure on yourself

##### Share on other sites
Oh, and I also married a woman with a very good attention span. You should find what works for you.

Man, I can't even possibly express how critical this has been for me as well. I'm just simply too lazy and easily distracted. Having someone around who won't take my self-justifying crap has been a blessing. Having a parner, someone who is as vested in your success as you are and who can keep you firmly grounded is extremely helpful.

##### Share on other sites

You sound just like me right now. Personally I feel for ya, and wonder if maybe it's just that time of the year when people loose interest and feel a little down. Right now I am pursuing a career in law enforcement, I think for the time being that will be more rewarding to me. In the future I plan to come back to programming with a new fervor.

##### Share on other sites

Heck yeah I know how you feel
Best advice I can give is to start a new project, and make it small. Not Hello World small, but like, Tetris small. But probably not Tetris, because that's just so overdone as a beginner project that it would feel like a chore to make.

Would working on multiple projects at the same time be a good idea?

Yes, definitely. That's how I did my demo... didn't quit my RPG because that would be too depressing. Just add the demo as a quick side project that I can get done in a couple months for a morale boost (and hopefully some prize money in a compo on gbadev.org... which I did, but mainly due to a poor turnout in the demo division).

Also, Nypyren is right. Even if you don't actually finish your big project, and do rewrite the base of it multiple times, it's not wasted work because you're applying your improved skills every time (which means they have improved... and that's the goal, right?). Eventually you'll have that stuff so internalized that you'll be able to whip out the base of a game so fast, you won't have to worry about using libraries

The main problem I have is just getting all the niffy details in my code to be completed. e.g. font rendering, which is a pain in the ass to do (still haven't actually implemented it).
Are you using bitmap fonts, or trying to do scaleable truetype with outlines and anti-aliasing and the whole deal? Getting bitmap fonts rendering is really easy, at least if you can just blit a rectangle from the font image onto the screen anywhere you want. On a system like GBA, it's either really easy if you use the native 8x8 tile size as your character size, or really hard if you want variable width characters and/or height not equal to 8. But that actually makes it a lot of fun for me, devising techniques to use the hardware to its maximum potential. But bottom line... anything you dread doing, just get it working in the most basic usable form possible, and go back to it after the actual gameplay is done.

Another thing I should mention... I always have been and am to this day, highly resistant to using other peoples' code in my projects. IMO, libraries should be nothing more than a hardware interface. SDL is excellent for that. I don't even use its blitting functions for 2D stuff... just shove my own software rendered backbuffer to the screen at the end of the frame. But it also provides openGL functions, so it's great for 3D too. GBA and DS are even more fun, because the hardware is fixed so you can interact with it directly, no libraries at all.

I'm also big on game longevity. I want it to be as immortal as possible. Thus, cross-platform support is a big thing (again, SDL is great because it's so minimal), as well as open source. Consoles like GBA are even better, because you can write an emulator for it on any kind of computer you want.

##### Share on other sites

This is normal. I could have said the same thing at one point. I still stick to my comfort zone. I switched from C/C++ to java only because of direct PNG support. and I couldn't for the life of me figure out how to load a png with c++.

I never learned 3d and cannot really do the math for it so I am stuck in 2d. OpenGL DX? Pft. Guy I been programming for fun for longer than you've been alive and I still don't know that junk.

##### Share on other sites
Are you using bitmap fonts, or trying to do scaleable truetype with outlines and anti-aliasing and the whole deal? Getting bitmap fonts rendering is really easy, at least if you can just blit a rectangle from the font image onto the screen anywhere you want. On a system like GBA, it's either really easy if you use the native 8x8 tile size as your character size, or really hard if you want variable width characters and/or height not equal to 8. But that actually makes it a lot of fun for me, devising techniques to use the hardware to its maximum potential. But bottom line... anything you dread doing, just get it working in the most basic usable form possible, and go back to it after the actual gameplay is done

True type fonts. I'm sure I can get it done, it's just quite hard/takes time to do, I think. Well at least the last time I tried it, it was hard to find any resources about doing it apart from the freetype tutorial available on their website.

Anyway, thanks for the motivation.

##### Share on other sites
This is normal. I could have said the same thing at one point. I still stick to my comfort zone. I switched from C/C++ to java only because of direct PNG support. and I couldn't for the life of me figure out how to load a png with c++.

I never learned 3d and cannot really do the math for it so I am stuck in 2d. OpenGL DX? Pft. Guy I been programming for fun for longer than you've been alive and I still don't know that junk.

I know OpenGL (the Fixed Function Pipeline; i.e. legacy code). I know most things for OpenGL except: lighting, shaders, bump mapping, multi-texturing and perhaps a few more things here and there. Other than that, I'm comfortable with OpenGL, just I think I try to abstract OpenGL too much than what I should... :l

Edited by pinebanana

##### Share on other sites

This feeling is normal. Complete something to be proud of yourself, this just happens when you see your projects working.

You are young, don't think you are failling. The great things come with time.

##### Share on other sites

[quote name='pinebanana' timestamp='1358068652' post='5021024']
Has anyone ever felt some-what of what I'm feeling? Does anyone have advice for me? Should I be in such a rush to get things done at my my age? Or Should I just give up, and move onto something else? Such as: programming applications with Qt, web programming, or perhaps security penetration testing (i.e. ethical hacking), or whatever else. I'm just not sure what I want to do when I'm actually a programmer, I love low-level stuff, but I'm not sure.
[/quote]

Are you into modding commercial games? With games like GTA4 you can even write mods in C#, maybe something like that will help get your interest back.

Do you have any programming buddies?

Do you post stuff on github for other developers to play with?

The key here is to get other people using your stuff. You'll end up finishing and polishing up your work (Ideally), because other people will be using it.

##### Share on other sites

My problem with what stuff to finish is almost the opposite. I know how to make simple games, have made Pong, Snake and a really simple shmup, but I really wish I can come up with more original game mechanics. Plus I prefer to work more on the "inner" workings of a game, especially graphics engines. I am in the process of making a 3D engine, but I don't know how I feel about using it for just a fancy 3D Snake or shmup if you get what I mean. I don't want to finish most games I start simply because I don't find them novel enough.

Maybe as game developers we sometimes force ourselves too much to be good game designers, even though it's not always necessary to be one. If I release a game to the public, I personally think that I'm expected to make a very fun game, even though I can't come up with many original game ideas.

Currently I am making a puzzle game clone, and in fact I will incorporate the 3D engine in some way, even if it's just something not directly important to the game, like providing backgrounds. Still, it's a clone of an existing game. But I think I could finish it this time, because I am incorporating the graphics engine (something I am putting more effort in), into the game for the sake of a more complete, polished product. It's turning out to be a good challenge, because I can see a real world application of the engine instead of being just a show piece. I am figuring out how to make it more adaptable for this game in particular and how to load it as a library without a fuss.

Basically, my graphics engine is my main passion, and now I am encouraging myself put it to work in a real-world situation. It will help me get through making this game from start to finish, even if the concept has been done many times before.

Edited by CC Ricers