![](https://i.imgur.com/2DsuIAV.jpg) # AArcade: PlayCanvas ## Overview ### Description Curate & organize your internet bookmarks & local file shortcuts into a 3D world on any device w/ a web browser. Launch your stuff. Share your world. ### Features - 3D interactive dynamic shortcuts powered by MSF. - Media library of user's media shortcuts. - 3D world filled with shortcuts. - Persistent local-first saves. - Full JSON import/export of save data. - Multiplayer. - Asymmetrical cross-play with AArcade: Source. ### Purpose Portable home space that can work on any device w/ a web browser. (Windows/Linux/Android/iOS/etc.) Same purpose as AArcade: Source, but on a different platform. Easy Mode where the average user just chooses a world & spawns objects into it. Hard Mode where the user creates their own PlayCanvas world scene. ### Scope - No virtual city. - No monetization. - Launchable bookmarks/links with limited in-world screen capabilities. ### Components #### Game System Managers ``` Anarchy Manager Auth Manager Network Manager Embedded IFrame Managers (iframes. non-vr only.) Embedded Canvas Manager (canvas texture such as video/image/music viewer) Backpack Manager (maybe. stuff the user brings with them - from local storage probably.) Canvas Manager (manage dynamic textures <-> item w/ channel association) Input Manager Scene Manager Camera Manager Player Manager Library Manager (manages MSF lookups & management: maps, apps, models, items, types) Instance Manager (spawning & current instance state.) Asset Manager (manages asset lookup to match cross-platform assets & cloud assets.) Mount Manager (maybe. manage mounting external asset packs?) Quest Manager UI Manager ``` ``` What game systems would avatar demo currently utilize? - Embedded IFrame Manager (Not really. Requires MSF systems.) - Input Manager - Scene Manager - Camera Manager - Player Manager - Instance Manager (for spawning in.) - UI Manager What game systems could it be expanded to utilize? - Auth Manager - Network Manager ``` #### Dynamic Media Objects - Active/inactive media system. - Unlimited amount of active media objects. - Limit 1 "focused" media object at a time. #### 3D World - PlayCanvas scenes. - Augmented with user-spawned props & media objects. #### Library Browser - Search library for existing items. - Create new items. - Import/export full library as JSON. # PlayCanvas A base gameplay scene that can be imported as a prefab. Can be used by others in their own projects w/ only superficial configuration required. ## TODO - Write object controller script, which binds an MSF item to a 3D object. - Write interactive objects script that activates the media etc. - Port several (all) default AArcade models to PlayCanvas. - Figure out a universal compromise for the issue of planar vs non-planar screens in cabinets. ### Milestone 1 Show a bunch of objects in a room. Woo hoo! ### Mileston3 2 Make them interactive. ### Milestone 3 Make it a game. ## Prefabs ### AssetManager Contains prefab set of default cabinets, props, avatars, & worlds. Also has methods for loading assets like images as PlayCanvas textures. ### LibraryManager Has all library methods like searching for items, etc. ### PlayerManager Handles adding a player to the world, and also remote players. Does not handle network directly. ### NetworkManager Handles the multiplayer aspect & fires events that the PlayerManager handles. ### InputManager Handles input such as movement, looking around, and clicking on stuff. ### AnarchyManager Handles UX & the loading/unloading of scenes. ## Components - Asset library (cabinets & models.) - Character controller (multiplayer compatible.) - Input controller (interactions.) - Media object controller (bind media, activate, deactivate, etc.) # Media Library 2D HTML/CSS/JavaSript. Multi-purpose. Can be used in other MSF frontends & AArcade clients.