AI prompts
base on Megacity-Metro: a thrilling shooter game, using Netcode for Entities for a multiplayer experience supporting 128+ players. Latest DOTS packages and Unity Gaming Services elevate the user experience, demonstrating how to craft engaging multiplayer games. ![Megacity-Metro](Documentation/Images/header.jpg)
## Contents and Quick Links
- [Megacity Metro Overview](#megacity-metro-overview)
- [Megacity Metro Prerequisites](Documentation/prerequisites.md)
- [Multiplayer Setup](Documentation/multiplayer-setup.md)
- [Add Unity Gaming Services (UGS)](Documentation/ugs.md)
- [Index of Resources in this Project](Documentation/script-index.md)
- [Assemblies](Documentation/assemblies.md)
- [Netcode Atrributes](Documentation/attributes.md)
- [Gameplay Controls](#gameplay-controls)
- [Mouse and Keyboard](#mouse-and-keyboard)
- [Troubleshooting](#troubleshooting)
- [Bugs](#bugs)
- [Disclaimer](#disclaimer)
- [License](#license)
## Megacity Metro Overview
Megacity Metro is an action-packed, shooter game based on the original Megacity sample. It leverages the power of Netcode for Entities for an immersive, multiplayer experience that can support 128+ players simultaneously. The latest DOTS packages and Unity Gaming Services (UGS) enhances the Megacity Metro user experience. Megacity Metro showcases how to create engaging and immersive multiplayer experiences with a suite of netcode and multiplayer tools, tech, and services.
Some important points of this demo are:
- Large-scale streaming and rendering with the Entity Component System (ECS for Unity)
- 128+ players per game session
- Server-authoritative gameplay with feature prediction, interpolation, and lag compensation using Netcode for Entities
- Unity Gaming Services (UGS) integration for Game Server Hosting, Matchmaking, and Vivox voice chat
- Universal Render Pipeline (URP) and Entities Graphics for Rendering
- Unity 6: New Rendering Features such as Render Graph and Spatial Temporal Anti-Aliasing (STP)
- Cross-platform support for Windows, Mac, Android and iOS
\* Integration through the Multiplayer Services SDK coming soon
## Gameplay Controls
### Mouse and Keyboard
| Input | Action |
|--------------|--------------|
| Mouse Movement / Arrow Keys | Steering |
| Left Click / Space | Shoot |
| W/S | Thrust / Reverse |
| A/D | Steering |
| E/Q | Roll |
| Tab | LeaderBoard |
| V | Toggle Vivox |
| P | Netcode Panel Stats |
| ESC| in game menu |
## Contents and Quick Links
- [Important Note Before You Begin](#important-note-before-you-begin)
- [Clone the Project](#clone-the-project)
- [Quick Start](#quick-start)
# Getting Started
## Important Note Before You Begin
The Megacity Metro sample is large, so the **first time** cloning and playing the sample may take more time than expected. Subsequent plays should load much quicker because of caching.
First time clone and load time estimates:
- Cloning the Megacity Metro repo: Up to 20 min
- Opening the project with library build: Up to 20 min
- Building the project for each platform for the first time: Up to 50 min.
Navigate to `Project Settings > Other Settings > Configuration > C++ Compiler Configuration`and set `Debug` if you need to compile faster than optimal.
To get the Megacity Metro sample, you can clone the project using Git.
**Please note that direct download of the project is not currently supported for this repository**.
## Clone the Project
Before you can clone the project, you must install Git Large File Support (LFS). Megacity Metro uses Git LFS to handle all large assets required locally.
Refer to [Git LFS installation options](https://github.com/git-lfs/git-lfs/wiki/Installation) for instructions on Windows and Mac.
## Quick Start
After you clone the project, follow these steps to start playing:
1. Install a compatible Unity Editor version; we highly recommend using the version specified in `ProjectSettings/ProjectVersion.txt`. During installation, make sure to include Windows/Mac Build Support (IL2CPP), Windows/Mac Dedicated Server Build Support, Android/iOS Build Support (if you plan to build for mobile devices), and Linux Dedicated Server Build Support.
2. To add the project to the **Unity Hub**, click the **Add** button and select the root folder of the cloned project.
3. Open the **Menu** scene located in `Assets/Scenes/Menu`.
4. Click the **Play** button to start.
5. Start the Single Player mode. Multiplayer requires more setup which will be explained next.
## Disclaimer
This repository does not accept pull requests, GitHub review requests, or any other GitHub-hosted issue management requests.
## License
Megacity Metro is licensed under the Unity Companion License. See [LICENCE](LICENCE.md) for more legal information.
", Assign "at most 3 tags" to the expected json: {"id":"8581","tags":[]} "only from the tags list I provide: [{"id":77,"name":"3d"},{"id":89,"name":"agent"},{"id":17,"name":"ai"},{"id":54,"name":"algorithm"},{"id":24,"name":"api"},{"id":44,"name":"authentication"},{"id":3,"name":"aws"},{"id":27,"name":"backend"},{"id":60,"name":"benchmark"},{"id":72,"name":"best-practices"},{"id":39,"name":"bitcoin"},{"id":37,"name":"blockchain"},{"id":1,"name":"blog"},{"id":45,"name":"bundler"},{"id":58,"name":"cache"},{"id":21,"name":"chat"},{"id":49,"name":"cicd"},{"id":4,"name":"cli"},{"id":64,"name":"cloud-native"},{"id":48,"name":"cms"},{"id":61,"name":"compiler"},{"id":68,"name":"containerization"},{"id":92,"name":"crm"},{"id":34,"name":"data"},{"id":47,"name":"database"},{"id":8,"name":"declarative-gui "},{"id":9,"name":"deploy-tool"},{"id":53,"name":"desktop-app"},{"id":6,"name":"dev-exp-lib"},{"id":59,"name":"dev-tool"},{"id":13,"name":"ecommerce"},{"id":26,"name":"editor"},{"id":66,"name":"emulator"},{"id":62,"name":"filesystem"},{"id":80,"name":"finance"},{"id":15,"name":"firmware"},{"id":73,"name":"for-fun"},{"id":2,"name":"framework"},{"id":11,"name":"frontend"},{"id":22,"name":"game"},{"id":81,"name":"game-engine "},{"id":23,"name":"graphql"},{"id":84,"name":"gui"},{"id":91,"name":"http"},{"id":5,"name":"http-client"},{"id":51,"name":"iac"},{"id":30,"name":"ide"},{"id":78,"name":"iot"},{"id":40,"name":"json"},{"id":83,"name":"julian"},{"id":38,"name":"k8s"},{"id":31,"name":"language"},{"id":10,"name":"learning-resource"},{"id":33,"name":"lib"},{"id":41,"name":"linter"},{"id":28,"name":"lms"},{"id":16,"name":"logging"},{"id":76,"name":"low-code"},{"id":90,"name":"message-queue"},{"id":42,"name":"mobile-app"},{"id":18,"name":"monitoring"},{"id":36,"name":"networking"},{"id":7,"name":"node-version"},{"id":55,"name":"nosql"},{"id":57,"name":"observability"},{"id":46,"name":"orm"},{"id":52,"name":"os"},{"id":14,"name":"parser"},{"id":74,"name":"react"},{"id":82,"name":"real-time"},{"id":56,"name":"robot"},{"id":65,"name":"runtime"},{"id":32,"name":"sdk"},{"id":71,"name":"search"},{"id":63,"name":"secrets"},{"id":25,"name":"security"},{"id":85,"name":"server"},{"id":86,"name":"serverless"},{"id":70,"name":"storage"},{"id":75,"name":"system-design"},{"id":79,"name":"terminal"},{"id":29,"name":"testing"},{"id":12,"name":"ui"},{"id":50,"name":"ux"},{"id":88,"name":"video"},{"id":20,"name":"web-app"},{"id":35,"name":"web-server"},{"id":43,"name":"webassembly"},{"id":69,"name":"workflow"},{"id":87,"name":"yaml"}]" returns me the "expected json"