3D game programming

Pages: 12
Hey guys
I am new to this forum and I wanna learn 3D game programming.
Ok really I want to Make a MMORPG.

I know what most people will say---
--->You can't make a MMORPG it is so hard and it must contain thousands of lines (or)Are you crazy you are dreaming it must contain a team of 100 professionals or more to make a MMORPG (or something like this)

So if you will say something like this don't say it no one will get a profit and I know it is very very very hard.

I am not a beginner I learned the OOP from this book--->http://goo.gl/aH1zTB

So what know?
I want to learn how to make 3D games and some network programming.
So if someone has any good 3D game programming tutorials please post a link.

I wanna ask also if making the game directly is better or making a game engine.
(sorry for the bad english)

Thanks
Last edited on
Have you ever programmed a game before? What platform do you want to support?

It all depends on what you want to do. If you want the engine to be specialized specifically for your game, then do so. If you want to save yourself quite a bit of work, then use a premodern engine.
No,so that i want to learn it.
I want to support Windows.

I don't mean i want to use a premodern engine or make one.
I mean if I make a game naturally from programming or, program a game engine to make a game from it.
Last edited on
I don't think you understand what a Game Engine is. What do you think a Game Engine is?

(Oh, by the way, change your profile so that it accepts PMs please)
Last edited on
(ok i will accept PMs)

It is a program used to make games like udk or unity.(I used UDK before and i became a prof. in it but i knew that something free won't make a MMORPG)
what gave you that idea? it is entirely possible to make an mmorpg in a freeware build of a game engine
OK, It is possible but to make it you need to learn programming languages like unrealscript so why not make a game by other languages with no relation with other game engines?
because its more convienent. and its developed by a whole team of professionals which doesnt mean its infallible but its certainly better than something one could make by themselves in a short time. if you want to do windows platform i suggest unity because you can embed c#
I don't like to need something from someone to make a MMORPG.
But if I will make a normal game then I would use a premodern engine.
And also i want one that is made specially for MMORPGs.

Thanks for helping but can we just concentrate on the main idea of a good tutorial for making games?
Last edited on
I'm afraid you don't know what a Game Engine is. Here is a wikipedia page:
http://en.wikipedia.org/wiki/Game_engine

You're referring to visual development tools. A Game Engine doesn't have to provide those.

----------------------------------------------------------------------

Before you start any 3D Game Development however, I'd highly recommend you to learn SFML and/or SDL to get yourself familiar with game development. Something cool to try after you get the hang of it would be developing your own, small 2D Game Engine, and try to develop several 2D Games with it with minimal changes to the engine.

After that, decide whether to learn OpenGL or DirectX. I wont get into the pros and cons here, as they have been discussed in a different thread.

Link:http://www.cplusplus.com/forum/general/122457/

Eventually you should learn both IMO.

I personally love writing Game Engines and such, and I'd highly recommend you to do so as well. IMHO it's much more fun knowing that your game is running on your own Game Engine built from the ground up.
Last edited on
Here is my great tutorial on 3D programming:
https://www.google.com

I'm only partially kidding. Google is your best friend, my friend.

http://www.arcsynthesis.org/gltut/ < Great tutorial here for modern OpenGL.

After understanding this (you may want to understand matrix operations as well), start creating your engine. You will need:

- a game update loop
- a game render loop
- an easy, effective way to add new features; the less new code you have to add in to add something, the better
- player controls

*Please let me know of anything else you can think of, I'll add it to the list*

One of the most important steps in creating a large project is planning. Write out step by step of what you need to do next before you do it. You don't have to plan out every detail of the game, but the more you plan out, the easier and more organised your code will become.

A few tips for programming:

- use good variable names
- keep a standard, easy to read style for your code
- comment almost everything, for when you come back to it in a few months and don't remember what you were doing
- write organised code in small blocks if you can, the more organised you have it now, the easier it will be to deal with later, even if at the moment it seems pointless

And I can't stress this enough: plan out everything you can, it will speed up development.
Here is another great site for the ideas of game programming: http://gameprogrammingpatterns.com/index.html

This describes a whole bunch of design patterns that can make your life easier. A number of these I had to work out on my own (or find slightly dodgy work-arounds for), which takes a lot longer than just reading it out of a book, saying 'That makes sense' and implementing it for your game.

And by the way, when you say 'it must contain thousands of lines': thats an understatement. I'm currently writing a game at the moment (admittedly, I am using my own game engine, so that counts in too) I already have 5,500 lines of code split into about 30 files in 3 languages, and I don't really have much yet (just a basic world handler and battle system, which is still really buggy). For a professional level game, it would require tens of thousands of lines code, maybe even more than a 100000.
Thanks guys I will go into these steps step by step.
Well in addition to what everyone said; you also need Math if you're looking to program a 3D game, so make sure you got that covered. (the more math you know the better) And remember to plan your codes before writing them using Pseudocode (trust me it's really helpful and it will save you a lot of time in the long run) i like planning my codes on a piece of paper but you can do it on a notepad or wherever you like, hope this was helpful, have fun and good luck.

--> For math: https://www.khanacademy.org/
--> Math for games developer playlist tutorial: http://www.youtube.com/watch?v=sKCF8A3XGxQ&list=PLW3Zl3wyJwWOpdhYedlD-yCB7WQoHf-My
Last edited on
The thing is that building a 3d MMORPG is not only going to take a LOT of code, but also a lot graphic art / 3d models, and a lot of writing as well. So it's best if you have at least 3 people, one who is a good artist, one who is a good writer / story teller, and one who is a good programmer.

You need to learn how to load 3D models and render them correctly and efficiently, how to move them around in the program, and how to build 3D models in something like Blender.

A whole lot of your time is going to be spent making the models and blender has a steep learning curve, I would say steeper than learning OpenGL or Direc3D. So you should get started with that immediately. It may take a few years of steady progress to get to the point where you can make a decent model of a game character.

Then actually implementing the motions of your characters is a big deal as well. To make a 3D model of a creature and then make it walk around, or run around, swing swards etc is not very easy. This is one area where using your own engine and coding everything from scratch becomes difficult. So you should start googling about how to accomplish this now.

You also should try and be realistic. I mean, you might need to settle for a really small MMORPG with not much going on and crappy graphics, at least at first. If you get serious and want to make something really good, you'll need a team, or you'll need years of personal dedication or both.
Last edited on
3 people, one who is a good artist, one who is a good writer / story teller, and one who is a good programmer.

Ok I am a artist and a programmer and I already know my story :)


A whole lot of your time is going to be spent making the models and blender has a steep learning curve, I would say steeper than learning OpenGL or Direc3D. So you should get started with that immediately. It may take a few years of steady progress to get to the point where you can make a decent model of a game character.

Then actually implementing the motions of your characters is a big deal as well. To make a 3D model of a creature and then make it walk around, or run around, swing swards etc is not very easy. This is one area where using your own engine and coding everything from scratch becomes difficult. So you should start googling about how to accomplish this now.

You also should try and be realistic. I mean, you might need to settle for a really small MMORPG with not much going on and crappy graphics, at least at first. If you get serious and want to make something really good, you'll need a team, or you'll need years of personal dedication or both.


I were learning for this project for 4 years and still learning and i know how it is hard and for me I worked in animating and learned it and it is easy for me now and I am really serous and realistic and working hard and I won't stop.


Note: and thanks UK Marine for the totorials
Last edited on
I decided to use directX.
Does enyone has a good tutorial for it?
Last edited on
tutorials
---------------------------------------------------------------------------------------
Directx 9
http://www.drunkenhyena.com/cgi-bin/dx9.pl

Directx 10 and 11
http://www.rastertek.com/tutindex.html




books
---------------------------------------------------------------------------------------
Introduction to 3D Game Programming with DirectX90c A Shader Approach

windows game programming guru

Real Time 3D Terrain Engines Using C++ And DirectX 9

Introduction to 3D Game Programming with DirectX 9.0 (Frank D. Luna)


cant say if these are the best but they will do.

I would say that iam 100% sure that you will give up but i really hope that you dont. also if you really did not give up you will need like 20-40 years to actually make a good game... keep in mind that not all of your time will be game making + you are sure to face some problems that will slow you down.

wish you good luck.
Ok I am a artist and a programmer and I already know my story :)

I were learning for this project for 4 years and still learning and i know how it is hard and for me I worked in animating and learned it and it is easy for me now and I am really serous and realistic and working hard and I won't stop.


I'm not trying to discourage you. I'm just trying to help you figure out how you need to focus your time and what you might need to do to be successful.

I think you should try and find some people to help, otherwise you should make sure to continue learning both the modelling and the programming now at once so that you don't end up realizing that you spent a few years learning the programming, but now you need to invest a few years into learning the modelling. This was a major issue for me. I would blast through a bunch of programming, and realize that I need a ton of resources to really continue on. But I don''t have the massive amounts of time it would take to make all of these resources.

One major thing you should be aware of is that experience is key to success. For this reason it is not wise start off doing a project which is your life goal/long term project. You will probably find out somewhere along the line that you should have gone about it another way, or that the way you went about things will not work at all, or just not good enough and it needs to be scrapped.

With a project of this scope, your design patterns, organization, abstraction, data structures, and algorithms need to be very good in order to manage the massive complexity that you will eventually have.

You should start learning all about Trees, Maps, Sets, Hash Tables, Heaps, and other data structures / algorithms in depth. Then it will be easier to understand how to make the custom data structures you will need for your MMORPG.

And another thing you should take seriously is modularity and testability. You should have clearly defined modules which make certain guarantees with certain inputs in order that you can easily test each module, and make it feasible to track down bugs / maintain a level of non-bugginess.


Also, you should start learning about embedded scripting languages and their usefulness in game development.

I don't know what exactly you already know, I'm just saying what I think you should study.

And lastly and maybe most importantly, please don't program this game using DirectX directly. If it takes you 10, 20, 30, or 40 years to complete, what are the chances that Windows doesn't even exist anymore? Even if it does, the version you use will be massively outdated. Go into this assuming your rendering engine will need to be replaced or reimplemented at some point, and go into this assuming that you have no idea what kind of platform you might need to run this thing on.

And honestly, since this is such a long term project, maybe should worry about whether or not library X, or language Y is going to be dependable in the long run. Don't start with dying technologies. Does library X depreciate old features rapidly? What will you do if you find that you need to keep changing stuff to keep up with it? How will you reduce the cost of swapping in and out libraries etc? Think about these type of questions, and ask these types of questions.
Last edited on
Thanks htirwin and CppVoidppC for helping and I really know that I will give up sometime but then after 2 weeks or something like this i will get back because I gave up many times and I got back and I am now really focusing on game programming and on Modelling these are the things left for my to learn to start writing my project and I may also learn .NET programming.
And I know that I will take half my life making it but I will make it and sometimes I think I am foolish for trying to make something like this but who made something great without taking many years for learning and many other years for making his dream and I am serious and realistic to make the game.

NOTE:Thanks CppVoidppC for the tutorials

Edit: I don't know what to use DirectX or OpenGL help!
Last edited on
Pages: 12