---
# System prepended metadata

title: 'AArcade: PlayCanvas'

---

![](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.