Todo / Notes / Changelog

Personal

  • Transfer blogs to HashNode for time being

  • Setup forums with identity

Check out Progress - Work IN Progress

Todo List / Changelog

This does not reflect what will or wont be in EasyCodeForVivox officially

  • Figure out where to Unsubscribe events **Update** I originally was unsubscribing from the event reference that was passed in when invoking event handlers but realized after messing with the UI that it was not properly unsubscribing because I would have duplicate values when re-logging in. Have realized that you need to Unsubscribe using the original object (ex. loginSession, channelSession) and it is best to do so when Loggin out or leaving a channel for example and not from the invoked method called by event delegates

  • Delete LocalUserUnmuted or remove bool parameter

  • Handle Failed direct messages (should be handled server side so maybe not, provide easy way for users to access these )

  • audio injection ** not working right now. posted question Unity Vivox Forum

  • add Login Properties changed methods

  • add CloudCode support so EasyCode calls users cloud function url and gets access token instead of creating token on client

  • add lobby support to auto create channels

  • add unity authentication support so player name is PlayerId from authentication

  • Add Server example of getting access token from server (not cloud code)

  • add events for detecting audio device change

  • add events for LoginSessions added - dynamic, normal & async

  • add errors /warnings for mismatched parameter types in dynamic events

  • If are using Zenject project context in your project this may cause conflicts. I will test this and see if it's a problem

  • add DisplayName optional parameter for Login method

  • Dynamic events don't work on internal classes (test it out)

  • Decide if it's worth keeping the SendEventMessage because it is bad practice IMO. Keep an example for the archive for users who dont use a networking stack

  • remove unused casts/unboxing in Event callbacks in backend scripts and EasyEvents

  • add validation option in editor and at runtime to see if Dynamic events have matching parameters since i dont know how to use Linters/Code Analysis/Rosylin. Maybe use Mono.Cecil

  • test new multiple login sessions (it works but can't switch between login sessions they are all active, custom logic must be implemented to handle this)

  • Add unity authentication

  • add EasySettings for Logging, APi keys, Dynamic events and other config settings. Use Scriptable objects for settings/config instead of static variables. Can dependency inject settings

  • use epoch for VivoxAccessToken unique identifier?

  • Test channel name for regions and squad matches (large scale channel identifiers, probably not needed but I want to provide as production as ready as possible)

  • Move UserMuted events from EasyUsers to EasyMute

  • 3d demo scene

  • add Lobby and matchmaking to 3d demo scene. Maybe seperate scene

  • Test 3d positional audio with Human Models

  • EasyManager singleton pattern Demo scene (Using Static EasySession)

  • Easy Manager Dependency Injection split into different game objects/scripts based on functionality with wrapper classes to make using buttons (they require void methods) easier

  • Easy Manager Dependency Injection without wrapper class that still has wrapper methods for using buttons

  • Add Squad and server naming for large scale matches to demo scene

  • Set transmission mode is for unsecured channels. how to do with VivoxAccesTokens??

  • see if Cross mute works

  • add events for audio devices, cross mute communications

  • make sure TTS works, handle full queue for TTS

  • add TTS options dropdown to demo scene

  • Transfer OldExtensions to new EasyExtensions

  • add option to set mic sensitivity and Noise Floor (VAD)

  • add option to switch transmission for logged in user in the demo scene

  • add option to set 3d audio settings for positional channel in demo scene

  • test android audio/speakers with Bluetooth headphones

  • add opt-in for EasyCode Debug.Logs for Vivox Events, use Log Levels like Serilog and Unity's NetCode for Gameobjects

  • test importing EasyCode with an emptyish project that already has zenject to see if there are assembly/naming conflicts, ** Update ** Unity will detect if the same files exist in a project and therefor not import them. A user would have to force import and that would create naming conflicts

  • As of right now using DynamicEvents will work on public, private, and static methods. Gotcha - If the method and class is static an exception may be thrown. I have yet to test this out but be warned.

  • remotePlayerinChannelDropdown - Selected player can be muted/unmuted using the Admin Panel (Will be added in future version. Version 2.0 will not have it)

  • Add EasyServer for Server2Server moderation / Create ready to go examples for Cloud Code/Lambda/Functions

  • Tried removing dependencies from EasyManager.cs but ended up still injecting everything. It is basically a super class. I plan on making examples on how to break apart easy manager for more modular design

  • Project Context - Loaded by empty Zenject Scene Context (EasyManager requires it and will add automatically). When loaded it uses Zenject to create a Project Level Context so dependencies will be stored/available across scenes. If are using Zenject project context in your project this may cause conflicts. I will test this eventually and see if it's a problem. You can always report an issue here

  • Zenject is a 3rd party dependency that I may not be able to use because of licensing and Unity Asset Store Guidelines. Add Zenject license in my asset and specify in new release

  • Update Offline Documentation, can't publish to Unity Asset Store without it

  • xml docs

  • go thru and search for // todo comments and fix/handle them

  • Go thru discord and look at all the errors and code snippets and questions that are asked to update the FAQ, get YouTube video ideas and create an Error Solution page that shows common fixes to common errors

  • If I update asset to only use Unity 2020+ consider using interfaces with public and private members and consider bringing back Michael Milton's custom chat scene (ask him if it's okay to remove editor coroutines and his custom versioning scripts)

  • Have someone test EasyCode on IOS, Mac, Consoles

  • provide examples on how to have different Project context for Zenject and have multiple EasySettings for different scenes, game types, or prod/dev environments

Last updated