In this post, we’ll be: giving an overview of what a game developer is (and the different specializations and skills), going over what you can do to get started, and giving you a list of more than 100 resources to help get you started.
You can click the links above to skip around the article
What is a Game Developer?
At the end of the day, a Game Developer is,
“A person who solves the problem of how to make a game”
No matter if they specialize in art, design, or programming, all developers are solving problems within the projects they work on. However, the most important part to remember is that they actually have to make a game to solve the “problem”(by this we mean design, develop, and distribute the project).
Game Developers both fill and create a need for their products. They must be able to adapt to their market and audience so that others find and see value in their projects.
In general, it is better to specialize, to make sure you have that one thing you can do well so that teams can find value in having you on their projects. However, if you plan to create your own projects and release them you must be prepared to fill many different roles (industry talk: wear many hats).
What skills do Game Developers Need?
This really depends on what kind of job the developer plans on seeking.
If you want to work for major companies like Blizzard, EA, or Ubisoft, then it is better to pick one specific skill area to specialize in. If you plan to work at a startup studio then it is better to learn one skill really well and pick a secondary skill to bolster your resume.
If you want to create your own studio it’s honestly best to just learn to make games (games don’t require the best art or the most mind-blowing mechanic, it’s better to focus on finishing the product and being unique).
Game Development Hard Skills
Game Artists are the developers that create the project’s visual elements.
They build the assets that other developers use to create levels and build characters. They also may be tasked with creating user interface elements or animating certain aspects of the game.
There is also the position of Tech Artist, which is a discipline in between art and programming that requires knowledge of visual design and software development in order to create graphical programs for a game (games with abstract graphics most likely have a Tech Artist on their team).
Learning to create art for games can mean different things. To start it’s important to choose between creating 2D forms of art, such as pixel art or vector sprites, or 3D forms of art, such as low-poly or photorealistic.
After choosing between 2D and 3D you should find an art style you enjoy. To discover different art styles look at various indie games on Steam or itch.io. Once you’ve found a style, keep creating until you can create pieces that you and others find “good”. By this point, you should begin creating an online portfolio to send people to when they ask for a sample of your work. Using this portfolio you can begin creating or finding game projects to work on so you can begin learning how to make art for a game-focused project.
Even if you plan on becoming a Tech Artist we recommend learning traditional 3D art first and progressing from there.
– Choose Between 2D and 3D
– Find an art style (by referencing games)
– Practice, Practice, Practice
– Build a portfolio
– Find/Create a game project
– Make, Make, Make
Bonus Tip: As an artist, it’s important to keep a portfolio of all of your work so when people ask to see your best work you can easily show them it.
Bonus Tip #2: It’s also important to constantly market your work. The more you promote your pieces on social media and other discovery platforms (i.e. Pinterest) the more likely you are to become known for game art (with the games industry being so small this is important).
Even if you decide to pick another specialization you will probably end up learning different types of design as even other specializations rely on forms of design.
Game Designers are the developers that keep the team on track with the project’s vision.
They are the ones who build levels, write documentation on game elements or mechanics, and make sure the game works at every turn.
To begin learning to design video games, it’s important to start designing video games. Honestly, it’s that simple. You’ll learn best from doing (by this we don’t mean writing down your ideas and ditching them). You can start by learning to make GDDs or Game Pillar Documents. After learning basic documentation try making documentation for your own idea and listing what assets you’ll need for the game.
Once you have the assets listed out you can start making the level you envisioned by downloading a game engine and finding the assets you need (we suggest using Unity and grabbing assets from the Unity Asset Store). Learn what it takes to fully design a level in a game (organization, lighting, asset placement/variance, etc) by building levels. You could also take this opportunity to learn basic programming so your levels include basic interaction.
Showcase your work on your portfolio and try to recruit others by showing them levels you have built with prototype assets. From here continue making your games and don’t be afraid to learn more about art or programming (designers should try to get a basic understanding of all aspects of development).
– Learn to make GDDs and Game Pillar Documents
– Make a GDD or Pillar Document for your own game
– List the assets you’ll need (models, UI, sounds, etc)
– Find free prototyping assets (such as in the Unity Asset Store)
– Build levels in a game engine
– Recruit developers of other disciplines onto your project
– FINISH your game
– Build more games | Constantly learn
Bonus Tip: Designers may find it a little harder to showcase their work on their portfolios (few people will read a multipage GDD). It’s important to make documentation so that you can show excerpts and images from it on your portfolio. We also recommend recording video fly-throughs of levels you build.
Bonus Tip #2: As a designer, you should also try to be as active on game development forums and social media as possible. Designers can use these platforms to build online teams as well as to find influences for game designs (but no mechanic copying allowed, only mechanic evolving design).
Game Programmers are essential in building the functionality for a game.
They program systems to get everything working as well as to help designers build content faster. After learning foundational programming, Game Programmers usually specialize in gameplay, artificial intelligence, or physics programming (there are also plenty more options).
Depending on if the programmer wants to work at a major studio or not they may never explicitly specialize, but simply learn things appropriate to what they need.
In the beginning learning to program can seem like a daunting task, but after wrapping your head around the core concepts you’ll understand how easy it can actually be. You can start learning to program by going on Youtube and searching for game programming tutorials (we recommend specifically learning to program for either GameMaker or Unity, as they have larger, more active communities, Unreal is also really popular). Focus on learning core concepts such as variables, loops, conditionals, arrays/lists, and engine specific functions.
Once you get used to basic programming inside of your engine/editor of choice you can start cloning other games. We don’t recommend releasing cloned games except for sharing among friends and family.
After you’ve made Pong, Breakout, Snake, Tetris, and Space Invaders (or similar simple games) try making your own game. You shouldn’t try to make anything big, instead stay small in scope and focus on finishing the game.
Once your own game is finished add it to a portfolio website along with the different projects you worked on before (make videos of the clones and focus on playable versions of your own game). Now that you have a portfolio to refer others to, you can begin looking for game projects to join (or make your own). Focus on finishing projects to gain experience, and never forget to promote your work.
– Use Youtube to watch GameMaker , Unreal , or Unity tutorials
– Learn Core concepts (variables, loops, conditionals, arrays/lists, etc)
– Clone simple games (Pong, Breakout, Snake, Tetris, and Space Invaders)
– Make your own simple game (FINISH IT)
– Create a portfolio using your finished game and clones
– Join projects or start teams and work on your own projects
Bonus Tip: If you’ve never programmed before, our team recommends GameMaker over Unity or Unreal as it has a lower barrier to entry. Both Unity and Unreal can be good first game engines, however, Unity’s setup and C# require a decent amount of work on the developers part and Unreal using C++ makes its learning curve a bit more drastic. It also takes a bit to learn methods of rapid prototyping in Unity and Unreal (you can learn a lot at game jams).
Marketing is a skill that every game developer should have. Knowing how to market will help you talk about your game, know what to focus on when promoting your, and get your game sold to more gamers. The DVNC team doesn’t have much experience with game marketing as it works at the company level, however, smaller studios can always benefit from having someone on the team that knows how to promote content related to the game.
Learning to market takes a lot of studying and doing. Be ready to spend a lot of your time reading articles on how to market, what type of content to promote, how to manage a community and many more topics.
To get started, we recommend creating a personal account on one popular social media platform (such as Twitter or Instagram) and one game development specific website (like gamedev.net or IndieDB). On the social media site focus on learning to use the application and on reaching the biggest audience (try different post types such as links, images, videos, etc). On the game development site, try to build your own community around something or become an active member of an already created community.
Once you understand how to use both of the sites you can find a game development team to join (this should be easy because you’ll already be an active member on a site devoted to game development). Offer to promote their content and help manage their community. If they don’t see the value in having a marketer on their team then try to find another team (there are thousands of teams online). Stick with the same team until their game is released and make sure to record the different marketing tactics you use and how effective they are.
After your first team’s game has been released you can make a website to build a portfolio and add that initial project to it as a case study, or you can find another team and repeat the same process while trying to become more effective. By having projects in your portfolio you’ll be able to find paid jobs easier.
-Make an account on a major social site (Twitter, Instagram, Reddit)
-Make an account on a game development site (gamedev.net or IndieDB)
-Learn to use both websites to build a following (read articles!)
-Find a game project, and offer to promote their game
-Work with them until the game is released
-Build a portfolio website
-Find more projects
Bonus Tip: Learning to market seems to be more about learning the secrets that other marketers know (certain sites, certain tools, certain people, etc). When googling a topic make sure to try multiple similar terms to get a range of content.
Bonus Tip #2: As with the other skills mentioned, to fully learn how to market you have to do it and be patient. Things randomly go viral you can’t expect it to happen within your 1,000 posts (maybe even 10,000 [but if it does please give us some tips!]). Again, be patient and focus on promoting content.
How do I get started?
Before getting started on your game development journey we’d like to give you a warning.
There will be moments when you’ll feel like nobody believes in you and you want to give up. During these moments it’s important to remember WHY YOU want to make games. Keep creating, keep smiling, and keep believing in yourself and eventually, you’ll find those people who love what you create (joining forums is an important part of staying motivated).
Now that you know what the broadly different skill sets in game development are it’s time to pick your specialization. This shouldn’t be too hard of a choice as in the end you should focus on what you like/want to do. However, it is important you pick the right specialization so that you can focus on learning a particular skill set and become more valuable to teams.
Think of this as picking a class in a game and filling a specific role in a group. If you change your class you’ll have to start at level 1 again (and wait until you’re at level 10-20 to become useful to a group), however, if you stick with that class in a few months you’ll be doing dungeons, and then after a few years (maybe even months) you’ll be doing 20-man raids.
Have you chosen your specialization? Excellent!
If not we still highly suggest that you do before doing any of the following.
Once you know what you want/need to learn, it’s as simple as going out and practicing it. If you read the long descriptions of the skills above, you should already have a general idea on how to go about learning the associated skills.
You can spend all of the time you want reading articles and following tutorials, but eventually, you’re going to have to learn to create without any help. Starting to create (art, programs, designs, etc) early will help you learn what skills you need to learn (seems a little inception-like, but learning game development is really about learning what skills you don’t know about so you can learn them).
We promise that it takes less time to learn core concepts than it does to actually learn to make. Learning a skill means understanding its core concepts (art: drawing, functional modeling, and Photoshop, programming: variables, loops, conditionals, etc, design: documentation, level design, and organization). While learning to make means applying those core concepts to create something while also teaching yourself new skills.
Once you’ve got the core concepts down you can begin showcasing what you’ve learned by expanding upon the tutorials that you follow (ex: instead of just finishing a pong tutorial try to also implement power-ups, particles, and sound into the game). Building upon tutorials outside of the scope of a tutorial helps you learn other topics that the tutorial may have only mentioned or never focused on.
It’s important to remember while you learn to record your accomplishments. You should use screen recording software (such as OBS Studio) to record video, along with using screenshot software (such as the Snipping Tool) to take images, of everything you do. If you’re an artist you should figure out how to appropriately export your files and then upload them to art sharing sites (like DeviantArt).
Building a portfolio using your videos and images will allow you to showcase your work in a central location.
There are plenty of tools and platforms you can use to build a portfolio (we recommend WordPress.com as it’s cheap to get started (about $50 for a year of hosting and a custom domain) and comes with an easy to use webpage editor/site dashboard. If you’ve never created your own website before and have no experience with hosting this is a quick and simple way to get a portfolio site up and running (and even a blog if you want to try building a following).
Promote and Socialize
Always be promoting your work on social media and on your website. By promoting your work, you’ll be able to show more people what you’re able to do. Having an online presence will help with getting onto teams and being hired for jobs (but limit the amount of personal information you disclose [name, email, and website should be enough unless it’s a job offer]).
Along with promoting, socializing with other game developers will give you leads on jobs and projects. Participating in game jams, finding development forums, and giving feedback and compliments to other devs on social media are great ways of getting your name out there and becoming recognized for know X about game development.
Make sure not to get lost in promoting your past work. You should be constantly focused on improving your quality of work and being able to make “good” work faster. Consistently creating is one of the best ways to make sure your skills keep improving. By finishing projects you will have solid examples of your work, and be able to show how you’ve been improving through the aforementioned portfolio site and social media page you have.
Staying motivated and interested can be hard, but this can be combated by surrounding yourself with other creators. If you ever get tired of creating, try finding a casual development team to join or a community challenge to participate in. By having other creators around you to support and motivate you, you’ll automatically want to keep improving.
Again, at the end of the day, you’re a creator, but you do want to be a creator that people know. Focus on your work, constantly create, and never stop promoting (even if it’s just a post on your personal account).
100+ Resources for Getting Started (Free and Paid):
Want anything added to this list? Let us know via Twitter.
A member of r/gamedev pointed out to us that there is a more comprehensive list of tools, books, and tutorials here.
Image Editing (Vector and Raster)
Game Development (Books about making games):
General (Books that can be applied to the Games Industry):
Youtube Channels (Tutorials and Design Talks)
Twitter (Awesome Account to Follow)
Reddit (Great Subreddits to Join)
Pinterest (Resources and References)
Unity Beginner Tutorials
Unity Intermediate Tutorials
Unity Particle FX Tutorials
3D Art Tutorials
Pixel Art Tutorials
Indie Game Design and Development
Indie Game Devlogs
GDC Presentations and Videos
People to Follow: