Skip to content

Latest commit

ย 

History

History
146 lines (108 loc) ยท 5.37 KB

File metadata and controls

146 lines (108 loc) ยท 5.37 KB

MazeMates โ€“ Tutorial & Multiplayer (Unity Relay + WebGL)

ืชืงืฆื™ืจ ื›ืœืœื™

ื‘ืคืจื•ื™ืงื˜ MazeMates ืžื™ืžืฉืชื™ ืžืขืจื›ืช ืžื“ืจื™ืš (Tutorial) ืžืœืื” ื•ืžืขืจื›ืช ืžื•ืœื˜ื™ืคืœื™ื™ืจ ืžื‘ื•ืกืกืช Unity Netcode for GameObjects ื•ึพUnity Relay, ื›ืš ืฉื”ืžืฉื—ืง ืขื•ื‘ื“ ื’ื ื‘ึพWebGL ื•ื ื™ืชืŸ ืœื”ืจืฆื” ื“ืจืš itch.io ืœืœื ืฆื•ืจืš ื‘ืฉืจืช ื™ื™ืขื•ื“ื™.

ื”ืžื™ืžื•ืฉ ืžืืคืฉืจ:

  • ื—ื•ื•ื™ื™ืช ื”ื“ืจื›ื” ืžื•ื‘ื ื™ืช ื•ื‘ืจื•ืจื” ืœืฉื ื™ ืฉื—ืงื ื™ื (Traveller ื•-Navigator)
  • ืกื ื›ืจื•ืŸ ืžืœื ืฉืœ ืžืฆื‘ ื”ืžืฉื—ืง ื‘ื–ืžืŸ ืืžืช
  • ื—ื™ื‘ื•ืจ ืฉื—ืงื ื™ื ื“ืจืš Join Code ื‘ื“ืคื“ืคืŸ

ืžืขืจื›ืช ื”-Tutorial

TutorialManager

ืจื›ื™ื‘ ืžืจื›ื–ื™ ื”ืื—ืจืื™ ืขืœ ื ื™ื”ื•ืœ ืจืฆืฃ ื”ืžื“ืจื™ืš.

ืชืคืงื™ื“ื™ื ืขื™ืงืจื™ื™ื:

  • ื˜ืขื™ื ืช ืฉืœื‘ื™ ื”ืžื“ืจื™ืš (TutorialSteps)
  • ื”ืฆื’ืช ื”ื•ื“ืขื•ืช ื”ื“ืจื›ื” ืœืฉื—ืงื ื™ื
  • ื ืขื™ืœื” ื•ืฉื—ืจื•ืจ ืฉืœ ืฉืœื™ื˜ื” (ืชื–ื•ื–ื”, ืคืขื•ืœื•ืช, UI)
  • ื”ืื–ื ื” ืœืื™ืจื•ืขื™ื ื‘ืžืฉื—ืง ื•ื”ืชืงื“ืžื•ืช ื‘ื™ืŸ ืฉืœื‘ื™ื
  • ืกื ื›ืจื•ืŸ ืžืฆื‘ ื”ืžื“ืจื™ืš ื‘ื™ืŸ Client ืœ-Server ื‘ืืžืฆืขื•ืช Netcode

ื”-TutorialManager ื”ื•ื NetworkBehaviour ื•ืœื›ืŸ:

  • ืจืฅ ื‘ืฆื•ืจื” ืขืงื‘ื™ืช ืืฆืœ Host ื•-Clients
  • ืžื‘ื˜ื™ื— ืฉื›ืœ ืฉื—ืงืŸ ื ืžืฆื ื‘ืื•ืชื• ืฉืœื‘ ืžื“ืจื™ืš

TutorialStep (ScriptableObject)

ื›ืœ ืฉืœื‘ ื‘ืžื“ืจื™ืš ืžื™ื•ืฆื’ ืขืดื™ ืื•ื‘ื™ื™ืงื˜ ืขืฆืžืื™.

ืฉื“ื•ืช ืขื™ืงืจื™ื™ื:

  • stepId โ€“ ืžื–ื”ื” ื™ื™ื—ื•ื“ื™ ืœืฉืœื‘
  • description โ€“ ืชื™ืื•ืจ ืคื ื™ืžื™
  • conditionType โ€“ ืชื ืื™ ืกื™ื•ื ื”ืฉืœื‘
  • ื”ื•ื“ืขื•ืช ื™ื™ืขื•ื“ื™ื•ืช:
    • ืœืฉื—ืงืŸ Traveller
    • ืœืฉื—ืงืŸ Navigator

ื™ืชืจื•ื ื•ืช ื”ื’ื™ืฉื”:

  • ื”ืคืจื“ื” ืžืœืื” ื‘ื™ืŸ ืœื•ื’ื™ืงื” ืœืชื•ื›ืŸ
  • ื ื™ืชืŸ ืœืขืจื•ืš / ืœื”ื•ืกื™ืฃ ืฉืœื‘ื™ื ื‘ืœื™ ืœื’ืขืช ื‘ืงื•ื“
  • ืงืœ ืœื‘ื“ื™ืงื” ื•ืœืชื—ื–ื•ืงื”

Tutorial Conditions

ื”ืžื“ืจื™ืš ืžืชืงื“ื ืœืคื™ ืชื ืื™ื ืžื•ื’ื“ืจื™ื ืžืจืืฉ, ื›ื’ื•ืŸ:

  • ืชื–ื•ื–ืช ืฉื—ืงืŸ
  • ืื™ื ื˜ืจืืงืฆื™ื” ืขื ื“ืœืช / ืคืื–ืœ
  • ืคืขื•ืœื” ื™ื™ื—ื•ื“ื™ืช ืฉืœ ื”-Navigator
  • ืื™ืจื•ืข ืžื•ืชืื ืื™ืฉื™ืช (Custom Event)

ื”ืชื ืื™ื ืžื ื•ื”ืœื™ื ื‘ืฆื•ืจื” ื“ื˜ืจืžื™ื ื™ืกื˜ื™ืช ื›ื“ื™ ืœืžื ื•ืข ื—ื•ืกืจ ืกื ื›ืจื•ืŸ ื‘ื™ืŸ ืฉื—ืงื ื™ื.


Multiplayer โ€“ Unity Netcode + Relay

Netcode for GameObjects (NGO)

ื”ืžืฉื—ืง ืžื‘ื•ืกืก ืขืœ:

  • NetworkManager
  • NetworkObject
  • NetworkBehaviour
  • RPCs (ClientRpc / ServerRpc)

ืžืืคื™ื™ื ื™ื:

  • ื—ืœื•ืงืช ืชืคืงื™ื“ื™ื: Host = Traveller, Client = Navigator
  • Spawn ืžืกื•ื ื›ืจืŸ ืฉืœ ืฉื—ืงื ื™ื ื•ืื•ื‘ื™ื™ืงื˜ื™ื
  • ืกื ื›ืจื•ืŸ ืžืฆื‘ ืžืฉื—ืง, ืžื“ืจื™ืš ื•ืžืฉืื‘ื™ื

Unity Relay

ื›ื“ื™ ืœืืคืฉืจ ื—ื™ื‘ื•ืจ ื“ืจืš WebGL (ื“ืคื“ืคืŸ), ื ืขืฉื” ืฉื™ืžื•ืฉ ื‘-Unity Relay.

ืžื” ื–ื” ื ื•ืชืŸ:

  • ืื™ืŸ ืฆื•ืจืš ื‘ืคืชื™ื—ืช ืคื•ืจื˜ื™ื
  • ืขื•ื‘ื“ ืžืื—ื•ืจื™ NAT / Firewall
  • ืื™ื“ื™ืืœื™ ืœ-itch.io

ื–ืจื™ืžืช ื—ื™ื‘ื•ืจ:

  1. Host ื™ื•ืฆืจ Relay Allocation
  2. ืžืชืงื‘ืœ Join Code
  3. Client ืžื–ื™ืŸ Join Code ื•ืžืชื—ื‘ืจ
  4. Unity Netcode ืžื ื”ืœ ืืช ื”ื—ื™ื‘ื•ืจ ื•ื”-Spawn

ื—ื“ืจ ื”-Navigator (ืชืœืชึพืžืžื“ื™)

ื ื•ืกืฃ ืœืžืฉื—ืง ื—ื“ืจ Navigator ืชืœืชึพืžืžื“ื™ ื•ืคื•ื ืงืฆื™ื•ื ืœื™ ืœื—ืœื•ื˜ื™ืŸ, ื”ืžืฉืžืฉ ื›ืขืžื“ืช ืฉืœื™ื˜ื” ื™ื™ืขื•ื“ื™ืช ืœืฉื—ืงืŸ ื”-Navigator.

ืžืืคื™ื™ื ื™ ื”ื—ื“ืจ:

  • ืกื‘ื™ื‘ื” ืชืœืชึพืžืžื“ื™ืช ืžืœืื” ื•ื ืคืจื“ืช ืžื”ืžื‘ื•ืš
  • ืžืฆืœืžื” ื™ื™ืขื•ื“ื™ืช ืœ-Navigator ืขื ื–ื•ื•ื™ื•ืช ืชืฆื•ื’ื” ืงื‘ื•ืขื•ืช
  • ืžืกื›ื™ ืชืฆื•ื’ื” (TV / Panels) ื”ืžืฆื™ื’ื™ื ืžื™ื“ืข ืžื”ืžื‘ื•ืš ื‘ื–ืžืŸ ืืžืช
  • ืื™ื ื˜ืจืืงืฆื™ื” ื™ืฉื™ืจื” ืขื ืืœืžื ื˜ื™ื ื‘ืžืฉื—ืง:
    • ืคืชื™ื—ื” ื•ื ืขื™ืœื” ืฉืœ ื“ืœืชื•ืช
    • ื”ืคืขืœืช ืคืื–ืœื™ื
    • ืฉื™ืžื•ืฉ ื‘ืžืฉืื‘ื™ื ื™ื™ื—ื•ื“ื™ื™ื (ื›ื’ื•ืŸ ืขื–ืจื” ืœืฉื—ืงืŸ ื”ืฉื ื™)
  • ืกื ื›ืจื•ืŸ ืžืœื ืขื ืžืฆื‘ ื”-Traveller ื‘ืืžืฆืขื•ืช Netcode

ื”ื—ื“ืจ ืžืฉืžืฉ ื›-Control Room, ื•ืžื—ื–ืง ืืช ื”ืืกื™ืžื˜ืจื™ื” ื‘ื™ืŸ ื”ืฉื—ืงื ื™ื:

  • ื”-Traveller ืคื•ืขืœ ืžืชื•ืš ื”ืžื‘ื•ืš ื‘ื’ื•ืฃ ืจืืฉื•ืŸ
  • ื”-Navigator ืžื ื”ืœ, ืžื›ื•ื•ืŸ ื•ืžืกื™ื™ืข ืžื‘ื—ื•ืฅ ื‘ืกื‘ื™ื‘ื” ืชืœืชึพืžืžื“ื™ืช ืื™ื ื˜ืจืืงื˜ื™ื‘ื™ืช

ืชืžื™ื›ื” ืžืœืื” ื‘-WebGL (itch.io)

ื‘ื•ืฆืขื• ื”ืชืืžื•ืช ื™ื™ืขื•ื“ื™ื•ืช:

  • ืฉื™ืžื•ืฉ ื‘-Unity Relay ื‘ืžืงื•ื Transport ื™ืฉื™ืจ
  • ื•ื™ื“ื•ื ืฉื›ืœ ื”-Scenes ืžื•ื’ื“ืจื•ืช ื›-Network Scenes
  • ื‘ื“ื™ืงื•ืช Spawn ื‘-Editor ื•ื‘-Build
  • ื”ื™ืžื ืขื•ืช ืžืชืœื•ื™ื•ืช ืฉืื™ื ืŸ ื ืชืžื›ื•ืช ื‘ื“ืคื“ืคืŸ

ื”ืชื•ืฆืื”:

  • ืื•ืชื• ืงื•ื“ ืขื•ื‘ื“ ื’ื ื‘-Editor ื•ื’ื ื‘-WebGL
  • ื ื™ืชืŸ ืœืฉื—ืง ื™ืฉื™ืจื•ืช ื“ืจืš itch.io

ื‘ื“ื™ืงื•ืช ื•ื™ืฆื™ื‘ื•ืช

ื ื•ืกืคื• ื‘ื“ื™ืงื•ืช Edit Mode ืœื•ื•ื™ื“ื•ื:

  • ื™ื™ื—ื•ื“ื™ื•ืช stepId
  • ืชืงื™ื ื•ืช ื”ื’ื“ืจื•ืช TutorialStep
  • ืžื ื™ืขืช ืžืฆื‘ื™ื ืœื ื—ื•ืงื™ื™ื ื‘ืžื“ืจื™ืš

ื‘ื“ื™ืงื•ืช ืืœื• ืขื•ื–ืจื•ืช ืœื–ื”ื•ืช ืชืงืœื•ืช ืžื•ืงื“ื ื•ืœืฉืžื•ืจ ืขืœ ืขืงื‘ื™ื•ืช ื”ืžืขืจื›ืช.


ืกื™ื›ื•ื

ื‘ืคืจื•ื™ืงื˜ ื–ื” ืžื™ืžืฉืชื™:

  • ืžืขืจื›ืช Tutorial ืžื•ื“ื•ืœืจื™ืช ื•ืžืกื•ื ื›ืจื ืช
  • Multiplayer ืžืœื ืœืฉื ื™ ืฉื—ืงื ื™ื
  • ื—ื“ืจ Navigator ืชืœืชึพืžืžื“ื™ ืื™ื ื˜ืจืืงื˜ื™ื‘ื™
  • ื—ื™ื‘ื•ืจ ืืžื™ืŸ ื“ืจืš Unity Relay
  • ืชืžื™ื›ื” ืžืœืื” ื‘-WebGL ื•-itch.io

ื”ืžื‘ื ื” ืžืืคืฉืจ ื”ืžืฉืš ืคื™ืชื•ื— ืงืœ, ื”ื•ืกืคืช ืฉืœื‘ื™ื, ื•ื”ืจื—ื‘ืช ื”ืžื•ืœื˜ื™ืคืœื™ื™ืจ ืœืœื ืฉื™ื ื•ื™ื™ ืœื™ื‘ื”.