0% found this document useful (0 votes)
136 views

Programming A Game With Unity: A Beginner's Guide: PC & Mobile Lifestyle Hardware Deals Giveaways Top Lists About Chats

Game programming fundamentals and information

Uploaded by

ladooroy
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
136 views

Programming A Game With Unity: A Beginner's Guide: PC & Mobile Lifestyle Hardware Deals Giveaways Top Lists About Chats

Game programming fundamentals and information

Uploaded by

ladooroy
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 71

PC & Mobile

Lifestyle

Hardware

Deals

Giveaways

Top Lists

About

Chats

Search
Programming

Programming A Game With Unity: A Beginners


Guide
Andre Infante February 11, 2014 29 minutes
Programming A Game With Unity: A Beginners Guide
Facebook Twitter Pinterest Stumbleupon Email
Ads by Google

Table Of Contents
1Introduction
2Versions of Unity
3Installing Unity
4A Brief Introduction to the Object-Oriented Paradigm
5Unity Basics
6Example: Basic Elements of a Game

Ads by Google

7Scripting in Unity
8Example: Scripting Pong
9Exploring the Documentation / Learning More
10Building Your Game / Compiling to a Standalone Application
11??Closing Notes

1. Introduction
A surprising feature of the Internet economy is the rise of indie videogames. Once the exclusive domain of
thousand-man, multi-million dollar triple-A studios, a number of toolsets have been developed that bring
modern game development resources into the hands of individuals or small, ad-hoc collections of
programmers and designers. These indie game development teams have demonstrated an agility and risktolerance that, in many cases, allows them to push gameplay innovation faster than their big budget
counterparts. A number of shockingly successful indie titles have premiered in recent years, including
Minecraft, Limbo, and Super Meat Boy.
In the rapidly evolving landscape of indie game development, Unity has emerged as something of a de-facto
standard: its low cost, ease of use, and broad feature set make it ideal for rapid game development. Even
large studios such as CCP (Developers of Eve Online) use it for rapidly prototyping game concepts. Unity
provides a game engine in a box a physics and rendering engine with hooks for several scripting
languages, adaptable to virtually any genre of videogame. Unity - Great 3D Games On Multiple Platforms &
Browsers Unity - Great 3D Games On Multiple Platforms & Browsers Read More
While Unity does provide a visual editor for manipulating the game environment, Unity is not a zero
programming game creator tool. Unity requires the ability to program to produce results, but also gives you
a much more flexible and powerful tool than any game maker program possibly could. Unity wont do the
work for you, but it does serve to lower the barrier to entry substantially. Starting completely from scratch
with C++ and OpenGL, it can take days to get to the point where theres actually something rendered
onscreen. Using Unity, it takes about ten seconds. Unity puts the basic elements of game creation into the
hands of novice programmers in a fast, intuitive way.

2. Versions of Unity
Unity comes in two basic flavors: the pro version and the free version. There are a number of differences
(you can see the full list here), but, broadly speaking, the pro version supports a number of visual
improvements (like real-time soft shadows and post-processing), and a large number of relatively minor
features that are extremely helpful for more complex games. That said, for most relatively simple games you
might want to build, the free version of Unity is perfectly adequate. Well break down the key differences
below in more detail for those interested.

2.1 Pricing
The free version of Unity is, of course, free. However, there are a few limitations: the free version of Unity
cannot be licensed to any company with an annual income of more than $100,000. While such organizations
are beyond the scope of this guide, if you suspect you might become such an organization, its probably wise
to spring for the Pro version.

The Pro version of Unity is $75 a month, or $1500 for a permanent license, and has no limits on what you
can do with the games created with it. There is also a 30-day free trial available, which well be using for this
guide, in order to give you as complete an overview of the available features as possible. A one-year student
license is also available through Studica for $129.

2.2 Features
There are many features absent in the free version of Unity. However, the most important differences are as
follows: the free version of Unity lacks a number of rendering options that allow for better-looking, fasterrunning games (LOD support, screen-space post-processing, advanced shaders, real-time soft shadows, and
deferred rendering). It also lacks the full mechanim animation system, and some AI tools. In general, for
complex, large-scale projects, or projects where graphical performance is important, the pro version is
worthwhile. I use the pro version, because I develop virtual reality games for the Oculus Rift, and the screenspace post-processing support is necessary to correctly interact with the headset. Everything You Want To
Know About The Oculus Rift Dev-Kit Everything You Want To Know About The Oculus Rift Dev-Kit The
future is here - the Oculus Rift has finally begun shipping. It's early days yet, but if you're one of the lucky
few who backed or pre-ordered the dev kit, here's a collection of... Read More
You can check out an early alpha build of one of my VR games, BeatRunner. It should give you a sense for
what Unity makes possible.

3. Installing Unity
Unity is straightforward to install. You can download the executable here (for the OSX installer, click the link
that says developing on Mac OSX?). Let it download, run it, and follow the installer instructions. When the
installation is finished, a window entitled activate your Unity license will appear. Check the box marked
activate a free 30-day trial of Unity Pro and click OK.
Congratulations! You know have a 30-day trial of Unity Pro. When the trial expires, if you dont want to buy
the pro version, you can switch to the free version and keep your existing content.

4. A Brief Introduction to the Object-Oriented Paradigm


Before we get started with Unity, its important that we go over the basics a little. Unity supports both C# and
Javascript for game programming; well be working with C# for this tutorial. First off, if youve never
programmed before, put this tutorial aside and spend a few days working through Microsofts C# Language
Primer until you feel comfortable using the language for simple tasks. If you have programmed before in an
imperative or object oriented language like C or Java, skim the primer and familiarize yourself with how C#
differs from other languages youve used in the past. Either way, dont proceed with the tutorial until you feel
comfortable solving simple problems with C# (for example, if I were to ask you to write a program that
prints the first hundred prime numbers, you should be able to write that program without consulting Google).
Top 10 Professional Sample Code Websites For Programmers Top 10 Professional Sample Code Websites
For Programmers Read More
The most important concept to understand here is the object-oriented paradigm (abbreviated as OOP). In
object oriented languages, programs are divided into functional units called Objects. Each object has its own
private variables and functions. Object-specific functions are called methods. The idea here is modularity: by
having each object isolated, and forcing other objects to interact with it through its methods, you can reduce
the number of possible unintentional interactions and, by extension, bugs. You also create objects you can
reuse at will later with no modification. In Unity, youll be building these objects and attaching them to game
entities (whose behavior theyll govern).
Objects are instantiated from classes: a class is just a file that lays out the definition of your object. So, if you
want a Mook object that handles AI for an enemy in your game, youd write a Mook class, and then attach

that file to every enemy entity. When you run your game, each enemy will be equipped with a copy of the
Mook object.
Attaching a new script to an object looks like this:

First, select the object and go to the inspector. Then, click on the Add Component button.

Go to new script, enter the name you want, and click create and add.

Now you have a new script, that you can edit by double-clicking on it!
A class file looks something like this:

using UnityEngine;
public class Mook : MonoBehaviour {
private float health;
void Start () {
health = 100;
}
void Update(){
if (health > 0){
//search for player
//if you encounter the player on the road, kill him
//if you get shot, remove a random amount of health
}
}
}

Lets break this down:

using UnityEngine; This line tells C# that we want to use Unitys libraries, which allow us to
connect to the Unity game engine.

public class Mook : MonoBehaviour { This line actually declared the class and its name (Mook);

private float health; This declares a private class variable (which can only be changed from inside
the class). The variable is given a value in Start().

void Start () { This declares a method called Start. Start is a special method that runs only once,
when the game initially launches.

void Update(){ -Update is another special method, which runs on every frame. Most of your game
logic will go here.

//if you encounter the player on the road, kill him This line is a comment (any line starting with a
double slash is ignored by C#). Comments are used to remind yourself of what particular bits of code
do. In this case, this comment is being used to stand in for a more complicated block of code that
actually does what the comment describes.

Along with Start and Update, you can instantiate your own methods with almost any name. However,
methods that you create wont run unless theyre called. Lets declare a method for a hypothetical class called
myClass that adds two numbers together.
public float addTwoNumbers(float a, float b){
return a+b;
}

This declares a public (accessible to other objects) method that returns a float, called addTwoNumbers,
which takes two floats as input (called a and b). It then returns the sum of the two values as its output.
Calling this method from within the same class (say, from inside Update) looks like this:

float result = addTwoNumbers(1,2);

Calling the method from another class is similar:


myClass instance;
float result = instance.addTwoNumbers(1, 2);

Again, this just creates an instance of our class, accesses the appropriate method and feeds it the numbers we
want to add, then stores the result in result. Simple.
If your script is attached to an object that has special properties (like a particle emitter) that cant be accessed
under the normal set of GameObject parameters, you can choose to treat it as a different kind of game entity
by using the GetComponent method.
The syntax for that looks like this:
GetComponent<ParticleSystem>().Play();

If any of this is unfamiliar to you, go back and go through the C# primer. Itll save you a lot of frustration as
we proceed.

5. Unity Basics
In this section, were going to work our way through the basic mechanics of the Unity engine. The workflow
in Unity goes something like this: create an entity to serve a role in the game (blank GameObjects can be
used for abstract logical tasks). Then, either write or find a class file, and add it to the entity as a script (using
the add component button in the inspector view. Then run, test, debug, repeat until it works and move on
to the next element of the game.
Unity comes with a number of basic view tabs that can be laid out in various ways to the taste of the user.
The big five are the game tab, the scene tab, the inspector tab, the project tab, and the hierarchy tab.
The game tab, when the play button is depressed, displays a running instance of the game that the user can
interact with and test. The scene tab provides a static, editable version of the gameworld. The inspector
tab allows the user to modify individual entities in the game world by selecting them in the editor tab. The
project tab allows the user to browse through the projects files and drag models, materials, and other
resources into the editor tab to place them in the gameworld. Finally, the hierarchy tab shows all objects in
the world, allowing you to find distant objects in the scene, and parent entities to one another by clicking and
dragging. See the diagram below for the locations of all these things. Start Creating Games In No Time With
Unity3D Free Start Creating Games In No Time With Unity3D Free Read More

5.1 Unity Entities


5.1.1 Meshes
Meshes are the way 3D geometry is represented in Unity. The user can either use Unitys built-in primitive
objects (cubes, spheres, cylinders, etc), or import their own 3D models from a modelling package like
Blender or Maya. Unity supports a variety of 3D formats, including Collada (.fbx), and .3ds. Create Beautiful
Organic 3D Models For Free With Sculptris [Windows & Mac] Create Beautiful Organic 3D Models For
Free With Sculptris [Windows & Mac] Sculptris is a 3D design tool by Pixologic, makers of the $699
professional 3D tool ZBrush. It comes from a good home, but unlike its sister app, Sculptris is entirely free.
Weve covered Sculptris in... Read More
The basic tools for manipulating meshes are the scaling, rotation, and translation buttons in the upper left
corner of the interface. These buttons add control icons to the models in the editor view, which can then be
used to manipulate them in space. To alter the texture or physics properties of an object, select them and use
the inspector view to analyze the material and rigidbody elements.
5.1.2 GUI Elements
Traditional GUI sprites and text can be displayed using the GUI Text and the GUI Texture GameObjects
in the editor. However, a more robust and realistic way to handle UI elements is to use the 3D text and Quad
GameObjects (with transparent textures and an unlit transparent shader) to place HUD elements into the
gameworld as entities. In the hierarchy view, these gameplay elements can be dragged onto the main
camera to make them children, ensuring that they move and rotate with the camera.
GUI elements (text and textures) can have their size and scale adjusted using the relevant fields in the
inspector tab.
5.1.3 Materials
Materials are combinations of textures and shaders, and can be dragged directly onto game objects from the
project tab. A large number of shaders come with Unity Pro, and you can adjust the texture attached to them
using the inspector tab for an object that theyre applied to. Five Important PC Gaming Terms Explained Five
Important PC Gaming Terms Explained If you play a game on a console, the technical details are handled for
you. Some players prefer this, but PC gamers often enjoy the greater degree of control they have over a
games eye... Read More
To import a texture, just convert it to a jpg, png, or bmp, and drag it into the assets folder under the Unity
project directory (which appears in My Documents by default). After a few seconds, a loading bar will
appear in the editor. When it finishes, youll be able to find the image as a texture under the project tab.
5.1.5 Lights
Lights are GameObjects which project radiance onto the world. If there are no lights in your scene, all
polygons are drawn at the same brightness level, giving the world a flat look.
Lights can be positioned, rotated, and have several internal characteristics that you can customize. The
intensity slider controls the brightness of the light, and the range controls how quickly it fades out. The
guidelines in the scene view show you the maximum range of the illumination. Play with both settings to
achieve the desired effect. You can also adjust the color of the light, the pattern (cookie displayed on the
surface the light is pointed at, and what kind of flare appears onscreen when looking directly at the light. The
cookie can be used to fake more realistic light patterns, create dramatic false shadows, and simulate
projectors.

The three main kinds of light are spot, point, and directional. Spot lights have a location in 3D space and
project light only in one direction in a cone of variable angle. These are good for flashlights, searchlights,
and, in general, give you more precise control of lighting. Spot lights can cast shadows. Point lights have a
location in 3D space, and cast light evenly in all directions. Point lights do not cast shadows. Directional
lights, finally, are used to simulate sunlight: they project light in a direction as though from infinitely far
away. Directional lights affect every object in the scene, and can produce shadows.
5.1.6 Particle Systems
Particle systems are the term for Unity GameObjects that generate and control hundreds or thousands of
particles simultaneously. Particles are small, optimized 2D objects displayed in 3D space. Particle systems
use simplified rendering and physics, but can display thousands of entities in real time without stuttering,
making them ideal for smoke, fire, rain, sparks, magic effects, and more.
There are a lot of parameters that you can tweak to achieve these effects, and you can access them by
spawning a particle system under the component editor, selecting the particle system, and then opening the
inspector tab. You can change the size, speed, direction, rotation, color, and texture of each particle, and set
most of those parameters to change over time as well. Under the collision attribute, if you enable it and set
the simulation space to world youll get particles that will collide with objects in the world, which can be
used for a number of realistic particle effects, including rain, moving water, and sparks.

6. Example: Basic Elements of a Game


For this tutorial, were going to make a simple game of Pong. In this section, well just go over arranging the
core elements the scripting tutorial will come later. How To Recreate The Classic Pong Game Using
Arduino How To Recreate The Classic Pong Game Using Arduino Pong was the first ever videogame that
reached the mass market. For the first time in history, the concept of a "video game" was brought into the
family home, thanks to the Atari 2600 -... Read More
First, lets break down the game of Pong into its basic components. First, we need two paddles, and a ball.
The ball flies offscreen, so well want a mechanism to reset it. We also want text to display the current score,
and, for the sake of showing you all the core elements of Unity, well want a fancy particle effect when you
hit the ball, and the whole game will need to be dramatically lit.
That breaks down into a ball object (a sphere), a spawner, two paddle props with particle emitters attached, a
3D-text entity, and a spot light. For this tutorial, well be using the default physic material bounce, with
bounce combine set to multiply. Heres what the setup looks like, in ten screenshots:

First, create a cube prop for the paddle.

Scale it appropriately, duplicate it, and put a sphere between the paddles for the ball.

Then, create a 3DText object and scale and position it correctly, changing the font size attribute to get a less
pixelated image.

Next, create two particle systems, pick the characteristics you want, and attach them to the paddles.

Next, youll want to position and rotate the camera so that it frames the scene correctly. While the camera is
selected, you can see a small preview of the cameras view in the lower right hand corner.

Before we finish, we need to create two additional cubes to be bumpers, to prevent the ball from bouncing
out of the game area. We can make them invisible by unchecking the mesh renderer in the inspector tab.

If you hit play, you can now see the basic elements of our game laid out. They wont do anything yet, but
well get to that!

Now that weve got that setup, were going to talk about whats involved in scripting these elements to make
a game.

7. Scripting in Unity
Once you have a script attached to an object, you can revise it by double clicking on it in the inspector. This
opens MonoDevelop, the default development environment for Unity. In essence, Monodevelop is a text
editor with features specifically optimized toward programming. Keywords and comments are highlighted in
blue and green, and numerical values and strings appear in red. If youve used Eclipse or other IDEs,
MonoDevelop is very similar. You can build your scripts from inside the editor, to check for syntax errors,
like so: The Basics Of Computer Programming 101 - Variables And DataTypes The Basics Of Computer
Programming 101 - Variables And DataTypes Having introduced and talked a little about Object Oriented
Programming before and where its namesake comes from, I thought it's time we go through the absolute
basics of programming in a non-language specific way. This... Read More

In general, to get your script to interact with Unity, youll need to reference elements that the object holding
the script possesses (you can see a list of these elements under the inspector tab when the relevant object is
selected). You can then call methods or set variables for each of these elements to enact the changes you
want.
If you want a script on an object to affect the properties of a different object, you can create an empty
GameObject variable in your script, and use the inspector to assign it to another object in the scene. The
screenshots below show what that looks like.
A list of the elements an object might have is as follows (taken from the inspector view of one of our paddles
in the above example):

Transform

Cube (Mesh Filter)

Box Collider

Mesh Renderer

Each of these aspects of the object can be influenced from within a script. Next, well look at exactly how.

7.1 Transform
The transform functions for a GameObject in Unity control the physical parameters of that object: its scale,
its position, and its orientation. You can access them from within a script like this:
transform.position = newPositionVector3;
transform.rotation = newRotationQuaternion;
transform.localScale = newScaleVector3;

In the above examples, the named variables are of the types specified in the names. There are a few key
details here: position and scale are, as youd expect, stored as Vector3s. You can access the x, y, and z
components of each (for example, transform.position.y gives you the distance of an object above the zero
plane). However, to avoid gimbal lock, rotations are handled as Quaternions (four-component vectors).
Because hand-manipulating quaternions is unintuitive, you can manipulate rotations using Eulerian angles by
using the Quaternion.Euler method like so:
transform.rotation = Quaternion.Euler(pitch, yaw, roll);

If you wish to move objects smoothly from one place to another, youll find the Slerp method for quaternions
and vector3s helpful. Slerp takes in three arguments the current state, the final state, and the speed of
change, and smoothly interpolates between them at the given speed. The syntax looks like this:
transform.position = Vector3.Slerp(startPositionVector3, newDestinationVector3, 1);

7.2 Renderer
The renderer functions in Unity allow you to control the way the surfaces of props are rendered on-screen.
You can reassign the texture, change the color, and change the shader and visibility of the object. The syntax
looks like this:

renderer.enabled = false;
renderer.material.color = new Color(0, 255, 0);
renderer.material.mainTexture = myTexture;
renderer.material.shader = newShader;

Most of these have pretty clear functions. The first example makes the object in question invisible: a useful
trick in a number of situations. The second example assigns a new RGB color (namely, green) to the object in
question. The third assigns the main diffuse texture to a new Texture variable. The last example changes the
shader of the objects material to a newly defined shader variable.

7.3 Physics
Unity comes with an integrated physics engine that allows you to assign the physical properties of objects
and let the details of their simulation be handled for you. In general, rather than trying to implement your
own physics using a textbook and the transform system, it is simpler and more robust to use Unitys physics
engine to the greatest extent possible. Smash, Drive & Build: 3 Awesome Physics Sandboxes Simulators
Smash, Drive & Build: 3 Awesome Physics Sandboxes Simulators Read More
All physics props require colliders. However, the actual simulation itself is handled by a rigidbody, which
can be added in the inspector view. Rigidbodies can be kinematic or nonkinematic. Kinematic physics props
collide with (and effect) nonkinematic physics props around them, but are unaffected by collision
themselves. Static kinematic props are the proverbial immoveable objects, and moving kinematic objects are
the proverbial unstoppable force (for the record, when they collide, they simply pass through each other).
Beyond that, you can adjust the angular drag of the object (how much energy it takes to spin it), change its
mass, dictate whether or not its affected by gravity, and apply forces to it.
Examples:
rigidbody.angularDrag = 0.1f;
rigidbody.mass = 100;
rigidbody.isKinematic = false;
rigidbody.useGravity = true;
rigidbody.AddForce(transform.forward * 100);

These are all pretty self-explanatory. The only thing to note here is the use of transform.forward. Vector3s
all have three components(.forward, .up, and .right) associated with them, which can be accessed and rotates
with them (forward is the direction of the blue arrow in the editor). transform.forward is simply the
forward vector for the current object with magnitude 1. It can be multiplied by a float to create more force on
the object. You can also reference transform.up and transform.right, and negate them to get their
reverses.

7.4 Collision
Often, when building a game, youd like a collision to result in some change-of-state in your code, beyond
just physics simulation. For this, youll need a collision detection method.
Theres a certain amount of prep work needed to detect collisions in Unity. First, at least one of the objects in
the collision needs a non-kinematic rigidbody attached to it. Both objects must have correct colliders, set to
be non-triggers. The total speed of both objects must be low enough that they actually collide, instead of
simply skipping through one another.
If youve got all that taken care of, you can check for collision by placing a special collision detection
method in a script attached to the object youd like to check collision with. The method will look like this:
void OnCollisionEnter(Collision other){

//do things here


}

This method will automatically run during the first frame that another object touches your object. The
collision entity other is a reference to the object that you hit. You can, for example, reference its
gameobject, rigidbody, and transform characteristics to manipulate it in various ways. While
OnCollisionEnter is probably the most common function youll be using, you can also use
OnCollisionExit and OnCollisionStay (with otherwise identical syntax and usage), which activate during
the first frame that you stop colliding with an object and during every frame that youre colliding with an
object, respectively.
Sometimes, it can also be useful to do whats called raycasting. In raycasting, an infinitely thin line (a ray)
is cast through the world from some origin, along some vector, and, when it hits something, the position and
other details of the first collision are returned. The code for a raycast looks like this:

RaycastHit hit;
if (Physics.Raycast(transform.position, -Vector3.up, out hit)){
float distanceToGround = hit.distance;
}

This casts a ray from the position of the current object along -Vector3.up (straight down), and links the
variable hit to the first object it collides with. Once your ray has hit something, you can access hit.distance
to determine how far away it is, or hit.GameObject to manipulate the object you hit.
Raycasts like this can be used for shooters to determine what the guns pointed at, or to select objects when
the camera looks at them, or for certain styles of movement mechanic.

7.5 Time Correction


One important factor to keep in mind when youre manipulating objects in this way has to do with framerate.
No matter how carefully you optimize, framerates will always vary, and you dont want your game speed to
vary accordingly. If someone else runs your game on a faster computer than you developed it on, you dont
want the game to run at double speed.
The way you correct for this is by multiplying the values youre using by the time it took to render the last
frame. This is done by using Time.deltaTime. This effectively changes the speed of any variable youre
incrementing every frame from change per frame to change per second, and you should probably make
this change to any value youre incrementing or decrementing every frame.

7.6 Audio Sources and Listeners


Now that weve covered how to create, render, and control objects, lets talk about the other sense that
computer games can serve: namely, sound. Unity supports two kinds of sounds: 2D and 3D sounds. 3D
sounds vary their volume based on distance, and distort as they move relative to the camera; 2D sounds do
not. 2D sounds are appropriate for voice-overs and background music, and 3D sounds apply to sounds
generated by events in the world. In order to change whether or not a sound is 3D, select it in the project
view, switch to the inspector view and select the appropriate option from the dropdown menu, then press
the reimport button.
In order to actually play the sound, youll need to attach an audiosource to a prop (the prop you want the
sound to originate from, in the case of a 3D sound. Then youll need to open the audioclip field and select
your sound file.

You can use myAudioSource.Pause() and myAudioSource.Play() to control those sound files. You can adjust
the falloff behaviors, volume, and doppler shifting of the sounds under the inspector tab for the
audiosource.

7.7 Input
A game that doesnt take any input from the user isnt much of a game. There are a lot of different kinds of
input you can read in, and almost all of them are accessible through the Input and KeyCode objects. Some
sample input statements (which have a values evaluated every frame) are below.

Vector3 mousePos = Input.mousePosition;


bool isLeftClicking = Input.GetMouseButton(0);
bool isPressingSpace = Input.GetKey(KeyCode.Space);

The functions of these lines is mostly self explanatory. Using these three kinds of input reference, you can
reconstruct the control schemes of most modern 3D computer games.

7.8 Debugging a Script


Lets say a script doesnt work. As the good doctor says, bangups and hangups can happen to you. If there are
outright syntax errors with your C#, the game will generally refuse to run when you hit play, and some fairly
useful error messages are provided if you build the scripts from within the editor. See below:

These bugs are typically not the most difficult to fix. What can be more problematic are subtle semantic
errors, in which you have successfully written a file full of valid C# just not one that does what you thought
it would. If you have one of these errors, and youre having trouble tracking it down, there are a few things
you can try to improve the situation.
The first is to pause the execution of the game, and check the console. You can pause the game by clicking on
the pause icon in the upper middle portion of the editor, and then selecting console from the bottom of the
window menu (or pressing Ctrl-Shift-C). Even if there are no errors, warnings can still help to give some
clues as to what might be going wrong.
If this doesnt work, you can also try to get some idea about the state of your script by printing the state of
internal variables to validate that the program is doing what you think its doing. You can use
Debug.Log(String); to print the contents of a string to the console when the program execution hits that line.
In general, if you work backwards from what you think should be happening through the things that should
be making it happen, eventually you will reach a point where your debug prints dont do what you expect
them to do. Thats where your error is.

8. Example: Scripting Pong


To build Pong, lets break the game down into its core elements: we need a ball that ricochets back and forth
between the paddles at increasing speed, we need a scoreboard that knows when the balls have passed the
paddles, and we need a mechanism for restarting the ball when that happens. A good first step would be to
add a non-kinematic rigidbody to the ball, two kinematic rigidbodies to the paddles, disable gravity for all of
them, and assign an appropriate physic material from the standard assets (bounce with bounce combine set
to multiply).
Below, you can view the script for the ball with explanatory comments. The ball needs to accomplish some
basic goals: it should bounce in a complicated pattern, always maintaining movement on both axes, and it
should accelerate at a challenging but not impossible pace in the horizontal direction.
BallHandler.cs
Next, we need to script our paddle, which you can, again, view below. The paddle needs to move up and
down in response to key presses (but not outside certain bounds). It also needs to trigger the particle system
when it collides with something.
PaddleHandler.cs
Next, we need enemy AI: something that will cause the enemys paddle to track towards the ball at a fixed
rate. For that, well be using Vector3.Slerp for maximum simplicity. Wed also like the same particle
behavior that we see on our own paddle.
EnemyAI.cs
Finally, we need a script to update the scoreboard and reset the ball when it goes out of bounds.
ScoreboardUpdater.cs
With those scripts attached and the references filled in, when we run our game of Pong, we experience
gameplay!

You can download my Pong demo, if youd like to see everything Ive outlined in action. It runs on
Windows, Mac and Linux systems.

9. Exploring the Documentation / Learning More


Unity is a complex engine with many more features than could feasibly be covered in a guide of this style,
and thats before you include the wide swathe of (free and commercial) Unity extensions available on the
Internet. This guide will give you a strong starting place for developing a game, but self-education is an
important skill in any endeavor, and doubly so here.
A crucial resource here is the Unity ScriptReference. The ScriptReference is a searchable database, available
for both C# and Javascript, which has a list of every Unity command and feature, with descriptions of their
functions and brief examples of syntax.
If youre having trouble with the editor and interface of Unity, or just like video tutorials as a matter of
preference, there is a long list of high-quality Unity video tutorials available. More extensive (but less broad)
text tutorials for Unity are also available from CatLikeCoding.
Finally, if you have questions beyond the scope of documentation or tutorials, you can ask specific questions
at answers.Unity3d.com. Remember that answers are provided by volunteers, so respect their time and search
the database first to make sure your question hasnt already been answered.

10. Building Your Game / Compiling to a Standalone Application


When youve built something youre proud of (or youve finished cloning our slightly dodgy Pong example
for practice), its time to move your game from the editor and turn it into something that you can post on the
Internet and force your friends and family to play. In order to do that, youll need to build a standalone
application. The good news is that in Unity, this is very, very easy. There are, however, a few potential
hiccoughs that youll want to be careful of.
For starters, know that you can only build an error-free project. To that end, make sure you have the console
open as you build: there are some error conditions that the game will ignore in the editor, but will still abort
an attempted build. This only dumps error messages to the console, with no visible results onscreen, which
can be frustrating if you forget to check. Once youve got your game compiling error-free, though, you can
select Build Settings under the File menu, or press Ctrl-Shift-B. This will bring up a simple dialog that
allows you to build your game for several platforms.

The process from there is self explanatory: select your options, and hit build; the game will prompt you for
a directory to install to, and will place both the executable and data directory there. These two files can be
zipped together and distributed (just make sure you arent charging for a game built in the Unity demo, as
this violates the terms of service).

11. Closing Notes


As with any game development tool, the key to success with Unity is iterative development. You have to
build in manageable increments be ambitious, by all means, but be ambitious in small chunks, and arrange
those chunks such that, even if you fall short of your ultimate ambition, youll at least wind up with a
coherent product. Get the most crucial elements in first: have an idea in mind of your minimum viable
product, the simplest, most bare-bones thing you could possibly create and still feel as though you achieved
something worthwhile. Get to that minimum viable project before moving on to larger ambitions.
This tutorial gives you a strong starting place, but the best way to learn Unity is while building a game. Start
building a game, fill gaps in your knowledge as they come up, and the gradual flow of knowledge will erode
away the things you dont know surprisingly quickly. Unity is a powerful tool, and with a bit of exploration,
you can be building impressive projects with it quicker than you might expect. Good luck, and enjoy Unity!
Guide Published: February 2014

Andre Infante 144 articles


A writer and journalist based in the Southwest, Andre is guaranteed to remain functional up to 50 degrees
Celcius, and is waterproof to a depth of twelve feet.
Advertisement

Latest Giveaways
UHANS H5000 Review and Giveaway

Riley J. Dennis January 6, 2017

Teclast TBook 16 Pro Hybrid Dual-Boot Tablet


Review and Giveaway

James Bruce January 3, 2017

3Doodler Create 3D Pen Review and Giveaway

Christian Cawley December 29, 2016


Advertisement

Trending
Linux

Do People Really Use That? 15 Weird Linux


Operating System

Bertel King, Jr. January 5, 2017


Gaming

10 Useful Xbox One Settings You May Have


Missed

Ben Stegner January 4, 2017


Gaming

Free Games for PS Plus & Xbox Live in January

Ben Stegner January 3, 2017


Advertisement

Related Articles
DIY

Arduino Programming For Beginners: The Traffic


Light Controller

Joe Coburn January 6, 2017


Deals

Complete Ruby on Rails Super Bundle Will Get


You Building Apps in No Time

MakeUseOf Deals January 4, 2017


Programming

Learn How to Use the Python Virtual Environment

Joe Coburn January 2, 2017


Advertisement

Latest Deals
Pay What You Want: Hardcore Game Dev Bundle

Pay What You Want: Hardcore Game Dev Bundle

$1601.00 $1
EasilyDo: Lifetime Subscription

EasilyDo: Lifetime Subscription


$200.00 $19
Flame Painter 3: Personal License

Flame Painter 3: Personal License


$29.99 $9.99
Pay What You Want: White Hat Hacker 2016 Bundle

Pay What You Want: White Hat Hacker 2016


$765.00 $1
Intro to Financial Trading Course

Intro to Financial Trading Course


$129.00 $5
Affiliate Disclosure: By buying the products we recommend, you help keep the lights on at MakeUseOf. Read more.
Advertisement

Scroll down for the next article


Wordpress & Web Development

Add 40+ New Layout Features To WordPress with


Shortcodes Ultimate
Christian Cawley February 6, 2014 4 minutes
Add 40+ New Layout Features To WordPress with Shortcodes Ultimate
Facebook Twitter Pinterest Stumbleupon Email
Add pull-quotes, spoiler warnings, column layouts and much more to WordPress. Shortcodes Ultimate makes
it easy.
WordPress-powered blogs can be enhanced by all manner of plugins, many of which introduce new features.
Installing and updating additional features can be time-consuming, however which is where a plugin like
Shortcodes Ultimate comes in.

What Are Shortcodes & What Makes Them Ultimate?

Shortcodes are small snippets of text that you can introduce into a blog post, page or PHP file to add new
features. These features will be coded into a separate file that you dont need to access all you need to do is
use the format [shortcode] to add the visual enhancement, embedded media or layout change to your blog.
Shortcodes Ultimate is particularly good. It offers over 40 useful shortcodes many with conditions that can
be used to tailor their use that cover everything from adding spoiler tags and other accordion-like hidden
areas to animations, buttons, icons and even formatting your pages and posts into columns.
Wielding the power of CSS3, Shortcodes Ultimate also provides you with a useful button for adding
shortcodes in the post/page editing screen. Available free, the plugin offers a premium upgrade for $25 which
offers an additional 15 shortcodes (including a content slider and a splash screen), 60 new skins and a
shortcode creator. These can also be purchased separately as Add-ons.

To see a full list of options available with this powerful plugin, use the Shortcodes > Examples page.

How To Install Shortcodes Ultimate


As with any WordPress plugin, Shortcodes Ultimate can be easily installed via Plugins > Add new. Search
for the plugin, and follow the instructions to install it. You can also download Shortcodes Ultimate free from
the WordPress Plugin Directory and install it through your FTP application.

We recommend that, if you are installing plugins, you first make a backup of your WordPress sites theme
and database. You might do this through your web hosts CPanel or similar software, or by employing a
plugin such as Updraft.= How To Backup & Restore Your WordPress Site Easily With UpdraftPlus How To
Backup & Restore Your WordPress Site Easily With UpdraftPlus Read More

Adding A Shortcode: Pullquotes, Columns And Embeds


With over 40 shortcodes offered by the plugin, you might find yourself overwhelmed by options. The
versatility of the plugin can radically enhance your blog, however. The following examples should help
illustrate.

1. Pullquotes: If you want to enhance the layout of your blog by focussing on the content, you might
choose to use blocks of text that are left or right aligned to draw attention to particular sections of the
post. These are pullquotes and can be invoked with Shortcodes Ultimate using the [pullquote
align=left|right][/pullquote] tags.
2. Columns: You can introduce a variety of column-based layouts to your WordPress posts and pages
with Shortcodes Ultimate. For instance, you can use [column size=1/2]Content Column
1[/column] [column size=1/2]Content Column 2[/column] to create a page with two equal-width
columns. There are many varieties, such as a page split into three equal-width columns, or one with a
half-page column and two quarter-page columns. You can even combine column layouts by wrapping
the [column][/column] shortcodes with [row] and [/row] (There are many ways in which shortcodes
can be combined, creating stunning effects).
3. Third party and self-hosted content can also be added with a shortcode. While you probably wont
bother with YouTube (pasting a URL into a blog post is simpler than [youtube
url=http://youtube.com/watch?v=CODESTRING], after all) self-hosted clips can be added with
. Advanced options can be introduced for YouTube, such as the removal of the player controls, and
autoplay.
If you need to adjust the CSS for a pullquote, quote or shortcode, use the Shortcodes > Custom CSS tab to
add your own code. Stuck with or intimidated by CSS? We have several guides on MakeUseOf dealing with
this subject, and a good place to start is James 5 Baby Steps To Learning CSS. 5 Baby Steps To Learning
CSS & Becoming A Kick-Ass CSS Sorcerer 5 Baby Steps To Learning CSS & Becoming A Kick-Ass CSS

Sorcerer CSS is the single most important change webpages have seen in the last decade, and it paved the
way for the separation of style and content. In the modern way, XHTML defines the semantic structure...
Read More

Potential Problems: Updates & Conflicts


Having used Shortcodes Ultimate for several months, Ive become aware of a couple of issues that might
cause problems. Although relatively easy to fix, these are things that might cause you to choose a different
shortcodes solution. Given the raft of features in Shortcodes Ultimate, it would be a shame if you let these
problems affect you. So dont!

First of all, and most common, is the loss of shortcodes when you update the plugin. Recently, the developers
of Shortcodes Ultimate have introduced an update that changes the shortcode format from [shortcode] to
[su_shortcode], and there is every chance that they might do this again in future.
Fortunately, you can change the format of your shortcode by opening Shortcodes > Settings in the
WordPress admin page, and change or clear the entry in the Shortcodes prefix field.
You may also find that Shortcodes Ultimate prevents your blog from opening after install. If this happens, it
will probably because your current theme is already hardcoded to run a shortcode that conflicts with those on
offer in Shortcodes Ultimate. You can troubleshoot this by switching to the WordPress default theme
checking with the developer of the theme should offer a long term solution.

Conclusion
I discovered Shortcodes Ultimate while looking for a good option to cover up spoilers on my TV themed
website. The wealth of options on offer at first seemed like overkill, but over time Ive used more and more
of the layout enhancement offered by Shortcodes Ultimate, and would certainly recommend it to any
WordPress blog owner.

Easy to install and simple to use, Shortcodes Ultimate is among the upper echelon of WordPress plugins.
Quite simply, everyone should have a copy, which is why we include it the MakeUseOf Best of WordPress
Plugins list.

Christian Cawley 832 articles


Christian Cawley is MakeUseOf's security and Linux editor. He's also a Raspberry Pi tinkerer, Android user,
podcaster and Doctor Who fan, and contributes regularly to Linux User & Developer magazine.
Advertisement

Latest Giveaways
UHANS H5000 Review and Giveaway

Riley J. Dennis January 6, 2017

Teclast TBook 16 Pro Hybrid Dual-Boot Tablet


Review and Giveaway

James Bruce January 3, 2017

3Doodler Create 3D Pen Review and Giveaway

Christian Cawley December 29, 2016


Advertisement

Trending
Linux

Do People Really Use That? 15 Weird Linux


Operating System

Bertel King, Jr. January 5, 2017


Gaming

10 Useful Xbox One Settings You May Have


Missed

Ben Stegner January 4, 2017


Gaming

Free Games for PS Plus & Xbox Live in January

Ben Stegner January 3, 2017


Advertisement

Related Articles
Internet Self Improvement

5 Internet Skills You Need for Any Creative Home


Business

Saikat Basu October 24, 2016


Deals

Pay What You Want For Premium Training in


Web, Mobile, and Game Development

MakeUseOf Deals August 19, 2016


Promoted

5 Essential Forms That Every Website Needs to


Have

Joel Lee March 16, 2016


Advertisement

Latest Deals
PureVPN: Lifetime Subscription

PureVPN: Lifetime Subscription


$597.00 $69
Digital Entrepreneur Bundle

Digital Entrepreneur Bundle


$745.00 $19
Pay What You Want: 2017 Master Game Development Bundle

Pay What You Want: 2017 Master Game


$1109.99 $1

Pay What You Want: White Hat Hacker 2017 Bundle

Pay What You Want: White Hat Hacker 2017


$1271.00 $1
EasilyDo: Lifetime Subscription

EasilyDo: Lifetime Subscription


$200.00 $19
Advertisement

Scroll down for the next article


Wordpress & Web Development

Not Just For Developers: 7 HTML Tags Any


Writer Should Know
Ryan Dube January 28, 2014 11 minutes
Not Just For Developers: 7 HTML Tags Any Writer Should Know
Facebook Twitter Pinterest Stumbleupon Email
Would you sketch a drawing without having an eraser handy? Would you paint a room, without first taping
the edges of the walls? Well then, dont even think about blogging without an understanding of the following
7 HTML tags, which any online writer really should know.
There are a lot of situations when you may need to tweak the formatting of a blog entry or online article. If
youre a freelance author, having the ability to deliver a well formatted article utilizing nothing but a text
editor and HTML code is an excellent skill to have.
To be marketable and flexible online, you just have to know how to format a full HTML article, or how to
tweak things when even a web-based editing tool doesnt get things quite right. The following are 7 critical
HTML tags that you should always keep in your back pocket, as well as when and why you should use them.

HTML Aint Just For Geeks


There are plenty of basic HTML tags out there, but this article isnt meant to be yet another drab introduction
to HTML for you poor writers who have absolutely no interest in learning to code web pages. No, what were
talking about here is formatting on the web. For an article to really look good, there are some general rules to
follow and some valuable, hard-learned tips that I really wish I had known about when I first started writing
for clients on the web.
I dont say that lightly. Im a programmer at heart, and when I first started writing on the web, I could have
coded a web page from scratch without really breaking a sweat. Still, I had plenty to learn when it came to
using HTML for article formatting. Today, Id like to pass along some of the lessons Ive learned over the
last decade over to aspiring new online writers and bloggers. Here are the seven formatting tips were going
to look at tags for: quote formatting, placing images, list formatting, structuring headers, creating emphasis in
sentences, placing non-obtrusive ads, and crediting sources.

Headers Who Needs Them?


Throughout the years, the etiquette for things like header tags (<h1>, <h2>, etc) has changed. While the
age-old SEO tip to flow headers from large to small throughout the article holds true, theres a constant
debate amongst publishers as to whether its better to just use the same header size throughout, whether
things like bolded text constitute a valid subheader, and all sorts of other nit-picky details. Forget all of that.
All you have to remember is that studies clearly show that the eye pattern of readers on the web show a clear
F shaped pattern that you need to take advantage of when youre writing.

In an eye tracking study conducted by the Nielsen Norman Group, researchers found that on the Internet,
readers first read horizontally across the top of the page a couple of times, and then they scan down the left
side of the page. What this study reveals is that readers will use headers as a tool to identify the content thats
important to them. So, if you care about providing what your readers want, then whether you order headers
from large to small doesnt matter as much as filling headers with informative words that actually tell readers
what the section is about, and placing them evenly throughout the article to organize it well.
You may think youre being witty and creative with those headlines, but if you arent describing the section,
you really arent doing anyone any favors.

To Quote or Not To Quote


Hands down greatest tag invented, in my opinion, is the <blockquote> tag. The reason I love it is because of
the cool styling it offers blog owners. Whatever WordPress or Blogger theme you use, the odds are pretty
good that it treats the <blockquote> tag differently. Each theme designer has his or her idea of what should
go into the CSS styling of quotes in articles. The point is that this offers you the ability to break up the
content of your article in a way that pleases the eye and draws people to read the quote.
If youre writing for a client, ask them if its okay for you to make use of the tag, and if they allow it, by all
means use it.

A tip for using <blockquote> in your articles: dont overdo it. One or two short quotes in an article thats
about 800 to 1000 words is more than enough. It gives not only the ability to give the eye a break from
paragraphs, but it lets you bring in quotes from outside experts, which further bolsters the credibility of your
article. You cant lose.

How to Use Images


Another thing that the Nielsen online reader heatmaps revealed: people tend to linger at images when reading
an article online. Furthermore, the eyes are drawn to the next image. This gives you a very powerful
psychological way to keep people reading along in your article. Plus, much like a <blockquote>, images
break up the content and give the readers eye a break.
Obviously, MakeUseOf employs the use of nice, big images ideal for the sort of tech-help articles that are
found on a site like this.

Youll notice that the images are spaced just far enough apart so that by the time youve scrolled a little bit,
the eye is aware of another image coming up below. Its not something thats done only for the psychological
impact of drawing the eye down the article it just makes for a much more enjoyable read and a better
looking article.
With that said, if the blog or website youre writing for doesnt have the real-estate on the page for big, fullwidth pictures like this, then at the very least you should make use of smaller images that are aligned to the
left or the right throughout the article. When I do this on my own blog, I actually like to alternate from left to
right just to change things up as the article flows down the page.

Aligning images with the text wrapping around like this is usually just a simple matter of setting the align
class to right or left in the <img> tag, but always check with the blog or website owner youre writing
for to find out if theres any CSS styling that makes use of something like whats known as the float
property to do alignments. There may be specific syntax you need to use to align images like this depending
on the CSS styling, so take the time to ask the designer. Its well worth the effort, and will make for a much
more attractive article.

Make a List and Check It Twice


As Tina detailed in her article on HTML tags, there are two types of lists youll format in HTML, the ordered
list tag <ol> and the unordered list tag <ul>. The first puts numbers in front of the list items, the second puts
dots. You can see the syntax in Tinas article, but when exactly is it appropriate to use one or the other or
even use a list at all? Top 11 HTML Tags Every Blogger & Website Owner Must Know Top 11 HTML Tags
Every Blogger & Website Owner Must Know The world wide web knows many languages and is coded in
several different ones. The one language however, that can be found all over and has been around since the
invention of webpages, is the... Read More
First and foremost, lists are yet another great way to break up the monotany of straight paragraphs, keeping
the reader interested, and once again drawing the eye to a quick list of items that can be scanned pretty easily.
The rule of thumb that I use is whether or not the items need to be counted in any way. If they do, use a
numbered list. Otherwise, use unnumbered.

It sounds simple, but sometimes theres a grey line. For example, listing reasons why using a wireless
network can be unsecure would require a list without numbers, because really it doesnt matter how many
there are theyre just reasons. On the other hand, when youre giving steps in a process or some procedure
where the order of the list matters, the numbers make sense. Dont use numbers if you dont have to, because
they can make your list awkward. Bulleted lists can go a really long way toward improving the layout of
your article so having at least one, if its appropriate for the topic, is a very good idea.

Bolding and Italics Have Evolved


It used to be that bolding text was the way to go when you wanted to emphasize a phrase or some point in a
sentence. This proliferated with the horrendous website designs of the 90s, where sites trying to sell things
would bold and change the font size of various words to somehow subconsciously get you to focus on those
money words or somethingI don t know. But I do know that once blogging became so popular, and
headers started to form the structure of that content, bold font no longer made sense to emphasize anything.
At best, its better used as a way to turn text into the smallest-sized header possible which lots of blogs out
there do.
In the old days, the bold tag was <b>, and lots of people continue using it unaware that the web has moved
on to the more modern tag of <strong>, or the CSS syntax of <span style=font-weight:bold>text</span>.
Likewise, everyone used to use <i> for everything italics, while today the method to emphasize text in italics
is to use the <em> tag. This is really the ideal way to put emphasis on a word or phrase. It works well, and
looks clean and professional when done in moderation.

Non-Obtrusive Ads
How you place an ad into your article can really make the difference when it comes to not losing your
readers because of it. Really, many readers are accustomed to the idea of ads and why they are necessary to
pay for content, but what annoys readers and drives them away (or forces them to use those horrible adblockers) is ads that pop-up, block text, or are camouflaged to look like part of an article. Dont do that.
Instead, use ads with clear borders, and utilize the CSS float method to make text wrap around it (unless
youre placing it in the sidebar). This is what that looks like:
<span id=more-xxxxx>
<div style=float: right;>
<script type=text/javascript><!
google_ad_client = ca-pub-xxxxxxxxxxxxx;
google_ad_slot = xxxxxxxx;
google_ad_width = 300;

google_ad_height = 250;
//>
</script><br />
<script type=text/javascript
src=http://pagead2.googlesyndication.com/pagead/show_ads.js>
</script></div>
The float:right; will place it in the text where you need, and you can automate this in WordPress by using
templates like Ive described in past articles. This removes the need to place the ad into every single article.
As you can see, the ad is large enough to attract attention, but it isnt camouflaged or blocking any text, so if
readers want they can just ignore it and read on. No problem. How To Use A Wordpress Content Template To
Write Faster How To Use A Wordpress Content Template To Write Faster Wordpress is a brilliant invention,
and has made it possible for more and more people to have amazing websites, with beautiful themes.
However, there is still the matter of the content area, which still needs... Read More

The worst thing you can do with your articles is overdo it with ads and drive off readers (and in many cases
you may not even have to worry about ads, like if youre writing for a client). However, as your own blog
owner, these are the kinds of things that you need to consider when youre writing articles on your site, and
these basic ad formatting tips can make a big difference with how your ad is perceived.

Crediting Sources
The worst thing about the Internet right now is really the content thievery that takes place and Im not only
talking about the lowlifes that scrape the net for content and copy it onto their own low-quality spam sites,
set up only for Google traffic. No, even the largest and most popular websites both major blogs and news
media outlets have a very bad habit of stealing news stories and scoops from smaller bloggers and
websites, adding a few extra quotes, and claiming the idea as their own. Its horrible and pretty unethical, but
it happens. That doesnt mean you should follow suit. In fact, it makes sense that citing high-quality sources
to back up article claims would get your website identified as a high-quality source of reliable information.
Thats SEO gold right there. RefDot: Makes Citing Sources From The Web Easy RefDot: Makes Citing
Sources From The Web Easy Read More

However, you also dont want that text to stand out as important content at the footer of your article. A
common approach to citing story sources or image sources at the footer of an article is to use the <small> tag,
which forces the font down one size. Its a great way to format copyright info, legal comments, and credits. It
provides the information needed, but doesnt distract from the actual conclusion of the article itself.
Of course, the tips above are the bare basics that any online writer should learn, but if youre interested in
digging deeper there are lots of resources. Check out my article listing some great websites where you can
learn HTML code. Tina has also detailed some additional, useful HTML effects you could add to your site.
If you want to really go crazy, there are also resources out there to learn CSS as well. 8 Best Websites For
Quality HTML Coding Examples 8 Best Websites For Quality HTML Coding Examples Read More
The simple truth of the matter is that writing online takes more than just the creativity required to write
something for a print publication. Internet publication means you need to understand not only the basic codes
behind websites, but also when and why you should make use of them.

Ryan Dube 1019 articles


Ryan Dube is MUO's Managing Editor. With an Electrical Engineering degree and working as an IT
Programmer/Analyst, his writing focuses on life hacking and self improvement through automation. You can
visit him on Twitter or his website.
Advertisement

Latest Giveaways
UHANS H5000 Review and Giveaway

Riley J. Dennis January 6, 2017

Teclast TBook 16 Pro Hybrid Dual-Boot Tablet


Review and Giveaway

James Bruce January 3, 2017

3Doodler Create 3D Pen Review and Giveaway

Christian Cawley December 29, 2016


Advertisement

Trending
Linux

Do People Really Use That? 15 Weird Linux


Operating System

Bertel King, Jr. January 5, 2017


Gaming

10 Useful Xbox One Settings You May Have


Missed

Ben Stegner January 4, 2017

Gaming

Free Games for PS Plus & Xbox Live in January

Ben Stegner January 3, 2017


Advertisement

Related Articles
Deals

Learn Code and Creativity with these 3 Web


Design Learning Bundles

MakeUseOf Deals June 23, 2016


iPhone and iPad

How You Can Type Easier and Faster on Your


iPhone

Harry Guinness May 9, 2016


Creative

Automate Your Online Creative Portfolio with


These IFTTT Recipes

Dann Albright March 11, 2016


Advertisement

Latest Deals
Pay What You Want: White Hat Hacker 2017 Bundle

Pay What You Want: White Hat Hacker 2017


$1271.00 $1
Essential Speed Reading Bundle

Essential Speed Reading Bundle


$146.95 $19
Pay What You Want: Learn to Code 2017 Bundle

Pay What You Want: Learn to Code 2017 Bundle


$1573.00 $1
Pay What You Want: Personal Finance Bundle

Pay What You Want: Personal Finance Bundle


$656.00 $1
Flame Painter 3: Personal License

Flame Painter 3: Personal License


$29.99 $9.99
Advertisement

Scroll down for the next article


Promoted

7 Unique WooCommerce Plugins to Help You Sell


More
James Bruce January 27, 2014 4 minutes
7 Unique WooCommerce Plugins to Help You Sell More
Facebook Twitter Pinterest Stumbleupon Email
Starting your own web store is easy so easy, in fact, that many people are doing it. Youll need to have
some unique features in order to stand out. This little selection of WooCommerce plugins should help!
If youre thinking about starting a web store but just not sure where to begin, my latest free eBook walks you
through the complete process from setting up hosting to adding products and launching.
Get your online store up and running with Bluehost web hosting. Sign up from $3.95/month.

Coin Payments (Free)


The market is flooded with crypto currencies like BitCoin (What is Bitcoin?) and Litecoin (Complete guide
to mining your own Litecoins) at the moment and, regardless of your personal feelings about them, they have
a real dollar value and some people have a lot of them to spend. Do you see where Im going with this? Not
only will accepting crypto currencies open up a entirely new avenue of revenue possibilities, youll also be
eligible for listing on various directories that tell people where to spend their hard-mined coins. Yes, that
means free advertising. More importantly, youll be a part of the future. 6 Alternative Cryptocurrencies
Compared Against Bitcoin 6 Alternative Cryptocurrencies Compared Against Bitcoin Thinking of mining a
cryptocurrency like Litecoin or Bitcoin? It's not too late. Read More
Luckily, CoinPayments.net makes it all rather easy: the have a drop-in component for WooCommerce that
simply adds another gateway to your checkout. You can choose precisely what coins to accept (even
Dogecoins are on the list), and you need to do is make sure a wallet address is set up for each one.

Variation Swatches and Photos ($99)


An essential plugin for any clothing shop or iany products which include colour or size variations. This
plugin allows you to replace the standard drop-down selection fields with fantastic image- and colour-based
selectors instead.

At $99 for a single site licence this one doesnt come cheap, but it makes such a dramatic and professional
difference that it should easily be worth the cost on an appropriate site.

Filter By Colour ($16)


It wont be of use to every shop, but if you have lots of simple products in a specific colour then this colour
filter widget should prove to be a useful feature. I hope I dont have to explain what this one does, but I will
tell you its automatic: it looks at your product images, extracts which colours you have, then presents a filter
on your sidebar alongside your price or category filters. Users click that to narrow down their product
selection. Nice!

WooCommerce Instagram ($29)


Products that really have a wow factor can harness the users desire to take selfies by automatically
including them on product pages. With this plugin, youll be able to add a unique hashtag to each product:
when users upload a picture with that hashtag, itll appear on the page. This will also help fill out your page
with additional content for SEO value on shorter listings, but more importantly it should give customers a
view of the product in context.

MailChimp Integration($15)
A complete integration of MailChimp into WooCommerce. If you arent already using MailChimp for
sending newsletters, you should be. It has awesome WYSIWYG template building and is totally free for
small lists, with affordable, scalable pricing. This plugin is a must to connect the two: adding subscription
options to checkout, widgets for your front-end, and short codes to add sign-up forms anywhere. In addition,
theres a whole range of advanced features for auto-responders such as checking up on how a purchase is
working out. For $15 this is a ridiculous amount of features, making this one an absolute must.

Social Coupon ($20)


Allow your users to get a coupon by Tweeting, Liking, or +1ing the page. This is a quick and easy way to
integrate social sharing, with a purpose, directly into the checkout process and on product pages. Coupons
are automatically added to the checkout without requiring the user to actually type in a code.

If youd rather do this the DIY way, I wrote a tutorial on displaying hidden content only after a share action
had taken place, but its more limited in that it can only reveal the discount code and youll need to edit
templates yourself. A worthy $20 to get it done automatically, if you ask me. Make Your Own Tweet/Like/+1
To Unlock System with jQuery Make Your Own Tweet/Like/+1 To Unlock System with jQuery Going viral
used to mean a disease epidemic, but now it's something all content creators crave. You could rely on the
quality of your content alone - if it's good enough, people will share it,... Read More

Free Gift ($14)


The psychology of free stuff really shouldnt be underestimated. Using this plugin, you can offer customers a
choice of free items if they spend above a certain amount, as well as exclude free gifts if you they use a
coupon.

If youve set your own WooCommerce shop, what problems have you faced? Did a plugin help? Which
plugins have you found that really boosted sales? Lets talk below, okay?
If you need a web host to set up your online web store, sign up for Bluehost at just $3.95/month.
Previous PostContact Form 7: The Best Contact Form Plugin For WordPressNext PostNot Just For
Developers: 7 HTML Tags Any Writer Should Know

James Bruce 629 articles


James lives in the middle of nowhere with his wife, son, and chickens. He spends an absurd amount of time
in the VR room and tinkering with DIY home automation systems.
Advertisement

Latest Giveaways

UHANS H5000 Review and Giveaway

Riley J. Dennis January 6, 2017

Teclast TBook 16 Pro Hybrid Dual-Boot Tablet


Review and Giveaway

James Bruce January 3, 2017

3Doodler Create 3D Pen Review and Giveaway

Christian Cawley December 29, 2016


Advertisement

Trending
Linux

Do People Really Use That? 15 Weird Linux


Operating System

Bertel King, Jr. January 5, 2017


Gaming

10 Useful Xbox One Settings You May Have


Missed

Ben Stegner January 4, 2017


Gaming

Free Games for PS Plus & Xbox Live in January

Ben Stegner January 3, 2017


Advertisement

Related Articles
Internet

13 Bargain Websites That Are Cheaper Than eBay

Sandy Stachowiak January 5, 2017


Finance

5 Online Shopping Sites That Will Actually SAVE


You Money

Joel Lee December 30, 2016

Deals

Attention Last Minute Shoppers These Digital


Deals Dont Need to Ship

MakeUseOf Deals December 23, 2016


Advertisement

Latest Deals
Advertisement

Scroll down for the next article


2017 MakeUseOf. All Rights Reserved.

You might also like