   Advice on starting game development
  Ok, there must be a million posts like this one, but I gotta start somewhere... I want to start game developing for windows OS. So far the only experience I have coding is in C++ but in a Unix Environment, and I have never done graphics ( a course I regret not having taken). I''ve also recently been using Rational RoseRealTime and do not know if this IDE is any good for game developing, but I''ve been having a hell of a time getting it to work with my free compiler (MinGW). I''ve recruited one artist who has symphathized with my cause. So now its just a matter of telling him what I need, but I really don''t know what I need from him at this moment (in terms of object files etc...). I would like to eventually go towards 3d mmorpg''s (a few decades when I''m competent enough). I''ve read some of the noobie guides on this site, and even building a tetris game, seems difficult. What do I need to know? DirectX or can I just code straight. I was hoping to go directly to 3d stuff, like openGL which I think I will have to learn anyway, or will I?!?! I''m shooting to eventually go towards developing 3d mmorpg, so what steps/learning paths do I need to take? Any advice on where to go from here would be great! 
  You will eventually need to learn OpenGl or Direct3D. There are a few others out there, but these are the best. Tetris isn''t very difficult. If you know how to do multidimesional arrays, you can easily make tetris. If you want, I can see if I can find my old tetris code.   --------------------------------------I am the master of stories.....If only I could just write them down... ;  I suggest the Tetris tutorial in the Hands-On... Forum.It''s pretty much step by step and will teach you the basics of game programming. Just take your time, remember there''s no rush. ;  Warning! Expect numerous flame posts from disgruntled GameDev'ers.OK so you want to develop a MMORPG (me to ).Here is the path that I am taking.C -> C++ -> Win32 -> DirectX -> Game ProgrammingA good book to start of with is Programming Role Playing Games w/ DirectX 8.0. Then read Multiplayer Game Programming w/CD.A good IDE (or the best IMHO) is Microsoft Visual C++ .NET. I think it's only $99 for the standard edition which I have and haven't had any trouble.Forget about 2D and just dive into 3D--I know every one (except me) thinks you should start "small" but really if you want 3D then just start learning it. If you follow those two books above and create the little games that they make through out the book then I think you'll be fine (as I am ).After you learn DirectX you eventually need a Game Engine which usually deals with graphics/input/sound. Look at The Torque Engine--it seems pretty good and when I need it I think I'll get it (it is a $100 and license free up to $500,000 of profit).You have found an artist so then I guess you won't need a 2D paint program, 3D modeler/animator/render, and a world/terrain editor.Do you have a design document started or finished? If not, do, it helps to put everything into perspective.   "Do not flame people you don't know in a public forum. Only amateurs do that. Professionals in the industry know they will run into each other over and over. The person you flame this year may the person you want to do business with next year. Don't burn your bridges," (Diana Gruber, http://www.makegames.com/chapt6.html).[edited by - DIRECTXMEN on February 16, 2004 10:51:01 AM];  Sounds like a lot of good advice. I actually have nothing.  I''m trying to set up a development environment.  My artist resource is using Studio Max.  I am hoping to not have to worry about graphic details, I want to be able to just code the underlying infrastructure so that it can use whatever graphic object meets my specification (which I have not yet developed).I do want to start with 3d, but I also want to start small.  I hate doing a lot of coding and then taking a million years to fix an error that I could have been aware of had I done a smaller project.My other question concerns the development environment, since I''m starting to really like RationalRoseRT.   I realize that this application codes a lot of the overhead related to timing issues and protocols involved with class instances sending messages to each other.  Is it better for me to code these? (ie will the overhead be too much for an mmorpg) or should I pretty build everything from scratch?I''m not afraid of coding, but I also don''t want to reinvent the wheel.  I''d really like to know what the industry uses.Also, is it worth it to purchase a c++ compiler over using one that is free?  What are the advantages?  (other than it will probably be easier for me to make it function properly with my IDE).I''ve played some mmorpg''s and I''ve noticed that there seems to be different ways in dealing with network jitter.I''m probably getting ahead of myself, but I''m wondering how it will affect the gameplay and if what the best solutions are.Well, I''m going to try and get a hold of those books, and even try the tetris forum (I''m hoping to try and put a 3d twist to it).Lastly, will I need to know how to build DLL''s?  Or are most games people on this forum build self contained?I''m finishing my 4th year of computer science at school, and there has not yet been one course on game development.Makes me wonder where my tuition money is being spent... ;  How much C++ coding experience do you have? If you''re not comfortable with it I''d recommend you play with it a little to consolidate what you know, first. That only needs be a few command-line programs to flex your coding muscles (I don''t just mean your fingers ); you''re the best judge of what you need.I''ve not used Rational Rose, but from what I remember, it''s a software engineering tool - UML diagrams and the like, yes? I don''t know how fast its message-passing mechanisms are, you''d have to profile it - make some small realtime apps with it and time them, and then make the same apps in pure C++ and time those; compare your results. However, even if you don''t end up using RRRT to actually power your end product, it should still be good for designing game systems. Can it do code generation? If so you should be able to have it generate code and then hand-tweak that code to cut out unnecessary overhead. Frankly though, a good design will have your program running faster than a load of low-level optimizations.You will need a design document. Once you have a design document you''ll know which things you need to learn how to do (for example, is it going to need highly syncronised physics? complex AI?) and you''ll be able to research the available technologies to determine which ones suit you best. That research and technical design compilation will be the longest part - you''ll probably want to write small tech demos along the way, perhaps even some small games, to see how the technologies you''re examining work in real situations, how easy they are to use, how the perform, and so on.   Richard "Superpig" Fine    Smoother than a greased baby[TBRF|GP&T|Enginuity1|Enginuity2|Enginuity3|Enginuity4|Enginuity5];  I actually have quite a bit of experience in c++ to be comfortable using it.  I''ve been coding in it without use of an IDE for about 4 years.  (I have a comp-sci background so as well as c++ coding, I''ve done ultra sparc assembly, compiler creation theory, coding structures, programming language theory, OO principles, analysis of algorithms, cryptology, design patterns etc etc, but no game development, and I sacrificed taking the 3d graphic courses so that I could take the cryptology ones.)  The games that we were required to create were simple tic-tac-toe (but with client/server twist) and a few card games like black jack and poker (non graphical).Rational RoseRT is more than just designing the diagrams.  You sort of do your designs in UML.  That is you specify its structure using ports, classes diagramatically.  Then you need to specify/create a protocol that is used by the ports.  Then you specify (diagramatically) its behaviour (using state diagrams).  Then specify triggers which lead it from one state to another and then you can enter code (in c++ or language that you choose) that the state performs on exit/entry.  You can also code anything you want it to do (in the language of your choice) whenever it goes through its transitions.  Then you can move these into capsules and connect ports with lines (which gives you error warnings if they aren''t using the same protocols).And then you tell it to build a processor, specify the c++ compiler that you want it to use.  It even goes as far as to give you the option of the makefile commands etc...Then builds all the objects files for you and you can test each module/component or whole by placing daemons on certain ports and injecting data into it and perceiving what comes out.  You can even open up state diagrams for any part of it and see what state it is in.  It has a lot of other features which I don''t know of, since I''ve actually only started learning to use it a month and a half ago.  It also has a neat feature of letting you take one class and making it the child of another by clicking and dragging on the UML design.  Then you can move attributes/functions up or down the hierarchy and it takes care of the coding associated with the reclassifiction inheritance.I''m currently working on a small project for a real time systems design course.  Its actually quite handy and makes me wonder how I could have possibly made it through my other projects in the past years with nothing but g++ and an emacs text editor.Its messaging system is good enough for real time systems embedded applications (which are highly time dependant, lots of hard real time requirements).  My concern was whether or not the overhead it incurrs to maintain such a tight time constraint would interfere with gameplay issues (graphics renderring, cpu time, etc...).I''ve never actually made a design document.  I don''t even know what one is.  Usually I''m even given design specifications and I build something or perform requirements analysis, build a few hand drawings and then build something.  I''ve actually found it easier (for small projects) to build it something, if needs be modify the hierarchy, and with a finished working application, build the UML diagrams and hand that in.  I do realize however that the design is supposed to come prior to the coding.  But when you have deadlines and more weight put towards working code... ;  Do you have $10,000 for each server for your mmorpg? Reason I ask is I tried starting an mmorpg, and a friend of mine making Black & Whie 2 told me the reasoning to stay away from mmorpgs. The biggest thing was money, so I''ll stop there. You''ll need about 8-10 servers at minimum.    http://phil.webula.netAIM: wuZZup189 ;  I''m actually not worried about hosting a MMORPG.  I''m hoping to get the experience in building one.  Hell, I''ll be happy if I can create one that can support 5-10 players.  I''m hoping to make one that is scaleable so that if I had enough money to pour into a server, then it wouldn''t be such a feat coding-wise.  I''m also really curious as to what messages are being sent back and forth.  I do realize you can get this information using a packet sniffer, I''ve just been too lazy to look into getting/learning to use one.  I was hoping to see if there is any standards, or preferred methodology/protocols people were using one so that I might have a place to start. ;quote:Original post by DaNoob  I do want to start with 3d, but I also want to start small.  I hate doing a lot of coding and then taking a million years to fix an error that I could have been aware of had I done a smaller project.I''m finishing my 4th year of computer science at school, and there has not yet been one course on game development.Makes me wonder where my tuition money is being spent...   Start small in 3D do not start small in 2d--it is a waist of time (unless you want to make 2D games of course). Unless you go to a school that offers one of these newly sprouted Game Development degrees (which I will) then I''m pretty sure you won''t see anything on GD in a regular CS degree.   "Do not flame people you don''t know in a public forum. Only amateurs do that. Professionals in the industry know they will run into each other over and over. The person you flame this year may the person you want to do business with next year. Don''t burn your bridges," (Diana Gruber, http://www.makegames.com/chapt6.html). 