Welcome to Gamedevtuts+! This site is dedicated to game developers, and we host tutorials, tips, and articles about game design, coding, and working in the industry. Whether you’ve never made a game before or you’re a long-time developer looking to learn something new, this guide will help you find the best of our content.
Making Your First Game
If you’ve never made a game before, head straight to our From Scratch section. Each of these tutorials will walk you through building a game from start to finish, with no coding required! You won’t need to spend any money on software, and we provide all the art assets you’ll need, too, so it’s easy to dive in.
In particular, I recommend these:
Canabalt-Style Infinite Runner
With this screencast tutorial, you’ll create an infinitely scrolling, Canabalt-style platformer, from start to finish. The final game has randomly generated levels, player movement, death conditions and basic scoring.
Artillery Game
In this written tutorial you’ll learn how to build a two-player tank game in Multimedia Fusion 2. It will feature custom 360 degree shooting and destructible terrain.
Try it out! Take it in turns to fire with the mouse.
Angry Snowman
In this two-part screencast tutorial, you’ll see how to build a wintery Angry Birds-themed game. This tutorial can be followed on either Windows or OS X.
Space-Based Shoot-’Em-Up
In this detailed five-part tutorial series, you’ll learn how to make a frantic side-scrolling shoot-’em-up, complete with multiple levels, parallax scrolling, lots of enemies, power-ups, and even a boss battle!
From Beginner to Intermediate
Once you’ve made a few games with the help of the above guides, it’s time to take your skills to the next level. That’s where our our How to Learn articles come in. Each of these guides you through recommended resources (books, tutorials, screencasts, and our own advice) for learning a specific gamedev platform like XNA, Flash, and Unity.
While you’re learning to code, check out Steven Lambert’s six-part series on object-oriented programming for game development. You should also take a look at our glossary section, which features concise explanations of important gamedev terms and concepts like the game loop, blitting, and normal maps.
At this point, you’ll be ready for our core content – most of our tutorials and articles are aimed at game developers with a fair amount of experience in their chosen platform and a couple of games under their belt.
Game Design
We have a number of tutorials and articles about designing games: from coming up with an idea in the first place, to making sure the player finds it fun to play and rewarding to win. Here’s a selection:
In-Game Tutorials
I’m learning and having fun!
With so many games to play, getting the player up to speed on how to play your game very quickly and in the most entertaining way possible is almost essential to keeping their interest. In this article we take a look at the different ways to teach the player how to play your game.
Boss Fights
Boss battles have existed since practically the beginning of gaming and they have all followed a similar idea throughout the years: a big baddie that gets in the way of some major objective. In many cases they have had an overbearing role during the game’s story, with ongoing hints of their existence or of the approaching fight with them.
The bosses in Deus Ex: Human Revolution can change a player’s playing style quite dramatically.
But there’s more to boss fights than this. They serve as a way to change up the pace of the gameplay and often offer a break from any repetitive game mechanics throughout a game. They also help push forward the storyline in most modern games as well – but more often than not, they serve as a way to change what the player is doing.
Game Seeds
Have you ever wondered whether it would be possible to design a game by playing a game? Well, let me introduce you to Game Seeds, a card game designed to aid your brainstorm sessions in different and creative ways.
Achievements
Gamers love achievements. They’re fun, they add an extra layer of content, and they let you show off your gaming skills. It generally doesn’t take much extra effort for developers to add them, so it’s not surprising that games without achievements are now in the minority.
Unfortunately, achievements are still often poorly implemented; whether this is a result of lazy developers, or because achievement design is still a relatively new aspect to game design, we often see achievements which simply aren’t fun. In this article, we’ll look at how to make the most of achievements and ensure that they don’t detract from the game.
Difficulty Levels
Every gamer and games journalist will invariably end up talking about difficulty when discussing a video game. This often takes the form of a comment saying it’s “too easy” or “too hard”, but it’s a topic that deserves to be looked at in much more depth, as the way it is handled can completely reshape a player’s experience with a game.
This type of thing is “artificial difficulty”.
In this article, we look at extremely high difficulty in video games, what works, what doesn’t, and what we can learn from it.
Coding Games
Our implementation tutorials tend to be some of the most popular among both readers and writers. We aim to make sure that all of these tutorials are “platform-agnostic” – meaning that, no matter which gamedev platform the author uses, you should be able to follow along with the platform of your choice.
Dynamic 2D Water Effects
In this tutorial, Michael Hoffman shows you how you can use simple math, physics, and particle effects to simulate great looking 2D water waves and droplets.
If you enjoy this, check out Michael’s 2D Lightning Effects tutorial as well!
Verlet Integration: Fabric and Ragdolls
Soft body dynamics is about simulating realistic deformable objects. We use it here to simulate a curtain and a set of ragdolls that you can interact with and fling around the screen. It’s fast, stable, and simple enough to do with high school level mathematics.
SAT Collision Detection
The Separating Axis Test is often used to check for collisions between two simple polygons, or between a polygon and a circle. As with all algorithms, it has its strengths and its weaknesses. In this tutorial, we go over the math behind the theorem, and show how it can be used in game development with some sample code and demos.
Drag and drop the object and use R and T to rotate them.
Create an In-Game Retro Synthesizer
This three-part series shows you how to create a synthesizer based audio engine that can generate sounds for retro-styled games. The audio engine can generate all of the sounds at runtime without the need for any external dependencies such as MP3 files or WAV files. The end result is a working library that can be dropped effortlessly into your games.
Animating With Asset Sheets
So you’ve got your awesome game in the works, it’s got all sorts of complex physics, epic enemy AI or what-have-you. But it feels lifeless. You want some OOMPH, you want some animation!
So if you go and look up how to animate, the first answer you come across will most likely be a method using spritesheets and blitting. In fact, almost all tutorials on the web talk about nothing but blitting, as if there’s no other way to animate. This tutorial explains a way that’s much more fitting for certain games!
A Pragmatic Approach to Entity Composition
Organising your game code into component-based entities, rather than relying only on class inheritance, is a popular approach in game development. In this tutorial, we look at why you might do this, and set up a simple game engine (seen below) using this technique.
Understanding Steering Behaviors
Steering behaviors aim to help autonomous characters move in a realistic manner, by using simple forces that are combined to produce life-like, improvisational navigation around the characters’ environment. This set of tutorials cover the basic theory behind various behaviors, as well as their implementation.
The “Evade” steering behavior
If this is the kind of thing you’re interested in, check out The Three Simple Rules of Flocking Behaviors, too.
Implementing Tetris
It’s definitely possible to create a Tetris game with a point-and-click gamedev tool, but it’s tricky! You might find it more comfortable to think at a higher level of abstraction, where the tetrimino you see onscreen is only a representation of what’s going on in the underlying game. This pair of tutorials shows what that means, by demonstrating how to handle collision detection and line clearing in Tetris.
“Undo” With the Command Pattern
Many turn-based games include an undo button to let players reverse mistakes they make during play. This feature becomes especially relevant for mobile game development where the touch may have clumsy touch recognition. Rather than rely on a system where you ask the user “are you sure you want to do this task?” for every action they take, it is much more efficient to let them make mistakes and have the option of easily reversing their action.
In this tutorial, we look at how to implement this using the Command Pattern, using the example of a tic-tac-toe game.
Snowy Particle Effects
Particle effects are very common in games – it’s hard to find a modern game that doesn’t use them. In this tutorial we take a look how to build a fairly complex particle engine and use it to create a fun snowy scene. Put your woolly hat on first!
Being a Game Developer
Game development is about more than just coding and design! You need to find people to work with (and figure out how to make such a collaboration work), raise money and budget it, prioritise how to spend your time… There are a lot of additional skills.
We cover these aspects of gamedev in our Business articles and tutorials, and our Workflow articles. Here are a few to get you started:
How to Make One Game a Month
In 2012, Christer Kaitila made one game a month, every month; at the end of the year he laid down the challenge for other game developers to do the same. This article details how he achieved it, and how you can too!
Check out Christer’s post on getting the most out of a game jam, as well.
How We Funded Our Indie Game Company
Christopher Parkinson and his brother set out to start their company with very little coin in their pockets. This article explains how they obtained the funding necessary to start their studio while keeping their personal spending low.
What do you do when your Kickstarter fails?
Missteps of Newbies in Gamedev Communities
As a moderator on Scirra’s forums and having provided support for Construct 2 since its early days, Kyatric has seen his fair share of newcomers to programming. It’s common to see beginners get excited about their new discoveries, their fresh perspectives, and the overwhelming feeling that they’ll actually get to build their dream game. This is all great, but often these feelings lead to those beginners making certain missteps when joining an online gamedev community.
The Construct 2 Technical Questions forum
In this article, Kyatric details these missteps, and shares his tips on how to avoid them.
Making International Collaborations Work
If you think developing a game is hard, try doing it with someone you don’t know located on the other side of the world. In this tutorial, David Arcila shares the fundamentals of developing a pipeline and improving your team’s workflow in those cases where each member of the team is in another timezone.
Growing From (and Surviving) Mod Teams
Breaking into the game industry can be a long and rocky road — where does one even begin? There are many avenues to take on the journey to making games, and the best path is different for each person. For those looking to jump right in and start making games, try joining a mod team! But what exactly is a mod team and how do you find one that’s right for you?
Team Fortress began as a mod for ID’s Quake engine (shown here)
And the Rest…
There are several other sections of the site, but they’re still growing at the moment. Still, don’t miss our collection of post mortems, or our articles on game UI, building a retro aesthetic, choosing color palettes, designing StarCraft II levels, or using the excellent map editor Tiled.
We’ll update this roundup periodically as the site gets bigger, but besides that, here’s how to keep up to date with our latest posts:
- Follow @gamedevtuts on Twitter
- Like Gamedevtuts+ on Facebook
- Find us on Google+
- Subscribe via RSS
- Join the Newsletter
Thanks for reading Gamedevtuts+!