This is shooter example that demonstrates well-designed game architecture, game framework, custom project window...
I'm sure that it will be useful for anyone who wants to improve their coding skills!OverviewI wanted to write an example of the highest quality code possible, and I think I succeeded.In this example, you will learn how to make working with a project more convenient, you will learn how to design a high-quality modular game architecture, you will get a great game framework, and you will also learn many other useful ideas.I am sure that this project will be useful for anyone who wants to improve their coding skills!This project showcases the following ideas:Modular / Clean ArchitectureDomain-Driven DesignState-Driven UI (inspired by Uber Ribs)Addressables Source GeneratorConvenient Project StructureConvenient Project WindowRead the Technical details for more details.Third-party noticesThis package contains the third-party packages under their own respective licenses.Adventure - Sample GameThis package is developed by Unity Technologies.It's licensed under the Unity Companion License.Files:- Assets.Project.01.UI/MainScreen/Music/Theme.oggLinks:- https://assetstore.unity.com/packages/templates/tutorials/adventure-sample-game-76216- https://unity.com/ru/legal/licenses/unity-companion-licenseTower Defense TemplateThis package is developed by Unity Technologies.It's licensed under the Unity Companion License.Files:- Assets.Project.01.UI/GameScreen/Music/Theme_1.wav- Assets.Project.01.UI/GameScreen/Music/Theme_2.wavLinks:- https://assetstore.unity.com/packages/essentials/tutorial-projects/tower-defense-template-107692- https://unity.com/ru/legal/licenses/unity-companion-licenseInter fontThese assets are developed by Rasmus Andersson.And it's licensed under the SIL Open Font License, Version 1.1.Files:- UIToolkit.ThemeStyleSheet/Assets.UnityEngine.UIElements/Fonts/Links:- https://rsms.me/inter/- https://github.com/rsms/inter/blob/master/LICENSE.txtcom.unity.ui packageThese assets are developed by Unity Technologies.And it's licensed under the Unity Companion License for Unity-dependent projects.Files:- UIToolkit.ThemeStyleSheet/Assets.UnityEngine.UIElements/Images/Links:- https://github.com/needle-mirror/com.unity.ui/tree/master/PackageResources/Images- https://unity.com/ru/legal/licenses/unity-companion-licenseThe project has the following architecture:ProjectProject.UIProject.UI.InternalProject.AppProject.GameProject.Game.ActorsProject.Game.ThingsProject.Game.WorldsProject.InfrastructureThe project contains the following source codes:ProjectEditor/ProjectMenuBar.csEditor/ProjectWindow.csLauncher.csProgram.csDebugScreen.csProject.UITheme.csScreen.csRouter.csProject.UI.MainScreenInternal/MainWidgetView.csInternal/MainMenuWidgetView.csMainWidget.csMainMenuWidget.csProject.UI.GameScreenInternal/GameWidgetView.csInternal/PlayerWidgetView.csInternal/GameTotalsWidgetView.csInternal/GameMenuWidgetView.csGameWidget.csPlayerWidget.csGameTotalsWidget.csGameMenuWidget.csProject.UI.CommonInternal/DialogWidgetView.csInternal/LoadingWidgetView.csInternal/UnloadingWidgetView.csInternal/SettingsWidgetView.csInternal/ProfileSettingsWidgetView.csInternal/VideoSettingsWidgetView.csInternal/AudioSettingsWidgetView.csDialogWidget.csLoadingWidget.csUnloadingWidget.csSettingsWidget.csProfileSettingsWidget.csVideoSettingsWidget.csAudioSettingsWidget.csProject.AppApplication2.csStorage.csStorage.ProfileSettings.csStorage.VideoSettings.csStorage.AudioSettings.csProject.GameInternal/CharacterInputProvider.csInternal/CameraInputProvider.csGame2.csPlayer2.csProject.Game.ActorsInternal/ICharacterInputProvider.csInternal/ICameraInputProvider.csCharacterBase.csPlayableCharacterBase.csPlayableCameraBase.csNonPlayableCharacterBase.csPlayerCharacter.csPlayerCamera.csEnemyCharacter.csProject.Game.ThingsWeaponBase.csGun.csBullet.csProject.Game.WorldsWorld.csProject.Infrastructure...The project has the following dependencies:Architecture Game FrameworkAddressables ExtensionsAddressables Source GeneratorColorful Project WindowUIToolkit Theme Style Sheet