With over ten years of game development experience, I wanted to sit back and think about what I would do if I had to learn everything again from scratch. What steps would I take? Where would I even begin?
When it comes to game development, it is unlike most other industries in the sheer amount of skills you need. Even in comparison to other forms of entertainment. Quality video games require a large amount of discipline and skill to see through to the end.
The free Unity assets are a great start and can get you pretty far along in the journey, but games are still really difficult to make. Your first game may be simple, but it still requires an eye for art, programming skills, and work put in to make everything work with one another well.
Below are the steps that I would take if I were to start my game development journey over again:
1. Develop a Schedule
I place this as number one for a very important reason. Game development is not something you can pick up overnight.
In comparison to learning an instrument, which I have done, I was able to learn how to play the guitar rather quickly. 15-20 minutes per night for a few weeks and I could play several basic songs. Others may even find my talent a bit impressive. A few months of playing the guitar daily and you will be surprised at what you are able to do.
In contrast, a few weeks you might be somewhat proficient in 3D modeling, but you have yet to figure out the texturing process, animation, or getting your models functional in Unity.
For this reason, I highly recommend you develop a schedule. Treat it like work or school. I’m not saying you have to devote 40 hours or even a daily routine. However, without some type of schedule or commitment to the craft, you will find yourself feeling like you are treading water. It’s less enjoyable and you might look back weeks or months down the road and feel disappointed with your progress.
2. Focus on Technical Skills Early
The second step I recommend is focusing on the technical skills early and keeping your focus on this for a significant period of time. In my classroom, we do nothing but technical skills for several weeks. This means that we are learning about pixel art, or 3D modeling and texturing techniques. After this, we focus a few weeks on developing some programming skills. These are some of the technical skills you will need to develop in order to build a video game.
Unfortunately too many students I see come in as the “idea guy”. You know who he is. It’s the guy that has no skill but has all the ideas. I try to encourage students to not even consider a game they are building for the first little bit.
Once you begin to develop your skills and find out what you like and don’t like, then it’s easier to apply what you know to a game. If you find yourself frustrated with Blender, then maybe you don’t want to build that beautiful 3D first person shooter. Maybe you want to start with a smaller puzzle game with fewer 3D assets that need to be made.
Warning: You Will Never Know It All
The only thing I would like to add here is that you will never know it all. When focusing on art skills, your art will continuously improve. For this reason, put some limitation on how long you spend on each area. If you can 3D model some basic things, then perhaps it’s time to move on to another area.
You can literally spend months simply perfecting your modeling skills. This is great, but if you do this then you’ll find yourself lacking other skills you need to build a complete game.
My students never feel like they have a solid foundation, but I am always surprised at the work they are able to do by the end of a school year. It’s not because they started out great, but because they kept pushing themselves and improved over time. You will never feel like you “know enough”.
3. Keep Your First Project Simple
Most of us have a game or two in mind that we would love to see exist. Maybe you have a storyline you would love to see built a bit further. Perhaps you have a favorite game that you would love to build yourself. For me, that’s games like Fallout. I love telling a story through game design and the post-apocalyptical and discovery of the Fallout series have always appealed to me.
However, there’s a reason that companies like Bethesda have several hundred people working on their games for years at a time. They are huge games, requiring a lot of attention to detail and elaborate environments that make up that storyline. It simply would be too much for a single person to recreate and would be nearly impossible for a new game developer.
That being said, you can still create really cool storylines with small teams or as a solo. Games like Firewatch come to mind. It’s possible, but you have to be really careful with your project and find angles to keep it simple. The reason Firewatch can be done with a limited-sized group is that it has very few NPCs in the game, it is almost all audio and text outside of the environment and story pieces found at different times by the player.
If you would like to know more about my thoughts on first games, I wrote an entire article outlining some of the game types that I would recommend for new game developers.
4. Develop a Plan
At this point, you may have an idea for a game. It is likely something in your head, but it’s time to make your thoughts organized and put them on paper. Game design documents (GDDs) are extremely important.
Some benefits to having a quality game design document:
- A GDD will set clear goals. You will be able to identify early what you have to build.
- A GDD will help you set a timeline. Although a game design document is a living, breathing document that is continuously changing. A solid plan early can help you identify how long the project may take and whether you may need help in completing it.
- A GDD gives you a voice about your game. You should be able to talk about what your game is without getting lost in, “Well, it’s a bit of this” and “Well, it’s a bit of that”. If you don’t know what your game is about, then others will be lost as well.
- A GDD keeps a team organized. If you are working with others, then the GDD is the document you refer to often. When team members have ideas, you need to see if that fits in what the game is meant to be. If it doesn’t, then you toss the idea. Also, when members of a team go off track, it’s a document to have a conversation from to help realign them.
- A GDD can assist with avoiding project creep. Project creep is when a project grows passed the original plan. It happens in many projects that don’t have solid documentation early. New ideas or concepts arise, but this extends the amount of development and time it will take to complete a project. It may lead to a project never being finished.
Having a plan will assist you and your team in many ways. Even though the plan can change, I recommend that you never lose sight of the original goal or mission. It will help you stay focused and driven. It gives a developer an end in sight which helps you feel progress. In contrast, without a solid plan, you may begin to feel like you are spinning your wheels as the end goal is never in sight.
5. Develop an Elevator Pitch and Live By It
This was something I considered early in my development career. Regardless of whether it is web design or game development, an elevator pitch will really help the development of a project.
An elevator pitch is a one to three sentence statement explaining what a project is in its fully completed state. The concept is that you should be able to explain what your project is to someone in the length of time it would take to ride on an elevator.
Elevator pitches help you evaluate whether new feature ideas, storylines, or game mechanics fit the overall concept of the game. As an example, Satisfactory is a relatively calm game, focused on resource management. For this reason, they have not opted to force combat on players. Players have requested that NPC’s come to destroy your factory, but their response was simply that “it isn’t the game we are building”. I am sure their elevator pitch helped them align whether this feature would be good for their game or not.
Spend time refining your elevator pitch. It should be rich in words that define what your project is.
A poor elevator pitch would be something like: “My game is about my great grandfathers past.”
A good elevator pitch would be something like: “Justus was a confederate civil war captain who settled in west Texas in 1880 to escape carpetbaggers coming to Arkansas. Justus is a 3D open-world role-playing survival game in which he encounters issues related to establishing a new settlement beyond civilization.”
6. Show Your Work Often
You do need a thick skin to work in this industry. Unfortunately, even game developers are a bit harsh to one another. Still, getting feedback on your work is important.
Here are some of the benefits of showing your games development progress:
- It allows you to see if there are people interested in playing it once it is released
- It allows you to build an audience, which is great not only for your current project but future projects as well
- Having an audience will increase your release sales.
- You can receive feedback on your work – identify weaknesses
- If often gives you goals to achieve each week
There are several places you can show off your work. There is something called Screenshot Saturday. Reddit isn’t the only place that has them. There are several Facebook groups related to game development that do them as well. It’s basically just an opportunity to show off your work and see progress over time. David Wehle, the developer of The First Tree, credited a lot of the success of his game to posting his progress each week.
Another opportunity to show off work is through websites such as Artstation. Concept artists, 2D artists, and 3D artists alike show off their work there. It’s a great way to build a portfolio while you are creating really cool art too.
7. Immerse Yourself in the Game Development Community
Although similar to the step above, this one is above establishing yourself within the community. I have been fortunate in my career to come along people who have really helped me along the way. They were encouragement when I needed it and a voice of clarity when I needed some advice.
Game development can be terribly frustrating at times, especially early on when you know you just have one line of code wrong, or an animation isn’t quite looking right and you can’t figure out why.
It’s the contacts you make along the way that will help you get through those moments. In a classroom environment, I think most students would be willing to argue that their classmates are truly instrumental in them growing in their skills and knowledge.
Who would you reach out to right now if you needed a programmer? What about a modeler? More than likely if you haven’t been a part of the game development community at all, you probably don’t have anyone in mind. You also never know how these contacts may help you later in the future for jobs or making a little bit of money.
The best way to do this is simply to join the communities where game developers are hanging out. Facebook groups, reddit subgroups, or sites like Artstation are all great places to get started. My advice though is do it not to gain anything. Provide sound advice, be authentic. People will appreciate that. Don’t go into relationships with the sole purpose of leaching off of them for your own gain.
8. Create Obtainable Goals
If you are familiar with Agile Scrum you have probably already seen the benefits of short, obtainable goals. However, it’s something I think a lot of people struggle with early on if they have not been a part of larger projects. They can only see the end, but it can get discouraging quickly doing it that way!
Once I have put a little bit of my game together and I’m starting to show off my work and build contacts, I think it’s time to buckle in on a routine or a cycle that can help you finish your game. This is the part that most people struggle with. They are excited about their project early on, but after a few weeks of working on it, you’re tired. So how do you push through?
Get excited about the small things you can accomplish! My advice would be to look at a small portion of your game. Some examples might be character animations, an inventory system, or a dialogue system. These “systems” or small portions of your game are things you can show off, they should be relatively accomplishable within a week, no more than two weeks time frame.
If you know that it will take you longer than a week or two to complete, I think your goal should be smaller. I also like the idea of building them to the level you want them to be in the game. For example, if you are working on a sword mechanic, try to build an awesome sword model to work with, not a rinky-dink placeholder that you are wasting time on. To me, this is a waste of time and effort and doesn’t look as impressive when you show off your work. I believe in building for production anytime you open Blender or Photoshop.
9. Team Up (When It Makes Sense)
If you have reached this goal, you have been working on your game for a little bit. You have developed enough skill to know what you’re good at and what you’re not. This means that for some projects you may want to find some people to help you out on your project.
If you have been showing off your progress and you have quality work, you may have already had people offer to help you out. This may be a good opportunity to exercise the benefits of having some of those contacts in the industry.
Do you hate programming or find it difficult and time-consuming? Then maybe you should send that to someone who really enjoys that part of game development. Are you a great developer, but really hate the art side or just find that you’re not very good at it? Then go out and find a talented artist!
Obviously, do your due diligence on ensuring that the person you’re working is capable, qualified, and has the same standard of work that you do. However, it’s not hard to find in-game development right now. There are a lot of people that really want to work on cool projects. If you have a solid start to go from, it won’t be hard finding someone who wants to jump on board. The issue will be finding them for the right price that fits your budget or negotiating a deal that works well mutually.
10. Be Critical of Your Own Work
Never become satisfied with your ability. It can always improve. Game development is so large that you can always learn. Sure, you’ll find things you’re good at and things you don’t like. However, even those areas where you consider yourself and others have told you that you’re really talented can improve.
Be the first to acknowledge when your work isn’t good enough. The difference between good games and great games is the details. I think there are appropriate times when you have to say, “Well, that’s good enough”. However, I am a firm believer in the 80/20 rule.
The 80/20 rule states that the difference maker between good and great is in the 20% of the work you do. It’s that extra few minutes to add detail to a weapon. It’s the few extra models you make to bring an environment to life. It’s the extra hour you spend giving your character a unique and interesting walk animation that fits the feel of the game.
You have to be careful how and when you utilize this rule, however. You can go overboard and spend hours on animation or a small model that will just sit in a corner and never really add value to your game. This simply is a time-sink and would be wasting your time. Find the noticeable details for players that will make the difference in making your project feel special.
11. Focus on Areas of Weakness
The way you can improve as a game developer is to improve in your areas of weaknesses. I try not to shy away from the areas that I enjoy the least. In my case, I have found that those areas that I feel I enjoy the least I am likely just less proficient in. As proficiency increases, so does my enjoyment of it.
I have witnessed the majority of students being frustrated with programming. However, when I have a few students who push through and “figure it out”, they seem to have the most enjoyment in the end. There is something about pushing through challenging moments that leads to job satisfaction on the other side.
I would encourage anyone who is in game development to take some time in between projects to focus on these areas of weakness. Force yourself to build new skills and talents for a few weeks before jumping into anything else. It will broaden your skills and also broaden the types of projects you are able to build.