Omnimaga

General Discussion => Technology and Development => Gaming Discussion => Topic started by: BlakPilar on June 10, 2012, 03:59:49 pm

Title: 3D Game Tutorials
Post by: BlakPilar on June 10, 2012, 03:59:49 pm
Now, I'm sure everyone is aware of the numerous game and rendering engines that exist today, such as OpenGL/OpenTK, Unity, CryEngine, XNA, LWJGL, and many others, but if you're like me, you've wanted to know all of what's going on behind the scenes. I was content to just use those third-party libraries, but my main curiosity was how everything was being done. I've finally found a tutorial that creates a 3D engine from scratch while explaining what's going on and why. Though it is completely software based (i.e. no hardware acceleration, and framerate will depend on processors), the creator, Yan Chernikov aka The Cherno, goes through every step and explains everything thoroughly. So far I'm on episode 21, but there are 33 total and the series is still in active development. If TheCerno sticks with what he's said in one of his videos, he will make a tutorial on how to use LWJGL or some other third-party game engine after this series is complete.

I've attached a picture of what my engine could render at the end of episode 20. If you're interested in following along, you can find the series here (http://www.youtube.com/show/3dgameprogramming). As a note, you do need to know at least some Java before starting this tutorial, but in the first six or so episodes he does explain what certain things are and what they do (such as a brief explanation on bit-shifting, and other bit operators (& and |)).
EDIT: Also, as far as I can tell, this can be ported to .NET WinForms by using a Bitmap that's had its bits unlocked, and C++ using QuickGC.
Title: Re: 3D Game Tutorials
Post by: ben_g on June 10, 2012, 04:04:26 pm
Looks nice. Do you draw everything pixel by pixel or do you use one of java's build-in methods to render the textures?

Also 52 fps sound a bit slow. Does the framerate drops much when you add more models?
Title: Re: 3D Game Tutorials
Post by: BlakPilar on June 10, 2012, 04:09:42 pm
You use Java's BufferStrategy along with Graphics and a BufferedImage to render everything, but it's technically pixel-by-pixel. As for the FPS, I'm on my laptop with several other programs running at the moment. I get between 60 and 65 when only Eclipse and the program are running. If I were to take away those three walls, there'd be no noticeable change because TheCherno does it in a pretty efficient manner as far as I can tell. (Plus he even openly admits that some of the rendering is from Notch's code because you can completely customize what is being rendered.)
Title: Re: 3D Game Tutorials
Post by: Scipi on July 02, 2012, 07:01:40 am
I cannot believe I missed this. I'm definitely going to follow these tutorials, I've been wanting to get into 3D programming period, and this will most likely help! :D
Title: Re: 3D Game Tutorials
Post by: aeTIos on July 02, 2012, 07:45:11 am
Oh wow :D Thanks a lot!
Title: Re: 3D Game Tutorials
Post by: BlakPilar on July 02, 2012, 11:34:14 am
He's still a student, and kind of stopped right before collision with the actual 3D part, but just from there it really helped me. I've found another tutorial by thecplusplusguy (http://www.youtube.com/playlist?list=PL0AB023E769342AFE&feature=plcp) for 3D. He does it with OpenGL, SDL, and C++, but I've been following along with Tao and C#. He explains everything really well, and it's very helpful.
Title: Re: 3D Game Tutorials
Post by: Scipi on July 02, 2012, 03:56:18 pm
Once I finish the Java tutorials, then I'll definitely look through those C++ ones! :D

Just finished the fourth video, already solidifying info I learned in my Java course. :P
Title: Re: 3D Game Tutorials
Post by: BlakPilar on July 03, 2012, 01:01:47 am
Yeah, he assumes most of the people who go to watch his tutorials are those kinds of people who skip over the basics and go straight to the hard stuff then complain when they don't understand it lol.