{"id":922,"date":"2024-10-16T14:03:58","date_gmt":"2024-10-16T12:03:58","guid":{"rendered":"https:\/\/wesleydegraaf.com\/?page_id=922"},"modified":"2024-10-16T14:03:58","modified_gmt":"2024-10-16T12:03:58","slug":"next-station","status":"publish","type":"page","link":"https:\/\/wesleydegraaf.com\/en\/next-station\/","title":{"rendered":"Next Station"},"content":{"rendered":"<div class=\"wp-block-cover\" style=\"min-height:280px;aspect-ratio:unset;\"><span aria-hidden=\"true\" class=\"wp-block-cover__background has-palette-color-1-background-color has-background-dim-100 has-background-dim\"><\/span><div class=\"wp-block-cover__inner-container is-layout-flow wp-block-cover-is-layout-flow\">\n<p class=\"has-text-align-center has-x-large-font-size wp-block-paragraph\"><strong>Next Station<\/strong><\/p>\n<\/div><\/div>\n\n\n\n<figure class=\"wp-block-embed alignright is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"Trailer - Next Station - Team WILD\" width=\"1290\" height=\"726\" src=\"https:\/\/www.youtube.com\/embed\/epliJhuyAI4?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">For project Vrij, we had to create a game based on an experience from our study trip to Berlin. During the trip, we visited a park around 9:35 PM, but when we arrived, we saw that it closed at 10:00 PM. We hesitated but decided to take a quick look and we would head back. There was only limited light in the park, and as we walked further, it got darker and darker. Our goal was to reach one of the old FLAK towers in Berlin. To do this, we had to leave the main path of the park and head into an unlit area. We walked around with a flashlight. In the shadows, strange shapes appeared, and at times, it seemed like the movement of an animal. <br><br>We transformed this experience, along with some other small experiences from Berlin, into Next Station. Next Station is an escape room-style game where the player must solve two puzzles to escape. However, there's something strange going on. When the player completes one loop, they\u2019ve actually only completed half a loop. The player must walk two loops to finish one full loop. Additionally, when the player moves forward, time moves forward, and when they walk backward, time moves in reverse. <br><br>The player needs to meet their friend at South Station, but to do so, they must first buy a ticket. When the player purchases the ticket, all the power in the station goes out. The player must then find another way to get a ticket. Once the player obtains the ticket, they must ensure the train arrives at the correct time. When the train arrives at the station and the player has a ticket, they can board the train. The game ends with a humorous twist, making the player think the game is over, only to have the real ending occur just a bit later.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h4 class=\"wp-block-heading\"><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-palette-color-1-color\">Project Info:<\/mark><\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Team Members: Louiza Kevorkian, Isabella van den Dungen<br>Project time: HKU Year 1 Period 4<br>Engine: Unity<br>Code Languages: C#<\/p>\n\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"577\" data-id=\"1169\" src=\"https:\/\/wesleydegraaf.com\/wp-content\/uploads\/2024\/10\/image-24-1024x577.png\" alt=\"\" class=\"wp-image-1169\" srcset=\"https:\/\/wesleydegraaf.com\/wp-content\/uploads\/2024\/10\/image-24-1024x577.png 1024w, https:\/\/wesleydegraaf.com\/wp-content\/uploads\/2024\/10\/image-24-300x169.png 300w, https:\/\/wesleydegraaf.com\/wp-content\/uploads\/2024\/10\/image-24-768x433.png 768w, https:\/\/wesleydegraaf.com\/wp-content\/uploads\/2024\/10\/image-24-1536x866.png 1536w, https:\/\/wesleydegraaf.com\/wp-content\/uploads\/2024\/10\/image-24-18x10.png 18w, https:\/\/wesleydegraaf.com\/wp-content\/uploads\/2024\/10\/image-24.png 1914w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"578\" data-id=\"1171\" src=\"https:\/\/wesleydegraaf.com\/wp-content\/uploads\/2024\/10\/image-26-1024x578.png\" alt=\"\" class=\"wp-image-1171\" srcset=\"https:\/\/wesleydegraaf.com\/wp-content\/uploads\/2024\/10\/image-26-1024x578.png 1024w, https:\/\/wesleydegraaf.com\/wp-content\/uploads\/2024\/10\/image-26-300x169.png 300w, https:\/\/wesleydegraaf.com\/wp-content\/uploads\/2024\/10\/image-26-768x434.png 768w, https:\/\/wesleydegraaf.com\/wp-content\/uploads\/2024\/10\/image-26-1536x867.png 1536w, https:\/\/wesleydegraaf.com\/wp-content\/uploads\/2024\/10\/image-26-18x10.png 18w, https:\/\/wesleydegraaf.com\/wp-content\/uploads\/2024\/10\/image-26.png 1909w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" data-id=\"1170\" src=\"https:\/\/wesleydegraaf.com\/wp-content\/uploads\/2024\/10\/image-25-1024x576.png\" alt=\"\" class=\"wp-image-1170\" srcset=\"https:\/\/wesleydegraaf.com\/wp-content\/uploads\/2024\/10\/image-25-1024x576.png 1024w, https:\/\/wesleydegraaf.com\/wp-content\/uploads\/2024\/10\/image-25-300x169.png 300w, https:\/\/wesleydegraaf.com\/wp-content\/uploads\/2024\/10\/image-25-768x432.png 768w, https:\/\/wesleydegraaf.com\/wp-content\/uploads\/2024\/10\/image-25-1536x864.png 1536w, https:\/\/wesleydegraaf.com\/wp-content\/uploads\/2024\/10\/image-25-18x10.png 18w, https:\/\/wesleydegraaf.com\/wp-content\/uploads\/2024\/10\/image-25.png 1919w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/figure>\n\n\n\n<div style=\"height:104px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading has-palette-color-1-color has-text-color has-link-color wp-elements-526e33aad4e57035b88966cc3434a551\">Looping Station System<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The station is made up of 8 quarter segments. Each time the player crosses a segment, another section further along is loaded. The player needs to walk two loops to complete one full loop, which is meant to confuse them. The player can walk in either direction, and this also affects the arrival puzzle. In the arrival puzzle, the player must ensure that the time matches the time displayed on the board for the train to arrive.<\/p>\n\n\n\n<div class=\"dm-code-snippet light dm-normal-version no-background no-background-mobile\" snippet-height=\"\" style=\"background-color:#abb8c3\"><div class=\"control-language\"><div class=\"dm-buttons\"><div class=\"dm-buttons-left\"><div class=\"dm-button-snippet red-button\"><\/div><div class=\"dm-button-snippet orange-button\"><\/div><div class=\"dm-button-snippet green-button\"><\/div><\/div><div class=\"dm-buttons-right\"><a id=\"dm-copy-raw-code\"><span class=\"dm-copy-text\">Copy Code<\/span><span class=\"dm-copy-confirmed\" style=\"display:none\">Copied<\/span><span class=\"dm-error-message\" style=\"display:none\">Use a different Browser<\/span><\/a><\/div><\/div><pre class=\"line-numbers\"><code id=\"dm-code-raw\" class=\"no-wrap language-typescript\">    public void NextPart(int checkpoint)\n    {\n        if ((lastCheckpoint > checkpoint &amp;&amp; !(lastCheckpoint == 4 &amp;&amp; checkpoint == 1)) || (lastCheckpoint == 1 &amp;&amp; checkpoint == 4))\n        {\n            currentIndex--;\n            lastCheckpoint = checkpoint;\n\n            if (currentIndex &lt; 0) currentIndex = mapSections.Count - 1;\n            OnNextPart?.Invoke(SectionDir.MIN);\n        }\n        else if (lastCheckpoint &lt; checkpoint || (lastCheckpoint == 4 &amp;&amp; checkpoint == 1))\n        {\n            currentIndex++;\n            lastCheckpoint = checkpoint;\n\n            if (currentIndex >= mapSections.Count) currentIndex = 0;\n            OnNextPart?.Invoke(SectionDir.PLUS); \n        }\n\n        OnSectionUpdate?.Invoke(currentIndex);\n        Load();\n    }<\/code><\/pre><\/div><\/div>\n\n\n\n<p class=\"has-text-align-center wp-block-paragraph\">Show a new segment from the metro station<\/p>\n\n\n\n<div style=\"height:55px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading has-palette-color-1-color has-text-color has-link-color wp-elements-14e1f947ac0c1a3fd27e727ab8a5039a\">Ending<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">For the time puzzle, the train must arrive at the correct segment because the time increments are based on the direction the player walks, and for how long? However, we don\u2019t know exactly where the train should arrive. After a small calculation, this wasn\u2019t too difficult to implement. The only issue was that sometimes the metro\u2019s animation would move in the wrong direction. For the departure, the metro needed to drive away, and once it reached the opposite side, it would despawn.<\/p>\n\n\n\n<div class=\"dm-code-snippet light dm-slim-version no-background no-background-mobile\" snippet-height=\"\" style=\"background-color:#abb8c3\"><div class=\"control-language\"><div class=\"dm-buttons\"><div class=\"dm-buttons-left\"><div class=\"dm-button-snippet red-button\"><\/div><div class=\"dm-button-snippet orange-button\"><\/div><div class=\"dm-button-snippet green-button\"><\/div><\/div><div class=\"dm-buttons-right\"><a id=\"dm-copy-raw-code\"><span class=\"dm-copy-text\">Copy Code<\/span><span class=\"dm-copy-confirmed\" style=\"display:none\">Copied<\/span><span class=\"dm-error-message\" style=\"display:none\">Use a different Browser<\/span><\/a><\/div><\/div><pre class=\"line-numbers\"><code id=\"dm-code-raw\" class=\"no-wrap language-php\">    public void DriveAway()\n    {\n        int currentRotationIndex = SectionManager.Instance.GetCurrentCheckpoint() - 1;\n\n        transform.DORotate(new Vector3(0, currentRotationIndex * 90 - 45 + 179, 0), 6f, RotateMode.Fast).SetEase(Ease.InQuad).OnComplete(() =>\n        {\n            metroObject.SetActive(false);\n            blockDespawn = false;\n        });\n    }\n\n    private void DriveToPlatform()\n    {\n        int currentRotationIndex = SectionManager.Instance.GetCurrentCheckpoint() - 1;\n\n        transform.rotation = Quaternion.Euler(new Vector3(0, currentRotationIndex * 90 - 45 - 179, 0));\n\n        Sequence sequence = DOTween.Sequence();\n\n        sequence.Append(transform.DORotate(new Vector3(0, currentRotationIndex * 90 - 45, 0), 6f).SetEase(Ease.OutQuad))\n                .AppendInterval(2f)\n                .AppendCallback(() => OpenDoor(true))\n                .Play();\n    }\n<\/code><\/pre><\/div><\/div>\n\n\n\n<p class=\"has-text-align-center wp-block-paragraph\">The departure and arrival from\/at the station<\/p>\n\n\n\n<div style=\"height:65px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n<p><iframe loading=\"lazy\" frameborder=\"0\" src=\"https:\/\/itch.io\/embed\/2784399?linkback=true&amp;link_color=00a10d\" width=\"552\" height=\"167\"><a href=\"https:\/\/double-gezicht.itch.io\/next-station\">Next Station by Double_Gezicht, loulou.exe<\/a><\/iframe><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>","protected":false},"excerpt":{"rendered":"<p>Voor project Vrij moesten wij een game maken gebasseerd op een ervaring van de studiereis naar Berlijn. Tijdens de Berlijn reis zijn we naar een park geweest rond 21:35, echter toen we bij het park aankwamen stond er dat het om 22:00 dichtging. We hebben getwijfeld en besloten om kort te gaan kijken en dan [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-922","page","type-page","status-publish","hentry"],"blocksy_meta":[],"_links":{"self":[{"href":"https:\/\/wesleydegraaf.com\/en\/wp-json\/wp\/v2\/pages\/922","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wesleydegraaf.com\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/wesleydegraaf.com\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/wesleydegraaf.com\/en\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/wesleydegraaf.com\/en\/wp-json\/wp\/v2\/comments?post=922"}],"version-history":[{"count":25,"href":"https:\/\/wesleydegraaf.com\/en\/wp-json\/wp\/v2\/pages\/922\/revisions"}],"predecessor-version":[{"id":1189,"href":"https:\/\/wesleydegraaf.com\/en\/wp-json\/wp\/v2\/pages\/922\/revisions\/1189"}],"wp:attachment":[{"href":"https:\/\/wesleydegraaf.com\/en\/wp-json\/wp\/v2\/media?parent=922"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}