Do you want to make your own games but have no idea where to start? Or you have already tried to make some games but you never managed to finish these projects? Perfect!
Well, not really perfect, but a good reason for you to continue reading. This guide will help you to learn everything you need to know to start making your games (and also to finish them of course). I assume you already have a great idea for your game in mind that you want to do. That is awesome! And you should probably forget about it.
Before you close this guide, I will explain later why your idea might not be the best one to use for your first game and how you eventually get to the point where you can come back to that idea you have right now (just do yourself a favor and write it down somewhere so you won't forget about it).
But why should you listen to me? These guidelines are based on research from different books, articles, videos, and a survey that was carried out to ask other indie devs about their workflow and problems in game development. The idea is to get all the information from different sources put together in one document to give you a better overview. So while this guide is written by me, it is a summary of the work and experience from real professionals.
If you already successfully made games on your own or in a team then this guide will probably not be that interesting for you. The idea of this guide is to help people who are interested in making games but have no experience yet. I want to get more people involved in making games by providing the basic knowledge of game development. In addition, this guide will also cover the most common problems of game development to prepare beginners of the upcoming challenges and to help devs out who are struggling to finish their games.
This guide is not a tutorial. The idea is to support you on your journey of making games, which means that you still have to do your own research if you want to dive deeper into certain aspects of game development. In that sense, it is also fine if you just skim through the guide and read what is useful for your situation. And if you disagree with certain parts or if you have your own solutions that work better for you, that is totally fine. Game development is a complex process and while the general steps of a production are similar, everybody approaches a project slightly differently. You are your own boss. Use this guide in the way it suits you best.
There is also a summary available which gives you the most essential information without much explanation. It is also possible to download the guide as a pdf. The results of the conducted survey can be found in the pdf if you are interested in those.
The Guidelines PDF
In any case: Good luck on your journey to becoming a game developer!
A game is made out of a lot of different components. There is game and level design, coding, art, sound and music. There is more to making a game but I want to keep it simple for now. These are the jobs of designers, programmers, artists, and sound designers or composers. Maybe you already have some experience in one or more of those fields, which is great. And even if you don't, there is no need to worry. Everybody has to start somewhere and I want to give you some tips for that.
For now, I assume that you are a solo dev, working on your own without a team. You might feel overwhelmed by what you need to know but relax for a moment. You will learn a lot while you are going to make your first games. To take even more pressure off you, there is no need anymore to learn programming to make games, which, I have the feeling, is the biggest roadblock for many interested people. The same applies to all the other jobs that involved in game making.
There are so many ways today to get around something that you are lacking. That is why I personally suggest that you should not try to learn everything (which is also what our teachers told us every year). Don't be mediocre at everything, be good at a few things. But this is debatable and there are people who can do a lot of things very well. The game Stardew Valley is a good example of one guy doing everything. But that also comes with a price. Learning a new ability takes time. And it's up to you to decide if it's worth your time learning all the different skills (and keep in mind that practicing a skill takes even more time if you want to stand out).
For now, you should not worry too much about it. Just keep in mind that you don't have to learn everything in order to make a game. But this topic will become important again at some point and it will also influence your project heavily. If you want to make a 3D game, for example, but you don't have the skills to make your own art, you either have to buy assets or hire an artist. And if that is not an option, you will probably have to think of a different game idea.
A game engine is a tool that you will have to use to turn your idea into a playable game. Imagine it as a pot in which a team throws in the code, art and music and all the other ingredients that are needed to create a game and the engine magically makes it all work. This is a really simplified understanding of a game engine but you should get the idea. More important is the fact that there are a lot of different game engines available and you need to pick one to start with. It's not as hard as choosing your first Pokemon because you can pick up another engine at any time, but there are important things you need to consider and once you have started a project, you will have to stick to that engine until it's done. Oh, and if you are a programmer, don't even think about writing your own engine. Writing your own engine is a huge waste of time (for probably 99% of the people).
"Don't remake the wheel. Unity and Unreal have assets and tools to make your life easier. Someone else has made some tool or system you need a thousand times already and probably better than you could so just use that."
But how do you choose the right engine for your situation? As a beginner, you have different requirements compared to someone who has a specific idea in mind and knows the technical requirements. Especially, if you just want to get started as soon as possible.
Important is, that the engine is free to use. You probably don't want to spend money on a product that you might not even end up using in the future. The engine should be accessible and offer enough support and tutorials to make sure that you can learn the basics by making small projects. And in the best case, there is also a marketplace available that offers enough assets that are either free or can be bought.
In the following, I will list up the most used engines together with a few key points of what each engine has to offer and what possible downsides there are. There are more features of an engine that are relevant, but for your situation, it is not necessary to know every detail. Let's keep it simple and focus on getting something done. I will add some links to various tutorials that got positive feedback or that I have used myself so that you don't have to search for them. And remember, you can still switch to another engine whenever you feel like it doesn't work out.
Unity is one of the most used engines by beginners and indie devs for good reasons:
Sounds pretty good, right? Well, there is one downside. You will have to learn to code with C# in order to make a game in Unity (except you are willing to spend money on plugins for visual scripting). But don't worry, the basics are not that hard and there are plenty of tutorials available. This was also the engine I had to use during the beginning of my studies. I personally like working with Unity and I would recommend using this engine for your first projects. And don't think this engine is not good enough because it is used by many beginners. There are plenty of impressive games made with Unity and even AAA studios use this engine.
Unreal is another popular engine. Games like Borderlands 3 or The Outer Worlds are running on Unreal. But it is also used by a lot of indie devs. It offers similar benefits as Unity with two interesting additions:
Unreal has a system called Blueprints. Instead of writing code, you can use their visual scripting system to build the logic of your game. It does have its downsides, but the important part is that it is easier to learn and to use as a beginner compared to learning a new scripting language. However, you still need to learn the logic behind scripting even though you won't write any code. At least that makes it easier to understand what is going on. I have worked quite a bit with Unreal and I really like the Blueprint system. I have learned the basics by watching different tutorials and was quickly able to come up with my own features and mechanics.
If you are into 2D games then GameMaker Studio 2 will be a good choice. It offers a solution for visual scripting, so you would be able to make games without writing any code as well. But the scripting language is very easy to learn if you don't mind to learn to code. There are a lot of tutorials for different types of games available made by the community or by the creators of the engine to get you started right away. A marketplace offers additional plugins and assets that can be bought or downloaded for free.
There are two main downsides to this engine. This engine only supports 2D games (with some exceptions) and you will have to use a trial version for a limited time or buy the engine. If that is not an issue for you then this engine will be a good choice.
There are more engines available that you could choose to make a game. While I personally suggest to pick Unity, Unreal or GameMaker Studio 2 for the beginning, I want to show some more alternatives that might be interesting for you as well:
This open-source engine is completely free to use. It supports 2D, 3D, and VR games. There is an active community around Godot that contributes to the engine and also provides tutorials.
Probably best known for the Crysis series, is the CryEngine a powerful platform for making games. The CryEngine is free to use until you start to ship a game, similar to Unity and Unreal. A marketplace offers additional free and paid assets.
The RPG Maker is more of an editor than an engine like Unity. As the name already suggests, this engine is used to make 2D RPGs. The benefit is that all tools in the engine are built around this idea and it is easy to get started. However, you are obviously very limited in what you can do and you have to have to buy the product (a trial version exists).
And always keep in mind that there is no such thing as the best engine. Even if other people tell you. Certain engines might be better suited for certain features but in general, there is no engine that is just better than all the other ones.
Modding might be an alternative for you if you don't want to create a whole new game from scratch. Some games provide tools that let the community create more content. From new maps and levels to whole new game modes. Counter-Strike is probably the best-known example. It was originally made as a mod for Half-Life and is now one of the most popular online games.
Modding has its pros and cons. In today's times, there aren't many games that offer tools for modding or level creation anymore and you would also have to buy the game. In addition, your creation can only be played by other people who own the same game (there are some exceptions to this rule). But the benefits are that making a mod or a level for a game is usually faster and easier compared to creating a complete game. You don't have to program the game and art assets are also already there to use. While this guide is primarily made for people who are interested in making their own games using an engine like Unity, there are sections coming later for finding ideas and the pitfalls of game development that are also useful for modding as well.
Before you start working on your personal dream project you need to learn to work with an engine. The best and fastest way is to pick one of the previously mentioned engines and follow a few tutorials.
You will get practice in working with the engine which improves your workflow. You will learn important terminology and you will learn how to create certain features that can be used for later projects as well. In addition, following these tutorials will get you working results relatively fast which keeps up the motivation.
In the beginning, it is also totally fine to just follow and copy what you see in the tutorials. With time you will get more confident and can start trying out your own ideas. Once you think you have watched enough videos, you should start trying to copy existing games with what you have learned. But don't overdo it. Take old arcade games, try to copy them, and give them your own spin. The important part about this practice is that you consolidate what you have learned and that you get a better feeling for how much work it actually is to create a game. Especially the last part is important because underestimating the amount of work needed for a game is a common problem in game development. Your goal should be to get familiar with the engine and learn how to create basic mechanics so that you are able to create your own project.
So you feel confident enough to start with your own game? That's great! But keep your idea that you have (hopefully) written down in the first section in a drawer for a second. Before you go on your journey I want to give a short lecture on the process of video game production. It sounds boring, and to be fair, it kinda is, but it is also important to know the fundamentals of game development. This will help you with finding the right idea, setting up a plan, and following through up until the end of the production. I try to keep it as short as possible. After all, you don't need to know every single detail right now.
"That is exactly what real game designers do", writes Jesse Schell in his book The Art of Game Design. So let's start with finding ideas.
Often someone gets inspired by other games. But it's possible to find inspiration in all sorts of things, even just by taking a walk through a forest. Whenever something pops into your mind write it down somewhere. This is important because you might get more ideas while you are writing and you make sure that you won't forget it. It also frees up your mind for new thoughts. Another common approach to coming up with ideas is brainstorming. There are different ways of doing it but in case you are not familiar with this method, it works in general by choosing a specific topic and then just writing down everything that comes to mind. The results don't even need to make sense but they often give you new ideas. You can also do this together with other people. That is usually more fun as well and leads to unexpected ideas because every person thinks differently.
If you found your idea the next step is to start working on a prototype in your engine of choice. Depending on the idea you have, this prototype might only cover the core gameplay loop to see if it is fun to play, but it can also be a prototype made to test a certain feature. Maybe you want to have procedurally generated levels but you are not sure yet how this will work out in-game. Whatever it is, prototypes are there to answer questions and to solve problems. If you spend time on making a prototype, it should serve a purpose. And ending up with something that is not fun or does not work is still a win because you don't waste time to keep working on that project.
You got your idea and prototype, but there is still something missing to start working: documentation and planning. Unfortunately, these two are the most boring parts but they are also quite important. In the end, it is up to you, but especially if your project is going to take longer than a few days you should take some time to prepare documents and create a plan.
There are a few different types of documents that are important in a production. The most common document and also the most important one is the game design document (GDD). It contains all the mechanics of your game with a description of how they work. Changes and iterations of your game should also be applied to your GDD. Always keep it updated so that you keep track of your work.
Another benefit of writing everything down is that you may already spot flaws and possible issues in your design. It also helps with answering open questions of your ideas because now is the time you should explain the mechanics in detail so that another person could understand it as well. Documents are also a form of communication and if you are working together with other people it is important that everyone has the same understanding of what is written down. Other documents that might be interesting are the technical design document, the art bible, and a document for the story. But again, you have to decide for yourself if these (or more) are needed for your type of project.
The next step is planning. If you are working on a project just for yourself you don't really have a deadline. You can take as much time for the game as you like. But that is not necessarily a good thing. The idea of this guide is to get you into making games but also finishing them at some point. Without a deadline, it is likely that your project will go on forever (depending on the scope) or that you will abandon it at some point. Especially if you are a perfectionist you will never come to an end. Therefore I suggest you set yourself a deadline and make a proper plan that you try to follow. And now the reason why I told you in the beginning that your idea might not be the best for your current situation. A lot of people, especially the ones without experience, tend to have ideas with a scope that is way too big. Now that you have to create a plan, you should evaluate if that idea you have is still something you can manage to do in a reasonable amount of time.
If you know what you want to do then it is time to start writing down your plan. How detailed your plan should be is up to you. I advise you to list up every single task that needs to be done and try to estimate how much time it is going to take you to finish that task. From there you could set yourself a deadline. Always put in some extra time because a project never goes as planned. After you have written down all your tasks (that is now your backlog) it is a good idea to sort them after priority. There is a method called MoSCoW which basically means that you sort your tasks after the following factors:
The tasks that definitely need to be done in order to finish the project. These tasks are essential.
Tasks that should be done after the important features have been implemented. They don't break your game if they are missing but they significantly improve it.
Features that are nice to have but won't be missed if they are not there.
Features that are probably not going to end up in your game.
With proper planning, you are good to go. However, game development is a creative and iterative process. This means that your plan, as good and detailed it might be, is not going the way it is written down. That does not mean your plan is bad or that you are bad at planning. It is more like once you start working, you will notice that some features might not work out in the way you have thought. Or you will get an idea for a new feature that will greatly improve your game. Or life comes in and demands your attention. If those things happen (and they will) then update your planning. It is totally fine to move features around in your backlog and give them new priorities. Or maybe you really just need one more week to get this one important feature working. In the end, it is your project and your plan. Just try to be reasonable.
Now that the boring stuff is out of the way it is time to start working on the project itself. In the production phase, all the assets are created and the game is put together. Writing code, building levels, creating animations, designing the UI, etc. Everything the game consists of is produced during this phase.
At different points during your production, you should try to get feedback by letting other people test your game. Doing proper testing can actually be quite complex, but a good rule of thumb is to get people involved that you think would enjoy the type of game you are making. The reason for this should be obvious. A person who likes to play strategy games but has to test a racing game might criticize things that are usually totally fine for racing games. So that result is not really helpful and in the worst case, it can lead to wrong conclusions and decisions. But even if you cannot find people of your target group for testing it is still possible to get feedback from other players. Just ask the right questions and maybe focus on other parts of your game than the gameplay. Important is that you let other people play your game. Most of the time you can already spot issues just by watching somebody else playing. In addition, it might be refreshing to get input from the outside. Working for a long time alone on a project makes you lose your clear view of the game.
In today's times, it is common practice to keep releasing updates for a game even after its launch. These updates can be patches that fix some bugs or they add more content to the game. But if you are not working on a commercial game then I assume you will just move on to the next project if you are done.
In this section, you will learn about the most common problems taken from a survey that I have conducted together with indie devs. The results of the survey can be found in the appendix. For each problem, you can find a solution based on answers from the survey, research, and personal experience. Use this information as preparation for your production. It is not a promise for success, but it will greatly improve your chances of finishing your game.
The number one reason for failed projects. Not only common amongst the participants but also an issue that can be found in postmortems of AAA games. You plan for too many features, the project gets too ambitious and as a result, there is either no end in sight or you will completely lose motivation to keep working. Or you underestimate the amount of work needed for certain tasks and you end up with unfinished features while your time is running out.
But what can you do about it? A lot of it comes down to experience. That is why a lot of beginners think they can tackle making a huge RPG or even an MMO. The more games you do, the more of a feeling you get for how much work it actually is. But doing proper planning is also a huge help. Especially if you plan your project in a way that you can easily scale the scope up or down. The MoSCoW list supports this by making you think about the features that need to end up in the game and the features that you would like to have but are not essential. This way you can focus on the important core gameplay while you still have the possibility to wrap up the project if needed or to keep adding new features to improve the game. Don't turn into a feature creep though.
"If you don't know if your scope is too wide, the answer is always yes it is."
Two different but very similar reasons for why projects get abandoned. Unfortunately, there is no real solution to these problems. Each project comes with phases in which you just want to jump onto a new project because everything new is exciting. You will also get many new ideas while working on your game and it is tempting to just start all over again. The outcome is that you will never finish anything. It takes a lot of willpower to fight through these phases of game development.
Some advice taken from the survey:
"Losing the expectation that development will always be fun/motivating and having a design doc that reminds you why you were inspired to begin with."
"Game development is a very consuming endeavour. It may not seem worth it, but if you're able to persevere, the positive emotions upon completion and reaching players who enjoy the project is unrivaled."
But planning again can make it a bit easier. As mentioned before, a project that is way too ambitious easily kills your motivation. If you are working on a smaller game it is easier to achieve progress which keeps up the motivation. Use this to your advantage.
"Cut a lot of content, try to find "small wins" (the super cliche 20% things bring 80% of value which is very true) and keep the scope small (you can always add everything later, if needed)."
Sometimes it also helps to switch to other tasks, especially if you are stuck on one thing. But this again requires proper planning to make sure there is always something else that needs to be done and not only that one single feature on which the whole project is depending.
One simple solution: Experience! But to be serious, this is quite similar to the problem that the project scope is too ambitious. You think you can do feature x in one day but then it actually takes you one week. It is always a good practice to assume that a task takes more time than you think. Especially if you are not sure how easy or difficult it will be which is the case if you don't have a lot of experience.
Bad planning can be the reason for some of the previously mentioned problems. Because it has such a huge impact on the project, it is important to create a plan that matches the scope of your game. In chapter 4.1 Pre-Production you can read more about creating a project plan. Take it seriously and prepare your production as well as possible. Otherwise, you may run into problems that can ultimately kill your game.
The famous feature creep that I have already mentioned multiple times in these guidelines. A feature creep is someone who constantly wants to add new things to the game. You can probably imagine the outcome. The development of your game takes longer and longer. It is natural to get new ideas while working on your project. Or when you are playing other games you might think that this one feature would be cool to have as well. And yes, it probably would be, but if you keep adding more and more stuff to your game you will never come to an end. Another problem is that you can make your game worse. Maybe you already have a fun gameplay loop but you keep adding features that distract the player from it.
If you really want to add new features, that were not in the original planning, always think about if it really adds to the experience and if you can afford to work on it.
Shit happens. Sometimes you have a good idea, plan everything, start working and at some point, you notice that the game is not fun to play. Or you need a specific feature but you are not able to get it working in the way you need it for your project. Even with all the prototypes and planning, it is not possible to foresee everything.
If you find yourself in that situation you can try to find a solution. But sometimes it is also the better option to leave the project behind. There is no shame in doing that. Especially if there is no other sensible option. And don't let that discourage you. While the project might not be finished, you have still learned something and maybe you can reuse the work for another project.
These are of course not all problems but now you should have a better idea of what can (and will) go wrong during game development. And these issues don't necessarily have to be the end of a project. Here is some more advice that I have received from the participants of the survey. Since I got more than expected, I will only show a few of them and attach the rest at the end of the guide.
"Try as many things you want and try to fail as quickly as possible, learn, and move on to another. Don't spend more than 5-7 months on first projects."
"Start and complete all your work. Abandoned work looks bad and isn't good for learning. Start with small projects (1 week), then work your way up to long term (1 year) high-quality projects. Assess what went well and what you can improve on each time. Show them to industry professionals and get their input, don't be afraid."
"1) Keep it simple.
2) Make a game only you can make.
3) Shoot for appeal. Keep testing for appeal."
"Start by making small games, game jams are really fun to start with and help you solve problems to work efficiently and fast. Look up tutorials and don't be afraid to google everything you need, even code."
"Ignore everyone else's advice (even this!). Make what makes you happy."
Don't ignore everyone's advice (especially if it helps you to do what makes you happy) but listen to your gut and decide for yourself if the support, that someone is offering you, is really useful in your situation.
And always keep in mind that you can reach out for help. There are a lot of communities out there that will try to help you if you get stuck or if you have any questions.
You should now know the basics that you need to start making games on your own. But there is much more you can learn to get even better at making games. It's a good idea to look into the theory of game and level design. Making a game is one thing, but making a game fun to play is another challenge. Or maybe you want to create games with a focus on storytelling. Then you should dive into that direction and look for ways to improve your storytelling skills.
You have reached the point where you are confident enough to work on a commercial game? And you are also thinking of working full time on your game? Then you should also think about funding. Making a game is expensive. Even if you are working on it alone, you still have to pay for yourself. I assume, that you want to work on your game while still having something to eat and a roof over your head. So if you haven't put some money aside to cover your expenses over the time of development, you will need to look out for another source of income. There are two common ways of getting your game funded.
Crowdfunding is one way to get money for your project. You might have already heard of sites like Kickstarter. On Kickstarter (or similar sites) you can create a page to present your game. Interested people can invest money in your project. If enough people are willing to invest in your game, the campaign is a success and you will receive the money. In return, the people expect you to deliver the game at some point. Crowdfunding has some really good benefits. Besides the money, a successful campaign proves that there is already some interest in your game and it will also give you additional attention.
Depending on how your project is planned, you have potential testers available for your game to gather feedback if needed. But there are also some downsides to crowdfunding. You need to get attention for your campaign. Otherwise, nobody will notice it. And if you can't manage to get enough people together who are willing to participate, the campaign is a failure which means that you won't get any money at all. If the campaign was successful than you also have to deal with an extra amount of pressure. Now the money of actual customers is involved. People expect the game as promised at the time you have promised. And because delays and other problems often occur in game development, you will most likely have to deal with angry supporters at some point.
Another way to receive funding is to work together with a publisher. A publisher usually has several benefits. Funding, marketing, QA, localization, porting, connections, and more. Most publishers offer these things to some extent or they can at least help you to get what you need. But while a publisher might pay you in advance for your production, you will pay for the publisher's service after your game has been released by giving away shares of your revenue. So it's a good practice to try to talk to as many publishers as possible in order to get a deal that is fair and fits your needs.
If you want to get in touch with a publisher be sure to be prepared. You should be able to pitch your game in only a few sentences (elevator pitch), you should have a plan for the production and the costs, and in the best case, you already have some sort of demo to showcase your game. Also, do some research on the publisher you are going to contact. You want to make sure that your game fits into the portfolio and that they offer the kind of support that you need for your game.
While crowdfunding and publishers are the common source of funding, there is also the possibility to release your game in Early-Access. This means that you publish your game in an early stage, but people are already allowed to buy and play it. This also has the benefit of having players that are giving feedback on your game. But unfortunately, Early-Access has a mixed reputation as there were a lot of games that just got abandoned during production, and people were left with a barely functioning game.
In some countries, it is also possible to get funding through specific organizations. But depending on where you are from, that is something you need to look into for yourself.
Marketing is a really complex topic and unfortunately, it was not possible for me to do more research on this part in the given time I had to write these guidelines. But there are a few tips that I have picked up over time that I can share.
The gaming market is overcrowded and if you don't manage to get some attention for your game it is likely to go down between all the other releases. If you are planning to make a commercial game it is good advice to build up a fanbase as early as possible. Twitter is a platform that is widely used by many indie developers. You can post screenshots, gifs, or videos of your game and interact with other people. My personal impression is that Twitter is the best platform to build up a fanbase. But I have no data to back it up, so I cannot prove if it is true or not. Some developers also use YouTube to get attention for their games. More and more so-called dev logs in the form of videos can be found on YouTube. Discord is also rising in popularity amongst indie devs and small teams. If you already have a small community, Discord might be a good way to keep in touch with your fans.
Besides building up a fanbase you should also look into advertising. The most common form is probably running ads on various websites. In addition to ads, it is also common practice to get streamers involved. If they are interested in your game they might stream it and present it to their audience by doing so. Be sure to have some keys (or other forms of access) ready for your game. You should also get in touch with reviewers. This can also help a lot to get the word around.
Some of these methods are going to be more efficient than others. And there are also a lot of different factors that can influence your marketing strategies in positive and negative ways. In any case, you should invest some time into marketing in order to increase your chances of getting noticed by potential players. Otherwise, it is basically playing the lottery.
Before we come to an end I want to recommend a few YouTube channels that you may find interesting and helpful:
There are probably even more good channels out there that I am not aware of, but with these, you should already have enough content for now.
Here is a summary of each chapter. You will find the important information without detailed explanations to keep it short.
As a solo dev, you are responsible for each job. Game design, programming, assets, and more. But don't try to be good at every position. This takes a lot of time and there is the risk to end up just mediocre at everything but not good at anything. Focus on what you like to do and build your game with your limitations in mind. You can also buy assets or use free ones for your projects if you lack specific skills. Or hire someone if you are willing to spend money.
Pick one of the most common engines (Unity, Unreal, or GameMaker: Studio 2) to make sure that there are enough tutorials available to get you started. In addition, these engines have big communities around them that can help you out if encounter problems or when you have some questions. In the end you should make your choice depending on what type of game you want to make and which engine feels more comfortable to work with.
And remember, there is no such thing as the best engine and you can always try out another one.
Start by following a tutorial series for your engine of choice. This way you will learn how to work with the engine and other basics that you will need to know for future projects. You will also get a feeling for how much work it actually is to make a game which is important if you start planning your project. If you feel confident enough you can try to copy old arcade games and give them your own twist. Always start small. Especially in the beginning, it is important to start projects that you can finish to keep up the motivation.
Before you start working on your own game you should learn the fundamentals of game development. There are three distinct phases: Pre-Production, Production, Post-Production.
First you will have to find an idea by brainstorming or similar methods. Or let yourself be inspired by other media, people, or nature. Write your ideas down, choose one, and make a prototype out of it. A prototype should always answer a question. Use it to test your idea and if the result is not sufficient you have to either iterate on your idea or find another one.
If you want to proceed then transform your idea into a game design document (GDD). This prevents you from forgetting details and you are forced to write down all the features properly which can already show up possible flaws in your design. The next step is creating a plan by setting yourself a deadline even if you don't really have to. This way you will put more effort into your planning and you will more likely come to an end. Break your project up into tasks and estimate how much time you think you need to finish each one. Always add more time to it because it usually takes you longer than you think. Especially as a beginner. Create a MoSCoW list and sort your tasks after priority to be flexible with future rearrangements.
This is the phase in which you actually create your game. Writing code, creating and implementing assets, designing the levels and everything else that is needed for your game will be produced. Testing your game is also important. Try to get other people to play your game and receive feedback so that you can improve your project.
Some games are going to be supported even after the release with patches to fix bugs or more content updates. If you are not going to sell your game this probably won't be important for you.
Always start with small projects and gradually extend the more experience you have. And check out the common pitfalls of game development to know what kinds of problems you will encounter during your production.
Release your game and then do it all over again!
Keep working to improve your skills. Maybe try out a new engine or challenge yourself by doing something that you haven't done before. Connect to other people and build up a fanbase. If you want to sell your game then you might also want to look into marketing.
Thanks to the people that helped me out by taking part in the survey:
Rami Ismail - @tha_rami
Bruno Beaudoin - @ItBurn_
Stefan - @stefanvlr
Wilson C - @wilsoncIndieDev
Jonas Tyroller - @JonasTyroller
Edd Parris - @empika
Enrique - @1pxlchibs
Jacob Williams - @ittas_gun
David Jalbert - @DavidJayIndie
Dillon Rogers - @TafferKing451
Matthew Martinez - @HyMyNameIsMatt
Günther - @monolithofminds
Chris Wingard - @Ruugard
Michael - @rattower
Joel - @JoelLikesPigs
Gabriel - @wildartsdevs
Matt Rusiniak - @shatteringgame
Christopher Smith - @lunoland
and one person that wants to remain anonymous.
And that's it for this guide. I really hope it was helpful in some ways. Let me know if you managed to finish a game or feel free to give me any kind of feedback. If you want to get in contact with me you can find me on Twitter @jy_hnz or you can send me a mail at [email protected]