Where should I start learning game development?

Started by
11 comments, last by Serapth 9 years, 4 months ago

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?

Advertisement

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.

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.

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!

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.

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

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

EckTech Games - Games and Unity Assets I'm working on
Still Flying - My GameDev journal
The Shilwulf Dynasty - Campaign notes for my Rogue Trader RPG

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

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.




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.

This topic is closed to new replies.

Advertisement