Subscribe to GameFromScratch on YouTube Support GameFromScratch on Patreon
4. January 2015

 

Gamefromscratch has a long running series taking an indepth look at various game engines available.  Today we are going to look at the Godot game engine, an open source C++ based game engine with a complete Unity-esque world editor.  Godot runs on Windows, Linux and Mac platforms and can target all of those, plus iOS, Android, PS3 and PS Vita, NaCL with HTML5 and Windows Phone both being in development.

 

In Godot’s own words:

Godot is an advanced, feature packed, multi-platform 2D and 3D game engine. It provides a huge set of common tools, so you can just focus on making your game without reinventing the wheel.

 

That description is incredibly apt as well, you will certainly be surprised by just how many tools are included.  Now let’s jump right in!

 

There is a video on this post available here (and embedded at bottom of the page) which goes in to a bit more detail.

 

The Editor

 

You get started with Godot by downloading the executable from the downloads page.  You probably expect this to be an installer, but you would be wrong.  Instead when you run it you get the Project Manager:

image

 

Here you can either create a new project or load an existing one.  Finally once you’ve selected or created, you are brought to the editor:

image

 

This is where the magic happens.  The above screenshot is of the Platformer demo being edited.  The left hand window is where your scene is composed.  As you can see from the four tabs above, you can work in 2D, 3D, Script editing or browse the built in help in this window.  The top left icons are actually menus and a lot of the functionality and tools are tucked away behind Scene and Import.

 

The top right hand dialog is your scene graph:

image

 

Here you can see ( and create/instance ) the items that make up your world.  Simply click the New Icon to add a new items to the world, or the + Icon to add a new instance instead.  The other icons are for wiring scripts and signals (events) up to the objects in your world.

 

Below the scene graph, you’ve got the Inspector window, which enables you to set properties of objects in your scene.  As you can see from the screen shot, Godot takes a very modular/component approach which is quite popular these days:

image

 

This enables you to visual inspect and edit properties of your game objects.  It also represents one of the first flaws of Godot… some of the controls are just awkward to use.  For example if you don’t hit enter after editing a text property, the values are lost.  Additionally modifying numeric fields can be a pain in the ass at times.  It’s all stuff that can be fixed with time ( Godot was only open sourced about a year ago after all ) but for now its clunky and somewhat annoying.

 

Coding

 

So that’s the visual editor… what about code? 

 

Well the majority of your programming is going to be done in GDScript, using the included editor.  GDScript is a Python-esque proprietary scripting language.  I don’t generally like this approach as it makes all the existing tools and editors worthless, lose the years of bug fixing, performance improvements, etc…  while forcing a learning curve on everyone that wants to use the engine.  That said, the idea behind a scripting language is they should be easy to use and learn.

 

The authors explained their decision in the FAQ:

 

The short answer is, we'd rather a programmer does the small effort to learn GDScript so he or she later has a seamless experience, than attracting him or her with a familiar programming language that results in a worse experience. We are OK if you would rather not give Godot a chance because of this, but we strongly encourage you to try it and see the benefits yourself.

The official languges for Godot are GDScript and C++.

GDScript is designed to integrate from the ground to the way Godot works, more than any other language, and is very simple and easy to learn. Takes at much a day or two to get comfortable and it's very easy to see the benefits once you do. Please do the effort to learn GDScript, you will not regret it.

Godot C++ API is also efficient and easy to use (the entire Godot editor is made with this API), and an excellent tool to optimize parts of a project, but trying to use it instead of GDScript for an entire game is, in most cases, a waste of time.

Yes, for more than a decade we tried in the past integrating several VMs (and even shipped games using them), such as Python, Squirrel and Lua (in fact we authored tolua++ in the past, one of the most popular C++ binders). None of them worked as well as GDScript does now.

More information about getting comfortable with GDScript or dynamically typed languages can be found here.

 

That covers the why anyways, now let’s look at the language itself.  As I said earlier, it’s a Python like (whitespace based) scripting language.  Let’s look at an example from the included demos:

extends RigidBody2D


const STATE_WALKING = 0
const STATE_DYING = 1

var state = STATE_WALKING
var direction = -1
var anim=""
var rc_left=null
var rc_right=null
var WALK_SPEED = 50

var bullet_class = preload("res://bullet.gd")

func _die():
   queue_free()

func _pre_explode():
   #stay there
   clear_shapes()
   set_mode(MODE_STATIC)
   get_node("sound").play("explode")
   

func _integrate_forces(s):

   var lv = s.get_linear_velocity()
   var new_anim=anim

   if (state==STATE_DYING):
      new_anim="explode"
   elif (state==STATE_WALKING):
      
      new_anim="walk"
      
      var wall_side=0.0
      
      for i in range(s.get_contact_count()):
         var cc = s.get_contact_collider_object(i)
         var dp = s.get_contact_local_normal(i)
         
         if (cc):
         
            
            if (cc extends bullet_class and not cc.disabled):
               set_mode(MODE_RIGID)
               state=STATE_DYING
               s.set_angular_velocity(sign(dp.x)*33.0)
               set_friction(true)
               cc.disable()
               get_node("sound").play("hit")
               
               break
            

         if (dp.x>0.9):
            wall_side=1.0
         elif (dp.x<-0.9):
            wall_side=-1.0
            
      if (wall_side!=0 and wall_side!=direction):
      
         direction=-direction
         get_node("sprite").set_scale( Vector2(-direction,1) )       
      if (direction<0 and not rc_left.is_colliding() and rc_right.is_colliding()):
         direction=-direction
         get_node("sprite").set_scale( Vector2(-direction,1) )
      elif (direction>0 and not rc_right.is_colliding() and rc_left.is_colliding()):
         direction=-direction
         get_node("sprite").set_scale( Vector2(-direction,1) )
         
         
      lv.x = direction * WALK_SPEED
         
   if( anim!=new_anim ):
      anim=new_anim
      get_node("anim").play(anim)
            
   s.set_linear_velocity(lv)


func _ready():
   rc_left=get_node("raycast_left")
   rc_right=get_node("raycast_right")

 

As someone raised on curly braces and semi colons it can take a bit of time to break muscle memory, but for the most part the language is pretty intuitive and easy to use.  You can see a quick language primer here.

Remember earlier I said the code editor was built into the engine, let’s take a look at that now:

image

 

As you can see, the editor does provide most of the common features you would expect from an IDE, a personal favorite being auto-completion.  Features like code intention, find and replace and auto indention are all available, things often missing from built in editors.   Like dealing with the Inspector window though their can be some annoyances, like the autocomplete window appearing as you are trying to cursor around your code, requiring you to hit Escape to dismiss it.  For the most part though the editing experience is solid and hopefully some of the warts disappear with time.

 

Now perhaps the biggest deal of all:

image

Debugging!  This is where so many home made scripting languages really suck, the lack of debugging.  Not Godot:

image

You can set breakpoints, step into/over your running code and most importantly inspect variable values and stack frames.  Once again, it’s the debugging experience that often makes working in scripting languages a pain in the ass, so this is nice to see!

 

Hey, What about C++???

 

Of course, one of the big appeals of Godot is going to be the C++ support, so where exactly does that come in?  Well first and most obviously, Godot is written in C++ and fully open source under the MIT license ( a very very very liberal license ), so you can of course do whatever you want.  I pulled the source from Github and built without issue in Visual Studio 2013 in just a few minutes.  The build process however is based around Scons, which means you have to Python 2.7x and Scons installed and configured, but neither is a big deal.

 

What about extending Godot, that is what the majority of people will want to do.  Well fortunately it’s quite easy to create C++ extensions, although again you need Scons and have to do a bit of configuration, but once you’ve done it once assuming you’ve got a properly configured development environment the process should be quick and mostly painless.  From the wiki page here is a sample C++ module:

 

Sumator.h

/* sumator.h */
#ifndef SUMATOR_H
#define SUMATOR_H

#include "reference.h"

class Sumator : public Reference {
    OBJ_TYPE(Sumator,Reference);

    int count;

protected:
    static void _bind_methods();
public:

    void add(int value);
    void reset();
    int get_total() const;

    Sumator();
};

#endif

Sumator.cpp

/* sumator.cpp */

#include "sumator.h"

void Sumator::add(int value) {

    count+=value;
}

void Sumator::reset() {

    count=0;
}

int Sumator::get_total() const {

    return count;
}

void Sumator::_bind_methods() const {

    ObjectTypeDB::bind_method("add",&Sumator::add);
    ObjectTypeDB::bind_method("reset",&Sumator::reset);
    ObjectTypeDB::bind_method("get_total",&Sumator::get_total);
}

Sumator::Sumator() {
    count=0;
}

 

Then in your script you can use it like:

var s = Sumator.new()
s.add(10)
s.add(20)
s.add(30)
print( s.get_total() )
s.reset()

 

If you inherit from Node2D or a derived class, it will be available in the editor.  You can expose properties to the inspector and otherwise treat your module like any other Node available.  Remember though, for productivity sake, you should really only be dropping to C++ as a last resource.  It is however quite simple to do.

 

Nodes, Nodes and more Nodes

At the heart of Godot, the world is essentially a tree of Nodes, so I suppose it’s worthwhile looking at some of the nodes available and how they work.  From the scene graph window, you add a new node to the world using this icon:

image

 

Next it’s a matter of picking which type, which could of course include modules you created yourself in C++.

image

 

As you can see from the small portion I’ve shown above, there are a LOT of built in nodes already available.  From UI controls, to physics controllers, path finding and AI tools, bounding containers, video players and more.  Essentially you create your game by composing scenes, which then are composed of nodes.  Once you’ve created a node you can then script it.  Simply select your node in the scene graph and then click the script icon:

image

 

Then a New Script dialog will be displayed:

image

 

And your script will be created:

image

 

As you can see, the script itself inherets from the node type you selected.  You can now script any and all logic attached to this particular Node.  Essentaily your game logic is implemented here.

 

In addition to wiring up scripts to game nodes, you can also wire up Signals.

image

 

Signals can be thought of as incoming events:

image

 

HELP!

 

So, what about Help then?  Well this is both a strength and weakness of Godot.  As you saw earlier, there is actually an integrated help tab.  You can look it up any time, or use press SHIFT + F1 while coding to get context sensitive help:

image

It’s invaluable, but unfortunately the resulting help file is often just a listing of methods/parameters and nothing more.  I often instead just keep the class reference from the Wiki open in a browser window.  For an open source project, the reference is pretty good, but it could still certainly use a lot more love.

 

Next are the tutorials, there’s a fairly good selection available on the Wiki but I think a good in-depth beginner series is really needed.  To someone that just downloaded Godot and is thinking “now what”… that presents a challenge. That said, I will probably be creating one, so this shouldn’t be an issue in time!

 

Finally, and perhaps most valuably, there are several demos included:

image

 

Publishing

 

So, once you’ve finished your game, how do you publish it to the various available platforms?  Well for starters you click the Export button:

image

 

You also need an export template, which is available from the Godot downloads site.  Additionally you need to  configure the tool chain for each platform, such as the Android SDK for Android, XCode for iOS ( and a Mac!  You can’t end run around the needing a Mac for iOS development requirement unfortunately), etc.  But the process is spelled out for you and they make it pretty easy.

 

Summary

 

I haven’t even really touched upon the plethora of tools tucked away in the editor…  need to import a font, there’s a tool for that.  There’s an improved Blender COLLADA plugin which just worked when I tried it.  There’s a tool for mapping controls to commands, there are tools for compressing and modifying textures on import, for modifying incoming 3D animations, etc…  Basically if you need to do it, there is probably a tool for it shoved in there somewhere.

 

On the other hand, the process itself can be pretty daunting.  Figuring out how to get input, a script’s life cycle etc isn’t immediately obvious.  It really is an engine you have to sit down with and just play around.  Sometimes you will hit a wall and it can be pretty damned frustrating.  However, it’s also a hell of a lot of fun and once it starts to click it is a great engine to work in.

 

I definitely recommend you check out Godot, especially if you are looking for an open source Unity like experience.  That said, calling this a Unity clone would certainly be doing it a disservice, Godot is a great little game engine on it’s own accord that deserves much more exposure.

 

The Video Version

 

Click here for the full resolution 1080p version.

Programming


19. December 2014

 

This is the first of a series of Blender video quick tips that show how to do things ( normally the easy/lazy way ) in Blender you may not already know.

 

In this video we look at how to quickly model organic shapes using:

  • splines/curves
  • edge loop bridging
  • solidify
  • grid fill

 

The video is available in full 1080p here.  I am sorry for the lack of onscreen keys, I thought Camtasia would record these, unfortunately it didn’t.  For future videos of this type I will use some form of onscreen keyboard.  If you have a suggestion, I would love to hear it!

 

Art


16. December 2014

 

Sorry… absolutely can’t resist that pun, no matter how obvious it is.  Anyways… the Godot Game Engine has been on my radar since they announced they were going open source at the beginning of the year.  Today they finally announced their 1.0 release today.godot

 

 

Never heard of Godot?  It’s a Unity-esque game engine, except powered by C++ and scripted using a Python-like scripting language.  It includes a surprising number of tools and most importantly, a complete game editor (pictured right).

 

Godot works in both 2D and 3D, with 2D being a first class citizen, not just 3D minus a D.  Godot runs on Windows, OSX and Linux.  Godot is able to target iOS, Android, Desktops, Googles’ NaCL, PlayStation3 and Vita, as well as HTML5 and Windows Phone coming soon.

 

You can read the complete feature list here.

 

You can browse available documentation here.

 

Godot is an open source project hosted on GitHub.

 

What do you think… are you interested in Godot, would you be interested in seeing GameFromScratch do some more in-depth coverage now that it’s reached such a milestone release?

News


12. December 2014

 

Modo, a popular 3D modeling application ( learn more about Modo and more in my Introduction to 3D Applications post, or watch the video ) has just been released on Steam.  Actually, Steam being Steam, it’s actually on sale right now for 25% off!

 

image

 

 

Considering the full price of Modo is about $1,600, the Steam Indie version for $250 CDN is quite a bargain!  So, what’s the catch?

 

Yeah, there’s always a catch isn’t there?  So, what’s the difference between Modo and Modo Indie?  Well…

 

  • Project file (.lxf) linked to Steam account / cannot be shared with other users
  • OBJ and FBX export limited to 100k polys
  • Bake and render resolution limited to 4k
  • Command eval options unavailable
  • Command, scripts, and command history panel results unavailable except “undo” and “history”
  • Python editor, third-party scripts, and third-party plugins unavailable
  • OBJ and FBX export only
  • Can import all formats but can only save in .lxf format
  • Image save formats limited to .png, .jpg, .tiff and .exr

 

So they went the Maya LT route and limited the functionality but not the licensing.  This means you can use Modo Indie regardless to how much money you make or how you use it.  This is the deal breaker for many Indie licenses…  As to the stripped out functionality, I think the first restriction is going to be the most difficult one for many to swallow.

 

Simply put you cannot collaborate on a Modo Indie project!  Only one artist will be able to work on the project, ever.  It’s tied to your Steam account id and cannot be shared with others or distributed, although obviously you can export/import in OBJ or FBX format, so for many this wont be much of a limitation in the end.  However for teams with multiple people working on the same resource, or teams where the artist could change at some point in the future, this is going to be a gigantic deal breaker.

 

I haven’t used Modo recently enough to tell if script/plugin support is a big loss or not.  I frankly don’t recall there being any plugins back when I evaluated.  I understand why they do this though, or the very first plugin that would be released would be something to get around the 100K polygon limits.

 

The other limitations seem reasonable.  The 100K export limit precludes you from being able to use Modo as a level editor, but I don’t think many people are doing this anyways.  For game ready assets, 100K polygons and 4K texture limits seem appropriate.  If your needs are much more extreme than that, I can see how you wouldn’t be viewed as an Indie anymore and thus should have funds to purchase the full version.

 

Another affordable 3D option for indie game devs is always welcome, more choice is almost always good.  If you are interested in picking up Modo, the sale ends December 18th/2014.  That said, this is Steam we are talking about, so there will always be another bigger and better sale around the corner!  Oh, they also have a package deal with their MARI Indie texture painting package.  You can purchase both together for $315CDN.

 

Oh yeah, they also released MARI Indie as well… suppose I should mention that.  I have absolutely no experience with Mari, so I figured I would go with their description:

 

MARI indie is the fastest, most artist-friendly way to texture, paint, and detail amazing 3D assets for your game projects. Fine-tuned for individual developers and freelance artists in the game industry, MARI indie is an invaluable toolset that lets you focus on the artistic aspect of 3D game asset painting without getting bogged down by the technical side -- free of any individual commercial restrictions and without breaking your budget!

 

Delivering massive power and flexibility at minimal cost, MARI indie gives you ultimate control over painting and detailing every facet of your 3D models and animations in a way that's quick, intuitive, and highly creative -- all in one complete package that lets you work just the way you want.


Supported by the world’s most advanced layering system, MARI indie is a real workhorse. It gives game artists and content creators all the functionality they need to exactly replicate the look of assets in their games engine.

 

Once again, MARI Indie has no limitations on commerical usage, all limitations are technical:

 

  • Project file (.mra) linked to Steam account / cannot be shared with other users
  • Allowed export formats: .psd, .png, .tga, .jpg
  • Output formats no longer available .exr, .tif, .tiff, .hdr, .dds, and .ptx
  • The patch count is limited to 2 patches
  • The object count is limited to 3 objects
  • The output texture resolution size has been limited to 4k
  • Python scripting disabled

 

With zero experience with MARI I have no opinion on these limitations either way.

 

But WAIT, there’s more!

 

image

 

Yep, there is also a subscription plan available.  And at as low as $11 CDN a month it’s pretty freaking reasonable too.  For example, Maya LT is $30 a month, although they only offer monthly rates.

Art News


2. December 2014

 

Starting life as niche technology, costing millions of dollars and used only on high end films, 3D graphics have now become nearly ubiquitous these days.  Still used in movies ( nearly all movies these days ), 3D graphics are used heavily in games, TV, marketing, conceptualization, engineering and much much more.

 

In this particular guide we are going to look at the more popular options out there, with an obvious bias towards gaming.  If you are just starting out and trying to get an idea of what���s available, this should be the perfect page for you!

 

This entire discussion ( and much more I think ) is available as a 56 minute talk in 1080p on YouTube as well as embedded at the bottom of this post.

 

A Quick History Lesson

 

Actually, the big two would probably be more accurate, as Autodesk recently put a bullet in one of these apps.  These are probably the three most used commercial 3D graphics applications, and to really understand them probably requires a bit of a history lesson.  Don’t worry, I’ll keep it brief.

 

Way back in the stone age of computer graphics, there were a handful of really successful 3D applications, but at the forefront were a pair of applications.  One was a product called Power Animator created by a company called Alias ( who became Alias/Wavefront ) which eventually morphed into a project called Maya.  Power Animator was used in such early and high profile 3D movies like Terminator 2 and The Abyss and on early 3D video games like Super Mario 64.  The other major player of the day was a product called Softimage ( the one that just took a bullet actually… ) which was used to make Jurassic Park and the Virtua Fighter series of games.  By no means were they the only players, many others existed such as Nichimen nWorlds, Lightwave and more, but these two were the big players used in big budget movies.

 

A few things started to happen however…  In these early days, the computers capable of running these 3D applications were dedicated workstations like those from Silicon Graphics Inc (SGI) and Digital (DEC).  These machines ran from $10K to $50K and much much more.  3D graphics applications certainly weren’t and neither were the machines that ran them. 

 

There was a movement towards running 3D applications on “mere mortal” machines.  The earlier mentioned Lightwave ran on Amiga’s for example, as did a popular-at-the-time application called Imagine.  But three major things happened to bring 3D graphics to the unwashed masses

 

  1. home computers became less crappy.  OpenGL arrived, 3D cards arrived, processors got faster and memory increased
  2. Autodesk created a program called 3D Studio that ran on DOS.  It was a very small player in the industry (outside of CAD that is), but opened 3D up to a world of people that never had access.
  3. Microsoft released Windows NT and wanted to move into the 3D market, so they did what they did and bought it.  That is, they bought Softimage and ported it to Windows.  Coupled with companies like Intergraph releasing workstation class PCs and the rise of the video card, they succeed.

 

Fast forward a few years and many amazing things happened.  Kinetics became Autodesk ( of AutoCAD fame ) and 3D Studio became 3D Studio Max, moving from DOS to Windows.  In fact, Windows is now the new home of 3D.  SGI is fast becoming a fading memory and all the major applications have been ported to Windows.  Then a wonderful thing happens… prices all start to fall!  A version of Maya and Softimage are available for under $1,000 and free game focused versions are available of Softimage ( Mod Tool ) and 3D Studio ( GMax ).  3D had truly started coming to the masses.

 

Enter Autodesk.  There was a LOT of consolidation in the industry…  Alias and Wavefront merged to form Alias/Wavefront, Microsoft purchased Softimage and eventually sold it to Avid.  In the end, Autodesk purchased both Avid and Alias resulting in all three major 3D applications being owned by a single company.  Almost over night the price wars predictably enough ended, and the prices went up.  That said, it hasn’t all been bad.  These days, for students and educators anyways, the entire Autodesk suite is available for free.  There is also a game focused version of Maya available, which we will discuss shortly.  So in some ways, 3D has become a great deal more expensive and a great deal cheaper all at once.

 

So, that brings us to today.

 

The Big Three… Er… Two

 

In commercial studios, be it for games, TV or movies, the same three products are the ones most encountered:

3D Studio MAX

Maya

Softimage Xsi

 

As I mentioned earlier, after a very long and successful run, Softimage is being put out to pasture.  Softimage 2015 was the most recent, and final, release ever.  Obviously if you are just starting out today and need to pick a package, Softimage is no longer a good choice.

 

That leaves Maya and Max to choose from.  Traditionally 3D Studio Max was strongest in games, with many game developer friendly features ( excellent plugin system, ability to build your renderer into Max, great low polygon tools, good texturing tools, etc ), while Maya was known more for Film and TV, with animation certainly being it’s strong suit.  That all said, it’s become more and more common to see Max used for film work and Maya used for game work, so the old stereotypes don’t really hold.

 

Actually, being under the same rough has leads to a convergence of sorts.  Over time the feature list of the two products is quickly becoming virtually identical.  As have the keyboard shortcuts, even the file formats are standardizing ( FBX, read more about it here if interested ).  With each new release, each product is starting to feel more alike than different.

 

Of the two, I personally prefer Maya, although the mouse heavy UI drives me nuts.  3D Studio MAX is just getting so long in the tooth that it’s massively in need for a major overhaul.  I first used Max when it was initially released and frankly the Max of today is very very very similar.  Same UI, even a lot of the same tools, tools that have long since been obsoleted.  This is just cluttering things up and making the learning curve higher.  Maya was the result of a complete re-write on the other hand, so the code base is much newer with less years of cruft.  The menus though, those mouse heavy radial menus…  ugh.  Of course, this is all personal opinion.

 

At the end of the day, Max and Maya are your two safe choices if you want a job in the industry.  Max probably has an edge for getting you into a game studio, while Maya probably has an edge getting you into a film studio.  At the end of the day though, they are owned by the same company, speak the same language and are often both used.

 

Neither however is cheap.  3D Studio MAX is $3,675.  Interesting fact, it’s always been that price… even during the 3D application price wars, Autodesk never dropped their price.  The big difference is you can now lease monthly or annually, for $185 / month or $1470 / year.  Maya is now the exact same price as Max ( see how they are becoming more and more similar… ) down from a pricetag of about $5K last year.  Softimage was around the same price.  I’m not sure if you can even buy it anymore, if you can, Autodesk sure don’t make it easy.

 

Oh yeah, Max is Windows only, while Maya is available on Windows and Mac.  If you are a Mac user, that’s a pretty important tidbit of info, no?

 

Maya for Indie Developers

 

Last year, Autodesk took a step towards courting the indie game developer market with the release of Maya LT.  This is a stripped down version of Maya that targets indie game developers specifically.  It is priced at $30 a month, or $795 to purchase a perpetual license (with, I believe, one year of support).

 

So, the obvious question is, what’s stripped out?  Initially the limitations really sucked…  polygon caps, no scripting support, it was pretty much crippled.  Over time though they revisited things and made up for some of the glaring mistakes.  The big areas that are cut are Visual FX stuff and most of the renderers.  This means, if for example, you wanted to create a pre-rendered cutscene, you couldn’t.  The animation features have also been stripped back, leaving mostly the stuff you would use for real-time games.

 

At the end of the day Maya is really only suitable for modeling and rigging game assets or possibly level creation/design.  That said, for a great many game developers, that’s all you actually use it for.  For a full breakdown of Maya vs Maya LT features, you can check here.

 

 

The 900lb Open Source Gorilla in the Room

 

If you are sitting here thinking 4 grand?!?!?!??! OUCH!

 

Well, meet Blender.

 

Blender started life as an in-house 3D tool for a company called NeoGeo… yeah, not the NeoGeo game console, but instead it was the Netherlands largest 3D house… or is that haus?  Eventually a company named NaN was formed to “productize” Blender.  NaN died in 2002 and a project was launched to open source the Blender code… in many ways this was one of the first highly successful KickStarter campaigns!  Blender was eventually open sources, the community took it and ran with it and Blender is thriving today.

 

Blender is entirely free and open source.  It’s nowhere near as commonly used commercially as Max or Maya, but it is certainly used, such as for pre-viz work on Spiderman 2.  I would lie though…  the vast majority of commercial games *aren’t* created using Blender.  If you are looking for something to stick on your resume, Max and Maya certainly carry more weight.

 

HOWEVER, and this is where we drop heavily into opinion land for a bit…

 

If you are working on a 3D game and need to create textured, animated, 3D models, Blender is just as capable as 3D Studio Max or Maya, even without factoring in the price tag.  For many years, Blender had a reputation for being chosen solely because it’s free.  Those days are starting to pass however.   Put into the simplest terms, for the last several years I would say with each new release, Blender is the application that is improving by far the most of the three.  Now, you will find all three apps are quite capable, with Maya/Max and Blender all being strong and weak in different categories.

 

Blender used to ( ok… still does ) have a reputation for being hard to use with an unwieldy interface and in many ways, this was quite fair.  Blender followed it’s own idioms and was a VERY keyboard heavy workflow which takes some time to get.  Also, rather bluntly, Blender 2.4’s interface was pretty much terrible.  Blender 2.5 however was a massive rewrite and rework and it really bore fruit.  Then the 2.6 releases improved the rough edges, while 2.7 has a heavy focus on usability, and it’s make a huge difference.  If you haven’t checked out Blender since the 2.4 days you really owe it to yourself to try it again.

 

The single biggest flaw with Blender IMHO, at least as far as game development is concerned, is the file support.  Autodesk owns the FBX format and the COLLADA file format is a bloody mess of complication to the point that nobody really does it all that well.  This means getting assets into and out of Blender can certainly be more of a challenge than using Autodesk products.  This is an area Blender have recently focused their efforts on and the Unreal Engine folks have kicked in some cash toward the effort so hopefully this improves.

 

So, my summary on Blender… it’s honestly an equal to the two Autodesk products, with as I said, it’s strengths and weaknesses.  I also personally think it’s improving at a much greater rate than either of those products.  Of course, it’s also a hell of a lot cheaper.  That said, once you start paying actual salaries, the cost of software licenses quickly become peanuts.  Can you use Blender for your own game project?  Certainly.  Should you?  That depends on you really, but you should certainly try it out.  The functionality is certainly there, with the biggest flaw easily being the content pipeline.  However, if you are a student looking for a job, Max and Maya will certainly look better on a resume.  A great artist will be able to make great art in any three of those tools, and a good studio will hire an artist will a great reel, regardless to the tool it was created in.  That said, at the end of the day, human resources will be looking for Max or Maya on your CV… they will not be looking for Blender.  Which is actually kind of sad.

 

My much shorter summary…  Blender is free and very good, you should certainly give it a look.  Oh, being Open Source… it’s available on basic everything… possibly even your Toaster… although oddly enough, not been ported to iPad.  Seriously, someone really should port Blender to the iPad!

 

 

Sculpting… the new hotness

 

Another major development in the world of 3D is 3D sculpting.  Sculpting is like working in digital clay for quickly creating hyper detailed, very organic meshes.  In in the world of real-time games, this is still quite useful, as high resolution versions of game models are often used to create something called a normal map.  This allows you to use texture maps to fake super high levels of detail.  Another common operation is to sculpt hyper high resolution models, then basically “trace” a lower detailed version over top.  This is a process called retopology.  Now the good news… all three of the above solutions have sculpting built and retopology tools built in.  That said, compared to the tools we are about to discuss, they simply sucks at it.  So it’s becoming increasingly common to see these kinds of applications pop up in studios.  That said, these are more like initial tools in your toolbox, and certainly not where you should start!

 

zBrush

Pixologic’s zBrush is where the whole sculpting movement started and it’s by far the biggest player in the space.  It’s also $800 by the way.  It’s not an end to end solution, it’s designed to do what it does, then passes the results off to a different program ( Max… Maya… Blender… ) for animation, rendering, etc.  For sculpting though, it’s hard to beat zBrush.  You should at least be aware of it’s existence.

 

Sculptris

$800 a little rich for you?  How does free sound?  Sculptris is an interesting project… it actually started life as a fan’s attempt to replicate zBrush.  Said Fan did a pretty damned good job of it, to the point the Pixologic bought the rights and make it available for free.  So go, download it now… even if you don’t ever do anything with it, it’s an amazing amount of fun.

 

Mudbox

Of course you couldn’t be a 3D application without having an Autodesk product, could you?  Mudbox is Autodesk’s offering in the 3D sculpting space.  It started life as a tool used by Weta on King Kong and Lord of the Rings.  Eventually Autodesk bought them and now it’s available for $500 or $10 a month.  In all honesty, that’s the end of my knowledge, I’ve never used Mudbox, nor have I ever talked to an artist that chose it over zBrush.  There is however a trial available, so I really should check it out one of these days…

 

3D Coat

3D Coat is another interesting product out there that focuses on 3D tasks…  Sculpting, 3D Painting and Retopology.  3D Coat is about $400 at full retail.  It is however available on Steam so keep an eye out for amazing discounts.  Be warned, you need the commercial version if you are using 3D Coat for a commercial product.  3D Coat does have a trial available.

 

 

Hey What About _________!

 

 

In all honesty, we just ticked off the major boxes… but of course that was by no means comprehensive.  There are a few other packages you should certainly be aware of, so let’s discuss them now.  These aren’t rated lower for functionality, but simply for popularity.

 

Modo

Modo started life somewhat recently ( by 3D application standards ) as a dedicated 3D modeler.  The company itself was formed by a number of former Lightwave developers and this application has a huge following.  Over time it’s evolved to become much more than a modeler, although it’s still not quite a full 3D suite like Max, Maya or Blender, it’s getting very close.  As the functionality has grown, so to has the price tag.  Currently its 1000Euro.  Animation is a somewhat recent addition to Modo, so the functionality is a bit limited compared to more mature packages.  That all said, Modo has grown in functionality at an amazing rate and is getting quite popular.  There is also a trial available.

 

Lightwave

As I just stated, Modo was formed by a bunch of ex-Lightwave developers.  Lightwave is a once great package that has seemingly lost it’s way and as a result, a great deal of it’s user base.  Lightwave still exists today, there was a new release in 2014, but it seems to be developing at a snails pace and the community around it seems to have mostly disappeared.  Lightwave has been used in a staggering number of TV and Film projects, as you can see here, but the number of recent projects seems to have dried up.  Lightwave costs $1000USD and there is a free trial available.

 

Sketchup

This application is actually used a surprising amount.  It was purchased by Google and used to create 3D models for Google Earth.  Eventually however Google sold it off and it’s a stand alone product again.  Sketchup is available in both a free and commercial version.  At the end of the day, for commercial game dev you will probably need the pro version, which has a $600 price tag.  Sketchup is a 3D modeller only, but damn is it an easy to use one!  For an introduction to 3D modeling, the free version may be the perfect place to start.  You can read more about Sketchup’s use in game design here.

 

Silo

This program is most similar to Modo in functionality and I was a huge fan when it came out.  It’s mostly a modeler that’s gained more features over time, it has a nice low price tag of $109, is cross platform and great to use.  So why the negativity?  Well, the developers basically abandoned it for many years, only recently started working on it again.  I have no idea how much support there is behind this application.  It’s such a shame too, as this product could have been truly great.  There is a trial available and it’s worth checking out, but I wouldn’t rely on too many new features or bugs being fixed going forward.

 

Wings

Wings is an awesome 3D modeler, based heavily on Nichimen Nendo, an awesome 3D modeler that came before it.  It is free and open source and uses a completely different technology called Winged Edge meshes.  Unfortunately it’s also written in a programming language about 4 people on earth use, so when the primary developer stopped supporting it, it effectively died.  It’s still available, and still very cool, but in the last few years it’s stayed still while the world around it got a whole lot better.

 

Cinema4D

This package has quietly existed for years, gaining more and more features and a rabidly loyal user base.  To be honest, I’ve never really got it, especially with a $3,700 price tag.  That said, there must be advantages, as it wouldn’t still exist otherwise.  There is a trial available if you want to check it out for yourself.

 

Houdini

This one has also been around for a very long time and was traditionally used quite heavily for 3D effects in movies.  In all honesty, this is the single most confusing piece of software I have ever tried to use! ;)  It takes a procedural approach to 3D and frankly, I don’t really understand how it works, so I’m not even going to try to explain it.  There is a trial available and Houdini is available for $2000.  They do however have an Indie friendly version available for $200, that is tied to company revenue.  Remember that somewhat famous Dead Island trailer that took the web by storm?  That was created in Houdini.  Again though, this program is very very very weird. 

 

Animation Master

Here is another application that’s quietly been around forever, 1987.  It’s a low cost modeling and animation tool that is based around splines and patches ( most modern modelers are polygonal / subD surfaces ).  Organic models are easy to create, the animation tools are surprisingly comprehensive and the price tag starts at $80.  It’s an interesting package and there is a trial available, but it’s a bit of a pain to get it running. 

 

Shade3D

To be honest, I know almost nothing about this application, even though it’s been around forever.  It’s a full suite 3D package like Max or Maya and they recently released a Unity version.  I tried Shade shortly after that release ( a trial is available ), and the documentation was extremely lacking at the time, so I got pretty much nowhere.

 

Hexagon

A free 3D modeling package made available by Daz.  Reviewed it quite a while back, not a fan.  An advance warning, Daz will spam the ever loving hell out of you if you give them an email address!

 

 

TL;DR

 

So, you got to this point and now you are probably asking… now what?  That’s a lot of options, what should I do???

 

The answer really depends on you and what your goals are.  If you are a student (secondary or post-secondary) and looking to get into AAA 3D for games or film, the answer is pretty much a no-brainer.  Get in the free student program from Autodesk and start learning either Max or Maya.  If it’s games you are most interested in, Max is probably the route to go between the two.

 

If you aren’t a student, or aren’t trying to work on your CV, the answer gets much trickier.  The choice between Maya, Max and Blender on strictly technical merits comes down mostly to the persons opinion and work-style.  If you are working with a large team, or on a free product, Blender quickly becomes a no brainer solution as well.  If you’ve got no budget at all, Blender simply wins by default.  Otherwise I would recommend taking advantage of the free trial, trying out all three and seeing which one has a workflow that fits you.  Just be warned, it’s going to take some time to come to terms with each package.

 

For all others, I saw this.  At least download Blender and Sculptris.  Both are completely free, both are very good and both are excellent places to start.  The skills you learn transfer very well to other packages.

 

The Video Version

 

Art


AppGameKit Studio

See More Tutorials on DevGa.me!

Month List