├── .gitignore ├── ColyseusTechDemo-MMO ├── Assets │ ├── Art.meta │ ├── Art │ │ ├── Animations.meta │ │ ├── Animations │ │ │ ├── CoinOpBounce.anim │ │ │ ├── CoinOpBounce.anim.meta │ │ │ ├── Entity.meta │ │ │ ├── Entity │ │ │ │ ├── Entity.controller │ │ │ │ ├── Entity.controller.meta │ │ │ │ ├── Idle.anim │ │ │ │ ├── Idle.anim.meta │ │ │ │ ├── WalkCycle.anim │ │ │ │ └── WalkCycle.anim.meta │ │ │ ├── Entry Door.controller │ │ │ ├── Entry Door.controller.meta │ │ │ ├── Exit Door.controller │ │ │ ├── Exit Door.controller.meta │ │ │ ├── transition-room-door-Close-Static.anim │ │ │ ├── transition-room-door-Close-Static.anim.meta │ │ │ ├── transition-room-door-Open-Static.anim │ │ │ └── transition-room-door-Open-Static.anim.meta │ │ ├── Fonts.meta │ │ ├── Fonts │ │ │ ├── big_noodle_titling.ttf │ │ │ └── big_noodle_titling.ttf.meta │ │ ├── Materials.meta │ │ ├── Materials │ │ │ ├── CoinOp.meta │ │ │ ├── CoinOp │ │ │ │ ├── Base.mat │ │ │ │ ├── Base.mat.meta │ │ │ │ ├── PlayerPos.mat │ │ │ │ ├── PlayerPos.mat.meta │ │ │ │ ├── Spring.mat │ │ │ │ └── Spring.mat.meta │ │ │ ├── Compass.meta │ │ │ ├── Compass │ │ │ │ ├── Dial.mat │ │ │ │ ├── Dial.mat.meta │ │ │ │ ├── Pointer.mat │ │ │ │ └── Pointer.mat.meta │ │ │ ├── ElevatorDoor.mat │ │ │ ├── ElevatorDoor.mat.meta │ │ │ ├── GreenCarpet.mat │ │ │ ├── GreenCarpet.mat.meta │ │ │ ├── Interactables.meta │ │ │ ├── Interactables │ │ │ │ ├── Button.mat │ │ │ │ ├── Button.mat.meta │ │ │ │ ├── Podium.mat │ │ │ │ ├── Podium.mat.meta │ │ │ │ ├── PressedButton.mat │ │ │ │ ├── PressedButton.mat.meta │ │ │ │ ├── TeleporterLight.mat │ │ │ │ └── TeleporterLight.mat.meta │ │ │ ├── KhakiWall.mat │ │ │ ├── KhakiWall.mat.meta │ │ │ ├── Players.meta │ │ │ ├── Players │ │ │ │ ├── Hat.mat │ │ │ │ ├── Hat.mat.meta │ │ │ │ ├── Pants.mat │ │ │ │ ├── Pants.mat.meta │ │ │ │ ├── Shirt.mat │ │ │ │ ├── Shirt.mat.meta │ │ │ │ ├── Skin.mat │ │ │ │ └── Skin.mat.meta │ │ │ ├── PurpleCarpet.mat │ │ │ ├── PurpleCarpet.mat.meta │ │ │ ├── PurpleWall.mat │ │ │ ├── PurpleWall.mat.meta │ │ │ ├── Void.mat │ │ │ └── Void.mat.meta │ │ ├── Textures.meta │ │ └── Textures │ │ │ ├── AvatarPreviewTexture.asset │ │ │ ├── AvatarPreviewTexture.asset.meta │ │ │ ├── Back Arrow.png │ │ │ ├── Back Arrow.png.meta │ │ │ ├── Compass Render Texture.renderTexture │ │ │ ├── Compass Render Texture.renderTexture.meta │ │ │ ├── DarkBlueGradient_BG.png │ │ │ ├── DarkBlueGradient_BG.png.meta │ │ │ ├── DarkgreyHalftone_BG.png │ │ │ ├── DarkgreyHalftone_BG.png.meta │ │ │ ├── Spinner.png │ │ │ └── Spinner.png.meta │ ├── Prefabs.meta │ ├── Prefabs │ │ ├── EntityView.prefab │ │ ├── EntityView.prefab.meta │ │ ├── Environment.meta │ │ ├── Environment │ │ │ ├── Exit.prefab │ │ │ ├── Exit.prefab.meta │ │ │ ├── Room_DoubleEntrance.prefab │ │ │ ├── Room_DoubleEntrance.prefab.meta │ │ │ ├── Room_SingleEntrance.prefab │ │ │ ├── Room_SingleEntrance.prefab.meta │ │ │ ├── Transition Room.prefab │ │ │ └── Transition Room.prefab.meta │ │ ├── Interactables.meta │ │ ├── Interactables │ │ │ ├── CoinOp.prefab │ │ │ ├── CoinOp.prefab.meta │ │ │ ├── FX Swirl.prefab │ │ │ ├── FX Swirl.prefab.meta │ │ │ ├── InstructionsText.prefab │ │ │ ├── InstructionsText.prefab.meta │ │ │ ├── InteractableButton.prefab │ │ │ ├── InteractableButton.prefab.meta │ │ │ ├── Teleporter.prefab │ │ │ └── Teleporter.prefab.meta │ │ ├── Model.meta │ │ ├── Model │ │ │ ├── Model.prefab │ │ │ └── Model.prefab.meta │ │ ├── UI.meta │ │ └── UI │ │ │ ├── AvatarCustomization.prefab │ │ │ ├── AvatarCustomization.prefab.meta │ │ │ ├── ChatInput.prefab │ │ │ ├── ChatInput.prefab.meta │ │ │ ├── ChatMessageDisplay.prefab │ │ │ ├── ChatMessageDisplay.prefab.meta │ │ │ ├── ColorSelector.prefab │ │ │ ├── ColorSelector.prefab.meta │ │ │ ├── Compass.prefab │ │ │ ├── Compass.prefab.meta │ │ │ ├── Controls.prefab │ │ │ ├── Controls.prefab.meta │ │ │ ├── GameUI.prefab │ │ │ ├── GameUI.prefab.meta │ │ │ ├── Player Tag.prefab │ │ │ └── Player Tag.prefab.meta │ ├── Resources.meta │ ├── Resources │ │ ├── GridPositions.meta │ │ └── GridPositions │ │ │ ├── -1x-1.prefab │ │ │ ├── -1x-1.prefab.meta │ │ │ ├── -1x-3.prefab │ │ │ ├── -1x-3.prefab.meta │ │ │ ├── -1x0.prefab │ │ │ ├── -1x0.prefab.meta │ │ │ ├── -1x1.prefab │ │ │ ├── -1x1.prefab.meta │ │ │ ├── -1x3.prefab │ │ │ ├── -1x3.prefab.meta │ │ │ ├── -2x-2.prefab │ │ │ ├── -2x-2.prefab.meta │ │ │ ├── -2x2.prefab │ │ │ ├── -2x2.prefab.meta │ │ │ ├── -3x-1.prefab │ │ │ ├── -3x-1.prefab.meta │ │ │ ├── -3x-3.prefab │ │ │ ├── -3x-3.prefab.meta │ │ │ ├── -3x0.prefab │ │ │ ├── -3x0.prefab.meta │ │ │ ├── -3x1.prefab │ │ │ ├── -3x1.prefab.meta │ │ │ ├── -3x3.prefab │ │ │ ├── -3x3.prefab.meta │ │ │ ├── 0x-1.prefab │ │ │ ├── 0x-1.prefab.meta │ │ │ ├── 0x-3.prefab │ │ │ ├── 0x-3.prefab.meta │ │ │ ├── 0x0.prefab │ │ │ ├── 0x0.prefab.meta │ │ │ ├── 0x1.prefab │ │ │ ├── 0x1.prefab.meta │ │ │ ├── 0x3.prefab │ │ │ ├── 0x3.prefab.meta │ │ │ ├── 1x-1.prefab │ │ │ ├── 1x-1.prefab.meta │ │ │ ├── 1x-3.prefab │ │ │ ├── 1x-3.prefab.meta │ │ │ ├── 1x0.prefab │ │ │ ├── 1x0.prefab.meta │ │ │ ├── 1x1.prefab │ │ │ ├── 1x1.prefab.meta │ │ │ ├── 1x3.prefab │ │ │ ├── 1x3.prefab.meta │ │ │ ├── 2x-2.prefab │ │ │ ├── 2x-2.prefab.meta │ │ │ ├── 2x2.prefab │ │ │ ├── 2x2.prefab.meta │ │ │ ├── 3x-1.prefab │ │ │ ├── 3x-1.prefab.meta │ │ │ ├── 3x-3.prefab │ │ │ ├── 3x-3.prefab.meta │ │ │ ├── 3x0.prefab │ │ │ ├── 3x0.prefab.meta │ │ │ ├── 3x1.prefab │ │ │ ├── 3x1.prefab.meta │ │ │ ├── 3x3.prefab │ │ │ └── 3x3.prefab.meta │ ├── Scenes.meta │ ├── Scenes │ │ ├── MMOLoginScene.unity │ │ ├── MMOLoginScene.unity.meta │ │ ├── TowerScene.unity │ │ └── TowerScene.unity.meta │ ├── Scripts.meta │ ├── Scripts │ │ ├── CameraController.cs │ │ ├── CameraController.cs.meta │ │ ├── Editor.meta │ │ ├── Editor │ │ │ ├── TransitionRoomEditor.cs │ │ │ └── TransitionRoomEditor.cs.meta │ │ ├── Environment.meta │ │ ├── Environment │ │ │ ├── Area.cs │ │ │ ├── Area.cs.meta │ │ │ ├── AreaExit.cs │ │ │ ├── AreaExit.cs.meta │ │ │ ├── EntryDoorTrigger.cs │ │ │ ├── EntryDoorTrigger.cs.meta │ │ │ ├── EnvironmentController.cs │ │ │ ├── EnvironmentController.cs.meta │ │ │ ├── Interactables.meta │ │ │ └── Interactables │ │ │ │ ├── ButtonPodium.cs │ │ │ │ ├── ButtonPodium.cs.meta │ │ │ │ ├── CoinOp.cs │ │ │ │ ├── CoinOp.cs.meta │ │ │ │ ├── FXSwirl.cs │ │ │ │ ├── FXSwirl.cs.meta │ │ │ │ ├── Interactable.cs │ │ │ │ ├── Interactable.cs.meta │ │ │ │ ├── InteractableTrigger.cs │ │ │ │ ├── InteractableTrigger.cs.meta │ │ │ │ ├── Teleporter.cs │ │ │ │ └── Teleporter.cs.meta │ │ ├── Managers.meta │ │ ├── Managers │ │ │ ├── ChatManager.cs │ │ │ ├── ChatManager.cs.meta │ │ │ ├── MMOManager.cs │ │ │ ├── MMOManager.cs.meta │ │ │ ├── NetworkedEntityFactory.cs │ │ │ ├── NetworkedEntityFactory.cs.meta │ │ │ ├── UIManager.cs │ │ │ └── UIManager.cs.meta │ │ ├── MessageTypes.cs │ │ ├── MessageTypes.cs.meta │ │ ├── Models.meta │ │ ├── Models │ │ │ ├── AuthSeatReservationData.cs │ │ │ ├── AuthSeatReservationData.cs.meta │ │ │ ├── RequestResponse.cs │ │ │ ├── RequestResponse.cs.meta │ │ │ ├── UserAuthData.cs │ │ │ ├── UserAuthData.cs.meta │ │ │ ├── UserData.cs │ │ │ ├── UserData.cs.meta │ │ │ ├── Vectors.cs │ │ │ └── Vectors.cs.meta │ │ ├── Player.meta │ │ ├── Player │ │ │ ├── AvatarDisplay.cs │ │ │ ├── AvatarDisplay.cs.meta │ │ │ ├── ChatDisplay.cs │ │ │ ├── ChatDisplay.cs.meta │ │ │ ├── EntityMovement.cs │ │ │ ├── EntityMovement.cs.meta │ │ │ ├── NetworkedEntity.cs │ │ │ └── NetworkedEntity.cs.meta │ │ ├── PlayerPrefKeys.cs │ │ ├── PlayerPrefKeys.cs.meta │ │ ├── States.meta │ │ ├── States │ │ │ ├── AvatarState.Clone.cs │ │ │ ├── AvatarState.Clone.cs.meta │ │ │ ├── AvatarState.cs │ │ │ ├── AvatarState.cs.meta │ │ │ ├── ChatMessage.cs │ │ │ ├── ChatMessage.cs.meta │ │ │ ├── ChatQueue.cs │ │ │ ├── ChatQueue.cs.meta │ │ │ ├── ChatRoomState.cs │ │ │ ├── ChatRoomState.cs.meta │ │ │ ├── InteractableState.cs │ │ │ ├── InteractableState.cs.meta │ │ │ ├── NetworkedEntityState.Clone.cs │ │ │ ├── NetworkedEntityState.Clone.cs.meta │ │ │ ├── NetworkedEntityState.cs │ │ │ ├── NetworkedEntityState.cs.meta │ │ │ ├── RoomState.cs │ │ │ └── RoomState.cs.meta │ │ ├── TransitionRoom.cs │ │ ├── TransitionRoom.cs.meta │ │ ├── UI.meta │ │ ├── UI │ │ │ ├── AvatarCustomization.cs │ │ │ ├── AvatarCustomization.cs.meta │ │ │ ├── ChatInput.cs │ │ │ ├── ChatInput.cs.meta │ │ │ ├── ChatMessageView.cs │ │ │ ├── ChatMessageView.cs.meta │ │ │ ├── ColorSelector.cs │ │ │ ├── ColorSelector.cs.meta │ │ │ ├── Compass.cs │ │ │ ├── Compass.cs.meta │ │ │ ├── CreateUserMenu.cs │ │ │ ├── CreateUserMenu.cs.meta │ │ │ ├── FaceCamera.cs │ │ │ ├── FaceCamera.cs.meta │ │ │ ├── InGameMenu.cs │ │ │ ├── InGameMenu.cs.meta │ │ │ ├── LobbyController.cs │ │ │ ├── LobbyController.cs.meta │ │ │ ├── PlayerNameTagController.cs │ │ │ ├── PlayerNameTagController.cs.meta │ │ │ ├── PlayerTag.cs │ │ │ ├── PlayerTag.cs.meta │ │ │ ├── ServerSetupMenu.cs │ │ │ ├── ServerSetupMenu.cs.meta │ │ │ ├── UISpinner.cs │ │ │ └── UISpinner.cs.meta │ │ ├── Utils.meta │ │ └── Utils │ │ │ ├── DontDestroyTag.cs │ │ │ ├── DontDestroyTag.cs.meta │ │ │ ├── Easings.cs │ │ │ └── Easings.cs.meta │ ├── Settings.meta │ ├── Settings │ │ ├── ColyseusSettings.asset │ │ └── ColyseusSettings.asset.meta │ ├── TextMesh Pro.meta │ └── TextMesh Pro │ │ ├── Documentation.meta │ │ ├── Documentation │ │ ├── TextMesh Pro User Guide 2016.pdf │ │ └── TextMesh Pro User Guide 2016.pdf.meta │ │ ├── Fonts.meta │ │ ├── Fonts │ │ ├── LiberationSans - OFL.txt │ │ ├── LiberationSans - OFL.txt.meta │ │ ├── LiberationSans.ttf │ │ └── LiberationSans.ttf.meta │ │ ├── Resources.meta │ │ ├── Resources │ │ ├── Fonts & Materials.meta │ │ ├── Fonts & Materials │ │ │ ├── LiberationSans SDF - Drop Shadow.mat │ │ │ ├── LiberationSans SDF - Drop Shadow.mat.meta │ │ │ ├── LiberationSans SDF - Fallback.asset │ │ │ ├── LiberationSans SDF - Fallback.asset.meta │ │ │ ├── LiberationSans SDF - Outline.mat │ │ │ ├── LiberationSans SDF - Outline.mat.meta │ │ │ ├── LiberationSans SDF.asset │ │ │ └── LiberationSans SDF.asset.meta │ │ ├── LineBreaking Following Characters.txt │ │ ├── LineBreaking Following Characters.txt.meta │ │ ├── LineBreaking Leading Characters.txt │ │ ├── LineBreaking Leading Characters.txt.meta │ │ ├── Sprite Assets.meta │ │ ├── Sprite Assets │ │ │ ├── EmojiOne.asset │ │ │ └── EmojiOne.asset.meta │ │ ├── Style Sheets.meta │ │ ├── Style Sheets │ │ │ ├── Default Style Sheet.asset │ │ │ └── Default Style Sheet.asset.meta │ │ ├── TMP Settings.asset │ │ └── TMP Settings.asset.meta │ │ ├── Shaders.meta │ │ ├── Shaders │ │ ├── TMP_Bitmap-Custom-Atlas.shader │ │ ├── TMP_Bitmap-Custom-Atlas.shader.meta │ │ ├── TMP_Bitmap-Mobile.shader │ │ ├── TMP_Bitmap-Mobile.shader.meta │ │ ├── TMP_Bitmap.shader │ │ ├── TMP_Bitmap.shader.meta │ │ ├── TMP_SDF Overlay.shader │ │ ├── TMP_SDF Overlay.shader.meta │ │ ├── TMP_SDF SSD.shader │ │ ├── TMP_SDF SSD.shader.meta │ │ ├── TMP_SDF-Mobile Masking.shader │ │ ├── TMP_SDF-Mobile Masking.shader.meta │ │ ├── TMP_SDF-Mobile Overlay.shader │ │ ├── TMP_SDF-Mobile Overlay.shader.meta │ │ ├── TMP_SDF-Mobile SSD.shader │ │ ├── TMP_SDF-Mobile SSD.shader.meta │ │ ├── TMP_SDF-Mobile.shader │ │ ├── TMP_SDF-Mobile.shader.meta │ │ ├── TMP_SDF-Surface-Mobile.shader │ │ ├── TMP_SDF-Surface-Mobile.shader.meta │ │ ├── TMP_SDF-Surface.shader │ │ ├── TMP_SDF-Surface.shader.meta │ │ ├── TMP_SDF.shader │ │ ├── TMP_SDF.shader.meta │ │ ├── TMP_Sprite.shader │ │ ├── TMP_Sprite.shader.meta │ │ ├── TMPro.cginc │ │ ├── TMPro.cginc.meta │ │ ├── TMPro_Mobile.cginc │ │ ├── TMPro_Mobile.cginc.meta │ │ ├── TMPro_Properties.cginc │ │ ├── TMPro_Properties.cginc.meta │ │ ├── TMPro_Surface.cginc │ │ └── TMPro_Surface.cginc.meta │ │ ├── Sprites.meta │ │ └── Sprites │ │ ├── EmojiOne Attribution.txt │ │ ├── EmojiOne Attribution.txt.meta │ │ ├── EmojiOne.json │ │ ├── EmojiOne.json.meta │ │ ├── EmojiOne.png │ │ └── EmojiOne.png.meta ├── Packages │ ├── manifest.json │ └── packages-lock.json └── ProjectSettings │ ├── AudioManager.asset │ ├── ClusterInputManager.asset │ ├── DynamicsManager.asset │ ├── EditorBuildSettings.asset │ ├── EditorSettings.asset │ ├── GraphicsSettings.asset │ ├── InputManager.asset │ ├── NavMeshAreas.asset │ ├── PackageManagerSettings.asset │ ├── Physics2DSettings.asset │ ├── PresetManager.asset │ ├── ProjectSettings.asset │ ├── ProjectVersion.txt │ ├── QualitySettings.asset │ ├── TagManager.asset │ ├── TimeManager.asset │ ├── UnityConnectSettings.asset │ ├── VFXManager.asset │ ├── VersionControlSettings.asset │ └── XRSettings.asset ├── README.md ├── Server ├── .gitignore ├── .vscode │ └── launch.json ├── README.md ├── arena.env ├── development.env ├── lib │ ├── arena.config.js │ ├── arena.env │ ├── config │ │ ├── database.config.js │ │ └── mikro-orm.config.js │ ├── controllers │ │ └── authController.js │ ├── entities │ │ ├── BaseEntity.js │ │ ├── TestEntity.js │ │ └── UserEntity.js │ ├── helpers │ │ ├── Vectors.js │ │ ├── interactableObjectFactory.js │ │ ├── logger.js │ │ └── matchmakerHelper.js │ ├── index.js │ ├── package.json │ ├── rooms │ │ ├── ChatRoom.js │ │ ├── MMORoom.js │ │ └── schema │ │ │ ├── AvatarState.js │ │ │ ├── Position.js │ │ │ ├── RoomState.js │ │ │ └── Rotation.js │ └── routes │ │ └── userRoutes.js ├── loadtest │ └── example.ts ├── package-lock.json ├── package.json ├── src │ ├── arena.config.ts │ ├── config │ │ ├── database.config.ts │ │ └── mikro-orm.config.ts │ ├── controllers │ │ └── authController.ts │ ├── entities │ │ ├── BaseEntity.ts │ │ └── UserEntity.ts │ ├── helpers │ │ ├── Vectors.ts │ │ ├── interactableObjectFactory.ts │ │ ├── logger.js │ │ └── matchmakerHelper.ts │ ├── index.ts │ ├── rooms │ │ ├── ChatRoom.ts │ │ ├── MMORoom.ts │ │ └── schema │ │ │ ├── AvatarState.ts │ │ │ └── RoomState.ts │ └── routes │ │ └── userRoutes.ts └── tsconfig.json └── screenshot.PNG /.gitignore: -------------------------------------------------------------------------------- 1 | # This .gitignore file should be placed at the root of your Unity project directory 2 | # 3 | # Get latest from https://github.com/github/gitignore/blob/master/Unity.gitignore 4 | # 5 | /[Ll]ibrary/ 6 | /[Tt]emp/ 7 | /[Oo]bj/ 8 | /[Bb]uild/ 9 | /[Bb]uilds/ 10 | /[Ll]ogs/ 11 | /[Mm]emoryCaptures/ 12 | 13 | # Asset meta data should only be ignored when the corresponding asset is also ignored 14 | !/[Aa]ssets/**/*.meta 15 | 16 | # Uncomment this line if you wish to ignore the asset store tools plugin 17 | # /[Aa]ssets/AssetStoreTools* 18 | 19 | # Autogenerated Jetbrains Rider plugin 20 | [Aa]ssets/Plugins/Editor/JetBrains* 21 | 22 | # Visual Studio cache directory 23 | .vs/ 24 | 25 | # Gradle cache directory 26 | .gradle/ 27 | 28 | # Autogenerated VS/MD/Consulo solution and project files 29 | ExportedObj/ 30 | .consulo/ 31 | *.csproj 32 | *.unityproj 33 | *.sln 34 | *.suo 35 | *.tmp 36 | *.user 37 | *.userprefs 38 | *.pidb 39 | *.booproj 40 | *.svd 41 | *.pdb 42 | *.mdb 43 | *.opendb 44 | *.VC.db 45 | 46 | # Unity3D generated meta files 47 | *.pidb.meta 48 | *.pdb.meta 49 | *.mdb.meta 50 | 51 | # Unity3D generated file on crash reports 52 | sysinfo.txt 53 | 54 | # Builds 55 | *.apk 56 | *.unitypackage 57 | 58 | # Crashlytics generated file 59 | crashlytics-build.properties 60 | 61 | *.vsconfig 62 | ColyseusTechDemo-MMO/Library/ 63 | ColyseusTechDemo-MMO/Logs/ 64 | ColyseusTechDemo-MMO/Temp/ 65 | ColyseusTechDemo-MMO/UserSettings/ 66 | ColyseusTechDemo-MMO/obj/ 67 | ColyseusTechDemo-MMO/Builds/ 68 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Art.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5db4690c75e7cb5468212f8e4fedaa69 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Art/Animations.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 21b144b42f7bbc545bef371938163ac5 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Art/Animations/CoinOpBounce.anim.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: dd86f4bc53dc57444adf0f48ded8c944 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 7400000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Art/Animations/Entity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6a446776331b5d94ca821949fd287fcb 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Art/Animations/Entity/Entity.controller.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0e3d7d5dd74bc3c48ae27e5dc8ee52ba 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 9100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Art/Animations/Entity/Idle.anim.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 34cf99ea26edd7d41a4f7bf5a6078c3b 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 7400000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Art/Animations/Entity/WalkCycle.anim.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 564baf7d160f58b48836ac5603236b57 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 7400000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Art/Animations/Entry Door.controller.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e943175ea850408499a86a7b3b4f6a64 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 9100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Art/Animations/Exit Door.controller.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c4517d242260e2342b6b7e8d82058130 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 9100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Art/Animations/transition-room-door-Close-Static.anim.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1f3ddf074f276b5458442f2f698fc273 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 7400000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Art/Animations/transition-room-door-Open-Static.anim.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 449d31f07574a80469c4c93fc6b52cb5 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 7400000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Art/Fonts.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 55f34f764f45de246b7fe264731e0d0e 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Art/Fonts/big_noodle_titling.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colyseus/unity-demo-mmo/b0e2d04bb287b47646d0afb87c4e46b0181d27c6/ColyseusTechDemo-MMO/Assets/Art/Fonts/big_noodle_titling.ttf -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Art/Fonts/big_noodle_titling.ttf.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e9ddc73d6d11d424591d5f2fce4dda98 3 | TrueTypeFontImporter: 4 | externalObjects: {} 5 | serializedVersion: 4 6 | fontSize: 16 7 | forceTextureCase: -2 8 | characterSpacing: 0 9 | characterPadding: 1 10 | includeFontData: 1 11 | fontNames: 12 | - BigNoodleTitling 13 | fallbackFontReferences: [] 14 | customCharacters: 15 | fontRenderingMode: 0 16 | ascentCalculationMode: 1 17 | useLegacyBoundsCalculation: 0 18 | shouldRoundAdvanceValue: 1 19 | userData: 20 | assetBundleName: 21 | assetBundleVariant: 22 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Art/Materials.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1d47f7dd111d23b4a88224ed2344e535 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Art/Materials/CoinOp.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3e0c0cc48297de541800a9f8c0e94d01 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Art/Materials/CoinOp/Base.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 6 6 | m_ObjectHideFlags: 0 7 | m_CorrespondingSourceObject: {fileID: 0} 8 | m_PrefabInstance: {fileID: 0} 9 | m_PrefabAsset: {fileID: 0} 10 | m_Name: Base 11 | m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} 12 | m_ShaderKeywords: _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A 13 | m_LightmapFlags: 4 14 | m_EnableInstancingVariants: 0 15 | m_DoubleSidedGI: 0 16 | m_CustomRenderQueue: -1 17 | stringTagMap: {} 18 | disabledShaderPasses: [] 19 | m_SavedProperties: 20 | serializedVersion: 3 21 | m_TexEnvs: 22 | - _BumpMap: 23 | m_Texture: {fileID: 0} 24 | m_Scale: {x: 1, y: 1} 25 | m_Offset: {x: 0, y: 0} 26 | - _DetailAlbedoMap: 27 | m_Texture: {fileID: 0} 28 | m_Scale: {x: 1, y: 1} 29 | m_Offset: {x: 0, y: 0} 30 | - _DetailMask: 31 | m_Texture: {fileID: 0} 32 | m_Scale: {x: 1, y: 1} 33 | m_Offset: {x: 0, y: 0} 34 | - _DetailNormalMap: 35 | m_Texture: {fileID: 0} 36 | m_Scale: {x: 1, y: 1} 37 | m_Offset: {x: 0, y: 0} 38 | - _EmissionMap: 39 | m_Texture: {fileID: 0} 40 | m_Scale: {x: 1, y: 1} 41 | m_Offset: {x: 0, y: 0} 42 | - _MainTex: 43 | m_Texture: {fileID: 0} 44 | m_Scale: {x: 1, y: 1} 45 | m_Offset: {x: 0, y: 0} 46 | - _MetallicGlossMap: 47 | m_Texture: {fileID: 0} 48 | m_Scale: {x: 1, y: 1} 49 | m_Offset: {x: 0, y: 0} 50 | - _OcclusionMap: 51 | m_Texture: {fileID: 0} 52 | m_Scale: {x: 1, y: 1} 53 | m_Offset: {x: 0, y: 0} 54 | - _ParallaxMap: 55 | m_Texture: {fileID: 0} 56 | m_Scale: {x: 1, y: 1} 57 | m_Offset: {x: 0, y: 0} 58 | m_Floats: 59 | - _BumpScale: 1 60 | - _Cutoff: 0.5 61 | - _DetailNormalMapScale: 1 62 | - _DstBlend: 0 63 | - _GlossMapScale: 1 64 | - _Glossiness: 0.5 65 | - _GlossyReflections: 1 66 | - _Metallic: 0 67 | - _Mode: 0 68 | - _OcclusionStrength: 1 69 | - _Parallax: 0.02 70 | - _SmoothnessTextureChannel: 1 71 | - _SpecularHighlights: 1 72 | - _SrcBlend: 1 73 | - _UVSec: 0 74 | - _ZWrite: 1 75 | m_Colors: 76 | - _Color: {r: 0.9528302, g: 0.9269928, b: 0, a: 1} 77 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} 78 | m_BuildTextureStacks: [] 79 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Art/Materials/CoinOp/Base.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9b68b203d5b673c469a0964eba41b8ee 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 2100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Art/Materials/CoinOp/PlayerPos.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 6 6 | m_ObjectHideFlags: 0 7 | m_CorrespondingSourceObject: {fileID: 0} 8 | m_PrefabInstance: {fileID: 0} 9 | m_PrefabAsset: {fileID: 0} 10 | m_Name: PlayerPos 11 | m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} 12 | m_ShaderKeywords: _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A 13 | m_LightmapFlags: 4 14 | m_EnableInstancingVariants: 0 15 | m_DoubleSidedGI: 0 16 | m_CustomRenderQueue: -1 17 | stringTagMap: {} 18 | disabledShaderPasses: [] 19 | m_SavedProperties: 20 | serializedVersion: 3 21 | m_TexEnvs: 22 | - _BumpMap: 23 | m_Texture: {fileID: 0} 24 | m_Scale: {x: 1, y: 1} 25 | m_Offset: {x: 0, y: 0} 26 | - _DetailAlbedoMap: 27 | m_Texture: {fileID: 0} 28 | m_Scale: {x: 1, y: 1} 29 | m_Offset: {x: 0, y: 0} 30 | - _DetailMask: 31 | m_Texture: {fileID: 0} 32 | m_Scale: {x: 1, y: 1} 33 | m_Offset: {x: 0, y: 0} 34 | - _DetailNormalMap: 35 | m_Texture: {fileID: 0} 36 | m_Scale: {x: 1, y: 1} 37 | m_Offset: {x: 0, y: 0} 38 | - _EmissionMap: 39 | m_Texture: {fileID: 0} 40 | m_Scale: {x: 1, y: 1} 41 | m_Offset: {x: 0, y: 0} 42 | - _MainTex: 43 | m_Texture: {fileID: 0} 44 | m_Scale: {x: 1, y: 1} 45 | m_Offset: {x: 0, y: 0} 46 | - _MetallicGlossMap: 47 | m_Texture: {fileID: 0} 48 | m_Scale: {x: 1, y: 1} 49 | m_Offset: {x: 0, y: 0} 50 | - _OcclusionMap: 51 | m_Texture: {fileID: 0} 52 | m_Scale: {x: 1, y: 1} 53 | m_Offset: {x: 0, y: 0} 54 | - _ParallaxMap: 55 | m_Texture: {fileID: 0} 56 | m_Scale: {x: 1, y: 1} 57 | m_Offset: {x: 0, y: 0} 58 | m_Floats: 59 | - _BumpScale: 1 60 | - _Cutoff: 0.5 61 | - _DetailNormalMapScale: 1 62 | - _DstBlend: 0 63 | - _GlossMapScale: 1 64 | - _Glossiness: 0.5 65 | - _GlossyReflections: 1 66 | - _Metallic: 0 67 | - _Mode: 0 68 | - _OcclusionStrength: 1 69 | - _Parallax: 0.02 70 | - _SmoothnessTextureChannel: 1 71 | - _SpecularHighlights: 1 72 | - _SrcBlend: 1 73 | - _UVSec: 0 74 | - _ZWrite: 1 75 | m_Colors: 76 | - _Color: {r: 0, g: 0.07429494, b: 0.9529412, a: 1} 77 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} 78 | m_BuildTextureStacks: [] 79 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Art/Materials/CoinOp/PlayerPos.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: cb0897ddf3c74124d977ad042d4cc684 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 2100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Art/Materials/CoinOp/Spring.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 6 6 | m_ObjectHideFlags: 0 7 | m_CorrespondingSourceObject: {fileID: 0} 8 | m_PrefabInstance: {fileID: 0} 9 | m_PrefabAsset: {fileID: 0} 10 | m_Name: Spring 11 | m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} 12 | m_ShaderKeywords: 13 | m_LightmapFlags: 4 14 | m_EnableInstancingVariants: 0 15 | m_DoubleSidedGI: 0 16 | m_CustomRenderQueue: -1 17 | stringTagMap: {} 18 | disabledShaderPasses: [] 19 | m_SavedProperties: 20 | serializedVersion: 3 21 | m_TexEnvs: 22 | - _BumpMap: 23 | m_Texture: {fileID: 0} 24 | m_Scale: {x: 1, y: 1} 25 | m_Offset: {x: 0, y: 0} 26 | - _DetailAlbedoMap: 27 | m_Texture: {fileID: 0} 28 | m_Scale: {x: 1, y: 1} 29 | m_Offset: {x: 0, y: 0} 30 | - _DetailMask: 31 | m_Texture: {fileID: 0} 32 | m_Scale: {x: 1, y: 1} 33 | m_Offset: {x: 0, y: 0} 34 | - _DetailNormalMap: 35 | m_Texture: {fileID: 0} 36 | m_Scale: {x: 1, y: 1} 37 | m_Offset: {x: 0, y: 0} 38 | - _EmissionMap: 39 | m_Texture: {fileID: 0} 40 | m_Scale: {x: 1, y: 1} 41 | m_Offset: {x: 0, y: 0} 42 | - _MainTex: 43 | m_Texture: {fileID: 0} 44 | m_Scale: {x: 1, y: 1} 45 | m_Offset: {x: 0, y: 0} 46 | - _MetallicGlossMap: 47 | m_Texture: {fileID: 0} 48 | m_Scale: {x: 1, y: 1} 49 | m_Offset: {x: 0, y: 0} 50 | - _OcclusionMap: 51 | m_Texture: {fileID: 0} 52 | m_Scale: {x: 1, y: 1} 53 | m_Offset: {x: 0, y: 0} 54 | - _ParallaxMap: 55 | m_Texture: {fileID: 0} 56 | m_Scale: {x: 1, y: 1} 57 | m_Offset: {x: 0, y: 0} 58 | m_Floats: 59 | - _BumpScale: 1 60 | - _Cutoff: 0.5 61 | - _DetailNormalMapScale: 1 62 | - _DstBlend: 0 63 | - _GlossMapScale: 1 64 | - _Glossiness: 0.5 65 | - _GlossyReflections: 1 66 | - _Metallic: 0 67 | - _Mode: 0 68 | - _OcclusionStrength: 1 69 | - _Parallax: 0.02 70 | - _SmoothnessTextureChannel: 0 71 | - _SpecularHighlights: 1 72 | - _SrcBlend: 1 73 | - _UVSec: 0 74 | - _ZWrite: 1 75 | m_Colors: 76 | - _Color: {r: 0, g: 0, b: 0, a: 1} 77 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} 78 | m_BuildTextureStacks: [] 79 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Art/Materials/CoinOp/Spring.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 53d9e3636dd199b4ca189e6019447627 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 2100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Art/Materials/Compass.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3b8e6f5202bc8f348843b529bd81d6b5 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Art/Materials/Compass/Dial.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 582f92daf673eb04eb78c507112be5a7 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 2100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Art/Materials/Compass/Pointer.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8f2944078244a8346989c2854e5d35c4 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 2100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Art/Materials/ElevatorDoor.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 6 6 | m_ObjectHideFlags: 0 7 | m_CorrespondingSourceObject: {fileID: 0} 8 | m_PrefabInstance: {fileID: 0} 9 | m_PrefabAsset: {fileID: 0} 10 | m_Name: ElevatorDoor 11 | m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} 12 | m_ShaderKeywords: 13 | m_LightmapFlags: 4 14 | m_EnableInstancingVariants: 0 15 | m_DoubleSidedGI: 0 16 | m_CustomRenderQueue: -1 17 | stringTagMap: {} 18 | disabledShaderPasses: [] 19 | m_SavedProperties: 20 | serializedVersion: 3 21 | m_TexEnvs: 22 | - _BumpMap: 23 | m_Texture: {fileID: 0} 24 | m_Scale: {x: 1, y: 1} 25 | m_Offset: {x: 0, y: 0} 26 | - _DetailAlbedoMap: 27 | m_Texture: {fileID: 0} 28 | m_Scale: {x: 1, y: 1} 29 | m_Offset: {x: 0, y: 0} 30 | - _DetailMask: 31 | m_Texture: {fileID: 0} 32 | m_Scale: {x: 1, y: 1} 33 | m_Offset: {x: 0, y: 0} 34 | - _DetailNormalMap: 35 | m_Texture: {fileID: 0} 36 | m_Scale: {x: 1, y: 1} 37 | m_Offset: {x: 0, y: 0} 38 | - _EmissionMap: 39 | m_Texture: {fileID: 0} 40 | m_Scale: {x: 1, y: 1} 41 | m_Offset: {x: 0, y: 0} 42 | - _MainTex: 43 | m_Texture: {fileID: 0} 44 | m_Scale: {x: 1, y: 1} 45 | m_Offset: {x: 0, y: 0} 46 | - _MetallicGlossMap: 47 | m_Texture: {fileID: 0} 48 | m_Scale: {x: 1, y: 1} 49 | m_Offset: {x: 0, y: 0} 50 | - _OcclusionMap: 51 | m_Texture: {fileID: 0} 52 | m_Scale: {x: 1, y: 1} 53 | m_Offset: {x: 0, y: 0} 54 | - _ParallaxMap: 55 | m_Texture: {fileID: 0} 56 | m_Scale: {x: 1, y: 1} 57 | m_Offset: {x: 0, y: 0} 58 | m_Floats: 59 | - _BumpScale: 1 60 | - _Cutoff: 0.5 61 | - _DetailNormalMapScale: 1 62 | - _DstBlend: 0 63 | - _GlossMapScale: 1 64 | - _Glossiness: 0.698 65 | - _GlossyReflections: 1 66 | - _Metallic: 0.199 67 | - _Mode: 0 68 | - _OcclusionStrength: 1 69 | - _Parallax: 0.02 70 | - _SmoothnessTextureChannel: 0 71 | - _SpecularHighlights: 1 72 | - _SrcBlend: 1 73 | - _UVSec: 0 74 | - _ZWrite: 1 75 | m_Colors: 76 | - _Color: {r: 0.3301887, g: 0.3301887, b: 0.3301887, a: 1} 77 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} 78 | m_BuildTextureStacks: [] 79 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Art/Materials/ElevatorDoor.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 57ca63ca23490fb419a71660ecaeae60 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 2100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Art/Materials/GreenCarpet.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 6 6 | m_ObjectHideFlags: 0 7 | m_CorrespondingSourceObject: {fileID: 0} 8 | m_PrefabInstance: {fileID: 0} 9 | m_PrefabAsset: {fileID: 0} 10 | m_Name: GreenCarpet 11 | m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} 12 | m_ShaderKeywords: _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A 13 | m_LightmapFlags: 4 14 | m_EnableInstancingVariants: 0 15 | m_DoubleSidedGI: 0 16 | m_CustomRenderQueue: -1 17 | stringTagMap: {} 18 | disabledShaderPasses: [] 19 | m_SavedProperties: 20 | serializedVersion: 3 21 | m_TexEnvs: 22 | - _BumpMap: 23 | m_Texture: {fileID: 0} 24 | m_Scale: {x: 1, y: 1} 25 | m_Offset: {x: 0, y: 0} 26 | - _DetailAlbedoMap: 27 | m_Texture: {fileID: 0} 28 | m_Scale: {x: 1, y: 1} 29 | m_Offset: {x: 0, y: 0} 30 | - _DetailMask: 31 | m_Texture: {fileID: 0} 32 | m_Scale: {x: 1, y: 1} 33 | m_Offset: {x: 0, y: 0} 34 | - _DetailNormalMap: 35 | m_Texture: {fileID: 0} 36 | m_Scale: {x: 1, y: 1} 37 | m_Offset: {x: 0, y: 0} 38 | - _EmissionMap: 39 | m_Texture: {fileID: 0} 40 | m_Scale: {x: 1, y: 1} 41 | m_Offset: {x: 0, y: 0} 42 | - _MainTex: 43 | m_Texture: {fileID: 0} 44 | m_Scale: {x: 1, y: 1} 45 | m_Offset: {x: 0, y: 0} 46 | - _MetallicGlossMap: 47 | m_Texture: {fileID: 0} 48 | m_Scale: {x: 1, y: 1} 49 | m_Offset: {x: 0, y: 0} 50 | - _OcclusionMap: 51 | m_Texture: {fileID: 0} 52 | m_Scale: {x: 1, y: 1} 53 | m_Offset: {x: 0, y: 0} 54 | - _ParallaxMap: 55 | m_Texture: {fileID: 0} 56 | m_Scale: {x: 1, y: 1} 57 | m_Offset: {x: 0, y: 0} 58 | m_Floats: 59 | - _BumpScale: 1 60 | - _Cutoff: 0.5 61 | - _DetailNormalMapScale: 1 62 | - _DstBlend: 0 63 | - _GlossMapScale: 0 64 | - _Glossiness: 0 65 | - _GlossyReflections: 1 66 | - _Metallic: 0 67 | - _Mode: 0 68 | - _OcclusionStrength: 1 69 | - _Parallax: 0.02 70 | - _SmoothnessTextureChannel: 1 71 | - _SpecularHighlights: 1 72 | - _SrcBlend: 1 73 | - _UVSec: 0 74 | - _ZWrite: 1 75 | m_Colors: 76 | - _Color: {r: 0.2575666, g: 0.5943396, b: 0, a: 1} 77 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} 78 | m_BuildTextureStacks: [] 79 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Art/Materials/GreenCarpet.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b9f8b6065c7f1ab4cb584f4560479d31 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 2100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Art/Materials/Interactables.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: dcf3eccd70ef938498b4cd05c80e4013 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Art/Materials/Interactables/Button.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 6 6 | m_ObjectHideFlags: 0 7 | m_CorrespondingSourceObject: {fileID: 0} 8 | m_PrefabInstance: {fileID: 0} 9 | m_PrefabAsset: {fileID: 0} 10 | m_Name: Button 11 | m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} 12 | m_ShaderKeywords: _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A 13 | m_LightmapFlags: 4 14 | m_EnableInstancingVariants: 0 15 | m_DoubleSidedGI: 0 16 | m_CustomRenderQueue: -1 17 | stringTagMap: {} 18 | disabledShaderPasses: [] 19 | m_SavedProperties: 20 | serializedVersion: 3 21 | m_TexEnvs: 22 | - _BumpMap: 23 | m_Texture: {fileID: 0} 24 | m_Scale: {x: 1, y: 1} 25 | m_Offset: {x: 0, y: 0} 26 | - _DetailAlbedoMap: 27 | m_Texture: {fileID: 0} 28 | m_Scale: {x: 1, y: 1} 29 | m_Offset: {x: 0, y: 0} 30 | - _DetailMask: 31 | m_Texture: {fileID: 0} 32 | m_Scale: {x: 1, y: 1} 33 | m_Offset: {x: 0, y: 0} 34 | - _DetailNormalMap: 35 | m_Texture: {fileID: 0} 36 | m_Scale: {x: 1, y: 1} 37 | m_Offset: {x: 0, y: 0} 38 | - _EmissionMap: 39 | m_Texture: {fileID: 0} 40 | m_Scale: {x: 1, y: 1} 41 | m_Offset: {x: 0, y: 0} 42 | - _MainTex: 43 | m_Texture: {fileID: 0} 44 | m_Scale: {x: 1, y: 1} 45 | m_Offset: {x: 0, y: 0} 46 | - _MetallicGlossMap: 47 | m_Texture: {fileID: 0} 48 | m_Scale: {x: 1, y: 1} 49 | m_Offset: {x: 0, y: 0} 50 | - _OcclusionMap: 51 | m_Texture: {fileID: 0} 52 | m_Scale: {x: 1, y: 1} 53 | m_Offset: {x: 0, y: 0} 54 | - _ParallaxMap: 55 | m_Texture: {fileID: 0} 56 | m_Scale: {x: 1, y: 1} 57 | m_Offset: {x: 0, y: 0} 58 | m_Floats: 59 | - _BumpScale: 1 60 | - _Cutoff: 0.5 61 | - _DetailNormalMapScale: 1 62 | - _DstBlend: 0 63 | - _GlossMapScale: 0.5 64 | - _Glossiness: 0.5 65 | - _GlossyReflections: 1 66 | - _Metallic: 0 67 | - _Mode: 0 68 | - _OcclusionStrength: 1 69 | - _Parallax: 0.02 70 | - _SmoothnessTextureChannel: 1 71 | - _SpecularHighlights: 1 72 | - _SrcBlend: 1 73 | - _UVSec: 0 74 | - _ZWrite: 1 75 | m_Colors: 76 | - _Color: {r: 0.08186395, g: 0.6784314, b: 0, a: 1} 77 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} 78 | m_BuildTextureStacks: [] 79 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Art/Materials/Interactables/Button.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b4f9d3dd1cf4b0c40a62e9dbddc6db42 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 2100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Art/Materials/Interactables/Podium.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e02e9cd4d80279e4e811de380894f94e 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 2100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Art/Materials/Interactables/PressedButton.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 6 6 | m_ObjectHideFlags: 0 7 | m_CorrespondingSourceObject: {fileID: 0} 8 | m_PrefabInstance: {fileID: 0} 9 | m_PrefabAsset: {fileID: 0} 10 | m_Name: PressedButton 11 | m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} 12 | m_ShaderKeywords: _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A 13 | m_LightmapFlags: 4 14 | m_EnableInstancingVariants: 0 15 | m_DoubleSidedGI: 0 16 | m_CustomRenderQueue: -1 17 | stringTagMap: {} 18 | disabledShaderPasses: [] 19 | m_SavedProperties: 20 | serializedVersion: 3 21 | m_TexEnvs: 22 | - _BumpMap: 23 | m_Texture: {fileID: 0} 24 | m_Scale: {x: 1, y: 1} 25 | m_Offset: {x: 0, y: 0} 26 | - _DetailAlbedoMap: 27 | m_Texture: {fileID: 0} 28 | m_Scale: {x: 1, y: 1} 29 | m_Offset: {x: 0, y: 0} 30 | - _DetailMask: 31 | m_Texture: {fileID: 0} 32 | m_Scale: {x: 1, y: 1} 33 | m_Offset: {x: 0, y: 0} 34 | - _DetailNormalMap: 35 | m_Texture: {fileID: 0} 36 | m_Scale: {x: 1, y: 1} 37 | m_Offset: {x: 0, y: 0} 38 | - _EmissionMap: 39 | m_Texture: {fileID: 0} 40 | m_Scale: {x: 1, y: 1} 41 | m_Offset: {x: 0, y: 0} 42 | - _MainTex: 43 | m_Texture: {fileID: 0} 44 | m_Scale: {x: 1, y: 1} 45 | m_Offset: {x: 0, y: 0} 46 | - _MetallicGlossMap: 47 | m_Texture: {fileID: 0} 48 | m_Scale: {x: 1, y: 1} 49 | m_Offset: {x: 0, y: 0} 50 | - _OcclusionMap: 51 | m_Texture: {fileID: 0} 52 | m_Scale: {x: 1, y: 1} 53 | m_Offset: {x: 0, y: 0} 54 | - _ParallaxMap: 55 | m_Texture: {fileID: 0} 56 | m_Scale: {x: 1, y: 1} 57 | m_Offset: {x: 0, y: 0} 58 | m_Floats: 59 | - _BumpScale: 1 60 | - _Cutoff: 0.5 61 | - _DetailNormalMapScale: 1 62 | - _DstBlend: 0 63 | - _GlossMapScale: 0.5 64 | - _Glossiness: 0.5 65 | - _GlossyReflections: 1 66 | - _Metallic: 0 67 | - _Mode: 0 68 | - _OcclusionStrength: 1 69 | - _Parallax: 0.02 70 | - _SmoothnessTextureChannel: 1 71 | - _SpecularHighlights: 1 72 | - _SrcBlend: 1 73 | - _UVSec: 0 74 | - _ZWrite: 1 75 | m_Colors: 76 | - _Color: {r: 0.6792453, g: 0, b: 0, a: 1} 77 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} 78 | m_BuildTextureStacks: [] 79 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Art/Materials/Interactables/PressedButton.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 23d1046299a82b74692a994e67fd6bc5 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 2100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Art/Materials/Interactables/TeleporterLight.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 61d7fc116abf3ed44909c61f50863cf4 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 2100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Art/Materials/KhakiWall.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 6 6 | m_ObjectHideFlags: 0 7 | m_CorrespondingSourceObject: {fileID: 0} 8 | m_PrefabInstance: {fileID: 0} 9 | m_PrefabAsset: {fileID: 0} 10 | m_Name: KhakiWall 11 | m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} 12 | m_ShaderKeywords: _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A 13 | m_LightmapFlags: 4 14 | m_EnableInstancingVariants: 0 15 | m_DoubleSidedGI: 0 16 | m_CustomRenderQueue: -1 17 | stringTagMap: {} 18 | disabledShaderPasses: [] 19 | m_SavedProperties: 20 | serializedVersion: 3 21 | m_TexEnvs: 22 | - _BumpMap: 23 | m_Texture: {fileID: 0} 24 | m_Scale: {x: 1, y: 1} 25 | m_Offset: {x: 0, y: 0} 26 | - _DetailAlbedoMap: 27 | m_Texture: {fileID: 0} 28 | m_Scale: {x: 1, y: 1} 29 | m_Offset: {x: 0, y: 0} 30 | - _DetailMask: 31 | m_Texture: {fileID: 0} 32 | m_Scale: {x: 1, y: 1} 33 | m_Offset: {x: 0, y: 0} 34 | - _DetailNormalMap: 35 | m_Texture: {fileID: 0} 36 | m_Scale: {x: 1, y: 1} 37 | m_Offset: {x: 0, y: 0} 38 | - _EmissionMap: 39 | m_Texture: {fileID: 0} 40 | m_Scale: {x: 1, y: 1} 41 | m_Offset: {x: 0, y: 0} 42 | - _MainTex: 43 | m_Texture: {fileID: 0} 44 | m_Scale: {x: 1, y: 1} 45 | m_Offset: {x: 0, y: 0} 46 | - _MetallicGlossMap: 47 | m_Texture: {fileID: 0} 48 | m_Scale: {x: 1, y: 1} 49 | m_Offset: {x: 0, y: 0} 50 | - _OcclusionMap: 51 | m_Texture: {fileID: 0} 52 | m_Scale: {x: 1, y: 1} 53 | m_Offset: {x: 0, y: 0} 54 | - _ParallaxMap: 55 | m_Texture: {fileID: 0} 56 | m_Scale: {x: 1, y: 1} 57 | m_Offset: {x: 0, y: 0} 58 | m_Floats: 59 | - _BumpScale: 1 60 | - _Cutoff: 0.5 61 | - _DetailNormalMapScale: 1 62 | - _DstBlend: 0 63 | - _GlossMapScale: 0 64 | - _Glossiness: 0.5 65 | - _GlossyReflections: 1 66 | - _Metallic: 0 67 | - _Mode: 0 68 | - _OcclusionStrength: 1 69 | - _Parallax: 0.02 70 | - _SmoothnessTextureChannel: 1 71 | - _SpecularHighlights: 1 72 | - _SrcBlend: 1 73 | - _UVSec: 0 74 | - _ZWrite: 1 75 | m_Colors: 76 | - _Color: {r: 1, g: 0.9555529, b: 0.7122642, a: 1} 77 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} 78 | m_BuildTextureStacks: [] 79 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Art/Materials/KhakiWall.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4347fe77e349cff4586f2ab6bbb2bb9a 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 2100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Art/Materials/Players.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8dafc52d3f59f164f934d20cc9dd6374 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Art/Materials/Players/Hat.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 6 6 | m_ObjectHideFlags: 0 7 | m_CorrespondingSourceObject: {fileID: 0} 8 | m_PrefabInstance: {fileID: 0} 9 | m_PrefabAsset: {fileID: 0} 10 | m_Name: Hat 11 | m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} 12 | m_ShaderKeywords: _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A 13 | m_LightmapFlags: 4 14 | m_EnableInstancingVariants: 0 15 | m_DoubleSidedGI: 0 16 | m_CustomRenderQueue: -1 17 | stringTagMap: {} 18 | disabledShaderPasses: [] 19 | m_SavedProperties: 20 | serializedVersion: 3 21 | m_TexEnvs: 22 | - _BumpMap: 23 | m_Texture: {fileID: 0} 24 | m_Scale: {x: 1, y: 1} 25 | m_Offset: {x: 0, y: 0} 26 | - _DetailAlbedoMap: 27 | m_Texture: {fileID: 0} 28 | m_Scale: {x: 1, y: 1} 29 | m_Offset: {x: 0, y: 0} 30 | - _DetailMask: 31 | m_Texture: {fileID: 0} 32 | m_Scale: {x: 1, y: 1} 33 | m_Offset: {x: 0, y: 0} 34 | - _DetailNormalMap: 35 | m_Texture: {fileID: 0} 36 | m_Scale: {x: 1, y: 1} 37 | m_Offset: {x: 0, y: 0} 38 | - _EmissionMap: 39 | m_Texture: {fileID: 0} 40 | m_Scale: {x: 1, y: 1} 41 | m_Offset: {x: 0, y: 0} 42 | - _MainTex: 43 | m_Texture: {fileID: 0} 44 | m_Scale: {x: 1, y: 1} 45 | m_Offset: {x: 0, y: 0} 46 | - _MetallicGlossMap: 47 | m_Texture: {fileID: 0} 48 | m_Scale: {x: 1, y: 1} 49 | m_Offset: {x: 0, y: 0} 50 | - _OcclusionMap: 51 | m_Texture: {fileID: 0} 52 | m_Scale: {x: 1, y: 1} 53 | m_Offset: {x: 0, y: 0} 54 | - _ParallaxMap: 55 | m_Texture: {fileID: 0} 56 | m_Scale: {x: 1, y: 1} 57 | m_Offset: {x: 0, y: 0} 58 | m_Floats: 59 | - _BumpScale: 1 60 | - _Cutoff: 0.5 61 | - _DetailNormalMapScale: 1 62 | - _DstBlend: 0 63 | - _GlossMapScale: 0 64 | - _Glossiness: 0.5 65 | - _GlossyReflections: 1 66 | - _Metallic: 0 67 | - _Mode: 0 68 | - _OcclusionStrength: 1 69 | - _Parallax: 0.02 70 | - _SmoothnessTextureChannel: 1 71 | - _SpecularHighlights: 1 72 | - _SrcBlend: 1 73 | - _UVSec: 0 74 | - _ZWrite: 1 75 | m_Colors: 76 | - _Color: {r: 1, g: 0.8697396, b: 0.48584908, a: 1} 77 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} 78 | m_BuildTextureStacks: [] 79 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Art/Materials/Players/Hat.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f67991c9f80ef954caafe24d6125fffa 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 2100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Art/Materials/Players/Pants.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 6 6 | m_ObjectHideFlags: 0 7 | m_CorrespondingSourceObject: {fileID: 0} 8 | m_PrefabInstance: {fileID: 0} 9 | m_PrefabAsset: {fileID: 0} 10 | m_Name: Pants 11 | m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} 12 | m_ShaderKeywords: _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A 13 | m_LightmapFlags: 4 14 | m_EnableInstancingVariants: 0 15 | m_DoubleSidedGI: 0 16 | m_CustomRenderQueue: -1 17 | stringTagMap: {} 18 | disabledShaderPasses: [] 19 | m_SavedProperties: 20 | serializedVersion: 3 21 | m_TexEnvs: 22 | - _BumpMap: 23 | m_Texture: {fileID: 0} 24 | m_Scale: {x: 1, y: 1} 25 | m_Offset: {x: 0, y: 0} 26 | - _DetailAlbedoMap: 27 | m_Texture: {fileID: 0} 28 | m_Scale: {x: 1, y: 1} 29 | m_Offset: {x: 0, y: 0} 30 | - _DetailMask: 31 | m_Texture: {fileID: 0} 32 | m_Scale: {x: 1, y: 1} 33 | m_Offset: {x: 0, y: 0} 34 | - _DetailNormalMap: 35 | m_Texture: {fileID: 0} 36 | m_Scale: {x: 1, y: 1} 37 | m_Offset: {x: 0, y: 0} 38 | - _EmissionMap: 39 | m_Texture: {fileID: 0} 40 | m_Scale: {x: 1, y: 1} 41 | m_Offset: {x: 0, y: 0} 42 | - _MainTex: 43 | m_Texture: {fileID: 0} 44 | m_Scale: {x: 1, y: 1} 45 | m_Offset: {x: 0, y: 0} 46 | - _MetallicGlossMap: 47 | m_Texture: {fileID: 0} 48 | m_Scale: {x: 1, y: 1} 49 | m_Offset: {x: 0, y: 0} 50 | - _OcclusionMap: 51 | m_Texture: {fileID: 0} 52 | m_Scale: {x: 1, y: 1} 53 | m_Offset: {x: 0, y: 0} 54 | - _ParallaxMap: 55 | m_Texture: {fileID: 0} 56 | m_Scale: {x: 1, y: 1} 57 | m_Offset: {x: 0, y: 0} 58 | m_Floats: 59 | - _BumpScale: 1 60 | - _Cutoff: 0.5 61 | - _DetailNormalMapScale: 1 62 | - _DstBlend: 0 63 | - _GlossMapScale: 0 64 | - _Glossiness: 0.5 65 | - _GlossyReflections: 1 66 | - _Metallic: 0 67 | - _Mode: 0 68 | - _OcclusionStrength: 1 69 | - _Parallax: 0.02 70 | - _SmoothnessTextureChannel: 1 71 | - _SpecularHighlights: 1 72 | - _SrcBlend: 1 73 | - _UVSec: 0 74 | - _ZWrite: 1 75 | m_Colors: 76 | - _Color: {r: 0.19379672, g: 0.2736469, b: 0.6320754, a: 1} 77 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} 78 | m_BuildTextureStacks: [] 79 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Art/Materials/Players/Pants.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: acfa2cab345bb3748921b6e21148ce68 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 2100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Art/Materials/Players/Shirt.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 6 6 | m_ObjectHideFlags: 0 7 | m_CorrespondingSourceObject: {fileID: 0} 8 | m_PrefabInstance: {fileID: 0} 9 | m_PrefabAsset: {fileID: 0} 10 | m_Name: Shirt 11 | m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} 12 | m_ShaderKeywords: _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A 13 | m_LightmapFlags: 4 14 | m_EnableInstancingVariants: 0 15 | m_DoubleSidedGI: 0 16 | m_CustomRenderQueue: -1 17 | stringTagMap: {} 18 | disabledShaderPasses: [] 19 | m_SavedProperties: 20 | serializedVersion: 3 21 | m_TexEnvs: 22 | - _BumpMap: 23 | m_Texture: {fileID: 0} 24 | m_Scale: {x: 1, y: 1} 25 | m_Offset: {x: 0, y: 0} 26 | - _DetailAlbedoMap: 27 | m_Texture: {fileID: 0} 28 | m_Scale: {x: 1, y: 1} 29 | m_Offset: {x: 0, y: 0} 30 | - _DetailMask: 31 | m_Texture: {fileID: 0} 32 | m_Scale: {x: 1, y: 1} 33 | m_Offset: {x: 0, y: 0} 34 | - _DetailNormalMap: 35 | m_Texture: {fileID: 0} 36 | m_Scale: {x: 1, y: 1} 37 | m_Offset: {x: 0, y: 0} 38 | - _EmissionMap: 39 | m_Texture: {fileID: 0} 40 | m_Scale: {x: 1, y: 1} 41 | m_Offset: {x: 0, y: 0} 42 | - _MainTex: 43 | m_Texture: {fileID: 0} 44 | m_Scale: {x: 1, y: 1} 45 | m_Offset: {x: 0, y: 0} 46 | - _MetallicGlossMap: 47 | m_Texture: {fileID: 0} 48 | m_Scale: {x: 1, y: 1} 49 | m_Offset: {x: 0, y: 0} 50 | - _OcclusionMap: 51 | m_Texture: {fileID: 0} 52 | m_Scale: {x: 1, y: 1} 53 | m_Offset: {x: 0, y: 0} 54 | - _ParallaxMap: 55 | m_Texture: {fileID: 0} 56 | m_Scale: {x: 1, y: 1} 57 | m_Offset: {x: 0, y: 0} 58 | m_Floats: 59 | - _BumpScale: 1 60 | - _Cutoff: 0.5 61 | - _DetailNormalMapScale: 1 62 | - _DstBlend: 0 63 | - _GlossMapScale: 0 64 | - _Glossiness: 0.5 65 | - _GlossyReflections: 1 66 | - _Metallic: 0 67 | - _Mode: 0 68 | - _OcclusionStrength: 1 69 | - _Parallax: 0.02 70 | - _SmoothnessTextureChannel: 1 71 | - _SpecularHighlights: 1 72 | - _SrcBlend: 1 73 | - _UVSec: 0 74 | - _ZWrite: 1 75 | m_Colors: 76 | - _Color: {r: 0, g: 0, b: 0, a: 1} 77 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} 78 | m_BuildTextureStacks: [] 79 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Art/Materials/Players/Shirt.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8ad11f9fa19f20943b80fabe4baa6675 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 2100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Art/Materials/Players/Skin.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 6 6 | m_ObjectHideFlags: 0 7 | m_CorrespondingSourceObject: {fileID: 0} 8 | m_PrefabInstance: {fileID: 0} 9 | m_PrefabAsset: {fileID: 0} 10 | m_Name: Skin 11 | m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} 12 | m_ShaderKeywords: _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A 13 | m_LightmapFlags: 4 14 | m_EnableInstancingVariants: 0 15 | m_DoubleSidedGI: 0 16 | m_CustomRenderQueue: -1 17 | stringTagMap: {} 18 | disabledShaderPasses: [] 19 | m_SavedProperties: 20 | serializedVersion: 3 21 | m_TexEnvs: 22 | - _BumpMap: 23 | m_Texture: {fileID: 0} 24 | m_Scale: {x: 1, y: 1} 25 | m_Offset: {x: 0, y: 0} 26 | - _DetailAlbedoMap: 27 | m_Texture: {fileID: 0} 28 | m_Scale: {x: 1, y: 1} 29 | m_Offset: {x: 0, y: 0} 30 | - _DetailMask: 31 | m_Texture: {fileID: 0} 32 | m_Scale: {x: 1, y: 1} 33 | m_Offset: {x: 0, y: 0} 34 | - _DetailNormalMap: 35 | m_Texture: {fileID: 0} 36 | m_Scale: {x: 1, y: 1} 37 | m_Offset: {x: 0, y: 0} 38 | - _EmissionMap: 39 | m_Texture: {fileID: 0} 40 | m_Scale: {x: 1, y: 1} 41 | m_Offset: {x: 0, y: 0} 42 | - _MainTex: 43 | m_Texture: {fileID: 0} 44 | m_Scale: {x: 1, y: 1} 45 | m_Offset: {x: 0, y: 0} 46 | - _MetallicGlossMap: 47 | m_Texture: {fileID: 0} 48 | m_Scale: {x: 1, y: 1} 49 | m_Offset: {x: 0, y: 0} 50 | - _OcclusionMap: 51 | m_Texture: {fileID: 0} 52 | m_Scale: {x: 1, y: 1} 53 | m_Offset: {x: 0, y: 0} 54 | - _ParallaxMap: 55 | m_Texture: {fileID: 0} 56 | m_Scale: {x: 1, y: 1} 57 | m_Offset: {x: 0, y: 0} 58 | m_Floats: 59 | - _BumpScale: 1 60 | - _Cutoff: 0.5 61 | - _DetailNormalMapScale: 1 62 | - _DstBlend: 0 63 | - _GlossMapScale: 0 64 | - _Glossiness: 0.5 65 | - _GlossyReflections: 1 66 | - _Metallic: 0 67 | - _Mode: 0 68 | - _OcclusionStrength: 1 69 | - _Parallax: 0.02 70 | - _SmoothnessTextureChannel: 1 71 | - _SpecularHighlights: 1 72 | - _SrcBlend: 1 73 | - _UVSec: 0 74 | - _ZWrite: 1 75 | m_Colors: 76 | - _Color: {r: 0.5377358, g: 0.3488018, b: 0.18516374, a: 1} 77 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} 78 | m_BuildTextureStacks: [] 79 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Art/Materials/Players/Skin.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e15232dcebd396c44ad49b783258798d 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 2100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Art/Materials/PurpleCarpet.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 6 6 | m_ObjectHideFlags: 0 7 | m_CorrespondingSourceObject: {fileID: 0} 8 | m_PrefabInstance: {fileID: 0} 9 | m_PrefabAsset: {fileID: 0} 10 | m_Name: PurpleCarpet 11 | m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} 12 | m_ShaderKeywords: _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A 13 | m_LightmapFlags: 4 14 | m_EnableInstancingVariants: 0 15 | m_DoubleSidedGI: 0 16 | m_CustomRenderQueue: -1 17 | stringTagMap: {} 18 | disabledShaderPasses: [] 19 | m_SavedProperties: 20 | serializedVersion: 3 21 | m_TexEnvs: 22 | - _BumpMap: 23 | m_Texture: {fileID: 0} 24 | m_Scale: {x: 1, y: 1} 25 | m_Offset: {x: 0, y: 0} 26 | - _DetailAlbedoMap: 27 | m_Texture: {fileID: 0} 28 | m_Scale: {x: 1, y: 1} 29 | m_Offset: {x: 0, y: 0} 30 | - _DetailMask: 31 | m_Texture: {fileID: 0} 32 | m_Scale: {x: 1, y: 1} 33 | m_Offset: {x: 0, y: 0} 34 | - _DetailNormalMap: 35 | m_Texture: {fileID: 0} 36 | m_Scale: {x: 1, y: 1} 37 | m_Offset: {x: 0, y: 0} 38 | - _EmissionMap: 39 | m_Texture: {fileID: 0} 40 | m_Scale: {x: 1, y: 1} 41 | m_Offset: {x: 0, y: 0} 42 | - _MainTex: 43 | m_Texture: {fileID: 0} 44 | m_Scale: {x: 1, y: 1} 45 | m_Offset: {x: 0, y: 0} 46 | - _MetallicGlossMap: 47 | m_Texture: {fileID: 0} 48 | m_Scale: {x: 1, y: 1} 49 | m_Offset: {x: 0, y: 0} 50 | - _OcclusionMap: 51 | m_Texture: {fileID: 0} 52 | m_Scale: {x: 1, y: 1} 53 | m_Offset: {x: 0, y: 0} 54 | - _ParallaxMap: 55 | m_Texture: {fileID: 0} 56 | m_Scale: {x: 1, y: 1} 57 | m_Offset: {x: 0, y: 0} 58 | m_Floats: 59 | - _BumpScale: 1 60 | - _Cutoff: 0.5 61 | - _DetailNormalMapScale: 1 62 | - _DstBlend: 0 63 | - _GlossMapScale: 0 64 | - _Glossiness: 0 65 | - _GlossyReflections: 1 66 | - _Metallic: 0 67 | - _Mode: 0 68 | - _OcclusionStrength: 1 69 | - _Parallax: 0.02 70 | - _SmoothnessTextureChannel: 1 71 | - _SpecularHighlights: 1 72 | - _SrcBlend: 1 73 | - _UVSec: 0 74 | - _ZWrite: 1 75 | m_Colors: 76 | - _Color: {r: 0.254717, g: 0, b: 0.1236834, a: 1} 77 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} 78 | m_BuildTextureStacks: [] 79 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Art/Materials/PurpleCarpet.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: edd0f7d054c153b4983cc5666995377d 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 2100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Art/Materials/PurpleWall.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 6 6 | m_ObjectHideFlags: 0 7 | m_CorrespondingSourceObject: {fileID: 0} 8 | m_PrefabInstance: {fileID: 0} 9 | m_PrefabAsset: {fileID: 0} 10 | m_Name: PurpleWall 11 | m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} 12 | m_ShaderKeywords: _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A 13 | m_LightmapFlags: 4 14 | m_EnableInstancingVariants: 0 15 | m_DoubleSidedGI: 0 16 | m_CustomRenderQueue: -1 17 | stringTagMap: {} 18 | disabledShaderPasses: [] 19 | m_SavedProperties: 20 | serializedVersion: 3 21 | m_TexEnvs: 22 | - _BumpMap: 23 | m_Texture: {fileID: 0} 24 | m_Scale: {x: 1, y: 1} 25 | m_Offset: {x: 0, y: 0} 26 | - _DetailAlbedoMap: 27 | m_Texture: {fileID: 0} 28 | m_Scale: {x: 1, y: 1} 29 | m_Offset: {x: 0, y: 0} 30 | - _DetailMask: 31 | m_Texture: {fileID: 0} 32 | m_Scale: {x: 1, y: 1} 33 | m_Offset: {x: 0, y: 0} 34 | - _DetailNormalMap: 35 | m_Texture: {fileID: 0} 36 | m_Scale: {x: 1, y: 1} 37 | m_Offset: {x: 0, y: 0} 38 | - _EmissionMap: 39 | m_Texture: {fileID: 0} 40 | m_Scale: {x: 1, y: 1} 41 | m_Offset: {x: 0, y: 0} 42 | - _MainTex: 43 | m_Texture: {fileID: 0} 44 | m_Scale: {x: 1, y: 1} 45 | m_Offset: {x: 0, y: 0} 46 | - _MetallicGlossMap: 47 | m_Texture: {fileID: 0} 48 | m_Scale: {x: 1, y: 1} 49 | m_Offset: {x: 0, y: 0} 50 | - _OcclusionMap: 51 | m_Texture: {fileID: 0} 52 | m_Scale: {x: 1, y: 1} 53 | m_Offset: {x: 0, y: 0} 54 | - _ParallaxMap: 55 | m_Texture: {fileID: 0} 56 | m_Scale: {x: 1, y: 1} 57 | m_Offset: {x: 0, y: 0} 58 | m_Floats: 59 | - _BumpScale: 1 60 | - _Cutoff: 0.5 61 | - _DetailNormalMapScale: 1 62 | - _DstBlend: 0 63 | - _GlossMapScale: 0 64 | - _Glossiness: 0.5 65 | - _GlossyReflections: 1 66 | - _Metallic: 0 67 | - _Mode: 0 68 | - _OcclusionStrength: 1 69 | - _Parallax: 0.02 70 | - _SmoothnessTextureChannel: 1 71 | - _SpecularHighlights: 1 72 | - _SrcBlend: 1 73 | - _UVSec: 0 74 | - _ZWrite: 1 75 | m_Colors: 76 | - _Color: {r: 0.79824364, g: 0.4575472, b: 1, a: 1} 77 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} 78 | m_BuildTextureStacks: [] 79 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Art/Materials/PurpleWall.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 877fe1697257d1940a87edea1042a5d6 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 2100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Art/Materials/Void.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 6 6 | m_ObjectHideFlags: 0 7 | m_CorrespondingSourceObject: {fileID: 0} 8 | m_PrefabInstance: {fileID: 0} 9 | m_PrefabAsset: {fileID: 0} 10 | m_Name: Void 11 | m_Shader: {fileID: 10755, guid: 0000000000000000f000000000000000, type: 0} 12 | m_ShaderKeywords: _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A 13 | m_LightmapFlags: 4 14 | m_EnableInstancingVariants: 0 15 | m_DoubleSidedGI: 0 16 | m_CustomRenderQueue: -1 17 | stringTagMap: {} 18 | disabledShaderPasses: [] 19 | m_SavedProperties: 20 | serializedVersion: 3 21 | m_TexEnvs: 22 | - _BumpMap: 23 | m_Texture: {fileID: 0} 24 | m_Scale: {x: 1, y: 1} 25 | m_Offset: {x: 0, y: 0} 26 | - _DetailAlbedoMap: 27 | m_Texture: {fileID: 0} 28 | m_Scale: {x: 1, y: 1} 29 | m_Offset: {x: 0, y: 0} 30 | - _DetailMask: 31 | m_Texture: {fileID: 0} 32 | m_Scale: {x: 1, y: 1} 33 | m_Offset: {x: 0, y: 0} 34 | - _DetailNormalMap: 35 | m_Texture: {fileID: 0} 36 | m_Scale: {x: 1, y: 1} 37 | m_Offset: {x: 0, y: 0} 38 | - _EmissionMap: 39 | m_Texture: {fileID: 0} 40 | m_Scale: {x: 1, y: 1} 41 | m_Offset: {x: 0, y: 0} 42 | - _MainTex: 43 | m_Texture: {fileID: 0} 44 | m_Scale: {x: 1, y: 1} 45 | m_Offset: {x: 0, y: 0} 46 | - _MetallicGlossMap: 47 | m_Texture: {fileID: 0} 48 | m_Scale: {x: 1, y: 1} 49 | m_Offset: {x: 0, y: 0} 50 | - _OcclusionMap: 51 | m_Texture: {fileID: 0} 52 | m_Scale: {x: 1, y: 1} 53 | m_Offset: {x: 0, y: 0} 54 | - _ParallaxMap: 55 | m_Texture: {fileID: 0} 56 | m_Scale: {x: 1, y: 1} 57 | m_Offset: {x: 0, y: 0} 58 | m_Floats: 59 | - _BumpScale: 1 60 | - _Cutoff: 0.5 61 | - _DetailNormalMapScale: 1 62 | - _DstBlend: 0 63 | - _GlossMapScale: 0 64 | - _Glossiness: 0 65 | - _GlossyReflections: 1 66 | - _Metallic: 0 67 | - _Mode: 0 68 | - _OcclusionStrength: 1 69 | - _Parallax: 0.02 70 | - _SmoothnessTextureChannel: 1 71 | - _SpecularHighlights: 1 72 | - _SrcBlend: 1 73 | - _UVSec: 0 74 | - _ZWrite: 1 75 | m_Colors: 76 | - _Color: {r: 0, g: 0, b: 0, a: 1} 77 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} 78 | m_BuildTextureStacks: [] 79 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Art/Materials/Void.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: db4bd3e7c36fc0a429bf9c7ff439bded 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 2100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Art/Textures.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6af6e07244214b241ae0709ff0dfc97f 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Art/Textures/AvatarPreviewTexture.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!86 &8600000 4 | CustomRenderTexture: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_Name: AvatarPreviewTexture 10 | m_ImageContentsHash: 11 | serializedVersion: 2 12 | Hash: 00000000000000000000000000000000 13 | m_ForcedFallbackFormat: 4 14 | m_DownscaleFallback: 0 15 | m_IsAlphaChannelOptional: 0 16 | serializedVersion: 3 17 | m_Width: 256 18 | m_Height: 512 19 | m_AntiAliasing: 1 20 | m_MipCount: -1 21 | m_DepthFormat: 2 22 | m_ColorFormat: 8 23 | m_MipMap: 0 24 | m_GenerateMips: 1 25 | m_SRGB: 0 26 | m_UseDynamicScale: 0 27 | m_BindMS: 0 28 | m_EnableCompatibleFormat: 1 29 | m_TextureSettings: 30 | serializedVersion: 2 31 | m_FilterMode: 1 32 | m_Aniso: 0 33 | m_MipBias: 0 34 | m_WrapU: 1 35 | m_WrapV: 1 36 | m_WrapW: 1 37 | m_Dimension: 2 38 | m_VolumeDepth: 1 39 | m_Material: {fileID: 0} 40 | m_InitSource: 0 41 | m_InitMaterial: {fileID: 0} 42 | m_InitColor: {r: 1, g: 1, b: 1, a: 1} 43 | m_InitTexture: {fileID: 0} 44 | m_UpdateMode: 0 45 | m_InitializationMode: 2 46 | m_UpdateZoneSpace: 0 47 | m_CurrentUpdateZoneSpace: 0 48 | m_UpdateZones: [] 49 | m_UpdatePeriod: 0 50 | m_ShaderPass: 0 51 | m_CubemapFaceMask: 4294967295 52 | m_DoubleBuffered: 0 53 | m_WrapUpdateZones: 0 54 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Art/Textures/AvatarPreviewTexture.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6f3015f8e16c7804dadb5fde3fe32ca4 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 8600000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Art/Textures/Back Arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colyseus/unity-demo-mmo/b0e2d04bb287b47646d0afb87c4e46b0181d27c6/ColyseusTechDemo-MMO/Assets/Art/Textures/Back Arrow.png -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Art/Textures/Compass Render Texture.renderTexture: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!84 &8400000 4 | RenderTexture: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_Name: Compass Render Texture 10 | m_ImageContentsHash: 11 | serializedVersion: 2 12 | Hash: 00000000000000000000000000000000 13 | m_ForcedFallbackFormat: 4 14 | m_DownscaleFallback: 0 15 | m_IsAlphaChannelOptional: 0 16 | serializedVersion: 3 17 | m_Width: 512 18 | m_Height: 512 19 | m_AntiAliasing: 4 20 | m_MipCount: -1 21 | m_DepthFormat: 2 22 | m_ColorFormat: 8 23 | m_MipMap: 0 24 | m_GenerateMips: 1 25 | m_SRGB: 0 26 | m_UseDynamicScale: 0 27 | m_BindMS: 0 28 | m_EnableCompatibleFormat: 0 29 | m_TextureSettings: 30 | serializedVersion: 2 31 | m_FilterMode: 1 32 | m_Aniso: 0 33 | m_MipBias: 0 34 | m_WrapU: 1 35 | m_WrapV: 1 36 | m_WrapW: 1 37 | m_Dimension: 2 38 | m_VolumeDepth: 1 39 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Art/Textures/Compass Render Texture.renderTexture.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 520a299eb68302f40b699c5cd61b4060 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 8400000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Art/Textures/DarkBlueGradient_BG.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colyseus/unity-demo-mmo/b0e2d04bb287b47646d0afb87c4e46b0181d27c6/ColyseusTechDemo-MMO/Assets/Art/Textures/DarkBlueGradient_BG.png -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Art/Textures/DarkgreyHalftone_BG.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colyseus/unity-demo-mmo/b0e2d04bb287b47646d0afb87c4e46b0181d27c6/ColyseusTechDemo-MMO/Assets/Art/Textures/DarkgreyHalftone_BG.png -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Art/Textures/Spinner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colyseus/unity-demo-mmo/b0e2d04bb287b47646d0afb87c4e46b0181d27c6/ColyseusTechDemo-MMO/Assets/Art/Textures/Spinner.png -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Prefabs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f2897455f3a54444f9b03f27e1be175c 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Prefabs/EntityView.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e54bb44d9b5a7df4cb6911496f541456 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Prefabs/Environment.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e4a68e751766dfa44bced7b4bd768525 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Prefabs/Environment/Exit.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b6f53391c74c108468ec10dc3cca9c0e 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Prefabs/Environment/Room_DoubleEntrance.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 078597191653d9e4fbc410397d25c79d 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Prefabs/Environment/Room_SingleEntrance.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c2af9cef11dca134885ca35207cc5bc5 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Prefabs/Environment/Transition Room.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d7854d6545f4ec849bf0d0179d2c61ea 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Prefabs/Interactables.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5bf19a15fe3124e49ac1aca0d3e9165a 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Prefabs/Interactables/CoinOp.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e5fad9f2a16f5614bba21ce2a94e124b 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Prefabs/Interactables/FX Swirl.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9f522a3ce5e4f9d4689cb17a529025a4 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Prefabs/Interactables/InstructionsText.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7fb5090768247dd49bdbbb68be0730e8 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Prefabs/Interactables/InteractableButton.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f7a20870d3c63634e85b8f431803f9b6 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Prefabs/Interactables/Teleporter.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 70ab6249e57dedc4887e299a52753ae2 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Prefabs/Model.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0cd0d0c981e509444b6fa2799be86f27 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Prefabs/Model/Model.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 80659f36473cea34299a77b932c68a56 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Prefabs/UI.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: edc648e600dad2a4a8c3e23b9c908807 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Prefabs/UI/AvatarCustomization.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 08304efa988892145b725b569728c5a2 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Prefabs/UI/ChatInput.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5c20fdcd403786d4b875366d463fae1b 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Prefabs/UI/ChatMessageDisplay.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5aa656455bcb56442922e5e1ba9bd14e 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Prefabs/UI/ColorSelector.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 40957eca007d9854887ead43a1ee84d1 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Prefabs/UI/Compass.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9c4058823d266804fb47ee5672266be7 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Prefabs/UI/Controls.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0be901b99faa12845a4c7a7fb05831f1 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Prefabs/UI/GameUI.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 832ba922d724bf943b042e894fcc85b8 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Prefabs/UI/Player Tag.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d455e9be534400c45ab250b3d9831a40 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Resources.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e8e9cbd53c830b84384bfd26206143c5 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Resources/GridPositions.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8a99b6c306c3aa14593c76b0f9f2a36a 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Resources/GridPositions/-1x-1.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1e68c5c67f8dd9b439689a24e5df66f9 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Resources/GridPositions/-1x-3.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 11ce8fc5b5ef3e045be8147117ac5a21 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Resources/GridPositions/-1x0.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7e046bf35680a584987f7bfcf72737cf 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Resources/GridPositions/-1x1.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8a4599f61487f324684c89eeea16e374 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Resources/GridPositions/-1x3.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f60a0f9f31e345846a34593b3e92452e 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Resources/GridPositions/-2x-2.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1701426fcf9376943a19866715860240 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Resources/GridPositions/-2x2.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d81670696fe2524479675f5ecb9e5503 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Resources/GridPositions/-3x-1.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 48f39f6b85363184eaa46ec4f7ec8a14 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Resources/GridPositions/-3x-3.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 06d6cf30275ccc24cb48f7da529de2f4 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Resources/GridPositions/-3x0.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2966c055aefa4a945b17f5f53c348dd3 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Resources/GridPositions/-3x1.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8ad7e3a55fa4c3748883e01f0007e151 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Resources/GridPositions/-3x3.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6e06b6be4bc86ff48b6fd0116a0fefa5 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Resources/GridPositions/0x-1.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2291ec24413891e49b698541c0fe2d76 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Resources/GridPositions/0x-3.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e42d86f15ffebdd4d9a43f03d8c671f4 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Resources/GridPositions/0x0.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 550f3096c5f89fc46af807de053de151 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Resources/GridPositions/0x1.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8b5a2998027e9d749a861bf8c53be748 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Resources/GridPositions/0x3.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ab3b4aa00ee09c44b9735b582fe5a3ae 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Resources/GridPositions/1x-1.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f15a6f6a72e616c41a32474a9a8985e7 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Resources/GridPositions/1x-3.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a2d8b47bd97b7c84db75cb51169bcf33 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Resources/GridPositions/1x0.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2b3f86a5e41c8f048b4cf89c4701b014 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Resources/GridPositions/1x1.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 31a8ae603055bcc49b7916a44df3cd55 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Resources/GridPositions/1x3.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e34208f1a1e78d34799bfcee7f89310c 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Resources/GridPositions/2x-2.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d7b6ab300406b3f44863302a84b17d8b 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Resources/GridPositions/2x2.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8741f0f07a7c7d846ab40b45a1254f17 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Resources/GridPositions/3x-1.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a447f7ca96922eb41acc4492a11c827e 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Resources/GridPositions/3x-3.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ef586fee7a77ee642acbd6b489f0e4d6 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Resources/GridPositions/3x0.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d3be23fc8f00b594dbdad3ecc3a284ae 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Resources/GridPositions/3x1.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f1368cc653a41464e8d190ecc9424e94 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Resources/GridPositions/3x3.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 18178a4d0a667044fb68cf0278a8c192 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Scenes.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 443fa9f71e78ebf4690778d0d1784a0e 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Scenes/MMOLoginScene.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 289aa79521b652d4a9163d8803b209ef 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Scenes/TowerScene.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9fc0d4010bbf28b4594072e72b8655ab 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Scripts.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c7b16ef5542d3cd47a81b3afae4df986 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Scripts/CameraController.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f044b3926bbce964fb2de65a0c81030d 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Scripts/Editor.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 87668bc2c46312c46831c3b6c1ea37ce 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Scripts/Editor/TransitionRoomEditor.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEditor; 4 | using UnityEngine; 5 | 6 | [CustomEditor(typeof(TransitionRoom))] 7 | public class TransitionRoomEditor : Editor 8 | { 9 | public override void OnInspectorGUI() 10 | { 11 | base.OnInspectorGUI(); 12 | 13 | if (Application.isPlaying == false) 14 | { 15 | return; 16 | } 17 | 18 | GUILayout.Space(40); 19 | 20 | TransitionRoom tR = target as TransitionRoom; 21 | 22 | if (GUILayout.Button("Open Entry Door")) 23 | { 24 | tR.OpenDoor(true, null); 25 | } 26 | else if (GUILayout.Button("Close Entry Door")) 27 | { 28 | tR.CloseDoor(true, null); 29 | } 30 | 31 | GUILayout.Space(10); 32 | 33 | if (GUILayout.Button("Open Exit Door")) 34 | { 35 | tR.OpenDoor(false, null); 36 | } 37 | else if (GUILayout.Button("Close Exit Door")) 38 | { 39 | tR.CloseDoor(false, null); 40 | } 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Scripts/Editor/TransitionRoomEditor.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 30775ab6e95d3da4fbc7f20e57f77c9a 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Scripts/Environment.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3f45d4cbac38e084483d41bb55de4d55 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Scripts/Environment/Area.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f4e492b4f46338c4a9677172db038542 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Scripts/Environment/AreaExit.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1b5b9bb69b2fc6c429fabece781477c3 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Scripts/Environment/EntryDoorTrigger.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3b053761d70f73d45bfd33584fd0e2e6 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Scripts/Environment/EnvironmentController.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6ee7e149688449f4ba92f4140c3c8b8c 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Scripts/Environment/Interactables.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d5d4186a0d9b7d5429d2abb84bf95931 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Scripts/Environment/Interactables/ButtonPodium.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | 5 | public class ButtonPodium : Interactable 6 | { 7 | [SerializeField] 8 | private ParticleSystem[] interactionEffects = null; 9 | 10 | [SerializeField] 11 | private Material inUseMat; 12 | [SerializeField] 13 | private Material availableMat; 14 | 15 | [SerializeField] 16 | private Renderer buttonRenderer; 17 | 18 | public override void PlayerInRange(NetworkedEntity entity) 19 | { 20 | //Only display in range stuff if the local user is the one in range! 21 | if (entity.isMine) 22 | base.PlayerInRange(entity); 23 | } 24 | 25 | public override void PlayerLeftRange(NetworkedEntity entity) 26 | { 27 | //Only display in range stuff if the local user is the one in range! 28 | if (entity.isMine) 29 | base.PlayerLeftRange(entity); 30 | } 31 | 32 | public override void OnSuccessfulUse(NetworkedEntity entity) 33 | { 34 | base.OnSuccessfulUse(entity); 35 | //Button podium also has interaction effects, so play them! 36 | for (int i = 0; i < interactionEffects.Length; ++i) 37 | { 38 | interactionEffects[i].Play(); 39 | } 40 | } 41 | 42 | public override void SetInUse(bool inUse) 43 | { 44 | base.SetInUse(inUse); 45 | //Set the button material to the appropriate one 46 | buttonRenderer.material = isInUse ? inUseMat : availableMat; 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Scripts/Environment/Interactables/ButtonPodium.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: fb8cbed430ac90c4d95e17306a2b4e35 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Scripts/Environment/Interactables/CoinOp.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e52d167367cf9564f808df93e513fdc8 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Scripts/Environment/Interactables/FXSwirl.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 54ede65d886717947a0bdeb40ef84ab8 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Scripts/Environment/Interactables/Interactable.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 49ff7cbe868c00f47b62c90e812a8f8f 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Scripts/Environment/Interactables/InteractableTrigger.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | 5 | /// 6 | /// Collider that tells an if/when a enters/exits 7 | /// 8 | public class InteractableTrigger : MonoBehaviour 9 | { 10 | public Interactable owner; 11 | 12 | void OnTriggerEnter(Collider other) 13 | { 14 | NetworkedEntity entity = other.GetComponent(); 15 | if (entity != null) 16 | { 17 | owner.PlayerInRange(entity); 18 | } 19 | } 20 | 21 | void OnTriggerExit(Collider other) 22 | { 23 | NetworkedEntity entity = other.GetComponent(); 24 | if (entity != null) 25 | { 26 | owner.PlayerLeftRange(entity); 27 | } 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Scripts/Environment/Interactables/InteractableTrigger.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 34f13245633bfbd48bfe1e2d985f322c 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Scripts/Environment/Interactables/Teleporter.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: dfd47bbfd365e664cb65ef6f306f0d1d 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Scripts/Managers.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5832f5c4cc6ef1a459f1fc55a8923f1d 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Scripts/Managers/ChatManager.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: fbd2b6134ec7df04a9203a82aac7346b 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Scripts/Managers/MMOManager.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7c9455ce385cadc48ab96d452f1560c1 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Scripts/Managers/NetworkedEntityFactory.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: dfccb86689564a04bb40c69e88a52347 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Scripts/Managers/UIManager.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b9d8c8d2be162a9459380d72cbbcb986 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Scripts/MessageTypes.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | using Colyseus; 5 | 6 | [System.Serializable] 7 | public class EntityMessage 8 | { 9 | public string entityID; 10 | } 11 | 12 | public class ObjectUseMessage 13 | { 14 | public string interactedObjectID; 15 | public string interactingStateID; 16 | } 17 | 18 | [System.Serializable] 19 | public class MovedToGridMessage 20 | { 21 | public Vector2 newGridPosition; 22 | public Vector2 prevGridPosition; 23 | public SeatReservationData seatReservation; 24 | } -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Scripts/MessageTypes.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d130a428fe818e34e9a4333726b475f8 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Scripts/Models.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: dc59132b1a04ae04895f354b2ecfd09a 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Scripts/Models/AuthSeatReservationData.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using Colyseus; 4 | using UnityEngine; 5 | 6 | [System.Serializable] 7 | public class SeatReservationData 8 | { 9 | /// 10 | /// The room belonging to the seat reservation 11 | /// 12 | public ColyseusRoomAvailable room; 13 | /// 14 | /// The session Id of the seat reservation 15 | /// 16 | public string sessionId; 17 | } 18 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Scripts/Models/AuthSeatReservationData.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 05dfe3883e5b58d40a80c490f9457682 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Scripts/Models/RequestResponse.cs: -------------------------------------------------------------------------------- 1 | /// 2 | /// Base server response object. 3 | /// 4 | [System.Serializable] 5 | public class RequestResponse 6 | { 7 | public string rawResponse; 8 | /// 9 | /// Did the request result with an error? 10 | /// 11 | public bool error; 12 | /// 13 | /// Server response data. Will be an error message when is true. 14 | /// 15 | public string output = "Some error occurred :("; 16 | } 17 | 18 | /// 19 | /// Server response object when creating a new account or signing into an existing account. 20 | /// 21 | [System.Serializable] 22 | public class UserAuthResponse : RequestResponse 23 | { 24 | /// 25 | /// Response data that contains user data as well room seat reservation data. 26 | /// 27 | public new UserAuthData output; 28 | } -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Scripts/Models/RequestResponse.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f45515ccefdf5d54d9ca8f173bed339d 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Scripts/Models/UserAuthData.cs: -------------------------------------------------------------------------------- 1 | using Colyseus; 2 | 3 | /// 4 | /// Server response data when a user has created a new account or logged in 5 | /// 6 | [System.Serializable] 7 | public class UserAuthData 8 | { 9 | public SeatReservationData seatReservation; 10 | 11 | /// 12 | /// User account data 13 | /// 14 | public UserData user; 15 | } 16 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Scripts/Models/UserAuthData.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c8bea0a31a10cba49ac12963bdd1e298 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Scripts/Models/UserData.cs: -------------------------------------------------------------------------------- 1 | 2 | using LucidSightTools; 3 | using UnityEngine; 4 | 5 | /// 6 | /// Data model to represent the client-side user 7 | /// 8 | [System.Serializable] 9 | public class UserData 10 | { 11 | /// 12 | /// Id of the user 13 | /// 14 | public string id; 15 | /// 16 | /// Username from account creation 17 | /// 18 | public string username; 19 | /// 20 | /// Email from account creation 21 | /// 22 | public string email; 23 | 24 | public string progress = "0,0"; 25 | public string prevGrid = "0,0"; 26 | public Vector3 position; 27 | 28 | public Vector2 GridAsVector2(bool getCurrentGrid = true) 29 | { 30 | string[] coords = getCurrentGrid ? progress.Split(',') : prevGrid.Split(','); 31 | 32 | if (coords != null && coords.Length > 1) 33 | { 34 | if (float.TryParse(coords[0], out float xVal) == false) 35 | { 36 | LSLog.LogError($"Error parsing x value for grid from {coords[0]}"); 37 | } 38 | 39 | if (float.TryParse(coords[1], out float yVal) == false) 40 | { 41 | LSLog.LogError($"Error parsing y value for grid from {coords[1]}"); 42 | } 43 | 44 | return new Vector2(xVal, yVal); 45 | } 46 | 47 | return Vector2.zero; 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Scripts/Models/UserData.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0fdc4bef742994a45814f6ff62b9f1f0 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Scripts/Models/Vectors.cs: -------------------------------------------------------------------------------- 1 | /// 2 | /// Object to represent across messages sent to the room on the server/> 3 | /// 4 | public class Vector3Obj 5 | { 6 | public float x; 7 | public float y; 8 | public float z; 9 | 10 | public Vector3Obj(float x = 0, float y = 0, float z = 0) 11 | { 12 | this.x = x; 13 | this.y = y; 14 | this.z = z; 15 | } 16 | } 17 | 18 | /// 19 | /// Object to represent across messages sent to the room on the server/> 20 | /// 21 | public class Vector2Obj 22 | { 23 | public float x; 24 | public float y; 25 | 26 | public Vector2Obj(float x = 0, float y = 0) 27 | { 28 | this.x = x; 29 | this.y = y; 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Scripts/Models/Vectors.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: fba4e1ee06891ad4ca28dd1b51e5485f 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Scripts/Player.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9171c16cdf219f345a5894e4905efbb5 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Scripts/Player/AvatarDisplay.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | 5 | public class AvatarDisplay : MonoBehaviour 6 | { 7 | [SerializeField] 8 | private Renderer[] shirtRenderers = null; 9 | 10 | [SerializeField] 11 | private Renderer[] legRenderers = null; 12 | 13 | [SerializeField] 14 | private Renderer[] skinRenderers = null; 15 | 16 | [SerializeField] 17 | private Renderer[] hatRenderers = null; 18 | 19 | [SerializeField] 20 | private GameObject hatRoot = null; 21 | 22 | public void SetHatEnabled(bool val) 23 | { 24 | hatRoot.SetActive(val); 25 | } 26 | 27 | public void SetHat(bool enabled, string color) 28 | { 29 | SetHatEnabled(enabled); 30 | if (enabled) 31 | { 32 | ColorRenderers(hatRenderers, color); 33 | } 34 | } 35 | 36 | public void SetSkinTone(string color) 37 | { 38 | ColorRenderers(skinRenderers, color); 39 | } 40 | 41 | public void SetShirtColor(string color) 42 | { 43 | ColorRenderers(shirtRenderers, color); 44 | } 45 | 46 | public void SetPantsColor(string color) 47 | { 48 | ColorRenderers(legRenderers, color); 49 | } 50 | 51 | public void DisplayFromState(AvatarState state) 52 | { 53 | SetHat(state.hatChoice != 0, state.hatColor); 54 | SetSkinTone(state.skinColor); 55 | SetShirtColor(state.shirtColor); 56 | SetPantsColor(state.pantsColor); 57 | } 58 | 59 | private void ColorRenderers(Renderer[] renderers, string colorHex) 60 | { 61 | Color color = renderers[0].material.color; //Default in case we cant parse 62 | if (ColorUtility.TryParseHtmlString(colorHex, out color)) 63 | { 64 | for (int i = 0; i < renderers.Length; ++i) 65 | { 66 | renderers[i].material.SetColor("_Color",color); 67 | } 68 | } 69 | } 70 | } 71 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Scripts/Player/AvatarDisplay.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 05873f21bed466542b3919acfb3cc8ba 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Scripts/Player/ChatDisplay.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ffdf19c929fd7c9479ed45fc1cc8d2f7 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Scripts/Player/EntityMovement.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6d5876508d7c6024b87db3af66cee6ea 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Scripts/Player/NetworkedEntity.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3e78cd1403bb2054ba1714a6cba098e4 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Scripts/PlayerPrefKeys.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | 3 | /// 4 | /// Class to simplify interaction with Unity's PlayerPrefs system for saving/retrieving log in credentials 5 | /// 6 | public class MMOPlayerPrefs 7 | { 8 | static string RememberMeKey = "TD4-MMO-RememberMe"; 9 | static string EmailKey = "TD4-MMO-RememberEmail"; 10 | static string PasswordKey = "TD4-MMO-RememberPassword"; 11 | 12 | public static string Email 13 | { 14 | get 15 | { 16 | return PlayerPrefs.GetString(EmailKey, ""); 17 | } 18 | 19 | set 20 | { 21 | PlayerPrefs.SetString(EmailKey, value); 22 | } 23 | } 24 | 25 | public static string Password 26 | { 27 | get 28 | { 29 | return PlayerPrefs.GetString(PasswordKey, ""); 30 | } 31 | 32 | set 33 | { 34 | PlayerPrefs.SetString(PasswordKey, value); 35 | } 36 | } 37 | 38 | public static bool RememberMe 39 | { 40 | get 41 | { 42 | return PlayerPrefs.GetInt(RememberMeKey, 0) == 1; 43 | } 44 | 45 | set 46 | { 47 | PlayerPrefs.SetInt(RememberMeKey, value ? 1 : 0); 48 | } 49 | } 50 | 51 | public static bool AccountExists 52 | { 53 | get 54 | { 55 | return string.IsNullOrEmpty(Email) == false && string.IsNullOrEmpty(Password) == false; 56 | } 57 | } 58 | 59 | public static void Clear() 60 | { 61 | RememberMe = false; 62 | Email = ""; 63 | Password = ""; 64 | } 65 | } 66 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Scripts/PlayerPrefKeys.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 28ab1f0f4df3fe245b067e415521ad86 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Scripts/States.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e55797336b4e33346a9f32362ee3cf3d 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Scripts/States/AvatarState.Clone.cs: -------------------------------------------------------------------------------- 1 | using Colyseus.Schema; 2 | using UnityEngine.Networking; 3 | 4 | public partial class AvatarState : Schema { 5 | public AvatarState Clone() 6 | { 7 | return new AvatarState() 8 | { 9 | skinColor = skinColor, shirtColor = shirtColor, pantsColor = pantsColor, hatChoice = hatChoice, 10 | hatColor = hatColor 11 | }; 12 | } 13 | 14 | public object[] ToNetSendObjects() 15 | { 16 | return new object[] { skinColor, shirtColor, pantsColor, hatColor, hatChoice}; 17 | } 18 | } 19 | 20 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Scripts/States/AvatarState.Clone.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4e5c20bb439d2384ebc8f9b1a3dcadd8 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Scripts/States/AvatarState.cs: -------------------------------------------------------------------------------- 1 | // 2 | // THIS FILE HAS BEEN GENERATED AUTOMATICALLY 3 | // DO NOT CHANGE IT MANUALLY UNLESS YOU KNOW WHAT YOU'RE DOING 4 | // 5 | // GENERATED USING @colyseus/schema 1.0.23 6 | // 7 | 8 | using Colyseus.Schema; 9 | 10 | public partial class AvatarState : Schema { 11 | [Type(0, "string")] 12 | public string skinColor = default(string); 13 | 14 | [Type(1, "string")] 15 | public string shirtColor = default(string); 16 | 17 | [Type(2, "string")] 18 | public string pantsColor = default(string); 19 | 20 | [Type(3, "string")] 21 | public string hatColor = default(string); 22 | 23 | [Type(4, "number")] 24 | public float hatChoice = default(float); 25 | } 26 | 27 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Scripts/States/AvatarState.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 86ce606945828ef42960f454c214a248 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Scripts/States/ChatMessage.cs: -------------------------------------------------------------------------------- 1 | // 2 | // THIS FILE HAS BEEN GENERATED AUTOMATICALLY 3 | // DO NOT CHANGE IT MANUALLY UNLESS YOU KNOW WHAT YOU'RE DOING 4 | // 5 | // GENERATED USING @colyseus/schema 1.0.23 6 | // 7 | 8 | using Colyseus.Schema; 9 | 10 | public partial class ChatMessage : Schema { 11 | [Type(0, "string")] 12 | public string senderID = default(string); 13 | 14 | [Type(1, "string")] 15 | public string message = default(string); 16 | 17 | [Type(2, "number")] 18 | public float timestamp = default(float); 19 | } 20 | 21 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Scripts/States/ChatMessage.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7f0a3022f64c78e4191af78930cefe62 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Scripts/States/ChatQueue.cs: -------------------------------------------------------------------------------- 1 | // 2 | // THIS FILE HAS BEEN GENERATED AUTOMATICALLY 3 | // DO NOT CHANGE IT MANUALLY UNLESS YOU KNOW WHAT YOU'RE DOING 4 | // 5 | // GENERATED USING @colyseus/schema 1.0.23 6 | // 7 | 8 | using Colyseus.Schema; 9 | 10 | public partial class ChatQueue : Schema { 11 | [Type(0, "array", typeof(ArraySchema))] 12 | public ArraySchema chatMessages = new ArraySchema(); 13 | } 14 | 15 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Scripts/States/ChatQueue.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7ae2b72c2209a964a99d01db9b17367f 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Scripts/States/ChatRoomState.cs: -------------------------------------------------------------------------------- 1 | // 2 | // THIS FILE HAS BEEN GENERATED AUTOMATICALLY 3 | // DO NOT CHANGE IT MANUALLY UNLESS YOU KNOW WHAT YOU'RE DOING 4 | // 5 | // GENERATED USING @colyseus/schema 1.0.23 6 | // 7 | 8 | using Colyseus.Schema; 9 | 10 | public partial class ChatRoomState : Schema { 11 | [Type(0, "map", typeof(MapSchema))] 12 | public MapSchema chatQueue = new MapSchema(); 13 | } 14 | 15 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Scripts/States/ChatRoomState.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8a35c29f59636c742940c8460ff5b579 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Scripts/States/InteractableState.cs: -------------------------------------------------------------------------------- 1 | // 2 | // THIS FILE HAS BEEN GENERATED AUTOMATICALLY 3 | // DO NOT CHANGE IT MANUALLY UNLESS YOU KNOW WHAT YOU'RE DOING 4 | // 5 | // GENERATED USING @colyseus/schema 1.0.23 6 | // 7 | 8 | using Colyseus.Schema; 9 | 10 | public partial class InteractableState : Schema { 11 | [Type(0, "string")] 12 | public string id = default(string); 13 | 14 | [Type(1, "boolean")] 15 | public bool inUse = default(bool); 16 | 17 | [Type(2, "string")] 18 | public string interactableType = default(string); 19 | 20 | [Type(3, "number")] 21 | public float availableTimestamp = default(float); 22 | 23 | [Type(4, "number")] 24 | public float coinChange = default(float); 25 | 26 | [Type(5, "number")] 27 | public float useDuration = default(float); 28 | } 29 | 30 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Scripts/States/InteractableState.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 773b37d1f2beb4d4e82bd41043fd141d 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Scripts/States/NetworkedEntityState.Clone.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using System.Reflection; 4 | using Colyseus.Schema; 5 | using UnityEngine; 6 | 7 | public partial class NetworkedEntityState : Schema 8 | { 9 | //Must be updated if new attributes are added! 10 | public NetworkedEntityState Clone() 11 | { 12 | return new NetworkedEntityState() 13 | { 14 | id = id, chatID = chatID, xPos = xPos, yPos = yPos, zPos = zPos, xRot = xRot, yRot = yRot, zRot = zRot, wRot = wRot, timestamp = timestamp, coins = coins, avatar = avatar 15 | }; 16 | } 17 | } 18 | 19 | // Compare a property to determine changes of state 20 | public class NetworkedEntityChanges 21 | { 22 | // Name of property we're comparing 23 | public string Name { get; private set; } 24 | 25 | // The old value of the property 26 | public object OldValue { get; private set; } 27 | 28 | // The new value of the property 29 | public object NewValue { get; private set; } 30 | 31 | public NetworkedEntityChanges(string name, object oldValue, object newValue) 32 | { 33 | Name = name; 34 | OldValue = oldValue; 35 | NewValue = newValue; 36 | } 37 | 38 | public static List Compare(T oldObject, T newObject) 39 | { 40 | FieldInfo[] properties = typeof(T).GetFields(); 41 | List result = new List(); 42 | 43 | foreach (FieldInfo pi in properties) 44 | { 45 | 46 | object oldValue = pi.GetValue(oldObject), newValue = pi.GetValue(newObject); 47 | 48 | if (!object.Equals(oldValue, newValue)) 49 | { 50 | result.Add(new NetworkedEntityChanges(pi.Name, oldValue, newValue)); 51 | } 52 | } 53 | 54 | return result; 55 | } 56 | } 57 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Scripts/States/NetworkedEntityState.Clone.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d5d01d5925b14374783a848bd297b726 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Scripts/States/NetworkedEntityState.cs: -------------------------------------------------------------------------------- 1 | // 2 | // THIS FILE HAS BEEN GENERATED AUTOMATICALLY 3 | // DO NOT CHANGE IT MANUALLY UNLESS YOU KNOW WHAT YOU'RE DOING 4 | // 5 | // GENERATED USING @colyseus/schema 1.0.23 6 | // 7 | 8 | using Colyseus.Schema; 9 | 10 | public partial class NetworkedEntityState : Schema { 11 | [Type(0, "string")] 12 | public string id = default(string); 13 | 14 | [Type(1, "string")] 15 | public string chatID = default(string); 16 | 17 | [Type(2, "number")] 18 | public float xPos = default(float); 19 | 20 | [Type(3, "number")] 21 | public float yPos = default(float); 22 | 23 | [Type(4, "number")] 24 | public float zPos = default(float); 25 | 26 | [Type(5, "number")] 27 | public float xRot = default(float); 28 | 29 | [Type(6, "number")] 30 | public float yRot = default(float); 31 | 32 | [Type(7, "number")] 33 | public float zRot = default(float); 34 | 35 | [Type(8, "number")] 36 | public float wRot = default(float); 37 | 38 | [Type(9, "ref", typeof(AvatarState))] 39 | public AvatarState avatar = new AvatarState(); 40 | 41 | [Type(10, "number")] 42 | public float coins = default(float); 43 | 44 | [Type(11, "number")] 45 | public float timestamp = default(float); 46 | 47 | [Type(12, "string")] 48 | public string username = default(string); 49 | } 50 | 51 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Scripts/States/NetworkedEntityState.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c30c1bd77189db54f8701f06e2f52646 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Scripts/States/RoomState.cs: -------------------------------------------------------------------------------- 1 | // 2 | // THIS FILE HAS BEEN GENERATED AUTOMATICALLY 3 | // DO NOT CHANGE IT MANUALLY UNLESS YOU KNOW WHAT YOU'RE DOING 4 | // 5 | // GENERATED USING @colyseus/schema 1.0.23 6 | // 7 | 8 | using Colyseus.Schema; 9 | 10 | public partial class RoomState : Schema { 11 | [Type(0, "map", typeof(MapSchema))] 12 | public MapSchema networkedUsers = new MapSchema(); 13 | 14 | [Type(1, "map", typeof(MapSchema))] 15 | public MapSchema interactableItems = new MapSchema(); 16 | 17 | [Type(2, "number")] 18 | public float serverTime = default(float); 19 | } 20 | 21 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Scripts/States/RoomState.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2611dd6367f53d741846adf9a0233970 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Scripts/TransitionRoom.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8cb7b107cefd9004c9948d54b8bb1f15 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Scripts/UI.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1b9c5a77909a7d946b67aa2f68cf3b2f 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Scripts/UI/AvatarCustomization.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 601f90440732fac4e88dec2c998a6959 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Scripts/UI/ChatInput.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using TMPro; 4 | using UnityEngine; 5 | using UnityEngine.UI; 6 | 7 | public class ChatInput : MonoBehaviour 8 | { 9 | [SerializeField] 10 | private TMP_InputField chatInput; 11 | 12 | [SerializeField] 13 | private Button sendButton; 14 | 15 | public void ToggleChat() 16 | { 17 | gameObject.SetActive(!gameObject.activeSelf); 18 | if (gameObject.activeSelf) 19 | { 20 | chatInput.Select(); 21 | } 22 | else 23 | { 24 | ClearText(); 25 | } 26 | } 27 | 28 | public void InputFieldChanged() 29 | { 30 | sendButton.interactable = chatInput.text.Length > 0; 31 | } 32 | 33 | public void OnSend() 34 | { 35 | if (chatInput.text.Length > 0) 36 | { 37 | ChatManager.Instance.SendChat(chatInput.text); 38 | ClearText(); 39 | ToggleChat(); //Maybe dont want to close by default 40 | } 41 | } 42 | 43 | private void ClearText() 44 | { 45 | chatInput.text = ""; 46 | } 47 | 48 | public bool HasFocus() 49 | { 50 | return chatInput.isFocused; 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Scripts/UI/ChatInput.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 016260f257235544191bdaa1526948d1 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Scripts/UI/ChatMessageView.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using TMPro; 4 | using UnityEngine; 5 | using UnityEngine.UI; 6 | 7 | public class ChatMessageView : MonoBehaviour 8 | { 9 | [SerializeField] 10 | private TextMeshProUGUI messageContents; 11 | 12 | private ChatMessage currentMessage = null; 13 | 14 | public bool IsMessage(ChatMessage proposedMessage) 15 | { 16 | if (currentMessage != null) 17 | { 18 | return proposedMessage.timestamp.Equals(currentMessage.timestamp); 19 | } 20 | else 21 | { 22 | return false; 23 | } 24 | } 25 | 26 | public void SetMessage(ChatMessage message) 27 | { 28 | currentMessage = message; 29 | messageContents.text = currentMessage.message; 30 | gameObject.SetActive(true); 31 | StartCoroutine(TriggerDirty()); 32 | } 33 | 34 | IEnumerator TriggerDirty() 35 | { 36 | messageContents.gameObject.SetActive(false); 37 | yield return new WaitForEndOfFrame(); 38 | messageContents.gameObject.SetActive(true); 39 | } 40 | 41 | public void UnsetMessage() 42 | { 43 | currentMessage = null; 44 | gameObject.SetActive(false); 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Scripts/UI/ChatMessageView.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f37861d42931df64b9540d237166f1bb 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Scripts/UI/ColorSelector.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections; 3 | using System.Collections.Generic; 4 | using UnityEngine; 5 | using UnityEngine.Events; 6 | using UnityEngine.UI; 7 | 8 | public class ColorSelector : MonoBehaviour 9 | { 10 | [SerializeField] 11 | private UnityEvent onColorChanged = null; 12 | 13 | [SerializeField] 14 | private Slider rSlider = null; 15 | [SerializeField] 16 | private Slider gSlider = null; 17 | [SerializeField] 18 | private Slider bSlider = null; 19 | [SerializeField] 20 | private Slider aSlider = null; 21 | 22 | [SerializeField] 23 | private Image referenceImage = null; 24 | 25 | public void Display(Color color) 26 | { 27 | rSlider.value = color.r; 28 | gSlider.value = color.g; 29 | bSlider.value = color.b; 30 | 31 | if (aSlider != null) 32 | { 33 | aSlider.value = color.a; 34 | } 35 | 36 | OnSliderUpdated(); 37 | } 38 | 39 | public void OnSliderUpdated() 40 | { 41 | Color color = GetColor(); 42 | UpdateReferenceImage(color); 43 | onColorChanged?.Invoke(color); 44 | } 45 | 46 | private float[] GetValues() 47 | { 48 | if (aSlider == null) 49 | { 50 | return new float[] { rSlider.value, gSlider.value, bSlider.value, 1}; 51 | } 52 | else 53 | { 54 | return new float[] { rSlider.value, gSlider.value, bSlider.value, aSlider.value }; 55 | } 56 | } 57 | 58 | private void UpdateReferenceImage(Color color) 59 | { 60 | referenceImage.color = color; 61 | } 62 | 63 | public Color GetColor() 64 | { 65 | float[] color = GetValues(); 66 | return new Color(color[0], color[1], color[2], color[3]); 67 | } 68 | } 69 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Scripts/UI/ColorSelector.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 57569fa97b2a03341be28f60a1c21b36 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Scripts/UI/Compass.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | 3 | /// 4 | /// The compass always points to the "North" or Z-forward on the world axis 5 | /// 6 | public class Compass : MonoBehaviour 7 | { 8 | [SerializeField] 9 | private Transform targetCameraRoot = null; 10 | 11 | [SerializeField] 12 | private Transform compassCameraRoot = null; 13 | 14 | [SerializeField] 15 | private Transform compassTransform = null; 16 | 17 | [SerializeField] 18 | private float rotateSpeed = 5.0f; 19 | 20 | private void Start() 21 | { 22 | // Ensure the compass transform's forward rotation is pointing in the Z-forward on the world axis 23 | compassTransform.rotation = Quaternion.identity; 24 | } 25 | 26 | private void Update() 27 | { 28 | // Update the camera root rotation to match the rotation of the target camera 29 | compassCameraRoot.rotation = Quaternion.Lerp(compassCameraRoot.rotation, targetCameraRoot.rotation, Time.deltaTime * rotateSpeed); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Scripts/UI/Compass.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 63eddc1b7e4cc1841b67557ba035f1cf 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Scripts/UI/CreateUserMenu.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 010cee042acbf4a4c946c9c288dbdd1c 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Scripts/UI/FaceCamera.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | 5 | public class FaceCamera : MonoBehaviour 6 | { 7 | void Update() 8 | { 9 | transform.LookAt(Camera.main.transform); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Scripts/UI/FaceCamera.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 51c16aac21726ce4fbacc7934a4f8dab 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Scripts/UI/InGameMenu.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | 5 | public class InGameMenu : MonoBehaviour 6 | { 7 | [SerializeField] 8 | private AvatarCustomization avatarCustomization = null; 9 | 10 | public void OnBtnClose() 11 | { 12 | UIManager.Instance.ToggleInGameMenu(); 13 | } 14 | 15 | public void OnBtnMainMenu() 16 | { 17 | MMOManager.Instance.ExitToMainMenu(); 18 | } 19 | 20 | public void OnBtnCustomize() 21 | { 22 | NetworkedEntity entity = NetworkedEntityFactory.Instance.GetMine(); 23 | if (entity && entity.Avatar != null) 24 | { 25 | avatarCustomization.DisplayView(entity.Avatar.Clone(), OnCustomizationSave); 26 | } 27 | } 28 | 29 | private void OnCustomizationSave(AvatarState avatarState) 30 | { 31 | MMOManager.NetSend("avatarUpdate", avatarState.ToNetSendObjects()); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Scripts/UI/InGameMenu.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3165e4bd1ca369a419b45595269b7717 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Scripts/UI/LobbyController.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2aca67152b9cb934dbea32cf2ae8d6ee 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Scripts/UI/PlayerNameTagController.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3cfe1eea6f90bc54eba7dd63c364af3d 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Scripts/UI/PlayerTag.cs: -------------------------------------------------------------------------------- 1 | using TMPro; 2 | using UnityEngine; 3 | 4 | public class PlayerTag : MonoBehaviour 5 | { 6 | [SerializeField] 7 | private TextMeshProUGUI playerTag; 8 | 9 | [SerializeField] 10 | private CanvasGroup canvasGroup; 11 | 12 | [SerializeField] 13 | private RectTransform rectTransform; 14 | 15 | public void SetPlayerTag(string tag) 16 | { 17 | playerTag.text = tag; 18 | } 19 | 20 | public void UpdateTag(Vector2 position, float alpha) 21 | { 22 | rectTransform.anchoredPosition = position; 23 | canvasGroup.alpha = alpha; 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Scripts/UI/PlayerTag.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c68e3b4c6672a704c8f9f7c611fb7739 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Scripts/UI/ServerSetupMenu.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | using UnityEngine.UI; 5 | 6 | public class ServerSetupMenu : MonoBehaviour 7 | { 8 | #pragma warning disable 0649 9 | [SerializeField] 10 | private InputField serverURLInput = null; 11 | [SerializeField] 12 | private InputField serverPortInput = null; 13 | [SerializeField] 14 | private Toggle secureToggle; 15 | 16 | [SerializeField] 17 | private Text logOutText = null; 18 | #pragma warning restore 0649 19 | 20 | public string ServerURL 21 | { 22 | get 23 | { 24 | if (string.IsNullOrEmpty(serverURLInput.text) == false) 25 | { 26 | return serverURLInput.text; 27 | } 28 | 29 | return MMOManager.Instance.ColyseusServerAddress; 30 | } 31 | } 32 | 33 | public string ServerPort 34 | { 35 | get 36 | { 37 | if (string.IsNullOrEmpty(serverPortInput.text) == false) 38 | { 39 | return serverPortInput.text; 40 | } 41 | 42 | return MMOManager.Instance.ColyseusServerPort; 43 | } 44 | } 45 | 46 | public bool UseSecure 47 | { 48 | get 49 | { 50 | return secureToggle.isOn; 51 | } 52 | } 53 | 54 | private void Start() 55 | { 56 | serverURLInput.text = MMOManager.Instance.ColyseusServerAddress; 57 | serverPortInput.text = MMOManager.Instance.ColyseusServerPort; 58 | secureToggle.isOn = MMOManager.Instance.ColyseusUseSecure; 59 | 60 | SetUpLogOut(); 61 | } 62 | 63 | /// 64 | /// Clears the saved log in credentials 65 | /// 66 | public void OnButtonEvent_LogOutExisting() 67 | { 68 | MMOPlayerPrefs.Clear(); 69 | 70 | SetUpLogOut(); 71 | } 72 | 73 | private void SetUpLogOut() 74 | { 75 | logOutText.gameObject.SetActive(string.IsNullOrEmpty(MMOPlayerPrefs.Email) == false && string.IsNullOrEmpty(MMOPlayerPrefs.Password) == false); 76 | logOutText.text = $"Log Out {MMOPlayerPrefs.Email}"; 77 | } 78 | } 79 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Scripts/UI/ServerSetupMenu.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: efdd1e438ce27c44e9aaebd8ff8a0698 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Scripts/UI/UISpinner.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | 5 | public class UISpinner : MonoBehaviour 6 | { 7 | [SerializeField] 8 | private float spinSpeed = 5.0f; 9 | 10 | [SerializeField] 11 | private Transform spinTransform; 12 | 13 | // Update is called once per frame 14 | void Update() 15 | { 16 | spinTransform.Rotate(Vector3.forward, Time.deltaTime * spinSpeed); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Scripts/UI/UISpinner.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5ab14748002ba284d84b847efe71f549 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Scripts/Utils.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6e8b549d298275d42b2ed6ca469a97e4 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Scripts/Utils/DontDestroyTag.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | 3 | public class DontDestroyTag : MonoBehaviour 4 | { 5 | private void Awake() 6 | { 7 | DontDestroyOnLoad(gameObject); 8 | } 9 | } -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Scripts/Utils/DontDestroyTag.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0334c84a6aadcc149a2401942503c891 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Scripts/Utils/Easings.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 919eefd412e8a0848acd0e6ff071c290 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Settings.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 596f832e093668a47a49bd03389ce7b6 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Settings/ColyseusSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &11400000 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_GameObject: {fileID: 0} 10 | m_Enabled: 1 11 | m_EditorHideFlags: 0 12 | m_Script: {fileID: 11500000, guid: abda5a440b0b5634b8654ff3a0129b80, type: 3} 13 | m_Name: ColyseusSettings 14 | m_EditorClassIdentifier: 15 | colyseusServerAddress: rhhbag.us-west-1.colyseus.dev 16 | colyseusServerPort: 443 17 | useSecureProtocol: 1 18 | _requestHeaders: 19 | - name: Content-Type 20 | value: application/json 21 | - name: Accept 22 | value: application/json 23 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/Settings/ColyseusSettings.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5fbf227f540d0384993aafa75df60613 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/TextMesh Pro.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f54d1bd14bd3ca042bd867b519fee8cc 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/TextMesh Pro/Documentation.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8e7e8f5a82a3a134e91c54efd2274ea9 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/TextMesh Pro/Documentation/TextMesh Pro User Guide 2016.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colyseus/unity-demo-mmo/b0e2d04bb287b47646d0afb87c4e46b0181d27c6/ColyseusTechDemo-MMO/Assets/TextMesh Pro/Documentation/TextMesh Pro User Guide 2016.pdf -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/TextMesh Pro/Documentation/TextMesh Pro User Guide 2016.pdf.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1b8d251f9af63b746bf2f7ffe00ebb9b 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/TextMesh Pro/Fonts.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6ab70aee4d56447429c680537fbf93ed 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/TextMesh Pro/Fonts/LiberationSans - OFL.txt.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6e59c59b81ab47f9b6ec5781fa725d2c 3 | timeCreated: 1484171296 4 | licenseType: Pro 5 | TextScriptImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/TextMesh Pro/Fonts/LiberationSans.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colyseus/unity-demo-mmo/b0e2d04bb287b47646d0afb87c4e46b0181d27c6/ColyseusTechDemo-MMO/Assets/TextMesh Pro/Fonts/LiberationSans.ttf -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/TextMesh Pro/Fonts/LiberationSans.ttf.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e3265ab4bf004d28a9537516768c1c75 3 | timeCreated: 1484171297 4 | licenseType: Pro 5 | TrueTypeFontImporter: 6 | serializedVersion: 2 7 | fontSize: 16 8 | forceTextureCase: -2 9 | characterSpacing: 1 10 | characterPadding: 0 11 | includeFontData: 1 12 | use2xBehaviour: 0 13 | fontNames: [] 14 | fallbackFontReferences: [] 15 | customCharacters: 16 | fontRenderingMode: 0 17 | userData: 18 | assetBundleName: 19 | assetBundleVariant: 20 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/TextMesh Pro/Resources.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 243e06394e614e5d99fab26083b707fa 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/TextMesh Pro/Resources/Fonts & Materials.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 731f1baa9d144a9897cb1d341c2092b8 3 | folderAsset: yes 4 | timeCreated: 1442040525 5 | licenseType: Pro 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Drop Shadow.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e73a58f6e2794ae7b1b7e50b7fb811b0 3 | timeCreated: 1484172806 4 | licenseType: Pro 5 | NativeFormatImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Fallback.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2e498d1c8094910479dc3e1b768306a4 3 | timeCreated: 1484171803 4 | licenseType: Pro 5 | NativeFormatImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF - Outline.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 79459efec17a4d00a321bdcc27bbc385 3 | timeCreated: 1484172856 4 | licenseType: Pro 5 | NativeFormatImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/TextMesh Pro/Resources/Fonts & Materials/LiberationSans SDF.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8f586378b4e144a9851e7b34d9b748ee 3 | timeCreated: 1484171803 4 | licenseType: Pro 5 | NativeFormatImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/TextMesh Pro/Resources/LineBreaking Following Characters.txt: -------------------------------------------------------------------------------- 1 | )]}〕〉》」』】〙〗〟’”⦆»ヽヾーァィゥェォッャュョヮヵヶぁぃぅぇぉっゃゅょゎゕゖㇰㇱㇲㇳㇴㇵㇶㇷㇸㇹㇺㇻㇼㇽㇾㇿ々〻‐゠–〜?!‼⁇⁈⁉・、%,.:;。!?]):;=}¢°"†‡℃〆%,. -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/TextMesh Pro/Resources/LineBreaking Following Characters.txt.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: fade42e8bc714b018fac513c043d323b 3 | timeCreated: 1425440388 4 | licenseType: Store 5 | TextScriptImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/TextMesh Pro/Resources/LineBreaking Leading Characters.txt: -------------------------------------------------------------------------------- 1 | ([{〔〈《「『【〘〖〝‘“⦅«$—…‥〳〴〵\[({£¥"々〇$¥₩ # -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/TextMesh Pro/Resources/LineBreaking Leading Characters.txt.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d82c1b31c7e74239bff1220585707d2b 3 | timeCreated: 1425440388 4 | licenseType: Store 5 | TextScriptImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/TextMesh Pro/Resources/Sprite Assets.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 512a49d95c0c4332bdd98131869c23c9 3 | folderAsset: yes 4 | timeCreated: 1441876896 5 | licenseType: Pro 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/TextMesh Pro/Resources/Sprite Assets/EmojiOne.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c41005c129ba4d66911b75229fd70b45 3 | timeCreated: 1480316912 4 | licenseType: Pro 5 | NativeFormatImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/TextMesh Pro/Resources/Style Sheets.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4aecb92fff08436c8303b10eab8da368 3 | folderAsset: yes 4 | timeCreated: 1441876950 5 | licenseType: Pro 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/TextMesh Pro/Resources/Style Sheets/Default Style Sheet.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f952c082cb03451daed3ee968ac6c63e 3 | timeCreated: 1432805430 4 | licenseType: Store 5 | NativeFormatImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/TextMesh Pro/Resources/TMP Settings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &11400000 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_GameObject: {fileID: 0} 10 | m_Enabled: 1 11 | m_EditorHideFlags: 0 12 | m_Script: {fileID: 11500000, guid: 2705215ac5b84b70bacc50632be6e391, type: 3} 13 | m_Name: TMP Settings 14 | m_EditorClassIdentifier: 15 | m_enableWordWrapping: 1 16 | m_enableKerning: 1 17 | m_enableExtraPadding: 0 18 | m_enableTintAllSprites: 0 19 | m_enableParseEscapeCharacters: 1 20 | m_EnableRaycastTarget: 1 21 | m_GetFontFeaturesAtRuntime: 1 22 | m_missingGlyphCharacter: 0 23 | m_warningsDisabled: 1 24 | m_defaultFontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} 25 | m_defaultFontAssetPath: Fonts & Materials/ 26 | m_defaultFontSize: 36 27 | m_defaultAutoSizeMinRatio: 0.5 28 | m_defaultAutoSizeMaxRatio: 2 29 | m_defaultTextMeshProTextContainerSize: {x: 20, y: 5} 30 | m_defaultTextMeshProUITextContainerSize: {x: 200, y: 50} 31 | m_autoSizeTextContainer: 0 32 | m_fallbackFontAssets: [] 33 | m_matchMaterialPreset: 1 34 | m_defaultSpriteAsset: {fileID: 11400000, guid: c41005c129ba4d66911b75229fd70b45, 35 | type: 2} 36 | m_defaultSpriteAssetPath: Sprite Assets/ 37 | m_enableEmojiSupport: 1 38 | m_MissingCharacterSpriteUnicode: 0 39 | m_defaultColorGradientPresetsPath: Color Gradient Presets/ 40 | m_defaultStyleSheet: {fileID: 11400000, guid: f952c082cb03451daed3ee968ac6c63e, 41 | type: 2} 42 | m_StyleSheetsResourcePath: 43 | m_leadingCharacters: {fileID: 4900000, guid: d82c1b31c7e74239bff1220585707d2b, type: 3} 44 | m_followingCharacters: {fileID: 4900000, guid: fade42e8bc714b018fac513c043d323b, 45 | type: 3} 46 | m_UseModernHangulLineBreakingRules: 0 47 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/TextMesh Pro/Resources/TMP Settings.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3f5b5dff67a942289a9defa416b206f3 3 | timeCreated: 1436653997 4 | licenseType: Pro 5 | NativeFormatImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/TextMesh Pro/Shaders.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e9f693669af91aa45ad615fc681ed29f 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/TextMesh Pro/Shaders/TMP_Bitmap-Custom-Atlas.shader.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 48bb5f55d8670e349b6e614913f9d910 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: [] 6 | nonModifiableTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/TextMesh Pro/Shaders/TMP_Bitmap-Mobile.shader.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1e3b057af24249748ff873be7fafee47 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: [] 6 | nonModifiableTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/TextMesh Pro/Shaders/TMP_Bitmap.shader.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 128e987d567d4e2c824d754223b3f3b0 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: [] 6 | nonModifiableTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/TextMesh Pro/Shaders/TMP_SDF Overlay.shader.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: dd89cf5b9246416f84610a006f916af7 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: [] 6 | nonModifiableTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/TextMesh Pro/Shaders/TMP_SDF SSD.shader.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 14eb328de4b8eb245bb7cea29e4ac00b 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: [] 6 | nonModifiableTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile Masking.shader.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: bc1ede39bf3643ee8e493720e4259791 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: [] 6 | nonModifiableTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile Overlay.shader.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a02a7d8c237544f1962732b55a9aebf1 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: [] 6 | nonModifiableTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile SSD.shader.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c8d12adcee749c344b8117cf7c7eb912 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: [] 6 | nonModifiableTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/TextMesh Pro/Shaders/TMP_SDF-Mobile.shader.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: fe393ace9b354375a9cb14cdbbc28be4 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: [] 6 | nonModifiableTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/TextMesh Pro/Shaders/TMP_SDF-Surface-Mobile.shader.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 85187c2149c549c5b33f0cdb02836b17 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: [] 6 | nonModifiableTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/TextMesh Pro/Shaders/TMP_SDF-Surface.shader.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f7ada0af4f174f0694ca6a487b8f543d 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: [] 6 | nonModifiableTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/TextMesh Pro/Shaders/TMP_SDF.shader.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 68e6db2ebdc24f95958faec2be5558d6 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: [] 6 | nonModifiableTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/TextMesh Pro/Shaders/TMP_Sprite.shader.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: cf81c85f95fe47e1a27f6ae460cf182c 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: [] 6 | nonModifiableTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/TextMesh Pro/Shaders/TMPro.cginc.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 407bc68d299748449bbf7f48ee690f8d 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: [] 6 | nonModifiableTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/TextMesh Pro/Shaders/TMPro_Mobile.cginc.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c334973cef89a9840b0b0c507e0377ab 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: [] 6 | nonModifiableTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/TextMesh Pro/Shaders/TMPro_Properties.cginc.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3997e2241185407d80309a82f9148466 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: [] 6 | nonModifiableTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/TextMesh Pro/Shaders/TMPro_Surface.cginc.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d930090c0cd643c7b55f19a38538c162 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: [] 6 | nonModifiableTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/TextMesh Pro/Sprites.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d0603b6d5186471b96c778c3949c7ce2 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/TextMesh Pro/Sprites/EmojiOne Attribution.txt: -------------------------------------------------------------------------------- 1 | This sample of beautiful emojis are provided by EmojiOne https://www.emojione.com/ 2 | 3 | Please visit their website to view the complete set of their emojis and review their licensing terms. -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/TextMesh Pro/Sprites/EmojiOne Attribution.txt.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 381dcb09d5029d14897e55f98031fca5 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/TextMesh Pro/Sprites/EmojiOne.json.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8f05276190cf498a8153f6cbe761d4e6 3 | timeCreated: 1480316860 4 | licenseType: Pro 5 | TextScriptImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Assets/TextMesh Pro/Sprites/EmojiOne.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colyseus/unity-demo-mmo/b0e2d04bb287b47646d0afb87c4e46b0181d27c6/ColyseusTechDemo-MMO/Assets/TextMesh Pro/Sprites/EmojiOne.png -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/Packages/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": { 3 | "com.unity.collab-proxy": "1.3.9", 4 | "com.unity.ide.rider": "2.0.7", 5 | "com.unity.ide.visualstudio": "2.0.7", 6 | "com.unity.ide.vscode": "1.2.3", 7 | "com.unity.test-framework": "1.1.22", 8 | "com.unity.textmeshpro": "3.0.1", 9 | "com.unity.timeline": "1.4.6", 10 | "com.unity.ugui": "1.0.0", 11 | "io.colyseus.sdk": "https://github.com/colyseus/colyseus-unity3d.git#upm", 12 | "com.unity.modules.ai": "1.0.0", 13 | "com.unity.modules.androidjni": "1.0.0", 14 | "com.unity.modules.animation": "1.0.0", 15 | "com.unity.modules.assetbundle": "1.0.0", 16 | "com.unity.modules.audio": "1.0.0", 17 | "com.unity.modules.cloth": "1.0.0", 18 | "com.unity.modules.director": "1.0.0", 19 | "com.unity.modules.imageconversion": "1.0.0", 20 | "com.unity.modules.imgui": "1.0.0", 21 | "com.unity.modules.jsonserialize": "1.0.0", 22 | "com.unity.modules.particlesystem": "1.0.0", 23 | "com.unity.modules.physics": "1.0.0", 24 | "com.unity.modules.physics2d": "1.0.0", 25 | "com.unity.modules.screencapture": "1.0.0", 26 | "com.unity.modules.terrain": "1.0.0", 27 | "com.unity.modules.terrainphysics": "1.0.0", 28 | "com.unity.modules.tilemap": "1.0.0", 29 | "com.unity.modules.ui": "1.0.0", 30 | "com.unity.modules.uielements": "1.0.0", 31 | "com.unity.modules.umbra": "1.0.0", 32 | "com.unity.modules.unityanalytics": "1.0.0", 33 | "com.unity.modules.unitywebrequest": "1.0.0", 34 | "com.unity.modules.unitywebrequestassetbundle": "1.0.0", 35 | "com.unity.modules.unitywebrequestaudio": "1.0.0", 36 | "com.unity.modules.unitywebrequesttexture": "1.0.0", 37 | "com.unity.modules.unitywebrequestwww": "1.0.0", 38 | "com.unity.modules.vehicles": "1.0.0", 39 | "com.unity.modules.video": "1.0.0", 40 | "com.unity.modules.vr": "1.0.0", 41 | "com.unity.modules.wind": "1.0.0", 42 | "com.unity.modules.xr": "1.0.0" 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/ProjectSettings/AudioManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!11 &1 4 | AudioManager: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | m_Volume: 1 8 | Rolloff Scale: 1 9 | Doppler Factor: 1 10 | Default Speaker Mode: 2 11 | m_SampleRate: 0 12 | m_DSPBufferSize: 1024 13 | m_VirtualVoiceCount: 512 14 | m_RealVoiceCount: 32 15 | m_SpatializerPlugin: 16 | m_AmbisonicDecoderPlugin: 17 | m_DisableAudio: 0 18 | m_VirtualizeEffects: 1 19 | m_RequestedDSPBufferSize: 1024 20 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/ProjectSettings/ClusterInputManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!236 &1 4 | ClusterInputManager: 5 | m_ObjectHideFlags: 0 6 | m_Inputs: [] 7 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/ProjectSettings/DynamicsManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!55 &1 4 | PhysicsManager: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 11 7 | m_Gravity: {x: 0, y: -9.81, z: 0} 8 | m_DefaultMaterial: {fileID: 0} 9 | m_BounceThreshold: 2 10 | m_SleepThreshold: 0.005 11 | m_DefaultContactOffset: 0.01 12 | m_DefaultSolverIterations: 6 13 | m_DefaultSolverVelocityIterations: 1 14 | m_QueriesHitBackfaces: 0 15 | m_QueriesHitTriggers: 1 16 | m_EnableAdaptiveForce: 0 17 | m_ClothInterCollisionDistance: 0 18 | m_ClothInterCollisionStiffness: 0 19 | m_ContactsGeneration: 1 20 | m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 21 | m_AutoSimulation: 1 22 | m_AutoSyncTransforms: 0 23 | m_ReuseCollisionCallbacks: 1 24 | m_ClothInterCollisionSettingsToggle: 0 25 | m_ContactPairsMode: 0 26 | m_BroadphaseType: 0 27 | m_WorldBounds: 28 | m_Center: {x: 0, y: 0, z: 0} 29 | m_Extent: {x: 250, y: 250, z: 250} 30 | m_WorldSubdivisions: 8 31 | m_FrictionType: 0 32 | m_EnableEnhancedDeterminism: 0 33 | m_EnableUnifiedHeightmaps: 1 34 | m_DefaultMaxAngluarSpeed: 7 35 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/ProjectSettings/EditorBuildSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1045 &1 4 | EditorBuildSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | m_Scenes: 8 | - enabled: 1 9 | path: Assets/Scenes/MMOLoginScene.unity 10 | guid: 289aa79521b652d4a9163d8803b209ef 11 | - enabled: 1 12 | path: Assets/Scenes/TowerScene.unity 13 | guid: 9fc0d4010bbf28b4594072e72b8655ab 14 | m_configObjects: {} 15 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/ProjectSettings/EditorSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!159 &1 4 | EditorSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 11 7 | m_ExternalVersionControlSupport: Visible Meta Files 8 | m_SerializationMode: 2 9 | m_LineEndingsForNewScripts: 0 10 | m_DefaultBehaviorMode: 0 11 | m_PrefabRegularEnvironment: {fileID: 0} 12 | m_PrefabUIEnvironment: {fileID: 0} 13 | m_SpritePackerMode: 0 14 | m_SpritePackerPaddingPower: 1 15 | m_EtcTextureCompressorBehavior: 1 16 | m_EtcTextureFastCompressor: 1 17 | m_EtcTextureNormalCompressor: 2 18 | m_EtcTextureBestCompressor: 4 19 | m_ProjectGenerationIncludedExtensions: txt;xml;fnt;cd;asmdef;rsp;asmref 20 | m_ProjectGenerationRootNamespace: 21 | m_CollabEditorSettings: 22 | inProgressEnabled: 1 23 | m_EnableTextureStreamingInEditMode: 1 24 | m_EnableTextureStreamingInPlayMode: 1 25 | m_AsyncShaderCompilation: 1 26 | m_EnterPlayModeOptionsEnabled: 0 27 | m_EnterPlayModeOptions: 3 28 | m_ShowLightmapResolutionOverlay: 1 29 | m_UseLegacyProbeSampleCount: 0 30 | m_SerializeInlineMappingsOnOneLine: 1 -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/ProjectSettings/NavMeshAreas.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!126 &1 4 | NavMeshProjectSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | areas: 8 | - name: Walkable 9 | cost: 1 10 | - name: Not Walkable 11 | cost: 1 12 | - name: Jump 13 | cost: 2 14 | - name: 15 | cost: 1 16 | - name: 17 | cost: 1 18 | - name: 19 | cost: 1 20 | - name: 21 | cost: 1 22 | - name: 23 | cost: 1 24 | - name: 25 | cost: 1 26 | - name: 27 | cost: 1 28 | - name: 29 | cost: 1 30 | - name: 31 | cost: 1 32 | - name: 33 | cost: 1 34 | - name: 35 | cost: 1 36 | - name: 37 | cost: 1 38 | - name: 39 | cost: 1 40 | - name: 41 | cost: 1 42 | - name: 43 | cost: 1 44 | - name: 45 | cost: 1 46 | - name: 47 | cost: 1 48 | - name: 49 | cost: 1 50 | - name: 51 | cost: 1 52 | - name: 53 | cost: 1 54 | - name: 55 | cost: 1 56 | - name: 57 | cost: 1 58 | - name: 59 | cost: 1 60 | - name: 61 | cost: 1 62 | - name: 63 | cost: 1 64 | - name: 65 | cost: 1 66 | - name: 67 | cost: 1 68 | - name: 69 | cost: 1 70 | - name: 71 | cost: 1 72 | m_LastAgentTypeID: -887442657 73 | m_Settings: 74 | - serializedVersion: 2 75 | agentTypeID: 0 76 | agentRadius: 0.5 77 | agentHeight: 2 78 | agentSlope: 45 79 | agentClimb: 0.75 80 | ledgeDropHeight: 0 81 | maxJumpAcrossDistance: 0 82 | minRegionArea: 2 83 | manualCellSize: 0 84 | cellSize: 0.16666667 85 | manualTileSize: 0 86 | tileSize: 256 87 | accuratePlacement: 0 88 | debug: 89 | m_Flags: 0 90 | m_SettingNames: 91 | - Humanoid 92 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/ProjectSettings/PackageManagerSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &1 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 61 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_GameObject: {fileID: 0} 10 | m_Enabled: 1 11 | m_EditorHideFlags: 0 12 | m_Script: {fileID: 13964, guid: 0000000000000000e000000000000000, type: 0} 13 | m_Name: 14 | m_EditorClassIdentifier: 15 | m_EnablePreviewPackages: 0 16 | m_EnablePackageDependencies: 0 17 | m_AdvancedSettingsExpanded: 1 18 | m_ScopedRegistriesSettingsExpanded: 1 19 | oneTimeWarningShown: 0 20 | m_Registries: 21 | - m_Id: main 22 | m_Name: 23 | m_Url: https://packages.unity.com 24 | m_Scopes: [] 25 | m_IsDefault: 1 26 | m_Capabilities: 7 27 | m_UserSelectedRegistryName: 28 | m_UserAddingNewScopedRegistry: 0 29 | m_RegistryInfoDraft: 30 | m_ErrorMessage: 31 | m_Original: 32 | m_Id: 33 | m_Name: 34 | m_Url: 35 | m_Scopes: [] 36 | m_IsDefault: 0 37 | m_Capabilities: 0 38 | m_Modified: 0 39 | m_Name: 40 | m_Url: 41 | m_Scopes: 42 | - 43 | m_SelectedScopeIndex: 0 44 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/ProjectSettings/Physics2DSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!19 &1 4 | Physics2DSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 4 7 | m_Gravity: {x: 0, y: -9.81} 8 | m_DefaultMaterial: {fileID: 0} 9 | m_VelocityIterations: 8 10 | m_PositionIterations: 3 11 | m_VelocityThreshold: 1 12 | m_MaxLinearCorrection: 0.2 13 | m_MaxAngularCorrection: 8 14 | m_MaxTranslationSpeed: 100 15 | m_MaxRotationSpeed: 360 16 | m_BaumgarteScale: 0.2 17 | m_BaumgarteTimeOfImpactScale: 0.75 18 | m_TimeToSleep: 0.5 19 | m_LinearSleepTolerance: 0.01 20 | m_AngularSleepTolerance: 2 21 | m_DefaultContactOffset: 0.01 22 | m_JobOptions: 23 | serializedVersion: 2 24 | useMultithreading: 0 25 | useConsistencySorting: 0 26 | m_InterpolationPosesPerJob: 100 27 | m_NewContactsPerJob: 30 28 | m_CollideContactsPerJob: 100 29 | m_ClearFlagsPerJob: 200 30 | m_ClearBodyForcesPerJob: 200 31 | m_SyncDiscreteFixturesPerJob: 50 32 | m_SyncContinuousFixturesPerJob: 50 33 | m_FindNearestContactsPerJob: 100 34 | m_UpdateTriggerContactsPerJob: 100 35 | m_IslandSolverCostThreshold: 100 36 | m_IslandSolverBodyCostScale: 1 37 | m_IslandSolverContactCostScale: 10 38 | m_IslandSolverJointCostScale: 10 39 | m_IslandSolverBodiesPerJob: 50 40 | m_IslandSolverContactsPerJob: 50 41 | m_AutoSimulation: 1 42 | m_QueriesHitTriggers: 1 43 | m_QueriesStartInColliders: 1 44 | m_CallbacksOnDisable: 1 45 | m_ReuseCollisionCallbacks: 1 46 | m_AutoSyncTransforms: 0 47 | m_AlwaysShowColliders: 0 48 | m_ShowColliderSleep: 1 49 | m_ShowColliderContacts: 0 50 | m_ShowColliderAABB: 0 51 | m_ContactArrowScale: 0.2 52 | m_ColliderAwakeColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.7529412} 53 | m_ColliderAsleepColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.36078432} 54 | m_ColliderContactColor: {r: 1, g: 0, b: 1, a: 0.6862745} 55 | m_ColliderAABBColor: {r: 1, g: 1, b: 0, a: 0.2509804} 56 | m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 57 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/ProjectSettings/PresetManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1386491679 &1 4 | PresetManager: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | m_DefaultPresets: {} 8 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/ProjectSettings/ProjectVersion.txt: -------------------------------------------------------------------------------- 1 | m_EditorVersion: 2020.3.1f1 2 | m_EditorVersionWithRevision: 2020.3.1f1 (77a89f25062f) 3 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/ProjectSettings/TagManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!78 &1 4 | TagManager: 5 | serializedVersion: 2 6 | tags: [] 7 | layers: 8 | - Default 9 | - TransparentFX 10 | - Ignore Raycast 11 | - Compass 12 | - Water 13 | - UI 14 | - 15 | - 16 | - 17 | - 18 | - 19 | - 20 | - 21 | - 22 | - 23 | - 24 | - 25 | - 26 | - 27 | - 28 | - 29 | - 30 | - 31 | - 32 | - 33 | - 34 | - 35 | - 36 | - 37 | - 38 | - 39 | - 40 | m_SortingLayers: 41 | - name: Default 42 | uniqueID: 0 43 | locked: 0 44 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/ProjectSettings/TimeManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!5 &1 4 | TimeManager: 5 | m_ObjectHideFlags: 0 6 | Fixed Timestep: 0.02 7 | Maximum Allowed Timestep: 0.33333334 8 | m_TimeScale: 1 9 | Maximum Particle Timestep: 0.03 10 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/ProjectSettings/UnityConnectSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!310 &1 4 | UnityConnectSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 1 7 | m_Enabled: 0 8 | m_TestMode: 0 9 | m_EventOldUrl: https://api.uca.cloud.unity3d.com/v1/events 10 | m_EventUrl: https://cdp.cloud.unity3d.com/v1/events 11 | m_ConfigUrl: https://config.uca.cloud.unity3d.com 12 | m_TestInitMode: 0 13 | CrashReportingSettings: 14 | m_EventUrl: https://perf-events.cloud.unity3d.com 15 | m_Enabled: 0 16 | m_LogBufferSize: 10 17 | m_CaptureEditorExceptions: 1 18 | UnityPurchasingSettings: 19 | m_Enabled: 0 20 | m_TestMode: 0 21 | UnityAnalyticsSettings: 22 | m_Enabled: 0 23 | m_TestMode: 0 24 | m_InitializeOnStartup: 1 25 | UnityAdsSettings: 26 | m_Enabled: 0 27 | m_InitializeOnStartup: 1 28 | m_TestMode: 0 29 | m_IosGameId: 30 | m_AndroidGameId: 31 | m_GameIds: {} 32 | m_GameId: 33 | PerformanceReportingSettings: 34 | m_Enabled: 0 35 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/ProjectSettings/VFXManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!937362698 &1 4 | VFXManager: 5 | m_ObjectHideFlags: 0 6 | m_IndirectShader: {fileID: 0} 7 | m_CopyBufferShader: {fileID: 0} 8 | m_SortShader: {fileID: 0} 9 | m_StripUpdateShader: {fileID: 0} 10 | m_RenderPipeSettingsPath: 11 | m_FixedTimeStep: 0.016666668 12 | m_MaxDeltaTime: 0.05 13 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/ProjectSettings/VersionControlSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!890905787 &1 4 | VersionControlSettings: 5 | m_ObjectHideFlags: 0 6 | m_Mode: Visible Meta Files 7 | m_CollabEditorSettings: 8 | inProgressEnabled: 1 9 | -------------------------------------------------------------------------------- /ColyseusTechDemo-MMO/ProjectSettings/XRSettings.asset: -------------------------------------------------------------------------------- 1 | { 2 | "m_SettingKeys": [ 3 | "VR Device Disabled", 4 | "VR Device User Alert" 5 | ], 6 | "m_SettingValues": [ 7 | "False", 8 | "False" 9 | ] 10 | } -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | The purpose of this technical demo is to show one method of how to make a **basic** MMO. Including a chat system, player persistence, multiple flowing ColyseusRooms and networked interactable objects. It is important to note that this demo **does not** include sharding or any other methods of load balancing that one would need for a production scale MMO. This demo is designed to work with Colyseus version 0.14.7 and [Unity version 2020.3.1f1](https://unity3d.com/unity/qa/lts-releases). 2 | 3 | Please check our [documentation](https://docs.colyseus.io/demo/mmo/) for more information about utilizing this demo 4 | 5 | ![Screenshot](screenshot.PNG) 6 | -------------------------------------------------------------------------------- /Server/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | -------------------------------------------------------------------------------- /Server/.vscode/launch.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "0.2.0", 3 | "configurations": [ 4 | { 5 | "name": "Debug", 6 | "type": "pwa-node", 7 | "request": "launch", 8 | "runtimeExecutable": "node", 9 | "runtimeArgs": ["--nolazy", "-r", "ts-node/register/transpile-only"], 10 | "args": ["src/index.ts"], 11 | "cwd": "${workspaceRoot}", 12 | "internalConsoleOptions": "openOnSessionStart", 13 | "resolveSourceMapLocations": [ 14 | "${workspaceFolder}/**", 15 | "!**/node_modules/**" 16 | ], 17 | "skipFiles": ["/**", "node_modules/**"] 18 | } 19 | ] 20 | } 21 | -------------------------------------------------------------------------------- /Server/README.md: -------------------------------------------------------------------------------- 1 | # Welcome to Colyseus! 2 | 3 | This project has been created using [⚔️ `create-colyseus-app`](https://github.com/colyseus/create-colyseus-app/) - an npm init template for kick starting a Colyseus project in TypeScript. 4 | 5 | [Documentation](http://docs.colyseus.io/) 6 | 7 | ## :crossed_swords: Usage 8 | 9 | ``` 10 | npm start 11 | ``` 12 | 13 | ## Structure 14 | 15 | - `index.ts`: main entry point, register an empty room handler and attach [`@colyseus/monitor`](https://github.com/colyseus/colyseus-monitor) 16 | - `src/rooms/MyRoom.ts`: an empty room handler for you to implement your logic 17 | - `src/rooms/schema/MyRoomState.ts`: an empty schema used on your room's state. 18 | - `loadtest/example.ts`: scriptable client for the loadtest tool (see `npm run loadtest`) 19 | - `package.json`: 20 | - `scripts`: 21 | - `npm start`: runs `ts-node-dev index.ts` 22 | - `npm run loadtest`: runs the [`@colyseus/loadtest`](https://github.com/colyseus/colyseus-loadtest/) tool for testing the connection, using the `loadtest/example.ts` script. 23 | - `tsconfig.json`: TypeScript configuration file 24 | 25 | 26 | ## License 27 | 28 | MIT 29 | -------------------------------------------------------------------------------- /Server/arena.env: -------------------------------------------------------------------------------- 1 | NODE_ENV=production 2 | DEMO_DATABASE=mongodb://localhost:27017/demo?retryWrites=true&w=majority -------------------------------------------------------------------------------- /Server/development.env: -------------------------------------------------------------------------------- 1 | NODE_ENV=development -------------------------------------------------------------------------------- /Server/lib/arena.env: -------------------------------------------------------------------------------- 1 | NODE_ENV=production 2 | DEMO_DATABASE=mongodb+srv://fazri:lucid!!S1914@lsdevcluster0.a2pcc.gcp.mongodb.net/TechDemo4?retryWrites=true&w=majority -------------------------------------------------------------------------------- /Server/lib/config/database.config.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { 3 | function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } 4 | return new (P || (P = Promise))(function (resolve, reject) { 5 | function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } 6 | function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } 7 | function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } 8 | step((generator = generator.apply(thisArg, _arguments || [])).next()); 9 | }); 10 | }; 11 | var __importDefault = (this && this.__importDefault) || function (mod) { 12 | return (mod && mod.__esModule) ? mod : { "default": mod }; 13 | }; 14 | Object.defineProperty(exports, "__esModule", { value: true }); 15 | exports.connect = exports.DI = void 0; 16 | const core_1 = require("@mikro-orm/core"); 17 | const mikro_orm_config_1 = __importDefault(require("./mikro-orm.config")); 18 | const UserEntity_1 = require("../entities/UserEntity"); 19 | exports.DI = {}; 20 | function connect() { 21 | return __awaiter(this, void 0, void 0, function* () { 22 | mikro_orm_config_1.default.clientUrl = process.env.DEMO_DATABASE; 23 | exports.DI.orm = yield core_1.MikroORM.init(mikro_orm_config_1.default); 24 | exports.DI.em = exports.DI.orm.em; 25 | exports.DI.userRepository = exports.DI.orm.em.getRepository(UserEntity_1.User); 26 | }); 27 | } 28 | exports.connect = connect; 29 | -------------------------------------------------------------------------------- /Server/lib/config/mikro-orm.config.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | Object.defineProperty(exports, "__esModule", { value: true }); 3 | const UserEntity_1 = require("../entities/UserEntity"); 4 | const options = { 5 | type: 'mongo', 6 | entities: [UserEntity_1.User], 7 | dbName: 'TechDemo4' 8 | }; 9 | exports.default = options; 10 | -------------------------------------------------------------------------------- /Server/lib/entities/BaseEntity.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { 3 | var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; 4 | if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); 5 | else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; 6 | return c > 3 && r && Object.defineProperty(target, key, r), r; 7 | }; 8 | var __metadata = (this && this.__metadata) || function (k, v) { 9 | if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); 10 | }; 11 | Object.defineProperty(exports, "__esModule", { value: true }); 12 | exports.BaseEntity = void 0; 13 | const core_1 = require("@mikro-orm/core"); 14 | const mongodb_1 = require("@mikro-orm/mongodb"); 15 | class BaseEntity { 16 | constructor() { 17 | this.createdAt = new Date(); 18 | this.updatedAt = new Date(); 19 | } 20 | } 21 | __decorate([ 22 | core_1.PrimaryKey(), 23 | __metadata("design:type", mongodb_1.ObjectId) 24 | ], BaseEntity.prototype, "_id", void 0); 25 | __decorate([ 26 | core_1.SerializedPrimaryKey(), 27 | __metadata("design:type", String) 28 | ], BaseEntity.prototype, "id", void 0); 29 | __decorate([ 30 | core_1.Property(), 31 | __metadata("design:type", Object) 32 | ], BaseEntity.prototype, "createdAt", void 0); 33 | __decorate([ 34 | core_1.Property({ onUpdate: () => new Date() }), 35 | __metadata("design:type", Object) 36 | ], BaseEntity.prototype, "updatedAt", void 0); 37 | exports.BaseEntity = BaseEntity; 38 | -------------------------------------------------------------------------------- /Server/lib/entities/TestEntity.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { 3 | var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; 4 | if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); 5 | else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; 6 | return c > 3 && r && Object.defineProperty(target, key, r), r; 7 | }; 8 | var __metadata = (this && this.__metadata) || function (k, v) { 9 | if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); 10 | }; 11 | Object.defineProperty(exports, "__esModule", { value: true }); 12 | exports.TestEntity = void 0; 13 | const core_1 = require("@mikro-orm/core"); 14 | const BaseEntity_1 = require("./BaseEntity"); 15 | let TestEntity = class TestEntity extends BaseEntity_1.BaseEntity { 16 | }; 17 | __decorate([ 18 | core_1.Property(), 19 | __metadata("design:type", String) 20 | ], TestEntity.prototype, "email", void 0); 21 | __decorate([ 22 | core_1.Property(), 23 | __metadata("design:type", String) 24 | ], TestEntity.prototype, "username", void 0); 25 | TestEntity = __decorate([ 26 | core_1.Entity() 27 | ], TestEntity); 28 | exports.TestEntity = TestEntity; 29 | -------------------------------------------------------------------------------- /Server/lib/helpers/Vectors.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | Object.defineProperty(exports, "__esModule", { value: true }); 3 | exports.Vector2 = exports.Vector3 = exports.Vector = void 0; 4 | class Vector { 5 | } 6 | exports.Vector = Vector; 7 | class Vector3 extends Vector { 8 | constructor(x = 0, y = 0, z = 0) { 9 | super(); 10 | this.x = x; 11 | this.y = y; 12 | this.z = z; 13 | } 14 | } 15 | exports.Vector3 = Vector3; 16 | class Vector2 extends Vector { 17 | constructor(x = 0, y = 0) { 18 | super(); 19 | this.x = x; 20 | this.y = y; 21 | } 22 | } 23 | exports.Vector2 = Vector2; 24 | -------------------------------------------------------------------------------- /Server/lib/helpers/interactableObjectFactory.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | Object.defineProperty(exports, "__esModule", { value: true }); 3 | exports.getStateForType = void 0; 4 | const RoomState_1 = require("../rooms/schema/RoomState"); 5 | /** 6 | * Begin the process to matchmake into a room. 7 | * @param room The room name for the user to matchmake into. 8 | * @param progress The room filter representing the grid the user is currently in. 9 | * @returns The seat reservation for the room. 10 | */ 11 | // export async function matchMakeToRoom(room: string = "lobby_room", progress: string = "0,0"): Promise { 12 | // return await matchMaker.joinOrCreate(room, { progress }); 13 | // } 14 | function getStateForType(type) { 15 | let state = new RoomState_1.InteractableState(); 16 | //Any new types need an appropriate constructor in here or they will return empty 17 | switch (type) { 18 | case ("DEFAULT"): 19 | { 20 | state.assign({ 21 | coinChange: 0, 22 | interactableType: type, 23 | useDuration: 5100.0 24 | }); 25 | break; 26 | } 27 | case ("BUTTON_PODIUM"): 28 | { 29 | state.assign({ 30 | coinChange: 1, 31 | interactableType: type, 32 | useDuration: 10000.0 33 | }); 34 | break; 35 | } 36 | case ("COIN_OP"): 37 | { 38 | state.assign({ 39 | coinChange: -1, 40 | interactableType: type, 41 | useDuration: 5100.0 42 | }); 43 | break; 44 | } 45 | case ("TELEPORTER"): 46 | { 47 | state.assign({ 48 | coinChange: -2, 49 | interactableType: type, 50 | useDuration: 5100.0 51 | }); 52 | break; 53 | } 54 | } 55 | return state; 56 | } 57 | exports.getStateForType = getStateForType; 58 | -------------------------------------------------------------------------------- /Server/lib/helpers/logger.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | const winston = require('winston'); 3 | var logLevel = 'info'; 4 | if (process.env.NODE_ENV !== 'production') { 5 | logLevel = 'silly'; //silly 6 | } 7 | else { 8 | logLevel = 'info'; 9 | } 10 | const logger = winston.createLogger({ 11 | level: logLevel, 12 | format: winston.format.combine(winston.format.timestamp({ 13 | format: 'YYYY-MM-DD HH:mm:ss' 14 | }), winston.format.errors({ stack: true }), winston.format.splat(), winston.format.json()), 15 | timestamp: true, 16 | defaultMeta: { service: 'api' }, 17 | transports: [ 18 | // Adds extra line of json logs before human logs 19 | // new winston.transports.Console({ 20 | // colorize: true, 21 | // name: 'ERRORS', 22 | // timestamp: () => new Date(), 23 | // level: 'error'}), 24 | // new winston.transports.Console({ 25 | // colorize: true, 26 | // name: 'LOGS', 27 | // timestamp: () => new Date()}) 28 | ] 29 | }); 30 | logger.setLevels({ 31 | debug: 0, 32 | info: 1, 33 | silly: 2, 34 | warn: 3, 35 | error: 4, 36 | }); 37 | if (process.env.NODE_ENV !== 'production') { 38 | logger.add(new winston.transports.Console({ 39 | level: logLevel || 'silly', 40 | format: winston.format.combine(winston.format.colorize(), winston.format.prettyPrint(), winston.format.splat(), winston.format.printf((info) => { 41 | if (info instanceof Error) { 42 | return `[${info.level}] : ${info.timestamp} : ${info.message} ${info.stack}`; 43 | } 44 | return `[${info.level}] : ${info.timestamp} : ${info.message}`; 45 | })), 46 | handleExceptions: true, 47 | humanReadableUnhandledException: true, 48 | exitOnError: false, 49 | timestamp: true 50 | })); 51 | } 52 | else { 53 | logger.add(new winston.transports.Console({ 54 | format: winston.format.combine( 55 | //winston.format.colorize(), 56 | winston.format.cli()) 57 | })); 58 | } 59 | logger.stream = { 60 | write: function (message, encoding) { 61 | logger.info(message); 62 | } 63 | }; 64 | module.exports = logger; 65 | -------------------------------------------------------------------------------- /Server/lib/helpers/matchmakerHelper.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { 3 | function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } 4 | return new (P || (P = Promise))(function (resolve, reject) { 5 | function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } 6 | function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } 7 | function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } 8 | step((generator = generator.apply(thisArg, _arguments || [])).next()); 9 | }); 10 | }; 11 | Object.defineProperty(exports, "__esModule", { value: true }); 12 | exports.matchMakeToRoom = void 0; 13 | const colyseus_1 = require("colyseus"); 14 | /** 15 | * Begin the process to matchmake into a room. 16 | * @param room The room name for the user to matchmake into. 17 | * @param progress The room filter representing the grid the user is currently in. 18 | * @returns The seat reservation for the room. 19 | */ 20 | function matchMakeToRoom(room = "lobby_room", progress = "0,0") { 21 | return __awaiter(this, void 0, void 0, function* () { 22 | return yield colyseus_1.matchMaker.joinOrCreate(room, { progress }); 23 | }); 24 | } 25 | exports.matchMakeToRoom = matchMakeToRoom; 26 | -------------------------------------------------------------------------------- /Server/lib/index.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | var __importDefault = (this && this.__importDefault) || function (mod) { 3 | return (mod && mod.__esModule) ? mod : { "default": mod }; 4 | }; 5 | Object.defineProperty(exports, "__esModule", { value: true }); 6 | /** 7 | * IMPORTANT: 8 | * --------- 9 | * Do not manually edit this file if you'd like to use Colyseus Arena 10 | * 11 | * If you're self-hosting (without Arena), you can manually instantiate a 12 | * Colyseus Server as documented here: 👉 https://docs.colyseus.io/server/api/#constructor-options 13 | */ 14 | const arena_1 = require("@colyseus/arena"); 15 | // Import arena config 16 | const arena_config_1 = __importDefault(require("./arena.config")); 17 | const path_1 = __importDefault(require("path")); 18 | const dotenv_1 = require("dotenv"); 19 | dotenv_1.config({ path: path_1.default.join(__dirname, "../arena.env") }); 20 | // Create and listen on 2567 (or PORT environment variable.) 21 | arena_1.listen(arena_config_1.default); 22 | -------------------------------------------------------------------------------- /Server/lib/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "private": true, 3 | "name": "my-app", 4 | "version": "1.0.0", 5 | "description": "npm init template for bootstrapping an empty Colyseus project", 6 | "main": "lib/index.js", 7 | "scripts": { 8 | "start": "ts-node-dev --respawn --transpile-only src/index.ts", 9 | "loadtest": "colyseus-loadtest loadtest/example.ts --room my_room --numClients 2", 10 | "build": "npm run clean && tsc && node node_modules/copyfiles/copyfiles package.json ./lib && node node_modules/copyfiles/copyfiles arena.env ./lib", 11 | "clean": "node node_modules/rimraf/bin lib", 12 | "schema-codegen": "schema-codegen src/rooms/schema/RoomState.ts --csharp --output ../ColyseusTechDemo-MMO/Assets/Scripts/States/", 13 | "test": "echo \"Error: no test specified\" && exit 1" 14 | }, 15 | "author": "", 16 | "license": "UNLICENSED", 17 | "bugs": { 18 | "url": "https://github.com/colyseus/create-colyseus/issues" 19 | }, 20 | "homepage": "https://github.com/colyseus/create-colyseus#readme", 21 | "devDependencies": { 22 | "@colyseus/loadtest": "^0.14.3", 23 | "@types/cors": "^2.8.6", 24 | "@types/express": "^4.17.1", 25 | "copyfiles": "^2.4.1", 26 | "rimraf": "^2.7.1", 27 | "ts-node": "^8.1.0", 28 | "ts-node-dev": "^1.0.0-pre.63", 29 | "typescript": "^3.4.5" 30 | }, 31 | "dependencies": { 32 | "@colyseus/arena": "^0.14.9", 33 | "@colyseus/monitor": "^0.14.0", 34 | "@colyseus/social": "^0.10.9", 35 | "@mikro-orm/core": "^4.5.5", 36 | "@mikro-orm/mongodb": "^4.5.5", 37 | "colyseus": "^0.14.0", 38 | "cors": "^2.8.5", 39 | "dotenv": "^10.0.0", 40 | "express": "^4.16.4", 41 | "winston": "^3.3.3" 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /Server/lib/rooms/schema/AvatarState.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { 3 | var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; 4 | if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); 5 | else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; 6 | return c > 3 && r && Object.defineProperty(target, key, r), r; 7 | }; 8 | var __metadata = (this && this.__metadata) || function (k, v) { 9 | if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); 10 | }; 11 | Object.defineProperty(exports, "__esModule", { value: true }); 12 | exports.AvatarState = void 0; 13 | const schema_1 = require("@colyseus/schema"); 14 | class AvatarState extends schema_1.Schema { 15 | constructor() { 16 | super(...arguments); 17 | this.skinColor = "default"; 18 | this.shirtColor = "default"; 19 | this.pantsColor = "default"; 20 | this.hatColor = "default"; 21 | this.hatChoice = 1; 22 | } 23 | } 24 | __decorate([ 25 | schema_1.type("string"), 26 | __metadata("design:type", String) 27 | ], AvatarState.prototype, "skinColor", void 0); 28 | __decorate([ 29 | schema_1.type("string"), 30 | __metadata("design:type", String) 31 | ], AvatarState.prototype, "shirtColor", void 0); 32 | __decorate([ 33 | schema_1.type("string"), 34 | __metadata("design:type", String) 35 | ], AvatarState.prototype, "pantsColor", void 0); 36 | __decorate([ 37 | schema_1.type("string"), 38 | __metadata("design:type", String) 39 | ], AvatarState.prototype, "hatColor", void 0); 40 | __decorate([ 41 | schema_1.type("number"), 42 | __metadata("design:type", Number) 43 | ], AvatarState.prototype, "hatChoice", void 0); 44 | exports.AvatarState = AvatarState; 45 | -------------------------------------------------------------------------------- /Server/lib/rooms/schema/Position.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { 3 | var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; 4 | if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); 5 | else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; 6 | return c > 3 && r && Object.defineProperty(target, key, r), r; 7 | }; 8 | var __metadata = (this && this.__metadata) || function (k, v) { 9 | if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); 10 | }; 11 | Object.defineProperty(exports, "__esModule", { value: true }); 12 | exports.Position = void 0; 13 | const schema_1 = require("@colyseus/schema"); 14 | class Position extends schema_1.Schema { 15 | } 16 | __decorate([ 17 | schema_1.type("number"), 18 | __metadata("design:type", Number) 19 | ], Position.prototype, "x", void 0); 20 | __decorate([ 21 | schema_1.type("number"), 22 | __metadata("design:type", Number) 23 | ], Position.prototype, "y", void 0); 24 | __decorate([ 25 | schema_1.type("number"), 26 | __metadata("design:type", Number) 27 | ], Position.prototype, "z", void 0); 28 | exports.Position = Position; 29 | -------------------------------------------------------------------------------- /Server/lib/rooms/schema/Rotation.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { 3 | var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; 4 | if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); 5 | else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; 6 | return c > 3 && r && Object.defineProperty(target, key, r), r; 7 | }; 8 | var __metadata = (this && this.__metadata) || function (k, v) { 9 | if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); 10 | }; 11 | Object.defineProperty(exports, "__esModule", { value: true }); 12 | exports.Rotation = void 0; 13 | const schema_1 = require("@colyseus/schema"); 14 | class Rotation extends schema_1.Schema { 15 | } 16 | __decorate([ 17 | schema_1.type("number"), 18 | __metadata("design:type", Number) 19 | ], Rotation.prototype, "x", void 0); 20 | __decorate([ 21 | schema_1.type("number"), 22 | __metadata("design:type", Number) 23 | ], Rotation.prototype, "y", void 0); 24 | __decorate([ 25 | schema_1.type("number"), 26 | __metadata("design:type", Number) 27 | ], Rotation.prototype, "z", void 0); 28 | exports.Rotation = Rotation; 29 | -------------------------------------------------------------------------------- /Server/lib/routes/userRoutes.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { 3 | if (k2 === undefined) k2 = k; 4 | Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); 5 | }) : (function(o, m, k, k2) { 6 | if (k2 === undefined) k2 = k; 7 | o[k2] = m[k]; 8 | })); 9 | var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { 10 | Object.defineProperty(o, "default", { enumerable: true, value: v }); 11 | }) : function(o, v) { 12 | o["default"] = v; 13 | }); 14 | var __importStar = (this && this.__importStar) || function (mod) { 15 | if (mod && mod.__esModule) return mod; 16 | var result = {}; 17 | if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); 18 | __setModuleDefault(result, mod); 19 | return result; 20 | }; 21 | var __importDefault = (this && this.__importDefault) || function (mod) { 22 | return (mod && mod.__esModule) ? mod : { "default": mod }; 23 | }; 24 | Object.defineProperty(exports, "__esModule", { value: true }); 25 | const express_1 = __importDefault(require("express")); 26 | const authController = __importStar(require("../controllers/authController")); 27 | const router = express_1.default.Router(); 28 | // Register our sign up and login routes 29 | router.post("/signup", authController.prepEmail, authController.signUp); 30 | router.post("/login", authController.prepEmail, authController.logIn); 31 | exports.default = router; 32 | -------------------------------------------------------------------------------- /Server/loadtest/example.ts: -------------------------------------------------------------------------------- 1 | import { Room, Client } from "colyseus.js"; 2 | 3 | export function requestJoinOptions (this: Client, i: number) { 4 | return { requestNumber: i }; 5 | } 6 | 7 | export function onJoin(this: Room) { 8 | console.log(this.sessionId, "joined."); 9 | 10 | this.onMessage("*", (type, message) => { 11 | console.log(this.sessionId, "received:", type, message); 12 | }); 13 | } 14 | 15 | export function onLeave(this: Room) { 16 | console.log(this.sessionId, "left."); 17 | } 18 | 19 | export function onError(this: Room, err: any) { 20 | console.log(this.sessionId, "!! ERROR !!", err.message); 21 | } 22 | 23 | export function onStateChange(this: Room, state: any) { 24 | console.log(this.sessionId, "new state:", state); 25 | } 26 | -------------------------------------------------------------------------------- /Server/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "private": true, 3 | "name": "my-app", 4 | "version": "1.0.0", 5 | "description": "npm init template for bootstrapping an empty Colyseus project", 6 | "main": "lib/index.js", 7 | "scripts": { 8 | "start": "ts-node-dev --respawn --transpile-only src/index.ts", 9 | "loadtest": "colyseus-loadtest loadtest/example.ts --room my_room --numClients 2", 10 | "build": "npm run clean && tsc && node node_modules/copyfiles/copyfiles package.json ./lib && node node_modules/copyfiles/copyfiles arena.env ./lib", 11 | "clean": "node node_modules/rimraf/bin lib", 12 | "schema-codegen": "schema-codegen src/rooms/schema/RoomState.ts --csharp --output ../ColyseusTechDemo-MMO/Assets/Scripts/States/", 13 | "test": "echo \"Error: no test specified\" && exit 1" 14 | }, 15 | "author": "", 16 | "license": "UNLICENSED", 17 | "bugs": { 18 | "url": "https://github.com/colyseus/create-colyseus/issues" 19 | }, 20 | "homepage": "https://github.com/colyseus/create-colyseus#readme", 21 | "devDependencies": { 22 | "@colyseus/loadtest": "^0.14.3", 23 | "@types/cors": "^2.8.6", 24 | "@types/express": "^4.17.1", 25 | "copyfiles": "^2.4.1", 26 | "rimraf": "^2.7.1", 27 | "ts-node": "^8.1.0", 28 | "ts-node-dev": "^1.0.0-pre.63", 29 | "typescript": "^3.4.5" 30 | }, 31 | "dependencies": { 32 | "@colyseus/arena": "^0.14.9", 33 | "@colyseus/monitor": "^0.14.0", 34 | "@colyseus/social": "^0.10.9", 35 | "@mikro-orm/core": "^4.5.5", 36 | "@mikro-orm/mongodb": "^4.5.5", 37 | "bcrypt": "^5.0.1", 38 | "colyseus": "^0.14.0", 39 | "cors": "^2.8.5", 40 | "dotenv": "^10.0.0", 41 | "express": "^4.16.4", 42 | "winston": "^3.3.3" 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /Server/src/arena.config.ts: -------------------------------------------------------------------------------- 1 | import Arena from "@colyseus/arena"; 2 | import { monitor } from "@colyseus/monitor"; 3 | import { MikroORM } from "@mikro-orm/core"; 4 | import { RequestContext } from "@mikro-orm/core"; 5 | import express from "express"; 6 | 7 | const logger = require("./helpers/logger"); 8 | import { connect, DI } from "./config/database.config"; 9 | import userRoutes from "./routes/userRoutes"; 10 | 11 | /** 12 | * Import your Room files 13 | */ 14 | import { MMORoom } from "./rooms/MMORoom"; 15 | import { ChatRoom } from "./rooms/ChatRoom"; 16 | 17 | export default Arena({ 18 | getId: () => "Your Colyseus App", 19 | 20 | initializeGameServer: (gameServer) => { 21 | 22 | /** 23 | * Define your room handlers: 24 | */ 25 | gameServer.define('chat_room', ChatRoom).filterBy(["roomID"]); 26 | gameServer.define('lobby_room', MMORoom).filterBy(["progress"]); // Filter room by "progress" (which grid we're wanting to join EX: -1x2) 27 | 28 | }, 29 | 30 | initializeExpress: (app) => { 31 | /** 32 | * Bind your custom express routes here: 33 | */ 34 | // Body parser - reads data from request body into json object 35 | app.use(express.json()); 36 | app.use(express.urlencoded({ extended: true, limit: "10kb" })); 37 | 38 | // 39 | // MikroORM: it is important to create a RequestContext before registering routes that access the database. 40 | // See => https://mikro-orm.io/docs/identity-map/ 41 | // 42 | app.use((req, res, next) => RequestContext.create(DI.orm.em, next)); 43 | 44 | // Register routes for our simple user auth 45 | app.use("/users", userRoutes); 46 | 47 | // Connect to our database 48 | connect().then(async () => { 49 | logger.silly(`*** Connected to Database! ***`); 50 | }); 51 | 52 | app.get("/", (req, res) => { 53 | res.send("It's time to kick ass and chew bubblegum!"); 54 | }); 55 | 56 | /** 57 | * Bind @colyseus/monitor 58 | * It is recommended to protect this route with a password. 59 | * Read more: https://docs.colyseus.io/tools/monitor/ 60 | */ 61 | app.use("/colyseus", monitor()); 62 | }, 63 | 64 | 65 | beforeListen: () => { 66 | /** 67 | * Before before gameServer.listen() is called. 68 | */ 69 | } 70 | }); -------------------------------------------------------------------------------- /Server/src/config/database.config.ts: -------------------------------------------------------------------------------- 1 | import { EntityManager, EntityRepository, MikroORM } from '@mikro-orm/core'; 2 | import options from './mikro-orm.config'; 3 | 4 | import { User } from "../entities/UserEntity"; 5 | 6 | /** 7 | * This demo makes use of Mikro ORM to manage the database connection and CRUD operations of our User entity (https://mikro-orm.io/) 8 | */ 9 | 10 | export const DI = {} as { 11 | orm: MikroORM, 12 | em: EntityManager, 13 | userRepository: EntityRepository 14 | }; 15 | 16 | /** 17 | * Initiate connection to the database 18 | */ 19 | export async function connect() { 20 | 21 | options.clientUrl = process.env.DEMO_DATABASE 22 | 23 | DI.orm = await MikroORM.init(options); 24 | 25 | DI.em = DI.orm.em; 26 | } -------------------------------------------------------------------------------- /Server/src/config/mikro-orm.config.ts: -------------------------------------------------------------------------------- 1 | import { Options } from '@mikro-orm/core'; 2 | 3 | import { User } from "../entities/UserEntity"; 4 | 5 | /** 6 | * Mikro ORM Connection options object 7 | * If using a different database other than Mongo DB change 8 | * the "type" as necessary following the guidelines here: https://mikro-orm.io/docs/usage-with-sql 9 | * */ 10 | const options: Options = { 11 | type: 'mongo', 12 | entities: [User], 13 | dbName: 'Colyseus_MMO_Demo' 14 | }; 15 | 16 | export default options; -------------------------------------------------------------------------------- /Server/src/entities/BaseEntity.ts: -------------------------------------------------------------------------------- 1 | import { PrimaryKey, Property, SerializedPrimaryKey } from '@mikro-orm/core'; 2 | import { ObjectId } from '@mikro-orm/mongodb'; 3 | 4 | export abstract class BaseEntity { 5 | 6 | @PrimaryKey() 7 | _id!: ObjectId; 8 | 9 | @SerializedPrimaryKey() 10 | id!: string; 11 | 12 | @Property() 13 | createdAt = new Date(); 14 | 15 | @Property({ onUpdate: () => new Date() }) 16 | updatedAt = new Date(); 17 | 18 | } -------------------------------------------------------------------------------- /Server/src/entities/UserEntity.ts: -------------------------------------------------------------------------------- 1 | import { Entity, Property } from "@mikro-orm/core"; 2 | import { Vector3 } from "../helpers/Vectors"; 3 | import { AvatarState } from "../rooms/schema/AvatarState"; 4 | import { BaseEntity } from './BaseEntity'; 5 | 6 | /** 7 | * Entity to represent the user in the database and throughout the server 8 | */ 9 | @Entity() 10 | export class User extends BaseEntity { 11 | 12 | @Property() username!: string; 13 | @Property() email!: string; 14 | @Property() password!: string; 15 | @Property() pendingSessionId: string; 16 | @Property() pendingSessionTimestamp: number; 17 | @Property() activeSessionId: string; 18 | @Property() progress: string = "0,0"; 19 | @Property() prevGrid: string = "0,0"; 20 | @Property() position: Vector3; 21 | @Property() rotation: Vector3; 22 | @Property() avatar: AvatarState 23 | @Property() coins: number; 24 | } -------------------------------------------------------------------------------- /Server/src/helpers/Vectors.ts: -------------------------------------------------------------------------------- 1 | 2 | export class Vector{ 3 | 4 | } 5 | 6 | export class Vector3 extends Vector { 7 | x: number; 8 | y: number; 9 | z: number; 10 | 11 | constructor(x: number = 0, y: number = 0, z: number = 0) { 12 | super(); 13 | 14 | this.x = x; 15 | this.y = y; 16 | this.z = z; 17 | } 18 | } 19 | 20 | export class Vector2 extends Vector { 21 | x: number; 22 | y: number; 23 | 24 | constructor(x: number = 0, y: number = 0){ 25 | super(); 26 | 27 | this.x = x; 28 | this.y = y; 29 | } 30 | } -------------------------------------------------------------------------------- /Server/src/helpers/interactableObjectFactory.ts: -------------------------------------------------------------------------------- 1 | import { InteractableState } from "../rooms/schema/RoomState" 2 | 3 | /** 4 | * Begin the process to matchmake into a room. 5 | * @param room The room name for the user to matchmake into. 6 | * @param progress The room filter representing the grid the user is currently in. 7 | * @returns The seat reservation for the room. 8 | */ 9 | // export async function matchMakeToRoom(room: string = "lobby_room", progress: string = "0,0"): Promise { 10 | // return await matchMaker.joinOrCreate(room, { progress }); 11 | // } 12 | 13 | export function getStateForType(type: string) : InteractableState { 14 | let state : InteractableState = new InteractableState(); 15 | 16 | //Any new types need an appropriate constructor in here or they will return empty 17 | switch(type){ 18 | case("DEFAULT"): 19 | { 20 | state.assign({ 21 | coinChange : 0, 22 | interactableType : type, 23 | useDuration : 5100.0 24 | }); 25 | break; 26 | } 27 | case("BUTTON_PODIUM"): 28 | { 29 | state.assign({ 30 | coinChange : 1, 31 | interactableType : type, 32 | useDuration : 10000.0 33 | }); 34 | break; 35 | } 36 | case("COIN_OP"): 37 | { 38 | state.assign({ 39 | coinChange : -1, 40 | interactableType : type, 41 | useDuration : 5100.0 42 | }); 43 | break; 44 | } 45 | case("TELEPORTER"): 46 | { 47 | state.assign({ 48 | coinChange : -2, 49 | interactableType : type, 50 | useDuration : 5100.0 51 | }); 52 | break; 53 | } 54 | } 55 | 56 | return state; 57 | } -------------------------------------------------------------------------------- /Server/src/helpers/logger.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | const winston = require('winston'); 3 | 4 | var logLevel = 'info'; 5 | if (process.env.NODE_ENV !== 'production') { 6 | logLevel = 'silly';//silly 7 | } else { 8 | logLevel = 'info'; 9 | } 10 | 11 | const logger = winston.createLogger({ 12 | level: logLevel, 13 | format: winston.format.combine( 14 | winston.format.timestamp({ 15 | format: 'YYYY-MM-DD HH:mm:ss' 16 | }), 17 | winston.format.errors({ stack: true }), 18 | winston.format.splat(), 19 | winston.format.json(), 20 | ), 21 | timestamp: true, 22 | defaultMeta: { service: 'api' }, 23 | transports: [ 24 | // Adds extra line of json logs before human logs 25 | // new winston.transports.Console({ 26 | // colorize: true, 27 | // name: 'ERRORS', 28 | // timestamp: () => new Date(), 29 | // level: 'error'}), 30 | // new winston.transports.Console({ 31 | // colorize: true, 32 | // name: 'LOGS', 33 | // timestamp: () => new Date()}) 34 | ] 35 | }); 36 | 37 | logger.setLevels({ 38 | debug:0, 39 | info: 1, 40 | silly:2, 41 | warn: 3, 42 | error:4, 43 | }); 44 | 45 | 46 | if (process.env.NODE_ENV !== 'production') { 47 | logger.add(new winston.transports.Console({ 48 | level: logLevel || 'silly', 49 | 50 | format: winston.format.combine( 51 | winston.format.colorize(), 52 | winston.format.prettyPrint(), 53 | winston.format.splat(), 54 | winston.format.printf((info) => { 55 | if(info instanceof Error) { 56 | return `[${info.level}] : ${info.timestamp} : ${info.message} ${info.stack}`; 57 | } 58 | return `[${info.level}] : ${info.timestamp} : ${info.message}`; 59 | }) 60 | ), 61 | handleExceptions: true, 62 | humanReadableUnhandledException: true, 63 | exitOnError: false, 64 | timestamp:true 65 | })); 66 | } else { 67 | logger.add(new winston.transports.Console({ 68 | format: winston.format.combine( 69 | //winston.format.colorize(), 70 | winston.format.cli(), 71 | ) 72 | })); 73 | } 74 | 75 | logger.stream = { 76 | write: function(message, encoding){ 77 | logger.info(message); 78 | } 79 | }; 80 | 81 | module.exports = logger; 82 | -------------------------------------------------------------------------------- /Server/src/helpers/matchmakerHelper.ts: -------------------------------------------------------------------------------- 1 | import { matchMaker } from "colyseus"; 2 | 3 | /** 4 | * Begin the process to matchmake into a room. 5 | * @param room The room name for the user to matchmake into. 6 | * @param progress The room filter representing the grid the user is currently in. 7 | * @returns The seat reservation for the room. 8 | */ 9 | export async function matchMakeToRoom(room: string = "lobby_room", progress: string = "0,0"): Promise { 10 | return await matchMaker.joinOrCreate(room, { progress }); 11 | } -------------------------------------------------------------------------------- /Server/src/index.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * IMPORTANT: 3 | * --------- 4 | * Do not manually edit this file if you'd like to use Colyseus Arena 5 | * 6 | * If you're self-hosting (without Arena), you can manually instantiate a 7 | * Colyseus Server as documented here: 👉 https://docs.colyseus.io/server/api/#constructor-options 8 | */ 9 | import { listen } from "@colyseus/arena"; 10 | 11 | // Import arena config 12 | import arenaConfig from "./arena.config"; 13 | 14 | import path from "path"; 15 | import { config } from "dotenv"; 16 | 17 | config({ path: path.join(__dirname, "../arena.env") }); 18 | 19 | // Create and listen on 2567 (or PORT environment variable.) 20 | listen(arenaConfig); -------------------------------------------------------------------------------- /Server/src/rooms/schema/AvatarState.ts: -------------------------------------------------------------------------------- 1 | import { Schema, type } from "@colyseus/schema"; 2 | 3 | export class AvatarState extends Schema { 4 | @type("string") skinColor: string = "default"; 5 | @type("string") shirtColor: string = "default"; 6 | @type("string") pantsColor: string = "default"; 7 | @type("string") hatColor: string = "default"; 8 | @type("number") hatChoice: number = 1; 9 | } -------------------------------------------------------------------------------- /Server/src/routes/userRoutes.ts: -------------------------------------------------------------------------------- 1 | import express from "express"; 2 | import * as authController from "../controllers/authController"; 3 | 4 | const router = express.Router(); 5 | 6 | // Register our sign up and login routes 7 | router.post("/signup", authController.prepEmail, authController.signUp); 8 | router.post("/login", authController.prepEmail, authController.logIn); 9 | 10 | export default router; -------------------------------------------------------------------------------- /Server/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "outDir": "lib", 4 | "target": "es6", 5 | "module": "commonjs", 6 | "strict": true, 7 | "allowJs": true, 8 | "strictNullChecks": false, 9 | "esModuleInterop": true, 10 | "experimentalDecorators": true, 11 | "forceConsistentCasingInFileNames": true, 12 | "emitDecoratorMetadata": true 13 | }, 14 | "include": [ 15 | "src" 16 | ] 17 | } 18 | -------------------------------------------------------------------------------- /screenshot.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/colyseus/unity-demo-mmo/b0e2d04bb287b47646d0afb87c4e46b0181d27c6/screenshot.PNG --------------------------------------------------------------------------------