<?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>Thomas Carey &#8211; Advanced Game Studio</title>
	<atom:link href="https://courses.ideate.cmu.edu/53-472/s2022/?feed=rss2&#038;author=4" 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>Fri, 25 Mar 2022 18:01:53 +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>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" 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>
