How to Draw Animals: Snakes and Their Patterns

6 comments
What You'll Be Creating
Snakes are one of the most-drawn animals, if not the most drawn animal. They're considered to be very simple, with no legs or special muscles that need to be defined. There's only a head (without ears!) and a long tail—what can go wrong?
So, welcome to the perfect start into the world of animal drawing: a guide to drawing snakes! I'll show you how to draw both venomous and harmless snakes, and how to draw their scales and patterns realistically. We won't focus only on one species, but rather will look at the techniques you need to draw any part of any type of snake. Aafter going through this tutorial, you should be able to draw most varieties of snakes almost effortlessly.
Let's start with some basics about snakes' anatomy. We tend to see think of snakes as  made mostly of a long tail, but the truth is, the majority of a snake's body is actually a long chest.
snake basic anatomy
1—head, 2- chest, 3—tail
The outwardly harmless belief that a snake body is mostly made of a tail leads to entirely incorrect drawings of snakes. Even as one of the simplest animals, snake drawings still suffer from a too-cursory knowledge about their makeup. Instead of seeing them as a constantly tapered tail, it's better to imagine them as a string of beads—which confirms closer to the curved rib shape that actually makes up the snake's body. "Neck" beads are a bit narrower than "chest" ones", and then they get smaller and smaller, but not very rapidly. In contrast, if you think of a snake as just a long tail, you'll likely sharply taper its entire length.
Snake as a tail versus snake as beads
The differences in body tapering if you draw a snake as beads instead of just a tail
The length and width of the "neck" and "chest" segments depend on the species. Some will have no neck at all, while others are so slender the chest will not be noticeable. If you're drawing a snake without focusing on the species, you can experiment here. Remember—snakes don't need to be always perfectly slender, and sometimes they look fat and clumsy!
moving beads in snake body
The string of beads method makes it easier to draw snakes in motion
The "string of beads" method is very useful in creating 3D poses. If you have problems with imagining the sides, you can use cubes instead of balls.
3d bead snake body
Turning your bead snake body into a 3D drawing
You can make the 3D very easy to draw by adding more circles between those building the pose. This way you'll get a sense of volume, and the sides will be easier to define.
upright snake with bead body
full upright snake body
An upright snake body with the extra circles to give its body volume
What about snake's famous hoods, often seen in cobras? They're actually a snake's body, flattened by straightened ribs. That means the hood's width is dependent on the normal width of the body, and it can't be as wide as you may like it to be.
snake hood
A snake's hood drawn proportionally to its body
To create a believable pose, we need to know how snakes move. 
1. Serpentine movement - the classic movement of a snake. The animal use its strong body to push on terrain crimps (or just uses the terrain as a whole, if it's rough enough to create resistance).
serpentine movement
Serpentine movement

2. Concertina movement - the movement where the snake folds and expands regularly, like a concertina or accordion. Snakes use this method when climbing or coming through narrow tunnels.
Concertina movement
Concertina movement
3. Caterpillar movement - this movement works similarly to a vertical concertina movement. Slight horizontal concertina may occur as well during this movement.
Caterpillar movement
Caterpillar movement
4. Sidewinging movement - this method is very efficient on slippery or hot surfaces (like desert). The snake pushes itself with a swaying motion of the raised coils, which makes it move somewhat sideways.
Sidewinging movement
Sidewinging movement
I'm going to show you three views of the snake's head at the same time: side (1), front(2) and top (3). This way, you'll be able to easily compare them to understand this form in 3D.
Start with a flattened ball. In addition to the center line, there should also be a line placed at one third of the diameter.
circle for snake head
Draw a line in the center and at 1/3rd diameter height of the circle
We next need to define the jaws and cheeks. The arrows in the diagram below show you the flow of this shape.
Adding cheeks and jaws to the snake
Adding cheeks and jaws to the snake
Add another, bigger ball behind the main one. This way, we'll elongate the skull properly.
additional head ball
Add an additional ball to the head.
How much larger should this second ball be? Generally, venomous snakes have more triangular heads, with a clear neck endpoint, so you'll want a much larger second ball. Nonvenomous snakes typically have narrower heads so the second ball only needs to be a bit wider.
second ball
Vary the width of the second ball depending on the type of snake
You can now easily outline the contours.
adding snake head contours
Outline the snake head contours
The eyes are placed close to the narrower tip of the skull.
Now, smile! The snake's smile—or mouth, rather—should be wide and well defined. Add small nose holes appropriately as well.
snake mouth
Add the snake's mouth and nostrils
With all the guide lines, you can easily sketch the rest contours. Don't forget about a small hole between the lips that lets the tongue slip out without opening the mouth!
outlining snake face
Add the contours of the rest of the snake's head
If you're adding a bottom view to your snake, use the top view circles to create the bottom one, and just forget about the eyes and nose.
bottom of snake head
The bottom of the snake head retains generally the same shape
If simply redrawing the scales at random doesn't satisfy you and you want to remember rules about their placement, here's a few tips. Keep in mind that not all snakes are the same, and their scales may vary as well. What I'm showing you is a general pattern, especially common for nonvenomous species.
Let's start with the mainly vertical lines. There's one right under the eye, two on its sides, and three others near the nose. (Observe all the views to understand exactly what you're drawing, so you'll remember it more easily).
large scales 1
The general direction of the large head scales
large scales 2
The large head scales, outlined
Now, let's go horizontal. Draw a line from the nose to the eye, then split it into four new ones. The front of the head needs some little tweaks too. 
horizontal lines 1
The main horizontal scale lines
head horizontal 2
The main horizontal head scales, outlined
Now, back of the head. Right behind it regular scale rows begin.
direction of neck scales
The direction of neck scales
neck scales outlined
Neck scales outlined
The bottom view of the head needs a different treatment:
bottom scales
The standard scale outline on the bottom of a snake head
If you don't want to learn all these arrows by heart, here's a colorful scheme for you. Once again, keep in mind that every snake is different and you can modify these shapes accordingly.
snake scale color scheme
1—side, 2—front, 3—top, 4—bottom
Venomous snakes (and some nonvenomous snakes—pythons, in particular, have them very distinctively) can have heat-sensitive pits on their heads. You can treat them as big nose-holes made of scales. You can find them somewhere next to the nose, and in a row on the upper or lower lip (not necessarily everywhere at the same time, as shown below). They let the snake see the temperature (infrared light) to spot the warm body of its prey.
Venomous snakes have also smaller, tighter scales on their heads, similar to the ones on the rest of their body. They're easier to draw, since they're often quite chaotic. You can make the head less "smooth", with high nostrils and strong brows, to define the aggressive look of the snake.
heat-sensitive pits on snake head
Heat-sensitive pits on snake head
Time for some details. Generally, venomous snakes have slit pupils, while nonvenomous snakes have round pupils. Their eyes themselves are round, but can look sharper thanks to a "brow" scale. Use it for an evil look!
snake eye shapes
Nonvenomous, venomous, and brow-shaded venomous snake eyes
Snake eyes come in unbelievably great set of colors. Basically anything you can imagine will look good on your made-up species, as long as you stick to the round shape and proper pupil. 
snake eye colors
Be creative with your snake eye colors
Snakes have the most interesting jaws construction of any animal (except perhaps for the moray eel). Let's start slowly. First, the fangs (if present) need to be curved to inside, so that the snake doesn't bite itself (snakes are not actually immune to their own venom!). 
snake teeth
Make sure your snake's teeth are pointed inwards
Secondly, there is a bone between the upper and lower jaw, loosely connected to both of them. It gives the jaws a tremendous range of motion. Snakes with long and strongly curved fangs (like vipers) may be able to "retract" them—bend the tip of the mouth to point them straighter.
snake jawbone
Snake jaws can open very widely to point the fangs straighter
But that's not all: each jaw is split in two (connected by an elastic ligament), and each can move independently. Now it's obvious how snakes can swallow prey much larger than their head!
snake jaw motion
Snake jaws have a wide range of flexibility
Let's take a good look at a close-up of the head:
  1. Fangs - sharp as needles, often covered with a thick gum. Only venomous snakes have those!
  2. Venom duct - venom runs from its gland right through a hollow fang. Then it can be transferred into the prey's body during a bite. Some species are able to spit the venom through the fangs.
  3. Glottis—a hole that's part of respiratory system. It lets the snake breath when it's swallowing, and is also able to create the hissing sound.
  4. Tongue—it's long, slim (but not flat) and shiny. A snake use it to "lick" the air, so it's used as an additional sense. To process the "taste", the tongue must touch a special organ inside the mouth, hence the slipping in and out. The tip is forked to create two independent tips, each receiving a slightly different signal from its side (just like two eyes). The pose shown below is impossible, since the tongue slips out of its sheath only when the mouth is closed.
  5. Cheeks—these strong muscles manage the movement of the jaws. Draw them as they deserve, thick and solid.
snake head anatomy
Each of the sections of the snake head, as described above
Scales are where the simplicity of a snake ends. Now the brave artist must be patient and draw all the scales one by one, and then shade them the same way. No, I'm not going to show you some magic method to avoid the work—instead, I'll show you how not to waste this time by ending up with a flat pattern.
We already described and sketched the scale structure all around the head. Beyond that, quite regular and well-known scales occur in neat, orderly rows. The dorsal scales cover all the back and sides, while the remaining space is taken by ventral scales—wide, elongated plates covering all the belly, parallel along the body. They can be as wide as the body (covering whole belly's width) or narrower. If they're narrower, they may not be visible from the side.
snake body and belly scales
1—side, 2—bottom
Of course, there is a place where the belly ends and the tail starts. It's defined by the anal plate (colloquially speaking, a snake's butt). Here things go a bit different for a venomous (left) and nonvenomous (right) species:
  • venomous snakes have a single anal plate, and the scales under the tail are placed just behind it
  • nonvenomous snakes have the anal plate slipped, and then the other scales are divided too.
snake tail scales
1—belly, 2—anal plate, 3—undertail
Drawing the scales themselves isn't very hard, and you have probably seen the mini-tutorial in the image below. Cross some lines, them draw the scales between them—we've all been there. The problem is, this trick gives us very flat laying scales, so we need to modify it.
basic scales
The default way to criss-cross lines and turn them into scales
Here's the steps you need to make your scales contour to the snake's body and appear more life-like.
The trick is to bend the initial line a little, to an opposite direction at both halves. So, instead of drawing an oblique line, you just need to draw an elongated S (or integral symbol), and cross it with its mirrored reflection.
snake scales curve 1
Draw a shallow figure S instead of a straight line...
snake scales curve 2
...then cross it with its mirrored reflection
The other lines need to copy the bending. Simply repeat that shallow curved line pattern along the snake's body.
remaining curved lines
Continue the curved line pattern
If you draw the scales on the mesh now, you'll see they get smaller when closer to the edge, which gives them the receding look that a 3D snake body should have. That's all!
finished curved scales
Your scales now will have the correct curve
However, this method becomes quite problematic when it comes to curves on the snake's body. Here's a workaround for this problem. It may look confusing at first, but try to draw it and you'll see how it works:
  1. Draw the guides with the usual method on the straight parts
  2. Draw a set of parallel lines between the pink line from A and blue line from B
  3. Do the same between the blue line from A and pink line from B
  4. If you did it correctly, the scales should now follow the curve. The tightening of lines inside the curve should now appear natural.
scale curves on curved body
The steps to make the scales look correct on a curved snake 
Generally, there's two distinct types of scales—smooth (1) and keeled (carinate, 2). Smooth scales are shiny (but not wet) and usually rounder than keeled ones, which have a rough look and are sharper.
smooth and keeled scales
Smooth and keeled scales
There's a special kind of keeled scales, raised in a way that makes them look spiky.
spikey keeled scales
Smoother and spikey keeled scales
Scales aren't connected to each other, but to the skin only. Therefore, when the skin is stretched (3—when swallowing a big prey or even when moving), the scales move away from each other. Some less slender snakes may have the scales placed tightly on the head and neck (1), and down their body a bit of distance between them occurs (2).
scale placement
The varying distance between scales when tight (1), somewhat spread (2), and stretched (3)
Advertisement
Once you got the problem with scales sorted out, you can add colors to your snake. The variations of patterns are limitless! While most animals are dull colored for camouflage's sake, snakes proudly show their bodies to the world, announcing how dangerous they are—and that they're not worth messing with. You can finally use saturated, bright colors without going away from realism.
Here's the color patterns that work well.
This can be a base for a pattern or just a pattern on its own. Use any color you want for the whole body.
plain color
A basic plain color can work nicely
The variation of this pattern is to blend it softly with other colors. You can make the head darker, or the belly lighter, whatever you want.
blended plain color
Blend two or more colors softly for a nice color effect
Rings go around the body. They can be plain or multiply colored (stripes with borders).
snake rings
Straight rings appear as bands
Crossbands are a variation of rings. They go around the body too, but without crossing the belly.
snake crossbands
Crossbands include multiple colors
These are small patches of color on individual scales. 
snake speckles
Speckles give snakes a more camouflaged look
They run along the length the body, straight and regularly.
snake stripes
Stripes run along the length of the body
These can be very irregular, of various sizes, placed randomly across the body.
snake blotches
Blotches give you even more room for variation...
Almost every pattern allows a variation of contrasting borders to be added to it.
blotch boarders
...with borders, shapes, and sizes to play with
These are diamond-shaped blotches, placed regularly, with contrasting borders.
snake diamond patterns
Snake diamonds should app have a regular size
Today we've learned that snakes aren't as easy to draw as one may think. These beautiful animals, so often feared and hated by people, deserve some love! Take a break from drawing cute kittens and puppies, and draw a snake from time to time. Eating a puppy.
Good luck!

Read More »

Create Your Own Web Apps With Stamplay

0 comments

step-by-step process on creating apps.

Stamplay can be used to make web apps that integrate with services like Facebook, Google, Dropbox, and loads of other apps. This is nice because, when using Stamplay, you don't have to go out and find the APIs for each respective service—you just drag it in.
In this tutorial, I'll show you how you can create your first social network powered app, from scratch, using Stamplay.
Creating a new web app from the home screen.
To start, head over to Stamplay's website and create an account by clicking on the green Start Now button that's located towards the center of the screen. You can then sign up for an account using either your email address or your Google Account.
Choosing a name for your new app.
You'll now be brought to your app library. You can use this page to both view your old apps as well as start the creation of new apps. To create a new app, look towards the upper right-hand corner of the screen and click on the blue Create app button. A pop-up window will then appear asking you to name your new app. After confirming your app's name, you'll be brought to the Components page.
In the components page, you can choose how you'd like your user to interact with your new web app. For this example, I'm going to create an application that lets a user sign-in with Facebook, fill out a simple form, and have an email sent to their inbox.
Selecting a sign up service for your app. 
To start, click on the blue User button from the top of the window. To add Facebook login to your app, click the blue Add button from the right-hand side of the window; a popup window will appear asking you to choose a login service. For this tutorial, I'll be selecting the Facebook option.
Adding components to your web app in Stamplay.
You'll now be asked to provide an App ID and App secret. These can be acquired on Facebook's devleoper page and are used to identify your app with Facebook's servers.
Now, click the blue plus button that's located to the right of the user logo. You'll now be able to add more components to your app. Since we want to send an email to our users, click on the email option. Then, click the plus button again to be brought to the selection screen again. This time, click the form button.
Creating fields for your form.
Look towards the center of the screen, you'll be able to set up your form by giving it a name and adding fields. To add fields, look to the bottom of the window under the Fields header. Use the Field Name text box to give your field a name. To the right of this text box you'll find a drop-down menu that asks what type of field you'd like to add.
For this tutorial, I'm going to be using the form to ask users what smartphone operating system they use. To do this, I'll have the user check what phone they use, so I'm going to choose radio button from the drop-down menu.
You'll now be be brought to a menu that lets you input your form's options. In the case of radio buttons, you can add your button names to the list. For my form, I'll be adding the names of smartphone operating systems to the list.
If you'd like to make a part of your form required, make sure you turn the required on/off switch to the on position. To add multiple forms to your app, click the + Add Form button from the top of the window.
Configuring the email that will be sent to your app's users. 
Now that you've created your form, it's time to use the Tasks tab to configure the email we're going to send to our user. Click into the Tasks button from the side-bar. Then, look towards the upper right-hand corner of the window and click the New Task button.
Configuring a task in Stamplay
You can now choose your trigger component and action component. Your trigger component is what triggers the action component to do something. Underneath each component, you can choose how said component will be triggered. For example, you can set your trigger component as your user and have it trigger the action component when it signs into Facebook.
For this example, I'm going to set the trigger component to the user and the action component to email. Additionally, I'm going to make it so when the user signs into the app, an email is sent to their inbox.
Filtering who your app sends an email to. 
Click the blue continue button and you'll find a header labeled Tune User. You can use this section to finely tune the User trigger, for example, if you'd only like the email sent to the user if their email ends with Gmail accounts, you can do this by clicking the Add filter button and choosing email from the Select a Property drop-down and (Text) Ends with from the drop-down menu. You can then type "@gmail.com" into the condition box and click the blue plus button to add this filter to your app.
Configuring the email that will be sent to your app's users. 

You'll now be prompted to setup your email options. Look towards the right-hand side of the window under the login trigger data header--you'll notice quite a few options. These options are information collected about your user in the Facebook sign-in process. To use this information in your form, just click into a text box and then click on its respective piece of information from the right-hand side of the window. 
You can also manually type information into your email as well, something you'll want to do for your return email address and email body. Once you're done setting up your email, click the Create Task button that is located towards the bottom of the menu.
Now that you've created your tasks, it's time to build your app's front-end. To do this, click into the Layout tab from the sidebar and look towards the upper right-hand corner of the window. Click on the button labeled Change theme.
Choosing a new theme for your app.
From the theme selection window, take a look at each of the included themes. When you find one you like, hover over the theme and click on the View Demo button to preview the theme. If you decide you like your new theme, click the Install Theme button.
Now, look to the left-hand side of the window and click on the pages drop-down menu. You will now be shown all of the HTML files that make up your web app. If you'd like to add content to your app, you can edit the HTML files to do so.
In this article, I'm using the standard Stamplay theme and have edited the home-page (index.html) to remove sample text.
Copying Facebook login div tags. 
Now it's time to start edit the front-end of our web app to display the Facebook log-in button to the home-page. To do this, look to the left-hand side of the Stamplay window and click on the drop-down menu labeled widgets. Then, click the auth.login.hbs.html button and look towards the center of the page.
Look towards the center of the Stamplay window at the HTML document. Scan this document until you find a line that starts with Facebook Login and copy it. Then, open index.html document from under the pages drop-down menu.
From the index.html page, create a new <p> tag, paste the Facebook Login code, and close the <p> tag (</p>). Now, look towards the upper-right-hand corner of the Stamplay window and click the Go To App button. Your web app will now appear in a new tab.
Copying Facebook login div tags. 
From your app, click the new Login button and login with your Facebook account. You should then see your Facebook name and profile picture at the upper-right-hand-corner of the app. Additionally, check the email account associated with your Facebook account, if configured properly, you'll notice that the email we setup earlier has landed in your inbox.
Adding the form div tags to your app.
Remember the form we created earlier? It's time to add that to the front end. To do this, click into the widgets drop-down menu and click the form.display.hbs.html button to be brought to your form's HTML code. Look towards the top of the menu and copy-and-paste the first div tag your the index.html document.
However, we're not quite done yet. If you look towards the end of the tag, you'll see an area to input your form's ID that was set when creating your table. If you're unsure of your table ID, you can view it by clicking on the table button in the components tab and looking towards the center of the window.
Now that your app is ready to go, test it by opening it in a new tab. You can retrieve your application's URL by clicking into the Settings tab on the left-hand sidebar and looking under the Domains header. Copy and paste this URL into a new tab and give it a whirl!
Advertisement
Once your app is live, you can go to the Admin tab to view responses to your form. Click into the tab and, from the drop-down menu, click the Form button. From the center of the window you can view resposnes to your form and the email addresses provided by the user's Facebook account. Additionally, if you click the Users button, you can view the name and email of every user that's used your app.
You can now use Stamplay to make simple web apps to interact with your users and customers. In the comments, link us to your new web app—or let us know if you need any help using Stamplay!

Read More »

Game Design : A Look at Luck in Game Design

0 comments
he luck vs. skill aspect of games is one which is fairly central to good design—indeed, it's something we've covered before. But before we worry about trying to balance luck and skill, we really need to ask: what is chance, and to what extent is it necessary in a game? Furthermore, how can we implement chance in a way that feels rewarding rather than punishing, and use it to improve rather than detract from the overall playing experience?
It's nearly impossible to create a game without luck. A game without luck isn't really a game—something like "who's the tallest" or "who has the most fingers" doesn't really involve any sort of challenge. These are simply measurements that the players are unable to change, and so are unlikely to provide much entertainment. A game must have an element of uncertainty—something like "who can balance on one leg the longest", while not terribly in depth, is at least not predetermined. Even when one player is better, their success is not always guaranteed.
For many games, we use cards, dice, or a random number generator to create this unpredictability. But not all games use randomisation tools, and a serious strategy game like chess still requires an element of randomness: this element comes from the players themselves. Players are unpredictable, and will often adjust strategies and tactics on the fly, based on what they consider the best probable outcome. This is why, despite being a fairly static game, chess games can vary wildly: no two players approach the game the same way.
The reason humans can provide chance to chess is because chess is incredibly complex – in fact, we can describe chess as a complex game. Unfortuntely, unlike concepts such as "flow" or "zero sum game", the term "complex game" isn't a recognised term. Since we'll be talking about complexity a lot, we should probably define what we mean by it.
So what is a complex game?
If we look at Tic-tac-toe, we can see a game with fairly simple rules. There are nine spaces, players place an X or an O, trying to make a straight line, and the game is always over in nine moves or fewer. It's fairly easy to predict the results of a Tic-tac-toe game, even before the first move is made—assuming the two players play "correctly", then the game will always end in a draw.
We can say then, that tic-tac-toe is hard to justify as a complex game. In fact, Tic-tac-toe has been solved, which is to say that we've calculated every set of possible moves, and essentially proven the best moveset. To make matters worse, humans are capable of "solving" a tic-tac-toe game without much mental agility.
Compare this to chess, which has 64 pieces and six different types of piece, each with their own moveset, special moves such as castling and en passant, and a ruleset that means a game could (technically) last forever. Given these conditions, it's perhaps unsurprising that chess has never been solved, even by the most powerful computers.
So, essentially, a complex game is one which has not been solved, or that cannot be solved by the players.
This addendum "cannot be solved by the players" is important. It means that games can continue to be fun, assuming the players are incapable of solving them. This is why Four-in-a-row (also known as Connect 4) remains a fairly popular game; although computers have solved it, when players sit down they are unlikely to be capable of calculating the perfect game in their heads, so they play non-optimally. Tic-tac-toe, while trivial for most players, is still a good game for young children who are unable to plot out every move in their head. Complexity is subjective.
So why is this important? Because a non-complex game (a simple game) is a boring game. If the game is not complex, then it is solvable. If it is solvable, then the outcome is predetermined; all the player is required to do is work out the best moveset, and they've won. And at that point, they may as well go back to playing "who has the most fingers".
A small sidenote here, a solvable game can be better described as a puzzle. And while puzzles are popular (many newspaper print daily crossword puzzles), a puzzle is only fun up until it's been solved – which is why crossword enthusiasts generally don't sit and solve the same crossword over and over. Theres certainly nothing wrong in deciding to make a puzzle game, but be aware of what it is you're aiming for, and how that will impact replayability.
So, when we look at games like chess or Tic-tac-toe, we can see they are all strategy games with no inbuilt randomisation: basic strategy games. There are, however, many games which do use dice, cards or other tools as an inbuilt mechanic, like snakes and ladders or poker. As most of these games can't be considered complex, the inclusion of these dice or cards is necessary to prevent the game from being solvable. If, in the game of Snakes and Ladders, rather than rolling, players chose a number between one and six spaces to move every turn, then even children would quickly work out that "always choose six unless you land on a snake" is an optimal strategy.
Of course, adding randomness does not automatically make a solvable game good. In fact, you simply change the aim from "find the solution" to "find the best probable outcome". You still essentially have a puzzle game, except that the win condition is not guaranteed. Too much randomness is just as bad as none; here again Snakes and Ladders is an obvious example. Almost no-one other than children plays the game, as it lacks any sort of interactive challenge and, therefore, people see it as ultimately pointless.
So why does a game like poker continue to work? Poker is, essentially, a series of mini puzzles. You are given a hand, and you have to "solve" how probable it is for you to win. You can then bet on your hand, based on how likely you are to win the game.
This is an oversimplified view of poker, and if this was all there was to the game, it would be fairly boring. It would be trivial to write a program to calculate the odds (although people do that anyway), and simply run it to maximise your wins.
The fun of poker comes from player interaction: from bluffing and confidence. You are not required to bet on a good hand, and you are able to bet on junk. In fact, this is arguably what the game of poker is truly about; the cards are simply there to facilitate this, and to provide a fresh round of lying every few minutes. By adding the random element, we've eliminated player knowledge, which means that we can use uncertainty as a game mechanic. Players are required to perform based on what they know, and it is the combination of calculating winning odds and outfoxing other players that lets poker maintain its fanbase.
So, although we've been talking about about traditional gaming, computer games use exactly the same principles of design. Games like Tetris or Bejewelled can be considered simple (with added randomness), and games like Starcraft or Team Fortress can be considered complex.
In almost all games, there is a certain puzzle-like quality. Even in an RTS or FPS, players are constantly making decisions based on optimal play: should I build tanks or planes? Should I choose the machine gun or grenade launcher? Should I turn left or right? Like in chess, the player attempts to make decisions based on what they think will result in the best outcome. The randomness isn't (generally) provided by computer dice, but by the choices of the players in the game. Players are trying to outwit each other, as well as outskill them.
In fact, its possible to argue that the only randomness in a PvP game (like an FPS or RTS) should come from the players themselves. As we've talked about before, crits in TF2 are a subject of much contention in the playerbase—to summarise, any shot in TF2 has the possibility of being a crit shot. Crit shots require nothing more than the roll of a dice, and any damage dealt by a critical bullet will be twice or three times as much normal, which causes crits to be frequently lethal. While new players may enjoy the thrill of randomly getting a kill, "pro" players will see the crit mechanic as unnecessarily spoiling their skills.
The range of numbers we use for randomness also play a large effect on how things pan out. If a rifle deals 90-110 damage a shot, then if we have 150 health the random element is really a flavour effect: no matter what happens, we need to be shot twice to die. However, if we have 100 health, than a rifle will randomly kill us in one shot half of the time. Despite there only being a small range in randomness, the numbers used matter a great deal.
So why is it that "pro" players bemoan crit systems (and improperly implemented damage ranges) whereas "casual" players don't? The answer, simply, is player expectation.
A pro player will have played their game of choice a lot. They will know it inside and out. They will know what damage they can take, what they can deal out, and what the outcome of any situation should be. And while they may sometimes judge things poorly, it is generally due to underestimating the opponent's skill level, or making bad split-second decisions.
So when a pro player enters a battle, and they are instantly gibbed by a bullet for no reason other than luck, they might feel cheated. They knew what they wanted to happen, but because of an electronic dice roll, they were instantly killed instead.
New players will generally not feel this sting as sharply; they don't know the game as well, they have fewer expectations of what should happen, and so they can enter a battle not really expecting to win. To them, battles are as much a learning experience as a test of skill.
This randomisation destroying expectation is something that can happen in almost any game with randomness. When you're waiting for a line block in Tetris, and the computer instead gives you six S blocks in a row, the player might feel a little cheated. The popular game Puzzle Quest (essentially a bejewelled clone with RPG elements) received many player complaints about "cheating AI"; there are enough forum threads about it that the developers had to specifically come out and say that the AI doesn't cheat.
So why does it feel this way? Why are so many players upset over randomly falling jewel colours? Because the randomness is subverting player expectations. When a player goes into a game, they are (generally) expecting to be challenged, but they're also expecting that if they play well, they can win. When the game randomly throws some bad numbers at you, and you immediately lose, then you can feel cheated. You had an idea of how the game was going to play, and despite your best efforts, you were defeated—not by your own lack of skill, or superior opponent strategy, but by electronic dice. This, for most players, is incredibly infuriating.
This "luck subverting player expectation" extends into all sorts of game. In fact, the more luck involved in a game, the more likely it is to be frustrating. RPGs are a notable example, especially because of crit systems. Crits systems often seem like a fun little addition, but by the numbers they will almost always punish the players. This is because:
  1. Players are, generally, expected to defeat most enemies.
  2. Crits add randomness to battles.
  3. Randomness in battle means unpredictable results.
  4. Therefore, players will (occasionally) win battles they should have lost, but more often:
  5. Players will lose battles they should have won.
This is, of course, assuming that the encounters are designed or tailored towards the player. Some RPGs simply throw the player at giant monster and be done with it; however, as professional designers, we should be looking to ensure that the game is tailored towards our players, rather than just throwing some dragons in and calling it a day.
The other problem then, assuming we have designed our combats carefully, is that a crit system over-favours the player. Imagine if, after a harrowing journey through time and space, the hero of our game walks up to the ancient demon terrorising the planet and kills him in one (critical) blow. Its not quite the epic battle of legend, and is likely to leave the player feeling underwhelmed and unsatisfied. A player wants a challenge, and denying them that challenge because of randomness is unlikely to provide satisfaction.
In the case of Puzzle Quest, whether or not the AI actually was cheating isn't actually important: what is important is that to some players, it felt like the AI was cheating. The lucky streaks gotten by the player are likely to be ignored (due to their expectation of winning anyway), but having your victory snatched away by a series of unfortunate dice rolls may seem unfair and punishing.
So how do we fix things? It might seem like so far all we've really said is "randomness is bad". And essentially, that's true. We're professional games designers; we shouldn't be doing things randomly. Every decision the player makes should be the result of a carefully crafted experience, and putting in randomness can endanger that.
When we look more closely at it, we realise that randomness can be added for two primary reasons:
  • To make the outcome unpredictable, or
  • to generate content.
Let's examine these:
As we talked about in our previous article, players enjoy winning.
As we talked about here, randomness somewhat replaces the need for skill.
Therefore, adding randomness to a game allows (in some sense) bad players to win against good players. In a game with no randomness, a good player will always win against a bad player.
Because of this, having this unpredictability can be an important part of a game: it allows bad players to influence the game, and (hopefully) become better. If a player is constantly matched up against superior opponents and is losing, chances are they will quickly lose interest.
However, good players will often dislike this randomness, and will often be put off by a game which "punishes" their skill.
So how can we fix this?
Well, one option is to have an Elo rating system. This essentially gives players a number based on their skill level: beat a grandmaster, and your Elo rating goes up; lose games to newbies, and your score will probably go down. It originated as a way for chess players to measure their skill, but many MOBAs (Multiplayer Online Battle Arenas, such as League of Legends and Defense of the Ancients) do this, so that when you enter a battle you are (theoretically) placed with people around the same skill level. Some first-person shooters have also attempted this, allowing players to rebalance the teams if one side is continually getting crushed.
Another option would be to have a handicap system. Not too dissimilar to an Elo system, a handicap system allows players to give themselves an artificial advantage based on their skill level. Fighting games will often do this, giving the weaker player a variable health and damage output bonus. Although a handicap system might not solve all skill imbalance issues (it's easy to imagine online players abusing a system like this), it's a good way to allow casual players to compete more equally with their hardcore friends.
In both these cases, you can reduce the randomness of innate game elements, leaving the players as the only randomness generators.
The problem with generating content randomly (or gameplay elements, like in the game of Tetris's falling blocks) isn't so much that we're generating unpredictable content; it's that, often, certain sequences of random elements are extremely punishing to the player.
If, in Tetris, the player is waiting for a line block, but we only generate S blocks for the rest of the game, then the player will have every right to be annoyed. And, while it's improbable, it can happen.
In other games, such as a dungeon crawl RPG, we might have a 1% chance of generating a boss every time a monster spawns. If, by chance, we generate three bosses in a row, then the player might find themselves in an unwinnable battle.
By the same token, we might go through the game and never generate a boss. This could make the game incredibly easy, or (if the bosses drop equipment upgrades) incredibly hard. In either case, randomness has essentially destroyed our players' enjoyment of the game.
In certain cases, randomness can completely remove a player from the game. In the popular collectible card game Magic: The Gathering, players build decks that require a combination of lands (power sources) and spells to defeat their opponents. The use of lands is an important balancing mechanism: a simple goblin might require one land in play, while a mighty dragon might require ten. However, if the player happens to draw no land cards, then they are unable to play anything; they are essentially forced to sit there with zero options until their opponent defeats them. While it's possible to mitigate this to some extent, it's a serious design flaw that a non-insignificant number of game losses are the result of bad luck, rather than being outplayed.
People feel loss more strongly than they feel gain. It's an interesting psychological phenomenon; consider these two scenarios:
  1. You are given $1,000. I ask if you want to gamble on a coin toss: heads you win an extra $1,000, tails you don't. Alternatively, you can just have an extra $500 (no coin toss required).
  2. You are given $2,000. I ask if you want to gamble on a coin toss: tails you lose $1,000, heads you don't. Alternatively, you can just give back $500 (no coin toss required).
In general, people tend to take the guaranteed extra $500 in the first case, but gamble on the coin toss in the second... even though the outcomes for gambling are the same in each scenario! (Do the maths: whether you choose to flip the coin or not, and whether the coin comes up heads or not, the amount of money you end up with in the end is the same regardless of whether we're talking about Option 1 or Option 2.)
This means that, if you have a mechanic in game which randomly rewards or punishes they players, the losses will, psychologically, outweigh the gains. If the gamble is optional then it opens up extra avenues of gameplay, but a forced gamble will mostly feel like punishment.

A final problem with generating content randomly is that it can be very difficult to generate content which is interesting. A great example of this is MMOs; World of Warcraft has dozens upon dozens of dungeons, each of which can take hours to complete, and weeks to successfully master. However, once the dungeons are mastered, they (arguably) offer few variations and little replayability, save for the obvious grind for equipment. In Anarchy Online, the number of designed dungeons was tiny: however, players could enter randomised dungeons. In theory, no two dungeons the players encountered would ever be the same: however, in practise, every dungeon felt the same. Because dungeons were randomised, they had no narrative structure or overall design concept. Instead of feeling unique, every dungeon felt the same.
A lot of this is down to how many rules are put in place and how the generation is implemented: Nethack and Spelunky both use randomly generated levels, and have massive fan bases. The generation of rules for interesting map design is, however, a slightly different issue from randomly generating gameplay elements, and is probably best left for another discussion; it suffices to say that a good designer should be aware of the limitations of generating maps. We can still apply much of this randomness discussion to the generation of these maps, however.
So where does this leave us? Well, sometimes we can actually just remove randomness from a game entirely. In the case of an RPG, instead of spawning a boss 1% of a time, we can spawn them after every 100 kills. In the case of collectible card games, one of Magic's competitors (Versus system) solved the issue of players needing land by making every card playable, face-down, as a land instead of a spell; this meant that you would never find yourself "stuck", while maintaining the momentum that lands crucially provided.
However, a total removal of randomness can often be an overzealous case of throwing the baby out with the bath water. In the example of the RPG, making a boss spawn every 100 kills exactly is likely to make them too predictable, and when a game gets too predictable, it becomes a puzzle. A better option would be making a boss spawn somewhere between every 50 and 150 kills. This means that bosses are still within a random range (making them hard to predict), but aren't so random you can get attacked by three at once.
This use of carefully controlled numbers is pseudorandom generation. There are many ways to do it: in Tetris, if we spawn an L block, then for the next three blocks we "re-roll the dice" once if an L block is spawned again. Normally, the L block has a one-in-seven chance of spawning, but giving it a re-roll makes it a 1/49 chance for those threee turns. It can still happen, but is much less likely.
This isn't the best way, of course: there are many ways to generate numbers randomly, ranging from simple re-rolls to weighted random numbers; plus, sometimes, in a case like Tetris, just leaving it as a one-in-seven chance to generate any block might be the best option.
If we do use randomness, we also have the opportunity to introduce seeds. This simply means that the random numbers we use in our game aren't actually random; the "random" sequence is entirely defined by a number called a seed. In Tetris, it appears that we can't predict what blocks are going to fall; however, if we seed a tetris game with the number 42, and we start off with square, L block, T block, square, then every game that uses the 42 seed will begin with those blocks. Seeds aren't used often in gaming (Minecraft and FreeCell being two notable examples), but can be a nice addition.
The ability to seed randomness comes from the fact that computers aren't actually capable of generating random numbers: often, they simply take a base number (such as the time in milliseconds), and then perform a calculation to get a "random" number. By ensuring the base number is the same every time, the calculations will give us the same "random" numbers.
On Windows, FreeCell game #11982 is the only impossible game.
On Windows, FreeCell game #11982 is the only impossible game.
The alternative to removing randomness is to use more of it. This might seem crazy initially, but can actually be extremely effective: roll two dice, add them together, and you have a one in six chance of getting a seven. Roll 2,000 dice, add them together, divide by 1,000 (and round), and you will almost always get a seven. In this case, using so much randomness has almost entirely removed randomness.
At the end of the day, randomness isn't inherently evil; it all comes down to perception. Players want to be be challenged, or to have an interesting experience, and there's nothing challenging or interesting about throwing a bunch of random monsters at a player, with little regard to whether they live or die. By tempering the randomness, we can craft the results we want, and hopefully make a game which interacts with the player, rather than ignoring them.
Randomness is generally a bad way to solve conflict, because (by its very nature) it creates unpredictable results. Randomness can also be a poor way to generate content, but is often the only sensible way to approach it; imagine designing a Tetris game which had a list of every block that should drop, in order.
When randomness does occur, it should generally favour the player (which is hard to achieve in a player vs player environment). If game elements are generated randomly, they should allow the player to react to a worst case scenario in a way that still allows a reasonable chance of success.
However, we have to accept that sometimes randomness is necessary. RPGs would be a lot less exciting without dice to determine combat. Board games, in particular, are unlikely to resolve the issue anytime soon: throwing 1,000 dice and averaging out just isn't practical for a game of Snakes and Ladders.

And of course, the final big caveat: if we remove randomness entirely, are we making a game, or a puzzle?

Read More »

Game Design : 3 Questions to Help You Finish Your First Game

0 comments
Many gamedevs find that their first game is the hardest one to finish. I've worked as a consultant on almost a dozen "first" games with budding independent development companies, and gathered all of the lessons learned from those experiences here. After going over each question, I'll also give you a quick anecdote about how I (or someone I worked with) learned that lesson the hard way.
Preview image icon: Question by Henry Ryder, from The Noun Project.
Picking too big scope is the most common pitfall that I've seen developers fall into. You think up this great game idea, eagerly get started, and soon find yourself with too many features left to add, not enough of the main game done, and very little time left.
Having a large game scope isn't necessarily a bad thing; if you are developing for fun, or have a highly organized design system, it can be great. But for your typical small team that hopes to make a profit from their pursuit, trying to build a large game can be a early death sentence.
The easiest way for new developers to get past this phase is to take the time to break down their game design into layers. When working with developers, I like to have them create a to-do list of the core game. This consists of everything necessary for the game to be finished in an acceptable state - no additional features, unneeded side quests, or extras. This list serves as the absolute minimal amount that needs to be done by the release date and still allow you to feel proud of your game.
Then, I have them create a "polish" list. This includes everything needed to make the game more complete, but not required to make it playable and fun. Typically these are things such as additional graphics, transition animations, more animation frames, additional or ambient sound effects, more audio tracks, improved UI, particle effects, advanced lighting, and more advanced AI.
The final list, "extras", consists of anything that they would like to add that can wait to be added in at the end, or skipped if there is not enough time to implement it. These items typically consist of unlockables, social or multiplayer features (unless they are an integral part of the game), additional side quests, and so on.
The first major game that I worked on was called The Fallen. I was 16, and two of my friends and myself decided we were going to make the best MMO ever.
Our idea was to have multiple persistent servers with shared character and enemy instances (so that each server would be a different, massive area, and herds of the enemies, called "fallen", could migrate between them), in a giant FPS-meets-RPG built on the Torque engine.
We put a little more than a year's worth of work into the project before giving up, managing to get two servers up and running, and having as many as 27 players per day during our fever pitch.
The project was way too large for the three of us to handle on our own, and the game's quality suffered. There was no audio and barely any dialogue; the enemies were terribly modeled 3d atrocities; and all of the players were the standard Torque 3D model.
Questions to help you finish your first game
Every player was the standard Torque model, with different colors for different classes. (Image from Torque's FPS tutorial.)
Had we planned things out prior to getting started, and kept the scope of our game smaller at the beginning, we might have stood a chance of finishing it. Instead, we quickly became overwhelmed by a behemoth of files and badly programmed (and terribly commented) code that only a group of teenagers can create.
The second most common pitfall for projects is being over-ambitious.
When preparing to start a project, ask yourself: is this something that I can do? Am I able to do tons of 3D programming and collision detection? Do I know enough about 3D modeling and lighting? Can I make this within a reasonable time frame?
If you find that you can't, don't be disheartened! Do your research and see if there are any libraries, APIs, tools, or anything at all that would make it possible for you to actually finish your game. If you can't find anything to make your game's creation easier, then consider simplifying or modifying the design so that it is.
Personally, I like to take more complicated game designs and use them as end goals, designing a few smaller games leading up to it, each allowing me to learn a new skill needed to complete the final game. I urge developers that I work with to do the same. If you want to make a MMORPG, first try making a standalone RPG, then move onto a game with basic multiplayer, and then take a stab it. Having those needed skills under your belt will make developing your game much easier, and means you're much more likely to finish it!
Questions to help you finish your first game
EvolvingPoet's first game, Tiny Hero.
When I finally decided to try to make game development into a full-time pursuit by starting an LLC, I planned on making a game that was not possible within our current constraints. The problem wasn't that it was technically challenging; it was more that there was a huge amount of content that needed to be created and very little time in which to do so. This ultimately lead to a solid week of crunching and the production of a sub-par game.
Questions to help you finish your first game
It took weeks for me to try and bury this game, and I still couldn't completely wipe it from the internet.
To make matters worse, having too little time to complete the game led to us having to spend even more time doing damage control so that we wouldn't be hated forever in the indie dev community. (That doesn't actually happen - most everyone involved is super nice.)
Questions to help you finish your first game
When making your first game as an independent developer, finances often get overlooked. For hobbyist developers or those who have another job to support themselves, this isn't a huge deal, but developers that quickly jump into being full-time game makers often find themselves in over their heads.
Assuming that your first game is going to make enough for you to live on is not a safe bet, and the same goes for your second game as well (and maybe even a few after that). Being an indie dev means that you are running a business, and, on average, small businesses take around two years to become profitable. If you have two years' worth of living saved up, then this isn't too big of a problem, but for most people, this is a huge hurdle. It is a good idea to have a part-time or full-time job to supplement your gamedev income for a while, if only for the safety net it provides.
Having realistic sales targets is another important caveat. Unless you are extremely skilled and extremely lucky, you will not be selling thousands of copies of your game. Depending on the market and scope of the project your sales targets will vary, but I find that most commonly developers I work with will be aiming to get around 700 to 1,000 sales. While these may sound like low numbers, once you actually release your game you will find out just how difficult those targets are to reach.
If your game has a price point of $10 and you sell it through the typical online stores, you can expect to bring in around $5,600 from those 700 sales. Considering that most developers that I work with are two-person teams who create a game every two to three months, you can expect maybe $1,250/month per person after expenses. In that time, the teams are typically working full-time hours (most of the time, many more). That works out to around $7.80/hour, or just above minimum wage - and again, that's if you're lucky.
It isn't all doom and gloom, though; you can make a living off of making independent games, just don't expect to do so with your very first one. On average, I see that developers start to make a decent wage from their work at some point around the release of their third game.
This particular lesson ended up ruining a client of ours. They aimed to create a huge Zombie-based MMO (think DayZ), and the prototype that they had was great - fun to play, technically sound, immersive, and all that jazz - but they hadn't done all of their financial homework.
Screenshot from Day-Z, not Zombie MMO.
Screenshot from Day-Z, not Zombie MMO.
Through a lack of planning they managed to find themselves ten months into a project with very little to show, very little money left, ten angry employees, and one irate investor. They brought me in to try to clean up the situation, and switching to a more need-based development approach, the game started to make headway very fast, and even earned a bit of money through its alpha.
(They then decided that an unrelated factor was the reason for the improvement, not the change in development systems, and upon changing back to their previous method of development, quickly found themselves out of business.
These questions are here to help you be realistic in the pursuit of your first game, not to dissuade you from making it. A lot of would-be game makers whom I've met hear me talk about these things and decide that the whole pursuit is just too hard - but it's not! You just need to prepare yourself and plan ahead so that you can actually finish your game.
Some relate game development to running a marathon, and that's an apt metaphor.Running is not something that I have any experience in (most people would say that I'm phobic to most exercise in general), and if I tried to run a 5K, there is an extremely small chance that I would actually finish. Game development works the same way: if you don't build up your endurance and skill over time, it is going to be an arduous journey, and you will find yourself either giving up part way through, or reaching the end exasperated and out of breath.
Making your first game is a monumental step in your development career, and hopefully getting it done will be a little easier now. If you keep the game's size reasonable, its complexity within your ability, and your financial expectations realistic, then there is no reason that you shouldn't be able to finish.
Now go make some games!

Read More »