Advertisement

Final project in college (Want to become videogame programmer)

Started by March 01, 2017 08:03 AM
4 comments, last by BboyZache 7 years, 11 months ago

Hi,

I'm a 2n grade student of computing in Spain, and want to make own my game. My goal is to have created a game in 2,5 years for my final project, drawing someone's attention and becoming a videogame programer. (I have good background on C++ and others). In fact, I'd like to draw attention of a game developer company that it's located near my college.

So in the past months a seeked a lot of how to make your game. First I started with OpenGL in C++. After following a lot of tutorials, It seemed to me that not only I couldn't finish my game in time, but I would end with an unfinished game

So I started with Unreal Engine 4 on C++, with big expectatives of 3D games, cause this engine makes a lot of work previously done for you, so you "dont have to reinvent the wheel". But then again I realized its to much work for one person to complete in 2,5 years.

Please, can you guide me to my goal? What should be my goals to become a videogame programer? What should I do?... Should I spend time on artistic learning? Make a mod? Movile game? I dont know man...

My dream is to become a videogame programmer. I imagine that everyday. I want that, really. I cannot imagine any other future...

(Aclaration: I dont want to finish an awesome game, and do myselft the sound, art, characters, etc... I want to be part of a big project, being a programmer. So I have to do something to call their attetion)

Thanks to the helpers. And thanks to the creator of this awesome platform.

(I have read the FAQ).

I am not a professional game programmer, nor do I have any desire to become one, but from what I have read at this forum, what counts are finished and released games.

As you're finding out, you have to scale down, and in my non-expert!! opinion even more than you think.

At least, if you are an employer, and you get a candidate with 3 smaller games properly polished and released, one candidate with 1 released but not quite polished game, and one candidate with 5 failed attempts at making a bigger game, which one would you pick?

(Others likely have much better advice for job hunting than I have.)

As for what to do, I think it's important to get off the ground. To do that, make a game from start to release, all the way. After that, do it again, with a somewhat different game or different technology. After two games, I think you should have some better idea of what to do next yourself.

Make a game from start to polished finish, size doesn't matter (ie make it small!). As you haven't managed to make a complete game yet, I'd suggest that one option is to pick an existing game from the beginner list.

https://www.gamedev.net/resources/_/technical/game-programming/your-first-step-to-game-development-starts-here-r2976

Game design has been done already then, and coding should be quite doable, so you have room to deal with all the other stuff that goes on while making a polished game.

A disadvantage of using a game that already exists is that publishing it is problematic. If you want to have that as well, you need to first think of a small game that doesn't exist yet, design its game mechanics, and then do the entire coding/finishing/polishing/release process. Something with very simple movements, or a puzzle game. Designing a game before you code it is discussed in the Game Design forum at this site.

Advertisement

THINK SMALL.

For your learning experience, build a project you think you can make in 30 days. Try it. At the end of 30 days figure out what you learned, archive it, and then start a completely different project for the next 30 days.

As for your senior project -- or any class project -- the academic scale is radically different from the professional scale. For a single course you might be expected to put in roughly 6 hours per week for an 8 week or 10 week duration. That full coursework is about 1.5 "full time" week hours, and since much of that time is learning and exploring it is equivalent to less than one week for a professional's work, sometimes equivalent of 2-3 days of a professional's work.

Generally a year-long academic development project is roughly equivalent to a month-long (or shorter) professional development project. Some students will invest far more time so it may be worth more than a month, and group projects add more people, but they are the exception rather than the rule.

So think small. Put together a few simple projects that go for 30 calendar days. After you've done that several times and understand the scale of projects you can build, use your knowledge to pick the scale of your bigger final project.

I see what you said about being a programmer. I can work with you. I think we could make something good.

It's probably going to take more than 2 and a half years.

I agree with what others have advised already.

But, if you want to get there anywhere near the schedule you're talking about, you need a mentor. Ideally, this would be some sort of college class or something. Perhaps something on line.

3D games are like producing movies, except probably more difficult. By that, I mean there are a lot of jobs; there are actors, cinematographers, directors, writers, audio engineers, make up artists, and a small army of people generally involved. With major 3D titles, it's basically the same; you have programmers, animators, sculptors/modelers, musicians, sound effects people to do folly, and many of these skills may be further specialized such as someone who models characters and animals and someone else who models scenes with buildings and such.

To do a 3D game by yourself requires a lot of skills where each one is something people spend life times learning. I do this stuff as a hobby, but I'm one of the few people I've met who does it all. I've spent well over a decade learning this stuff and I feel like I'm just now getting near the level I want to be at. Anyway, you may want to give some thought to specializing, especially if you don't have a background where you're already pretty good at all these things.

Personally, I would advise learning the craft rather than producing a game. I work in the computer industry for some of the big companies, but I've never worked in the video game industry. Closest I've ever come was one company I worked for had their game support on the other side of the room where I worked. But I think it's really what you know that matters when getting a job. Companies want someone that is going to add value to what they are working on. They aren't looking to give someone a hand out to or mentor. They want to hire someone who has the skills they need to get a job done before their competitors snatch that person up.

Learning the craft may involve learning some of those various skills that you don't necessarily want to do professionally. If you want to be a programmer, for example, it would do you some good to be able to model a little bit if only to be able to produce "stand in" art assets so that a real artist can come in later and produce the real ones but until then you have some models that you can use to test your code. Not only that, but if you are coding engine level stuff, you need to know how to "play back" the art work. For example, knowing how a model is skinned, rigged, and animated will make it more clear how your code needs to take that skinning data and animation data and use it in the game.

If you want to be a game programmer, you also need to learn a whole lot of math. When I started as a computer programmer they told me there was a lot of math involved; there wasn't. I've been working with computers in the business world for my entire adult life including programming and there's never been anything more complicated than pre-algebra. But that's because I don't work in engineering or games. Game programming is actually where you actually do use an enormous amount of math. You need to learn trigonometry well enough to teach it to college students. And you at least need to know about vector and matrix algebra, which are generally taught in a course called Linear Algebra that you take after taking a few years of Calculus on your way to a degree in mathematics or engineering. Learning Calculus wouldn't hurt. I don't know it, but I wish I knew Calculus all the time. It would probably be useful for some game programming stuff, but the biggest thing is they like to explain game programming concepts using Calculus equations all the time, which goes over my head but I then figure it out anyway. I've seen game physics books that are written in Calculus equations, which is a bit ridiculous. I have a college Physics text book that doesn't have a lick of Calculus in it. Calculus is a "nice to have" but not a necessity for game programming. Trig is an absolute must though. And you really do need to learn about Vectors and Matrices for any 3D programming work. Unity (and probably Unreal although I've never done Unreal) hides a lot of the Vector and Matrix math under the hood, but you will understand the engine better if you know that stuff.

You might want to watch my videos. I don't know what your skill level is or what you already know, but those videos would probably teach you a few things about 3D game programming if you're fairly new to it. And even if you didn't understand them on the first time through, you might get a better idea of what you need to learn eventually and why you need to learn it. I would suggest starting with my Vectors video and then going on through the Matrices video. You might want to skip the Gimbal Lock video until you've started actually coding some 3D games or are ready to begin coding something. Going through the HLSL video series would teach you a lot about how a 3D game draws models even if you are not planning on doing any DirectX in the near future. The concepts there are the same for GLSL if you are doing OpenGL and I actually have the same shader written in GLSL on my website at VirtuallyProgramming.com that you can download. It's in the OGL engine download.

Working by yourself, your art work is not going to be that great if you are not already an artist. At the beginning of my videos, I've started putting a little video montage intro that I spent a weekend putting together. It has screen shots from several of the tutorial projects I did a few years ago. The X-Wing and the race car were models that I got somewhere online. Professor Zombie is a model I made by following the tutorial in Chris Totten's book. Everything else I did including writing the music and editing the video. All of that was done in XNA (now MonoGame) several years ago before I got into DirectX and OpenGL (not the music of course). (XNA 3 was a great place to learn game programming because there were so many good books written for it like Riemer Grootjans's stuff and Chad Carter's stuff.)

But you can see the level of art work you should be doing at first. It's not going to be cutting edge. I've actually been focusing on 3D modeling this last year and my skill level with modeling has gone through the roof in comparison. At this point, my ability to code needs to catch up with my ability to model because I'm able to produce PBR art work that I don't even know how to program to put it on the screen. But expect to write a few complete games before you know how to code art work better than this. I think many imagine getting into cutting edge graphics as soon as they start. Maybe if you use an engine that does all the work for you and can get ahold of such art assets. But if you want to make this your life's pursuit, you need to learn to do the hard stuff yourself which means you need to learn engine programming.

Still, don't try to do too much too soon. Any game projects you work on should be small scale. In that video montage at the start of my videos, there is a 3D Pong game shown. It's the scene right before the X-Wing. Pong is a pretty simple game to code. Even doing it in 3D is not that particularly difficult. That's the kind of game you could produce by yourself at a fairly early point in your development as a programmer. Mine also had super simple art work. The ball and paddle were basic primitive models in Blender that I painted using vertex painting. The walls were simple quads with a very basic texture. This is the kind of art work anyone could be taught to produce in an hour of instruction. But when you make your first 3D games, you should be thinking of these simple sorts of games that are similar to the first video games produced in history. Taking early video game classics like Pong or Space Invaders and making those into 3D games you have completed make for very good "beginner" projects although you are going to have to learn quite a bit to even pull that off.

Having these sorts of projects completed so that you can show the code running and show the source code would probably be good for your resume. If you demonstrate you can complete a game, even a simple one, and that your code is well organized and written, I would think that would be the sort of thing that would impress an employer. Also, if you show that you understand things like design patterns and that your code is laid out well that says a lot about you as a programmer. But all of this is intermediate, not beginner, level stuff.

There are a lot of good paths that you can take to learn to become a video game professional. These days, it seems to me that engines have become very popular. Even major titles are using engines like Havoc or Unreal or sometimes maybe even Unity. Learning those engines is a somewhat different skill set than coding your own engine. If you want to do this as a profession, I would recommend at least spending a few years learning engine programming. I don't mean you are going to recreate Unity here. The word "engine" can mean a lot of different things to different people. But you should learn to at least code an engine similar to mine. It is nothing great and a world away from Unity, but it's a solid start. And by the time you get good enough to write something like that, you will have a much deeper knowledge of what Unity is doing behind the scenes.

My engine there is written in OpenGL 4.5 and there is a video on that page that you can click on and view to see what it does without having to download the Visual Studio project and compile it. Assuming you are starting from the beginning, but already know C++, I would recommend going through the tutorials at LearnOpenGL.com and others. Then eventually you can come back and download the source code for my engine and understand it. A lot of the OpenGL stuff is taught as C rather than C++. And having it all Object Oriented, might be confusing at first.

There is also a DirectX 11 version of the engine that actually has a couple more features in it on the website as well and some XNA example code if you ever decide to get into XNA. I don't know whether to recommend XNA to you are not. It was invaluable experience for me and I would certainly recommend it highly if we were having this conversation 8 years ago. But Microsoft stopped supporting it and MonoGame took it over. I think MonoGame is doing a great job with it, but one of the things that made XNA such an incredibly good path for learning 3D game engine programming was all the books for it. You had books that were so easy anyone could get started all the way up to really advanced stuff. I'm not sure I ever could have learned this stuff without that. Although with me, the main reason I learned it was because I could never give up. That's how I figured out that this is what I want to do with my life, because no matter how much I failed at this I couldn't stop myself from continuing. But for me it's a hobby rather than a career unless maybe one day I can start my own company.

There is so much to learn. I can't even begin to explain how much there is to learn for 3D game programming. So, you really have to learn to love the journey. But you need to find someone to teach you and guide you. Websites like this are great for some of that guidance, because you can ask questions here and get answers. There are a lot of good online tutorials including YouTube. I've been learning from Game Institute. I've been very satisfied with my progress as a 3D artist in the past year as I am enrolled in their Digital Game Artist program. I don't have any of my latest work online yet, but I can say that most people who look at my renders of my latest 3D models said they thought they were looking at a photograph of a real object. I really have them to thank for the progress although I learned to teach myself in college and can generally answer my own questions by googling when I get stuck. Being self-teaching really helps a lot with this stuff rather than waiting for someone to teach it to you or magically fill your head with the knowledge.

But Game Institute has a deal where for under $10 a month you can get access to a lot of their videos and most of them are pretty good. For me, 3D modeling was my weak point having been coding 3D stuff for years and having been a musician most of my life, not to mention the background in math and physics and such. You can see in the video montage on my YouTube channel the yellow toy car I made in Blender and coded in XNA. And you can sort of see the boat. That's where my art skill level was at. I had been doing simple stuff like that with Blender for stand in art while I was learning game programming. But to really get up to the level I wanted to be at, I knew I needed to spend thousands of hours working in Blender. I had a steep hill to climb with Blender, because my modeling skills were so bad that it was not fun to work in Blender, but I needed to spend thousands of hours in Blender to get good enough to enjoy it. I needed some sort of formal class to make me responsible to do work in Blender and turn it in regularly as well as maybe teach me a thing or two about 3D modeling. And it worked. This last semester we did PBR modeling and like I said, people are telling me they thought my models were real world objects.

And here at some point, I need to learn to code PBR shaders. But the math is a bit more intense than the math in my HLSL video series. And more than anything, I have to find the time.

One path you might take to becoming a 3D game programming professional is to enroll in a program like the one at Game Institute. (That one is pretty pricey but not as expensive as some, although they sometimes run half price specials.) It may seem like a crazy way to get there, but I think it makes a lot of sense to enroll in a modeling program if you want to become a 3D programmer. The main reason is that you will learn about how the art assets are produced. How can you understand the importance of having PBR code if you've never heard of PBR. Seeing how the art assets are produced gives you a much deeper understanding of what it is your code needs to do to make use of those assets in a game. Not to mention, you'll learn how to produce your own art assets which is invaluable when you are working by yourself on games. And the Game Institute program will teach you the basics of getting those assets into engines like Unity and Unreal. Then, if you don't want to be a game artist, continue on to be a programmer. The programming stuff will make more sense because you know the art side. Word of warning though: if you are not an artist like I am not an artist, this can be a rough and scary path. There have been many assignments I've been given and thought "There is absolutely no way I can do that. I barely know how to draw stick figures and my 3D models look about the same (back when I started)." So, this path is an enormous amount of work.

But it sounds like you are young. You need to be thinking in terms of getting to your goal within the next decade, not in 2 or 3 years. If you want it to be your life, then make it your life. And I think that means not looking for the short and easiest path, but rather traveling the long and difficult path and learning by making countless mistakes.

Just like anything in life you pursue, you will succeed if you spend enough hours doing it. What is going to get you hired before everyone else is the fact that you've spent more hours messing up and making mistakes and learning from those mistakes then they have. There is no substitute for time spent at it.

Anyway, I've probably rambled on enough. But if you want a life making 3D video games, I would suggest learning a lot of math, learning to code well, and learning to make art assets. You can specialize after you've spent a few years learning it all. By then you will know which path is the right one for you and won't need someone to tell you which is the right path for you. Ideally, you would be enrolled in math classes, programming classes, and 3D modeling classes. You can give yourself this education, I did for the most part having largely taught myself trig and programming, and the basics of 3D modeling. But that takes forever. Having good teachers makes a huge difference. If classes like that are not an option because of your financial situation or whatever (save up if you have to), there are some other options. That program Game Institute has for less than $10 a month to get access to their video library is well worth it I think. I haven't been through all their videos, but I found most of the ones I watched to be helpful. It's not quite the same as being enrolled in their art program, but there's still a lot of good stuff in those videos. (I found my biggest problem with the videos and not being actually enrolled was that I would just watch the videos and not actually practice and do the work, which did not give great results. Being enrolled forced me to regularly turn in assignments and thus practice. It also forced me to do what I thought was impossible before I tried it. And that made a pretty enormous difference by building my confidence level. If you had of told me I would be making the 3D models I've made most recently a year ago, I would have laughed in your face and said that's not possible. When I got the assignments, I doubted it was possible. Then I did it.) And there's free tutorials out there on the Internet for a lot of stuff these days. In the end, it's all about time spent. It's just that a good teacher can help you spend that time a lot more wisely and get more results from it by showing you what it is you need to spend time with.

Oh, you might notice that I'm not recommend pursing music unless that's really what you want to do. It would help to know how to put sound in your games. No commercial game can afford to be silent. For games like Pong, you can probably find sound effects on the Internet. If you can afford one, you can get a digital recorder and record your own sound effects as wav files or perhaps some compressed audio file. Knowing a little sound editing might be helpful. (If you record your own effects you will at least need to know how to edit the wav file to cut out unwanted parts.) But music is a lifetime pursuit. And if you're starting at the beginning, it's going to take forever to get half way decent with your first instrument. You have to learn several instruments to learn to compose for a band (or program your own compositions). If you are unbelievably lucky, you might find a great teacher who can turn you into a composer in less than 10 years. Really, it's probably going to take being phenomenally lucky and having several great teachers. Honestly, the only way this is going to happen is if you go to a music school like Berklee where they have a lot of great teachers all in one place. But it's going to cost a huge amount of money, countless years, and you are probably going to be expected to play at least one instrument reasonably well before you show up. I happen to have started pursuing the music thing before I even got into game programming. I've even gone through some of Berklee's online classes which I found to be really good. But having that experience, I think I can safely say not to worry about music as a game programmer unless you already are a musician. A game demo can live without music. Find a friend who can write the music if you need. Hire someone if you must. But there's no point in pursuing it as a game programmer. Let the musicians be musicians. 3D art is different in that you can't hardly have a 3D game without at least some sort of stand in art. Not to mention that you will learn almost nothing about game making from becoming a musician whereas you will learn an enormous amount about game making by studying 3D modeling. You might want to get that recorder to record your own sound effects though, because a lot of times it's difficult to find the sound effects you need online. But even that can wait until you are pretty deep into doing this stuff.

EDIT: OMG! I just saw Game Institute has the art program on the biggest sale I've seen so far. I paid full price on the first year and half price on the second. I forget how much that was, but I think it was around $2,000. Now they've got the whole thing on for $749. Funny thing is, I don't feel at all cheated. I think it's well worth the money I paid.

Ok. Now I have to show you because I can't believe what they are offering for $749. Below is a picture of my final(EDIT: picture didn't post so I made some links). My art level was what you saw at the beginning of my video. And in 6 months, with a little self study, and two semesters of the Game Institute Digital Artist program, I turned in the render below. The background is a photograph (an HDRi environment map actually). But the lamp was a model I made in Blender and painted in Substance (they taught Quixel in the class, which you have to purchase and was much less expensive but I chose to buy Substance and teach myself Substance after completing the class assignments with Quixel). This isn't the most difficult thing in the world to model and paint, but this is how much I've improved in just 6 months in two semesters. I think it was worth $2,000. Maybe even worth $2,000 just to have come this far and I've still got 6 more semesters of learning to go! At $749 ... well, I just can't believe it.
When I saved this it didn't actually take the picture. So, I've posted it on my new DevientArt site I just created.

http://virtuallyprogramming.deviantart.com/art/Lamp-667283667

Other models I've done recently:
http://virtuallyprogramming.deviantart.com/

Really grateful about you guys helping me achieving my dream.

All of you really help me a lot and I really apreciate the time you spent writing to help someone to follow his dream in becoming videogame-programmer.

Thanks a lot

I am not a professional game programmer, nor do I have any desire to become one, but from what I have read at this forum, what counts are finished and released games.

As you're finding out, you have to scale down, and in my non-expert!! opinion even more than you think.

At least, if you are an employer, and you get a candidate with 3 smaller games properly polished and released, one candidate with 1 released but not quite polished game, and one candidate with 5 failed attempts at making a bigger game, which one would you pick?

(Others likely have much better advice for job hunting than I have.)

As for what to do, I think it's important to get off the ground. To do that, make a game from start to release, all the way. After that, do it again, with a somewhat different game or different technology. After two games, I think you should have some better idea of what to do next yourself.

Make a game from start to polished finish, size doesn't matter (ie make it small!). As you haven't managed to make a complete game yet, I'd suggest that one option is to pick an existing game from the beginner list.

https://www.gamedev.net/resources/_/technical/game-programming/your-first-step-to-game-development-starts-here-r2976

Game design has been done already then, and coding should be quite doable, so you have room to deal with all the other stuff that goes on while making a polished game.

A disadvantage of using a game that already exists is that publishing it is problematic. If you want to have that as well, you need to first think of a small game that doesn't exist yet, design its game mechanics, and then do the entire coding/finishing/polishing/release process. Something with very simple movements, or a puzzle game. Designing a game before you code it is discussed in the Game Design forum at this site.

THINK SMALL.

For your learning experience, build a project you think you can make in 30 days. Try it. At the end of 30 days figure out what you learned, archive it, and then start a completely different project for the next 30 days.

As for your senior project -- or any class project -- the academic scale is radically different from the professional scale. For a single course you might be expected to put in roughly 6 hours per week for an 8 week or 10 week duration. That full coursework is about 1.5 "full time" week hours, and since much of that time is learning and exploring it is equivalent to less than one week for a professional's work, sometimes equivalent of 2-3 days of a professional's work.

Generally a year-long academic development project is roughly equivalent to a month-long (or shorter) professional development project. Some students will invest far more time so it may be worth more than a month, and group projects add more people, but they are the exception rather than the rule.

So think small. Put together a few simple projects that go for 30 calendar days. After you've done that several times and understand the scale of projects you can build, use your knowledge to pick the scale of your bigger final project.

It's probably going to take more than 2 and a half years.

I agree with what others have advised already.

But, if you want to get there anywhere near the schedule you're talking about, you need a mentor. Ideally, this would be some sort of college class or something. Perhaps something on line.

3D games are like producing movies, except probably more difficult. By that, I mean there are a lot of jobs; there are actors, cinematographers, directors, writers, audio engineers, make up artists, and a small army of people generally involved. With major 3D titles, it's basically the same; you have programmers, animators, sculptors/modelers, musicians, sound effects people to do folly, and many of these skills may be further specialized such as someone who models characters and animals and someone else who models scenes with buildings and such.

To do a 3D game by yourself requires a lot of skills where each one is something people spend life times learning. I do this stuff as a hobby, but I'm one of the few people I've met who does it all. I've spent well over a decade learning this stuff and I feel like I'm just now getting near the level I want to be at. Anyway, you may want to give some thought to specializing, especially if you don't have a background where you're already pretty good at all these things.

Personally, I would advise learning the craft rather than producing a game. I work in the computer industry for some of the big companies, but I've never worked in the video game industry. Closest I've ever come was one company I worked for had their game support on the other side of the room where I worked. But I think it's really what you know that matters when getting a job. Companies want someone that is going to add value to what they are working on. They aren't looking to give someone a hand out to or mentor. They want to hire someone who has the skills they need to get a job done before their competitors snatch that person up.

Learning the craft may involve learning some of those various skills that you don't necessarily want to do professionally. If you want to be a programmer, for example, it would do you some good to be able to model a little bit if only to be able to produce "stand in" art assets so that a real artist can come in later and produce the real ones but until then you have some models that you can use to test your code. Not only that, but if you are coding engine level stuff, you need to know how to "play back" the art work. For example, knowing how a model is skinned, rigged, and animated will make it more clear how your code needs to take that skinning data and animation data and use it in the game.

If you want to be a game programmer, you also need to learn a whole lot of math. When I started as a computer programmer they told me there was a lot of math involved; there wasn't. I've been working with computers in the business world for my entire adult life including programming and there's never been anything more complicated than pre-algebra. But that's because I don't work in engineering or games. Game programming is actually where you actually do use an enormous amount of math. You need to learn trigonometry well enough to teach it to college students. And you at least need to know about vector and matrix algebra, which are generally taught in a course called Linear Algebra that you take after taking a few years of Calculus on your way to a degree in mathematics or engineering. Learning Calculus wouldn't hurt. I don't know it, but I wish I knew Calculus all the time. It would probably be useful for some game programming stuff, but the biggest thing is they like to explain game programming concepts using Calculus equations all the time, which goes over my head but I then figure it out anyway. I've seen game physics books that are written in Calculus equations, which is a bit ridiculous. I have a college Physics text book that doesn't have a lick of Calculus in it. Calculus is a "nice to have" but not a necessity for game programming. Trig is an absolute must though. And you really do need to learn about Vectors and Matrices for any 3D programming work. Unity (and probably Unreal although I've never done Unreal) hides a lot of the Vector and Matrix math under the hood, but you will understand the engine better if you know that stuff.

You might want to watch my videos. I don't know what your skill level is or what you already know, but those videos would probably teach you a few things about 3D game programming if you're fairly new to it. And even if you didn't understand them on the first time through, you might get a better idea of what you need to learn eventually and why you need to learn it. I would suggest starting with my Vectors video and then going on through the Matrices video. You might want to skip the Gimbal Lock video until you've started actually coding some 3D games or are ready to begin coding something. Going through the HLSL video series would teach you a lot about how a 3D game draws models even if you are not planning on doing any DirectX in the near future. The concepts there are the same for GLSL if you are doing OpenGL and I actually have the same shader written in GLSL on my website at VirtuallyProgramming.com that you can download. It's in the OGL engine download.

Working by yourself, your art work is not going to be that great if you are not already an artist. At the beginning of my videos, I've started putting a little video montage intro that I spent a weekend putting together. It has screen shots from several of the tutorial projects I did a few years ago. The X-Wing and the race car were models that I got somewhere online. Professor Zombie is a model I made by following the tutorial in Chris Totten's book. Everything else I did including writing the music and editing the video. All of that was done in XNA (now MonoGame) several years ago before I got into DirectX and OpenGL (not the music of course). (XNA 3 was a great place to learn game programming because there were so many good books written for it like Riemer Grootjans's stuff and Chad Carter's stuff.)

But you can see the level of art work you should be doing at first. It's not going to be cutting edge. I've actually been focusing on 3D modeling this last year and my skill level with modeling has gone through the roof in comparison. At this point, my ability to code needs to catch up with my ability to model because I'm able to produce PBR art work that I don't even know how to program to put it on the screen. But expect to write a few complete games before you know how to code art work better than this. I think many imagine getting into cutting edge graphics as soon as they start. Maybe if you use an engine that does all the work for you and can get ahold of such art assets. But if you want to make this your life's pursuit, you need to learn to do the hard stuff yourself which means you need to learn engine programming.

Still, don't try to do too much too soon. Any game projects you work on should be small scale. In that video montage at the start of my videos, there is a 3D Pong game shown. It's the scene right before the X-Wing. Pong is a pretty simple game to code. Even doing it in 3D is not that particularly difficult. That's the kind of game you could produce by yourself at a fairly early point in your development as a programmer. Mine also had super simple art work. The ball and paddle were basic primitive models in Blender that I painted using vertex painting. The walls were simple quads with a very basic texture. This is the kind of art work anyone could be taught to produce in an hour of instruction. But when you make your first 3D games, you should be thinking of these simple sorts of games that are similar to the first video games produced in history. Taking early video game classics like Pong or Space Invaders and making those into 3D games you have completed make for very good "beginner" projects although you are going to have to learn quite a bit to even pull that off.

Having these sorts of projects completed so that you can show the code running and show the source code would probably be good for your resume. If you demonstrate you can complete a game, even a simple one, and that your code is well organized and written, I would think that would be the sort of thing that would impress an employer. Also, if you show that you understand things like design patterns and that your code is laid out well that says a lot about you as a programmer. But all of this is intermediate, not beginner, level stuff.

There are a lot of good paths that you can take to learn to become a video game professional. These days, it seems to me that engines have become very popular. Even major titles are using engines like Havoc or Unreal or sometimes maybe even Unity. Learning those engines is a somewhat different skill set than coding your own engine. If you want to do this as a profession, I would recommend at least spending a few years learning engine programming. I don't mean you are going to recreate Unity here. The word "engine" can mean a lot of different things to different people. But you should learn to at least code an engine similar to mine. It is nothing great and a world away from Unity, but it's a solid start. And by the time you get good enough to write something like that, you will have a much deeper knowledge of what Unity is doing behind the scenes.

My engine there is written in OpenGL 4.5 and there is a video on that page that you can click on and view to see what it does without having to download the Visual Studio project and compile it. Assuming you are starting from the beginning, but already know C++, I would recommend going through the tutorials at LearnOpenGL.com and others. Then eventually you can come back and download the source code for my engine and understand it. A lot of the OpenGL stuff is taught as C rather than C++. And having it all Object Oriented, might be confusing at first.

There is also a DirectX 11 version of the engine that actually has a couple more features in it on the website as well and some XNA example code if you ever decide to get into XNA. I don't know whether to recommend XNA to you are not. It was invaluable experience for me and I would certainly recommend it highly if we were having this conversation 8 years ago. But Microsoft stopped supporting it and MonoGame took it over. I think MonoGame is doing a great job with it, but one of the things that made XNA such an incredibly good path for learning 3D game engine programming was all the books for it. You had books that were so easy anyone could get started all the way up to really advanced stuff. I'm not sure I ever could have learned this stuff without that. Although with me, the main reason I learned it was because I could never give up. That's how I figured out that this is what I want to do with my life, because no matter how much I failed at this I couldn't stop myself from continuing. But for me it's a hobby rather than a career unless maybe one day I can start my own company.

There is so much to learn. I can't even begin to explain how much there is to learn for 3D game programming. So, you really have to learn to love the journey. But you need to find someone to teach you and guide you. Websites like this are great for some of that guidance, because you can ask questions here and get answers. There are a lot of good online tutorials including YouTube. I've been learning from Game Institute. I've been very satisfied with my progress as a 3D artist in the past year as I am enrolled in their Digital Game Artist program. I don't have any of my latest work online yet, but I can say that most people who look at my renders of my latest 3D models said they thought they were looking at a photograph of a real object. I really have them to thank for the progress although I learned to teach myself in college and can generally answer my own questions by googling when I get stuck. Being self-teaching really helps a lot with this stuff rather than waiting for someone to teach it to you or magically fill your head with the knowledge.

But Game Institute has a deal where for under $10 a month you can get access to a lot of their videos and most of them are pretty good. For me, 3D modeling was my weak point having been coding 3D stuff for years and having been a musician most of my life, not to mention the background in math and physics and such. You can see in the video montage on my YouTube channel the yellow toy car I made in Blender and coded in XNA. And you can sort of see the boat. That's where my art skill level was at. I had been doing simple stuff like that with Blender for stand in art while I was learning game programming. But to really get up to the level I wanted to be at, I knew I needed to spend thousands of hours working in Blender. I had a steep hill to climb with Blender, because my modeling skills were so bad that it was not fun to work in Blender, but I needed to spend thousands of hours in Blender to get good enough to enjoy it. I needed some sort of formal class to make me responsible to do work in Blender and turn it in regularly as well as maybe teach me a thing or two about 3D modeling. And it worked. This last semester we did PBR modeling and like I said, people are telling me they thought my models were real world objects.

And here at some point, I need to learn to code PBR shaders. But the math is a bit more intense than the math in my HLSL video series. And more than anything, I have to find the time.

One path you might take to becoming a 3D game programming professional is to enroll in a program like the one at Game Institute. (That one is pretty pricey but not as expensive as some, although they sometimes run half price specials.) It may seem like a crazy way to get there, but I think it makes a lot of sense to do that if you want to become a 3D programmer. The main reason is that you will learn about how the art assets are produced. How can you understand the importance of having PBR code if you've never heard of PBR. Seeing how the art assets are produced gives you a much deeper understanding of what it is your code needs to do to make use of those assets in a game. Not to mention, you'll learn how to produce your own art assets which is invaluable when you are working by yourself on games. And the Game Institute program will teach you the basics of getting those assets into engines like Unity and Unreal. Then, if you don't want to be a game artist, continue on to be a programmer. The programming stuff will make more sense because you know the art side. Word of warning though: if you are not an artist like I am not an artist, this can be a rough and scary path. There have been many assignments I've been given and thought "There is absolutely no way I can do that. I barely know how to draw stick figures and my 3D models look about the same (back when I started)." So, this path is an enormous amount of work.

But it sounds like you are young. You need to be thinking in terms of getting to your goal within the next decade, not in 2 or 3 years. If you want it to be your life, then make it your life. And I think that means not looking for the short and easiest path, but rather traveling the long and difficult path and learning by making countless mistakes.

Just like anything in life you pursue, you will succeed if you spend enough hours doing it. What is going to get you hired before everyone else is the fact that you've spent more hours messing up and making mistakes and learning from those mistakes then they have. There is no substitute for time spent at it.

Anyway, I've probably rambled on enough. But if you want a life making 3D video games, I would suggest learning a lot of math, learning to code well, and learning to make art assets. You can specialize after you've spent a few years learning it all. By then you will know which path is the right one for you and won't need someone to tell you which is the right path for you. Ideally, you would be enrolled in math classes, programming classes, and 3D modeling classes. You can give yourself this education, I did for the most part having largely taught myself trig and programming, and the basics of 3D modeling. But that takes forever. Having good teachers makes a huge difference. If classes like that are not an option because of your financial situation or whatever (save up if you have to), there are some other options. That program Game Institute has for less than $10 a month to get access to their video library is well worth it I think. I haven't been through all their videos, but I found most of the ones I watched to be helpful. It's not quite the same as being enrolled in their art program, but there's still a lot of good stuff in those videos. (I found my biggest problem with the videos and not being actually enrolled was that I would just watch the videos and not actually practice and do the work, which did not give great results. Being enrolled forced me to regularly turn in assignments and thus practice. It also forced me to do what I thought was impossible before I tried it. And that made a pretty enormous difference by building my confidence level. If you had of told me I would be making the 3D models I've made most recently a year ago, I would have laughed in your face and said that's not possible. When I got the assignments, I doubted it was possible. Then I did it.) And there's free tutorials out there on the Internet for a lot of stuff these days. In the end, it's all about time spent. It's just that a good teacher can help you spend that time a lot more wisely and get more results from it by showing you what it is you need to spend time with.

Oh, you might notice that I'm not recommend pursing music unless that's really what you want to do. It would help to know how to put sound in your games. No commercial game can afford to be silent. For games like Pong, you can probably find sound effects on the Internet. If you can afford one, you can get a digital recorder and record your own sound effects as wav files or perhaps some compressed audio file. Knowing a little sound editing might be helpful. (If you record your own effects you will at least need to know how to edit the wav file to cut out unwanted parts.) But music is a lifetime pursuit. And if you're starting at the beginning, it's going to take forever to get half way decent with your first instrument. You have to learn several instruments to learn to compose for a band (or program your own compositions). If you are unbelievably lucky, you might find a great teacher who can turn you into a composer in less than 10 years. Really, it's probably going to take being phenomenally lucky and having several great teachers. Honestly, the only way this is going to happen is if you go to a music school like Berklee where they have a lot of great teachers all in one place. But it's going to cost a huge amount of money, countless years, and you are probably going to be expected to play at least one instrument reasonably well before you show up. I happen to have started pursuing the music thing before I even got into game programming. I've even gone through some of Berklee's online classes which I found to be really good. But having that experience, I think I can safely say not to worry about music as a game programmer unless you already are a musician. A game demo can live without music. Find a friend who can write the music if you need. Hire someone if you must. But there's no point in pursuing it as a game programmer. Let the musicians be musicians. 3D art is different in that you can't hardly have a 3D game without at least some sort of stand in art. Not to mention that you will learn almost nothing about game making from becoming a musician whereas you will learn an enormous amount about game making by studying 3D modeling. You might want to get that recorder to record your own sound effects though, because a lot of times it's difficult to find the sound effects you need online. But even that can wait until you are pretty deep into doing this stuff.

EDIT: OMG! I just saw Game Institute has the art program on the biggest sale I've seen so far. I paid full price on the first year and half price on the second. I forget how much that was, but I think it was around $2,000. Now they've got the whole thing on for $749. Funny thing is, I don't feel at all cheated. I think it's well worth the money I paid.

Ok. Now I have to show you because I can't believe what they are offering for $749. Below is a picture of my final. My art level was what you saw at the beginning of my video. And in 6 months, with a little self study, and two semesters of the Game Institute Digital Artist program, I turned in the render below. The background is a photograph (an HDRi environment map actually). But the lamp was a model I made in Blender and painted in Substance (they taught Quixel in the class, which you have to purchase and was much less expensive but I chose to buy Substance and teach myself Substance after completing the class assignments with Quixel). This isn't the most difficult thing in the world to model and paint, but this is how much I've improved in just 6 months in two semesters. I think it was worth $2,000. Maybe even worth $2,000 just to have come this far and I've still got 6 more semesters of learning to go! At $749 ... well, I just can't believe it.

This topic is closed to new replies.

Advertisement