We spent a great deal of time testing multiplayer with the Team from RhinoXR who are using a derivative of our code base for their Megaverus Virtual World project they are pursing. Megarerus is a project will utilize a version of OMNIcore that will be converted to Unreal 5.1.1. During testing we uncovered a number of bug fixes that were addressed this sprint. These included:

  • Spawn points in maps which used a random spawn point calculation ended up spawning people into walls sometimes
  • Sit did not work properly in multiplayer. It was not being replicated correctly.
  • Voice icon was reset when someone else spawned into the hosted session confusing people as to whether voice was still active

We fixed all these items. This required a complete rewrite of the sit in chair functionality in the code. The previous sit was an adaption of a non-multiplayer sit functionality and did not work in addition to being terribly inefficient. The sit was rewritten from scratch to be much more flexible and event driven instead of depending on event tick polling. The chairs that now work in multiplayer are:

  • Plaza – Office Conference Chairs around tables
  • Plaza – Arm Chairs
  • Plaza – Chairs in Cafe and Courtyard
  • Plaza – Chairs upstairs in Cafe
  • Plaza – Ottomans in Cafe
  • Club BlueMojo – Art Deco Chair
  • Club BlueMojo – Art Deco Couch
  • Club BlueMojo – Bar Stools

Applying this new sit blueprint to chairs will only requires a few minutes to add new chairs going forward in any map.

The spawn now works based on where you place Player Starts in a level, so the level designer can specifically control where people will span when entering the level/map. 15 Spawn points were added to all active maps. More can be added as needed. Players are spawned in the spawn points sequentially based on the next spawn point not currently occupied. After it hits the 15th spawn point it goes back and starts putting people into Spawn 1 and goes through the sequence again. This assumes that people once they get in the game will move from their Spawn point. Again more Spawn points can be added if the need arises.

The Voice icon remaining “lit” was fixed by moving the reference for whether it is lit or not into the Game Mode class instead of the Pawn class as it was originally written. It now stays lit until the player decides to turn it off.

This sprint will be the last sprint devoted to specific OMNIcore related tasks that are mostly concerned with Multiplayer issues uncovered by Rhino Team testing. Starting this next sprint this blog will cover only the progress made around the myMO game code base. There may or may not be a new blog associated with the continuing OMNIcore effort.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.