Moves the 'getCommand' method into PlayerCommand and removes the KeyCode logic. Now we simply assume the Client knows what commands to send
fixes the 'getCommand' test after recent refactor
Merge branch 'master' of github.com:Doppelgamer/doppelengine into game
brings the old pixi.js code back in... I can't make up my mind
begins porting what we did in the dart client (keyboard_listener) over to the javascript version
gets input_listener.js working properly.
refactors Snapshot so that it delivers the positions of ALL bodies in the rooom, rather than sending a separate message for each.
- Puts utility functions into a UTIL object
- Puts the Simulation actor's Snapshot schedule on its own timer
Performing yet another refactor. This time, I'm turning the original "Player" actor into a "ClientProxy": an actor that merely acts as local representation of the remote Client. Instead, the Player and its state are going to be regular objects contained within the Room actor.
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