Subscribe to GameFromScratch on YouTube Support GameFromScratch on Patreon

19. September 2017


Perhaps the biggest complaint about Blender is the user experience and this argument has some merit.  Once you learn Blender it starts to become somewhat zen to use, but getting there is a painful process.  3+ key hotkeys are rampant to do some of the most common tasks and a few of the design decisions, such as right click selection are just simply bad.  Granted many of these options can be configured away but that again requires a fairly advanced amount of understanding and by that point many new users have already been turned off.


You would think, being an open source project and all, someone would have forked it and made a more accessible version by now?  Well… someone has!  Meet BForArtists (as in Be For Artists), a Blender fork focused on making the user interface more intuitive.  How did they do that? 


Well first is an over all face lift.  Better contrasted theme really does make it easier to distinguish different features and functions.

image

You no doubt also noticed the prevelence of icons throughout the interface:

image


This cuts down on the amount of scrolling and is useful for people who learn by exploring.  They have also configured toolbars for common tasks:

image


And perhaps nicest of all, have camera pre-set controls available as icons instead of just hotkeys:

image


On the topic of hotkeys, they have also reconfigured most of them.  One nice option available is the ability to display the most common hotkeys in the background of the window:

image


Other new options are the ability to lock and outright hide the 3D cursor… a point of confusion for many new users.  You also have extended control over wireframe display, very useful for modellers.

image


Menus have also been greatly streamline:

image


While default layouts for common tasks have been added:

image


They even have their own manual!  What’s impressive is, at least so far, they’ve kept up with each new release of Blender.  There are of course downsides to learning via BForArtists, a great deal of the tutorials for Blender wont work without translation.  Additionally once mastered, Blenders default user interface can be great.  In my opinion though, BForArtists is a vastly superior experience for new developers and one I recommend to those put off by Blenders user experience in the past.


BForArtists is free and open source available for download here and in source form here.


Art , ,

3. May 2017

 

Ever find yourself wanting to render a 360 degree view of your model?  If you’ve ever used Blender for game sprite creation I bet you have.  What is the best way to go about doing this?  One way is to keyframe the object rotating over time, although this may not result in the lighting you want.  A better way is to orbit the render target using the camera.  The question is, how do you do this?  Well you can manually keyframe the camera’s position and rotation but this process is a gigantic pain in the butt.  An easier solution is to have the camera follow a spline path.  That’s what we are going to look at today, it’s thankfully quite easy, but perhaps not entirely intuitive.

 

First thing you need to do is create the path for your camera to follow.  In my case I’m using a simple circle, with the center of the circle around my target, like so:

image

 

Next, select your camera, then shift select the curve.  Then hit CTRL + P and select follow path.

image

 

And voila!

BlenderCamPath

 

That said, how exactly do you control how fast the animation moves?  Don’t worry, it’s quite easy.  With the curve selected, go to the Data panel and locate the Path Animation section.  The number of frames can be configured here.

image

 

Easy 360 degree (or in this case, 180 degree) rendering!

RotateGif

 

You can watch this in process in the video below.

Art ,

31. January 2017

 

I found myself recently needed some rocks… I could easily download a collection of rocks, but I figured it would be extremely easy to just make my own.  My first thought was to simply take a cube, smoothly sub divide it a number of times, and apply a displacement modifier to it.  The end results however didn’t really bring the results I wanted:

Rock1

 

By the way, you can learn more about using the Displace modifier on my earlier tutorial on using Blender for level creation.

 

Ok, apparently this is going to take more than a few seconds…  hey… I wonder if there is a plugin?  Turns out, yes, yes there is.  The plugin add_mesh_rocks does exactly what it says.  You can download a tarball of the plugin here using the snapshot link.   You can get instructions for installing (a different but same process) plugin in Blender here.  Download and enable the plugin.

image

 

Once you’ve downloaded and enabled the plugin, there is a new option in the Add->Mesh menu, Rock Generator:

image

 

NOTE*** There seems to be a bug, the option wont be available if there isn’t any existing geometry in the scene.

TADA!

image

 

Ok, I admit, that looks a bit more like a kidney bean than a rock, but it’s a start.  If you look in the Tool (T) panel, you will see initial creation options for Rock Builder:

image

 

Click Generate materials if you want it to create a starting rock texture for you.  Every time you change any setting, you will get a completely different rock, like so:

Rock2

 

If you don’t want this behavior, turn off the random seed setting.  Once you’ve got a rock you are happy with… let’s destroy it!

 

Before we go to far though, if you dont want performance to absolutely crawl, we want to apply several modifiers that were created as part of the rock creation process.  Go to the modifiers tab and start applying the various modifiers:

image

 

OK, back to destruction.  The first and most obvious option is the Explode modifier.  There are a few steps we have to take here… first go into edit mode, select all the vertices and in the vertex data tab create a new vertex group.  Now apply first a particle system modifier, then an explode modifier.  Finally wire up the vertex group, like so:

image

 

The problem with explode is that it applies to the hull of the object only, so the results may not be way you want… as you can see:

Rock3

 

In some cases, that effect might be exactly what you are looking for.  Oh, and I turned gravity off to get the effect above. But if you instead want things to be a bit more… substantial, it’s time for a rethink.  In fact, it’s time for another plugin, but thankfully this one ships with Blender, it just needs to be enabled.   What you are looking for is “Cell Fracture”:

image

 

Once enabled, in Object mode, there will now be a new option available in the Edit section of the Tools tab:

image

 

Cell Fracture will split your object up into several solid pieces.  You’ve got tons of control over how the fracturing will occur.

image

 

What I personally did was changed source limit (number of pieces) down to 12 and unchecked “Next Layer” so the fracture occurs in the primary layer.  Now you will notice you’ve got several meshes instead of one:

image

 

In fact, you can now get rid of the source rock if you want.  You will notice your rock is actually 12 rocks now:

rock4

 

Instead of using a particle system like we did with explode, we are going to use Dynamics (Physics) instead.  Select all of the objects, switch to the physics tab and select Add Active.

image

 

This means all of our rocks will now participate in the physics engine.  To see the result, quickly add a plane to the scene, make it a rigid body and turn dynamic off:

image

 

And now press play in the timeline:

rock5

 

Now that looks much more realistic!  Now, what if we wanted our rock to explode instead of fall?  Well, physics are once again coming to our aid!  This time add a force field to the scene:

image

 

Then crank the strength way up (or lower the mass of your objects), like so:

image

 

Once again, I don’t want gravity to be part of the process, so I turn it off.  In the Scene tab, simply turn off gravity, like so:

image

 

And voila, exploding rocks!

Rock6

Art, General , , ,

6. December 2016

 

A couple years ago I did a detailed text tutorial on how to use a debugger which oddly is a massively important skill that simply isn’t taught.  Given that this article is still popular two years later I’ve decided to follow it up with a video version.  This video, Debugging 101, walks through the basic tasks involved in debugging.  It used Visual Studio 2017 and C++ but should be applicable in most languages and IDEs.  The video shows how breakpoints and conditional break points work, how to step into, over and out of your code, how to use the local and watch window, call stacks, how to do memory debugging and more.  Basically the video shows you how to get started using a debugger.

 

The following is the code used in this example.  There is nothing special to this code, it’s extremely contrived, but it enabled me to show the various features available in most debuggers.

#include <iostream>

// These two functions are used to illustrate how the call stack works
// As well as how step into and step out of behave.
int innerFunction(int input) {
	int meaninglessCounter = 0;
	for (int i = input; i > 0; i--) {
		// First show stepping through the loop
		// Set a conditional breakpoint that breaks when i is a certain value.
		meaninglessCounter++;
	}
	return input;
}

int outerFunction() {
	int i = 42;
	return innerFunction(i);
}


class Demo {
	std::string stringValue;
	int intValue;
	bool booleanValue;

	public: 
		Demo(std::string a, int b, bool c) : stringValue(a), intValue(b), booleanValue(
		c) {};
};

int main(int argc, char ** argv) {
	// Callstack demo, jump into, jump over example
	int someVal = 0;
	someVal = outerFunction();

	// Data example -- simply create a char buffer, fill it with 'a' then null 
	terminate it so 
	// it can be treated like a string.
	char * data = new char[1000];
	for (int i = 0; i < 1000; i++)
		data[i] = 'a';
	data[999] = 0;
	std::cout << data << std::endl;

	//set a watch on d.  Demonstrates watches and drilling into complex object
	Demo d("Hello", 42, true);
	
	std::cout << "End of demo" << std::endl;
	delete[] data;
	// delete[] data;  Calling delete again will trigger an exception
}

Programming , , ,

24. November 2016

 

Every year there are a large number of great Black Friday deals of interest to game developers.  This list is an attempt to capture as many of them as possible in one place.  If you see a great Black Friday or Cyber-Monday deal of interest to game developers that isn’t on the list below, please let me know in comments below. 

This list will be constantly updated so be sure to check back regularly!

 

Deals on Amazon

Software

 

Hardware

 

Deals on Steam – Autumn Sale

 

Deals on Unreal Engine

 

Deals on Unity

 

Misc

allegorithmic

udemy

Microsoft Store

Dell

HP

tsugi

 ClipStudio

3D Coat

Reallusion

ASoundEffect

GameMaster Audio

Smith Micro

Adobe

Corel

AutoDesk  -- Something Fishy with this promo.  Seems no longer available in Canada and never Available in the US.  BOO

Daz3D

Blender

PaintStorm

GameSalad

News, General ,

Month List

Popular Comments