Skip to content

Releases: iceshard-engine/engine

v0.4.0 - Android and WebAssembly

15 Mar 15:04
298f4d0
Compare
Choose a tag to compare
Pre-release

These are the highlights of a year's worth of work.

New platforms:

  • Android-armv8, Android-x64 (Gradle)
  • WebAsm-x86_x64 (Emscripten) + WebGPU

New features:

  • Added 'ICE_ASSERT_CORE' macro as a quicker option for 'ICE_ASSERT'
  • Added new math primitive, the 'array' value.
  • Added 'ice::path::basename'
  • Added 'string::push_format' for modifying strings with FMT format strings.
  • Aliased 'std::bit_cast' in the 'ice' namespace.
  • Aliased 'std::upper_bound' and 'std::lower_bound' in the 'ice' namespace.
  • Implemented std-like 'ice::binary_search'.
  • Implemented expected result type.
  • Implemented coroutine expected result type.
  • Implemented coroutine cancelation tokens.
  • Introduced new 'App' API.
  • Introduced new 'Params' API.
  • Introduced new 'Platform' feature API.
  • Introduced new 'GfxGraph' API allowing for a render graph like workflow.
  • Introduced the 'Hailstorm' binary packaging format as resource provider.

New tools:

  • hsc_packer - Allows to create HailStorm packs
  • hsc_reader - Allows to inspect (stdout) HailStorm packs

Refactored systems:

  • The whole dynamic module / module API registration.
  • The whole 'platform' API / project was refactored and reimplemented for all platforms.
  • Partially refactored metadata APIs.
  • Partially refactored resource-system AsyncIO handling.
  • Partially refactored resource-system Filesystem provider APIs.

Changes:

  • Replaces 'ResultCode' with 'ErrorCode' and 'Expected' types.
  • Using 'vulkan-memory-allocator' library instead of custom solution.
  • Log API now allows for more customization when it comes to user tags.
  • Inputs now can partially handle touch events.
  • DynamicLib provider handles now Unix libraries.
  • FileSystem provider now handles Unix directories and files.
  • FileSystem provider can now process directories asynchronously when synchronizing.
  • Introduces new test cases for various parts of the engine.
  • Profiling no longer enabled by default for 'Develop' configuration.
  • 'InputTracker::process_device_events' arguments now accepting span's of DeviceEvents.
  • 'RenderCommands::begin_renderpass' function now accepts Span of 'const vecf' values.
  • Multi-path Filesystem ResourceProvider now accepts Span of const strings.
  • Relaxed: Allowing to create shards from ShardIDs.
  • Relaxed: Allowing to implicit cast Shards to ShardIDs.
  • Relaxed: UniquePtr arrow-access operator allows to access 'non-const' pointer values form 'UniquePtr const' objects.
  • Relaxed: Metadata is no longer mandatory for resources or assets.

Fixes:

  • Fixed array clear for some 'complex' types.
  • Fixed 'ManualResetBarrier::set' function not waking up threads when set.
  • Fixed crash in StaticString when created from empty string / nullptr.
  • Fixed log tags not properly being solved in all cases.
  • Fixed missing destruction call to elements if replaced under certain situations.
  • Fixed passing span values to std::sort.
  • Fixed possible crash with LinkedQueueRange 'begin' function.
  • Fixed Resource access using synchronous setup.
  • Fixed a quite rare MT bug in linked queue.
  • Fixed async writer logic allowing to write after free, when async writing was used.
  • Fixed crash when items are released mid-iteration.
  • AND LOTS MORE

Full Changelog: v0.3.1...v0.4.0

v0.3.1

14 May 06:42
fd2e0f8
Compare
Choose a tag to compare
v0.3.1 Pre-release
Pre-release

Fix for a deadlock in the frame logic.

v0.3.0

13 May 09:53
f816684
Compare
Choose a tag to compare
v0.3.0 Pre-release
Pre-release

What's Changed

What's Changed (Old unmentioned PullRequests)

Full Changelog: v0.2.0...v0.3.0

v0.2.0

10 Jul 21:34
9a5c2a7
Compare
Choose a tag to compare
v0.2.0 Pre-release
Pre-release

What's Changed

Full Changelog: v0.1.0-alpha...v0.2.0

Resources and Assets

12 Apr 21:43
fb385bd
Compare
Choose a tag to compare
Resources and Assets Pre-release
Pre-release

What's Changed

Full Changelog: v0.0.1-alpha...v0.1.0-alpha

IceShard 0.0.1-alpha

05 Aug 18:01
c9290d1
Compare
Choose a tag to compare
IceShard 0.0.1-alpha Pre-release
Pre-release

This is the first release of this project.
It provides basic rendering features, has API's that allow build a simple game, but does not provide complete solutions.

The next release will try to expand existing and add new features.