Subscribe to GameFromScratch on YouTube Support GameFromScratch on Patreon
9. July 2015

 

In this part we are going to explore using Particles in the Godot Engine.  Particles are generally sprites, either provided by you or generated programmatically, that are controlled by a unified system.  Think of a rain storm, each drop of rain would represent a particle, but the entire storm itself would be the particle system.  You would not control each drop individually, instead you would simply say “rain here” and the system takes care of the rest.  Particles are often used for special effects such as smoke, fire or sparks.  The Godot game engine makes working with particles quite simple.

 

There is an HD video version of this tutorial available here or embedded below.

 

This particular tutorial isn’t going to go into a great deal of detail over the effects of each setting, as there is already an excellent illustrated guide right here.  Instead I will focus on using particles in a hands example.  As I mentioned earlier, particle systems are often used to create fire effects, and that’s exactly what we are going to do here, create a flaming/smoking torch.

 

Creating a particle system is as simple as creating a Particles2D node:

image

Creating one will create a simple system for you:

part1

 

As always, the properties are controlled in the Inspector.  In this case we are creating 32 particles with a lifespan of 2 seconds aimed down and affected by gravity:

image

 

Now let’s suit it to our needs.  First we want to change the direction of our particles to up instead of down. This is set by setting the direction property, this is a value in degrees for the particles to be emitted in.

image

 

Here is the result:

part2

Next, since this is a torch, we don’t want the particles to be affected by gravity.  Under Params, simply set Gravity Strength to 0:

image

And the result:

part3

Now white dots are exactly convincing flames… so lets add a bit of color.  This can be done using Color Phases.  These are the colors the a particle will go through during it’s lifetime.  For a torch, we will start with a brilliant white, then orange and finally red, like so:

image

Be sure to set the Count to 3.  You can have up to 4 phases if needed.  Now our results look like:

part4

A bit better.  Now we want to work on the size a bit.  Let’s start our particles off bigger and shrink as they move away from the source of the flame.

image

Resulting in:

part5

 

Finally we slow it down slightly and decrease the spread:

image

 

And voila:

part6

 

A fairly passable torch.  You could play with it a bit, use an image instead of a square particle, change the alpha value of each color phase or add another overlapping particle system to provide smoke.  Keep in mind though, more particles, more processing.

 

Here is a simple layer of smoke added as a separate particle system and the alpha lowered on the final two color phases:

part7

 

Particles are as much an art to create as a texture or 3D model.  Play around until you achieve the effect you want.  Be sure to read that link I post earlier for the effects various settings have on your particle system.  One other area I never touch on was randomization.  In addition to numerous settings for controlling how particles are created, you can also randomize each of those values so your particles end up being less consistent.

 

As mentioned earlier, a particle can also be created from a texture or series of textures.  To set a texture, simply set it’s texture property:

image

 

In this example I am going to use this spritesheet to create a flock of animated birds:

robincropped

 

Set H and V to correspond to the number of rows and columns in your TextureAtlas:

image

 

I am unsure of how to deal with TextureAtlases with empty squares, there doesn’t seem to be a way to set a total count, but I may have overlooked it.  Next you are going to want to specify the speed you want it to jump between frames of animation using Anim Speed Scale

image

I tweaked a few more settings:

image

And my final results are a fairly nice flock of birds:

part8

 

One other feature available is the particle attractor ParticleAttractor2D, which can be used to attract particles, to either fling them out the other side or absorb them.  Think of it like a black hole that either sucks in or spits out the particles in it’s radius of influence:

image

part9

Keep in mind that particles all have a lifespan, and once that lifespan has elapsed, it will fade away.

 

Particles provide a powerful way of implementing tons of graphically similar effects ( like fire, fog, flocking etc ) with a single controlling system.  They are as much art as programming though, so will take some time playing around to get the effect just right.

 

The Video

 

Programming


7. July 2015

 

Humble Bundles generally consist of a number of indie games sold together at a low price in support of charity.  This time however it’s a bit different, as this one is composed almost entirely of game development tools and asset packs.  The bundle currently includes:

 

 

  • Axis Game Factory Starter PackHumble
  • Stencyl Indie Edition 1 year License
  • RPG Maker 90% off coupon
  • Humble Bundle Starter DLC ( sprite tiles and music tracks )
  • Indie Game Maker 2014 Finalist Pack ( more assets )
  • Labyrinth Dreams ( a game )
  • RPG Maker VX Ace Delux
  • Game Character Hub
  • Humble Bundle SciFi Pack
  • Humble Bundle New DLC Pack 
  • Aveyond:Lord of Twilight ( a game ) 
  • Crimson Clover WORLD IGNITION ( a game )
  • App Game Kit 2
  • Spriter Pro
  • Sprite Lamp
  • Humble Bundle Fantasy DLC Pack
  • Goats on a Bridge ( a game )

 

The above list is the complete purchase list however, and requires an investment of at least 12$.  That said, Spriter alone usually has a 50$ price tag and Stencyl Indie is 99$, thats an extremely reasonable price tag.

 

More details about the Humble Game Making Bundle are available right here.


7. July 2015

 

One of the biggest challenges that indie game developers face is exposure.  Unless you have a publisher, getting your game in front of people is often a matter of luck.  Without massive advertising budgets, ads are very often outside of our reach.  With all this in mind, when I received yet another spend $25 get $100 promotional offer from Google, I decided to give Adwords a shot.  Granted, I was promoting a website instead of a game, but ultimately that just means I have a bit more data available.  Another aspect is the money I spent.  I set my CPC (cost per click) extremely low.  Under 5 cents in fact.  This is farrrrrrrrrr below what Google recommends as you will see shortly.

 

One piece of advise right up front, if you are being a spend thrift like me, the very first thing you want to do is target your traffic and turn off mobile results.  My first days of action almost 100% of my traffic was nearly useless, feature phones from non-English speaking countries.

 

If you are unaware of Adwords, they come in two forms, in search results on Google, and on partner sites.  Basically you write a simple text based ad and pick the keywords you want to target.  Key phrases is actually a more accurate description, but once you’ve specified a couple Google does a good job of giving you additional suggestions.  Your ad either runs on Google search results, or in ads on “partner” sites.  The second greatly increases the liklihood of your ad being shown, but as you will see in a moment, seems rife with fraud.

 

I personally decided to set up two different ads, one targeting my Unreal Engine tutorial series, and the other targeting my tutorials in general.  My ultimate and ideal goal would be for traffic acquisition costs to be lower than ads clicked by acquired traffic.  If you were publishing a game, obviously you would use a much different metric…  game installs, or game sales.  Fortunately using a combination of Google Analytics and Adwords, you can track this all fairly well.  Unfortunately, the results suck.

 

Here is an example of the ad I created:

image

 

You set your daily budget, your maximum click amount and all your details.  I also highly recommend you geo target your ad to target only regions you are interested in.  Simply targeting en-US seems to be completely ineffective.

Myself, being both cheap and broke, set a daily budget of $5 and a CPC maximum of $0.05.  You can have Google automatically set the price for you, if you fancy going completely broke.  Here is the performance of that ad, at those values today:

image

 

My ad was shown to 21,750 people with about a 1% click through rate.  Frankly getting 200 clicks for under $5 is an absolute bargain, almost impossible to replicate.  So, how effective are those clicks?  Well… that’s where it gets bad.

 

adssense1

 

This is my most recent paid traffic, as shown by Stat tracker ( not a Google product ).  This represents about the last hour of paid traffic and the results.  Notice a few things here?

 

Right off the hop, the first one, 9 clicks, 9 views, no time on site?  Most definitely fraud.  Google has algorithms to detect and compensate you for fraudulent clicks in theory.  In reality, you probably just wasted about 18 cents on that traffic.  In fact, look down the right hand side in generate…  “No Visit Time”.  That is not encouraging.  Basically of all those visits only one might be legit and even then they spent less than a second on the site.

 

In fact, the same can be said for the entire campaign so far.  Here are results from Google Analytics and they aren’t good:

image

 

When clicks exceeds sessions, something is seriously broken.  A 90% bounces rate and a 1.17 pages viewed is appallingly bad.  In all honesty, it feels like the vast majority of traffic is in fact fraudulent.

 

Now of course, I am also setting a comedically low bit at 5 cents per click.  Thing is though, I am spending peanuts and don’t really care how many impressions I get ( as long as it’s > 0 ), so I can go cheap.  Google will however show you how much it recommends for you to make a “front page” result.  That is, the suggested cost to have your ad shown on page 1 of Google search results for the targeted key word, and the results can be shocking…

 

image

 

Yeah… $6.22 for “open source game engine”.  Ouch.

 

So, how has my experiment worked thus far?  Well, not worth a damn actually.  Here is a report showing the Adsense revenue on those 3,319 clicks…

image

 

So, $63 spent to $1.03 made.

 

… yeah, no.  Not effective at all.

 

So should you consider Adwords to advertise your game?  It may be worth trying, especially with a $100 free promotion, but I’ll certainly not be using it again.  To me frankly, the entire thing feels like a scam.

Totally Off Topic


2. July 2015

 

Sometimes when you are working with Blender you want to render a beauty shot, but want to also show the wireframe of the model you are working on.  This video shows that process.  (As an added bonus, it also shows how to enable wireframe display while in Object mode in case you were wondering how ).

 

 

The Process

 

Select the Object you wish to render with a wireframe overlay:

image

 

Hit Shift + D to duplicate it.

image

 

Select the material on the wireframe and make it unique.

image

 

Select a diffuse color for your wireframe.  Optionally enable emit if you want the wireframe to glow slightly.

image

 

Add a Wireframe modifier to the copy

image

 

Now render:

image

Art


2. July 2015

Torque 3D is a now open source engine with a long and storied history. Today they just released version 3.7. Hands down the biggest new feature is the release or an OpenGL renderer, making a Linux beta client available, with other platforms down the road.

 

Other highlights of this release include:

  • We finally updated to PhysX 3. And Bullet 2.8!
  • We've integrated two former commercial addons, both of which were open-sourced: Sahara and Walkabout. The former allows you to easily add snow, dust, moss and similar effects to your environments using a technique the author calls 'material accumulation', and the latter provides an editor/tweaker on top of recast/detour autogenerated navmeshes, as well as integration with the exiting AIPlayer class.
  • We've had community contributions that add ribbon trails you can attach to almost anything, and a nice vignette PostFX shader.
  • Performance improvements to the scripting engine, as well as anonymous functions.
  • So many bugfixes.

 

Full release notes are available here.

 


GFS On YouTube

See More Tutorials on DevGa.me!

Month List