Skip to content

Minor release - 0.2 - Physics update

Pre-release
Pre-release
Compare
Choose a tag to compare
@SirLynix SirLynix released this 14 Nov 15:05

Changelog:

Please note this update may break the API compatibility with the previous version (changes breaking the API compatibility are marked with a ⚠️ symbol).

The following changes were made:

  • Added a .editorconfig file to help consistency (8126c98)
  • Code::Blocks is now supported by Premake5 (4027613)
  • Global headers no longer include generation date. (fd3161c)
  • Upgraded Premake5 to alpha10, removing Premake4 in the process. (110064c)

The following changes were made to the Nazara Engine:

  • ⚠️The Physics module has been renamed to Physics3D (65bfd77)
    • The PhysObject class has been renamed to RigidBody3D (d2c8ca0)
    • The PhysWorld class has been renamed to PhysWorld3D (d130719)
    • The *Geom classes have been renamed to *Collider3D (fc1ea17)
    • The GeomType enum has been renamed to ColliderType3D and is now part of thz Nz namespace (1f75d44)
  • A new Physics2D module has been added, using chipmunk (e9be18d)
  • ⚠️ NAZARA_UTILITY_THREADED_WINDOW got replaced by the runtime flag WindowStyle_Threaded. (a7dd0e0)
  • LuaClass is now default-constructable and (re)initialized later with its Reset method (dc3e125)
  • LuaClass is now able to bind classes with deleted destructor (3168e5a)
  • Added a LuaInstance::Push variadic overload able to push multiple arguments (a19edf1)
  • The Vector classes now have a std::hash overload (74b446a)
  • The TextEntered event handling on Linux has been improved (7d1c5fa)
  • An interactive unit test has been added for testing the window events (34d9232)
  • AbstractLogger::IsStdReplicationEnabled() is now const (5df095c)
  • FileLogger::IsTimeLoggingEnabled() is now const (de0f931)
  • Fixed Apply return type not taking references into account (1eb49d3)
  • Fixed LuaInstance::PushInstance memory corruption (54b77c0)
  • Fixed Matrix4::Get(Column|Row) compilation (728d7b8)
  • Fixed ResourceManager::Purge compilation (c700283)
  • Fixed Quaterniond::operator* compilation (19dc95a)
  • Fixed the <= operator with two ObjectRef (7597578)
  • ⚠️ LuaClass methods now include an argumentCount parameter, and the instance remains at the top of the Lua stack, shifting all parameters by one (9b79478)
  • Fixed automatic lua binding of T& T::Method(), which will now return the original Lua instance instead of copying it. (d20fa00)
  • VideoMode third argument (bpp) is now optional. (2ab311e)
  • ByteArray::ToHex is now implemented in ByteArray.cpp, to reduce the amount of warnings generated by MSVC because of the sprintf call. (41e7e6a)

The following changes were made to the Nazara Development Kit:

  • ⚠️The Collision and Physics components now have a 3D suffix (6e289fe)
  • Added Collision and Physics components for 2D physics. (b5048df)
  • LuaAPI::GetBinding() will now implicitly initialize LuaAPI if required (ec16114)
  • It is now possible to change the update order of a world's systems. (51b6979)
  • By default, the Render and Listener systems update are now performed last. (dd22e5f)
  • PhysicsSystem3D no longer initialize an internal PhysWorld3D if no physical entity gets created (e282442)
  • Including the following changes in the Lua API:
    • GraphicsComponent:Attach overloads (taking local matrix and render order) are fixed. (d525669)
    • Material is now accessible from Lua (aed4e1e)
    • Matrix4 is now accessible from Lua (fb51840)
    • Sprite is now accessible from Lua (e034dce)
    • SpriteLibrary is now accessible from Lua (013a133)
    • Texture is now accessible from Lua (f8b55a5)
    • TextureLibrary is now accessible from Lua (3a64ef9)
    • TextureManager is now accessible from Lua (3a64ef9)

The following issues were fixed:

  • #102: Some shaders used by the Graphics module may fail to compile with some drivers.
  • #104: On Windows, when using threaded windows, the window position obtained by Window::GetPosition() never gets updated.
  • #105: On Windows, when not using threaded windows, a lot of Moved events gets generated instead of just one for every movement.
  • #111: On Linux, IsKeyPressed(Keyboard::Q); returns true if the A key is pressed.
  • #114: Box/cubic sphere submesh generation is broken.

Known issues:

  • RUDPConnection is still very experimental and may fail to handle packet loss, do not use. (#74)
  • The NAZARA_VERSION_* macros are still referring to 0.1.1

Note for MinGW users:

Multiples versions of MinGW exists, I recommand you to use the Mingw-w64 version, as they are more advanced and use a faster exception handling mode.
Compiled versions are only provided for the following toolchains

MinGW-6.1.0-x86-DW2
MinGW-6.1.0-x64-SEH

Please note that TDM-GCC versions are no longer provided because of their lack of compatibility with some options, and lack of necessity.


Here are the Visual Studio 2015 (msvc14), MinGW and Linux binaries.

As always, the online documentation got updated.