I have just recently became intrigued by the whole concept of making video games. I am not new to programming, but I am new to the process/requirements/methodologies of programming a video game. I would like to inevitably make games with similar 2d style as POP Caps Plants vs Zombies. Where would one start to do that? I have knowledge in C++, Java, (whole array of web technologies), but I have never done anything as large scale as a game. I am left with several questions:

  1. What languages are needed?
  2. What do I need to learn for the graphics (I know how to use vector and raster editors)?
  3. Is there a common game SDK? If not what tools work the best?
  4. Any Book recomendations?

I am a total newb, I just need to know what it entails so I can dig up what I need.

  • \$\begingroup\$ If your going to downvote a question at least explain why? According to the faq I have a legitimate answerable question. \$\endgroup\$ – John Sep 8 '10 at 20:46
  • \$\begingroup\$ my guess would be that it is vague, multiple questions in one, and/or some of the questions are duplicates. But yes I agree with the sentiment that they should explain why they downvoted \$\endgroup\$ – lathomas64 Sep 8 '10 at 20:58
  • 3
    \$\begingroup\$ You have four questions, all of which are only answerable by Community Wiki, and all of which have been answered here already. \$\endgroup\$ – user744 Sep 8 '10 at 21:53
  • 2
    \$\begingroup\$ The answer to "How do I make a game like PvZ?" is not actually different than "How do I make a game?" in general, at the level he asked. \$\endgroup\$ – user744 Sep 8 '10 at 22:53
  • 1
    \$\begingroup\$ @RCIX, it's a tricky line between welcoming, and being a doormat :) Trying to build a community is difficult, especially when it's only a (relatively) small group of people. For instance, the Unity3D site (SE 1.0), UnityAnswers, is basically flooded with questions like, "How do I make an MMO/How do I add a gun/knife/laser to a character/How do I make a menu", repeated over and over. Plus the ever-popular, "What's wrong with this script", where there is a trivial syntax error (for example, answers.unity3d.com/questions/20123/c-error-with-if-statement). \$\endgroup\$ – Cyclops Sep 9 '10 at 13:40
  1. Lots of languages can be used to write simple 2D games like Plants vs Zombies, so it's really down to personal preference. As you know C++ and Java already, I'd maybe stick to one of those. Java has libraries like Slick which you may find useful (I've not used it myself). Seeing as you know Java it also wouldn't be too much of a learning curve to get into C# and use the XNA framework as well.

  2. 2D games tend to use Sprite based graphics, so generally tools like Paint Shop Pro, Photoshop or specialist editors like Pro Motion are used. There's no reason you can't use vector editors like Inkscape or Illustrator though and export in a format suited to sprite use (PNG for example).

  3. There's a huge variety of very good libraries and frameworks out there, the aforementioned Slick for Java, Angel Engine for C++. I'd have a look at the APIs for a few (when you decide on a language) and see which ones suit your coding style and platform requirements the best.

  4. I quite liked Game Coding Complete, Third Edition which covers a lot of the basic requirements for a game engine in detail, and is also C++ based.

| improve this answer | |
  • 1
    \$\begingroup\$ Thanks Muttley, that was what I needed. A point in the right direction. BTW, you are awesome; even took the time to provide links. Thank you. \$\endgroup\$ – John Sep 9 '10 at 1:19

Muttley did a decent job of summarizing answers to your four questions, but you really just need to take a look around the site. Make use of the search box in the top right corner of every page:

  1. a search for language reveals questions like "What are the most commonly used programming languages?" (remember, we're on a gamedev site so it is implied that the author means the most common languages for game development) and other questions about the use of specific languages for game development;
  2. Not as many good search results for this; feel free to break it into a separate question to get detailed answers about pros and cons of the two types. But both have been used for game development; vector graphics mostly in Flash games (and all 3D meshes are vector-based), and raster (or sprite) graphics for, well, all other 2D games, and 3D textures (the images on 3D models).
  3. A search for library or engine reveals many great questions.
  4. A search for book reveals many great questions, including one asked just yesterday, "What is a good book to start programming a 2D C++ game?"

Once you use the advice in the other questions to get started, feel free to ask more specific questions about how to develop very specific parts of your Plants vs Zombies imitation. But always remember to check if your question has been asked before, and try to keep it to one question per, uh, question.

| improve this answer | |
  • \$\begingroup\$ Also Google and "tutorial game programming" should give "some" hits. Hmmm, just checked, 495.000. \$\endgroup\$ – Kaj Sep 9 '10 at 4:06

Not the answer you're looking for? Browse other questions tagged or ask your own question.