diff --git a/apps/kbve.com/public/data/scripts/unity/.gitkeep b/apps/kbve.com/public/data/scripts/unity/.gitkeep new file mode 100644 index 000000000..e69de29bb diff --git a/apps/kbve.com/public/data/scripts/unity/WebGLTemplates/KBVE.meta b/apps/kbve.com/public/data/scripts/unity/WebGLTemplates/KBVE.meta new file mode 100644 index 000000000..12be63420 --- /dev/null +++ b/apps/kbve.com/public/data/scripts/unity/WebGLTemplates/KBVE.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 245dea1fe16ec434696764b354b84995 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: \ No newline at end of file diff --git a/apps/kbve.com/public/data/scripts/unity/WebGLTemplates/KBVE/TemplateData.meta b/apps/kbve.com/public/data/scripts/unity/WebGLTemplates/KBVE/TemplateData.meta new file mode 100644 index 000000000..e5b1e172d --- /dev/null +++ b/apps/kbve.com/public/data/scripts/unity/WebGLTemplates/KBVE/TemplateData.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 0140b194bfcc6cc4394acfe8a6a04967 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/apps/kbve.com/public/data/scripts/unity/WebGLTemplates/KBVE/TemplateData/style.css b/apps/kbve.com/public/data/scripts/unity/WebGLTemplates/KBVE/TemplateData/style.css new file mode 100644 index 000000000..3476ebdf4 --- /dev/null +++ b/apps/kbve.com/public/data/scripts/unity/WebGLTemplates/KBVE/TemplateData/style.css @@ -0,0 +1,16 @@ +body { padding: 0; margin: 0 } +#unity-container { position: absolute } +#unity-container.unity-desktop { left: 50%; top: 50%; transform: translate(-50%, -50%) } +#unity-container.unity-mobile { position: fixed; width: 100%; height: 100% } +#unity-canvas { background: {{{ BACKGROUND_COLOR }}} } +.unity-mobile #unity-canvas { width: 100%; height: 100% } +#unity-loading-bar { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); display: none } +#unity-logo { width: 154px; height: 130px; background: url('unity-logo-{{{ SPLASH_SCREEN_STYLE.toLowerCase() }}}.png') no-repeat center } +#unity-progress-bar-empty { width: 141px; height: 18px; margin-top: 10px; margin-left: 6.5px; background: url('progress-bar-empty-{{{ SPLASH_SCREEN_STYLE.toLowerCase() }}}.png') no-repeat center } +#unity-progress-bar-full { width: 0%; height: 18px; margin-top: 10px; background: url('progress-bar-full-{{{ SPLASH_SCREEN_STYLE.toLowerCase() }}}.png') no-repeat center } +#unity-footer { position: relative } +.unity-mobile #unity-footer { display: none } +#unity-logo-title-footer { float:left; width: 102px; height: 38px; background: url('unity-logo-title-footer.png') no-repeat center } +#unity-build-title { float: right; margin-right: 10px; line-height: 38px; font-family: arial; font-size: 18px } +#unity-fullscreen-button { cursor:pointer; float: right; width: 38px; height: 38px; background: url('fullscreen-button.png') no-repeat center } +#unity-warning { position: absolute; left: 50%; top: 5%; transform: translate(-50%); background: white; padding: 10px; display: none } diff --git a/apps/kbve.com/public/data/scripts/unity/WebGLTemplates/KBVE/TemplateData/style.css.meta b/apps/kbve.com/public/data/scripts/unity/WebGLTemplates/KBVE/TemplateData/style.css.meta new file mode 100644 index 000000000..af6b6b050 --- /dev/null +++ b/apps/kbve.com/public/data/scripts/unity/WebGLTemplates/KBVE/TemplateData/style.css.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: e6cbe23d8142d274e8de3b8944c30d97 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/apps/kbve.com/public/data/scripts/unity/WebGLTemplates/KBVE/index.html b/apps/kbve.com/public/data/scripts/unity/WebGLTemplates/KBVE/index.html new file mode 100644 index 000000000..2ae826445 --- /dev/null +++ b/apps/kbve.com/public/data/scripts/unity/WebGLTemplates/KBVE/index.html @@ -0,0 +1,188 @@ + + + + + + Unity Web Player | {{{ PRODUCT_NAME }}} + + +#if SHOW_DIAGNOSTICS + + +#endif + + +
+ +
+ +
+
+
+
+
+ +
+ + + diff --git a/apps/kbve.com/public/data/scripts/unity/WebGLTemplates/KBVE/index.html.meta b/apps/kbve.com/public/data/scripts/unity/WebGLTemplates/KBVE/index.html.meta new file mode 100644 index 000000000..47e7020b0 --- /dev/null +++ b/apps/kbve.com/public/data/scripts/unity/WebGLTemplates/KBVE/index.html.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 82c615106bfdbb14b85c03b4f10793c6 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: \ No newline at end of file diff --git a/apps/kbve.com/src/content/journal/11-26.mdx b/apps/kbve.com/src/content/journal/11-26.mdx new file mode 100644 index 000000000..1b5e7ac27 --- /dev/null +++ b/apps/kbve.com/src/content/journal/11-26.mdx @@ -0,0 +1,38 @@ +--- +title: 'November: 26th' +category: Daily +date: 2024-11-26 12:00:00 +client: Self +unsplash: 1541320779116-ec4a3d4692bc +img: https://images.unsplash.com/photo-1541320779116-ec4a3d4692bc?crop=entropy&cs=srgb&fm=jpg&ixid=MnwzNjM5Nzd8MHwxfHJhbmRvbXx8fHx8fHx8fDE2ODE3NDg2ODY&ixlib=rb-4.0.3&q=85 +description: November 26th. +tags: + - daily +--- + +import { Adsense, Tasks } from '@kbve/astropad'; + +## 2024 + +- 01:00PM + + **TSLA** + + We will have to roll the options out to next week and grab the $1000, just to make sure that it works. + +- 02:05PM + + **Unity** + + Sound manager vcontianer needs to be fixed, which we need to do before tomorrows meeting. + I am thinking that we would try to wrap everything inside of a vcontainer, making it easier for us to access the resources. + For us to setup the sound manager, we would have to link the scriptable object through addresses, which means we need to define them as well. + Inside of the `mmextensions`, we can add an assembly reference to Unity. + +- 11:00PM + + **Arcane** + + Finally got to start the series and its been a wild ride, err, rather a blast, so far. + I am going to be a bit sad when it ends because it has been a great series, but I am here for it all. + The new ARAM map also slaps, I love what they did with it and it finally makes zeri, bard and talon both a bit more fun to play. \ No newline at end of file diff --git a/apps/kbve.com/src/content/journal/11-27.mdx b/apps/kbve.com/src/content/journal/11-27.mdx new file mode 100644 index 000000000..5f50766db --- /dev/null +++ b/apps/kbve.com/src/content/journal/11-27.mdx @@ -0,0 +1,85 @@ +--- +title: 'November: 27th' +category: Daily +date: 2024-11-27 12:00:00 +client: Self +unsplash: 1541320779116-ec4a3d4692bc +img: https://images.unsplash.com/photo-1541320779116-ec4a3d4692bc?crop=entropy&cs=srgb&fm=jpg&ixid=MnwzNjM5Nzd8MHwxfHJhbmRvbXx8fHx8fHx8fDE2ODE3NDg2ODY&ixlib=rb-4.0.3&q=85 +description: November 27th. +tags: + - daily +--- + +import { Adsense, Tasks } from '@kbve/astropad'; + +## 2024 + +- 02:20AM + + **Unity** + + We got ourselves another unity build to test out. + While I am doing that, I should look to commission a steam game and bundle? + Actually, if the artist that we hire does a good job, we could also have the same artist do our steam page assets? + That would save us a bunch of time too. + +- 02:37AM + + **SoundManager** + + Looks like the prefab works even though we are not using the addressable object. + I am not too sure how I feel about that but for now it will be fine. + +- 03:09PM + + **Addressable** + + Looks like the most recent push created the files that we need for addressable-based vcontainers, allowing us to finally call the prefabs during the runtime. + This will be an interesting way for us to build out the game, I am thinking that the town itself will be the main scene and when entering a mission or camp, we do an additive loading? + Furthermore we would have to fix the URL maps and also the HTML template a bit more. + +- 03:36PM + + **Unity Template** + + The unity template needs to be adjusted so that it does not look like karp on the discord activities page. + This is an easy fix but I been too distracted to address it! + Anyhow, I am going to focus on getting that done today, with the postmessage and sendmessage between the player and iframe as well. + Starting off with the canvas issue: + + ``` + + + + ``` + + We will replace that line and move the styling over to the css part. + + Then add our own custom spinner that should just operate with css / javascript. + + ```html + +
+ + ``` + + I suppose we could do this twice, having another spinner for when the iframe is ready to be displayed? + Lets say we render the whole iframe and game off-canvas on the static html page that axum offers to Discord, then we can make the adjustments for our own loading screen? + Once the off-cavans is done, we transition over to the main window , hmm, okay this just a future proof of concept that we can do once the game is closer to becoming ready for launch. + + The meta will be added as a commented out line: + + ```html + + + + ``` + + I am thinking that we can assign it dynamically because if the game is played on mobile, we can make sure that the right meta viewport is assigned. + +- 08:40PM + + **Lifetime** + + The next part will be to switch back from the asset management and focus on the lifetime and entrypoints, oh boi. + We still need to setup the level manager and multiplayer level manager, once both of those are setup, we move forward with the player and npc list of prefabs. \ No newline at end of file diff --git a/apps/rust_rareicon_gameserver/build/index.html b/apps/rust_rareicon_gameserver/build/index.html index 3aa6a7f2f..b30e35d32 100644 --- a/apps/rust_rareicon_gameserver/build/index.html +++ b/apps/rust_rareicon_gameserver/build/index.html @@ -1,24 +1,32 @@ - + - - - - RareIcon - - - - - + + + + RareIcon + + + + + + diff --git a/packages/kilonet/README.md b/packages/kilonet/README.md index abce604fd..780759ce8 100644 --- a/packages/kilonet/README.md +++ b/packages/kilonet/README.md @@ -25,6 +25,7 @@ Adding new tilemap generator script and fixed some asmdefs. Triggering another build once more, oh boi, another docker build. We got the helm chart working and now are preparing for a basic multiplayer game. The WebGL build is a bit slower and needs some adjustments, starting the test case now. +Vcontainers added and a new model is coming soon. - [KBVE](https://kbve.com/) - [RareIcon](https://rareicon.com/) \ No newline at end of file diff --git a/packages/mmextensions/Kbve.MMExtensions.asmdef b/packages/mmextensions/Kbve.MMExtensions.asmdef index e846f77ae..f04e07fd4 100644 --- a/packages/mmextensions/Kbve.MMExtensions.asmdef +++ b/packages/mmextensions/Kbve.MMExtensions.asmdef @@ -7,8 +7,10 @@ "Unity.Collections", "MoreMountains.Tools", "MoreMountains.TopDownEngine", + "MoreMountains.Feedbacks", "VContainer", - "Kbve.Kilonet" + "Kbve.Kilonet", + "Unity.Addressables" ], "includePlatforms": [], "excludePlatforms": [], diff --git a/packages/mmextensions/mmextensions/Shaco/CameraManagerEntryPoint.cs b/packages/mmextensions/mmextensions/Shaco/CameraManagerEntryPoint.cs new file mode 100644 index 000000000..fce0a03df --- /dev/null +++ b/packages/mmextensions/mmextensions/Shaco/CameraManagerEntryPoint.cs @@ -0,0 +1,21 @@ +using UnityEngine; +using VContainer; +using VContainer.Unity; +// TODO: Cinemachine3.1 Integration. +namespace KBVE.MMExtensions.Shaco +{ + public class CameraManagerEntryPoint : IStartable + { + private readonly GameObject _cameraSystem; + + public CameraManagerEntryPoint(GameObject cameraSystem) + { + _cameraSystem = cameraSystem; + } + + public void Start() + { + Debug.Log("TODO - Camera Manager initialized."); + } + } +} diff --git a/packages/mmextensions/mmextensions/Shaco/CameraManagerEntryPoint.cs.meta b/packages/mmextensions/mmextensions/Shaco/CameraManagerEntryPoint.cs.meta new file mode 100644 index 000000000..03ea0cc8f --- /dev/null +++ b/packages/mmextensions/mmextensions/Shaco/CameraManagerEntryPoint.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 6d7ecea6b3644ec9af22c9a1850442ad +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: \ No newline at end of file diff --git a/packages/mmextensions/mmextensions/Shaco/GameLifetimeScope.cs b/packages/mmextensions/mmextensions/Shaco/GameLifetimeScope.cs index 6eb723a90..426352b59 100644 --- a/packages/mmextensions/mmextensions/Shaco/GameLifetimeScope.cs +++ b/packages/mmextensions/mmextensions/Shaco/GameLifetimeScope.cs @@ -3,6 +3,7 @@ using VContainer.Unity; using MoreMountains.Tools; using MoreMountains.TopDownEngine; +using MoreMountains.Feedbacks; using KBVE.Kilonet; namespace KBVE.MMExtensions.Shaco @@ -16,23 +17,43 @@ public class GameLifetimeScope : LifetimeScope private GameObject remotePlayerPrefab; [SerializeField] - private GameObject gameManagerPrefab; + private GameManager gameManagerPrefab; + + [SerializeField] + private MMTimeManager timeManagerPrefab; + + [SerializeField] + private MMSoundManager soundManagerPrefab; + + [SerializeField] + private GameObject cameraPrefab; + protected override void Configure(IContainerBuilder builder) { - builder.UseComponents(components => - { - var gameManager = Object.Instantiate(gameManagerPrefab).GetComponent(); - DontDestroyOnLoad(gameManager.gameObject); - components.AddInstance(gameManager); - }); + // Instantiate and Register Camera Prefab + var cameraInstance = Object.Instantiate(cameraPrefab); + cameraInstance.transform.parent = null; + builder.RegisterInstance(cameraInstance).AsSelf(); + // DontDestroyOnLoad(cameraInstance); + - // builder.RegisterComponentInNewPrefab(gameManagerPrefab, Lifetime.Scoped).DontDestroyOnLoad(); + builder.RegisterComponentInNewPrefab(gameManagerPrefab, Lifetime.Scoped); + builder.RegisterComponentInNewPrefab(timeManagerPrefab, Lifetime.Singleton); + builder.RegisterComponentInNewPrefab(soundManagerPrefab, Lifetime.Singleton); + + // builder.RegisterComponentInNewPrefab(gameManagerPrefab, Lifetime.Scoped).DontDestroyOnLoad(); + // builder.RegisterComponentInNewPrefab(timeManagerPrefab, Lifetime.Singleton).DontDestroyOnLoad(); + // builder.RegisterComponentInNewPrefab(soundManagerPrefab, Lifetime.Singleton).DontDestroyOnLoad(); + // builder.RegisterComponentInNewPrefab(cameraPrefab, Lifetime.Singleton).DontDestroyOnLoad(); - // Register the EntryPoint for GameManager initialization builder.RegisterEntryPoint(); + builder.RegisterEntryPoint(); + builder.RegisterEntryPoint(); + // builder.RegisterEntryPoint(); + } } } diff --git a/packages/mmextensions/mmextensions/Shaco/GameManagerEntryPoint.cs b/packages/mmextensions/mmextensions/Shaco/GameManagerEntryPoint.cs index aa5a81c1f..4ec852b2b 100644 --- a/packages/mmextensions/mmextensions/Shaco/GameManagerEntryPoint.cs +++ b/packages/mmextensions/mmextensions/Shaco/GameManagerEntryPoint.cs @@ -16,11 +16,10 @@ public GameManagerEntryPoint(GameManager gameManager) public void Start() { - // Initialize GameManager values _gameManager.TargetFrameRate = 60; - _gameManager.MaximumLives = 5; - _gameManager.CurrentLives = 5; - _gameManager.GameOverScene = "GameOver"; + _gameManager.MaximumLives = 1; + _gameManager.CurrentLives = 1; + _gameManager.GameOverScene = "Title"; Debug.Log("GameManager initialized via EntryPoint!"); } diff --git a/packages/mmextensions/mmextensions/Shaco/SoundManagerEntryPoint.cs b/packages/mmextensions/mmextensions/Shaco/SoundManagerEntryPoint.cs new file mode 100644 index 000000000..a83422617 --- /dev/null +++ b/packages/mmextensions/mmextensions/Shaco/SoundManagerEntryPoint.cs @@ -0,0 +1,29 @@ +using UnityEngine; +using UnityEngine.AddressableAssets; +using UnityEngine.ResourceManagement.AsyncOperations; +using VContainer; +using VContainer.Unity; +using MoreMountains.Tools; + +namespace KBVE.MMExtensions.Shaco +{ + public class SoundManagerEntryPoint : IStartable + { + private readonly MMSoundManager _soundManager; + + public SoundManagerEntryPoint(MMSoundManager soundManager) + { + _soundManager = soundManager; + } + + public void Start() + { + // Example Initialization Logic + // _soundManager.NormalTimeScale = 1f; + // _soundManager.UpdateTimescale = true; + // _soundManager.UpdateFixedDeltaTime = true; + // _soundManager.UpdateMaximumDeltaTime = true; + Debug.Log("MMSoundManager initialized in SoundManagerEntryPoint"); + } + } +} diff --git a/packages/mmextensions/mmextensions/Shaco/SoundManagerEntryPoint.cs.meta b/packages/mmextensions/mmextensions/Shaco/SoundManagerEntryPoint.cs.meta new file mode 100644 index 000000000..338b4baba --- /dev/null +++ b/packages/mmextensions/mmextensions/Shaco/SoundManagerEntryPoint.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: b825b5064ae149bf849771dded29fdad +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: \ No newline at end of file diff --git a/packages/mmextensions/mmextensions/Shaco/TimeManagerEntryPoint.cs b/packages/mmextensions/mmextensions/Shaco/TimeManagerEntryPoint.cs new file mode 100644 index 000000000..e7df80bd7 --- /dev/null +++ b/packages/mmextensions/mmextensions/Shaco/TimeManagerEntryPoint.cs @@ -0,0 +1,27 @@ +using UnityEngine; +using VContainer; +using VContainer.Unity; +using MoreMountains.Feedbacks; + +namespace KBVE.MMExtensions.Shaco +{ + public class TimeManagerEntryPoint : IStartable + { + private readonly MMTimeManager _timeManager; + + public TimeManagerEntryPoint(MMTimeManager timeManager) + { + _timeManager = timeManager; + } + + public void Start() + { + // Example Initialization Logic + _timeManager.NormalTimeScale = 1f; + _timeManager.UpdateTimescale = true; + _timeManager.UpdateFixedDeltaTime = true; + _timeManager.UpdateMaximumDeltaTime = true; + Debug.Log("MMTimeManager initialized in TimeManagerEntryPoint"); + } + } +} diff --git a/packages/mmextensions/mmextensions/Shaco/TimeManagerEntryPoint.cs.meta b/packages/mmextensions/mmextensions/Shaco/TimeManagerEntryPoint.cs.meta new file mode 100644 index 000000000..9fee21b28 --- /dev/null +++ b/packages/mmextensions/mmextensions/Shaco/TimeManagerEntryPoint.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 153d8a3f91d1478699519cb6bcc80d06 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: \ No newline at end of file