just playing around with an ECS architecture with Actors
Sets up a stupid echo server using entities, components, and systems. I haven't eve tried to compile this yet. It's 3am and I'm going to bed.
Implements a 'QuitSystem' that simply waits around for a Player to enter the Quit command. It then terminates the ClientProxy, cleans up its resources, and notifies interested parties (ie. the Stage actor).
removes an unnecessary PoisonPill send and passes in the 'stage' actor explicitly
adds a 'VisualSystem' to our setup so that snapshots of all PhysicalComponents get sent to all ObserverComponents. ObserverComponents make sure the client is always up-to-date on the entities in the room
Goes back to the infinite-loop style of rendering. I don't quite understand how requestAnimationFrame works, so rendering the stage via callbacks wasn't really working.
conceals the stage and renderer objects within the game object, thus exposing only a single 'renderStage' function
- Moves the client-side render-loop into the View object.
- Adds a third PhysicalComponent to the PlayerEntity so that it gets picked up by the VisualSystem
Adds a version number to each UpdateEntities command. This removes the possibility of race conditions between two subsequent outgoing updates.
Wrote a PhysicsSystem that stays up-to-date on the current Entities, and manages a simulation based on these entities. After every tick, the simulation's body positions are sent to the relevant DimensionComponents. Next step is to wire these changes into the UI
implements player movement. Also getting rid of the Game actor, and putting all of its behavior in the Engine actor
refactors many of our receive functions to use 'become' to maintain state. Modifies the PhysicsSystem to await the return Snapshot results
just tweeking some values for testing
fixes a small bug in the keyboard_listener
Synchronizes the Tick schedule across all the Systems by requiring that each responds to a Tick with a TickAck when it has finished its task. The PhysicsSystem takes the longest to finish since it must query different Components and then update its internal state.
Experimenting with HMap implementations... the shapeless version is hard to work with
After reading that Agents don't play so well with remoting, we can completely abandon that path. Onward with Actors!
implements jumping using a foot sensor
allows for movement while in the air
Merge branch 'ecs' into game