Page 1 of 4 123 ... Last
  • Jump to page:
    #1
  1. <?PHP user_title("gimp"); ?>
    Devshed Supreme Being (6500+ posts)

    Join Date
    Jan 2005
    Location
    Internet
    Posts
    7,652
    Rep Power
    6084

    How can I make a game? How can I make an mmorpg?


    We get more and more threads like these, so perhaps it would be best to answer in the general case.


    First off, let me start with a warning: the MMORPGs you play with thousands of other people are developed by professional programming and graphic design teams and have budgets of hundreds of thousands of dollars (usually millions - especially for advertising). The same goes for those games you buy at your local game store for $50 or whatever. If your dream is to make a game like this, either have a lot of money or become a game programmer and get hired as one of many people working on a game. You cannot make a game like this in your spare time. It may be possible to make a small game and have it expand over the years but this is unlikely.




    Now, moving on to making games.

    The first thing to do is to learn to program. This is much more than just learning a language: You have to understand design and programming strategies. You have to be able to create algorithms to do what needs to be done. Basically, you need to develop a logical mindset. Oh, and you probably want to learn OOP since these days procedural-style programming works for very few large projects, most of which are legacy.

    By the time you can program well, you're probably familiar with quite a few languages, technologies, and frameworks, and you're probably proficient in more than one language. So, pick what you want for a game - language(s), libraries, technologies, frameworks, whatever. Whatever you're most comfortable with using and gives you good results is fine. It isn't recommended to ask questions about which language is better than which, but asking about specifics is, of course, encourages (as long as you've searched first). Popular languages used to create client-based games are C/++, java, etc, though it can be done with others (even assembler, if you so want). Web-based games are somewhat more limited - most people choose PHP, though there are good ones built with JSP and I'm sure someone, somewhere, has used ASP as well. Complementary technologies are things like databases (required for multiplayer games, really). Learning to use those will help you as well.

    Okay, now that you have a language, you've mastered its basic aspects, you've created smaller projects not related to gaming, what you want to do is build up your proficiency with tackling smaller projects. For example, if you want to make a client-based game, why not makes tic-tac-toe first? That's a very simple one. Tetris clone? Sure! (Just don't call it *tris - it's a trademark.) Alien invaders? Asteroids? Or maybe a side-scroller (similar to mario)? Or a top-down shooter. Those are simple games. They have limited interaction, and are straightforward to code. They're classics for a reason. Making simple games like these will help you develop your logical mentality, especially in application to games. They will help you to better understand and use OOP as well as multithreading (which is extremely useful and required in almost any large graphical project). Now, if you're making a web-based game, I would recommend making things that allow user interaction (such as a simple forum) to let you deal with user interaction. You'll learn how to use a database better and you'll learn how to "clean" user input (so as to protect yourself against SQL injections and the like). If you don't know what SQL injections are by this point, you must read up on handling user input and website security.

    Of course, none of this is necessary if you already have experience with large projects in whatever language you're working in, or even a similar language, but for the beginner these are almost mandatory.

    After working on smaller projects and having a better understanding of how everything works, you're ready to move on to your major project. To succeed, the most important thing to keep in mind is that this is for fun.





    Now, some advice for those wanting to go the extra step and making their games multiplayer.

    For web-based games, making things multiplayer is easier than for client-based ones. Basically, just learn how to safely handle user input and use a database and do what's needed. If you have a host that supports a programming language such as PHP, chances are (99%) that it also gives you databases to use (usually MySQL).

    Now, for those making client-based programs, the first thing you need to do is figure out how you're going to make the game multiplayer. Read up on the appropriate technologies and protocols (for example, you might want to go with learning socket programming and having a central server).

    Once you understand how everything works, once again, create a small project to use your new-found abilities. One of the easiest things to do is to create a simple instant messenger (chat) program - once you install clients on different computers, and turn on the server, you can talk to other people (or yourself on someone else's computer, whatever). This way, you will practice networking as well as OOP design and, if you're creating a server, multithreading (for servers this is almost always required).

    And from there, you can move on to the big things.





    Possible questions that may arise:

    Q: Do I have to take classes to learn all this?
    A: Nope, google can help you.

    Q: Are there free technologies or will everything cost me money?
    A: It depends on the language, but most languages are free to use, and there are many free libraries and the like.

    Q: Are there any free graphical libraries?
    A: Yes: look at OpenGL and its offshoots, for example.

    Q: Is it really so much work just to make a game?
    A: It's a lot harder than you think until you start programming.




    If anyone has any questions/comments/suggestions/corrections/etc please feel free to post here.

    Comments on this post

    • appdeveloper agrees : well elaborated question
    • Maxium0CarMeX agrees : Very informational! I will keep this in mind.
    Chat Server Project & Tutorial | WiFi-remote-control sailboat (building) | Joke Thread
    “Rational thinkers deplore the excesses of democracy; it abuses the individual and elevates the mob. The death of Socrates was its finest fruit.”
    Use XXX in a comment to flag something that is bogus but works. Use FIXME to flag something that is bogus and broken. Use TODO to leave yourself reminders. Calling a program finished before all these points are checked off is lazy.
    -Partial Credit: Sun

    If I ask you to redescribe your problem, it's because when you describe issues in detail, you often get a *click* and you suddenly know the solutions.
    Ches Koblents
  2. #2
  3. Kage Bunshin
    Devshed Novice (500 - 999 posts)

    Join Date
    Aug 2005
    Location
    The Seven Seas Of Rhye
    Posts
    930
    Rep Power
    423
    I get the feeling you kinda rushed through this, just to get it out there. Overall not bad, rather rough, but I would give it a [3.5 / 5]. I would stress more that you do not want to start with an MMORPG, its hell. Also, you left out flash for web-based games; Adventure Quest comes immediately to mind. You also might consider adding a "security" section covering SSL and point out that the designer should have a firm grasp of security and a well-planned design for his/her game.

    I like the way you talk about a "logical mindset". If you don't have if I don't think anyone can explain it to you, but I often find myself applying it to all aspects of my life, almost like a vulcan xD (seriously, you will find illogical people bug the crap out of you, they seem to add dots where they don't need to be, and seem to act on emotion rather than facts)
    It also makes you a much better chess player, which I find interesting. Anyway, nice work ;-)
    "Java makes impossible things possible, but makes easy things difficult." - Somebody
  4. #3
  5. <?PHP user_title("gimp"); ?>
    Devshed Supreme Being (6500+ posts)

    Join Date
    Jan 2005
    Location
    Internet
    Posts
    7,652
    Rep Power
    6084
    I'm not going to cover every single type of game there is. A flash multiplayer game is essentially a client-based game, except you access the client off the web. Same deal with learning networking in the language, same deal with using a database.

    Once again, the main form of security comes from sanitizing user input and protecting information. How you do that depends on the language, really.
    Chat Server Project & Tutorial | WiFi-remote-control sailboat (building) | Joke Thread
    “Rational thinkers deplore the excesses of democracy; it abuses the individual and elevates the mob. The death of Socrates was its finest fruit.”
    Use XXX in a comment to flag something that is bogus but works. Use FIXME to flag something that is bogus and broken. Use TODO to leave yourself reminders. Calling a program finished before all these points are checked off is lazy.
    -Partial Credit: Sun

    If I ask you to redescribe your problem, it's because when you describe issues in detail, you often get a *click* and you suddenly know the solutions.
    Ches Koblents
  6. #4
  7. No Profile Picture
    Contributing User
    Devshed Regular (2000 - 2499 posts)

    Join Date
    Jul 2006
    Posts
    2,270
    Rep Power
    1737
    Gimp, one paragraph into your post and my eyes started glazing over. It's not that your post is wrong or anything. It's a jargon mess that someone new to programming won't understand.Let me pick out words that are jargon: OOP, procedural-style, frameworks, libraries, client-based, assembler, JSP, ASP, databases. A new person is not going to see your point, and will just skip your post. Don't flame me. Ask your (non-techie) neighbor to read that post and see how many seconds before his eyes glaze over as well.

    Distill your points:

    1. Making a game is nothing like playing a game. Playing a game is having fun. You can enjoy making a game, but it's hard work.
    2. You can learn everything you need for free. But you need to learn yourself. No one will teach anything to you for free.
    3. Don't try to start programming a game from day one. Focus on picking up a programming language, so you have enough experience and knowledge to understand something like the above jargon filled post.

    Comments on this post

    • Maxium0CarMeX agrees : Nice Breakdown!
    When you ask a question, be prepared to tell us: what have you tried? If you think you don't need to try anything, we will never be interested in helping you. If you agree with the link, and you refuse to answer that question, you are being a hypocrite.

    Need help with broken code? Your question should be like a good bug report: (1) It has the smallest number of steps to reproduce the problem you see (2) It tells us precisely what you expected to see and (3) It tells us what you saw and how it differed from what you expected. We need all three to help you.
    Want better answers? Tell us what you Googled for and what steps you took to answer your own question.
  8. #5
  9. <?PHP user_title("gimp"); ?>
    Devshed Supreme Being (6500+ posts)

    Join Date
    Jan 2005
    Location
    Internet
    Posts
    7,652
    Rep Power
    6084
    Hmm, you're right. Let me see what I can do about that.
    Chat Server Project & Tutorial | WiFi-remote-control sailboat (building) | Joke Thread
    “Rational thinkers deplore the excesses of democracy; it abuses the individual and elevates the mob. The death of Socrates was its finest fruit.”
    Use XXX in a comment to flag something that is bogus but works. Use FIXME to flag something that is bogus and broken. Use TODO to leave yourself reminders. Calling a program finished before all these points are checked off is lazy.
    -Partial Credit: Sun

    If I ask you to redescribe your problem, it's because when you describe issues in detail, you often get a *click* and you suddenly know the solutions.
    Ches Koblents
  10. #6
  11. No Profile Picture
    Contributing User
    Devshed Newbie (0 - 499 posts)

    Join Date
    Aug 2006
    Location
    Victoria, Australia
    Posts
    458
    Rep Power
    84
    I've learnt VB6 for a year, done done 1st yr uni java course, and have at least the basics of OOP down.

    Now I want to go learn C/C++. Shouldn't be tooo difficult once I learn syntax? So then say I wanted to go make a simple game like so advised in the first post.
    I'd assume I'd start with command line programs to learn syntax. Then GUI?
    A) How hard is it to then GUI with windows and C? Any traps/pitfalls to fall into here?
    B) My main question, when would you recommend I try my first 'game project'? Right after GUI? Anything else I need to know? What sort of knowledge would you think I would need to know to make a graphical tic-tac-toe?
  12. #7
  13. <?PHP user_title("gimp"); ?>
    Devshed Supreme Being (6500+ posts)

    Join Date
    Jan 2005
    Location
    Internet
    Posts
    7,652
    Rep Power
    6084
    Ivo, this response is so horribly late, sorry.

    A) Depends really. Playing with Windows APIs having never done so before is difficult but there are other alternatives... frameworks, libraries, etc. I'm sure OpenGL can help you.
    B) Sure, tic-tac-toe is a fine first game. What sort of knowledge? Just knowing how to play with graphics, since everything else is so simple. Or if you want to do something slightly more complex make tetris.
    Chat Server Project & Tutorial | WiFi-remote-control sailboat (building) | Joke Thread
    “Rational thinkers deplore the excesses of democracy; it abuses the individual and elevates the mob. The death of Socrates was its finest fruit.”
    Use XXX in a comment to flag something that is bogus but works. Use FIXME to flag something that is bogus and broken. Use TODO to leave yourself reminders. Calling a program finished before all these points are checked off is lazy.
    -Partial Credit: Sun

    If I ask you to redescribe your problem, it's because when you describe issues in detail, you often get a *click* and you suddenly know the solutions.
    Ches Koblents
  14. #8
  15. No Profile Picture
    Registered User
    Devshed Newbie (0 - 499 posts)

    Join Date
    Feb 2008
    Posts
    13
    Rep Power
    0
    Is there not prgram's out there that make the programming easier. Surely you could get off a "first" project without have to competely do line by line C/C++?
  16. #9
  17. Contributing User
    Devshed Newbie (0 - 499 posts)

    Join Date
    Jan 2008
    Location
    Fort Meade, MD
    Posts
    170
    Rep Power
    50

    Talking Game making without programming


    Originally Posted by VicToMeyeZR
    Is there not prgram's out there that make the programming easier. Surely you could get off a "first" project without have to competely do line by line C/C++?
    There are programs out there for making games with little or no programming skill, which you can find by googling "Game Maker". However, to truly be able to customize your game, you've really got to program it yourself.
  18. #10
  19. No Profile Picture
    Registered User
    Devshed Newbie (0 - 499 posts)

    Join Date
    Feb 2008
    Posts
    13
    Rep Power
    0
    you can start with a good engine though right?
  20. #11
  21. Contributing User
    Devshed Newbie (0 - 499 posts)

    Join Date
    Jan 2008
    Location
    Fort Meade, MD
    Posts
    170
    Rep Power
    50
    Originally Posted by VicToMeyeZR
    you can start with a good engine though right?
    Absolutely. Depending on the language, there are plenty of useful engines out there. You don't have to completely re-invent the wheel. The majority of engines are probably written for C++. But if you are just starting out, I would recommend writing something in JAVA using an IDE like NetBeans, just because it is a lot easier to debug.
  22. #12
  23. No Profile Picture
    Registered User
    Devshed Newbie (0 - 499 posts)

    Join Date
    Mar 2008
    Posts
    10
    Rep Power
    0
    Originally Posted by paulscode
    There are programs out there for making games with little or no programming skill, which you can find by googling "Game Maker". However, to truly be able to customize your game, you've really got to program it yourself.
    or get to grips with the game maker it might just do lots of dirty work for you. and then you just sit back and get 10 million people sending money straight over to you account each month
  24. #13
  25. No Profile Picture
    Registered User
    Devshed Newbie (0 - 499 posts)

    Join Date
    Apr 2008
    Posts
    7
    Rep Power
    0
    Originally Posted by gimp
    First off, let me start with a warning: the MMORPGs you play with thousands of other people are developed by professional programming and graphic design teams and have budgets of hundreds of thousands of dollars (usually millions - especially for advertising).
    Traditional MMOG development usually involves hundreds of people, most of them artists. There are more disciplines involved than simply programming and art, too. Art, by the way, is not called graphic design in this case.

    If your dream is to make a game like this, either have a lot of money or become a game programmer and get hired as one of many people working on a game.
    Again, becoming a programmer isn't the only way, but since this is a programming community, I can see why you've naturally singled out this practice.

    You cannot make a game like this in your spare time. It may be possible to make a small game and have it expand over the years but this is unlikely.
    You can develop MMOGs in your spare time. You probably won't be able to create a World of Warcraft clone, but you can certainly create a MMOG, even a MMORPG. Check out the four-part Eternal Lands' MMORPG Postmortem. Also, with tools such as Metaplace on the horizon, anyone will be able to create simple MMOGs with just a few clicks and more complex MMOGs with Lua and art resources.

    The first thing to do is to learn to program.
    If you're aiming to be a one-man development team, you should probably learn game design first. You can learn and practice game design quite simply. You don't need any special tools. Just a box of junk that you can assemble into a board game. All games can be played as board games, including Doom and World of Warcraft. Raph's Breaking In article gives some good advice.
  26. #14
  27. No Profile Picture
    Contributing User
    Devshed Newbie (0 - 499 posts)

    Join Date
    Sep 2007
    Location
    America
    Posts
    53
    Rep Power
    0
    Okay so I've been learning programming for the past year now, using languages such as C, C++, Java, Python, PHP, MySQL, HTML, CSS, and JavaScript. I'm going to start the summer with no computer-based classes and so I don't want to forget anything and I want to improve as I get ready for my second year of computer science courses. I would definitely like to get into Game Development/Game Programming as soon as possible. I've looked around at libraries such as SDL. Should I start using pre-built libraries or maybe start making my own game from the ground up by creating my own libraries? Basically, where do I start since I've already gotten a small grasp on programming?
  28. #15
  29. No Profile Picture
    Banned
    Devshed Newbie (0 - 499 posts)

    Join Date
    Jun 2008
    Posts
    74
    Rep Power
    0
    I'm learning programming and I do not want to be encumbered by the very complex syntax that C/C++ is. I am learning Java and Python.

    Also quick questions here. I have a book and I'm reading about Java. When one makes games with Java do you mean regular Java or the Java Platform? Also do I need to learn languages such as PHP to turn a regular game onto an online game? Could one theoretically make a games with just Perl Java and Python? (Is Perl even necessary???)

    Reason I'm asking is because I'm going to college soon (going on my senior year in High school now ) and I need to decide which languages to learn when I get to college. I dont want to get there and learn that i have to learn a whole new language. I am eventually hoping to get a job at Blizzard. It is a MMORPG game company.

    Btw while I'm asking..any good colleges people recommend for game development programming? In case any of you really helpful people are looking up some good ones here are some specifications:

    I have around a 2.75 GPA in Junior of Highschool
    This year I will have around above a 3.0 for Senior most likely
    On SAT's I got a 1300 or around there.
    I live in Maryland.
Page 1 of 4 123 ... Last
  • Jump to page:

IMN logo majestic logo threadwatch logo seochat tools logo