#1 Members - Reputation: 172
Posted 09 July 2012 - 06:40 AM
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.
#2 Members - Reputation: 774
Posted 09 July 2012 - 06:50 AM
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 Members - Reputation: 735
Posted 09 July 2012 - 07:04 AM
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.
#4 Members - Reputation: 211
Posted 09 July 2012 - 07:06 AM
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 ).
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
EDIT: my seplinilg scuks
Edited by ASnogarD, 09 July 2012 - 11:24 AM.
#6 Members - Reputation: 3283
Posted 09 July 2012 - 08:48 AM
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 Members - Reputation: 129
Posted 09 July 2012 - 10:28 AM
Edited by Shikamaru, 09 July 2012 - 10:39 AM.
#8 Members - Reputation: 266
Posted 09 July 2012 - 11:00 AM
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)
#10 Members - Reputation: 405
Posted 09 July 2012 - 11:43 AM
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
Edited by boogyman19946, 09 July 2012 - 11:44 AM.
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 Members - Reputation: 788
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 GDNet+ - Reputation: 1105
Posted 09 July 2012 - 12:06 PM
A.
Lotus RPG Engine - My Journal: http://www.gamedev.n...die-rpg-engine/ |
Action RPG In development using XNA 4.0. | Blog in English: en.lotusrpg.com.br |
Personal blog In Portuguese: lotuzgames.wordpress.com |
#13 Members - Reputation: 266
Posted 09 July 2012 - 12:27 PM
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.I'm curious to know why you didn't succeed?
#14 Members - Reputation: 5815
Posted 09 July 2012 - 12:40 PM
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 Members - Reputation: 263
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
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 Members - Reputation: 194
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 Members - Reputation: 662
Posted 09 July 2012 - 11:05 PM
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 Crossbones+ - Reputation: 448
Posted 10 July 2012 - 05:39 AM
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!
====================================
Chesster - the ultimate match-3/puzzle game!
Meme Match
Veggie Snake
Skirmish
#19 Members - Reputation: 151
Posted 10 July 2012 - 06:56 AM
Alright, you knew about the advice and are beginning to realize the reasoning behind.I’ve, of course, ignored seasoned advice and started off with C++.
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 Members - Reputation: 126
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.






