Skip to content

Releases: brenocq/atta

v0.3.0

29 Jan 14:13
3e6f32a
Compare
Choose a tag to compare
v0.3.0 Pre-release
Pre-release

The main features added in this release are:

  • Infrared sensor: Infrared sensor is now available #48
  • Hierarchical prototype: Prototypes will now work with entities that have children #47
  • Time profiler: It is now possible to profile the code while running to find bottlenecks #46
  • Improved physics #45
  • Full Linux support #44

Changelog

  • Feat
    • Support to specify number of jobs when building
    • Step control (simulate slower, faster, or in real-time)
    • Graphics FPS control
    • Draw collision contacts and collision shapes
    • Better UI to configure physics
    • Supported colliders: `BoxCollider`, `BoxCollider2D`, `SphereCollider`, `CircleCollider2D`, `CyllinderCollider`
    • Supported joints: `PrismaticJoint`, `RevoluteJoint`
    • Better atta config and state check (`utils/config.h`)
    • Faster build when dependencies are already downloaded (no update check)
    • Time profiler
    • Create clones from a prototype with children
    • `cmp::Camera` with new `captureTime` field
    • `cmp::Entity` new methods
    • `cmp::Relationship` new `Entity get(uint32_t i)` method
    • Now it is possible to get scale/position/orientation individually from `mat4`
    • New `cmp::InfraredSensor`
    • New `cmp::Script::set` method
    • Default atta namespaces are now accessible everywhere (added to precompiled header)
    • Sensor module UI window
  • Refactor
    • README with better Linux installation instructions
    • Quaternion UI with quaternion values instead of Euler values
    • `cmp::Relationship` using `cmp::Entity` instead of `cmp::EntityId`
    • Varying camera sensor drawer size according to entity size
    • Camera model matrix calculation from position and orientation instead of transform matrices to reduce numerical
    • `cmp::Camera` renamed to `cmp::CameraSensor`
    • `cmp::Transform` now is more numerically stable when converting from/to world coordinates
    • Physics engine ray casting now also returns distance and normal
  • Fix
    • Fixed changes not being performed when hot-reloaded
    • Hot-reloading when included files are modified
    • Fixed calling scripts of clones twice in one step
    • Fixed Bluetooth error
    • Running clone script twice per step
    • Not reloading cameras when project is open
    • Always drawing prototype camera/colliders
    • Returning invalid orientation quaternion from mat4
    • Returning wrong euler from quaternion
    • Box2D dynamic creation/deletion of `RigidBody2D` and `Collider` supported
    • Box2D `RigidBody2D` type dynamic change support

v0.2.0

17 Sep 08:21
Compare
Choose a tag to compare
v0.2.0 Pre-release
Pre-release

This release was focused on improving the coding experience when creating atta projects. Six projects were created:

  • Boids #29
  • Tutorial #30
  • Robotic Arm GA #31
  • Ants #32
  • Bee hive finding #33
  • Game of life #36

Note: You can run any example in your browser 😃
For a list of all projects visit the atta projects page.

Changelog

  • Feat
    • RGBA image support with transparent background
    • cmp::Factory::getFirstClone()
    • cmp::Factory::getLastClone()
    • gfx::Drawer::clear(StringId group) - clear all objects of a specific group
  • Refactor
    • Removed buggy shortcuts to start/play/pause/stop simulation
    • Only serialize components that are being used to make the .atta smaller
    • Print cmake output while building
    • Now we also have cmp::Material::setResource, to be consistent with cmp::Material::getResource
    • Quaternion methods: setEuler, getEuler, setAngle2D, getAngle2D, setAxisAngle
    • cmp::getPrototypeFactory(cmp::Entity) -> cmp::getFactory(cmp::Entity)
    • Removed logging used to debug atta
  • Fix
    • Mesh combo not being shown
    • Mesh sid now is set to first mesh resource when created
    • Script sid now is set to first script when created
    • Material component imgui not showing variable names
    • Viewport name being messed up
    • Create .atta file if is doesnt exists
    • Project::onLoad was being called before project file deserialization
    • ImPlot without context
    • Now scr::ProjectScript::onLoad is called only after the components are deserialized from the .atta file
    • scr::ProjectScript::onLoad was not being called for static projects
    • Now it is possible to use literal ""_sid without being in the atta scope
    • Crash when material name is empty
    • Scripts not being loaded
    • Glad include not found
    • Web build not able to find files
    • Web wrong relationship deserialization

Check the milestone for a list of all changes.

v0.1.0

13 Aug 14:51
Compare
Choose a tag to compare
v0.1.0 Pre-release
Pre-release

v0.1.0

General improvement in the codebase and handling project files. The most important changes were:

  • File serializer: Refactor file serializer (.atta) to be flexible enough for future releases #13
  • Atta versions: Handle atta projects with different version (ignore and open with current version or restart atta with correct version) #18
  • Project web build: Should be possible to open projects with the web build #19
  • Http interface: Basic HTTP interface support #15
  • Image resource: Refactor image resource to be able to create/update with code #24
  • Material resource: Refactor MaterialComponent to use a MaterialResource #35
  • Component interface: Refactor the component module interface to be easier to use the components and entities #34

The codebase was also refactored for each module to have its own namespace and follow the same formatting style (.clang-format). Also, each module now provides an interface to be less verbose.

Check the milestone for a list of all changes.

v0.0.3

21 Apr 17:45
Compare
Choose a tag to compare
v0.0.3 Pre-release
Pre-release

This release should be used to open atta projects developed with the v0.0.3, as major changes will be made in v0.1.0.