Easy Code For Vivox
  • Introduction
    • Official Links
    • Getting Started
      • Wheres The Code
      • Setup EasyCode in My Project
    • Setup Demo Scenes
      • Vivox Developer Portal
      • Unity Gaming Services (UGS) Dashboard
    • Things To Consider
    • FAQ
  • Development Info
    • Design Decisions
    • Release Notes
      • v2.0
      • v1.3
      • v1.2
      • v1.1
      • Template
    • Not Supported
  • Easy Code For Vivox
    • How do I setup EasyCode?
      • Setup Your Credentials
    • How do I do this in EasyCode?
      • Login / Logout
        • Login Properties
        • SetTransmissionMode
        • Login Events
      • Join / Leave Channel
        • Audio Channel
          • Audio Channel Events
        • Text Channel
          • Text Channel Events
        • Channel Events
      • Send Messages
        • Message Events
      • Mute / Unmute
        • Mute / Unmute Events
      • Subscribe to User Events
      • Volume / Audio Settings
        • Audio Device Events
      • Text To Speech ( TTS )
        • TTS Events
    • Vivox Access Tokens
      • Unity Cloud Code
    • Supported Vivox Events
      • Callback Methods
    • Folder Structure / Info
      • / Demo Scenes /
      • / Documentation /
      • / Examples /
      • / Plugins /
      • / Resources /
      • / Scripts /
      • / Settings /
    • Common Errors
  • API Info
    • EasySession.cs
    • EasyManager.cs
      • Main Methods
      • Vivox Event Callbacks
    • Easy3DPositional.cs
    • EasyVivoxUtilities.cs
    • EasySettings.cs
    • Extension Methods
      • EasySIPExtensions.cs
      • GameObjectExtensions.cs
      • TTSMessageExtensions.cs
      • UIExtensions.cs
      • VivoxExtensions.cs
      • EasyDebug.cs
    • EasyEvents.cs
  • Dependency Injection
    • Zenject vs Extenject
    • Install Dependencies
    • Inject Classes
  • Dynamic Events
    • Dynamic Events
    • Tests
    • Gotchas
    • Dynamic Async Events
      • Dont Do
    • Event Examples
  • Related Info
    • How do I do this in Vivox?
      • Conference Chat
    • Pre-Processor Directives
    • How to set iOS Info.plist for Unity?
    • Unity Gaming Services
  • The Future
    • Roadmap
    • Todo / Notes / Changelog
Powered by GitBook
On this page
  • Personal
  • Check out Progress - Work IN Progress
  • Todo List / Changelog

Was this helpful?

  1. The Future

Todo / Notes / Changelog

PreviousRoadmap

Last updated 2 years ago

Was this helpful?

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 )

  • 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 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

  • 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

audio injection ** not working right now. posted question

add option to set (VAD)

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

Unity Vivox Forum
mic sensitivity and Noise Floor
report an issue here
ClickUp
Progress on Todo List
Logo