Subscribe to GameFromScratch on YouTube Support GameFromScratch on Patreon

27. May 2011


I am struggling a bit on how to format a “book” in blog terms.  What is the best way for me to get information across.  One of the big goals of this site is to guide a beginner through the entire process of creating a game.  At the same time however, as I come across problems, interesting things or just simply something strikes my fancy, I want to post it here as well.  This leads to a serious continuity problem, especially for someone just starting out.


As a proposed solution, I am going to keep things as they are, but “on topic/ordered” posts are going to be organized by chapters around a common theme.  That way a person can come in and view content on a chapter by chapter basis, even though a chapter is actually just a series of posts.  So, there will be a link on the right hand side Chapter 1/ Chapter 2/ etc… as well as each post being tagged by which chapter it belongs to.  Hopefully this will provide a solid structure to follow along by.


In addition, for each video posting, I will attempt to merge all chapter video together into a single video for people that want to consume it all at once.


I am currently working on chapter 1, which shows the entire pipeline in action.  Setting up your modeler, creating a model in Wings 3D, exporting to Blender, texturing and animating, the exporting to Unity.  By the end of chapter 1, you should be able to get your content from nothing to Unity with ease.


21. May 2011


In every industry there are definitely trends, and the CG world is no exception.  I remember the days when patch modeling were the “IT” thing, and every package under the sun added some forms of patch or spline modeling feature to its toolbox.  Then came NURBS and Sub-D surfaces, etc…




These days, the “IT” thing is sculpting.  Pretty much modeling via “virtual clay”.  Maya’s Artisan Tools no doubt was one of the big contributing factors to the whole sculpting movement with its release in 1998, but without a doubt the most disruptive and important program in the sculpting movement was Pixologic's zBrush.  Put simply it changed how the industry worked and if you have never checked it out, it is really worth a look! 




Now the gotcha, zBrush meshes by nature tend to be quite dense, as in high in polygon count.  Therefore it is a pretty piss poor tool for creating real time meshes ( although still useful for normal maps ).  In recent years though, lower polygon tools have more commonly made their way into the toolset.  Now, in regards to our project here, zBrush isn’t really all that relevant as simply put, it cost 700$.  That said, there are options.


See, a fellow by the name of DrPetter started an amateur project to create his own sculpting software.  In that way that can make you so damned jealous of other peoples abilities, the son of a… er wait… well anyways, he pulled it off, and created a pretty damned cool piece of software in just 6 months.  Being a hobby project he was pretty much going to abandon it, but the folks at pixologic stepped in an employed the fellow to continue work.


So, long story short, there is a freely available sculpting solution out there, thanks to drpetter and pixologic.  Given the cost of admission, you really owe it to yourself to check it out.  It is now called Sculptris Alpha 5 and you can download it here.  It’s a zip, download, extract and run the EXE, simple enough.


And to whet your appetite so you actually go ahead and download this powerful and FREE program, check out the following video!  Oh, and it is truly free, no watermarks, no limitations, simply free.


Sculptris in action


18. May 2011


You bet your ass it does!


When moving between applications, each has it’s own unit of measure and frankly 1 has a very different meaning from application to application!  In Wings, a Wings “unit” is completely arbitrary.  So for example if you make a cube 1 by 1 by 1, the “1” means absolutely nothing or frankly, whatever you want it to.  This however gets a bit tricky when moving to another application.


In Blender, up until version 2.5 and higher units were completely arbitrary as well.  This means 1 could be a foot, a metre, a cord, a hand or a pan-intergalactic squible, it really didn’t matter.  The problem is, it did, a lot.


You see, once you start attaching physics to your models, size truly does matter.  Gravity does not cause things to fall at 9.2 feet per second, it’s 9.2 metres per second and mixing this up will cause things to be wrong by close to a factor of 3 times.  So unless you want gravity to be extremely powerful in your virtual world, you need to standardize on a unit of measure.


Now unfortunately to our American and English readers…  Unity picked the standard for us.  In Unity “1” is 1 metre  ( or meter again, for our American readers! Winking smile ) and given that Unity is providing the physics engine, I guess we better conform.  On the bright side, there are systems in place to make the transition as smooth as possible.


First off, when working in Wings3D simply treat 1 as 1 metre, then when you export to Blender it should appear as 1 metre in size.  That said, when moving from Wings to other Untitledprograms you may find that the results are exceedingly small.  There however is a fairly simple though remarkably imprecise solution.  Craft your object in Wings, then import it into your graphics program of choice.  Beside it create an object in the native program with that is 1x1x1m in size as a reference, you can then use Wings “Export scale” when exporting to automatically scale up your object when exported until the sizes match.  Once your export looks about right, use this scale factor for all future exports.    Clicking the square icon for the File –> Export –> Collada will bring up the export options window ( as shown to the right ).  The value surrounded in red is the important field.  A value of 1.0 means no change, while 2.0 would be twice as big and .5 would be half the size.  Again, while working with Blender, so long as you treat 1 Wings unit as 1m, you shouldn’t have to do anything.


With Blender, fortunately since version 2.5 you can now specify what units are.  Instead of re-inventing the wheel, I will refer you this excellent blog post on the subject.  They do a very good job of describing how to work with actual units.  Once configured, your export to Unity should be configured properly and compatible with the physics system.

Art , ,

18. May 2011


We 354px-Cartesian-coordinate-system.svgare all familiar with 2 dimensional Cartesian coordinates for describing positions in 2D space, often used to represent pixels on screen, but ultimately the very foundation of algebra.  The two values, x and y can be thought of to represent Left <-> Right and        Up <->Down respectively, at least when dealing with two dimensions.  But when you throw one more dimension in the mix, it gets a bit trickier.  I mean sure, coming up with Z as the label wasn’t exactly rocket science, but what does Z represent and here is where everything goes to hell!




See, there are two schools of thought on this subject and unfortunately both make perfect sense.  On one hand, one group views X,Y as already representing Left/Right and Up/Down on a computer display, so the most logical conclusion is that Z should represent depth.  Imagine for a second if you could reach INTO your monitor… that would be the Z coordinates.  If you have already done some 2D graphics work, X and Y are probably pretty well entrenched in your mind as representing screen position, so this probably makes a lot of sense to you.  For the record, this type of coordinate system where Z represents depth is referred to as a Y-up as Y represents the up direction.  Personally, this is the most intuitive to me.



But then there are these other types of people in the world… engineers and architects and to them X,Y are viewed in a much different context.  See instead of thinking in terms of a computer monitor in front of them, they think in terms of blueprints on a table.  With a system 300px-Z_axislike Autocad, the Z-axis is added when the blueprint is extruded in the 3rd dimension.  Think about it in terms of building a house from a floor plan, the X,Y coordinates represent the layout of everything on your floor, then Z represents the distance of things UP from the floor.  So, to a CAD person, it makes complete sense for Z to represent “UP” and Y to represent “depth” like in the figure to the right.  This obviously is referred to as Z-up.






Now you may be asking yourself… how exactly does this affect me?  Well, that’s an easy one… all kinds of tools work with a different axis set.  Of the 3 we use, Wings 3D is Y-up, Blender is Z-UP and Unity 3D is Y-up.  So… as you are creating your assets they spend a lot of time flipping around between programs!


With Wings 3D, if going directly to Unity, you are in luck, no more work has to be done.  Most of the time though, we will be going from Wings to Blender first.  Fortunately this fix is pretty easy.  When you export your model ( via the menu File->Export->Collada ), click the little box icon to bring up options.  Then make sure you select “Swap Y and Z axis” checkbox as shown in the picture below, then OK and export.  This setting is “sticky” so you should only have to choose it once.

UntitledSetting Wings 3D to export Z-up friendly









Now in Blender things get a bit trickier and therefore it’s really easy.  Frankly, there is nothing you can do.  The axis system is fixed so you can’t change that, and there are no options when exporting.  I suppose you could model everything rotated but that would add a great deal of confusion.



So that leads us to Unity, currently the importer (version 2.57b ) is working properly, so thankfully you *shouldn’t* have to do anything, it automatically rotates it for you.  That said, this importer isn’t always the most… stable thing.  In cases where it doesn’t import correctly, you have one of two options.  First you can rotate manually 90 degrees about the X axis when you create an asset in Unity.  Otherwise, you can perform the conversion as part of the import process by creating an AssetPostProcessor which is a script run during the importation process, allowing you to make last second alterations.




For the record, this isn’t only a Blender/Unity problem, Max, Maya and Softimage are all Z-Up modelers by default, while I believe Cinema 4D is Y-up.  It is something to be aware of when moving from one application to the next. If it seems like your model is doing a backflip, the axis difference is most likely the cause.

Art , , ,

14. May 2011

Here you can follow the process of creating a game from the very beginning to the very end. I will be posting to this site as I progress on my game. In a nutshell, that means you can learn as I learn, letting me make the mistakes for you!


What you need to know? I will aim to keep things as simple as possible and documented as thoroughly as possible. That said, some knowledge is beyond the scope of this site. Basic programming skill is a must. Most of the code will be in C#, but if you have experience in any modern language, you should be able to follow along. Finally, moderate computing skills will be assumed. If however I don’t explain something sufficiently, leave a comment or shoot me an email and I will try to clarify.


Another major goal is to show you how to make a commercial quality game, cheaply. Tools like 3D Studio and Maya are wonderful, but frankly they cost several thousand dollars per seat. Therefore, while I will address all of these packages, I will also present ( and favor) cheaper/free alternatives whenever possible.


Finally I will make all assets and source code available as it is created. The source code you are free to do with as you wish. The assets, you are free to do whatever non-commercial action you wish. In the end, I will be publishing the game we create and I don’t want to directly compete with me-too versions of my own hard work, I hope you understand.


Month List

Popular Comments