<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Spiral Studios &#8211; Advanced Game Studio</title>
	<atom:link href="https://courses.ideate.cmu.edu/53-472/s2022/?feed=rss2&#038;cat=6" rel="self" type="application/rss+xml" />
	<link>https://courses.ideate.cmu.edu/53-472/s2022</link>
	<description>53-472  &#124;  Spring 2022 &#124;  Carnegie Mellon University</description>
	<lastBuildDate>Tue, 03 May 2022 21:23:32 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.2.5</generator>
	<item>
		<title>Spiral Studios: Parasite – Final Post</title>
		<link>https://courses.ideate.cmu.edu/53-472/s2022/?p=337</link>
					<comments>https://courses.ideate.cmu.edu/53-472/s2022/?p=337#respond</comments>
		
		<dc:creator><![CDATA[Jiaqi Zhang]]></dc:creator>
		<pubDate>Tue, 03 May 2022 21:23:32 +0000</pubDate>
				<category><![CDATA[Spiral Studios]]></category>
		<category><![CDATA[Team Posts]]></category>
		<guid isPermaLink="false">https://courses.ideate.cmu.edu/53-472/s2022/?p=337</guid>

					<description><![CDATA[Howdy, parasites! Are you ready for the trailer of the game? If the video can not be played for some reasons, please visit the following link: https://drive.google.com/file/d/1vkLkpot9gfwAr89js7cmC1ycleFSGkHl/view?usp=sharing Want to know [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>Howdy, parasites! Are you ready for the trailer of the game? </p>



<figure class="wp-block-video"><video controls src="https://drive.google.com/file/d/1vkLkpot9gfwAr89js7cmC1ycleFSGkHl/view?usp=sharing"></video><figcaption>Trailer &#8211; Parasite</figcaption></figure>



<h6 class="has-text-align-center wp-block-heading">If the video can not be played for some reasons, please visit the following link: </h6>



<h6 class="has-text-align-center wp-block-heading">https://drive.google.com/file/d/1vkLkpot9gfwAr89js7cmC1ycleFSGkHl/view?usp=sharing</h6>



<p>Want to know more about the game? Please have a look at our project video!</p>



<figure class="wp-block-video"><video controls src="https://drive.google.com/file/d/1d-xkqQsHgCWAWiaPPu9GMWpY_ejqkiaC/view?usp=sharing"></video><figcaption>Parasite &#8211; Project Video</figcaption></figure>



<h6 class="has-text-align-center wp-block-heading">If the video can not be played for some reasons, please visit the following link: </h6>



<h6 class="has-text-align-center wp-block-heading">https://drive.google.com/file/d/1d-xkqQsHgCWAWiaPPu9GMWpY_ejqkiaC/view?usp=sharing</h6>



<p>We are still making some final adjustment to the game. The download link will be updated here soon.</p>



<p>After having an overview of the game, let&#8217;s see the new changes spiral made in the last week to polish the final build.</p>



<h3 class="wp-block-heading">New Changes in Week 13</h3>



<h2 class="wp-block-heading">Programming <img src="https://s.w.org/images/core/emoji/14.0.0/72x72/2328.png" alt="⌨" class="wp-smiley" style="height: 1em; max-height: 1em;" /></h2>



<p>In our last week of the semester our team’s programming had one focus and one focus only: polish. We ran full tests many times each meeting to maximize the probability that our last presentation went completely smoothly and could effectively showcase everything we had been working on over the last 14 weeks. </p>



<h3 class="wp-block-heading">Audio Implementation</h3>



<p>The biggest source of issues was audio this week since we didn’t get to actually implementing our audio assets until the last few weeks, so these elements were the most under cooked and needed the most fleshing out. The networking element made implementing the sounds particularly non-trivial, especially with FMOD. We had dynamic sounds designed for the background music but unfortunately couldn’t get the audio parameters to work. </p>



<h3 class="wp-block-heading">UI</h3>



<p>Since the last blog post, I worked primarily on implementing the UI for the tutorial into the game, as well as polishing the existing start menu. I tried to be as faithful to the design drafts as possible, since they were very excellently made.</p>



<figure class="wp-block-video"><video controls src="https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/05/Richard-Video.mov"></video></figure>



<p>Most of the heavy lifting was just making a tutorial menu script to handle interactions between the different panels, and hooking up the tutorial to the existing NetworkMenu script. Had I more time, I would have thrown in a tweening library and animated the menu to be more vibrant (ie animating the parasites to bounce up and down, having better fade in fade out options for the menus and panels, etc.)</p>



<h2 class="wp-block-heading">Audio <img src="https://s.w.org/images/core/emoji/14.0.0/72x72/1f3b9.png" alt="🎹" class="wp-smiley" style="height: 1em; max-height: 1em;" /></h2>



<p>The final rush from beta to final focused heavily on implementing existing assets as well as fixing and refining our existing work. In our beta there were still many sounds that were not yet hooked up to the unity project, so getting those in there was one of our first priorities.</p>



<p>We went through many cycles of putting in audio, then testing, finding bugs, and starting over again. This was also done alongside all the non-audio programming as well, meaning it was harder to find time to work on specific sound errors. During this process of implementation, we were also creating a few new sound assets for the human tasks which the player completes in order to win the game. There are a total of six tasks scattered throughout the ship, and we decided that each should have its own unique sound effects. This not only adds some audio feedback for the player completing the tasks, but also acts as a hint for any parasite that hears a task being completed nearby.&nbsp;</p>



<p>The six tasks are: repair fuse box, repair ventilation, submit lab sample, redirect power, start power core, and start escape pod. These tasks are only completed by each player a maximum of one time, therefore the sounds were not randomized in any way and will sound the exact same each time. Not only does this save time on the asset creation side, but it also adds some consistency to the player experience as a parasite can learn what certain tasks sound like and use them to track where the human is. </p>



<figure class="wp-block-audio"><audio controls src="https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/05/EscapePod_Launch.wav"></audio><figcaption>Escape Pod Launch</figcaption></figure>



<figure class="wp-block-audio"><audio controls src="https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/05/FuseBox_Complete.wav"></audio><figcaption>Fuse Box Repair</figcaption></figure>



<h2 class="wp-block-heading">Art <img src="https://s.w.org/images/core/emoji/14.0.0/72x72/1f58d.png" alt="🖍" class="wp-smiley" style="height: 1em; max-height: 1em;" /></h2>



<h3 class="wp-block-heading">UI</h3>



<p>The UI in the game was keeping updating in the last week. We finished the start, ending screens, designed for the tutorials. Also, we refined the task list to be a call out list that does not take much screen space.</p>



<p class="has-text-align-center"><img decoding="async" loading="lazy" width="306px;" height="185px;" src="https://lh3.googleusercontent.com/ABUhZIzMV37SWDPLfqSd8nIVuQ9AKBzxAwO1FfWZ57WLulpNHmUnq-itirTR2T8ZPPd0gy6UJkR_4zS114QyzYKPtNYww-E8FU3BKBd96EMDiOmoExvoqdmGr5D5RqEgkfM9UtDsBaQ0ao1qtAjRKw"></p>



<p class="has-text-align-center"><img decoding="async" loading="lazy" width="166px;" height="185px;" src="https://lh6.googleusercontent.com/syfVIEgYswpiALVz7K4QOlrPISEag_8pfnGKQUtMJk5KqUI2NeeU3klkyJPugNCdmzrWQjwfQEHhGiQyBDgQh3tPqBErK7dgMJz2dJjL3ogqTIoRmIbcBm7kA_W4EBD0utXEvEx9sSX1e2Il3ceoyQ"></p>



<h3 class="wp-block-heading">Lighting</h3>



<p>At the final stage, we adjusted the lighting of the level. Spot lights were added to emphasize task related objects, and the lightness increased the visibility for players to navigate in the level.</p>



<p class="has-text-align-center"><img decoding="async" loading="lazy" width="567px;" height="344px;" src="https://lh4.googleusercontent.com/wff768A7tKS17iJdR4ebmN9QDk3CKm5GnhrRRCo-qP97oE8mJK4UAw0_R7uogi_mqnSEn6ti2S-HZVgsd4AcyhWsyYqpFIJUJVPfyjKJytcfPQ3v1KJpuuPknM-b7ClaWTdWrKVQVNxMqgX2jWV7OQ"></p>



<h2 class="wp-block-heading">Summary &amp; Reflection</h2>



<p>It is the time to celebrate the result, and also the time to look back and reflect on what we did. Our team members have some words to say.</p>



<h4 class="wp-block-heading">Thomas</h4>



<h6 class="wp-block-heading">Programmer &amp; 3D Artist</h6>



<p>For 3D art, my main task was designing and modeling the level itself. I deliberately designed each component of the level to fit in a 20&#215;20 unit grid and kept each doorway geometrically identical, which allowed us later in development to move the components around and reconnect pieces like legos without any gaps. This definitely helped in the design phase of the main level’s development. The only downside to this strategy was the level looking fairly uniform which made it hard to navigate for new players. I think if I had more time and a second try I would try to make multiple prefab variants out of each repetitive component (especially the hallways) which had more small details like vents and pipes which could differentiate them. The lighting and extra effects like posters helped with this but it could have been much better.&nbsp;</p>



<p>For programming, the main difficulty was maintaining state across the network. If we had each computer in the game perfectly sync their memory state, this game would be game-jam level in complexity, but having to sync state across the network added a huge amount of difficulty. In particular, having a complex gameobject which could be possessed and unpossessed by multiple players was quite complicated to engineer. The strategy which helped us keep tech debt down was tying state updates into as few RPC calls as possible, even if it was at the cost of performance. For example I had an “UpdateOwnership” function inside the HumanController script which would act as a state reducer: check if the human was meant to be controlled by the local player, and depending on that update the state of the entire entity (toggle camera, audio listener, etc). Any time we added a new feature to the Human we would add its proper behavior to that one function. If we ever ran into trouble with portions of the human code not reacting to possession properly, we could just call that function in a few more places (at one point it was even in update but we removed that) and it would usually resolve the problem, which saved a lot of debugging time. The main source of real issues came from poor documentation or even bugs in unity’s Netcode for GameObjects, which was the networking library we were using. Unfortunately the library is fairly new and esoteric edge cases and I even had to change and debug portions of the library itself to get the behavior we needed. Overall I am still glad I used it since I know how to wrangle it now. I suspect it will be the future of unity networking, and I plan on using it in future multiplayer projects.&nbsp;</p>



<h4 class="wp-block-heading">Ian</h4>



<h6 class="wp-block-heading">Audio Artist &amp; QA</h6>



<p>For our game I was the designated sound designer, encompassing both sound effects as well as music. For the music I tried to evoke the feeling of cartoons from the 1950s &#8211; 60s, by using primarily orchestral sounds with emphasis on woodwind instruments such as oboe, bassoon, and clarinet. The winds were supported by pizzicato low strings to make sure that there were no sustained notes, this kept the music always feeling bouncy. The only held notes were sul ponticello (bowed near the bridge) violin tremolo in order to add an aspect of suspense to the music. This backbone of orchestral sounds was then mixed with some synths (set with high gliss time between notes) to add in the vintage sci-fi feeling as our game takes place in a spaceship with aliens.&nbsp;</p>



<p>The sound effects were mostly non-stylized as I felt that the music conveyed enough of the cartoony nature that we needed. The few exceptions to this were the possession sound, which ended up being a very cartoon-like popping sound, and the parasite’s voices. These voices were done by recording myself making various grunts and laughs, then pitching them up by about 8-10 semitones, and finally running them through a grain delay effect. This effect was set to chop up the sound into little pieces and make each piece a bit higher than the last, giving the voices an alien-like rising echo effect. These parasite voices were then used when a parasite did a successful possession or whenever they jumped, just to give them a little more personality because I thought they were really cute.</p>



<p>I had a great time working on this project as it really took me out of my comfort zone musically. I normally like to write very dramatic or tragic orchestral music, so being able to write something fun and bouncy was quite the change. I think overall the music worked well, except for the adaptive system which we couldn’t quite get working in the end. The plan was for the music to evolve along with the game state through changing FMOD parameters. However we weren’t able to debug this system in time for the final. Luckily I still got to showcase a bit of the “rush music” in our trailer. On the topic of FMOD, I’m very glad to have gotten the opportunity to learn it over the semester. For a few years now, it has been a goal of mine to use it on a larger project and I think by the end I got the hang of it pretty well. The main thing that I would do differently if I could would be to constantly be implementing audio from the very beginning of the process. Most of our builds didn’t have audio in them until the very end, which made it much more likely to run into bugs later in the process.&nbsp;</p>



<h4 class="wp-block-heading">Richard</h4>



<h6 class="wp-block-heading">Programmer</h6>



<p>I worked primarily on programming, and toward the latter half of the semester, implementing UI into the game. I worked best during periods where tasks were atomic and could be done within the span of a single work session &#8211; having small and manageable tasks kept me focused during meetings and led to my greatest periods of productivity. Examples of these are shown in the mana system/pickups present in the game and the implementation of the start screen UI. Since the tasks were usually small enough to be done in a few hours, I was able to usually get a quicker turn around on those tasks and handled them on time.</p>



<p>Overall, I learned a lot from working on this project this semester. This might repeat my sentiments from the Post Mortem document, but I ran into a lot of difficulties with work that was ultimately cut from the game and failing to put out working code in time for implementation. This reinforced the reality that game development is never a straight shot journey, and that, more than just accepting, being communicative and clear about hardships and roadblocks along the way is key to putting out a project of this scope. This reality exponentially augments in size relative to the complexity of the game, and my experiences working on this project served to not only hone my programming skills, but my time management and communication skills, in order to be a better teammate in the future.</p>



<h4 class="wp-block-heading">Hongyu</h4>



<h6 class="wp-block-heading">Visual Artist</h6>



<p>This is my first game project and the first time I worked as an art designer in an interdisciplinary team. For the first few weeks I was quite confused about the workflow and how I would contribute to our project. I gradually walked into the right track when I started to draw the characters and search for people’s opinion and help. What I did not do well is I realize there are still lots of improvements I can make in the last 2 weeks and I do not have enough time to achieve them in this time. If I have more time I will reach out to my peers more often and start to work on my idea ealier.&nbsp; Next time I will try to be more brave to explain and practice my idea. My first game design is not perfect but I do learn from it.</p>



<p>Another important lesson is teamwork. I usually work with people from design/architecture background, sometimes I take it for granted that they should have the same understanding as I have for my stuff but it is not, so communication skills are quite important. Not only the language, sometimes I find sketch / storyboard is also a very effective tool to express my ideas.&nbsp;</p>



<p>Also next time I will spend more time discussing the initial idea, the concept and the mechanisms which I think is the part we have most of the space to make improvement.</p>



<p>During this semester, I questioned myself several times, but thanks to Tom and my teammates, they kept encouraging me to keep it up.</p>



<h4 class="wp-block-heading">Jiaqi</h4>



<h6 class="wp-block-heading">Producer</h6>



<p>It is a wonderful experience to work with my team on a game development project! Every time when I editing the blogs, I am proud of the progress we made. I appreciate my teammates bearing with me in the past 14 weeks.</p>



<p>It is my first game project, and it is interesting to be a producer while I am still learning about game development. </p>



<p>After the alpha, we made changes on people&#8217;s roles and responsibilities. As the producer, I was working on workload balance across the team. I thought it is helpful to have team meetings as well as short talks with each teammate. What is special about our team is that some of us are very knowledgeable about the process of design development, while others may even don&#8217;t know their skillset can be applied into the game. It is important to get out everyone&#8217;s concerns and visions and find chances of communication between group members to make the whole process smoother.</p>



<p>We sometimes met problems with time management and meeting the expectations of weekly goals, but it is better in the last week after we make the tasks more digestible.</p>



<p>With the knowledge of game development I have now, there are a few of things to think about if we start from the beginning again: the task tracking and management tools we use, how to organize team meetings and team communication, and team decision making.</p>



<p>The experience of being in the position of managing a team is definitely meaningful to me. People have different expectations, work styles and knowledge, and it needs thoughtful working process design to help these people be a &#8220;team&#8221; and be efficient, happy and successful as a whole.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://courses.ideate.cmu.edu/53-472/s2022/?feed=rss2&#038;p=337</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		<enclosure url="https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/05/Richard-Video.mov" length="2701244" type="video/quicktime" />
<enclosure url="https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/05/EscapePod_Launch.wav" length="1626388" type="audio/wav" />
<enclosure url="https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/05/FuseBox_Complete.wav" length="308744" type="audio/wav" />

			</item>
		<item>
		<title>Spiral Studios: Parasite – Week 12</title>
		<link>https://courses.ideate.cmu.edu/53-472/s2022/?p=322</link>
					<comments>https://courses.ideate.cmu.edu/53-472/s2022/?p=322#respond</comments>
		
		<dc:creator><![CDATA[Jiaqi Zhang]]></dc:creator>
		<pubDate>Fri, 29 Apr 2022 00:15:29 +0000</pubDate>
				<category><![CDATA[Spiral Studios]]></category>
		<category><![CDATA[Team Posts]]></category>
		<guid isPermaLink="false">https://courses.ideate.cmu.edu/53-472/s2022/?p=322</guid>

					<description><![CDATA[Running towards the final build! Learning from Beta feedback, we are wrapping the mechanism and making improvements to level design and UI. Additional sound effects are prepared for different tasks [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>Running towards the final build! Learning from Beta feedback, we are wrapping the mechanism and making improvements to level design and UI. Additional sound effects are prepared for different tasks in the game.</p>



<h2 class="wp-block-heading">Programming <img src="https://s.w.org/images/core/emoji/14.0.0/72x72/2328.png" alt="⌨" class="wp-smiley" style="height: 1em; max-height: 1em;" /></h2>



<h3 class="wp-block-heading">Network stability</h3>



<p>This week was a lot of networking and server stability work. We transitioned from the outdated UNet transport protocol to the newer UTP which helped with getting clearer error messages particularly when connecting to addresses which had no server listening.</p>



<h2 class="wp-block-heading">Art <img src="https://s.w.org/images/core/emoji/14.0.0/72x72/1f58d.png" alt="🖍" class="wp-smiley" style="height: 1em; max-height: 1em;" /></h2>



<h3 class="wp-block-heading">UI</h3>



<p>This week, we worked on updating the UI for the main menu and overhauling the UI for the game. The design mockups below are the intended designs for the UI. If time permits, I&#8217;ll look into adding a tweening library and animating some of the parasite figures to be more playful.</p>



<div class="wp-block-image"><figure class="aligncenter size-large is-resized"><img decoding="async" loading="lazy" src="https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/04/image1-4-1024x728.png" alt="" class="wp-image-323" width="570" height="405" srcset="https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/04/image1-4-1024x728.png 1024w, https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/04/image1-4-300x213.png 300w, https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/04/image1-4-768x546.png 768w, https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/04/image1-4.png 1198w" sizes="(max-width: 570px) 100vw, 570px" /></figure></div>



<div class="wp-block-image"><figure class="aligncenter size-large is-resized"><img decoding="async" loading="lazy" src="https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/04/image3-3-1024x728.png" alt="" class="wp-image-324" width="570" height="405" srcset="https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/04/image3-3-1024x728.png 1024w, https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/04/image3-3-300x213.png 300w, https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/04/image3-3-768x546.png 768w, https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/04/image3-3.png 1198w" sizes="(max-width: 570px) 100vw, 570px" /></figure></div>



<h3 class="wp-block-heading">Level: Lighting</h3>



<p>This week, we light up the whole level and use color and spot light to emphasize the difference of rooms and highlight task related objects.</p>



<div class="wp-block-image"><figure class="aligncenter size-large is-resized"><img decoding="async" loading="lazy" src="https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/04/unknown-1024x547.png" alt="" class="wp-image-325" width="789" height="421" srcset="https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/04/unknown-1024x547.png 1024w, https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/04/unknown-300x160.png 300w, https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/04/unknown-768x410.png 768w, https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/04/unknown-1536x820.png 1536w, https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/04/unknown-2048x1094.png 2048w" sizes="(max-width: 789px) 100vw, 789px" /></figure></div>



<p>This adjustment in lighting adds more effect of shadows and aims to help the players to navigate though the level.</p>



<h2 class="wp-block-heading">Audio <img src="https://s.w.org/images/core/emoji/14.0.0/72x72/1f3b9.png" alt="🎹" class="wp-smiley" style="height: 1em; max-height: 1em;" /></h2>



<p>This week much of the focus was on polishing existing mechanics and working on UI. To that end the main task for audio was to create unique sounds for each of the tasks that the human needs to complete in order to win the game. These, along with additional UI sounds, are all just simple one shots that can be played so creation and implementation is fairly simple.</p>



<p>The more elusive goal of this week is to work on balancing our current audio and debugging any sound issues that may occur. The audio balancing is done using the real-time mastering feature of FMOD, where each sound event can be edited in the FMOD editor while unity is running the build. This allows sounds to be adjusted in real time while playing, making quick fixes to the audio balance very easy.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://courses.ideate.cmu.edu/53-472/s2022/?feed=rss2&#038;p=322</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Spiral Studios: Parasite – Week 11</title>
		<link>https://courses.ideate.cmu.edu/53-472/s2022/?p=309</link>
					<comments>https://courses.ideate.cmu.edu/53-472/s2022/?p=309#respond</comments>
		
		<dc:creator><![CDATA[Jiaqi Zhang]]></dc:creator>
		<pubDate>Tue, 19 Apr 2022 06:24:11 +0000</pubDate>
				<category><![CDATA[Spiral Studios]]></category>
		<category><![CDATA[Team Posts]]></category>
		<guid isPermaLink="false">https://courses.ideate.cmu.edu/53-472/s2022/?p=309</guid>

					<description><![CDATA[Here comes our Beta! From Alpha version, our team have responded to the feedback we got and fixed game mechanism and add more living elements to our level design. Let&#8217;s [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>Here comes our Beta! From Alpha version, our team have responded to the feedback we got and fixed game mechanism and add more living elements to our level design. Let&#8217;s have a look!</p>



<h2 class="wp-block-heading">Programming <img src="https://s.w.org/images/core/emoji/14.0.0/72x72/2328.png" alt="⌨" class="wp-smiley" style="height: 1em; max-height: 1em;" /></h2>



<h3 class="wp-block-heading">Tasks</h3>



<p>This week required writing the code for visualizing and implementing the new tasks decided on for the final version of the game. We have two types of tasks: </p>



<p>Pickup tasks, where players must pick up an object and place it in a certain location. These tasks were harder to implement since the object needed to visually appear in the hand of the human for both the human player and the other players, so some delicate network programming needed to be done to make sure everything worked correctly even across possessions.</p>



<p>Hold tasks, where players must interact with an object for an extended period of time. These were simple enough to implement using our existing interaction system.</p>



<p>Both tasks were implemented with their own components which integrated with our universal interaction and win condition system. </p>



<div class="wp-block-image is-style-rounded"><figure class="aligncenter size-large is-resized"><img decoding="async" loading="lazy" src="https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/04/image2-2-1024x562.png" alt="" class="wp-image-312" width="849" height="465" srcset="https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/04/image2-2-1024x562.png 1024w, https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/04/image2-2-300x165.png 300w, https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/04/image2-2-768x422.png 768w, https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/04/image2-2.png 1202w" sizes="(max-width: 849px) 100vw, 849px" /></figure></div>



<div class="wp-block-image is-style-rounded"><figure class="aligncenter size-full is-resized"><img decoding="async" loading="lazy" src="https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/04/image3-2.png" alt="" class="wp-image-313" width="720" height="581" srcset="https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/04/image3-2.png 931w, https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/04/image3-2-300x242.png 300w, https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/04/image3-2-768x620.png 768w" sizes="(max-width: 720px) 100vw, 720px" /></figure></div>



<h3 class="wp-block-heading">Visualizations</h3>



<p>In order to help players navigate the tasks I used Quick Outline from the asset store which puts a solid outline around the mesh of its gameobject. These outlines toggle depending on the state of the task, for example the place where players must insert the objects for hold tasks glow only when the player is holding the necessary object.&nbsp;</p>



<p>These helped a lot with player confusion and eliminated any need for a minimap or complex visual navigation system. </p>



<h3 class="wp-block-heading">UI</h3>



<p>A visual task list was also implemented which shows which win conditions are fulfilled for each player. Tasks start as red and turn green as they are fulfilled. Once all tasks are fulfilled, the win screen appears which provides a button that takes the player back to the main menu. </p>



<div class="wp-block-image is-style-default"><figure class="aligncenter size-full"><img decoding="async" loading="lazy" width="910" height="458" src="https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/04/image1-3.png" alt="" class="wp-image-314" srcset="https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/04/image1-3.png 910w, https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/04/image1-3-300x151.png 300w, https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/04/image1-3-768x387.png 768w" sizes="(max-width: 910px) 100vw, 910px" /></figure></div>



<h3 class="wp-block-heading">Bug Fixes</h3>



<p>Heaps of bugs and networking race conditions were also resolved this week. We no longer run into any issues with parasite and player movement and their animations are also networked correctly. A change in the official network animator was required which allowed non-server clients to influence the animation state. </p>



<h2 class="wp-block-heading">Audio <img src="https://s.w.org/images/core/emoji/14.0.0/72x72/1f3b9.png" alt="🎹" class="wp-smiley" style="height: 1em; max-height: 1em;" /></h2>



<p>Let&#8217;s listen to two new music made for the ending of the game!</p>



<figure class="wp-block-audio"><audio controls src="https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/04/BminorEnding.mp3"></audio></figure>



<figure class="wp-block-audio"><audio controls src="https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/04/DminorEnding.mp3"></audio></figure>



<p></p>
]]></content:encoded>
					
					<wfw:commentRss>https://courses.ideate.cmu.edu/53-472/s2022/?feed=rss2&#038;p=309</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		<enclosure url="https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/04/BminorEnding.mp3" length="400195" type="audio/mpeg" />
<enclosure url="https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/04/DminorEnding.mp3" length="400195" type="audio/mpeg" />

			</item>
		<item>
		<title>Spiral Studios: Parasite – Week 10</title>
		<link>https://courses.ideate.cmu.edu/53-472/s2022/?p=261</link>
					<comments>https://courses.ideate.cmu.edu/53-472/s2022/?p=261#respond</comments>
		
		<dc:creator><![CDATA[Jiaqi Zhang]]></dc:creator>
		<pubDate>Tue, 12 Apr 2022 01:02:01 +0000</pubDate>
				<category><![CDATA[Spiral Studios]]></category>
		<category><![CDATA[Team Posts]]></category>
		<guid isPermaLink="false">https://courses.ideate.cmu.edu/53-472/s2022/?p=261</guid>

					<description><![CDATA[We are getting close to Beta! In this busy carnival week, we identified goals for Beta, and made some great progress. Programming ⌨️ This week, we worked on developing a [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>We are getting close to Beta! In this busy carnival week, we identified goals for Beta, and made some great progress.</p>



<h2 class="wp-block-heading">Programming <img src="https://s.w.org/images/core/emoji/14.0.0/72x72/2328.png" alt="⌨" class="wp-smiley" style="height: 1em; max-height: 1em;" /></h2>



<p>This week, we worked on developing a set of abilities for the parasites to use, based on a new mana system. The current planned abilities&nbsp; The parasites will be limited in their capacity to use their abilities, and the aim is to have environmental pickups spread across the map in order to disincentivize the parasites from simply pursuing the human player throughout the whole game.</p>



<p>Changes to the codebase included increasing the abstraction of the ability system, in order to have more reusable code components that interface with the UI and mana system.&nbsp; Displayed below is a screenshot of the mana system and current ability parameters visible within the editor &#8211; the aim is to make sure that the ability system allows us to rapidly prototype for balance by allowing us to fine tune cool downs, durations, and mana costs without having to significantly much around in the code.</p>



<div class="wp-block-image"><figure class="aligncenter size-full is-resized"><img decoding="async" loading="lazy" src="https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/04/image1-1.png" alt="" class="wp-image-263" width="345" height="365" srcset="https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/04/image1-1.png 616w, https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/04/image1-1-283x300.png 283w" sizes="(max-width: 345px) 100vw, 345px" /></figure></div>



<p>Due to the hectic nature of the last week, progress was slower than anticipated. Looking ahead, the aim is to finish implementing these abilities alongside the camera changes from last week by Tuesday and, moving into the next week, integrate the ability system with the HUD in order to start displaying information to the users in a more visually appealing manner.</p>



<h2 class="wp-block-heading">Audio <img src="https://s.w.org/images/core/emoji/14.0.0/72x72/1f3b9.png" alt="🎹" class="wp-smiley" style="height: 1em; max-height: 1em;" /></h2>



<p>This week focused on finishing the music system used in our game. A triggerable ‘rush state’ music has been finished for when one of the players is nearing completion of all of their tasks. The rush state music stays in effect permanently after one player gets a certain number of tasks done, regardless of whether they currently control the human or not. When the player close to completion is in the human the music adapts to add a ticking clock sound to further heighten the sense of urgency that should be felt by all the players at this point.</p>



<figure class="wp-block-audio"><audio controls src="https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/04/RushStateLayer1.mp3"></audio></figure>



<p>Due to the transition into the rush state including an increase in tempo it was a bit difficult to make the beats line up well in FMOD. To solve this we separated the short 2 bar transition into its own audio file that triggers once before starting the rush loop. Our next challenge is creating a satisfying ending that can trigger from anywhere within the rush loop music. This is made especially difficult due to the music modulating through many different tonalities making it difficult to find a smooth harmonic transition that works from any point in the music. One possible solution to this would be to create multiple endings in different keys that can trigger depending on where in the loop the music currently is.</p>



<p>There has also been work done this week on UI sounds such as sounds for our new cool down systems as well as standard menu button press sounds.</p>



<h2 class="wp-block-heading">Art <img src="https://s.w.org/images/core/emoji/14.0.0/72x72/1f58d.png" alt="🖍" class="wp-smiley" style="height: 1em; max-height: 1em;" /></h2>



<h3 class="wp-block-heading">Level Design</h3>



<p>This week my primary focus was finishing the level design and improving the final visual style for the environment.&nbsp;</p>



<h4 class="wp-block-heading"><strong>New Rooms</strong></h4>



<p>Our level as of last week was very hard to navigate since every single corridor and intersection looked the exact same &#8211; I changed that this week by adding in 4 new rooms which should break up the monotony of the level and make it easier to memorize, navigate, and simply make the game more fun.</p>



<div class="wp-block-image is-style-rounded"><figure class="aligncenter size-large"><img decoding="async" loading="lazy" width="1024" height="654" src="https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/04/image3-1024x654.png" alt="" class="wp-image-265" srcset="https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/04/image3-1024x654.png 1024w, https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/04/image3-300x192.png 300w, https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/04/image3-768x491.png 768w, https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/04/image3.png 1064w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure></div>



<p>Our four rooms are:</p>



<ul><li>The Control Room</li></ul>



<div class="wp-block-image is-style-rounded"><figure class="aligncenter size-full is-resized"><img decoding="async" loading="lazy" src="https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/04/image6.png" alt="" class="wp-image-266" width="761" height="629" srcset="https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/04/image6.png 1004w, https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/04/image6-300x248.png 300w, https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/04/image6-768x636.png 768w" sizes="(max-width: 761px) 100vw, 761px" /></figure></div>



<ul><li>The Lab</li></ul>



<div class="wp-block-image is-style-rounded"><figure class="aligncenter size-large is-resized"><img decoding="async" loading="lazy" src="https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/04/image7-1024x728.png" alt="" class="wp-image-267" width="799" height="568" srcset="https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/04/image7-1024x728.png 1024w, https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/04/image7-300x213.png 300w, https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/04/image7-768x546.png 768w, https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/04/image7.png 1109w" sizes="(max-width: 799px) 100vw, 799px" /></figure></div>



<p>The lab will also serve as the new spawn point for all parasites, since they all broke out of the vials in the lab.</p>



<ul id="block-c13290ae-aebd-4e58-8cff-1a2c5ea50a23"><li>The Power Room</li></ul>



<div class="wp-block-image is-style-rounded"><figure class="aligncenter size-large is-resized"><img decoding="async" loading="lazy" src="https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/04/image4-1024x770.png" alt="" class="wp-image-268" width="740" height="555" srcset="https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/04/image4-1024x770.png 1024w, https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/04/image4-300x226.png 300w" sizes="(max-width: 740px) 100vw, 740px" /></figure></div>



<ul><li>And finally a blank room that appears twice to bookend the other corners of the map</li></ul>



<div class="wp-block-image"><figure class="aligncenter size-large is-resized"><img decoding="async" loading="lazy" src="https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/04/image5-1024x368.png" alt="" class="wp-image-269" width="886" height="318" srcset="https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/04/image5-1024x368.png 1024w, https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/04/image5-300x108.png 300w, https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/04/image5-768x276.png 768w, https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/04/image5.png 1210w" sizes="(max-width: 886px) 100vw, 886px" /></figure></div>



<h4 class="wp-block-heading"><strong>Props</strong></h4>



<p>I also built several props we will sprinkle around the map to give it more detail and easier to differentiate various areas.</p>



<div class="wp-block-image"><figure class="aligncenter size-large is-resized"><img decoding="async" loading="lazy" src="https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/04/image2-1024x580.png" alt="" class="wp-image-270" width="786" height="445" srcset="https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/04/image2-1024x580.png 1024w, https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/04/image2-300x170.png 300w, https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/04/image2-768x435.png 768w, https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/04/image2.png 1314w" sizes="(max-width: 786px) 100vw, 786px" /></figure></div>



<h3 class="wp-block-heading">Art Style</h3>



<p>This week we modify the whole color code and art style, make it more sci-fi and more interesting, especially make characters more prominent. We also come up with a guideline for the art stuff to make sure all the new components will follow the same style.</p>



<div class="wp-block-image is-style-rounded"><figure class="aligncenter size-large"><img decoding="async" loading="lazy" width="1024" height="578" src="https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/04/image1-2-1024x578.png" alt="" class="wp-image-271" srcset="https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/04/image1-2-1024x578.png 1024w, https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/04/image1-2-300x169.png 300w, https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/04/image1-2-768x434.png 768w, https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/04/image1-2-1536x868.png 1536w, https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/04/image1-2.png 1999w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure></div>



<div class="wp-block-image"><figure class="aligncenter size-large is-resized"><img decoding="async" loading="lazy" src="https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/04/image3-1-1024x785.png" alt="" class="wp-image-272" width="619" height="474" srcset="https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/04/image3-1-1024x785.png 1024w, https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/04/image3-1-300x230.png 300w, https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/04/image3-1-768x589.png 768w, https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/04/image3-1.png 1076w" sizes="(max-width: 619px) 100vw, 619px" /></figure></div>



<h3 class="wp-block-heading">Animation</h3>



<p>We figured out possible animation for the characters, although they may not be added into our final version of game, I believe it could bring more interesting interaction for the players.</p>



<figure class="wp-block-image size-large"><img decoding="async" loading="lazy" width="1024" height="378" src="https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/04/image6-1-1024x378.png" alt="" class="wp-image-273" srcset="https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/04/image6-1-1024x378.png 1024w, https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/04/image6-1-300x111.png 300w, https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/04/image6-1-768x283.png 768w, https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/04/image6-1-1536x566.png 1536w, https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/04/image6-1.png 1999w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<div class="wp-block-image"><figure class="aligncenter size-large"><img decoding="async" loading="lazy" width="1024" height="437" src="https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/04/image5-1-1024x437.png" alt="" class="wp-image-274" srcset="https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/04/image5-1-1024x437.png 1024w, https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/04/image5-1-300x128.png 300w, https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/04/image5-1-768x328.png 768w, https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/04/image5-1-1536x656.png 1536w, https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/04/image5-1.png 1999w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure></div>



<div class="wp-block-image"><figure class="aligncenter size-large"><img decoding="async" loading="lazy" width="1024" height="447" src="https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/04/image2-1-1024x447.png" alt="" class="wp-image-275" srcset="https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/04/image2-1-1024x447.png 1024w, https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/04/image2-1-300x131.png 300w, https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/04/image2-1-768x335.png 768w, https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/04/image2-1-1536x670.png 1536w, https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/04/image2-1.png 1770w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure></div>



<h3 class="wp-block-heading">Character</h3>



<p>We modified the human characters to make it match the style of the parasites, and since we reorganized our storyline, I differential the human character by adding some details on the character.</p>



<figure class="wp-block-image size-large"><img decoding="async" loading="lazy" width="1003" height="1024" src="https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/04/image4-1-1003x1024.png" alt="" class="wp-image-276" srcset="https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/04/image4-1-1003x1024.png 1003w, https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/04/image4-1-294x300.png 294w, https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/04/image4-1-768x784.png 768w, https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/04/image4-1.png 1034w" sizes="(max-width: 1003px) 100vw, 1003px" /></figure>



<p></p>
]]></content:encoded>
					
					<wfw:commentRss>https://courses.ideate.cmu.edu/53-472/s2022/?feed=rss2&#038;p=261</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		<enclosure url="https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/04/RushStateLayer1.mp3" length="1812897" type="audio/mpeg" />

			</item>
		<item>
		<title>Spiral Studios: Parasite &#8211; Week 9</title>
		<link>https://courses.ideate.cmu.edu/53-472/s2022/?p=238</link>
					<comments>https://courses.ideate.cmu.edu/53-472/s2022/?p=238#respond</comments>
		
		<dc:creator><![CDATA[Jiaqi Zhang]]></dc:creator>
		<pubDate>Sat, 02 Apr 2022 07:04:03 +0000</pubDate>
				<category><![CDATA[Spiral Studios]]></category>
		<category><![CDATA[Team Posts]]></category>
		<guid isPermaLink="false">https://courses.ideate.cmu.edu/53-472/s2022/?p=238</guid>

					<description><![CDATA[After getting feedback from Alpha, members of Spiral Studio did reflection on our production progress and set up new working sessions. This week, we focused on fixing existing bugs and [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>After getting feedback from Alpha, members of Spiral Studio did reflection on our production progress and set up new working sessions. This week, we focused on fixing existing bugs and prepared for new features that might make the gameplay more fun! </p>



<h2 class="wp-block-heading">Programming <img src="https://s.w.org/images/core/emoji/14.0.0/72x72/2328.png" alt="⌨" class="wp-smiley" style="height: 1em; max-height: 1em;" /></h2>



<h3 class="wp-block-heading">Bug Fixes</h3>



<p class="has-small-font-size">Written by Thomas</p>



<p class="has-regular-font-size">The first half of the week I focused on addressing the bugs and lack of polish that we ran into during alpha affecting the parasite controller and game state. There were several issues where information was not properly being communicated over the network, in particular the task completion (and thus the win state) and animation state for the human player was only replicating to the server. Some of those issues had to do with not fully understanding the networking library and some were just straightforward bugs in my code, but they are all addressed now.</p>



<p>Another annoying bug was a camera issue when the human player would run too close to the wall and could see past the environment mesh, giving them a view of the skybox and the entire level from the outside. This was fixed by simply reducing the near clipping plane for the main human player camera.</p>



<p>The biggest set of bugs came from the parasite controller. We took a step back and reassessed the design of the parasite controller and decided the cost of allowing the player to run across the walls and ceilings was too great for the gameplay it added. I rebuilt the controller so that now the parasite will simply stick to any surface it touches that isn’t the ground plane, and we are planning a “grab” feature which will require the player to pass a skill check (by pressing a key right before they hit the surface) to successfully attach to a surface. Now we no longer run into issues with the parasite passing through the environment collider or flying around when touching a corner or weird angle.</p>



<h3 class="wp-block-heading">Viewmodel</h3>



<p class="has-small-font-size">Written by Thomas</p>



<p>So far the human player has had to deal with looking from inside their own body, which is not a fantastic experience. So I modeled a set of astronaut hands and some basic idle animations to give them something better to look at.&nbsp;</p>



<div class="wp-block-image is-style-rounded"><figure class="aligncenter size-full is-resized"><img decoding="async" loading="lazy" src="https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/04/Picture1.png" alt="" class="wp-image-251" width="529" height="332" srcset="https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/04/Picture1.png 433w, https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/04/Picture1-300x188.png 300w" sizes="(max-width: 529px) 100vw, 529px" /></figure></div>



<p>In addition to the basic idle animation, there is a script attached to the viewmodel which will make it bob and move with mouse and WASD movement, so it isn’t just hard locked to the camera.</p>



<figure class="wp-block-video aligncenter"><video controls src="https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/04/viewmodel-recording.mov"></video></figure>



<h3 class="wp-block-heading">Cinemachine Human and Parasite Changes</h3>



<p class="has-small-font-size">Written by Richard</p>



<p>Since the majority of the players in a lobby would be parasites, I worked on making sure piloting them would feel as intuitive as possible. Since the human player and the parasites would have different point of views, I decided to use Cinemachine in order to be able to set up different virtual cameras, and have them blend between each other during cutscenes (such as possession).</p>



<div class="wp-block-image"><figure class="aligncenter size-full"><img decoding="async" loading="lazy" width="468" height="204" src="https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/04/Picture1-1.png" alt="" class="wp-image-252" srcset="https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/04/Picture1-1.png 468w, https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/04/Picture1-1-300x131.png 300w" sizes="(max-width: 468px) 100vw, 468px" /></figure></div>



<p>Getting the parasite camera feeling nice took a lot of fiddling with numbers, including a 20 minute stretch where I was trying to get the camera to not follow the parasite directly (Cinemachine is a little finicky, especially with a target this small).</p>



<p>Final adjustments to the camera rig values, plus some Perlin noise on the middle rig to simulate a moving camera gives us this as the current camera view for the Parasites (some fiddling with camera sensitivity still required):</p>



<figure class="wp-block-video aligncenter"><video controls src="https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/04/Week-10-Vid-1.mov"></video></figure>



<p>As for the human, since they are in a FPS POV, their changes aren&#8217;t as drastic &#8211; for now, I set their culling mask to ignore their own model until we add in the view model for their hands:</p>



<figure class="wp-block-video aligncenter"><video controls src="https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/04/Week-10-Vid-2.mov"></video></figure>



<p>Blending between parasite and human cameras during possession and cleaning up the parasite camera movement during their jumps and the like is up next.</p>



<h2 class="wp-block-heading">Audio <img src="https://s.w.org/images/core/emoji/14.0.0/72x72/1f3b9.png" alt="🎹" class="wp-smiley" style="height: 1em; max-height: 1em;" /></h2>



<p class="has-small-font-size">Written by Ian</p>



<p>This week the main focus of audio development has been the expansion of our current music system.</p>



<p>Our previous plan for the “rush state” music was for it to act as a oneshot audio that would correctly end with the end of the level. After further considering the win conditions of the game, we instead decided it would be more appropriate to write the music as a loop. This way it can trigger when a player is nearing completion of their tasks and not rely on a set level timer countdown. We plan to write a separate “ending” oneshot that can be triggered to conclude the rush state music when the game ends.</p>



<h2 class="wp-block-heading">Art <img src="https://s.w.org/images/core/emoji/14.0.0/72x72/1f58d.png" alt="🖍" class="wp-smiley" style="height: 1em; max-height: 1em;" /></h2>



<p class="has-small-font-size">Written by Jiaqi</p>



<p>Based on the feedback we received from Alpha, we are preparing for coming changes on Art of the game that aims to keep the style of character, level design and UI consistent, which communicates with the players about the theme of the game. </p>



<p>We are looking for inspiration in several topics:</p>



<ul><li>How to make the environment more distinguishable and interesting</li><li>Interactable objects for Human tasks and Parasite mana/energy system</li><li>Add more rooms for players to explore</li><li>Color code of the game</li><li>UI elements for Human and Parasite in gameplay</li></ul>



<p>We believe a bunch of new changes will happen next week! Come back to our blog and check them out!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://courses.ideate.cmu.edu/53-472/s2022/?feed=rss2&#038;p=238</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		<enclosure url="https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/04/viewmodel-recording.mov" length="6671901" type="video/quicktime" />
<enclosure url="https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/04/Week-10-Vid-1.mov" length="13816261" type="video/quicktime" />
<enclosure url="https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/04/Week-10-Vid-2.mov" length="9236073" type="video/quicktime" />

			</item>
		<item>
		<title>Parasite &#8211; Alpha</title>
		<link>https://courses.ideate.cmu.edu/53-472/s2022/?p=212</link>
					<comments>https://courses.ideate.cmu.edu/53-472/s2022/?p=212#respond</comments>
		
		<dc:creator><![CDATA[Thomas Carey]]></dc:creator>
		<pubDate>Fri, 25 Mar 2022 18:01:53 +0000</pubDate>
				<category><![CDATA[Spiral Studios]]></category>
		<category><![CDATA[Team Posts]]></category>
		<guid isPermaLink="false">https://courses.ideate.cmu.edu/53-472/s2022/?p=212</guid>

					<description><![CDATA[Alpha has arrived &#8211; we&#8217;ve completed our core game loop and have moved on primarily to filling out content, art, and upgrading the mechanics. Programming Remote Server The remote server [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>Alpha has arrived &#8211; we&#8217;ve completed our core game loop and have moved on primarily to filling out content, art, and upgrading the mechanics.</p>



<h2 class="wp-block-heading">Programming</h2>



<h3 class="wp-block-heading">Remote Server</h3>



<p>The remote server build and setting up remote multiplayer is working smoothly now, we no longer have to debug server issues and pretty much any iteration of the game build can get copied up to the remote server and played without issues.</p>



<h3 class="wp-block-heading">Human Tasks</h3>



<p>For alpha we wanted to build out the first major task for the human players to interact with. Building the DNA Synthesis minigame layed a lot of foundational deisgn work in terms of understanding the limitations of what we would be doing with our minigames, what is possible using the UI, and the time constraints required to make one of these. </p>



<figure class="wp-block-image size-large"><img decoding="async" loading="lazy" width="1024" height="444" src="https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/03/Screen_Shot_2022-03-25_at_1.15.19_PM-1024x444.png" alt="" class="wp-image-214" srcset="https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/03/Screen_Shot_2022-03-25_at_1.15.19_PM-1024x444.png 1024w, https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/03/Screen_Shot_2022-03-25_at_1.15.19_PM-300x130.png 300w, https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/03/Screen_Shot_2022-03-25_at_1.15.19_PM-768x333.png 768w, https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/03/Screen_Shot_2022-03-25_at_1.15.19_PM.png 1342w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>The game is pretty simple &#8211; players must match a DNA base pair sequence to its corresponding match. There are three rounds, starting with strings of length 3 going up to 5 characters. Clicking the correct answer progresses you one stage forward, and failing sets you back to the start. </p>



<figure class="wp-block-video"><video controls src="https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/03/Screen_Recording_2022-03-25_at_1.18.00_PM.mov"></video></figure>



<p>The process of building out the level progressed as such: </p>



<p>1. Program the base functionality of the game (generating the DNA sequences and fake solutions) (approximately 2 hours) </p>



<p>2. Design the prefab, with its corresponding UI elements and planned interface. (approx. 1 hour) </p>



<p>3. Link up the functionality to the UI, filling out the additional features that come along with linking everything up, such as failing back to the beginning, properly updating the UI, etc. (approx 3 hours) </p>



<p>4. Debugging (approx ?? so far another 2 hours) There are still a couple of bugs with the tasks left to iron out, which should hopefully be one time issues that don&#8217;t add development time to future tasks, but future games of roughly this level of complexity will likely take about the same amount of time (subtracting time due to increased familiarity, adding time back anyways just because game dev is hard like that) of about 5-7 hours.</p>



<h2 class="wp-block-heading">Visuals</h2>



<h3 class="wp-block-heading">Level Assets</h3>



<p>We added new 3d assets for the level along with some UV mapping for pretty baked global illumination.</p>



<figure class="wp-block-image is-resized"><img decoding="async" loading="lazy" src="https://cdn.discordapp.com/attachments/935559386338836553/956666811544383498/unknown.png" alt="" width="561" height="423" /></figure>



<h3 class="wp-block-heading">Animations</h3>



<p>A whole slew of new models and animations were added for the parasite and human player models. </p>



<figure class="wp-block-image size-full"><img decoding="async" loading="lazy" width="413" height="323" src="https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/03/image-6.png" alt="" class="wp-image-216" srcset="https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/03/image-6.png 413w, https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/03/image-6-300x235.png 300w" sizes="(max-width: 413px) 100vw, 413px" /></figure>



<figure class="wp-block-image size-full"><img decoding="async" loading="lazy" width="455" height="387" src="https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/03/image-7.png" alt="" class="wp-image-217" srcset="https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/03/image-7.png 455w, https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/03/image-7-300x255.png 300w" sizes="(max-width: 455px) 100vw, 455px" /></figure>



<h3 class="wp-block-heading">Player Identification</h3>



<p>Each player has an assigned color attached to their playermodel so they can be recognized at a glance &#8211; they also have usernames over their heads that match the username they chose on the main menu.</p>



<figure class="wp-block-image size-full"><img decoding="async" loading="lazy" width="412" height="424" src="https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/03/image-8.png" alt="" class="wp-image-218" srcset="https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/03/image-8.png 412w, https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/03/image-8-292x300.png 292w" sizes="(max-width: 412px) 100vw, 412px" /></figure>



<h3 class="wp-block-heading">UI</h3>



<p>This week we also did some 2D design for UI. Based on the game concept, the sci-fi style is the main direction we went for. Also, it should not be too heavy in order to fit our player characters. Geometry shapes, parallel lines and the use of 45 degree angles are the building blocks for the interface. To combine elements into UI, we play with effects like overlay, floating, repeating and transparency. The font for button and titles are futuristic.</p>



<figure class="wp-block-image"><img decoding="async" src="https://cdn.discordapp.com/attachments/943282944108273714/956975094054395954/Screen_Shot_2022-03-25_at_1.39.31_PM.png" alt="" /></figure>



<h3 class="wp-block-heading">Audio</h3>



<p>On the audio side, this week was mainly about implementing all of the core SFX and music. Using fmod, there are slight randomizations for each of the core sounds including footsteps, various parasite impacts, and all the sounds that the parasites make when performing actions. By slightly altering the pitch, volume, or sometimes combinations of sounds, the audio of the environment as a whole will hopefully feel more alive and less predictable. We have also added an approximately 2 minute long looping soundtrack for the background of the level. Musically, it should sound mischievous and fun without being threatening. The timbres used are primarily orchestral to evoke a similar feeling to that of old cartoon animations. Synth elements are mixed in to ground these orchestral sounds into our sci-fi environment.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://courses.ideate.cmu.edu/53-472/s2022/?feed=rss2&#038;p=212</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		<enclosure url="https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/03/Screen_Recording_2022-03-25_at_1.18.00_PM.mov" length="496379" type="video/quicktime" />

			</item>
		<item>
		<title>Parasite &#8211; Week 7</title>
		<link>https://courses.ideate.cmu.edu/53-472/s2022/?p=153</link>
					<comments>https://courses.ideate.cmu.edu/53-472/s2022/?p=153#respond</comments>
		
		<dc:creator><![CDATA[Thomas Carey]]></dc:creator>
		<pubDate>Fri, 18 Mar 2022 16:12:53 +0000</pubDate>
				<category><![CDATA[Spiral Studios]]></category>
		<category><![CDATA[Team Posts]]></category>
		<guid isPermaLink="false">https://courses.ideate.cmu.edu/53-472/s2022/?p=153</guid>

					<description><![CDATA[We finally made it &#8211; a complete game loop! This week was another big batch of technical additions and improvements. Programming Bug Fixes There were a ton of miscellaneous bugs [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>We finally made it &#8211; a complete game loop! This week was another big batch of technical additions and improvements. </p>



<h2 class="wp-block-heading">Programming</h2>



<h3 class="wp-block-heading">Bug Fixes</h3>



<p>There were a ton of miscellaneous bugs and issues that have been fixed &#8211; the parasite jump motion and physics has been made a lot more reliable, and network issues with duplicate objects have finally been ironed out. </p>



<h3 class="wp-block-heading">Win Conditions</h3>



<figure class="wp-block-video"><video controls src="https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/03/Screen_Recording_2022-03-18_at_11.39.42_AM.mov"></video></figure>



<p>We added a universal game-end state that is activated when all local and global conditions are fulfilled for the current human player. The UI doesn&#8217;t exist yet but now we know the system works and can start iterating on interesting tasks.</p>



<h3 class="wp-block-heading">Basic Tasks &#8211; Richard</h3>



<p>Designing the tasks for the human player to accomplish while running around the spaceship is key to making sure the player has goals they want to accomplish while they&#8217;re in the hot seat &#8211; and doing them should give the other players time to potentially hijack the player. </p>



<p>I spent sometime making up some basic wall panels to test that the conditions work for the human player (pardon the lighting): &#8211; After making sure that works, I moved on to more design work &#8211; the goal is for these games to be instantiable, so they have to be able to dropped into a level and work out of the box. Furthermore, &#8211; they should be simple enough that the only necessary RPC&#8217;s should be task failure/completion &#8211; if the player gets hijacked, they should be interrupted on the spot and the game/task gracefully close &#8211; they should varied enough to not get tedious. The current goal is to have a mix of more mundane tasks that might just involve standing in one spot (something like <a rel="noreferrer noopener" href="https://www.youtube.com/watch?v=yRCoQgUNTxk" target="_blank">https://www.youtube.com/watch?v=yRCoQgUNTxk</a>) survivor gameplay but for nowhere near as long), and others might be more involved, such as the minigames in Among Us or the lockpicking from the Elder Scolls games. Implementing a game inside of a game presents an interesting challenge to tackle in terms of managing game states inside of another game, but hopefully as long as we keep the games simple it shouldn&#8217;t be difficult to implement. I&#8217;m making headway into a simple DNA matching game where the player is presented with a short DNA sequence and is told to pick the right match out of 3 options right now to lay the foundation for more games in the future.</p>



<h3 class="wp-block-heading">Level Components</h3>



<p>The level components have been fully integrated into the prefab system &#8211; now all we need to do to make the level look nicer is replace the meshes on these components. </p>



<figure class="wp-block-image size-full"><img decoding="async" loading="lazy" width="568" height="390" src="https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/03/image-4.png" alt="" class="wp-image-161" srcset="https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/03/image-4.png 568w, https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/03/image-4-300x206.png 300w" sizes="(max-width: 568px) 100vw, 568px" /></figure>



<h3 class="wp-block-heading">Parasite Jump UI</h3>



<p>We have a line renderer component in the works which generates an arc which shows the player their exact trajectory they would follow with a jump in a specific direction and specific power. </p>



<h2 class="wp-block-heading">Sound</h2>



<p>Being able to properly iterate on sound has been difficult so far since the fundamental game loop has still been coming together, so this is something that will expand a lot more once we pass alpha and start much more vigorously play testing.</p>



<p>But in the meantime &#8211; here&#8217;s some cool background music Ian has put together</p>



<figure class="wp-block-audio"><audio controls src="https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/03/ParasiteBgmSample.mp3"></audio></figure>



<h2 class="wp-block-heading">Art</h2>



<p>We&#8217;ve integrated the latest parasite model into the game &#8211; its quite fun to see it bounce around after the jump &#8211; I&#8217;m personally really looking forward to getting a proper jumping/falling animation in for it. </p>



<figure class="wp-block-image size-full"><img decoding="async" loading="lazy" width="751" height="480" src="https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/03/image-5.png" alt="" class="wp-image-164" srcset="https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/03/image-5.png 751w, https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/03/image-5-300x192.png 300w" sizes="(max-width: 751px) 100vw, 751px" /></figure>
]]></content:encoded>
					
					<wfw:commentRss>https://courses.ideate.cmu.edu/53-472/s2022/?feed=rss2&#038;p=153</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		<enclosure url="https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/03/Screen_Recording_2022-03-18_at_11.39.42_AM.mov" length="1103473" type="video/quicktime" />
<enclosure url="https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/03/ParasiteBgmSample.mp3" length="1400640" type="audio/mpeg" />

			</item>
		<item>
		<title>Parasite &#8211; Week 6</title>
		<link>https://courses.ideate.cmu.edu/53-472/s2022/?p=135</link>
					<comments>https://courses.ideate.cmu.edu/53-472/s2022/?p=135#respond</comments>
		
		<dc:creator><![CDATA[Thomas Carey]]></dc:creator>
		<pubDate>Fri, 04 Mar 2022 20:42:35 +0000</pubDate>
				<category><![CDATA[Spiral Studios]]></category>
		<category><![CDATA[Team Posts]]></category>
		<guid isPermaLink="false">https://courses.ideate.cmu.edu/53-472/s2022/?p=135</guid>

					<description><![CDATA[This week was another heavy tech week with a lot more success. We finished working out the remaining bugs in the possession system, completed the parasite controls including walking up [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>This week was another heavy tech week with a lot more success. We finished working out the remaining bugs in the possession system, completed the parasite controls including walking up and jumping from all surfaces, and have a visualization of the jump arc in the works. </p>



<h2 class="wp-block-heading">Programming</h2>



<h3 class="wp-block-heading">Possession</h3>



<p>This week was spent squashing some bugs that were left over from our earlier sprint to get to a playtestable state. The following describes an overview of bugs we tackled in getting possession working:</p>



<p>&#8211; <strong>Camera wouldn&#8217;t update/player wouldn&#8217;t move</strong>: our current implementation of the human is akin to that of a GTA5 car that the parasite players hop into &#8211; once you get in the car, you kick out anyone inside. However, this requires updating a host of parameters, such as disabling/reenabling certain scripts, making sure the camera is properly disabled so we don&#8217;t have multiple cameras per client, and reenabling turning on the proper prefab.<br></p>



<figure class="wp-block-image is-resized"><img decoding="async" loading="lazy" src="https://cdn.discordapp.com/attachments/943282944108273714/949311627516313651/Screen_Shot_2022-03-04_at_9.04.35_AM.png" alt="" width="351" height="395" /></figure>



<p></p>



<p>&#8211; <strong>One time possession bug</strong>: a bug that took me an embarrassingly long amount of time to fix. Basically, possession would work a single time and then fail &#8211; instead of slotting someone new into the <s>mech</s> human, it would delete the human and dump the parasite on the floor. After some misleading errors lead to thinking that it was a nasty race condition between receiving the possession message and deleting the prefab, I did the usual and placed Debug.Log everywhere, and lo and behold: [Image 2 here] We keep a dictionary with the prefab status of our players, and we never actually set the human back into a parasite when performing possession. The actual fix was a single line (the last one).</p>



<figure class="wp-block-image"><img decoding="async" src="https://cdn.discordapp.com/attachments/943282944108273714/949311627721850920/Screen_Shot_2022-03-03_at_7.59.59_PM.png" alt="" /></figure>



<p>Up next is getting tasks working for the individual and global objectives. The current aim is to have one global objective and one individual objective per player lead to a win state &#8211; this should allow us to build a framework for adding future tasks and objectives, whilst also allowing us to test our win states.</p>



<h3 class="wp-block-heading">Parasite Controls</h3>



<p>We wanted the parasite to be able to walk on walls and ceilings in order to maximize their ability to hide and surprise the human player. We managed to get a system working fairly well that augments the motion of the parasite (when not physically ragdolled) to be in the tangent space of the mesh it is sitting on, letting us slide along all surfaces at all angles. </p>



<figure class="wp-block-image size-large"><img decoding="async" loading="lazy" width="1024" height="568" src="https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/03/image-1024x568.png" alt="" class="wp-image-136" srcset="https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/03/image-1024x568.png 1024w, https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/03/image-300x166.png 300w, https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/03/image-768x426.png 768w, https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/03/image.png 1431w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<h2 class="wp-block-heading">Art/Characters</h2>



<p>Our next big step is finishing up the character models and players</p>



<figure class="wp-block-image size-full"><img decoding="async" loading="lazy" width="978" height="907" src="https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/03/image-1.png" alt="" class="wp-image-137" srcset="https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/03/image-1.png 978w, https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/03/image-1-300x278.png 300w, https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/03/image-1-768x712.png 768w" sizes="(max-width: 978px) 100vw, 978px" /></figure>



<p>We have a viewmodel (the first person perspective of the baseball bat arms and animations) and a ragdoll model for the parasite in the works, but they aren&#8217;t ready to show yet. </p>



<h2 class="wp-block-heading">Level Design</h2>



<p>We&#8217;ve added more props to the levels which by next update should let us replace our basic demo level. We have lights, terminals, and more physics props such as phones and desks. </p>



<h2 class="wp-block-heading">Game Mechanics</h2>



<p>We&#8217;ve created a generic interaction and &#8220;Win Condition&#8221; system which lets us arbitrarily place interactable tasks for the human player to complete, as well as an option to make a task &#8220;Global&#8221; or &#8220;Individual&#8221; depending on who needs to complete the task in order to win. </p>



<figure class="wp-block-image size-large"><img decoding="async" loading="lazy" width="1024" height="575" src="https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/03/image-2-1024x575.png" alt="" class="wp-image-138" srcset="https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/03/image-2-1024x575.png 1024w, https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/03/image-2-300x168.png 300w, https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/03/image-2-768x431.png 768w, https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/03/image-2.png 1395w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
]]></content:encoded>
					
					<wfw:commentRss>https://courses.ideate.cmu.edu/53-472/s2022/?feed=rss2&#038;p=135</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Parasite &#8211; Week 5</title>
		<link>https://courses.ideate.cmu.edu/53-472/s2022/?p=126</link>
					<comments>https://courses.ideate.cmu.edu/53-472/s2022/?p=126#respond</comments>
		
		<dc:creator><![CDATA[Thomas Carey]]></dc:creator>
		<pubDate>Tue, 01 Mar 2022 02:51:59 +0000</pubDate>
				<category><![CDATA[Spiral Studios]]></category>
		<category><![CDATA[Team Posts]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<guid isPermaLink="false">https://courses.ideate.cmu.edu/53-472/s2022/?p=126</guid>

					<description><![CDATA[This last week worked primarily on tech. We are looking to sprint towards a play-testable build as quickly as possible, since our core loop is pretty simple and should be [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>This last week worked primarily on tech. We are looking to sprint towards a play-testable build as quickly as possible, since our core loop is pretty simple and should be relatively easy to iterate on. Unfortunately, tech is hard, especially networked physics tech so it took some time but now we are in a state where all of the core mechanics are in and just need to be iterated on.</p>



<h2 class="wp-block-heading">Parasite</h2>



<figure class="wp-block-image size-large"><img decoding="async" loading="lazy" width="1024" height="523" src="https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/02/image-5-1024x523.png" alt="" class="wp-image-127" srcset="https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/02/image-5-1024x523.png 1024w, https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/02/image-5-300x153.png 300w, https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/02/image-5-768x392.png 768w, https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/02/image-5-1536x785.png 1536w, https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/02/image-5.png 1902w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>The parasite controller got a UI makeover to give players feedback on their jump strength, and the network code for their physics and feedback was fully implemented.</p>



<h2 class="wp-block-heading">Human</h2>



<figure class="wp-block-image size-large"><img decoding="async" loading="lazy" width="1024" height="576" src="https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/02/image-6-1024x576.png" alt="" class="wp-image-128" srcset="https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/02/image-6-1024x576.png 1024w, https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/02/image-6-300x169.png 300w, https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/02/image-6-768x432.png 768w, https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/02/image-6.png 1409w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>The Human also got networking fully implemented, now fully affecting the parasites physically when they hit them, as well as affecting non-player physics objects when they hit them with the bat. </p>



<h2 class="wp-block-heading">Possession</h2>



<figure class="wp-block-image size-full"><img decoding="async" loading="lazy" width="557" height="707" src="https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/02/image-7.png" alt="" class="wp-image-129" srcset="https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/02/image-7.png 557w, https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/02/image-7-236x300.png 236w" sizes="(max-width: 557px) 100vw, 557px" /></figure>



<p>Possession also need to be networked, which was done this week. The possession is now a global rpc which is triggered when the human&#8217;s face collider intersects with a parasite. This is now all hooked in with our GameManager singleton, so we can customize networked effects and announcements when a possession takes place. We have a full UI announcement system in the works to announce to players when global state changes.</p>



<p></p>



<p>Overall, tech moved forward a lot this week, but it was a lot of first drafts. We are now in a state where we can iterate and test and we have a lot of iterating and testing ahead of us. </p>



<h2 class="wp-block-heading">Level Design</h2>



<p>The basic level got a makeover this week, now featuring plug-and-play maze sections that we can use to build whatever level structure we want. </p>



<figure class="wp-block-image size-large"><img decoding="async" loading="lazy" width="1024" height="563" src="https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/02/image-8-1024x563.png" alt="" class="wp-image-130" srcset="https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/02/image-8-1024x563.png 1024w, https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/02/image-8-300x165.png 300w, https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/02/image-8-768x423.png 768w, https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/02/image-8.png 1394w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<figure class="wp-block-image size-large"><img decoding="async" loading="lazy" width="1024" height="597" src="https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/02/image-9-1024x597.png" alt="" class="wp-image-131" srcset="https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/02/image-9-1024x597.png 1024w, https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/02/image-9-300x175.png 300w, https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/02/image-9-768x448.png 768w, https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/02/image-9-1536x896.png 1536w, https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/02/image-9.png 1656w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<h2 class="wp-block-heading">Props</h2>



<p>We built a few basic props to place around the level to give it more interesting physics moments and liven up the otherwise blank initial design.</p>



<figure class="wp-block-image size-large"><img decoding="async" loading="lazy" width="1024" height="685" src="https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/02/image-10-1024x685.png" alt="" class="wp-image-132" srcset="https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/02/image-10-1024x685.png 1024w, https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/02/image-10-300x201.png 300w, https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/02/image-10-768x514.png 768w, https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/02/image-10.png 1210w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<figure class="wp-block-image size-large"><img decoding="async" loading="lazy" width="1024" height="487" src="https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/02/image-11-1024x487.png" alt="" class="wp-image-133" srcset="https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/02/image-11-1024x487.png 1024w, https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/02/image-11-300x143.png 300w, https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/02/image-11-768x366.png 768w, https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/02/image-11.png 1267w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<h2 class="wp-block-heading">Characters</h2>



<p>More progress on 3d modeling the human player, along with some mixamo work to get the rig and animation workflow started. </p>



<figure class="wp-block-image"><img decoding="async" src="https://cdn.discordapp.com/attachments/936837111208890388/946268327452504124/17891645678334_.pic_hd.jpg" alt="" /></figure>



<p></p>
]]></content:encoded>
					
					<wfw:commentRss>https://courses.ideate.cmu.edu/53-472/s2022/?feed=rss2&#038;p=126</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Prototype &#8211; Parasite</title>
		<link>https://courses.ideate.cmu.edu/53-472/s2022/?p=67</link>
					<comments>https://courses.ideate.cmu.edu/53-472/s2022/?p=67#respond</comments>
		
		<dc:creator><![CDATA[Thomas Carey]]></dc:creator>
		<pubDate>Fri, 18 Feb 2022 18:12:07 +0000</pubDate>
				<category><![CDATA[Spiral Studios]]></category>
		<category><![CDATA[Team Posts]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<guid isPermaLink="false">https://courses.ideate.cmu.edu/53-472/s2022/?p=67</guid>

					<description><![CDATA[This past week we refined a lot of the MVP core mechanics and decided on basic designs for the human player and parasite players. We built a prototype for both [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>This past week we refined a lot of the MVP core mechanics and decided on basic designs for the human player and parasite players. We built a prototype for both the human and parasite players, put together some mockups for the environment, and made a collection of basic sounds for the MVP. </p>



<h2 class="wp-block-heading" id="design">Design</h2>



<p>This week we refined the details of our gameplay and decided on a solid MVP which will likely evolve over the semester. </p>



<p>Basic Gameplay:</p>



<p>The Human player, assigned at random in the beginning, has traditional First Person controls, and wields a baseball bat that they use to defend themselves from the oncoming parasites. </p>



<p>The Human must prevent the parasites from jumping into their broken helmet, if they fail to do so the parasite will swap roles with the Human and thus has the ability to win the game. Only the human can fulfill the win state (currently just getting to a goal position). After a swap the human has some invulnerability.</p>



<p>The parasite has the ability to walk on any surface and can launch themselves forward as a ragdoll in an attempt to land in the helmet. </p>



<h2 class="wp-block-heading" id="in-engine-work">In-Engine Work</h2>



<p>This week we worked a lot on the basic programming structures and library which will manage game state and hopefully set a good foundation for future work and yet-to-be planned mechanics. </p>



<p>Dynamic Lobby</p>



<figure class="wp-block-image size-large"><img decoding="async" loading="lazy" width="1024" height="520" src="https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/02/image-1024x520.png" alt="" class="wp-image-69" srcset="https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/02/image-1024x520.png 1024w, https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/02/image-300x152.png 300w, https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/02/image-768x390.png 768w, https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/02/image.png 1529w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>We have finished the dynamic lobby which lets players set their username and join a lobby before starting the game. This involves managing a dynamic list of joined users that is used with the game manager which assigns initial player roles. </p>



<p>Game Manager</p>



<p>The Game Manager is a core object which manages the active game state and handles things like tracking the current Human player, guaranteeing temporarily invulnerability, and deploys necessary messages to all clients. </p>



<p>Mockup Level</p>



<figure class="wp-block-image size-large"><img decoding="async" loading="lazy" width="1024" height="526" src="https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/02/image-1-1024x526.png" alt="" class="wp-image-70" srcset="https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/02/image-1-1024x526.png 1024w, https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/02/image-1-300x154.png 300w, https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/02/image-1-768x394.png 768w, https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/02/image-1.png 1509w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>A basic mockup level with simple lighting, several spawns, and a &#8216;goal zone&#8217; at the opposite end.</p>



<h2 class="wp-block-heading" id="human">Human </h2>



<figure class="wp-block-image size-large"><img decoding="async" loading="lazy" width="1024" height="525" src="https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/02/image-2-1024x525.png" alt="" class="wp-image-71" srcset="https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/02/image-2-1024x525.png 1024w, https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/02/image-2-300x154.png 300w, https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/02/image-2-768x394.png 768w, https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/02/image-2.png 1531w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>We have a basic humanoid model and swing animation we pulled from mixamo, as well as a simple raycast which scans where the player &#8220;hit&#8221; their bat and an effect to show where the contact point is. </p>



<h2 class="wp-block-heading" id="parasite">Parasite</h2>



<p>We have a basic 3rd person parasite controller which enables and disables a rigidbody when they launch so they can roll around, as well as a custom camera controller so that players can maintain a view of their target regardless of their orientation. After a few seconds of little movement (they&#8217;ve physically come to rest), the controller resets back to the normal controller. </p>



<figure class="wp-block-image size-large"><img decoding="async" loading="lazy" width="1024" height="493" src="https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/02/image-3-1024x493.png" alt="" class="wp-image-74" srcset="https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/02/image-3-1024x493.png 1024w, https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/02/image-3-300x144.png 300w, https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/02/image-3-768x370.png 768w, https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/02/image-3-1536x740.png 1536w, https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/02/image-3.png 1545w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<h2 class="wp-block-heading" id="audio">Audio</h2>



<p>We have several basic audio effects built but yet to be implemented, here are a few samples:</p>



<figure class="wp-block-audio"><audio controls src="https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/02/AmbientSample.mp3"></audio><figcaption>Ambient Background</figcaption></figure>



<figure class="wp-block-audio"><audio controls src="https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/02/Parasite_Jump_1.wav"></audio><figcaption>Jump Effect</figcaption></figure>



<h2 class="wp-block-heading" id="visuals">Visuals</h2>



<p>Some mockups for the final look and feel of the space facility: </p>



<figure class="wp-block-image size-full"><img decoding="async" loading="lazy" width="956" height="504" src="https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/02/image-4.png" alt="" class="wp-image-77" srcset="https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/02/image-4.png 956w, https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/02/image-4-300x158.png 300w, https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/02/image-4-768x405.png 768w" sizes="(max-width: 956px) 100vw, 956px" /></figure>



<p>A simple hallway in the facility.</p>



<p>Some mockups for character look and feel:</p>



<figure class="wp-block-image"><img decoding="async" src="https://cdn.discordapp.com/attachments/936837111208890388/944266835690422312/unknown.png" alt="" /></figure>



<h2 class="wp-block-heading" id="challenges-and-successes">Challenges and Successes</h2>



<p>The individual player controllers feel really good, and the basic gameplay vision is coming together.</p>



<p>Networking has made tough work tougher and integrating everything together for a working prototype took much longer and was less successful than expected. Thankfully its just a matter of spending more engineering time on it and so far nothing has been a roadblock. </p>
]]></content:encoded>
					
					<wfw:commentRss>https://courses.ideate.cmu.edu/53-472/s2022/?feed=rss2&#038;p=67</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		<enclosure url="https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/02/AmbientSample.mp3" length="4240195" type="audio/mpeg" />
<enclosure url="https://courses.ideate.cmu.edu/53-472/s2022/wp-content/uploads/2022/02/Parasite_Jump_1.wav" length="727694" type="audio/wav" />

			</item>
	</channel>
</rss>
