Tonight's live stream - Positional sounds in an entity system based game

For tonight’s live stream (9 PM GMT-4), I will once again continue where we left off last week and get sounds properly attached to objects.

Mythruna is an ES-based game so this will necessarily mean dealing with positional audio in an infinite entity-based game.

I will try to provide some visuals about how “infinite world” works in this case but it depends on what I find online.

I will also show what I’ve been doing messing with trees.

Edit: note that if you are able to join live then you can ask questions during the live stream and I will do my best to answer. Otherwise, we can have follow up questions here like last week.


Here is the link to the live stream:


hahah… that chat got a little too lively and I did NOT get sound in… but we did get proper location based entity filtering working. We’ll definitely be able to finish it up next week and I’ll try to make sure by laying the rest of the ground work.

I’ll add chapters to the video later tonight so folks can skip around if they want. I spent the first 15 minutes going over the world structure of Mythruna which took a little more time than I’d anticipated.

…in the end I went 45 minutes over my hour plan.

1 Like

Chapter markers have been added.

Cool, enjoyed watching it!

A bunch of questions:

1- Are you going to handle mob entities sound (entities with BodyPosition + SoundInfo component) in the SoundViewState?

2- Will you add a new EntityContainer for mob sounds and filter them with body position visibility stuff hooked into SimEthereal?

And by the way, I think Zay-ES now supports protected constructors on the persistent components so I guess you are safe to remove that FIXME on the SpawnPosition constructor. :slightly_smiling_face:

Yes, definitely. I started laying the groundwork for that with the “dynamic” flag and I touched on it briefly. I do not know if that will be in for the Halloween release.

Yes. BodyPosition is already filtered in the networking layer… so I don’t have anything special to do for that container.

You are probably right! :slight_smile:

1 Like

Curious why you are not handling mob sounds in MobAnimationState? (I mean using
“CharacterAction” + “Parent” component)

Afaik you had a MobAnimationState in which you handled mob actions and mobility animations using tweens API (in which you could play animations, particles, sound effects,…).

And by the way, are thoses backpack, axe, and wand models made with block models as well or they are regular j3o models?


1 Like

Because any object can have sounds… even ones that have no visuals.

MobAnimationState is only for animated characters.

Also, it gets tricky because I never actually “play” an animation… I carefully control which frame of the animation I play by sending time codes from the server. So triggering sounds becomes problematic if there is ever any weird jitter.

It is tempting to handle some sounds there, though… as otherwise synced foot steps are really hard. So I may do some sounds on that side.

1 Like

Wow, cool!

Are they made out of different parts or is it just a single block shape?

Also supposing that a block size is 1 meter I believe you have scaled down the generated geometry, right?

These are just a single block object… which is why they are kind of limited. Eventually these things will be assemblies of objects.

A gallery of those block objects: Imgur: The magic of the Internet

Note that in the block ed tool, I can’t turn on “carved” and so some of the materials don’t look quite right.

Yes, different kinds of objects have different scales. Placeable objects that players can create in game are 1/4 scale. Held items tend to be 1/8 or 1/16 scale or something.

1 Like