Jump to content

  • Log In with Google      Sign In   
  • Create Account

Where should I start learning game development?

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

#1 Siddhant628   Members   -  Reputation: 106

Like
1Likes
Like

Posted 17 December 2014 - 12:00 PM

Hi, I am a student of B.E (or B. Tech) in Computer Science and I have completed 2 years of my engineering. I intend on having a serious career in game development. However, I am unable to decide where to start learning. I desire to make a game and deploy it as my final years project but I will have to learn many of the concepts as I don't have a team or any support (like an indie developer). After a lot of research, I continue to be perplexed as some suggest Python, and some suggest C++, and some say Unity 3D engine would be the best way. It seemed at first that Unity would be a good idea, but then another obstacle came along. I realised that I need to know 3D modelling before starting with Unity, as most of the resources on web (or books) seem to be teaching only how to use the engines tools, which I know I would have to learn in case I opt for Unity but what about the 3D assets. Further research indicated that I should use blender for modelling 3D assets. However, because of scattered sources of knowledge and huge spectrum of options, I need some guidance. I would be extremely appreciative of anyone who could tell me where I should start learning game development. Also, where can I find good sources on the web (or books) both free or paid.

 

Additional Details : I am not much of a graphics person. I only wish to learn extremely basic modelling (Minecraft like graphics FTW! tongue.png ). But I wish to work as if I might form an indie studio someday, as I am from India and opportunity in game development is scarce here.

 

Edited : 

 

I know programming in C and Java SE. I am quite clear with the concepts of OOP, data structures, algorithm designing and mathematical structures. (Also, I understand the basics of linear algebra) I don't think C++ would be hard for me if that is something you guys are wondering. Though you all seem to be very helpful, but somehow I am even more confused than I was before. I am also thinking of giving GRE entrance exam for doing M.S. in United States. Would doing that be a good choice in case I want a career in gamedev?


Edited by Siddhant628, Today, 09:33 AM.


Sponsor:

#2 The_Neverending_Loop   Members   -  Reputation: 625

Like
4Likes
Like

Posted 17 December 2014 - 12:57 PM

I would personally recommend starting from the ground up and just basically try to make a bunch of crappy but simple tech demos.  Like rendering a cube on screen, texturing it, controlling an object with a keyboard, parsing a 3D mesh file and rendering on screen etc... etc...  I feel it would help you get a good understand of what is going on behind the scene before you just directly into Unity 3D.  Whichever route you decide to choose start simple first.



#3 MarekKnows.com   Members   -  Reputation: 740

Like
2Likes
Like

Posted 18 December 2014 - 09:25 AM

as The_Neverending_Loop said, start simple and work your way up especially if you've never made a game before.  Depending on which engine you choose to use, there may be built in support for some simple primitives like boxes, spheres etc.  In that case you won't have to worry about creating and importing 3D meshes since you can use those primitives instead.  Even with simple primitives you can makes games like Pong or tetris.  


---
Free C++, OpenGL, and Game Development Video Tutorials @
www.MarekKnows.com
Play my free games: Ghost Toast, Zing, Jewel Thief


#4 slayemin   Members   -  Reputation: 2911

Like
2Likes
Like

Posted 18 December 2014 - 08:47 PM

You can also check out Unreal Engine 4. They have a special student license so it will help you with learning without paying.

 

UE4 comes with a bunch of starter content and a bunch of documentation and tutorials, so you can literally place a textured cube into a game world in less than a minute. There are some nice video tutorials which go through how to build a house, step by step, and wire it up with blueprints to get some interactivity going (ie, push a button to open a door). No code required!


Eric Nevala

Indie Developer | Dev blog


#5 Serapth   Crossbones+   -  Reputation: 5751

Like
1Likes
Like

Posted 18 December 2014 - 09:40 PM

3D programming and 3D asset creation are two vastly different skills. Don't try and learn both unless you are willing to invest some serious time... Like 10 years we are talking about here... Both are their own profession and both have massive learning curves.

Trust me, I know, guess what I've spent the last 10+ years doing... And the only reason I've kept at it is programming was my job, while graphics was my hobby. Even with that mindset, the quality of my output is still very hobbyist.

I mean certainly learn both if you are interested, but trying to master both is a fools errand.

#6 3Ddreamer   Crossbones+   -  Reputation: 3165

Like
0Likes
Like

Posted 19 December 2014 - 09:51 PM

Hi,

 

My humble little opinion is that college or uni students should down scale their ambitions in game development until after graduation. While in school I would suggest a goal of a few simple 2D games.  They can be easy on the art assets for the first few games.  It is not unusual for a game developer to use placeholder art assets in the earlier stages of developing a game.

 

The important things to realize are this:

 

1) Do not try to reinvent the wheel.  Game engines by themselves typically take a team years to develop. This does not include the games themselves which can take months or years. As for art assets, there are literally thousands of no cost or low cost 2D and 3D art assets available on many websites. Do not try in your early learning to make complicated coding libraries - found to take years to evolve in themselves.   For example, there are already existing level editors, so no need to reinvent one for yourself in the early years. There are libraries for importing texture and model file formats, so no need to spend months on that area, too. Collision and physics libraries are available (such as Bullet Physics).  Blender and other software (which can make 3D models) have some ability to convert file formats to the desired format, so no need to reinvent the wheel there, also. Collada animation is popular with some game engines, so look for animation applications such as within Collada which are available.

 

2) Choose a game engine and select a standard language (such as C#, Python, Java, C++, or one of dozens of others), since you have some few years of coding experience. (Beginners should almost never choose C++ which is too forgiving of bad coding habits.)  Each game engine usually has a choice of a few languages and some have a native language unique to the engine which is similar to a standard language, which I advise to avoid unless you are committed to that game engine long term.

 

3)  Make single player 2D games - simple ones - for a while.  These can be as easy as only a few pages of coding to a hundred or more.  Next make a few multiplayer 2D games.

 

4)  Last couple stages of learning are creating single player 3D games (usually first person, such as FPS) and later a few multiplayer 3D games.

 

The more demanding that game dev gets, then the more need to assemble a team on each game, so keep that in mind long term and aim for standard technology so that other people can easily join your team to get to work right away at high level of productivity.

 

After college, the whole world of game dev will open to you!  biggrin.png

 

 

Clinton


Personal life and your private thoughts always effect your career. Research is the intellectual backbone of game development and the first order. Version Control is crucial for full management of applications and software.  The better the workflow pipeline, then the greater the potential output for a quality game.  Completing projects is the last but finest order.

 

by Clinton, 3Ddreamer


#7 Eck   Crossbones+   -  Reputation: 3347

Like
1Likes
Like

Posted 19 December 2014 - 11:45 PM

Where should you start? Posting here was a great fist step. Welcome to gamedev sir. 

 


I realised that I need to know 3D modelling before starting with Unity

 

I'd like to correct this statement. No, you don't need to know 3D modelling before starting with Unity. You can build your own game objects out of primitives in the editor if you're going for a Minecraft look. Or, you can make use of the Unity Asset store to import 3D models into your game. Many of them are even free. 

https://www.assetstore.unity3d.com/en/#!/category/0/page/1/sortby/price

 

Or you can use Unity to make 2D games without any 3d models at all.

 

3D models aren't the only thing in the Asset store either. There's sound effects, music, textures, code modules, etc. Most of which have decent free options as well.

 

The online tutorials are really slick too. Check it out.

 

- Eck



#8 Kayhen   Members   -  Reputation: 121

Like
0Likes
Like

Posted Yesterday, 04:51 AM

You can also check out Unreal Engine 4. They have a special student license so it will help you with learning without paying.

 

Hi, I've been looking for this free license but it seems its only available to universities that have UE4 on their program. Can you tell me  where to find it?

 

Thanks



#9 Uberwulu   Members   -  Reputation: 160

Like
0Likes
Like

Posted Yesterday, 09:06 PM

 

Beginners should almost never choose C++ which is too forgiving of bad coding habits

 

This is terrible advice.  C++ is NOT forgiving of bad coding habits, quite the opposite actually.  Other languages are, which is what makes them "easier" to use.  Knowing Python, Unity, or Unreal won't get you a career in game dev either.  You need to learn C++, so start there.  It's not too hard to learn as a beginner unless you're generally bad at programming anyway, in which case you won't end up in game dev either way.

 

Source: Myself - A software engineer for a game & simulation company with a degree in game development.


Edited by Uberwulu, Today, 09:34 AM.


#10 Serapth   Crossbones+   -  Reputation: 5751

Like
-1Likes
Like

Posted Today, 08:12 AM




Beginners should almost never choose C++


This is terrible advice. Knowing Python, Unity, or Unreal won't get you a career in game dev. You need to learn C++, so start there. It's not too hard to learn as a beginner unless you're generally bad at programming anyway, in which case you won't end up in game dev either way.

Source: Myself - A software engineer for a game & simulation company with a degree in game development.

This is terrible logic... You need to know algebra eventually so shouldn't you just start there? Of course not.

C++ is a language with many positive attributes but learnability certainly isn't one. Learn the basics of programming in a less complex language then learn C++.

Coincidentally years of industry experience really doesn't mean a thing when it comes to educating others. In fact, in many ways, the further you are from being a beginner, often it's hard to even relate to what being a beginner was like. It generally just means you know your stuff.. Nothing about your ability to teach others.

#11 Uberwulu   Members   -  Reputation: 160

Like
-1Likes
Like

Posted Today, 09:01 AM

Coincidentally years of industry experience really doesn't mean a thing when it comes to educating others. In fact, in many ways, the further you are from being a beginner, often it's hard to even relate to what being a beginner was like. It generally just means you know your stuff.. Nothing about your ability to teach others.

 

This implies that being a developer for any length of time erodes your ability to help others learn your craft, and therefore my insistence to learn C++, the industry-wide standard language of game development, is bad advice to give someone who wants a career in game dev.  This assertion lacks logic.  It is also insulting to aspiring students that they must be too stupid to learn to code a for-loop in C++ before they've done it in PHP or something first.

 

Before my current job I spent three years teaching programming students, and in my spare time today I still make C++ tutorials for beginners with overwhelmingly good reviews.  C++ was my first language too, so I know very well the struggles of learning it.  Learning an "easier" language first won't make it easier to learn C++, and in my teaching experience, more often than not encourages bad coding habits that you'll have to unlearn once you start using a real language like C/C++.

 

So back to the OP, if you want to make games, in a nutshell you'll need to know C++ and linear algebra.  There's much more to it than that, but that's where you start.



#12 Lactose!   GDNet+   -  Reputation: 3822

Like
1Likes
Like

Posted Today, 09:17 AM


So back to the OP, if you want to make games, in a nutshell you'll need to know C++ and linear algebra.

You do not need to know C++ to make games. That's clearly a false statement, proven by the many, many games made in other languages/engines.

 

For AAA studios, knowing C++ might be a requirement, but the original post specifically mentions indie studios, which typically do not have the same criteria for e.g. performance as AAA studios have.

 

I also don't agree with your claim that saying "C++ is harder to learn" is equivalent of saying "you are too stupid to learn this, go look at something else".



#13 Serapth   Crossbones+   -  Reputation: 5751

Like
0Likes
Like

Posted Today, 09:55 AM

Coincidentally years of industry experience really doesn't mean a thing when it comes to educating others. In fact, in many ways, the further you are from being a beginner, often it's hard to even relate to what being a beginner was like. It generally just means you know your stuff.. Nothing about your ability to teach others.


This implies that being a developer for any length of time erodes your ability to help others learn your craft, and therefore my insistence to learn C++, the industry-wide standard language of game development, is bad advice to give someone who wants a career in game dev. This assertion lacks logic. It is also insulting to aspiring students that they must be too stupid to learn to code a for-loop in C++ before they've done it in PHP or something first.

Before my current job I spent three years teaching programming students, and in my spare time today I still make C++ tutorials for beginners with overwhelmingly good reviews. C++ was my first language too, so I know very well the struggles of learning it. Learning an "easier" language first won't make it easier to learn C++, and in my teaching experience, more often than not encourages bad coding habits that you'll have to unlearn once you start using a real language like C/C++.

So back to the OP, if you want to make games, in a nutshell you'll need to know C++ and linear algebra. There's much more to it than that, but that's where you start.
You don't downvote because you disagree by the way.

Yes, I know the irony in down voting you here. that said, I do believe your advice is overwhelmingly bad.

As you said yourself, you know the struggles of starting with C++. So why the hell would you inflict that on other people?

The rules of teaching are pretty we'll entrenched at this point. You should focus on as narrow a field of study as possible, structure lessons so the learner feels accomplishment, and build on those accomplishments.

With C++, in addition to having to learn to program, the user also has to learn a 20 year old linking system, a language with a completely ineffable inheritance system and more rules than most legal codes, a build cycle that certainly doesn't support experimentation (non REPL), in a language which is a mashup of 4 prior languages.

It is not insulting to a student to managing their learning curve, in fact, it's the signs of a good teacher. Every skill has a natural progression of difficulty, programming is no different. Properly managing that progression is the key to efficient learning. Yes, a student can learn starting with C++, it's simply not efficient.


Compare and contrast teaching a for loop ( your example ) in say... Lua or JavaScript vs C++.

In Lua or JavaScript, you explain how to enter code, feed it in for evaluation and most importantly, you explain how the code works.

Now do the same for C++... Now you have to explain... The compile link cycle, #include, namespaces, main, scope, bracket operators, etc.

Now take that example to something like drawing a sprite on screen with Lua vs C++

One is a two step process, the other is about 20, only one of which is about code. So yes, you will learn faster if you learn in a more beginner friendly language, you will also be more likely to stick with programming I you see initial success. And yes, if you know programming concepts already, when you do decide to learn C++ the process will be faster.





PARTNERS