Saturday, June 21, 2014

[MMc] OpenHeist update

Menus, joining a game (local players only), multiplayer, audio, controller and keyboard support, and choosing characters are all 100% implemented and tested. Remote players are 80% implemented...don't try remote multiplayer yet.

The code is all in place for having characters move with dead reckoning and to have characters render with a full scene-graph render (as white boxes), however...they aren't moving. Messages are flying back and forth between the client and server, but I don't see the actual position state changing on the client. I'm debugging this now but welcome insights if anyone else wishes to step through the code in the debugger as well. Incidentally, the characters aren't appearing on screen either, but that will be easy to fix once it is possible to move them.

Once character movement is working, I will implement map loading and movement constraints. Maps will be specified by text files, with a separate key mapping ASCII characters to tile names in the .Any file for the mission.

You can see the full engine TODO list in the main page of the documentation, in implementation order.


  1. The problem of characters not moving appears to be with key code handling, not the actual object simulation.

  2. Velocity is now being correctly set on the server due to controls on the client. There were two bugs: I was using upper-case instead of lower case GKeys for WASD, and the msg::Control messages were deserialized with a four-byte offset, causing velocity to read from the wrong field.

    ObjectBase::frame() now changes for a moving character. On to debugging rendering...

  3. Sprites are now rendering as solid boxes.

  4. Sprites now appear with correct graphics and move at a reasonable speed, where 64 pixels @ 720p = 1 meter.