New Simsilica utils releases: Lemur, SiO2, SimMath, etc

Squeezing in under the wire where new versions are no longer allowed on Bintray, I decided to cut new releases of anything pending in my publicly released tools.

There are new versions posted for:

These are now available from jcenter until it cuts things off next year. In the mean time, at least there are new versions available until I convert over to maven central.

Since I think the bintray web site might be inaccessible soon, I’ll post maven/gradle coordinates for all of my published libraries here:

com.simsilica:jmec:1.2.0
com.simsilica:lemur:1.15.0
com.simsilica:lemur-props:1.1.1
com.simsilica:lemur-proto:1.12.0
com.simsilica:sim-ethereal:1.6.0
com.simsilica:sim-math:1.4.1
com.simsilica:sio2:1.6.0
com.simsilica:zay-es:1.3.2
com.simsilica:zay-es-net:1.4.3

If you click through to the Github version links above, you can see the release notes for each new version.

Highlights:

  • Lemur-Proto: get new Selector and Spinner controls
  • SimEthereal: parent-child relationships tracked in network code (can be used for tricky things, too.)
  • SiO2: added a CubeSceneState for quick blue cube demos and a JobState for easily running JME friendly background tasks
  • JMEC: able to extract submodels during conversion, new JmecNode for live updates while prototyping.

If you try any of these releases and have issues then let me know ASAP… I still have until midnight (in some timezone) to fix them.

11 Likes

Thanks for the new releases. :tada:

Can you please explain more on this? And about the use cases? :thinking:

So for a child entity do we need to pass the transforms in local space or world space into ZoneManager.updateEntity() from the server-side?

And will the client receive the children’s transformation in world space or local space?

Regards

Children are in local-to-parent space. And that’s how they are reported on the other end, too. This makes it convenient to use for attachments that might move or rotate but otherwise if they are not moving (relative to the parent) then it only takes a handful of bits in the network stream. Gun turrets and similar things could be done this way.

It can also be used in sneaky/tricky ways to keep track of non-position style parameters for an object. Position gives you 3 floats with some precision (depends on grid size, etc.) while the orientation gives you another 4 floats with -1…1 precision. Real time power up values, health bars, whatever… that are properly synched and tweened with network state (versus entity components which could be slightly out of synch).

Probably all kinds of things that could be used for but I was thinking of things like shield activation, particle effect intensity for thrusters, etc… Where the visuals would want to be synchronized with movement.

…or they could be semi-positional things like if you layer in animation poses for things like aim up, aim down. You could have a ‘child’ that you sneakily use one if its floats for the mix value or whatever.

3 Likes

Well this will help with my solar systems and ship parts. Time to refactor a ton of code … But this is a good thing! Thanks @pspeed !!

1 Like