Skip to content

Release notes version 1.6

SpectreGameDev edited this page Mar 27, 2025 · 17 revisions

Changes in Range Game Engine 1.6

New Physically Based Sky Shader

A new PBR-based sky rendering system was added to the engine with more accurate simulation of light scattering (Rayleigh and Mie), resulting in smooth, realistic gradients, as seen in sunrises and sunsets.

Stars were also introduced:

They will be present in the new sky and the old one, you can return to the old sky by disabling the "Atmospheric Sky" option

Sky interaction has also been improved on objects, giving a significant visual improvement.

Before After

Atmospheric Height Fog

Height Fog was introduced to the engine, the behavior of fog is influenced by height and depth.

Post Processing Shaders

Now we have post-processing shaders integrated into the engine, it works both in the viewport and in game mode! no more testing the game to see if it looks good or not.

Bloom Screen Space Reflections
Tonemap Light Scattering Ambient Occlusion

Viewport Custom Shaders

Finally, it is now possible to apply custom shaders to Range materials, this opens up a huge window of possibilities.

< >
Created by Shane from shadertoy.

Foliage Shader Improved

Previously the foliage shader was designed for the movement of tree leaves, using it on grass and bushes could cause strange behavior. That's why a new option for grass has now been added. In addition to the movement, it has been improved with noise.

New Emit Shading

Previously, any true emission color was simply the diffuse color emitted again, and the emission influence of a texture affected only the emission intensity.

Now, the emission influence of a texture controls whether its rgb values are added to the material after lighting and shadow stage, allowing for independent (from diffuse) color emission.

Before After

Note: The old behavior still can be achieved with 'RGB to Intensity' options.

Custom Collider

Custom Collider allows you to swap the collision mesh for another object, without actually having to duplicate it.

Decals Support

The engine now supports decals.

download the example here.

Halo Material Support

Halo offers another method of rendering as if vertices were points.

Python 3.11

Python has been updated to version 3.11, bringing new features and performance improvements.

New components interface

New look of components has been implemented with support for submenus.

from Range import *
from collections import OrderedDict

class Component(types.KX_PythonComponent):
    # Put your arguments here of the format ("key", default_value).
    # These values are exposed to the UI.
    args = OrderedDict({
    "C_Icons"                           : "PROP_ON",
    
    "C_Header/Header Name Here/BLENDER" : True,
    "SomeBool" : False,
    "SomeInt" : 0
    
    })
    
    def awake(self, args):
        ...

    def start(self, args):
        ...
        
    def update(self):
        ...

AABB python

Now it is possible to obtain the volume of objects.

KX_BoundBox.volume

Input System

New key mapping system has been added to this version. More flexible and with more options than the old system (logic.keyboard ...).

This system is located in the userpreferences -> Input System tab.

It works with three tables;

  • Input Maps: Table containing key combinations for each condition.
  • Input Table: Table containing all key calls.
  • Input Binding: Input binding is actually the key that will be pressed or the use of information such as joysticks, mouse position, etc.

Also has some features for binding such as processors. Processors allow you to directly change the result of the value.

The Input System is a great resource, if you want to learn more about how to use this tool, start with a Video Tutorial Soon.

Sound Effects

A feature highly requested by the community, Range now supports sound effects, so far it only has reverberation but new effects will be added in the future.

check the example video here or click on the image bellow.

At moment only Speaker supports sound effects, it does not work using only the AUD library.

KX_Speaker.SetEffect(type=aud.AUDIO_EFFECT_REVERB, filter=aud.AUDIO_FILTER_INVALID) # Set Effect and Filter
KX_Speaker.GetActiveEffect() # Get Active Sound Effect
KX_Speaker.GetActiveEffectFilter() # Active Filter Effect

KX_Speaker.RemoveEffect() # Removes active effect.

# Parameters

KX_Speaker.reverb_density
KX_Speaker.reverb_diffusion
KX_Speaker.reverb_gain
KX_Speaker.reverb_decay_time
KX_Speaker.reverb_decay_hf_ratio
KX_Speaker.reverb_reflections_gain
KX_Speaker.reverb_reflections_delay
KX_Speaker.reverb_late_reverb_gain
KX_Speaker.reverb_late_reverb_delay
KX_Speaker.reverb_air_absorption_gain_hf
KX_Speaker.reverb_room_rolloff_factor
KX_Speaker.reverb_decay_limit_hf

KX_Speaker.filter_gain
KX_Speaker.filter_gainlf
KX_Speaker.filter_gainhf

See full documentation here

There is also an example to download on the website to implement the Sound Effect in your games quickly and practically.

Start with a Video Tutorial Soon.

Real-Time Mesh Creation

It is now possible to create meshes in real time with KX_MeshBuilder. We used this feature to make a "MineClone" as an example. But that doesn't apply to just that, do whatever you imagine.

download the example here. This example contains the basics of creating a quad with meshbuilder and applying texture.

See full documentation here.

Start with a Video Tutorial Soon.

New Particle System

Previously, to create particles it was necessary to create the system from scratch, now EasyEmit has been implemented in Range, completely rewritten and optimized, bug fixes and much more.

setActionLayerSpeed

Now possible to change the animation speed more precisely.

KX_GameObject.setActionLayerSpeed(Layer, Speed)

Text Object Update

The use of text object is still important in range 1.5 for making GUI, so it received a cleanup and some improvements, Now bfont has been completely replaced for roboto-medium, there is no reference to bfont and bfont-mono in the source code.

Added partial support for text alignment.

It is now possible to add shadows to your texts, can change color and position.

Logic Bricks Update

Some improvements have been added, it is now possible to add color to bricks.

And if you want to write down what each action does, you can now write it down on the sensor!

Sun Shadow Fade Out

Shadow fade out has been implemented on the sun lamps, with this it is possible to make a fade between the end of the shadowmap, removing the ugly clip.

Invisible Object with LOD

LOD is essential for games, now it is possible to make the object invisible depending on the distance, this can save a lot of performance.

setCustomMouse

New python function to be able to change the mouse icon in game mode. In additional a new optional option to disable mipmap, so you can use pixelated cursors!

If you want to know how you can use this feature, download the example here

render.setCustomMouse(filepath, useMipMap)

getProcessorName

Returns the processor name and GHz.

logic.getProcessorName()

Shaders changes

  • Change blend mode to screen mode (see 3902956)
  • Range: Additive Mist (see b67f439)

Bug Fixes

  • Fix Speaker SetSound (see 26d8174)
  • Fix Crash when using fullscreen mode in standalone (see ee3c888)
  • Fix Libload: Fix libload occluders (see cf6bfbd)
  • Fix GHOST: Some fixes for fullscreen and windowed mode (Win32) (see 6bb0a9c)
  • Fix Text: Fix excessive use of RAM memory (see 3f8c3a7)
  • Fix missing texture color space options in Linux (see 1af2a39)
  • Fix Fix UI popup refresh (see 5f461da)
  • Fix Animation Events: Fix replication problem (see d0ded6e)
  • Fix bug invisible objects (see 8612465)
  • Fix Speakers: Fix start init (see 64379f8)
  • Fix GHOST Armature In Game (see 56dafe8)
  • Fix EventToString() in mouse.inputs (see 5084848)
  • Fix crash when trying to use lamp data with shadows activated (see 76332f4)
  • Fix Texture Mapping Not Update (see a4fd5bf)
Clone this wiki locally