Jump to content

  • Log In with Google      Sign In   
  • Create Account

How to not become overwhelmed....


Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
27 replies to this topic

#1 CinoGenX   Members   -  Reputation: 172

Like
3Likes
Like

Posted 09 July 2012 - 06:40 AM

Hi All, new game programmer here…

Trying my best not to fall into one of the almost inevitable new programmer spam posts, so please bear with me, I’ll probably fail.

After spending hours/days going through the myriads of help request threads and the almost programmable “do x,y and definitely z” responses…. I’ve laid out a path for myself moving forward.

I’ve, of course, ignored seasoned advice and started off with C++. Intending on moving to a 2d library when ready, and deciding on where to go from there after creating a few games at that point.

I’ve been a good little noob and started simple, got myself 4 or 5 C++ books and I’m starting small with games such as tic-tac-toe and other such console games.

So far so good….im gaining the basics of my language in a simple gaming context and I’m happy so far.

But then, I’m kind of not.

The more I look at game programming the more the rift between what I’m doing and what’s needed is growing.

So here (finally) is my question. Does anyone have any recommendations for how to not become overwhelmed? The gap between what im learning and the knowledge needed for a commercial game is so big that every time I see another post on some complicated game related question… my heart sinks just a little.

Now I know people are going to give nice generic replies like “start small, take baby steps” etc. But can anyone help with their experience of how they moved forward. An actual proper account of what they did to end up where they are.

I’m under no illusion that game programming is easy. It seems to be a long hard road which never stops long enough to let you get your footing.

I’m just reaching out to try and get some encouragement on the route forward. I would love to hear the steps seasoned game programmers took to get to where they are.

Does anyone have an examples they can share or links to existing posts they know of?

Any help would be much appreciated. Sorry for wall.

Sponsor:

#2 Inuyashakagome16   Members   -  Reputation: 835

Like
1Likes
Like

Posted 09 July 2012 - 06:50 AM

I would say, don't try to get too far ahead of yourself. Lets say you read 2 chapters of one of those books a day, after you're done with those 2 chapters, make small programs with what you know for a day or two so that you FULLY understand what you're looking at.

When I was going for my degree in CIS I had a C++ class that was only 12 weeks. Those were the worst 12 weeks ever. Why? Because we were forced to PUSH through half of the book. Much of what I've learned in those 12 weeks it took me another year to 2 years to fully understand because I couldn't keep up with what they were trying to tell me. Now that I have personal time to play with C++ I can learn it at a decent pace so it won't be too tough to get through.

If lets say, you start making a game you've had an idea for but you get stuck and it just gets upsetting to deal with. As with anything else: Take a break. 2-3 days without code won't kill you. Chill out and find something to do and come back to it.

Also, I'm glad you're a noob that understands most of how things work and you're not just "I wanna learn games help me now". +1

#3 rnlf   Members   -  Reputation: 1185

Like
0Likes
Like

Posted 09 July 2012 - 07:04 AM

I think, I did just what you proposed: take baby steps. Experiment. Learn on technique/technology at a time. I really takes years to become a decent programmer. If you accept that and work your way from small projects to more and more complex games, you will most likely find your way much smoother than it looks from the beginner's perspective.

If you keep your projects and the increase in complexity between your projects small enough to actually finish them (something I'm very bad at), you will gain all knowledge you need in time.

Just don't care about fancy 3D graphics and high definition surround sound, high performance network code sound at the beginning. Just make your small projects. You will see, what works nicely and what doesn't and in your next project, you will be able to build on that experience and have more time to focus on the next level.

In a small 2D-game, you can learn a lot about basics that still apply to polished 3D games. You learn about coordinate systems, image loading, double buffering, on screen pixel formats, input handling, game states, sound...

Once you reach a certain level, you will notice, that there are some things that you may perhaps never accomplish alone, because they are just to much work. That's when you will most likely begin looking for a team (and you may by that time actually be of use to your team).

My way was to start a little 2d game and do only the most crucial parts: graphics output and control input. Then I added smaller parts, just what I wanted to do then, like simple sound effects, fancier graphics etc. Sooner or later, I felt, my skills had increased so much, that I could not stick to my old infant code and started over with the next tiny project, but this time equipped with a bit of experience and self-written example code to work with.

Oh, and studying computer science helps, too ;-)

Hope that's of any use for you. How to not become overwhelmed: Don't let it overwhelm you, accept that you will never code the next AAA game alone and be happy with what you actually can make.

my blog (German)


#4 ASnogarD   Members   -  Reputation: 212

Like
0Likes
Like

Posted 09 July 2012 - 07:06 AM

Its not that huge a step from C++ basics to a graphical 2D game, once you have a firm grasp of pointers, classes, OOP... you can try a 2D library like SDL or SFML and can make a simple tile based game, I used LazyFoo's SDL tutorials and was able to take those tricks I learnt and make a tile based game that while not good used a lot of usefull tricks... collision, scrolling , player controls , game states , animation , sounds , text , timing ...

Check out Foo's tutorials here : http://lazyfoo.net/index.php ( stuff is a bit old now but it still works and is easy enough to update once you take the time to understand the idea )

There is only a video of my RC1 left from my little game ( I have the source here on my PC, but the download link died a while back ).

http://www.youtube.com/watch?v=Nserj0a29UU&feature=g-upl

It really is a case of baby steps, but each step is also a stepping stone to more stuff and soon enough you gain confidance to try out harder stuff which lead to more... just dont hold your breath waiting for EA or Activision to send a limo to pick you up for thier design staff Posted Image


EDIT: my seplinilg scuks :P

Edited by ASnogarD, 09 July 2012 - 11:24 AM.


#5 jimobama   Members   -  Reputation: 89

Like
-3Likes
Like

Posted 09 July 2012 - 08:03 AM

I want to know if i can draw my owner controls with Opengl , Without using window Control i am New to Open Please help me Out Thanks In Advance.

#6 Serapth   Crossbones+   -  Reputation: 5755

Like
1Likes
Like

Posted 09 July 2012 - 08:48 AM

As has been covered many times already, and as you seem to know by your first post, baby steps.

Just keep your head down and learn the next thing, don't bother taking a look at the big picture for quite a while. I had someone sit down beside me, watching me do something I consider mundane recently ( I think I was manually configuring IP configuration or something ), and to that person what I was doing was just black magic. How did you know to put 255.255.0? How did you know to put 8.8.8.8? How did you know to put 192.168.2.1? Etc... etc... Of course, you probably know exactly why I entered each one of those pieces of information... but how did you acquire that information? Years of experience, that's how. Programming is really no different. At first what seems like such a massive subject, will in time become as intuitive as configuring a networking adapter.

Now back to the subject at hand, when you get to the point you feel pretty comfortable with C++, and have mastered console applications and have a basic understanding of the language, try running through this tutorial. It was written for exactly that purpose, to take someone that has a good understanding of the basics of C++, and then implement a 2D game using SFML, all the while demonstrating modern C++ is a non-abstract way. So if you are having trouble grok'ing the value of inheritance for example, this tutorial might help. Also, the next *MAJOR* tripping block you are going to have is configuring the linker to work with a 3rd party library. So this tutorial goes into a lot of detail on that subject, but provides preconfigured projects in case you can't get it working.


Again, keep at it, with time and effort, it will all come together. Just don't get focused on, or even pay attention to, the bigger picture. Yet.

#7 Shikamaru   Members   -  Reputation: 129

Like
0Likes
Like

Posted 09 July 2012 - 10:28 AM

I too had this happen to me while using C#.. I was offered the same advice as the others above gave you.. Its a broad subject but it gets easier.... I'm now stepping into c++ to take the long journey that hopefully in the end i'll land ashore at a game development company.. in a year if you keep at it and progress steadily, look at this topic and where your at(at that time) and remember how far you came. the journey is a long one but it is not an impossible one.. to practive your skills with C++ try these as you learn http://www.cplusplus...articles/12974/

Edited by Shikamaru, 09 July 2012 - 10:39 AM.


#8 RedBaron5   Members   -  Reputation: 581

Like
0Likes
Like

Posted 09 July 2012 - 11:00 AM

Hello. First time poster here.

When I decided that I wanted to make games I started by "trying" to learn C++. I didn't succeed. Then I asked myself what I wanted to make games for. I decided to give Blender Game Engine a try and its incredible how easy it is. Now, if you want to actually work in the industry, this probably isnt the best route to go, but if you feel overwhelmed, the BGE lets you develop games fairly rapidly. (It uses Python which I have found to be the easiest language to learn)

#9 Shikamaru   Members   -  Reputation: 129

Like
0Likes
Like

Posted 09 July 2012 - 11:08 AM

I didn't succeed


I'm curious to know why you didn't succeed?

#10 boogyman19946   Members   -  Reputation: 1078

Like
0Likes
Like

Posted 09 July 2012 - 11:43 AM

I really wouldn't worry about it (getting overwhelmed that is). It's like marathon running. You train to run 8 miles, but you can still train to run 9 or 10 miles. It never ends.

My suggestion is, instead of setting AAA games as your goal, my suggestion is to set your goal as "To maximize the use of programming." It works for me Posted Image Instead of worrying about how long it's going to take me to reach my final goal, I look at the benefits of what I'm learning at hand. This way, I can use the extra motivation I get from the small things to propel my learning towards the big picture without having to worry about it explicitly. Think of the repetitive tasks you do on your computer and try to see if you can automate them with programming. Write a program that solves math formulas so that you don't have to! Whatever you need to do with programming to stay motivated, do it Posted Image

Edited by boogyman19946, 09 July 2012 - 11:44 AM.

"If highly skilled generalists are rare, though, then highly skilled innovators are priceless." - ApochPiQ

My personal links :)
- Khan Academy - For all your math needs
- Java API Documentation - For all your Java info needs :D
- C++ Standard Library Reference - For some of your C++ needs ^.^

#11 laztrezort   Members   -  Reputation: 972

Like
0Likes
Like

Posted 09 July 2012 - 12:05 PM

The gap between what im learning and the knowledge needed for a commercial game is so big that every time I see another post on some complicated game related question… my heart sinks just a little.


Just to put this part in perspective, I've been programming (mostly hobby) for about 20 years, and there are many posts on this forum that I find unfathomable. The gap between what I do and a big commercial game is wider than ever - millions of dollars and a team of artists for starters, and a whole slew of knowledge areas that I am unfamilar with.

But I don't let it discourage me - quite the opposite, actually, since it gives me an endless amount of small problems to tackle and learn about.

#12 Arthur Souza   Members   -  Reputation: 1419

Like
0Likes
Like

Posted 09 July 2012 - 12:06 PM

It's been close to 4 years that I've been actually involved with programming. Time went by so fast that I almost can't noticed now, looking back. Time is the only thing that will get you where you want. Keep working, keep studying, keep moving forward. You'll eventually get there.

A.

Lotus - Action RPG In development http://www.gamedev.n...die-rpg-engine/ |
Personal blog In Portuguese: lotuzgames.wordpress.com |


#13 RedBaron5   Members   -  Reputation: 581

Like
0Likes
Like

Posted 09 July 2012 - 12:27 PM

I'm curious to know why you didn't succeed?

That's a good question. I had a really hard time wrapping my head around the language. I had never programmed anything before and was lost during most of the lessons and tutorials I attempted. I probably just didn't stick with it long enough. I wanted instant results. What I liked about Blender is that you can create a game without writing any code at all by using logic bricks. So I was able to create a complete game (very small one) in a couple weeks. After awhile there were some functions I needed to write code for so I researched how to write python scripts. From there, I began converting everything to python. Now I am fairly proficient with Python. Of course, my goal has never been to work in the industry, I just want to create games for my own enjoyment. Python game programming is more for hobbyists.

#14 Álvaro   Crossbones+   -  Reputation: 13912

Like
0Likes
Like

Posted 09 July 2012 - 12:40 PM

One stepping stone that might help you bridge the gap between simple text-interface programs and 2D game programming is a real-time text-mode game, like 2-player snake. You can organize the program like you would most video games, with its usual main loop (read inputs, update scene, render) and all, But you keep the rendering very simple. Although this game doesn't really need it, I suggest you redraw the entire screen on every frame, because that's closer to what most games need.

Once you finish this project, you basically have the structure of a real 2D game, and then you are probably ready to learn how to use a graphics library. I hope this helps.

#15 Phil123   Members   -  Reputation: 731

Like
1Likes
Like

Posted 09 July 2012 - 08:46 PM

But can anyone help with their experience of how they moved forward. An actual proper account of what they did to end up where they are.


When I first started studying C++, I thought it'd be a good idea to purchase some "Game Tutorials" where it teaches you how to program from the basics up, but it's more game-focused. (Starts out with "Hello world." then moves on to text-based RPGs, RPG map editors, etc). Anyways, long story short, after getting to the tutorial for the first Text-Based RPG in the tutorials and barely understanding what the hell I was doing, I started working through Stephen Prata's C++ Primer Plus book.

Fast forward 4-5 months later without even thinking about programming games, and I'm designing and programming my own text-based RPG. It's currently over 1100 lines of code, has minimal player content (just started working on it last week, cut me some slack Posted Image ), but the greatest feeling in the world is when you're implementing new things into a program, and you click "Compile" and get 0 errors, and it's completely bug free. Seriously, it's like magic - it's like "okay, I want this in my program. /code it, and it works." It's an extremely powerful feeling when you know your hard work and studying has paid off.

I understand everything I'm doing, everything I'm implementing, I think logically before hand as to how I introduce something before I start coding (fail to plan == plan to fail), and how it may affect something else in my program. I'm always looking for new ways to improve my code, whether that's through a new function, or something I learned today (class inheritance), so the learning process just doesn't stop for me.

Am I a brilliant programmer? Definitely not, I'm probably your average computer joe (well, by my standards anyway). Am I a professional programmer? Not yet. Does this mean I won't continue to spend months upon months mastering the craft?

Hell no, I will not stop until I have mastered this language, as well as many others.

Edit: No idea what happened, somehow half of my message was cut off. Fixed though ^^

Edited by Phil123, 10 July 2012 - 02:35 PM.


#16 DZee   Members   -  Reputation: 190

Like
1Likes
Like

Posted 09 July 2012 - 09:22 PM

The more I look at game programming the more the rift between what I’m doing and what’s needed is growing.


Here's the harsh truth, everything that's considering "fun" is complicated and takes hard work. Some small teams have managed to create great indie games trough a lot of time and stress and you know where I'm getting at. It's the humans fundamental approach to life. Why is it that building a sand castle involves more time and knowledge than destroying one?

Have you ever tried creating mathematical models that simulate the action of a car suspension getting repeatedly hit by an external force to see how it behaves trough time? It's a second order differential(linear) function, you need to have knowledge of derivatives and integrals and ideally how to do LaPlace transformations. Why is that so difficult? because the laws that govern are world are complex.

And this is great; because it separates people with willpower and tenacity from the weak. If games like D3 and Skyrim took some guy one night to build we'd be out of work.


All I can say is either you change your perspective on how you see your progress or you might as well quit now.

Edited by DZee, 09 July 2012 - 09:27 PM.

I "surf" the web, literally.


#17 Mike Bossy   Members   -  Reputation: 662

Like
0Likes
Like

Posted 09 July 2012 - 11:05 PM

Becoming overwhelmed by what you don't know or what you have to do is common in just about every field. Game development is no different than anything else. My simplest advice is to focus on the progress and not on the end goal. The reality is that the end goal is going to seem like a very far away place for a very long time. It's like looking down a big long straight road that you need to walk 10 miles down. After 20 steps it's still going to look just as long and you won't see any progress but if you turn around you will see that you're no longer in the same place.

Some practical advice that I use:

1. Have a project ToDo list that you just keep a few smallish items on. Hopefully things you can complete in one sitting. As you finish them you'll get to cross them off and feel like you're making progress. Even the act of adding new items every day can feel like making progress. I like to have my list on me at all times so I can add items at any time of the day. It really helps connect me to the project.
2. Look back at your old work on a regular basis. The will serve two purposes:
a). It will show you how far you've improved. ("Remember when I couldn't even pass a variable by reference!")
b). You will learn new things from your code that you didn't notice when you first worked on them. ("Wow. What was I thinking when I coded a million if statements instead of using a select?")
3. Take a day off from the project every now and then. Without this you will burn out and stop making progress.
4. Stay honest and positive. Admit what you don't know and don't worry about it. Even John Carmack didn't know what a compiler was at one point in his life.

#18 CJ_COIMBRA   Crossbones+   -  Reputation: 832

Like
0Likes
Like

Posted 10 July 2012 - 05:39 AM

C++ or any other languague isn´t just about reading entire books. As you use it more and more you will start to spot the right structure/technique to use in the right place until the overwhelming stuff become natural stuff to you.

About game programming the one thing that helped me a lot is to write and detail as much as possible all features of your game before starting to code anything. Sometimes it´s not possible, for instance when you are in a group, but try to enforce it. You will see that this helps to think of the programming skills needed to acomplish those features. If you picked a feature that turned out to be too difficult replace it or you might not finish the game and get frustrated.

Try one thing (new feature) at a time so you can focus your learning on that, as for the rest, use features you already know how to do.

Good luck!

#19 6510   Members   -  Reputation: 151

Like
0Likes
Like

Posted 10 July 2012 - 06:56 AM

I’ve, of course, ignored seasoned advice and started off with C++.

Alright, you knew about the advice and are beginning to realize the reasoning behind.
Then it's clear what to do now...
A beginner shouldn't need 5 books about a f...... language - they should be about general software development, architecture, best practices, algorithms, patterns, etc.
Languages are interchangable - basic knowledge is not. And you will hardly have enough time to get it all.
There is absolutely no reason to start with C++ , beyond "it's cool, it's what the pros use".
You can still come back to it in a few years.

#20 cold_heats_.--.   Members   -  Reputation: 127

Like
0Likes
Like

Posted 10 July 2012 - 07:14 AM

.I’m under no illusion that game programming is easy. It seems to be a long hard road which never stops long enough to let you get your footing.

I’m just reaching out to try and get some encouragement on the route forward. I would love to hear the steps seasoned game programmers took to get to where they are.

Does anyone have an examples they can share or links to existing posts they know of?

Any help would be much appreciated. Sorry for wall.


I started by studying computer science.For about 1 year[the first one ] in highschool, we knew nothing about any particular programming language, like C/C++.Rather, we were focusing on algorithms , describing them in pseudocode and solving different problems.
Its been 2 years since, and also the algorithms and problems became more complex.
My suggestion is, before learning a programming language you should make a step in CS.It gives you a "way of thinking" , that helps when making games.Games are to be considered problems too.


And to give you an example :
A few months ago , I made an ASCII game.There are 2 characters , [ literally :P ] the player, a monster 'X' a char matrix and an exit poing, located somewhere in the maze [ the matrix is the maze ].It looks something like this http://www.youtu.be.com/watch?v=iZNNH5eYsdE .
The player has to get at the exit point before the monster does, or else the game is lost.
Looks pretty simple at first, but there's one problem: How does the monster reach the exit point ? He would follow a path of coordinates like : i1,j1-> i2,j2-> ....-> in,jn.
Ok, but how to determine that path ? The maze is randomly generated before each level.
The solution was to use the BreadthFirstSearch algorithm , learned in "Graph Theory " .

Anyway, thats just my opinion .

Edited by cold_heats_.--., 10 July 2012 - 07:31 AM.





Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.



PARTNERS