It took me many years to learn the fundamental principles of creating a game. Although I can not claim to have a complete grasp on the matter, I do believe that what I have learned would be useful for those wishing to enter the field, but are unsure of how. The Beginner may find themselves in a new world of immense complexity with which they have little to no experience, and many of the tutorials already existent seem to either cover a very specialised topic, or already assume that you have a general comprehension of the process of developing a game. However, my initial motivation to write this tutorial was perhaps not as grandiose. One day I sat down and realized that I was bored. After a dilemma of perhaps twenty painfully long seconds, I have decided to write this tutorial, outlining the basics of developing a game. This tutorial should help you understand how to create a game, or at least what to look for in order to learn what you need to do. Of course, this is not an in-depth tutorial, for such a task would require the composition of books as opposed to posts. But with luck it should prove to be useful for those of you who desire to take up the occupation of creating a visual and interactive manifestation of your ideas.
What you may not find in this tutorial is a description of how to create a 2D game. While I may add this information sometime in the future, at the moment I will rudely redirect you to perhaps read into the wonders of SFML and RenPy ^_^
The general intention is for you to use this tutorial as a starting point to launch your study. Step 3 in particular is most beneficial if you take your time to google the things mentioned, looking at them from different perspectives. Information on them is widely available - it may simply be difficult to know what to look for for those unfamiliar with the concepts.
Before we commence, I should note a few prerequisites. The main one is: you must be willing to learn. The journey of creating a game may be turbulent if pursued in haste, and you may save some time by ensuring that you are willing to embrace genuine criticism and advice. There are many young (and maybe even not-so-young) developers who enter the scene by immediately attempting to organise a team on some forum, often with the subconscious goal of basically having others work on what they feel is a good idea they have. Indeed, I was once such a person. I was rejected on many occasions, and when I was not the team merely fell apart within days. In retrospect, the forum posts I made at the time may be some of the most embarrassing things I have ever produced. Such behaviour should be avoided. Instead, one should begin by learning on their own, and perhaps making a small game or two. Otherwise, one can hardly claim to have the experience to be taken seriously. I am merely warning you so that you would not make the same mistake as I did. If this was indeed your approach, the following point may prove illuminating.
Ensure that you are not afraid of learning, especially the more technical aspects of development. Programming may seem a daunting thing to learn. It would take months, so is it worth it? This may apply to a variety of topics (in this case, my opinion would be "yes"). However, learning these things is often quite fun if you are patient, and honourable goals in their own right. Patience is key to game development, which can often be a time-consuming and error-prone activity. Not unlike more traditional art, truly.
Anywho, the more technical prerequisites would include an internet connection, and the ability to perhaps download at least a few hundred megabytes of material. The desired power of the computer would mainly depend on the type of game you wish to create. I personally have managed to write a pong clone on my Android tablet in under a few days, but I would certainly not be able to boast the same for a game with graphics rivalling GTA V, which would require a modern desktop machine to create. Aside from that, your most useful tools would be patience, and persistence.
If you have any questions or comments, I would be interested to see them and perhaps modify this text in accordance to the new information/request.
Now that we are done with the tiresome introduction, we may begin ^_^