diff --git a/Proof of Concept/Assets/Mirror/Examples/BenchmarkStinkySteak/Dependencies/Unity-Simulation-Timer/package-lock.json b/Proof of Concept/Assets/Mirror/Examples/BenchmarkStinkySteak/Dependencies/Unity-Simulation-Timer/package-lock.json new file mode 100644 index 000000000..64863b23a --- /dev/null +++ b/Proof of Concept/Assets/Mirror/Examples/BenchmarkStinkySteak/Dependencies/Unity-Simulation-Timer/package-lock.json @@ -0,0 +1,19 @@ +{ + "name": "com.stinkysteak.simulationtimer", + "version": "0.1.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "com.stinkysteak.simulationtimer", + "version": "0.1.0", + "dependencies": { + "com.stinkysteak.simulationtimer": "file:" + } + }, + "node_modules/com.stinkysteak.simulationtimer": { + "resolved": "", + "link": true + } + } +} diff --git a/Proof of Concept/Assets/Mirror/Examples/BenchmarkStinkySteak/Dependencies/Unity-Simulation-Timer/package.json b/Proof of Concept/Assets/Mirror/Examples/BenchmarkStinkySteak/Dependencies/Unity-Simulation-Timer/package.json index 055326a2e..3da03e60a 100644 --- a/Proof of Concept/Assets/Mirror/Examples/BenchmarkStinkySteak/Dependencies/Unity-Simulation-Timer/package.json +++ b/Proof of Concept/Assets/Mirror/Examples/BenchmarkStinkySteak/Dependencies/Unity-Simulation-Timer/package.json @@ -8,8 +8,11 @@ "changelogUrl": "https://github.com/StinkySteak/com.stinkysteak.simulationtimer/blob/main/CHANGELOG.md", "licensesUrl": "https://github.com/StinkySteak/com.stinkysteak.simulationtimer/blob/main/LICENSE.md", "author": { - "name": "Stinkysteak", - "email": "stinkysteak@steaksoft.com", - "url": "https://steaksoft.net" + "name": "Stinkysteak", + "email": "stinkysteak@steaksoft.com", + "url": "https://steaksoft.net" + }, + "dependencies": { + "com.stinkysteak.simulationtimer": "file:" } - } \ No newline at end of file +} diff --git a/Proof of Concept/Library/PackageCache/com.unity.collab-proxy@50ac96531b63/package-lock.json b/Proof of Concept/Library/PackageCache/com.unity.collab-proxy@50ac96531b63/package-lock.json new file mode 100644 index 000000000..15b59531d --- /dev/null +++ b/Proof of Concept/Library/PackageCache/com.unity.collab-proxy@50ac96531b63/package-lock.json @@ -0,0 +1,19 @@ +{ + "name": "com.unity.collab-proxy", + "version": "2.7.1", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "com.unity.collab-proxy", + "version": "2.7.1", + "dependencies": { + "com.unity.collab-proxy": "file:" + } + }, + "node_modules/com.unity.collab-proxy": { + "resolved": "", + "link": true + } + } +} diff --git a/Proof of Concept/Library/PackageCache/com.unity.collab-proxy@50ac96531b63/package.json b/Proof of Concept/Library/PackageCache/com.unity.collab-proxy@50ac96531b63/package.json index 577b1137c..f966c9825 100644 --- a/Proof of Concept/Library/PackageCache/com.unity.collab-proxy@50ac96531b63/package.json +++ b/Proof of Concept/Library/PackageCache/com.unity.collab-proxy@50ac96531b63/package.json @@ -5,7 +5,9 @@ "unity": "2021.3", "unityRelease": "0f1", "description": "The package gives you the ability to use Unity Version Control in the Unity editor. To use Unity Version Control, a subscription is required. Learn more about how you can get started for free by visiting https://unity.com/solutions/version-control", - "dependencies": {}, + "dependencies": { + "com.unity.collab-proxy": "file:" + }, "keywords": [ "backup", "cloud", diff --git a/Proof of Concept/Library/PackageCache/com.unity.ext.nunit@60ef35ffd3cd/package-lock.json b/Proof of Concept/Library/PackageCache/com.unity.ext.nunit@60ef35ffd3cd/package-lock.json new file mode 100644 index 000000000..2c58ddbed --- /dev/null +++ b/Proof of Concept/Library/PackageCache/com.unity.ext.nunit@60ef35ffd3cd/package-lock.json @@ -0,0 +1,19 @@ +{ + "name": "com.unity.ext.nunit", + "version": "2.0.5", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "com.unity.ext.nunit", + "version": "2.0.5", + "dependencies": { + "com.unity.ext.nunit": "file:" + } + }, + "node_modules/com.unity.ext.nunit": { + "resolved": "", + "link": true + } + } +} diff --git a/Proof of Concept/Library/PackageCache/com.unity.ext.nunit@60ef35ffd3cd/package.json b/Proof of Concept/Library/PackageCache/com.unity.ext.nunit@60ef35ffd3cd/package.json index 40e2dfaf5..7632eab38 100644 --- a/Proof of Concept/Library/PackageCache/com.unity.ext.nunit@60ef35ffd3cd/package.json +++ b/Proof of Concept/Library/PackageCache/com.unity.ext.nunit@60ef35ffd3cd/package.json @@ -10,7 +10,9 @@ "test" ], "category": "Libraries", - "dependencies": {}, + "dependencies": { + "com.unity.ext.nunit": "file:" + }, "relatedPackages": { "com.unity.ext.nunit.tests": "2.0.5" }, diff --git a/Proof of Concept/Library/PackageCache/com.unity.mathematics@8017b507cc74/package-lock.json b/Proof of Concept/Library/PackageCache/com.unity.mathematics@8017b507cc74/package-lock.json new file mode 100644 index 000000000..e8f0c1397 --- /dev/null +++ b/Proof of Concept/Library/PackageCache/com.unity.mathematics@8017b507cc74/package-lock.json @@ -0,0 +1,19 @@ +{ + "name": "com.unity.mathematics", + "version": "1.3.2", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "com.unity.mathematics", + "version": "1.3.2", + "dependencies": { + "com.unity.mathematics": "file:" + } + }, + "node_modules/com.unity.mathematics": { + "resolved": "", + "link": true + } + } +} diff --git a/Proof of Concept/Library/PackageCache/com.unity.mathematics@8017b507cc74/package.json b/Proof of Concept/Library/PackageCache/com.unity.mathematics@8017b507cc74/package.json index 08cd8ee29..262d61e8d 100644 --- a/Proof of Concept/Library/PackageCache/com.unity.mathematics@8017b507cc74/package.json +++ b/Proof of Concept/Library/PackageCache/com.unity.mathematics@8017b507cc74/package.json @@ -7,7 +7,9 @@ "keywords": [ "unity" ], - "dependencies": {}, + "dependencies": { + "com.unity.mathematics": "file:" + }, "_upm": { "changelog": "### Fixed\n* Fixed `math.hash` crash when using IL2CPP builds on Arm 32 bit devices.\n* Fixed obsolete method usage warnings for `MatrixDrawer.CanCacheInspectorGUI` and `PrimitiveVectorDrawer.CanCacheInspectorGUI` in UNITY_2023_2_OR_NEWER.\n* Updated minimum editor version to 2021.3" }, diff --git a/Proof of Concept/Library/PackageCache/com.unity.nuget.mono-cecil@d6f9955a5d5f/package-lock.json b/Proof of Concept/Library/PackageCache/com.unity.nuget.mono-cecil@d6f9955a5d5f/package-lock.json new file mode 100644 index 000000000..70ee21a8e --- /dev/null +++ b/Proof of Concept/Library/PackageCache/com.unity.nuget.mono-cecil@d6f9955a5d5f/package-lock.json @@ -0,0 +1,19 @@ +{ + "name": "com.unity.nuget.mono-cecil", + "version": "1.11.4", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "com.unity.nuget.mono-cecil", + "version": "1.11.4", + "dependencies": { + "com.unity.nuget.mono-cecil": "file:" + } + }, + "node_modules/com.unity.nuget.mono-cecil": { + "resolved": "", + "link": true + } + } +} diff --git a/Proof of Concept/Library/PackageCache/com.unity.nuget.mono-cecil@d6f9955a5d5f/package.json b/Proof of Concept/Library/PackageCache/com.unity.nuget.mono-cecil@d6f9955a5d5f/package.json index aaf5dde6a..b6e15e787 100644 --- a/Proof of Concept/Library/PackageCache/com.unity.nuget.mono-cecil@d6f9955a5d5f/package.json +++ b/Proof of Concept/Library/PackageCache/com.unity.nuget.mono-cecil@d6f9955a5d5f/package.json @@ -16,5 +16,8 @@ "type": "git", "revision": "d0133ce672d724694b56bfd20672acf6f8737fec" }, - "_fingerprint": "d6f9955a5d5f84d45442ff1ad0fb694cc6e2fd62" + "_fingerprint": "d6f9955a5d5f84d45442ff1ad0fb694cc6e2fd62", + "dependencies": { + "com.unity.nuget.mono-cecil": "file:" + } } diff --git a/Proof of Concept/Library/PackageCache/com.unity.nuget.newtonsoft-json@74deb55db2a0/package-lock.json b/Proof of Concept/Library/PackageCache/com.unity.nuget.newtonsoft-json@74deb55db2a0/package-lock.json new file mode 100644 index 000000000..37a97d7a4 --- /dev/null +++ b/Proof of Concept/Library/PackageCache/com.unity.nuget.newtonsoft-json@74deb55db2a0/package-lock.json @@ -0,0 +1,19 @@ +{ + "name": "com.unity.nuget.newtonsoft-json", + "version": "3.2.1", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "com.unity.nuget.newtonsoft-json", + "version": "3.2.1", + "dependencies": { + "com.unity.nuget.newtonsoft-json": "file:" + } + }, + "node_modules/com.unity.nuget.newtonsoft-json": { + "resolved": "", + "link": true + } + } +} diff --git a/Proof of Concept/Library/PackageCache/com.unity.nuget.newtonsoft-json@74deb55db2a0/package.json b/Proof of Concept/Library/PackageCache/com.unity.nuget.newtonsoft-json@74deb55db2a0/package.json index 223807734..40fcf1a85 100644 --- a/Proof of Concept/Library/PackageCache/com.unity.nuget.newtonsoft-json@74deb55db2a0/package.json +++ b/Proof of Concept/Library/PackageCache/com.unity.nuget.newtonsoft-json@74deb55db2a0/package.json @@ -19,5 +19,8 @@ "type": "git", "revision": "d8e49aef8979bef617144382052ec2f479645eaf" }, - "_fingerprint": "74deb55db2a0c29ddfda576608bcb86abbd13ee6" + "_fingerprint": "74deb55db2a0c29ddfda576608bcb86abbd13ee6", + "dependencies": { + "com.unity.nuget.newtonsoft-json": "file:" + } } diff --git a/Proof of Concept/Library/PackageCache/com.unity.searcher@90d011a70418/package-lock.json b/Proof of Concept/Library/PackageCache/com.unity.searcher@90d011a70418/package-lock.json new file mode 100644 index 000000000..867ff7b63 --- /dev/null +++ b/Proof of Concept/Library/PackageCache/com.unity.searcher@90d011a70418/package-lock.json @@ -0,0 +1,19 @@ +{ + "name": "com.unity.searcher", + "version": "4.9.2", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "com.unity.searcher", + "version": "4.9.2", + "dependencies": { + "com.unity.searcher": "file:" + } + }, + "node_modules/com.unity.searcher": { + "resolved": "", + "link": true + } + } +} diff --git a/Proof of Concept/Library/PackageCache/com.unity.searcher@90d011a70418/package.json b/Proof of Concept/Library/PackageCache/com.unity.searcher@90d011a70418/package.json index e42db7e91..1b977ec25 100644 --- a/Proof of Concept/Library/PackageCache/com.unity.searcher@90d011a70418/package.json +++ b/Proof of Concept/Library/PackageCache/com.unity.searcher@90d011a70418/package.json @@ -26,5 +26,8 @@ "path": "Samples~" } ], - "_fingerprint": "90d011a70418fd5b0f4b8e86df39444d2af228dd" + "_fingerprint": "90d011a70418fd5b0f4b8e86df39444d2af228dd", + "dependencies": { + "com.unity.searcher": "file:" + } } diff --git a/docs/.gitignore b/docs/.gitignore index 84b90cc6e..5a424ec40 100644 --- a/docs/.gitignore +++ b/docs/.gitignore @@ -6,3 +6,4 @@ Gemfile.lock Gemfile # Add your own files to be ignored from git in here +Proof of Concept/ diff --git a/docs/Assets/img/implementation/aws.webp b/docs/Assets/img/implementation/aws.webp new file mode 100644 index 000000000..fb9f583b4 Binary files /dev/null and b/docs/Assets/img/implementation/aws.webp differ diff --git a/docs/Assets/img/implementation/dataflow1.png b/docs/Assets/img/implementation/dataflow1.png new file mode 100644 index 000000000..3bec25764 --- /dev/null +++ b/docs/Assets/img/implementation/dataflow1.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bec64452fb116f96611a24eaf9259dab425c047faebae4e6cc4e3384e75479e8 +size 127921 diff --git a/docs/Assets/img/implementation/dataflow2.png b/docs/Assets/img/implementation/dataflow2.png new file mode 100644 index 000000000..91b702a2c --- /dev/null +++ b/docs/Assets/img/implementation/dataflow2.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:92f41c71453bbed7909f2a01b547471332c6f21a586082f6d1af3ab75030c551 +size 118399 diff --git a/docs/Assets/img/hardware.png b/docs/Assets/img/implementation/hardware.png similarity index 100% rename from docs/Assets/img/hardware.png rename to docs/Assets/img/implementation/hardware.png diff --git a/docs/Assets/img/implementation/techstack.webp b/docs/Assets/img/implementation/techstack.webp new file mode 100644 index 000000000..47c975acb Binary files /dev/null and b/docs/Assets/img/implementation/techstack.webp differ diff --git a/docs/index.html b/docs/index.html index a0108f102..c3dbdb2b2 100644 --- a/docs/index.html +++ b/docs/index.html @@ -109,28 +109,39 @@

Implementation

Hardware Stack

- Hardware Stack + Hardware Stack

We use VR headsets, motion sensors, and haptic feedback devices to simulate a realistic golf experience.

Data Flow Stack

- Data Flow Stack +
+
+ Data Flow Stack 1 +
+
+ Data Flow Stack 2 +
+ +

Real-time data synchronization between players ensures smooth multiplayer interactions.

Tech Stack

- Tech Stack + Tech Stack

Our game is built using Unity 3D, C#, and optimized physics engines to enhance gameplay realism.

AWS

- AWS + AWS

We leverage AWS for scalable cloud storage, multiplayer matchmaking, and real-time game hosting.

@@ -278,7 +289,7 @@

Gallery

diff --git a/docs/scripts/index.js b/docs/scripts/index.js index e588119ca..aa76f6469 100644 --- a/docs/scripts/index.js +++ b/docs/scripts/index.js @@ -1,90 +1,125 @@ document.addEventListener("DOMContentLoaded", function () { - const navbar = document.querySelector(".navbar"); - const menuIcon = document.querySelector(".menu-icon"); - const navLinks = document.querySelector(".nav-links"); - - window.addEventListener("scroll", function () { - if (window.scrollY > 50) { - navbar.style.backgroundColor = "rgba(0, 0, 0, 0.9)"; - } else { - navbar.style.backgroundColor = "rgba(0, 0, 0, 0.8)"; - } - }); + const navbar = document.querySelector(".navbar"); + const menuIcon = document.querySelector(".menu-icon"); + const navLinks = document.querySelector(".nav-links"); - document.querySelectorAll('.nav-links a').forEach(anchor => { - anchor.addEventListener('click', function (event) { - event.preventDefault(); - const target = document.querySelector(this.getAttribute('href')); - target.scrollIntoView({ behavior: 'smooth' }); - }); - }); + window.addEventListener("scroll", function () { + if (window.scrollY > 50) { + navbar.style.backgroundColor = "rgba(0, 0, 0, 0.9)"; + } else { + navbar.style.backgroundColor = "rgba(0, 0, 0, 0.8)"; + } + }); - menuIcon.addEventListener("click", function () { - navLinks.classList.toggle("active"); + document.querySelectorAll(".nav-links a").forEach((anchor) => { + anchor.addEventListener("click", function (event) { + event.preventDefault(); + const target = document.querySelector(this.getAttribute("href")); + target.scrollIntoView({ behavior: "smooth" }); }); + }); - // Gallery Carousel Functionality - const carouselImages = document.querySelectorAll(".carousel img"); - const prevBtn = document.querySelector(".carousel .prev"); - const nextBtn = document.querySelector(".carousel .next"); - const dots = document.querySelectorAll(".carousel .dots span"); - - let currentIndex = 0; - let interval; - - function showImage(index) { - // Ensure index wraps around correctly - if (index >= carouselImages.length) { - currentIndex = 0; - } else if (index < 0) { - currentIndex = carouselImages.length - 1; - } else { - currentIndex = index; - } - - // Remove active class from all images - carouselImages.forEach((img, i) => { - img.classList.toggle("active", i === currentIndex); - dots[i].classList.toggle("active", i === currentIndex); - }); - } + menuIcon.addEventListener("click", function () { + navLinks.classList.toggle("active"); + }); - function nextImage() { - showImage(currentIndex + 1); - } + // Gallery Carousel Functionality + const carouselImages = document.querySelectorAll(".carousel img"); + const prevBtn = document.querySelector(".carousel .prev"); + const nextBtn = document.querySelector(".carousel .next"); + const dots = document.querySelectorAll(".carousel .dots span"); + + let currentIndex = 0; + let interval; - function prevImage() { - showImage(currentIndex - 1); + function showImage(index) { + // Ensure index wraps around correctly + if (index >= carouselImages.length) { + currentIndex = 0; + } else if (index < 0) { + currentIndex = carouselImages.length - 1; + } else { + currentIndex = index; } - // Event Listeners for Navigation Buttons - prevBtn.addEventListener("click", function () { - prevImage(); - restartAutoSlide(); + // Remove active class from all images + carouselImages.forEach((img, i) => { + img.classList.toggle("active", i === currentIndex); + dots[i].classList.toggle("active", i === currentIndex); }); + } - nextBtn.addEventListener("click", function () { - nextImage(); - restartAutoSlide(); - }); + function nextImage() { + showImage(currentIndex + 1); + } + + function prevImage() { + showImage(currentIndex - 1); + } + + // Event Listeners for Navigation Buttons + prevBtn.addEventListener("click", function () { + prevImage(); + restartAutoSlide(); + }); - dots.forEach((dot, index) => { - dot.addEventListener("click", function () { - showImage(index); - restartAutoSlide(); - }); + nextBtn.addEventListener("click", function () { + nextImage(); + restartAutoSlide(); + }); + + dots.forEach((dot, index) => { + dot.addEventListener("click", function () { + showImage(index); + restartAutoSlide(); }); + }); - // Auto-slide function - function startAutoSlide() { - interval = setInterval(nextImage, 5000); // Change every 5 seconds - } + // Auto-slide function + function startAutoSlide() { + interval = setInterval(nextImage, 5000); // Change every 5 seconds + } - function restartAutoSlide() { - clearInterval(interval); - startAutoSlide(); + function restartAutoSlide() { + clearInterval(interval); + startAutoSlide(); + } + + // Start the auto-slide when page loads + startAutoSlide(); + + // Slideshow Functionality for Data Flow Stack + let slideIndex = 1; + showSlides(slideIndex); + + function plusSlides(n) { + showSlides((slideIndex += n)); + } + + function showSlides(n) { + let i; + let slides = document.getElementsByClassName("mySlides"); + if (n > slides.length) { + slideIndex = 1; + } + if (n < 1) { + slideIndex = slides.length; } + for (i = 0; i < slides.length; i++) { + slides[i].style.display = "none"; + } + slides[slideIndex - 1].style.display = "block"; + } - // Start the auto-slide when page loads - startAutoSlide(); + document + .querySelector(".slideshow-container .prev") + .addEventListener("click", function () { + plusSlides(-1); + }); + + document + .querySelector(".slideshow-container .next") + .addEventListener("click", function () { + plusSlides(1); + }); }); diff --git a/docs/styles/index.css b/docs/styles/index.css index 620b7c1fc..b16331fe3 100644 --- a/docs/styles/index.css +++ b/docs/styles/index.css @@ -700,4 +700,42 @@ tfoot th { background: #0099aa; transform: scale(1.05); } +.slideshow-container { + position: relative; + max-width: 100%; + margin: auto; +} + +.mySlides { + display: none; +} + +img { + vertical-align: middle; + width: 100%; +} + +.prev, .next { + cursor: pointer; + position: absolute; + top: 50%; + width: auto; + padding: 16px; + margin-top: -22px; + color: white; + font-weight: bold; + font-size: 18px; + transition: 0.6s ease; + border-radius: 0 3px 3px 0; + user-select: none; +} + +.next { + right: 0; + border-radius: 3px 0 0 3px; +} + +.prev:hover, .next:hover { + background-color: rgba(0,0,0,0.8); +}