Thursday, September 22, 2016

software engineering - Should I use Game Engines to learn to make 3D games?



HI i am a software engineering student in his second-last year.


I am proficient with C,C++,C# and java programming languages, and being a student of engineering I have studied calculus, vectors etc in both 2D and 3D & various other mathematical, probability and statistical topics.



I have made several 2D games, my most recent being a Super Mario-like game with side-scrolling and multiple levels.


Due to my these small game projects,i have become really interested in making games.


So now i want to move ahead to learn to make games in 3D.


Now I know that there are several game engines available which can take care of rendering details and other "low-level" stuff for me...


My Question is:


1) Is it a good idea to learn to program everything yourself, from making 3D shapes, terrains (using polygons meshes) etc, to programming mechanism for collision detection, lighting etc, considering my motive is to learn how to make games in 3D (but am not too eager to get into the game industry quickly, want to build a solid foundation first)


Or could I do without these details & work on the abstraction-level which the game engines (like UDK) provide ??


3) If I should try to develop from scratch, then can anybody suggest which API to use: Direct3D or OpenGL?? (which i would be more comfortable with, in light of my above mentioned skills) & can anybody also give me references to some good books, reading materials, tutorials, etc to get me started?? (I wouldn't mind theory as long as it helps me make a sound foundation)


Many Thanx in advance (for even reading my question, i know it's lengthy... but i need a DETAILED answer... :D :D )



Answer




In my experience you need to learn to program everything from scratch individually and use a game engine for any actual games you work on.


Even if you work in the industry you'll never write everything form scratch, you'll focus on certain aspects of the game. So if you want to maximize the use of your time, I would say have small projects like going on at openprocessing.org or something similar and use a game engine like Unity3D or corona for your personal projects.


Your for fun projects may look like:



  • 2d perlin noise generator

  • terrain generator

  • 2d bone animation sim

  • 3d cube scene with multiple cubes and from scratch camera projections on openprocessing.org

  • simple 2d game using corona or unity3d

  • random chapter from one of the GPU gems or game development gems books (the have lost of things you can try to implement)


  • write some shaders in HLSL

  • more advanced game with maybe some 3d using unity3d

  • etc etc etc


Of course these projects would be tailored to things you're actually interested in.


No comments:

Post a Comment

Simple past, Present perfect Past perfect

Can you tell me which form of the following sentences is the correct one please? Imagine two friends discussing the gym... I was in a good s...