Jump to content

Release Notes


Josh
 Share

Recommended Posts

0.9.9

Some navmesh behavior is improved. NavAgent::Navigate and NavMesh::PlotPath now both take two additional arguments:

Navigate(const Vec3& point, const int maxsteps, const float maxdistance)

Also added Hmd::SetScale(), which accepts a single float value that will scale the VR player.

  • Thanks 1

My job is to make tools you love, with the features you want, and performance you can't live without.

Link to comment
Share on other sites

0.9.9

  • Editor now recognizes .ogg and .mp3 in open/save dialogs that use sound files.
  • If zero is sent to NavAgent::Navigate() for the maxdistance parameter, the agent will navigate to the closest point (the old behavior).
  • Some minor bug fixes.
  • Thanks 1

My job is to make tools you love, with the features you want, and performance you can't live without.

Link to comment
Share on other sites

0.9.9

  • FreeImage is now built into the editor, and does not require a plugin.
  • The DLL plugins system is moved into the Core:: namespace and should not be considered official API. Lua LoadPlugin command is unchanged.
  • Only the editor is updated at this time.
  • Thanks 1

My job is to make tools you love, with the features you want, and performance you can't live without.

Link to comment
Share on other sites

0.9.9

  • Full update with the beforementioned changes.
  • Added some pizzazz to the default color scheme (colors are the same as the forum and docs).
  • Thanks 1

My job is to make tools you love, with the features you want, and performance you can't live without.

Link to comment
Share on other sites

0.9.9

  • Custom shader families are easy to create now. In the Project tab, click the '+' button and select New Shader Family.
  • The internal details of the custom shaders system is going to change a bit, but the basic system is in place.
  • @klepto2 @havenphillip Modifying an include file for a shader module will now trigger that shader module to recompile, so shader programming is now as easy as in Leadwerks.
  • Like 1
  • Thanks 1

My job is to make tools you love, with the features you want, and performance you can't live without.

Link to comment
Share on other sites

0.9.9

  • Some settings are now moved into per-project storage. I kept these in the Options dialog, rather than creating a separate interface for project settings. Not sure about this decision.
  • Added mouse tool hotkeys using the number keys. I did not use the shift modifier and it works fine, and is easier to reach.
  • Thanks 1

My job is to make tools you love, with the features you want, and performance you can't live without.

Link to comment
Share on other sites

0.9.9

Publish project dialog is finished, except for scanning to only include used files.

  • Thanks 1

My job is to make tools you love, with the features you want, and performance you can't live without.

Link to comment
Share on other sites

0.9.9

  • Wildcards will now work in the "never copy files" setting in the options dialog, and *.cpp, *.h, and *.lua are added to the default settings.
  • Lua builds will now have the multi-archive option disabled, for security. This prevents someone from inserting their archive that contains a script that extracts the contents of the other archives.
  • Engine will now preferentially load Lua scripts from a zip file over regular files. The opposite is true for everything else.
  • If data.zip is present, the Lua interpreter will only load components from there.
  • Added Font::GetGlyph() method.
  • Lua component files will now be automatically parsed, and a new JSON component definition file will be generated whenever they change. The system should only overwrite files that contain the "autogenerate=true" value in the JSON structure, so your existing JSON definition files should be safe. Any overwritten JSON definition files should also get copied into the /Backup folder, so everything is probably okay, probably.
  • Like 1

My job is to make tools you love, with the features you want, and performance you can't live without.

Link to comment
Share on other sites

0.9.9

Initial implementation of C++ header parsing is done. Your header files should look something like this:

#pragma once
#include "UltraEngine.h"
#include "../BaseComponent.h"

using namespace UltraEngine;

class ChangeEmission : public BaseComponent
{
public:  
    float a = 3;// "A"
    int b = 30000;// "B"
    bool recursive = true; // "Recursive"
    Vec3 color0;// "Color 1"
    Vec3 color1;// "Color 2"
    Vec3 color2;// "Color 3"

    ChangeEmission();
     
    virtual void Activate();//inout
    
    virtual std::any CallMethod(shared_ptr<Component> caller, const WString& name, const std::vector<std::any>& args);
    virtual bool Load(table& properties, std::shared_ptr<Stream> binstream, std::shared_ptr<Scene> scene, const LoadFlags flags, std::shared_ptr<Object> extra);
    virtual bool Save(table& properties, std::shared_ptr<Stream> binstream, std::shared_ptr<Scene> scene, const SaveFlags flags, std::shared_ptr<Object> extra);
    virtual std::shared_ptr<Component> Copy();
};

The system will only overwrite JSON component definition files if the "autogenerated" value in the JSON file is set to true, so it should leave your existing files alone unless you delete them manually.

  • Like 1

My job is to make tools you love, with the features you want, and performance you can't live without.

Link to comment
Share on other sites

0.9.9

C++ and Lua parsing to generate component definition files is finalized, I think. Here are examples for both languages:

C++

#pragma once
#include "UltraEngine.h"
#include "../BaseComponent.h"

using namespace UltraEngine;

class ChangeEmission : public BaseComponent
{
public:   
    bool recursive = false;// "Boolean"
    float floatvalue;//"Float value" [0, 100]
    int integervalue;//"Integer value" [0, 100]
    int option = 1;//"Option" ["Option 1", "Option 2", "Option 3"]
    WString stringvalue; // "String value"
    std::shared_ptr<Entity> entity;// "Entity reference"
    Vec3 color0;// "RGB Color" color
    Vec4 color1;// "RGBA Color" color
    Vec2 v2;// "Vector 2"
    Vec3 v3;// "Vector 3"
    Vec4 v4;// "Vector 4"
    WString soundfile;// "Sound file" sound
    WString materialfile;// "Material file" material
    WString modelfile;// "Model file" model
    WString texturefile;// "Texture file" texture
    
    ChangeEmission(); 

    virtual std::any CallMethod(shared_ptr<Component> caller, const WString& name, const std::vector<std::any>& args);
    virtual bool Load(table& properties, std::shared_ptr<Stream> binstream, std::shared_ptr<Scene> scene, const LoadFlags flags, std::shared_ptr<Object> extra);
    virtual bool Save(table& properties, std::shared_ptr<Stream> binstream, std::shared_ptr<Scene> scene, const SaveFlags flags, std::shared_ptr<Object> extra);
    virtual std::shared_ptr<Component> Copy();
}; 

Lua

Luatest = {}

Luatest.recursive = false-- "Boolean"
Luatest.integervalue = 0-- "Integer value" [0, 100]
Luatest.floatvalue = 0.0 -- "Float value" [0, 100]
Luatest.stringvalue = "" -- "String value"
Luatest.entityvalue = nil -- "Entity reference"
Luatest.option = 1-- "Option" ["Option 1", "Option 2", "Option 3"]
Luatest.color0 = Vec3(1,1,1,1)--  "RGB Color" color
Luatest.color1 = Vec4(1, 1, 1, 1) --  "RGBA Color" color
Luatest.v2 = Vec2(0) --  "Vector 2"
Luatest.v3 = Vec3(0)  --  "Vector 3"
Luatest.v4 = Vec4(0)  --  "Vector 4"
Luatest.soundfile = "" --  "Sound file" sound
Luatest.materialfile = "" --  "Material file" material
Luatest.modelfile = "" --  "Model file" model
Luatest.texturefile = "" --  "Texture file" texture

 

  • Like 1
  • Upvote 1

My job is to make tools you love, with the features you want, and performance you can't live without.

Link to comment
Share on other sites

0.9.9

@klepto2's volumetric lighting post-process effect has been added. See Effects/VolumetricLighting. I made my own modifications to it, and set it so the alpha channel of the light color can be used to control the strength of the volumetric effect. Big thanks and much appreciation are owed in this collaborative effort!

  • Like 1
  • Upvote 1

My job is to make tools you love, with the features you want, and performance you can't live without.

Link to comment
Share on other sites

0.9.9

  • Entity color property can now be modified per-channel when multiple entities are selected that have different colors, without changing the color channels that are conflicted.
  • Like 1
  • Upvote 1

My job is to make tools you love, with the features you want, and performance you can't live without.

Link to comment
Share on other sites

0.9.9

Custom shader families are finished. I simplified the user hook with a single Surface structure:

void UserHook(inout Surface surface, in Material material)

I might still go back through and correct some of the inconsistencies in the name. For example the Material structure has a property called emissiveColor but the Surface structure calls it emissioncolor.

  • Upvote 1

My job is to make tools you love, with the features you want, and performance you can't live without.

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
 Share

×
×
  • Create New...