{"id":14959771,"url":"https://github.com/unity-technologies/fpssample","last_synced_at":"2025-05-14T14:03:46.270Z","repository":{"id":43265694,"uuid":"153427475","full_name":"Unity-Technologies/FPSSample","owner":"Unity-Technologies","description":"A first person multiplayer shooter example project in Unity","archived":false,"fork":false,"pushed_at":"2023-12-05T14:24:13.000Z","size":218876,"stargazers_count":4968,"open_issues_count":105,"forks_count":1855,"subscribers_count":330,"default_branch":"master","last_synced_at":"2025-04-11T06:12:31.559Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://unity.com/fps-sample","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Unity-Technologies.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-10-17T09:03:54.000Z","updated_at":"2025-04-10T18:43:52.000Z","dependencies_parsed_at":"2024-09-22T10:02:16.290Z","dependency_job_id":"f67be52c-b3b4-4f3b-9ddb-1aa3ec79b1db","html_url":"https://github.com/Unity-Technologies/FPSSample","commit_stats":{"total_commits":18,"total_committers":3,"mean_commits":6.0,"dds":"0.33333333333333337","last_synced_commit":"6b8b27aca3690de9e46ca3fe5780af4f0eff5faa"},"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Unity-Technologies%2FFPSSample","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Unity-Technologies%2FFPSSample/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Unity-Technologies%2FFPSSample/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Unity-Technologies%2FFPSSample/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Unity-Technologies","download_url":"https://codeload.github.com/Unity-Technologies/FPSSample/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254159194,"owners_count":22024558,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-09-24T13:20:44.992Z","updated_at":"2025-05-14T14:03:46.215Z","avatar_url":"https://github.com/Unity-Technologies.png","language":"C#","readme":"![](Documentation/Images/Banner.png)\n\n# FPS Sample\n\n**Update about the state of the project:**\nThis project is based on Unity 2018.3 and no longer being actively maintained.\nFeel free to continue to use it as a learning resource or simply for\ninspiration. As always, you should upgrade to latest version of Unity\nand packages if you intend to start a project.\n\nThanks for checking out this sample!\n\nThis is a fully functional, first person multiplayer shooter game made in\nUnity and with full source and assets. It was developed by a small\nteam from Unity Technologies. Our goals are to test and showcase new\nfeatures in Unity and to be of use for teams who can bootstrap on top of\nthis, extract useful bits and tools or simply learn from and get inspired by\nwhat is in the project.\n\nVisit our [landing page](https://unity.com/fps-sample) for more high\nlevel information about the project. Or reach out [in the forum](https://forum.unity.com/forums/fps-sample-game.184).\n\nThe project is using a number of new technologies: We use the new [HD Render\nPipeline](https://github.com/Unity-Technologies/ScriptableRenderPipeline), meaning \nall content has been authored for HDRP. We are also using the new\n[network transport layer](https://github.com/Unity-Technologies/multiplayer) as well as the [Entity-Component System](https://unity3d.com/unity/features/job-system-ECS). \nIn the case of ECS, we have primarily adopted the \"ECS-pattern\" and use it in\nhybrid mode with a lot of regular components. As more and more features of\nUnity become available in ECS-aware versions, we will migrate to them.\n\n## Status and prerequisites\n\nCurrent status at a glance:\n```\nUnity version: 2018.3.8f1\nPlatforms    : Windows (client and server) and Linux (server only)\n```\n\n## Getting the project\n\nTo get the project folder you need to clone the project.\nNote, that \n\n\u003e __IMPORTANT__: \n\u003e This project uses Git Large Files Support (LFS). Downloading a zip file using the green button on Github\n\u003e **will not work**. You must clone the project with a version of git that has LFS.\n\u003e You can download Git LFS here: https://git-lfs.github.com/.\n\nThe project size is about 18GB (size of Assets folder). Your cloned repository\nwill be almost double of that due to git state. If it is much smaller,\nyou most likely did not have LFS when you cloned.\n\n## Getting the right version of Unity\n\nOnce you have cloned the repository, you should install\nthe version of Unity that is listed above in the prerequisites section. Make\nsure you include windows standalone support in your installation (and Linux support\nif you want to build the Linux headless server).\n\n## Opening the project for the first time\n\nThe following guide should take you to the point where\nyou can hit play in the editor and run around the levels and also build a\nstandalone version of the game and use it to spin up a server and connect a\nfew clients to it.\n\nThe first time you open the project you need patience! It takes a while\nto import all the assets.\n\n\u003e __NOTE__: Due to a bug in Unity 2018.3, you have to take the following step right after the initial import:\n\u003e 1 Search for `Firstperson_Projection` in the Project search field. Select the 4 shaders, right click and reimport them.\n\u003e 2 If you have script compile errors related to entities, you need to remove and re-install the entities package.\n\u003e\n\u003e One day soon we will remove this note and there will be cake.\n\nOnce the editor is ready, open the _Project Tools Window_ by\nnavigating to ___FPS Sample \u003e Windows \u003e Project tools___.\n\nIt should look like this:\n\n![](Documentation/Images/ProjectTools.png)\n\nKeep this window docked as you will use it a lot. From here you can open the\nlevels, build assetbundles and build standalone players. Because this is a\nmultiplayer game you will need to work with standalone players a lot.\n\n### Trying out preview mode\n\nFrom the Project Tools window click __Open__ next to Level_00. Our levels are\nsplit into multiple scenes but using these buttons will ensure you open all the scenes\nthat make up a level.\n\nOnce opened, try entering playmode in the editor. You should now\nbe able to run around in the level. This is what we call 'preview mode'. Here\nyou can move around and test your level, player traversal and weapons.\n\n### Building bundles and standalone\n\nLeave playmode again and in the Project Tools window, verify that\nit says \"Building for: StandaloneWindows64...\" under the Game headline.\nIf it does not, change your platform in the usual way, using File \u003e Build\nsettings window.\n\nNow, in the Project Tools window in the bundles section, press __All \\[force\\]__.\n\nThis will build the levels and other assets into assetbundles. The first time\naround this will take a significant amount of time as all shaders have to be\ncompiled.\n\nOnce you have built the bundles, hit __Build game__ in the game section.\nThis builds the standalone player. Again, first time will be slow.\n\n\u003e __NOTE__: Due to a limitation in Unity 2018.3, you have to look out for errors like this `Maximum number (256) of shader keywords exceeded, keyword \u003cKEYWORD_NAME\u003e will be ignored.` and similar. If you get these, you can close and open Unity and then try and build again. The errors are relatively harmless but can lead to graphical artifacts as some shaders will have wrong keywords.\n\n### Using the quick start launcher\n\nWhen this is done, locate the \"Quick start\" section at the bottom of the\nProject Tools window. Fill out the settings like this:\n\n\u003e Mode: __Multiplayer__\\\n\u003e Level: __Level_00__\\\n\u003e Clients: __1__\\\n\u003e Headless: __Checked__\\\n\u003e Use editor: __Unused__\n\nNow hit the green __Start__ button. This should launch two processes: one is\na standalone, headless server, the other is a client that will attempt to\nconnect to the server.\n\nCongratulations! If you made it this far you should celebrate a bit!\n\n## Development of FPS Sample, Contributions etc.\n\nAs of today, internally development of the project happens on Perforce. We\npush versions of the project to github from there. As we do that we will update\nthe [CHANGELOG](CHANGELOG.md) with highlights but the full history is not\ncarried over.\n\nFor practical reasons we are not able to take larger contributions\njust now. But bugfixes are very welcome! Read the guidelines for\ncontributing in [CONTRIBUTING](CONTRIBUTING.md).\n\n## More information\n\nCheck out the [Documentation](Documentation/) folder for more information. In particular, the [Getting Started Guide](Documentation/GettingStarted.md) is a good place to, well, start.\n\n## License\n\nOur intention is that you can use everything in this project as a starting\npoint or as bits and pieces in your own Unity games. For the legal words, see\n[LICENSE.md](LICENSE.md).","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Funity-technologies%2Ffpssample","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Funity-technologies%2Ffpssample","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Funity-technologies%2Ffpssample/lists"}