The focus this last sprint was on exercising the OMNICore code and making improvements based on Multiplayer Testing. As you recall, there are now two branches of the code base. One for the myMO Music Promoter Game and one for OMNICore which is more of a generalized, virtual social world application base. As we began testing in OMNICore and making changes it became apparent that we probably needed to come up with a way to make it easy to share code between the two branches while allowing for unique code based on the branch.
To keep the data independent between the two branches we have set up two mySQL databases, and two AWS API Gateways (the way the game gets to the databases). This sprint we put switches in the code that picks the right API Gateway to go to based on whether you are building the game for myMO or OMNICore. This allows you to make code changes and then easily push it to the other branch without having to rewrite it to point to hardcoded API Gateways like had been done previously. We also had to make changes to the OMNICore API Gateway and mySQL database to get it up to date with current myMO data structures to begin taking advantage of this new flexibility for code reuse.
This new version of OMNICore was tested quite a bit in multiplayer and a bug surfaced that was around the movement of the clients (i.e. not the server/host) that made them stutter or jitter as they walked. This was a hard bug to find, but, eventually this “Jitterbug” was quashed and now the movements are smooth on both the host and the clients. As part of debugging this, we came across a couple of places where we had some performance improvements we made in terms of the dynamic menu visibility and a delay bug in the pawn class.
The voice was also fixed as it didn’t initially work in OMNICore due to recent changes made. The voice now works as intended in myMO and OMNICore. We held a number of meetings in OMNICore because we now have this feature working.
We used this same branching approach to also swap out the initial graphic on the login screen to allow branding for a game or customer. Initially, myMO and OMNIcore now have different opening graphics as a background to the login menu.
Edit Mode changes were made including:
- Fixed Customized Maps with Prop Locations so that it is working again.
- Prop Movement Menus now close if a new prop was selected to move.
- NPCs were added to the Menus to choose to drop into a Custom Level.
- You can NPCs to the Menus by creating avatars on Ready Player Me and importing them.
- You can change the location, rotation and scale of the NPC avatars you place in the map.
- You can apply an animation to the NPC you added.
Lastly some work was done associated with the design of myMO in terms of game flow and menu design. Also, we began working on decoupling the Customizing Clubs from the backend AWS and mySQL database in order to lower costs and improve performance when players are customizing their clubs. MyMO will use this new approach and OMNICore will continue to the database since it is multiplayer virtual world type game. We don’t know for sure if OMNICore will even feature support for the Edit mode going forward.
So in summary this sprint was basically infrastructure type changes and no real functionality was added to the basic applications. Although a lot of them were fixed!