Losing interest in game development...

Started by
29 comments, last by pinebanana 11 years, 2 months ago

This is more of a rant, but not a rant (if you know what I mean?). Lately, well not that lately, I've been gradually losing interest in game development (specifically programming; I can't do art... so yeah), more and more. I don't know what it is! It's very frustrating.

Perhaps, it's the amount of work that I do that turns out to be quite useless and I have to re-do it all over again. I just keep failing. I just want to know *everything* about game-development, I want to understand how it's done from the ground up. Yet I can't do it! I mean, I can, but I always get distracted, or annoyed at myself because I just can't think of an appropriate design in order to achieve a task. For example, I'm making my own very simple renderer for my game, built in C++. I know I'm leaving half of the stuff out that I could put it in and that annoys me, e.g. texture options (whether to clamp or repeat the texture) or abstracting OpenGL specific stuff (such as Texture classes w/o GLuint directly in them, more data oriented of a design). I REALISE that I could use another engine, like Ogre3D, or whatever, but whenever I do try to use it, I just hate the way that it enforces you to do things their way (plus I find it somewhat awkward programming with someone else's code, unless I've studied it and frameworks like Ogre3d takes awhile to study). But anyway, my game is 2D so I thought why not use OpenGL by itself (probably going to use legacy code because I haven't really learnt about shaders). Another thing, I've made my own entity system, which I know I can really improve but it just gets all out of hand when I try to.

Now, I'm only 17 (last year of high-school this year), didn't turn that too long ago, but yet I want to make money via programming, and the only way that I can think of is: 1. Game Programming and releasing it on the Android/iOS app store (or selling it via a website, 2. being a freelancer programmer (yet most of the skills/experience I don't really have), or 3. Being the next Bill Gates (haha, I'm hilarious). I also want to be somewhat known, and I also want to know a lot, sometimes I just don't have the motivation to learn about new stuff, either that or I'm busy programming.

Hopefully I'll be going to University after high-school, I want to get things done before then though, but before then I want to COMPLETE my projects that I've started, which is hard. I've made a list of what projects I'm wanting to make, but I'm not entirely sure if I'll ever them all done. I'm terrible at planning (the wanting to do everything from scratch when it comes to gamedev with C++ doesn't really help me with getting things done quicker). I've been working on my game for quite some time now, barley got anywhere near completed. (I've got a window open)...

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.

anax - An open source C++ entity system

Advertisement
I don't think there is a quick answer, because you bring up lots of issues. I'll give you my opinion about a bunch of them.

I wouldn't worry too too much about what you get finished at the age of 17. Getting exposure to many aspects of programming through random exploration is probably a good thing.

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. smile.png You should find what works for you.

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.

You should also make sure you go to college and get a good education. Even if you like low-level programming, don't corner yourself and take some Math classes, some theoretical CS classes, algorithms, systems programming... Whatever part of programming you end up specializing in, you'll be much better at it if you have a good general understanding of all the other areas.

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.

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.
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.

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.

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. smile.png 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.

anax - An open source C++ entity system

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.

Thank you for the advice.

anax - An open source C++ entity system

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 laugh.png

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 biggrin.png

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.

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!

Heck yeah I know how you feel smile.png

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 laugh.png

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.

anax - An open source C++ entity system

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.

This topic is closed to new replies.

Advertisement