From 100d9bc74754424ad1aadab6461dff183717de14 Mon Sep 17 00:00:00 2001 From: Janith Wanasinghe Date: Mon, 3 Mar 2025 20:52:43 +0530 Subject: [PATCH] Commiting to website --- .../Unity-Simulation-Timer/package-lock.json | 19 ++ .../Unity-Simulation-Timer/package.json | 11 +- .../package-lock.json | 19 ++ .../package.json | 4 +- .../package-lock.json | 19 ++ .../package.json | 4 +- .../package-lock.json | 19 ++ .../package.json | 4 +- .../package-lock.json | 19 ++ .../package.json | 5 +- .../package-lock.json | 19 ++ .../package.json | 5 +- .../package-lock.json | 19 ++ .../package.json | 5 +- docs/.gitignore | 1 + docs/Assets/img/implementation/aws.webp | Bin 0 -> 13344 bytes docs/Assets/img/implementation/dataflow1.png | 3 + docs/Assets/img/implementation/dataflow2.png | 3 + .../img/{ => implementation}/hardware.png | 0 docs/Assets/img/implementation/techstack.webp | Bin 0 -> 16458 bytes docs/index.html | 21 +- docs/scripts/index.js | 179 +++++++++++------- docs/styles/index.css | 38 ++++ 23 files changed, 329 insertions(+), 87 deletions(-) create mode 100644 Proof of Concept/Assets/Mirror/Examples/BenchmarkStinkySteak/Dependencies/Unity-Simulation-Timer/package-lock.json create mode 100644 Proof of Concept/Library/PackageCache/com.unity.collab-proxy@50ac96531b63/package-lock.json create mode 100644 Proof of Concept/Library/PackageCache/com.unity.ext.nunit@60ef35ffd3cd/package-lock.json create mode 100644 Proof of Concept/Library/PackageCache/com.unity.mathematics@8017b507cc74/package-lock.json create mode 100644 Proof of Concept/Library/PackageCache/com.unity.nuget.mono-cecil@d6f9955a5d5f/package-lock.json create mode 100644 Proof of Concept/Library/PackageCache/com.unity.nuget.newtonsoft-json@74deb55db2a0/package-lock.json create mode 100644 Proof of Concept/Library/PackageCache/com.unity.searcher@90d011a70418/package-lock.json create mode 100644 docs/Assets/img/implementation/aws.webp create mode 100644 docs/Assets/img/implementation/dataflow1.png create mode 100644 docs/Assets/img/implementation/dataflow2.png rename docs/Assets/img/{ => implementation}/hardware.png (100%) create mode 100644 docs/Assets/img/implementation/techstack.webp 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 0000000000000000000000000000000000000000..fb9f583b4432bb0824495d44edb0cd5bbe14ec10 GIT binary patch literal 13344 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 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..47c975acb970d7243db27029549738c68e93b835 GIT binary patch literal 16458 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 literal 0 HcmV?d00001 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); +}