Unity 5 vs Unreal Engine 4

With over four and a half million registered users, Unity is the most popular game engine there is. 47% of game developers use Unity, while only 13% use Unreal Engine. But let’s examine them both….

Price

This can be a big factor in deciding which game engine to use.

Unity’s “Personal Edition” of Unity 3D is a free, full featured engine. The professional edition, Unity Pro is $1500 per major release or $75/month. If you have Unity Pro, you get features such as a customizable splash screen, beta access, unlimited revenue and funding, Unity Analytics Pro, source code access, and much more. If your game makes above a hundred grand in annual gross revenue, you must purchase Unity Pro.

Unreal Engine 4 was previously $19 a month, but as of March 2015 Unreal has been and will be free, and you get the C++ source code. Once your game ships, you pay Epic Games 5% of your quarterly gross revenue per product after your make your first three grand.

Learning

Both engines have a very active communities, with discussion forums and answers hubs, as well as great documentation, tutorials, and wikis.

Unreal’s documentation is stellar, very well written with great explanations and screenshots.  While Unity’s docs are also great, they have some room to improve.

Unity has an amazing number of video tutorials on learn.unity3d.com. They have hundreds of professional tuts uploaded so far, for beginners and advanced users, covering every aspect of the game creation process. Both engines occasionally host live seminar style training sessions (Unity more often than Unreal).

Platforms

multiplatforms supported by unity more than unreal

Unreal Engine: Windows PC, Mac OS X, iOS, Android, VR, Linux, SteamOS, HTML5, Xbox One, and PS4.

Unity 3D: Windows PC, Mac OS X, Linux, Web Player, WebGL, VR(including Hololens), SteamOS, iOS, Android, Windows Phone 8, Tizen, Android TV and Samsung SMART TV, as well as Xbox One & 360, PS4, Playstation Vita, and Wii U. With over 25 platforms supported, it seems Unity is the winner in this area.

Graphics

 

unity book of the dead vs unreal graphics
Unity “Book of the Dead” demo

With the release of Unity 5 came many new features that enabled developers to make beautiful, next-gen games. Unity 2018 brought us the Scriptable Render Pipeline. Combining that with Quixel’s Megascans delivered AAA level graphics showcasing the new capability of the Unity engine. But it seems Unreal is still one step ahead in graphics; it is naturally more equipped to produce more realistic results in terrain, particles, post processing effects, shaders, and more.

Ease of Use

unity interface

Unity has always been known for their easy to use interface where beginners can jump right in and start making games. Though Unreal Engine 4 was a major improvement over UE3, they still take second place behind Unity in the area of user experience.

Both interfaces are very similar, with toolbars and settings within resizable & movable windows. Unreal’s UI is still quite bloated and complex. Everything takes longer and is more complicated than it should be. Assets take a long time to import and save, and simple tasks require extra, unnecessary steps. Unity 3D is fast, and the interface is quick and responsive. It’s so light that it can run on Windows XP (SP2), while UE4 requires at least Windows 7 64-bit. Though the final product may look nicer in Unreal than in Unity, getting there can take longer and require more effort, especially for beginners.

Code

unreal engine 4 blueprint coding

Unity games are programmed with JavaScript, C#, or Boo. Most developers use either JS or C#. It’s not required to only use one. You can use one or the other, or all three. Unreal engine ships with the Blueprints Visual Scripting system, which can be used to make an entire game, or used in combination with the somewhat faster C++ scripting. Unity 3D does not have a visual scripting system built-in (yet), however there are excellent solutions that can be purchased on the Unity Asset Store, most notably Playmaker and uScript Professional.

Services

unity analytics gif

Unity Tech offers many amazing services such as Unity Ads, Everyplay (for recording & sharing mobile gameplay), Unity Multiplayer, Analytics, Cloud Build, Performance Reporting, Premium Support, and more.

Epic Games does not have so many services, but they have created a five million dollar development fund to “provide financial grants to innovative projects built in and around Unreal Engine 4”.

Assets

Both Unreal and Unity have great places where you can buy and sell game assets.

The Unity Asset Store has over fifteen thousand assets and 1.5 million users. Most of the assets are very affordable.

The Unreal Marketplace is much newer than Unity’s asset store, and therefore much smaller. The assets are also generally more expensive. However, they all seem to be very high quality.

If you are selling assets, note that both stores split the profit 70/30.

Conclusion

Both engines are fantastic game creation tools, and similar in many ways. But perhaps their best quality is that they are both free, with some revenue limitations. So you can download them both, try them out, and let me know what you think in the comments below.

All images credit unity3d.com and unrealengine.com.

Advertisements

Generate Project Folders Script

When creating a new project, use this simple script to generate all your folders:

// generate folders in our project
import System.IO;

@MenuItem ("Project Tools / MakeFolders #&_z")
// menuItem reads the first static function
static function MakeFolder()
{
GenerateFolders();
}

static function GenerateFolders ()
{

var projectPath : String = Application.dataPath + "/"; // store the path for the folders

// creating the folders
Directory.CreateDirectory(projectPath + "Audio");
Directory.CreateDirectory(projectPath + "Materials");
Directory.CreateDirectory(projectPath + "Meshes");
Directory.CreateDirectory(projectPath + "Resources");
Directory.CreateDirectory(projectPath + "Scripts");
Directory.CreateDirectory(projectPath + "Shaders");
Directory.CreateDirectory(projectPath + "GUI");
Directory.CreateDirectory(projectPath + "Textures");
Directory.CreateDirectory(projectPath + "Scenes");
Debug.Log ("Folders Created");

AssetDatabase.Refresh ();

}

Making Custom Gizmos

In this post, I will show you how to make a custom gizmo using code.

First, you need an image with an alpha channel. Here’s an example:

gem gizmo gimp

Okay, make sure you import your image into Unity. You should make a folder in your Unity project called “Gizmos” and put your gizmos in that folder. Next create a script. It’s as simple as 1, 2, 3 lines of code.

function OnDrawGizmos () {
    Gizmos.DrawIcon (transform.position, "gemGizmo.png");
}

That’s in JavaScript. Let me give it to you in C# as well..

using UnityEngine;
using System.Collections;

public class example : MonoBehaviour {
    void OnDrawGizmos() {
        Gizmos.DrawIcon(transform.position, "gemGizmo.png");
    }
}

Attach the script to your game object.

If you want to use a gizmo without code, keep reading.

As of Unity 3.5x, you can select your game object, look at the top left corner in the Inspector, and click the little icon with the arrow. Then click Other and choose your texture.

Unity 4 Features Summary

Unity 4 will be released sometime soon, and it’s sure to be fantastic. Here are some of the new features:

BETTER GUI SYSTEM
Much better optimization and performance

MECANIM
Retargetable animation
Easy and visual animation blending
Easy use of mocap
Use inverse kinematics rigs

NEW USER INTERFACE
Better project organization
Component based workflow
Live preview Asset Store assets within Unity Project window

DIRECTX 11
Unity makes use of Microsoft’s DirectX 11

3D TEXTURES
The ability to use volumetric textures for advanced shader effects.

SHURIKEN PARTICLES
Updates to the Shuriken particle system for more realism.

MOBILE SHADOWS
Dynamic, real time shadows for mobile

LINUX
Deployment to the Linux OS supported.

…AND MORE!

UNITY 4 FEATURES NOT IN FREE VERSION

Mecanim IK rigs
Some navigation mesh features
3D Textures
Lightmapping with normal maps

Exporting Meshes from UDK to Unity

You can’t export whole scenes and levels from UDK to Unity and expect it to be a playable game. Unity and UDK speak totally different languages. But you can export individual meshes(objects). Here’s how.

First, open the Unreal Development Kit (UDK).

UDK2Unity1

Next, open the Content Browser if it’s not already open. (View > Browser Windows > Content Browser)

UDK2Unity2

Good. Now, choose a object you want to export. I’m going to use those stairs for this example. Select the stairs, then drag and drop them into your scene. Once it’s in your scene, select it so it turns kind of purple. Then right click on it, and choose the option “Export (.FBX)”.

Continue reading “Exporting Meshes from UDK to Unity”

Making a Successful Indie Game

Can one person really make a whole game by themselves? I think so. How to do it, you wonder? Follow my ten tips below.

#1. Don’t try to do something you know you cant do. We would love to make the next Battlefield 3, but the reality is that an independent game developer will never achieve this. On the other hand, making the next Angry Birds or Temple Run is something an indie developer can do. Don’t be overconfident, but don’t get discouraged. Think big, just not too big. And don’t think art-centric. Think fun-centric.

#2. Use Unity 3d. Unless you really need super high-end graphics which then you would use UDK. But just trust me, you really want to use Unity.

#3. Look at other indie games, like Minecraft. What are they up to? What about them inspires you?

#4. Subscribe to Create3DGames. This might be overly obvious, but just in case you forgot. (Click on the RSS button to subscribe). Do it now. Right now. Okay, next tip…

#5. Be creative. Be the most creative person you know. Creativity = $UCCE$$. Always. Well, usually. Sometimes. Just be original. Don’t be a copycat.

#6. Get your friends to test your game. You need feedback. Lots of it. Release an alpha version online, and a beta version, too.

#7. Develop your idea before you start work on developing the game. Get the game design done before the game development. You need to have a solid story for the game. Do a few sketches of what you want different scenes or levels in the game to look like.

#8. Go for mobile. Smartphone (and tablet) games are becoming very popular, and it also gives you an excuse for not making triple A graphics in your game.

#9. Don’t be afraid to use other people’s stuff in your game. You might have to give them credit or whatever, but for certain things like game music and sound effects, you will probably want to buy those from someone else, unless you can do that stuff yourself. Which most people can’t. Probably because they don’t have a whole orchestra and sound boards and what not.

#10. Don’t give up. Sure, you might fail the first time. But that just means you will do even better next time. Also, whatever assets you make for the game, sell them online. Like if you have a 3d model you made for the game, then sell it on Turbosquid or the Unity Asset Store or something.

Good luck and happy game developing!

Exporting from Google Sketchup Free to Unity Free

Lots of people want to know: how do I get my models from Google Sketchup into Unity 3D? The answer is very simple. And here it is.

First, you need a model. I found this cool model on the Google Sketchup 3D Warehouse. Ideally, you’d make your own, but you don’t have to. Also, make sure the model is in the center of your world. Meaning, zero on the x, y, and z coordinates.

Next, export it (File > Export > 3D Model). Note that this is in Sketchup FREE, not PRO. Save it in your assets folder in your Unity project.

Continue reading “Exporting from Google Sketchup Free to Unity Free”

Shaders, Materials, and Textures

What is the difference between a material, a shader, and a texture? And why do they exist?

First of all, be aware that in some programs, there is no difference. For example, in Maya, a shader and a material are the same thing. Phong shader, Phong material, same exact thing. Such is true for other programs. However, a texture is completely different from either of these.

A texture is a 2D image pasted onto a material, basically. The material typically contains all the properties of how the model looks, such as the shader, color, opacity, glowyness (is that a word?) and so forth. The shader, generally speaking, makes the model look different. It can make the model pretend like it’s more detailed than it really is, or make it look like it’s on fire, or make it look like water is dripping down it the sides of it, or turn the model into glass, or a mirror, or whatever. There’s  many cool things you can do with shaders. They are typically used to make objects more shiny, though.

Shader Types
Image courtesy of wiki.blender.org

Continue reading “Shaders, Materials, and Textures”

Very useful tips for making your audio sound good in your game.

The Sound Design Process

In this post, you will learn the basics of audio on Unity, from importing files to make your sound object interact with the environment.

     Import Audio Files: simply drag your audio file into the Project tab. If you click on it you’ll see its settings:

Unity will call any audio file an Audio Clip, which will be important to remember when creating a Javascript for determining its behaviour. An Audio Clip is basically a container for the audio data. From this Inspector tab you are able to compress your Audio Clip to fit the needs of your game on memory usage.

Assign the Audio Clip to an Object: In order to have your sound playing, you’ll need to tell what object will hold that sound. And for that you need to create an Audio Source. From the Hierarchy tab, you click on which object you want…

View original post 581 more words

Selection Script for Unity3D

This script is royalty free; you can use it for whatever you want to. What it does is when you click an object, the object is highlighted. When you click on it again, the object is un-highlighted, back to normal.

Just copy and paste this script into your JavaScript in Unity. Then attach the script to any visible object in your scene, including 3d text.

Here it is:

// Declare our variables...

var selectedColor : Color = Color(0.2, 0.3, 0.4); //This will give us a color wheel to choose a color from.
private var isSelected : boolean = false; // Simple boolean variable. Can be either true or false.

// Okay, now for the functions.
// The function OnMouseDown means to only do whats in the function when the user clicks the mouse.

function OnMouseDown ()
{
//isSelected = isNotSelected...
isSelected = !isSelected;

// If it's unselected, make sure the material color is white.
if (!isSelected) {
renderer.material.color = Color.white;

}

// If it's selected, change the material color to the selectedColor.
if (isSelected) {
renderer.material.color = selectedColor;

}

}

// Feel free to use this script in commercial or non-commercial purposes.
// My name in the credits somewhere would be appreciated, though.

Create3DGames Poll

Moving Objects Through Scripting in Unity3D

You can make objects move in Unity3D without animating them. Use JavaScript! Or C#, but for right now I’m going to show you how to do it with JavaScript. That’s what most Unity developers use.

So, first create a new JavaScript and open it up. Type this in it: (don’t copy and paste, you won’t learn)

function Update () {
transform.Rotate (1,0,0);
}

Save that, and attach it to a GameObject. Play the game, and you will see that whatever object you have attached the script to will be rotating in the x axis. The speed of this rotation is dependent upon the frame per second of your game. So if you have a really fast computer, the object will probably be spinning quite fast.

A few tips:

Transform means location or position.
transform.Rotate means rotate the position.
That (1,0,0) means rotate in the x axis; not y, not z.
Don’t forget the semi colon at the end of line 2.

So how about we make the object rotate at a fixed speed? That’s easy enough. Type this up:

var rotateSpeed: int=4;

function Update () {
transform.Rotate(Vector3.right*Time.deltaTime*rotateSpeed);
}

A few tips:

var means variable
int means integer
Time.deltaTime means, basically, time.
Multiply that by our variable, rotateSpeed (use the asterisk)

Make sure you save and update the script and all that and that, and you’re ready to go! If you want to change the axis of rotation, change Vector3.right to Vector3.up or Vector3.left or whatever.

Done!

Maya vs 3ds Max

Which is better? Autodesk Maya or Autodesk 3ds Max?

I’m really not going to go into depth here; there are many comparisons of the two softwares already out there.

Personally, I wish Autodesk would just merge the two programs. They are basically the same. And they are, slowly. Autodesk Maya 2013 has some features from MotionBuilder, Mudbox, and 3ds Max built into it now.

They are both extremely powerful programs. I would not recommend any other 3d modeling software, besides Blender 3D, and I would only say to use Blender when it involves money or licensing. Blender is free, powerful, open source, and there are many tutorials online if you want to learn how to use it.

If you are only going to use Maya or 3ds Max for non-commercial or personal use, you can download the student version at http://students.autodesk.com. Or, you can download free trials to find out which one works for you. That’s my suggestion. Download and install the trials, try them both, and see what you like. Then, if you plan on using it for commercial purposes, go ahead and buy whichever you choose. Note: It will cost a few thousand dollars.

That’s all for now!

Corona SDK : My Random Thoughts

Corona SDK is pretty neat. It’s inexpensive. It’s easy to learn. But one extra feature would be great:

A user interface in which I could drag and drop images onto my app preview and place them where I want to, then set certain general setting for that object. Corona SDK is all scripting. That’s not too cool.

Overall Corona SDK is great for developing apps for iOS or Android, for only $150 bucks. Of course, publishing for iOS requires a Mac.

Corona SDK is only 2D. Which is fine, really just fine.

Did you know the word corona means “crown”? Well, it does.

Have you ever seen Bubble Ball? Google it. Made with Corona SDK.

That’s all my rambling for now.

Corona (software development kit)