<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Stories by Kunal Duggal on Medium]]></title>
        <description><![CDATA[Stories by Kunal Duggal on Medium]]></description>
        <link>https://medium.com/@kunal?source=rss-60025d9346ee------2</link>
        <image>
            <url>https://cdn-images-1.medium.com/fit/c/150/150/2*ZApG7AdyYtk-oZwZ3zigNA.jpeg</url>
            <title>Stories by Kunal Duggal on Medium</title>
            <link>https://medium.com/@kunal?source=rss-60025d9346ee------2</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Sat, 14 Nov 2026 19:08:56 GMT</lastBuildDate>
        <atom:link href="https://medium.com/@kunal/feed" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com" rel="hub"/>
        <item>
            <title><![CDATA[sweet ’n’ sour tape #44: bingo bongo]]></title>
            <link>https://medium.com/the-sweet-n-sour-tapes/sweet-n-sour-tape-46-bingo-bongo-bc62869ca0be?source=rss-60025d9346ee------2</link>
            <guid isPermaLink="false">https://medium.com/p/bc62869ca0be</guid>
            <category><![CDATA[creativity]]></category>
            <category><![CDATA[2025]]></category>
            <category><![CDATA[new-year]]></category>
            <category><![CDATA[relationships]]></category>
            <category><![CDATA[letters]]></category>
            <dc:creator><![CDATA[Kunal Duggal]]></dc:creator>
            <pubDate>Sat, 04 Jan 2025 00:18:26 GMT</pubDate>
            <atom:updated>2025-06-17T17:02:44.574Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*NSEP_BAsBFZMf4f8FoyrFA.png" /></figure><p>Happy New Year —</p><p>This Bingo Board has a series of intentions and goals I have set out to accomplish for 2025.</p><p>I want this upcoming year to be my most creative and authentic yet.</p><p>Your Boy,</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=bc62869ca0be" width="1" height="1" alt=""><hr><p><a href="https://medium.com/the-sweet-n-sour-tapes/sweet-n-sour-tape-46-bingo-bongo-bc62869ca0be">sweet ’n’ sour tape #44: bingo bongo</a> was originally published in <a href="https://medium.com/the-sweet-n-sour-tapes">the sweet ’n’ sour tapes</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[sweet ’n’ sour tape #42: happy new year]]></title>
            <link>https://medium.com/the-sweet-n-sour-tapes/sweet-n-sour-tape-41-happy-new-year-511d9f230f10?source=rss-60025d9346ee------2</link>
            <guid isPermaLink="false">https://medium.com/p/511d9f230f10</guid>
            <category><![CDATA[new-years-eve]]></category>
            <category><![CDATA[reflections]]></category>
            <category><![CDATA[letters]]></category>
            <dc:creator><![CDATA[Kunal Duggal]]></dc:creator>
            <pubDate>Mon, 01 Jan 2024 04:54:34 GMT</pubDate>
            <atom:updated>2024-01-01T16:25:10.182Z</atom:updated>
            <content:encoded><![CDATA[<h4>Back to basics with this tape 📝</h4><p>Oh the personal essay, the format that started these tapes off in 2017, turns 7 this year. The anniversaries of our high school graduation, freshman year of college, and LUV is rage 2 releasing all turn 7. The most jarring bit of this information to me is how infinite time felt in 2017. College felt like it would drag on for ages, we both had a chip on our shoulders, ready to make a mark, and grow into ourselves. 7 years later I think both of us from back then would be proud of us now. We overcame a lot of obstacles these past 7 years, and are living lives that they would be proud to see. I don’t think either of us exactly imagined to be where we are now, but I would not change anything.</p><p>7 is a lucky number, and I think we’re going to have a special year in 2024. In 7 years my external circumstances have changed dramatically, but I think the most drastic change is my relationship with time. It evolved tremendously in 2023, and I think the fruits of this internalization will be harvested in 2024. I’ve embraced that we’re limited in nature, and there is no difference between us and the movement of time. And, as our time on earth is limited, we’re limited. I still think the sky’s the limit, but not all the time or in every aspect of my life.</p><p>I ran a marathon this year. It’s a feat that required about 8hrs of training a week, and that was just for completion. Not easy to commit to espically for someone who had 0 athletic ability prior, but I did it. Those 8hrs running and stretching each week meant that 8hrs had to be taken out of other areas of my life. I could’ve spent that time writing poetry, I could’ve spent that time getting a masters degree (LMAO), or being a more devout employee at work (SMH).</p><p>Instead, I chose to run for multiple hours each week. It was a trade off I made to prove to myself that I can accomplish something difficult for myself, and just for myself. No one told me to run a marathon, my mom even warned me not too for a while, but I made it happen. I don’t regret the time I invested, but I had to acknowledge that it meant other goals this year had to be left to the wayside. It meant skipping hangouts with friends, improv shows, or even worrying about the tangelo poetry account.</p><p>I now live life setting one major goal each year, and the year to me is made if that one goal is accomplished. Maybe the goals build upon each other to something greater, or maybe they don’t, and that’s all ok! It’s ok because at the end of the day we’re our attention. As long as my attention is spent on things I enjoy, I live a pretty great life. I want to enjoy mastering new skills, sharing my experiences that resonate with others, and having wonderful conversations with wonderful human beings. 2024 is going to be a great year if that is all supplied.</p><p>One other major thing I realized in 2023 were my values. I was walking around Paris and as I looked at the other tourists I kept reciting in my head, “The light in me, sees the light in you,” which is something Yoga instructors share at the end of class. As I recited that saying I had an epiphany. My values are Eat, Explore, Educate, the 3Es. I firmly believe all humans and by extension myself are meant to eat good food, explore the world around them, and educate others about what they explore.</p><p>At the core of me, that’s what I want to do for the rest of my life. Right now I’m focused on Explore. Creativity falls under exploration for me and some of my current goals, but over time I think I’ll start to lean closer to education. Food of course will be the constant. We should always be excited to eat a great meal while of course having a wonderful conversation in between bites.</p><p>In 12 more minutes from writing this, it’ll be officially 7 years from 2017, a pivotal year I’d say, and I think we’ll be ushering in another pivotal year with 2024. 2017 we were starry-eyed, but now we’re a bit wiser armed with what we learned from previous years.</p><p>2023 had a lot of ups and downs, but at the end of it all I reflect on how I’ve changed, and I’m proud of myself. This is the first year I feel this way. Thanks for being through it all with me. Thanks for being the day 0, a ride or die, and a consistent inspiration in my life. Love you! Happy New Year 🎉</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=511d9f230f10" width="1" height="1" alt=""><hr><p><a href="https://medium.com/the-sweet-n-sour-tapes/sweet-n-sour-tape-41-happy-new-year-511d9f230f10">sweet ’n’ sour tape #42: happy new year</a> was originally published in <a href="https://medium.com/the-sweet-n-sour-tapes">the sweet ’n’ sour tapes</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[sweet ’n’ sour tape #40: life pack]]></title>
            <link>https://medium.com/the-sweet-n-sour-tapes/sweet-n-sour-tape-38-life-pack-03bda413dd81?source=rss-60025d9346ee------2</link>
            <guid isPermaLink="false">https://medium.com/p/03bda413dd81</guid>
            <category><![CDATA[letters]]></category>
            <category><![CDATA[mental-health]]></category>
            <category><![CDATA[love]]></category>
            <category><![CDATA[life]]></category>
            <category><![CDATA[experience]]></category>
            <dc:creator><![CDATA[Kunal Duggal]]></dc:creator>
            <pubDate>Wed, 15 Nov 2023 02:04:03 GMT</pubDate>
            <atom:updated>2023-11-16T01:14:36.858Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*j66cBMf-9DHmQQX94JtHYw.png" /><figcaption>On the way back to Pluto from earth you stumble upon a mysterious card pack.</figcaption></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/750/1*A1ZoBkKS4OL8vpk5VqVd-Q.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/750/1*dO36DzcVqE6DapHeeb8P8g.png" /><figcaption>The cards describe life experiences.</figcaption></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/750/1*dBQbdviswES3s-ehs_YgOQ.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/750/1*IPZ-pCj-xpZKdVH4LIG-fA.png" /><figcaption>Four highlight specific events.</figcaption></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/750/1*pQ1PmF-ocUDQL5Z34XKxbA.png" /><figcaption>The last card a shift in mindset.</figcaption></figure><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=03bda413dd81" width="1" height="1" alt=""><hr><p><a href="https://medium.com/the-sweet-n-sour-tapes/sweet-n-sour-tape-38-life-pack-03bda413dd81">sweet ’n’ sour tape #40: life pack</a> was originally published in <a href="https://medium.com/the-sweet-n-sour-tapes">the sweet ’n’ sour tapes</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[sweet ’n’ sour tape #36: Dear Luigi,]]></title>
            <link>https://medium.com/the-sweet-n-sour-tapes/sweet-n-sour-tape-36-dear-luigi-804146c5dbcd?source=rss-60025d9346ee------2</link>
            <guid isPermaLink="false">https://medium.com/p/804146c5dbcd</guid>
            <category><![CDATA[tape]]></category>
            <category><![CDATA[sweet]]></category>
            <category><![CDATA[letters]]></category>
            <category><![CDATA[sour]]></category>
            <dc:creator><![CDATA[Kunal Duggal]]></dc:creator>
            <pubDate>Sun, 09 Apr 2023 03:34:40 GMT</pubDate>
            <atom:updated>2023-04-09T03:55:00.360Z</atom:updated>
            <content:encoded><![CDATA[<p>Hello my oldest friend! I’m grateful that the title goes to you.</p><p>From 9 to 99, I know that we’ll always have each other’s back or until a beautiful woman gets in the way. Seriously though, we’re blessed to have met each other. We are two dreamers who knew that suburbia/NE Philly life ain’t it. In a world that made us feel crazy for us wanting more, questioning convention, and being ourselves. I’m glad our friendship became a safe space for us to explore our multi-hyphenated identities and interests to the fullest capacity.</p><p>I could have made this tape a series of deep cuts from our 15 years from bliter to french fries ;) but I’m going to focus on what is the backbone of our relationship — the conversations. This time it’s a bit one-sided, and in letter form. I hope you enjoy!</p><p>Where do I begin?</p><p>First of all I fucking miss you.</p><p>Your absence is felt bro, I understand you’ve been deep in the work grind but man do I miss your random calls even though I suck at picking up, and your absence at my little birthday dinner with my mom was felt. No negative energy here I’d rather have you achieve your goals and stay grinding, but I do miss having you as a bigger picture in my life.</p><p>Speaking of my life, it’s alright.</p><p>If 23 is a mid age to turn with no real oomf, then 24 is a punch to the gut.</p><p>You know the details of some of my struggles like how a couple ties in DC had to be cut. A friend from high school also recently passed away.</p><p>The latter has been jarring. Another reminder how fragile life is, and how it’s important we let each other know how much we care. The only thing I regret is I didn’t appreciate that friend enough while we spent time together in highschool.</p><p>I love you bro, I’ll for sure be saying that more often.</p><p>All of these events have been a whirlwind on my mental. It weighs on my mind but it has brought a lot of learning, and clarity about who I am, and what I carry with me.</p><p>Guilt and Shame are the demons that I’ve decided to dance with lately.</p><p>The stage they dance on is a belief that I’m secretly, deep down, a shit person, a cheat, a liar, and a fraud. How I’ve masked this belief is with pride that I need to be GREAT to make up for my flaws.</p><p>The truth is I need to humble myself a bit.</p><p>I’m not a good person, but I’m not a bad person. I’m a human being and I come as imperfect as the rest of us.</p><p>Did I do things I regret in my life, yes! 1000% I had to regret certain things to realize I’ve grown as a person.</p><p>I need to remind myself that it’s ok to be proud of myself even if I made a few mistakes along the way.</p><p>Sometimes I have to stop and smell the flowers; I provided myself with a sense of stability I have never known before, I go out and perform Improv on a stage multiple times a month, and my poetry page has been semi-consistent for two years. Hell, I learned how to ride a bike as an adult.</p><p>I’m a life-long learner baby that’s me.</p><p>I am also a bit of a social perfectionist, with a dash of finesse, and reneger when it’s convenient for me. I’m not proud of these traits but it’s also me and now I’m working on it. Ok I’m a bit proud of my finesse skills haha</p><p>I said this back in the 1712 days that <strong>we are our actions</strong>. As others cannot see our thoughts or feelings.</p><p>I have to be honest a lot of the day my actions would paint the picture of a master procrastinator rather than a skilled IT professional. Which is not my fault at all. I’ve somehow found my way in another extremely cozy project, and I’ve been using that time to self-work/maybe get that AWS Solutions Architect Cert 👀 Self-work and studying can only take so much of my day. Usually, I’m productively procrastinating, or sometimes instagram scrolling the days away.</p><p>I want to loop back to the social perfectionist bit. You’ve called me out on this especially when we first moved in together.</p><p>I have this critical voice that monitors my every move. It’s the real devil on my shoulder. It criticizes every word I say, every decision I make, every single feeling I feel.</p><p>You may be wondering how I keep this even a bit hidden? I hate to say it but Kaizen 😭</p><p>Under the guise of self-growth, I let my inner critique run free because I thought if I’m hard on myself I’ll be forced to grow.</p><p>The truth is this inner critic is what makes me hold on to shitty relationships, or pedestalize women I am romantically interested in, burns me out, and might be the true cause of my procrastination.</p><p>If the way for me to limit Guilt and Shame was to recognize my pride and humble myself. Then self-compassion should be the key, but I don’t think it’s that simple.</p><p>My self-criticism comes from some place much deeper than me being mean to myself or even thinking too lowly of myself.</p><p>I struggled for a while trying to figure out my source, and then I saw The River Runner.</p><p>The River Runner is a documentary on Netflix that follows the story of Scott Lundgren. He is a kayaker who made it his life’s goal to complete expeditions through the four sacred rivers that originate from Tibet’s Mount Kailash. Before he could complete the last expedition Scott found out he had a brain tumor.</p><p>Two quotes from the documentary had struck a chord with me.</p><blockquote>“Vulnerable is a scary place to be if you have fought your entire life to be secure”</blockquote><p>The first quote makes me think of our identity as immigrants. How through our parents I have come to value security/ stability, or maybe another way to put it is safety.</p><p>Then in order to maintain a sense of safety in a foreign land with people who we don’t quite understand, and with extended family we don’t always get along with, we found a need for control. This leads us to the next quote.</p><blockquote>“I tried to control everything in my life…once I realized with my tumor I had no control of that… I just surrendered to the flow of life… and I no longer tried to control the outcome of anything… I just show up with my heart”</blockquote><p>I have also internalized that need for control due to my fear of vulnerability. I need to control how people perceive me (social perfectionist) in order to feel safe/secure in relationships.</p><p>If I critique myself too it gives me a fake sense of control. Maybe I can’t control the current outcome, but if I critique myself and improve I can suddenly control the next. If I can control the next I feel more secure and safe in friendships.</p><p>Unfortunately, in interpersonal relationships it takes two to tango. I cannot control the outcome no matter how hard I try to come off a certain way or be perceived a certain way. The truth is I have to just be authentic and do what I think is best.</p><p>Which is corny, and easier said than done.</p><p>The real lesson for me at least when internalizing this is not suddenly, “Be your best and authentic self!”</p><p>It’s more that I don’t need to criticize myself. Even if I improve in <em>saying hi to acquaintances </em>🙄 or whatever is giving me social anxiety I will never be able to control what other people think of me.</p><p>I have to lead with the heart, and follow through on my words with actions that align with who I am or who I want to be.</p><p>That’s where I’m at.</p><p>In the meantime between this self-work I’ve been doing shows, learning how to skateboard, climbing rocks, falling on my ass, and most importantly getting up to do it again, and again, and again.</p><p>We must celebrate our 15 years of friendship while I’m in town in some way or form my friend. I know both of us can make the time to do so.</p><p>Until then I’m curious about the following,</p><p>How are you sir? How are you really?</p><p>What are you expecting 24 to be like? If you have any expectations.</p><p>And, have you listened to any good music lately?</p><p>I’m excited to hear the answers, hopefully irl, and over a nice ice cool can of Pepsi.</p><p>Most importantly, remember I love you my guy!</p><p>Cheers to 15 years of friendship 🍻</p><p>Sincerely,<br>Mario</p><p>P.S. Here is a playlist I made to document our shared music journey from cringe to cool 😎</p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fopen.spotify.com%2Fembed%2Fplaylist%2F3nnsFnptdqYry0RbxlzTXP%3Futm_source%3Doembed&amp;display_name=Spotify&amp;url=https%3A%2F%2Fopen.spotify.com%2Fplaylist%2F3nnsFnptdqYry0RbxlzTXP&amp;image=https%3A%2F%2Fmosaic.scdn.co%2F300%2Fab67616d00001e027b7a9e8417a9fd700ce1651cab67616d00001e02ac46b6e2fc4d27b750f28d89ab67616d00001e02cb02c6c665a02ce31c72ad6eab67616d00001e02e207a14471e5356294146e9d&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=spotify" width="456" height="352" frameborder="0" scrolling="no"><a href="https://medium.com/media/2f5783538d29d1b71ee6d0628700418a/href">https://medium.com/media/2f5783538d29d1b71ee6d0628700418a/href</a></iframe><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=804146c5dbcd" width="1" height="1" alt=""><hr><p><a href="https://medium.com/the-sweet-n-sour-tapes/sweet-n-sour-tape-36-dear-luigi-804146c5dbcd">sweet ’n’ sour tape #36: Dear Luigi,</a> was originally published in <a href="https://medium.com/the-sweet-n-sour-tapes">the sweet ’n’ sour tapes</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[What I learned from making a Rhythm Game!]]></title>
            <link>https://medium.com/tylerdi/what-i-learned-from-making-a-rhythm-game-aa6d1c13fb98?source=rss-60025d9346ee------2</link>
            <guid isPermaLink="false">https://medium.com/p/aa6d1c13fb98</guid>
            <category><![CDATA[unity]]></category>
            <category><![CDATA[games]]></category>
            <category><![CDATA[case-study]]></category>
            <category><![CDATA[game-development]]></category>
            <category><![CDATA[tutorial]]></category>
            <dc:creator><![CDATA[Kunal Duggal]]></dc:creator>
            <pubDate>Fri, 23 Apr 2021 12:37:37 GMT</pubDate>
            <atom:updated>2021-05-05T22:51:03.404Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*lKCWyD0-iT0oGEvc7E6GBA.png" /><figcaption>Play the game here: <a href="https://learningalot.itch.io/rhythm-cafe-game">https://learningalot.itch.io/rhythm-cafe-game</a></figcaption></figure><h3>Table of Contents</h3><p><strong>Premise<br>Understanding Unity<br>Making the Rhythm Game<br>Audio &amp; Visual<br>Addressing Difficulty<br>Reflection</strong></p><h3>Premise</h3><p>A rhythm game that also conveys my personal experiences as a Barista. The game highlights some of the life-long skills I picked up during my time serving lattes. The name of the game is Cafe Rhythm.</p><p>Cafe Rhythm went through various iterations as I figured out how best to convey my anxiety on the job and the difficulty of multitasking. Initially, the game was set to be 3D with a character&#39;s animation cafe timed to the beat of each note.</p><p>It is essentially a ‘Dance Dance Revolution’ style rhythm game where arrows are falling, and one must click to match the pace of the arrows.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*ZQnrnMlnSHKfO2H7" /></figure><p>The game initially included the animation of a character moving around across a cafe. For example, when the left arrow falls, and when the player clicks the arrow on time the character would move accordingly. The character animation mechanic was changed to a satisfaction bar as the game become more abstract over time.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*PatuBMhCIqgSlj9x09blBQ.png" /></figure><p>The abstraction allowed me to focus more on the visuals to better look for the game while keeping the core rhythm game functionality. As the arrows are pressed on time, the drinks are made on time, and everyone in the cafe is happy and satisfied.</p><h3>Understanding Unity</h3><p>The first thing I needed to do to understand was how Unity worked.</p><p>I watched only the first 10–20 minutes of this tutorial to get a basic understanding of where everything was and what to click.</p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2FpwZpJzpE2lQ%3Fstart%3D1297%26feature%3Doembed%26start%3D1297&amp;display_name=YouTube&amp;url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DpwZpJzpE2lQ&amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2FpwZpJzpE2lQ%2Fhqdefault.jpg&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=youtube" width="854" height="480" frameborder="0" scrolling="no"><a href="https://medium.com/media/6feec53fa13098dd9c0398b809e775a7/href">https://medium.com/media/6feec53fa13098dd9c0398b809e775a7/href</a></iframe><p>I also watched this tutorial to better understand camera movement in unity because I initially struggled to move around a 3D environment.</p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2Flmmf-6xmUk4%3Ffeature%3Doembed&amp;display_name=YouTube&amp;url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3Dlmmf-6xmUk4&amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2Flmmf-6xmUk4%2Fhqdefault.jpg&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=youtube" width="854" height="480" frameborder="0" scrolling="no"><a href="https://medium.com/media/e8a6297b9917e21d2c6f2d3f3486cb02/href">https://medium.com/media/e8a6297b9917e21d2c6f2d3f3486cb02/href</a></iframe><p>The Unity Manual is also a great resource to use to learn the basics of Unity.</p><p><a href="https://docs.unity3d.com/Manual/UnityManual.html">https://docs.unity3d.com/Manual/UnityManual.html</a></p><h4>All Unity Windows</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*DdCQAMFEcdiYv9vh" /><figcaption>Screenshot of Unity</figcaption></figure><p>This is the basic Unity screen. The first time I saw this screen I was hit with the same panic and existential dread I felt when I opened Photoshop for the first time. There’s a lot going, and I will try to break it down.</p><h4>Directional controls.</h4><p>It was vital for me to learn these four tabs for directional control.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/336/0*_NB8nHDoyVzWDc8M" /></figure><ul><li>The first one in the red circle allows you to drag and move around a scene without affecting the object that you’re dragging. It is very useful if you want to maneuver around the scene without moving across the camera.</li><li>The second one in yellow allows you to move objects according to their XY and Z coordinates.</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/416/0*FbWlL05WS7uyH3So" /><figcaption>IT is not that intuitive at first, as you are still required to move each cone one at a time and it does not allow movement in free space.</figcaption></figure><ul><li>The blue option allows you to increase or decrease the size of objects in the game scene.</li><li>The green option goes crazy and hooks you up with all directional movement. It’s nice but overwhelming. This is primarily used for rotating an object.</li><li>A nice shortcut is to use ctrl + scroll to zoom in and out of the scene. This made my life better.</li></ul><h4>Hierarchy</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/418/0*FRpZ1xx7YShqDLAt" /></figure><p>This hierarchy displays all the game objects and the scenes. This can be used to sort between different objects. One can also nest objects within other objects, which is called parenting. More can be read in the unity manual.</p><h4>Scene</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/904/0*z68w0tNheZqdxvSR" /></figure><p>The scene section is where game objects can be manipulated in the 3D or 2D environment. One can select various objects and move the camera to whatever position they would like to see on the game screen.</p><h4>Game Screen</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/504/0*WcUKNTYgp7UICp4y" /></figure><p>Showcases the final product, and it is essentially what the player will see on their screen.</p><h4>Assets Panel</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*vuAooeZFQjPUVXWI" /></figure><p>This panel holds all the resources one will use to craft their game, like graphics, scenes, fonts, and scripts, etc.</p><h4>Inspector Screen</h4><figure><img alt="" src="https://cdn-images-1.medium.com/max/848/0*wAHEtUuOOz9aPRQ5" /></figure><p>Where one can, alter the game objects. It can be done through the programming of physics and rules of their various game objects while altering how the game object is rendered.</p><h3>Making the Rhythm Game</h3><p>I primarily followed this rhythm game tutorial to create a 2D version of the game</p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2FcZzf1FQQFA0%3Ffeature%3Doembed&amp;display_name=YouTube&amp;url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DcZzf1FQQFA0&amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2FcZzf1FQQFA0%2Fhqdefault.jpg&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=youtube" width="854" height="480" frameborder="0" scrolling="no"><a href="https://medium.com/media/9345849b8ab4032d2c6cdb4ecdf4a108/href">https://medium.com/media/9345849b8ab4032d2c6cdb4ecdf4a108/href</a></iframe><p>I followed this tutorial to create the start menu.</p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2FmGjqmK_O5jA%3Ffeature%3Doembed&amp;display_name=YouTube&amp;url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DmGjqmK_O5jA&amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2FmGjqmK_O5jA%2Fhqdefault.jpg&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=youtube" width="854" height="480" frameborder="0" scrolling="no"><a href="https://medium.com/media/7742cd0fec07d58331fee0ec43d30e08/href">https://medium.com/media/7742cd0fec07d58331fee0ec43d30e08/href</a></iframe><p>The game required the creation of eight scripts.</p><ol><li>ButtonController</li><li>BeatScroller</li><li>EffectObject</li><li>GameManager</li><li>NoteObject</li><li>ScreenLoader</li><li>PlayerController</li><li>HealthBar</li></ol><p>The game also has two scenes: a start scene with directions and a play button and the main screen which has the rest of the game.</p><p>The Start Screen holds the directions for the game and the play button within its canvas.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/408/0*FEGMp9IO5o6Y4U_f" /></figure><p>The Main Scene holds all the relevant objects for the game</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/408/0*EzTybyt5vmZ9L-Sz" /></figure><p>The buttons and noteholder collide on the trigger of whichever arrow key is pressed. This is how when a key is pressed on time a note disappears and the GOOD, HIT, PERFECT, or MISS effect is triggered.</p><p>The button collider and rigid body allow it to hit each arrow while making sure the button does not disappear.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/534/0*v6WWzHu7-IWuf5ju" /></figure><p>The circle collider does the same thing to each note following down while also making sure that it does disappear.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/520/0*SIKDxox74Hq9olUf" /></figure><p>It is important both are set to 2D so that they can still interact with one another.</p><h4>The button controller code:</h4><pre>using System.Collections;<br>using System.Collections.Generic;<br>using UnityEngine;</pre><pre>public class NewBehaviourScript : MonoBehaviour<br>{</pre><pre>private SpriteRenderer theSR;<br>  public Sprite defaultImage;<br>  public Sprite pressedImage;</pre><pre>public KeyCode keyToPress;</pre><pre>// Start is called before the first frame update<br>    void Start()<br>    {<br>        theSR = GetComponent&lt;SpriteRenderer&gt;();</pre><pre>}</pre><pre>// Update is called once per frame<br>    void Update()<br>    {</pre><pre>if(Input.GetKeyDown(keyToPress)){<br>        theSR.sprite = pressedImage;<br>      }</pre><pre>if(Input.GetKeyUp(keyToPress)){<br>        theSR.sprite = defaultImage;<br>      }</pre><pre>}<br>}</pre><p>This code includes three components.</p><ol><li>The first section has the variables for the SpriteRenderer theSR, the defaultImage sprite, and the pressedImage sprite.</li><li>The next section calls the Sprite Renderer which appears inside the Inspector.</li><li>Lastly, there are two if statements after void Update() which refreshes every frame of the game. It includes the code that switches between the default image and the pressed image.</li></ol><p>The inspector for each button competent is essentially the same with one difference which key to press, below is an example of the blue button which controls the left arrow.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/530/0*HXie0k3sq6cgoTY4" /></figure><h4>BeatScroller Code</h4><pre>using System.Collections;<br>using System.Collections.Generic;<br>using UnityEngine;</pre><pre>public class BeatScroller : MonoBehaviour<br>{</pre><pre>public float beatTempo;</pre><pre>public bool hasStarted;</pre><pre>// Start is called before the first frame update<br>    void Start()<br>    {<br>        beatTempo = beatTempo/60f;<br>    }</pre><pre>// Update is called once per frame<br>    void Update()<br>    {<br>      if(!hasStarted)<br>        {<br>          if(Input.anyKeyDown){<br>            hasStarted = true;<br>          }<br>        } else  {<br>          transform.position -= new Vector3(0f, beatTempo * Time.deltaTime, 0f);<br>        }<br>      }</pre><pre>}</pre><p>This script has three components.</p><ol><li>The two variables created are a float beatTempo and a bool hasStarted</li></ol><ul><li>beatTempo controls how fast the notes will scroll down the screen</li><li>hasStarted determines with the game will start</li></ul><p>2. The update section includes two if statements, the first one keeps the game paused but if a key is pressed then the game will start. !hasStarted means not to start, and hasStarted = true will start the game.</p><p>3. The third component is an else statement that moves the position of the arrows to the temp of the game.</p><p>Within the inspector, the BeatScroller script can be added to the noteholder and allows each note to fall under the same tempo.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/552/0*vH3zuMSJIcek5wFo" /></figure><h4>PlayerController Code</h4><p>This is a really straightforward script that holds the health of the player.</p><pre>using System.Collections;<br>using System.Collections.Generic;<br>using UnityEngine;</pre><pre>public class PlayController_script : MonoBehaviour<br>{<br>  public float health = 100f;<br>}</pre><p>This script creates the player object with 100f of health.</p><h4>HealthBar Code</h4><p>To create my health bar which I used to measure customer satisfaction, I primarily used the Wyra Codes tutorial.</p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2FNE5cAlCRgzo%3Ffeature%3Doembed&amp;display_name=YouTube&amp;url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DNE5cAlCRgzo&amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2FNE5cAlCRgzo%2Fhqdefault.jpg&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=youtube" width="854" height="480" frameborder="0" scrolling="no"><a href="https://medium.com/media/e184d249e5b471a773d1a282da261cb8/href">https://medium.com/media/e184d249e5b471a773d1a282da261cb8/href</a></iframe><p>Here is the code:</p><pre>using System.Collections;<br>using System.Collections.Generic;<br>using UnityEngine;<br>using UnityEngine.UI;</pre><pre>public class Healthbar : MonoBehaviour<br>{<br>    private Image Satisfaction;<br>    public float currentSatisfaction;<br>    private float maxSatisfaction = 100f;<br>    PlayController_script Player;</pre><pre>private void Start ()<br>    {<br>      //find<br>      Satisfaction = GetComponent&lt;Image&gt;();<br>      Player = FindObjectOfType&lt;PlayController_script&gt;();<br>      Debug.Log(Player.health);</pre><pre>}</pre><pre>private void Update()<br>    {<br>      currentSatisfaction = Player.health;<br>      Satisfaction.fillAmount = currentSatisfaction/maxSatisfaction;</pre><pre>}<br>}</pre><p>The variables created are:</p><ul><li>Satisfaction: It is connected to the image that alters the Satisfaction bar. It is what changes the size of the bar if health is taken out.</li><li>currentSatisfaction: It is how much health the player has right now.</li><li>maxSatisfaction: The total satisfaction available, 100f means it is 100 float.</li><li>Player: This variable calls to the PlayerController Script to get the health total of 100f.</li></ul><p>The start code:</p><ul><li>Connects customer satisfaction to an image, in our case it is the customer satisfaction bar.</li></ul><p>The update code:</p><ul><li>Alters the player&#39;s health referenced in the player controller code to be assigned to the variable currentSatisfaction. Which over the maxSatisfaction will change the fill amount of the satisfaction bar.</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*PatuBMhCIqgSlj9x09blBQ.png" /></figure><h4>Note Object Code</h4><p>The Note Object does a lot for the game. It controls not only the main game function of making sure each note is hit and the subsequent score received whether it was a miss or a perfect.</p><p>The Note Object is also responsible for keeping track of health within the game. For example, if someone misses an arrow, the Note Object will calculate how much ‘Health’ is taken out of the main player, which is represented as customer satisfaction.</p><pre>using System.Collections;<br>using System.Collections.Generic;<br>using UnityEngine;</pre><pre>public class NoteObject : MonoBehaviour {</pre><pre>public bool canBePressed;</pre><pre>public KeyCode keyToPress;</pre><pre>public GameObject hitEffect, goodEffect, perfectEffect, missEffect;</pre><pre>PlayController_script Player;</pre><pre>public float CurrentHealth;</pre><pre>// Start is called before the first frame update<br>private  void Start()<br>    {</pre><pre>Player = FindObjectOfType&lt;PlayController_script&gt;();</pre><pre>Debug.Log(Player.health);</pre><pre>}</pre><pre>// Update is called once per frame<br>  private void Update()<br>    {<br>      CurrentHealth = Player.health;</pre><pre>if(Input.GetKeyDown(keyToPress)){<br>        if (canBePressed)<br>        {<br>          gameObject.SetActive(false);</pre><pre>//GameManager.instance.NoteHit();</pre><pre>if(Mathf.Abs(transform.position.y) &gt; 1.42)<br>          {<br>            GameManager.instance.NormalHit();</pre><pre>Instantiate(hitEffect, transform.position,hitEffect.transform.rotation);</pre><pre>Player.health = CurrentHealth - 2f;</pre><pre>} else if (Mathf.Abs(transform.position.y)&gt; 1.10) {</pre><pre>Instantiate(goodEffect, transform.position,goodEffect.transform.rotation);</pre><pre>Debug.Log(&quot;Good&quot;);</pre><pre>GameManager.instance.GoodHit();</pre><pre>}else{<br>            Instantiate(perfectEffect, transform.position,perfectEffect.transform.rotation);</pre><pre>Debug.Log(&quot;Perfect&quot;);</pre><pre>GameManager.instance.PerfectHit();</pre><pre>Player.health = CurrentHealth + 10f;</pre><pre>}</pre><pre>}<br>      }</pre><pre>}</pre><pre>private void OnTriggerEnter2D(Collider2D other){<br>          if(other.tag == &quot;Activator&quot;){</pre><pre>canBePressed = true;</pre><pre>}<br>        }</pre><pre>private void OnTriggerExit2D(Collider2D other)<br>    {<br>        //check if the player is pressing the button on the frame the arrow disappears<br>        if(Input.GetKeyDown(keyToPress))<br>        {<br>            if(other.tag == &quot;Activator&quot;)<br>                {<br>                    canBePressed = true;<br>                }<br>        } else<br>        {<br>            if(other.tag == &quot;Activator&quot;)<br>            {<br>                canBePressed = false;</pre><pre>GameManager.instance.NoteMissed();<br>                Instantiate(missEffect, transform.position, missEffect.transform.rotation);</pre><pre>Player.health = CurrentHealth - 20f;</pre><pre>}<br>        }<br>    }</pre><p>The variables are:</p><ul><li>canBePressed: it verifies if the notes are aligned to a button and if so it can be pressed.</li><li>keyToPress: makes sure that the player is hitting the correct button, for example, the left arrow is hit only by the left arrow key.</li><li>The effects: Calls which effect should pop up after a note is hit.</li><li>Player: This is called from the PlayerController script to allow us to reference health once more.</li><li>CurrentHealth: This variable is assigned to player.health and takes damage or regenerates depending on the type of hit the player achieves. For example, a miss is 20f in player health while a perfect increases CurrentHealth by 10f.</li></ul><p>The start code:</p><ul><li>In the NoteObject the start code only calls for the player object from the PlayerController script.</li></ul><p>The update code:</p><p>This is the real meat and potatoes of the NoteObject.</p><pre>private void Update()<br>    {<br>      CurrentHealth = Player.health;</pre><pre>if(Input.GetKeyDown(keyToPress)){<br>        if (canBePressed)<br>        {<br>          gameObject.SetActive(false);</pre><pre>//GameManager.instance.NoteHit();</pre><p>Here the CurrentHealth variable is assigned to Player.health.</p><p>If the key pressed can be pressed then it should register as a hit.</p><p>The next few lines of code determine the type of hit, whether it is an ok hit (normal hit), good hit, perfect hit, or miss.</p><pre>if(Mathf.Abs(transform.position.y) &gt; 1.42)<br>          {<br>            GameManager.instance.NormalHit();</pre><pre>Instantiate(hitEffect, transform.position,hitEffect.transform.rotation);</pre><pre>Player.health = CurrentHealth - 2f;</pre><p>The code also determines how much health or customer satisfaction is lost or gained depending on the type of it.</p><p>For example, for an Ok (Normal Hit) 2f is subtracted from the total health available which is 100f.</p><p>Similar code is repeated for the rest of the hits.</p><h4>Effects Controller</h4><pre>using System.Collections;<br>using System.Collections.Generic;<br>using UnityEngine;</pre><pre>public class EffectObject : MonoBehaviour<br>{</pre><pre>public float lifetime = 1f;</pre><pre>// Start is called before the first frame update<br>    void Start()<br>    {</pre><pre>}</pre><pre>// Update is called once per frame<br>    void Update()<br>    {</pre><pre>Destroy(gameObject, lifetime);</pre><pre>}<br>}</pre><p>This piece of code just destroys the effects of game objects which appear on the screen after one second. This is the miss, good, ok, and perfect objects.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/698/1*QVztHgxRn0bLNbcaWX6SXQ.png" /><figcaption>for example, these misses will disappear after one second.</figcaption></figure><h4>GameManager Code</h4><p>The game manager controls the gameplay. It is what starts and ends the game as well as displaying the tips, multiplier, and final tips earned at the end of the game.</p><pre>using System.Collections;<br>using System.Collections.Generic;<br>using UnityEngine;<br>using UnityEngine.UI;</pre><pre>public class GameManager : MonoBehaviour<br>{</pre><pre>public AudioSource theMusic;</pre><pre>public bool startPlaying;</pre><pre>public BeatScroller theBS;</pre><pre>public static GameManager instance;</pre><pre>public int currentScore;</pre><pre>public int scorePerNote = 100;</pre><pre>public int scorePerGoodNote = 125;<br>  public int  scorePerPerfectNote = 150;</pre><pre>public int currentMultiplier = 1;<br>  public int multiplierTracker;<br>  public int[] multiplierThresholds;</pre><pre>public Text scoreText;<br>  public Text multiText;</pre><pre>public float totalNotes;<br>  public float normalHits;<br>  public float goodHits;<br>  public float perfectHits;<br>  public float missedHits;</pre><pre>public GameObject resultScreen;<br>  public Text finalScoreText;</pre><pre>PlayController_script Player;<br>  public float CurrentHealth;</pre><pre>// Start is called before the first frame update<br>    void Start()<br>    {<br>            instance = this;</pre><pre>scoreText.text = &quot;Tips: 0&quot;;</pre><pre>currentMultiplier = 1;</pre><pre>Player = FindObjectOfType&lt;PlayController_script&gt;();<br>    }</pre><pre>// Update is called once per frame<br>    void Update()<br>    {<br>      CurrentHealth = Player.health;</pre><pre>if(!startPlaying){<br>        if(Input.anyKeyDown){</pre><pre>startPlaying = true;<br>          theBS.hasStarted = true;</pre><pre>theMusic.Play();<br>        }<br>      }else<br>      {<br>        if(!theMusic.isPlaying &amp;&amp; !resultScreen.activeInHierarchy || CurrentHealth &lt;= 0f )<br>        {<br>          resultScreen.SetActive(true);</pre><pre>finalScoreText.text = &quot;$&quot; +(currentScore * .001).ToString();</pre><pre>}</pre><pre>}</pre><pre>}</pre><pre>public void NoteHit(){<br>      Debug.Log(&quot;Hit On Time&quot;);</pre><pre>if(currentMultiplier -1 &lt; multiplierThresholds.Length)<br>      {<br>        multiplierTracker++;</pre><pre>if(multiplierThresholds[currentMultiplier - 1] &lt;= multiplierTracker)<br>        {<br>          multiplierTracker = 0;<br>          currentMultiplier++;<br>        }</pre><pre>}</pre><pre>multiText.text = &quot;Multiplier: X&quot; + currentMultiplier;</pre><pre>currentScore += scorePerNote * currentMultiplier;<br>      scoreText.text  = &quot;Tips: &quot; + (currentScore * .001);</pre><pre>}</pre><pre>public void NormalHit(){<br>        currentScore += scorePerNote * currentMultiplier;<br>      NoteHit();<br>    }</pre><pre>public void GoodHit(){<br>        currentScore += scorePerGoodNote * currentMultiplier;<br>      NoteHit();<br>    }</pre><pre>public void PerfectHit(){<br>        currentScore += scorePerPerfectNote * currentMultiplier;</pre><pre>NoteHit();</pre><pre>}</pre><pre>public void NoteMissed(){<br>      Debug.Log(&quot;Missed Note&quot;);<br>    }<br>}</pre><p>The code is further broken down below:</p><p><strong>The variables<br></strong>The game manager has a lot of variables to keep track of.</p><pre>public AudioSource theMusic;</pre><pre>public bool startPlaying;</pre><pre>public BeatScroller theBS;</pre><pre>public static GameManager instance;</pre><pre>public int currentScore;</pre><pre>public int scorePerNote = 100;</pre><pre>public int scorePerGoodNote = 125;<br>  public int  scorePerPerfectNote = 150;</pre><pre>public int currentMultiplier = 1;<br>  public int multiplierTracker;<br>  public int[] multiplierThresholds;</pre><pre>public Text scoreText;<br>  public Text multiText;</pre><pre>public float totalNotes;<br>  public float normalHits;<br>  public float goodHits;<br>  public float perfectHits;<br>  public float missedHits;</pre><pre>public GameObject resultScreen;<br>  public Text finalScoreText;</pre><pre>PlayController_script Player;<br>  public float CurrentHealth;</pre><p>Some of the variables are self-explanatory and have been previously mentioned. I will go over the newly created variables.</p><ul><li>AudioSource: creates a place to add music to the game.</li><li>Instance: This is a static variable which means that GameManager can only have one Instance value. Lets the GameManager be called once in code like the NoteObject without having to be called for every single note being hit.</li><li>ScorePerNote: How many tips a player will receive from the cafe.</li><li>ScorePerGoodNote: Provides a slightly higher tip number.</li><li>ScorePerPerfectNote: Another increase in the value of tips provided to the player.</li><li>CurrentScore: Keeps track of the score earned.</li><li>CurrentMultiplier: The multiplier that the player has.</li><li>MultiplierTracker: What level the multiplier has increased to.</li><li>Multiplier Treshholds: How much the multiplier can increase.</li><li>ScoreText: The text that the player will see holding the score.</li><li>MultiText: The text that the player will see holding the multiplier.</li><li>ResultsScreen: The end screen which will display the total tips earned by the player (the final score).</li><li>FinalScoreText: The text that holds all the tips earned by the player.</li></ul><p><strong>The void start code <br></strong>Void start code sets up parameters for the game.</p><pre>// Start is called before the first frame update<br>    void Start()<br>    {<br>            instance = this;</pre><pre>scoreText.text = &quot;Tips: 0&quot;;</pre><pre>currentMultiplier = 1;</pre><pre>Player = FindObjectOfType&lt;PlayController_script&gt;();<br>    }</pre><p>The instance will always be this value, it is a way for every other script to get whatever the current static instance is.</p><p>The scoreText.text will be “Tips:0” when the game starts.</p><p>The currentMultiplier will always start at 1.</p><p>Lastly, the player object is called again.</p><p><strong>The void update code:</strong></p><pre>void Update()<br>    {<br>      CurrentHealth = Player.health;</pre><pre>if(!startPlaying){<br>        if(Input.anyKeyDown){</pre><pre>startPlaying = true;<br>          theBS.hasStarted = true;</pre><pre>theMusic.Play();<br>        }<br>      }else<br>      {<br>        if(!theMusic.isPlaying &amp;&amp; !resultScreen.activeInHierarchy || CurrentHealth &lt;= 0f )<br>        {<br>          resultScreen.SetActive(true);</pre><pre>finalScoreText.text = &quot;$&quot; +(currentScore * .001).ToString();</pre><pre>}</pre><pre>}</pre><pre>}</pre><p>This code starts the game once any key is hit. It also calls the BeatScroller code to start moving the notes down the screen.</p><p>theMusic.Play() function will begin as well, if the music stops or if the CurrentHealth (Customer Satisfaction) of the player drops to 0f, then the end screen will appear.</p><p>The finalScoreText.text will calculate the final number of Tips the player has earned. CurrentScore is multiplied by .001 to make a more realistic number for the tips earned. It is lastly turned into a string so it can be displayed as text by the.ToString() at the end of the line of code.</p><p>The last few lines of code hold the calculation of the score in the game.</p><p><strong>Multiplier Tracker Code<br></strong>The first chunk of code is how the MultiplierTracker is increased as the game progresses.</p><pre>public void NoteHit(){<br>      Debug.Log(&quot;Hit On Time&quot;);</pre><pre>if(currentMultiplier -1 &lt; multiplierThresholds.Length)<br>      {<br>        multiplierTracker++;</pre><pre>if(multiplierThresholds[currentMultiplier - 1] &lt;= multiplierTracker)<br>        {<br>          multiplierTracker = 0;<br>          currentMultiplier++;<br>        }</pre><pre>}</pre><p>The next few lines of code are for displaying the multiplier to the player.</p><pre>multiText.text = &quot;Multiplier: X&quot; + currentMultiplier;</pre><pre>currentScore += scorePerNote * currentMultiplier;<br>      scoreText.text  = &quot;Tips: &quot; + (currentScore * .001);</pre><pre>}</pre><p>The last few lines of code calculate the current score of the player for each type of NoteHit.</p><p><strong>Score Calculation<br></strong>The score is recalculated for each hit, it is the ScorePer the type of note multiplied by the currentMultipler. The score in this game is representative of tips earned by a Barista. People are not able to take tips for poor service, so for the missed note, nothing is done.</p><pre>public void NormalHit(){<br>        currentScore += scorePerNote * currentMultiplier;<br>      NoteHit();<br>    }</pre><pre>public void PerfectHit(){<br>        currentScore += scorePerPerfectNote * currentMultiplier;</pre><pre>NoteHit();</pre><pre>}</pre><pre>public void NoteMissed(){<br>      Debug.Log(&quot;Missed Note&quot;);<br>    }<br>}</pre><h3>The screenloader code</h3><p>This code loads the main screen which holds the game after clicking the play button on the start menu.</p><pre>using System.Collections;</pre><pre>using System.Collections.Generic;</pre><pre>using UnityEngine;</pre><pre>using UnityEngine.SceneManagement;</pre><pre>public class screenloader : MonoBehaviour</pre><pre>{</pre><pre>//start game</pre><pre>public void LoadGame(string sceneName)</pre><pre>{</pre><pre>SceneManager.LoadScene(sceneName);</pre><pre>}</pre><p>The scene name is set in Unity to the next scene.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/690/1*hmT-XwpzdJ9xCnMQ87XV0g.png" /></figure><p>I ran into a bug when working on this code. That stopped it from working on export. I resolved this issue by copying and pasting the event system from the main scene onto the start screen.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/452/1*2qYl0H1tS7HJf-xAcsFPww.png" /><figcaption>notice the (1), it indicates that I copied the object</figcaption></figure><h3>Audio &amp; Visuals</h3><p>The Audio was created by a friend of mine, <a href="https://www.instagram.com/_.7ndla/">Daniel Lee</a> who started learning how to produce this past year. I found this rhythm game a good opportunity for us to collaborate and work on a project together, as well as help each other sharpen our skills!</p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fw.soundcloud.com%2Fplayer%2F%3Furl%3Dhttps%253A%252F%252Fapi.soundcloud.com%252Ftracks%252F1035228745%26show_artwork%3Dtrue&amp;display_name=SoundCloud&amp;url=https%3A%2F%2Fsoundcloud.com%2Fkunal-duggal-245045523%2Fcafetypebeat&amp;image=https%3A%2F%2Fsoundcloud.com%2Fimages%2Ffb_placeholder.png&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=soundcloud" width="800" height="166" frameborder="0" scrolling="no"><a href="https://medium.com/media/d5a7d04447ecb2f35eb6ac13a7b516c2/href">https://medium.com/media/d5a7d04447ecb2f35eb6ac13a7b516c2/href</a></iframe><p>The game initially was planned to be in 3D.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*EA16YhMDimWy-yAs1Dl56w.png" /><figcaption>I used free robot kyle assets <a href="https://assetstore.unity.com/packages/3d/characters/robots/space-robot-kyle-4696">https://assetstore.unity.com/packages/3d/characters/robots/space-robot-kyle-4696</a> &amp; free low poly kitchen assets <a href="https://assetstore.unity.com/packages/3d/props/electronics/kitchen-appliance-low-poly-180419">https://assetstore.unity.com/packages/3d/props/electronics/kitchen-appliance-low-poly-180419</a></figcaption></figure><p>Although I got the Rhythm component to work in the 3D space, I decided to go with 2D because it would be easier to design the visuals for this project without having to rely so much on free assets found on the internet.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*4LX8pKifsTIzfegYdFKqiA.png" /></figure><p>The 2D design also went through many iterations.</p><p>Initially, the game had a more realistic background.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*udoNHdcDq731sHpQVKw8kg.png" /></figure><p>I went with a more stylistic picture to make the game look warmer and inviting.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*_ezBH8Xe-Vsri9o1bpD44Q.png" /><figcaption>A free drawing I found on pixaby <a href="https://pixabay.com/illustrations/cafe-drawing-coffee-5817183/">https://pixabay.com/illustrations/cafe-drawing-coffee-5817183/</a></figcaption></figure><p>The first playable version of my game was pretty much just this image on the background with some custom buttons that looked like staple cafe items. A coffee cup, espresso shot, flavoring syrup, and lastly a smoothie. These buttons were designed by a friend of mine, <a href="https://www.linkedin.com/in/nancy-nguyen-7821581a0/">Nancy Nguyen.</a></p><p>I used the cursive font satisfy-regular for the UI elements of the game.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*EK7OPDZIKYLlCwdsBzr-Yg.png" /></figure><p>After receiving some feedback on the design. I decided to alter the design by adding more color and making the rhythm aspect of the game appear much bigger on the screen.</p><p>I separated the screen into two sections, two-thirds of the game is dedicated to the cafe which holds the tips, multiplier, and customer satisfaction bar.</p><p>The last third is dedicated to the rhythm aspect of the game. It is supposed to depict an open window counter in the cafe drawing.</p><p>The palette used to color the drawing was found on <a href="https://coolors.co/">https://coolors.co/</a>.</p><p>I mainly used colors from the second most trending palette, <a href="https://coolors.co/palettes/trending">https://coolors.co/palettes/trending</a>, I added some of my own colors like the blues and played around with the shade of the brown colors.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*Unc9br7VbAfHHhKazuVcDA.png" /></figure><p>I’m very happy with how the final visual of the game came together. Even though I kept going back and forth between 2D and 3D, I think 2D ultimately game more flexibility with the design and that shows here.</p><p>Through separating where the game is played and the stats are seen. This design change gives the player a better experience and hopefully something more visually appealing to look at while they play. The extra real estate for the rhythm game also makes it much easier to play.</p><p>The start menu has the directions of the game and the play button. I used the courier font for the start menu.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*SiNcMJ21B3TPFcd9lYlY9w.png" /><figcaption>the tiles and coffee mug were found on google images as free to use through creative commons. Tile image: <a href="https://clipground.com/subway-tile-png.html">https://clipground.com/subway-tile-png.html</a>, coffee cup: <a href="https://clipground.com/cup-of-coffee-clipart.html">https://clipground.com/cup-of-coffee-clipart.html</a></figcaption></figure><h3>Addressing Difficulty</h3><p>I received a lot of great feedback on how difficult my game was. The experience for the most part needed a lot of work. What I found worked best for me was staggering how far the arrows were placed next to each other.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/416/1*KVNTc-00LGvkHxmTCJuatw.png" /></figure><p>Initially, the arrows are placed quite far apart. This gives the player the opportunity to ease into the game.</p><p>Once the player is comfortable I try to space the arrows by two rows give or take.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/364/1*yjTeO9UMvFROfX1h_a-8Tw.png" /></figure><p>I found this speed to be fast but also still comfortable for the player to react to.</p><p>When it is time to rev up difficulty simply decrease the amount of space between the arrows.</p><p>Lastly, to make the experience interesting all the way to the end have peaks and valleys where the games rev up and down in difficulty to keep the player engaged.</p><h3>Reflection</h3><p>I remember at the age of five trying to create my own Pokemon game. I would take my Pokemon Silver cartridge and Pokemon Fire Red cartridge and put them on top of each other, hoping to combine to create a new game. When I realized that would not work, I would draw my cartridge with my design and try placing it into my Gameboy. It took my dad explaining that is not how games are built to start understanding the complex process of making a game. Unfortunately, young me was not disciplined or patient enough to learn the basics of programming to create a game. Yet, the goal, that desire to make a game, has remained.</p><p>Now at 22 years old, I have accomplished my goal, successfully creating one video game level, which took only half a college semester to create. I am proud. The journey to create Rhythm Cafe taught me a lot more about troubleshooting, game design, and the creative process than programming.</p><p>Understanding Unity felt like going back to when I was first learning Photoshop. It was daunting. Luckily I found a few tutorials to get an understanding of the program. Once I knew what each window meant and where the controls were, I created my rhythm game.</p><p>I’ve had this idea for the past two years but a rhythm game that takes place in a cafe. It first came to me when I was working as a Barista serving up drinks and when things were going smoothly, the cafe had this rhythm to it; the Baristas were dancers in this great performance. It felt more like a ballet than an assembly line. This state of flow where everyone in the cafe is on point was rare but magical.</p><p>I wanted to translate this experience and the feeling of everything going wrong, the espresso being expired, and the oven on fire, to show people how it feels to work in a cafe rather than just seeing what we do.</p><p>The rhythm game lent itself perfectly as it is easy to get into flow when playing one. The format is also just as hectic when the notes are missed.</p><p>My process when designing the game was not straightforward. It was a series of failed attempts, some time half attempts, and through these stumbles, and second-guesses I somehow put it together.</p><p>I had two guiding north stars.</p><ol><li>What could I realistically finish in time for this project?</li><li>How can it feel like a real game?</li></ol><p>These questions pushed me toward a 2D design that allowed me greater control of the game’s look and feel. It also pushed me toward abstraction and being less literal, as a barista does not have to be moving around the cafe to convey the same feeling.</p><p>Seeing the game less literally helped me think of the customer satisfaction bar, a health bar that takes damage when a note is missed, an OK hit, no harm for good, and regenerated if there is a perfect hit.</p><p>This game mechanic accomplishes the same goal as an animated version of myself, becoming more frantic. The game and song progressed without creating sprites or finding a 3D model to represent me.</p><p>Once all the elements came together, and I had a real game, I could not help but feel a deep sense of accomplishment.</p><p>Moving forward, I would like to spend more time playing around with the rhythm game concept; I already have a few ideas in mind, and I’m excited to see where I can take it. With more time, I will add animations and other unique game mechanics.</p><p>I learned a lot when creating this Rhythm Game, and I hope my case study will help you do the same.</p><p><em>This project was completed as a part of the Spring 2021 Creative Coding class at </em><a href="https://tyler.temple.edu/"><em>Tyler School of Art and Architecture</em></a><em>. For more projects from this class, visit the </em><a href="https://medium.com/tylergaid/creative-coding/home"><em>Creative Coding medium feature page</em></a><em>.</em></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=aa6d1c13fb98" width="1" height="1" alt=""><hr><p><a href="https://medium.com/tylerdi/what-i-learned-from-making-a-rhythm-game-aa6d1c13fb98">What I learned from making a Rhythm Game!</a> was originally published in <a href="https://medium.com/tylerdi">TylerD&amp;I</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[sweet ’n’ sour tape #19: the gallery]]></title>
            <link>https://medium.com/the-sweet-n-sour-tapes/sweet-n-sour-tape-19-the-gallery-b4dce2dfeea7?source=rss-60025d9346ee------2</link>
            <guid isPermaLink="false">https://medium.com/p/b4dce2dfeea7</guid>
            <category><![CDATA[pop-art]]></category>
            <category><![CDATA[learning]]></category>
            <category><![CDATA[photoshop]]></category>
            <category><![CDATA[letters]]></category>
            <category><![CDATA[s1]]></category>
            <dc:creator><![CDATA[Kunal Duggal]]></dc:creator>
            <pubDate>Mon, 15 Mar 2021 22:34:26 GMT</pubDate>
            <atom:updated>2021-03-18T00:43:52.286Z</atom:updated>
            <content:encoded><![CDATA[<h3>sweet ‘n’ sour tape #19: the gallery</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*tJj6U2-V8kPQFnAb6EBOdQ.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*0Tnt-kW_MAg3J7jwT0jjSQ.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*_ghy20EuY63IXuOL0msL4w.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*gTDgbHyKLSQkmgbDXhNYRg.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*sxd9v5Vwsn863B0SSfA6mg.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*xCr5UkCZ22BXWq8Sx3UnJg.png" /></figure><p>I hope you enjoyed the photoshop mash-ups. This tape came out of altogether scrapping two other tapes.</p><p>For the time being, I’m focused on enjoying myself while I’m still in Philadelphia.</p><p>I’ve been extra anxious lately, and I need to relax. I noticed that even with fewer classes, a more manageable work schedule, and fewer responsibilities, I feel just as stressed as when I was super busy.</p><p>Maybe the stress and the anxiety are coming from someplace within?</p><p>I need to fight that demon before I go out on my own and start my solo character arch.</p><p>Don’t think that this is some resignation of my goals. My ambition will never go away.</p><p>I need to turn it into long-term fuel, not the short-term rushes and crashes it provides me right now.</p><p>So here’s to ‘relaxing’ ;)</p><p>To answer your question, with my time in Philly winding down, who do I want to be when I leave?</p><p>The answer is the same me I am now, except less anxious and a bit bulkier. 💪🏽</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=b4dce2dfeea7" width="1" height="1" alt=""><hr><p><a href="https://medium.com/the-sweet-n-sour-tapes/sweet-n-sour-tape-19-the-gallery-b4dce2dfeea7">sweet ’n’ sour tape #19: the gallery</a> was originally published in <a href="https://medium.com/the-sweet-n-sour-tapes">the sweet ’n’ sour tapes</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[sweet ’n’ sour tape #17: space cadet]]></title>
            <link>https://medium.com/the-sweet-n-sour-tapes/sweet-n-sour-tape-17-space-cadet-94b31ac43165?source=rss-60025d9346ee------2</link>
            <guid isPermaLink="false">https://medium.com/p/94b31ac43165</guid>
            <category><![CDATA[s1]]></category>
            <category><![CDATA[ux-design]]></category>
            <category><![CDATA[videogames]]></category>
            <category><![CDATA[letters]]></category>
            <category><![CDATA[interactive]]></category>
            <dc:creator><![CDATA[Kunal Duggal]]></dc:creator>
            <pubDate>Tue, 29 Dec 2020 20:28:13 GMT</pubDate>
            <atom:updated>2021-01-01T14:44:05.331Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*Y3eptp56MLBUSYsk6ePFow.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*OMSXLik-f_70EDAzuBXZew.png" /></figure><figure><a href="#743f"><img alt="" src="https://cdn-images-1.medium.com/max/900/1*KatJpMLfo_4epGJSO_JHzA.png" /></a></figure><figure><a href="#d7cc"><img alt="" src="https://cdn-images-1.medium.com/max/900/1*riM6_7dllQQ98FRNbnYgGg.png" /></a></figure><p>▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*Gc_OJBeKQSgg_EVJhxOfmQ.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*rkFHUNa-19RBmeYdQxtlNQ.png" /></figure><figure><a href="#3eb0"><img alt="" src="https://cdn-images-1.medium.com/max/900/1*oDv5S6MItSHJx3Kax1b_Sg.png" /></a></figure><figure><a href="#da0b"><img alt="" src="https://cdn-images-1.medium.com/max/900/1*j7dEnMGhcRbqoTf8xpuhEQ.png" /></a></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*y-qLmgBOauKhT5FQ_CwDWw.png" /></figure><p>▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*SrLdM_NtvKmjwJWIKg6sSg.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*-l4F86DWcF2k16bpBGZNkQ.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*xVBW-07ufVIdygRzhxmWFw.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*E5aFSjISUXh753GXbW5LWg.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*HrUW8nP9LYigq6UH61kFnw.png" /></figure><ul><li><a href="https://medium.com/the-sweet-n-sour-tapes/sweet-n-sour-tape-9-solarpunk-7f92c457791c">sweet ‘n’ sour tape #9: solarpunk</a></li><li><a href="https://www.epi.org/action/the-rich-get-richer-and-the-poor-get-poorer/">The rich get richer and the poor get poorer</a></li><li><a href="https://www.pewsocialtrends.org/2020/01/09/trends-in-income-and-wealth-inequality/">Trends in U.S. income and wealth inequality</a></li></ul><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2FHL7DEkXV_60%3Ffeature%3Doembed&amp;display_name=YouTube&amp;url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DHL7DEkXV_60&amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2FHL7DEkXV_60%2Fhqdefault.jpg&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=youtube" width="854" height="480" frameborder="0" scrolling="no"><a href="https://medium.com/media/cc46abea4f7febcf70d7a11b3603305d/href">https://medium.com/media/cc46abea4f7febcf70d7a11b3603305d/href</a></iframe><ul><li><a href="https://www.technologyreview.com/10-breakthrough-technologies/2020/">2020</a></li><li><a href="https://www.businessinsider.in/thelife/news/elon-musks-net-worth-quintupled-in-2020-during-the-pandemic-we-broke-his-complicated-160-billion-wealth-down-into-2-simple-charts-/articleshow/80036812.cms">Elon Musk&#39;s net worth quintupled in 2020 during the pandemic. We broke his complicated $160 billion wealth down into 2 simple charts.</a></li><li><a href="https://www.msn.com/en-us/money/companies/a-chart-shows-how-amazon-ceo-jeff-bezoss-net-worth-exploded-by-2472-billion-in-2020-amid-the-coronavirus-pandemic/ar-BB1ccYzg">A chart shows how Amazon CEO Jeff Bezos&#39;s net worth exploded by $72 billion in 2020 amid the coronavirus pandemic</a></li></ul><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2FrlaPLvETBug%3Ffeature%3Doembed&amp;display_name=YouTube&amp;url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DrlaPLvETBug&amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2FrlaPLvETBug%2Fhqdefault.jpg&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=youtube" width="854" height="480" frameborder="0" scrolling="no"><a href="https://medium.com/media/ef1e79b5f15aa191d50187ea2899248d/href">https://medium.com/media/ef1e79b5f15aa191d50187ea2899248d/href</a></iframe><ul><li><a href="https://www.philanthropy.com/article/jeff-bezoss-10-billion-environmental-gift-tops-chronicle-list-of-the-biggest-charitable-donations-of-2020">Jeff Bezos&#39;s $10 Billion Environmental Gift Tops Chronicle List of the Biggest Charitable Donations of 2020</a></li><li><a href="https://nypost.com/2020/12/19/mackenzie-scotts-donations-have-shamed-the-boys-of-tech/">MacKenzie Scott&#39;s donations have shamed the boys of tech - Bezos above all</a></li><li><a href="https://www.hsph.harvard.edu/health-happiness/february-2020-association-of-social-media-use-with-social-well-being-positive-mental-health-and-self-rated-health/">February 2020: Association of Social Media Use with Social Well-Being, Positive Mental Health, and Self-Rated Health</a></li></ul><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2FUxQDG6WQT5s%3Ffeature%3Doembed&amp;display_name=YouTube&amp;url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DUxQDG6WQT5s&amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2FUxQDG6WQT5s%2Fhqdefault.jpg&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=youtube" width="854" height="480" frameborder="0" scrolling="no"><a href="https://medium.com/media/c7803fe7d2734bc388b58c2d1de1acb5/href">https://medium.com/media/c7803fe7d2734bc388b58c2d1de1acb5/href</a></iframe><ul><li><a href="https://dynamicbusiness.com.au/topics/news/mental-health-in-the-disinformation-age.html">Mental Health in The Disinformation Age</a></li><li><a href="https://dailyfreepress.com/2020/12/08/op-ed-the-effects-of-stan-culture-on-mental-health/">OP-ED: The effects of stan culture on mental health</a></li><li><a href="https://markets.businessinsider.com/news/stocks/3-psychedelic-stocks-taking-mental-health-seriously-1029926001">3 Psychedelic Stocks Taking Mental Health Seriously</a></li><li><a href="https://singularityhub.com/2020/12/23/amazons-new-driverless-taxi-doesnt-have-a-steering-wheel-accelerator-or-brakes/">Amazon&#39;s New Robotaxi Has No Steering Wheel, But It Can Drive for 16 Hours Straight</a></li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*4NMN1bs8kkY1tFvGFfIh5w.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*qK5rZoVdsqHiJiKi8xbUWQ.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*X0GpufZfgOmKPH8HjVcUQw.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*mPylW_aejtPCIrHlLxif9A.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*oJZmmMjbdXU0njqiLTdfPg.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*8uL-2sF9kHYhV3OsbtzQIQ.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*1pOi6Hbs31dq3RoiDqbBdQ.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1000/1*IPWFSYIpeeKLVkGGTGJS3Q.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*_7kJ7d9mPL9LHYKyapZamg.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*sW3kZdYRMB50nGjGjmWVfQ.gif" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*tCA0kkTKHxorCMVpOpurFQ.png" /></figure><figure><a href="#30bc"><img alt="" src="https://cdn-images-1.medium.com/max/900/1*i8RWbnsaFkQQb1k1-ccmYA.png" /></a></figure><figure><a href="#743f"><img alt="" src="https://cdn-images-1.medium.com/max/900/1*qBRTrE4E6_33X4FzwewajQ.png" /></a></figure><p>▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*8uL-2sF9kHYhV3OsbtzQIQ.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*xzifQrr4kCVGc4N7duxw8w.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*ObtFL54XVzRekXSlBKmpfg.png" /></figure><figure><a href="#6180"><img alt="" src="https://cdn-images-1.medium.com/max/900/1*WJm4vKKLuFSZKn_fAk8Wrg.png" /></a></figure><figure><a href="#743f"><img alt="" src="https://cdn-images-1.medium.com/max/900/1*F_xiIahFv6vi7JgjLSl7zw.png" /></a></figure><p>▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*wUzZwz2chQD1ehqUjIqwvQ.png" /></figure><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2FUfp8weYYDE8%3Ffeature%3Doembed&amp;display_name=YouTube&amp;url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DUfp8weYYDE8&amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2FUfp8weYYDE8%2Fhqdefault.jpg&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=youtube" width="854" height="480" frameborder="0" scrolling="no"><a href="https://medium.com/media/9d43f807a7080b1665d2a8ac9034e185/href">https://medium.com/media/9d43f807a7080b1665d2a8ac9034e185/href</a></iframe><ul><li><a href="https://www.architecturaldigest.com/story/best-theatrical-set-design-tonys-2019">The Best Sets From This Year&#39;s Top Plays and Musicals</a></li><li><a href="https://torontosun.com/news/weird/a-i-sex-robots-the-future-of-intimacy">Are A.I. sex dolls the future of intimacy?</a></li><li><a href="http://www.theeastmag.com/2020/12/21/the-future-of-music-is-diy-a-conversation-with-alex-macneil-and-andy-macinnis/">The Future of Music is DIY: A Conversation with Alex MacNeil and Andy MacInnis | The East</a></li><li><a href="https://www.dailyemerald.com/arts-culture/is-hyper-pop-the-future-of-music/article_7f460e0e-3039-11ea-a922-7727ccb8a1bd.html">Is hyper pop the future of music?</a></li></ul><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2FMMMshdy-0gw%3Ffeature%3Doembed&amp;display_name=YouTube&amp;url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DMMMshdy-0gw&amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2FMMMshdy-0gw%2Fhqdefault.jpg&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=youtube" width="854" height="480" frameborder="0" scrolling="no"><a href="https://medium.com/media/3b29f9c376f836b8911249243861ec06/href">https://medium.com/media/3b29f9c376f836b8911249243861ec06/href</a></iframe><ul><li><a href="https://www.digitaltrends.com/virtual-reality/5-mind-blowing-vr-experiences/">5 New VR Experiences To Try That Will Blow Your Mind | Digital Trends</a></li><li><a href="https://collider.com/tom-hanks-movie-theaters-future-interview/">Tom Hanks on the Future of Movie Theaters: &quot;A Sea Change Was Due&quot;</a></li><li><a href="https://www.embedded-computing.com/guest-blogs/the-future-of-screens">The Future of Screens</a></li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*GnmEh2EnbtycZEQP7go55g.png" /></figure><figure><a href="#2758"><img alt="" src="https://cdn-images-1.medium.com/max/900/1*rOOtn1MZcN1npbAUU2IWCg.png" /></a></figure><figure><a href="#743f"><img alt="" src="https://cdn-images-1.medium.com/max/900/1*F_xiIahFv6vi7JgjLSl7zw.png" /></a></figure><p>▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*kyxm4yrAESEMpwoznzRCXA.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*aqow49W4BdlUIDLe4A1Fdg.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*O2n8Hcg2B6igSI1dxKgrsQ.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*ndzz_2yGZ5FAiyVkbuyhIA.gif" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*NDUICSeK4pUp0L1bevxFHg.png" /></figure><figure><a href="#743f"><img alt="" src="https://cdn-images-1.medium.com/max/900/1*bfBwnUNoIrmzO35E1NRpdQ.png" /></a></figure><p>▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*y-qLmgBOauKhT5FQ_CwDWw.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*M98hAV400Nj2bj5FYMzRjw.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*ORLUxJKwStoVD-GgSj3btg.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*VPcRFO5xn508LgmA5McO1A.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*BjVXttgUcemtwj79BBvlSQ.png" /><figcaption>this will include the surprise, look forward to #17.5</figcaption></figure><figure><a href="#f82c"><img alt="" src="https://cdn-images-1.medium.com/max/900/1*bfBwnUNoIrmzO35E1NRpdQ.png" /></a></figure><p>▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄▀▄</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*T2nMLFYkBrd-NPDvQkuiiQ.png" /></figure><figure><a href="#743f"><img alt="" src="https://cdn-images-1.medium.com/max/900/1*bfBwnUNoIrmzO35E1NRpdQ.png" /></a></figure><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=94b31ac43165" width="1" height="1" alt=""><hr><p><a href="https://medium.com/the-sweet-n-sour-tapes/sweet-n-sour-tape-17-space-cadet-94b31ac43165">sweet ’n’ sour tape #17: space cadet</a> was originally published in <a href="https://medium.com/the-sweet-n-sour-tapes">the sweet ’n’ sour tapes</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[sweet ’n’ sour tape #15: goodbye earth]]></title>
            <link>https://medium.com/the-sweet-n-sour-tapes/sweet-n-sour-tape-15-goodbye-earth-926977376e86?source=rss-60025d9346ee------2</link>
            <guid isPermaLink="false">https://medium.com/p/926977376e86</guid>
            <category><![CDATA[grateful]]></category>
            <category><![CDATA[letters]]></category>
            <category><![CDATA[sweet]]></category>
            <category><![CDATA[space]]></category>
            <category><![CDATA[s1]]></category>
            <dc:creator><![CDATA[Kunal Duggal]]></dc:creator>
            <pubDate>Thu, 03 Dec 2020 02:28:15 GMT</pubDate>
            <atom:updated>2021-03-18T00:51:46.778Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*dW0amoKZ8-YV78G9Eeld1g.png" /></figure><p>Let me paint a picture: there is puke all over the dash, you are hunched over and confused, your face is blue, and maybe you are a little terrified, but a small smirk is in the corner of your cheek. Why are you smiling? Especially after you puked all over yourself, it is because this is not car. You made it to outer space. Hello Cosmos.</p><p>The mortal coils that have held to the earth are starting unbound.</p><p>As a human in space, the human rules still apply, like don’t be an asshole. But, the environment is different. Gravity is lighter, and things move a lot faster.</p><p>This is not a regular tape. In honor of your first body of work, this tape is an appreciation post for the one and only <strong>YOU</strong>!</p><p>I remember the feelings I had when you first told me about your ambition to drop out of college and pursue music. I wasn’t surprised. More like, of course. The typical college route never fit us. I adapted to it, and you rejected it.</p><p>You opted out to pursue a dream, and that dream wasn’t always pretty.</p><p>At that moment, I thought if there was a person that I knew that could do this, it was you.</p><p>And, if you worked <strong>extremely hard</strong>.</p><p>Trial and tribulation, awkward moments, existential confusion, and a lot of walking later. Here we are. Your skills have matched your vision.</p><p>It is inspiring. And that is one of the many reasons I am grateful for you.</p><p>You have always inspired me to<strong> make</strong> <strong>more, attempt to be more, and work harder than anyone else.</strong></p><p>My ambition was being cultivated from the time we were kids when you asked me to start a video game company, to when we spent winter break freshmen year writing and drawing a self-published book.</p><p>Even if it&#39;s indirect, your influence is always felt. Seeing you pour yourself into the music has given a visceral image of what it looks like to create art.</p><p>It is painstaking, grueling, sleep-depriving, and the antithesis of what these wannabe creatives think. I know when I work on my art, I need to match that energy.</p><p>Thank you for continuously inspiring me, and thank you for your insights.</p><p>Thank you for the support right now as I pursue my own art. You are right; my creative muscle is fragile. I appreciate S.S 14 and the care package. Both items mean a lot.</p><p>The cosmos looks at you. It carries with the stars and galaxies of the night sky. Its face is constantly changing like the moods of a kaleidoscope, a collage of culture.</p><p>Its awe and might ignite both terror and appreciation. The cosmos only stares into your eyes. It does not mutter a word.</p><p>You reach to try to touch it, but your fingers only glaze the glass. It expands, covering everything and nothing.</p><p>Regardless of what happens next, be proud of yourself. You did what little us dreamed of. You thought up a vision, executed it, and made something, something worth sharing, something inspiring.</p><p>Tingles run down your spine, humbled by the Cosmos mythic size and infinite expanse.</p><p>You take a deep breath, eyes closed, in through the nose, you hold for four, out through the mouth, grabbing the wheel of your ship, you chase it.</p><p>Two years in a cocoon. It is time to spread your wings and fly you beautiful Mothman ;)</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=926977376e86" width="1" height="1" alt=""><hr><p><a href="https://medium.com/the-sweet-n-sour-tapes/sweet-n-sour-tape-15-goodbye-earth-926977376e86">sweet ’n’ sour tape #15: goodbye earth</a> was originally published in <a href="https://medium.com/the-sweet-n-sour-tapes">the sweet ’n’ sour tapes</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[sweet ’n’ sour tape #13: memo mori]]></title>
            <link>https://medium.com/the-sweet-n-sour-tapes/mr-skeleton-man-walks-into-a-bar-4ef3a816ac21?source=rss-60025d9346ee------2</link>
            <guid isPermaLink="false">https://medium.com/p/4ef3a816ac21</guid>
            <category><![CDATA[s1]]></category>
            <category><![CDATA[letters]]></category>
            <category><![CDATA[potential]]></category>
            <category><![CDATA[death]]></category>
            <category><![CDATA[excitement]]></category>
            <dc:creator><![CDATA[Kunal Duggal]]></dc:creator>
            <pubDate>Thu, 08 Oct 2020 23:16:57 GMT</pubDate>
            <atom:updated>2020-10-09T03:56:54.259Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*Evp37TZxxOYXG7VyTVPljg.png" /></figure><p>Mr. Skeleton Man walks into a bar.</p><p>The bartender walks away…</p><p>Mr. Skeleton Man doesn’t mind and pours himself a drink.</p><p>I notice him right away, and as I get ready to go — we lock eyes. He stares at me with his permanent grin.</p><p>Mr. Skeleton man raises his glass “Memento Mori!” he shouts.</p><p>Death is what Mr. Skeleton man represents for me.</p><p>Death is unbiased and uninterested, but it’s always there with a smile on its face. Death is powerful, and humanity has done an excellent job of subduing him.</p><p>We live longer than ever before, living conditions worldwide keep improving, violence is at an all time low. With that all being said, even though life expectancy and the quality of life improve, humans’ mortality rate stays a cool 100%.</p><p>We all know we are mortal. This awareness of death unifies all cultures and all people.</p><p>Death strips us away from our accomplishments in life. It erases our memories and closes all doors. Yet, to be alive means one will die, and death is also what makes us strive, remember, and reach for new opportunities.</p><p>Death, which takes the meaning away from our lives, also is its source. Funny enough, when I saw him, all I thought about was how meaningless everything was. Maybe he came to remind me that he’s always there to provide some meaning.</p><blockquote>“Don’t be sad, I’m always here to give you meaning” — Mr. Skeleton Man.</blockquote><p>Death has pushed humans to build tombs so impressive that future humans marvel at it. Death has forced us to think about how to become better. Death makes the philosopher wonder what is the ‘good life,’ how should our time be spent?</p><p>The personal essay format that we all know and remember from college applications, and Medium’s favorite medium, was born out of a brush with death.</p><p>Michele de Montaigne is the guy credited with popularizing/creating the essay. He was just another french nobleman, until one day he fell off his horse, knocked out, and almost died.</p><p>This brush with death reminded Montaigne his time on earth is fleeting. It pushed to live a life he wanted to live, not just a regular noble one. He started to write about his experiences, an idea that was seen as too self-indulgent. Essays were born out of this desire to truly experience life. They were born out of death.</p><p>Steve Jobs went through something similar when he realized he would die in only a few years. It pushed him not to live longer but realize his vision of the iPad. He passed a year and a half after it was released. It was the culmination of what he saw in his mind’s eye all those years ago at Xerox Park.</p><p>Kanye even had a brush with death, remember through the wire?</p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2Fuvb-1wjAtk4%3Ffeature%3Doembed&amp;display_name=YouTube&amp;url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3Duvb-1wjAtk4&amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2Fuvb-1wjAtk4%2Fhqdefault.jpg&amp;type=text%2Fhtml&amp;schema=youtube" width="640" height="480" frameborder="0" scrolling="no"><a href="https://medium.com/media/eaa214da6d4b2d91bab1c0c3b53f5ac1/href">https://medium.com/media/eaa214da6d4b2d91bab1c0c3b53f5ac1/href</a></iframe><p>This is an assumption, but I feel a positive correlation among successful people and understanding of mortality.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1000/1*fp-Dm3g5mpyFaCQbTD4hvQ.png" /><figcaption>a baseless claim</figcaption></figure><p>Death is not something we are in-tuned with as young 20 somethings with another 60+ years ahead of us. Or 230+ years in my case.</p><p>Maybe because it’s a pandemic and it’s October, but I keep seeing Mr. Skeleton Man smiling. Instead of basking in the meaninglessness of it all. Mr. Skeleton Man is reminding me of our opportunity to exist.</p><p>During my first trip, I realized certain things that all humans share for me. I thought about birth; all human beings are born. But, an experience that binds us together even better is death.</p><p>I don’t necessarily care about being remembered, but I care about living life to the fullest. I am not going to live a life where I am already dead.</p><p>This mindset I’m cultivating is excellent to live life to the fullest, but now <strong>I’ll have to hold myself accountable</strong>. Turn this mindset into habits that keep me moving forward, even when I don’t feel like it.</p><p>I’ve been saying this for the past two years, and habit formation is truly fucking hard. But, when my good behaviors are innate, I will be unstoppable.</p><p>I need to be unstoppable too. It doesn’t feel like it yet, but I closed a huge chapter in my life.</p><p>I know where my career is starting. Even though we both know this is temporary, it is exciting. Ultimately, this is the first step towards economic independence and wealth creation.</p><p>I think it is time for college Kunal to die and a new Kunal to rise from those ashes. I hope this version of myself has a nice funeral.</p><p>This Kunal will have to balance more than just student orgs and part time jobs, but two careers.</p><p>I am going to become Kunal, the artist, and Kunal, the consultant. I’m excited to become this person and face this challenge.</p><p>I guess my message is the next time you feel like wasting time…remember you will <strong>die</strong>.</p><p>I look back at Mr. Skeleton man and raise my cup “Memento Mori!”</p><h4><a href="https://www.pinterest.com/Kunal001/death/">moodboard</a></h4><h4><a href="https://medium.com/the-sweet-n-sour-tapes/september-2020-595f29ba156b">camera roll</a></h4><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=4ef3a816ac21" width="1" height="1" alt=""><hr><p><a href="https://medium.com/the-sweet-n-sour-tapes/mr-skeleton-man-walks-into-a-bar-4ef3a816ac21">sweet ’n’ sour tape #13: memo mori</a> was originally published in <a href="https://medium.com/the-sweet-n-sour-tapes">the sweet ’n’ sour tapes</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[SEPTEMBER 2020]]></title>
            <link>https://medium.com/the-sweet-n-sour-tapes/september-2020-595f29ba156b?source=rss-60025d9346ee------2</link>
            <guid isPermaLink="false">https://medium.com/p/595f29ba156b</guid>
            <category><![CDATA[image]]></category>
            <category><![CDATA[cameras]]></category>
            <category><![CDATA[pictures]]></category>
            <category><![CDATA[collage]]></category>
            <category><![CDATA[gallery]]></category>
            <dc:creator><![CDATA[Kunal Duggal]]></dc:creator>
            <pubDate>Thu, 08 Oct 2020 22:58:52 GMT</pubDate>
            <atom:updated>2020-10-08T22:58:52.754Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1000/1*qbS7abSQ0MVtUr8RxOpIow.png" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*3ydr2osDRlJ1xaN1o-pkjg.jpeg" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*zhegEjcgou0TUNn2hTFPVg.jpeg" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*8OgN47-LUrGZCzL35kmINg.jpeg" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*IcgpODBwrzJHC85BOmQ8gQ.jpeg" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*Hp_jgWDrcEXQgZlqsSQrPQ.jpeg" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*E480jA6s0jTiT_Rix--KLA.jpeg" /></figure><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=595f29ba156b" width="1" height="1" alt=""><hr><p><a href="https://medium.com/the-sweet-n-sour-tapes/september-2020-595f29ba156b">SEPTEMBER 2020</a> was originally published in <a href="https://medium.com/the-sweet-n-sour-tapes">the sweet ’n’ sour tapes</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
    </channel>
</rss>