(This guide is intended to be an answer to the question "how do I make games?".
It is not finished yet - however, it should be a decent guide in its current form.
Feedback and suggestions for improvements are welcome
)
BEFORE WE START- There's no quick way of making games.
- There is no quick way of making games.
- This means your first game will not be the next World of Warcraft. You're going to do simple games at first, like Pong or Breakout.
- But that's OK - you're learning this as you go, after all. Speaking of which...
- Be prepared to learn. When stuck, try to research things on your own - use Google, read the linked tutorials, read books, and if you can, look at the source of other games.
- If you're still stuck, people in forums/chatrooms can help you, but in most cases only if:
- a) You've done your own research, and still can't find the answer
- b) You can narrow the problem down to one specific question.
- c) You're polite about it. Correct spelling and grammar helps - it makes it easier to help you, and you'll be taken more seriously.
Remember this, and you should be good to go.
BUT WHAT DO I USE TO MAKE GAMES?It depends:
I want to make games right now!Go with
Construct or Game Maker - both allow for setting up basic games without much trouble, and can be used to work on larger projects.
I don't need no game makers, I want to code games!Warning: Making games through code is somewhat more time consuming. You'll need to learn how to code as well as learning how to make games. You will also need to code things that you'd normally take for granted with a game development tool.
That being said, programming is a practical skill outside of game development as well, so more power to you!
ActionScript and Flixel/Flashpunk is often recommended as a good language to start out with, as well as Python with PyGame.
(Note: While C++ is often cited as a good starting language/the "industry standard", you will probably be better off starting with a simpler language and later transitioning into others. As programming languages share a lot of concepts, it's easier to learn other languages when you've grasped one of them.)GAME MAKING TOOLS
Constructhttp://www.scirra.com/Benefits: Open source (free), easy to pick up, similar to MMF.
Caveats: May suffer from occasional crashes, unpolished in certain areas.
Guides:
Tutorial list on the Construct wiki.
Game Makerhttp://www.yoyogames.com/gamemakerBenefits: Cheap pro version, several tutorials available, scripting is possible.
Caveats: Some quirks
(1), scripting required to create more advanced games.
Guides:
Tutorials on the forum, the GML guide (in the help section of the program).
Unityhttp://unity3d.com/Benefits: Capable of both 2D and 3D games, powerful.
Caveats: Some coding may be required. 1200$ license required for some features.
Guides:
Alec's video tutorials,
the 3D platformer tutorial
PROGRAMMING LANGUAGESPythonhttp://python.orgBenefits: Easy to pick up, several libraries available.
Caveats: Isn't as strict with type definitions(which might be a problem when transitioning to other languages), indentation may be confusing.
Guides:
Official tutorialC/C++Several IDEs; Code::Blocks,
Visual Studio Express, and
XCode for the Mac.
Benefits: Tried and tested. Compatible with a wide range of libraries. Once you've learned this, learning other languages is easier.
Caveats: Harder to learn, definitely not the best language for people starting out, complicated in areas.
Guides:
CProgramming's introduction to C++ActionScripthttp://flashgamedojo.comBenefits: Produces Flash games, which many portals (like Newgrounds and Kongregate) accept. One of the easier languages to learn.
Caveats: May be somewhat slower than other languages, might be limited in some ways by the Flash plugin.
Guides:
Flash Game Dojo's guide (with resources for Flixel and Flashpunk)LIBRARIESIn most cases, the programming language does not handle the input/output part of games - graphics, sounds and keys - so you'll typically need a
library to handle these.
SFMLhttp://www.sfml-dev.org/Usable with: C/C++, Python
Benefits: Easy to get into, good alternative to SDL.
Caveats: Work in progress - you might run into problems.
Guides:
SFML-Dev's list of tutorialsFlixelhttp://flixel.orgUsable with: ActionScript
Benefits: Coding mostly done through extending Flixel's objects - things are mostly set up for you.
Caveats: (see ActionScript)
Guides:
Flash Game Dojo's tutorialFlashpunkhttp://flashpunk.net/Usable with: ActionScript
Benefits: Workflow is similar to Game Maker's scripting language.
Caveats: (see ActionScript)
Guides:
Flashpunk's list of tutorialsPyGamehttp://www.pygame.org/Usable with: Python
Benefits: Relatively easy, allows for a lot of control.
Caveats: Coding is done from the ground up.
Guides:
The line-by-line Chimp example,
Code CommentsFootnotes(1) -
Game Maker quirks